@televet/kibble-ui 4.0.1 → 5.0.0-beta.hotfix.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/alert.types-BKSqs9qY.js +2 -0
- package/dist/chunks/alert.types-BKSqs9qY.js.map +1 -0
- package/dist/chunks/alert.types-C_ygg7fh.js +141 -0
- package/dist/chunks/alert.types-C_ygg7fh.js.map +1 -0
- package/dist/chunks/anatomy-BkGk10kB.js +2 -0
- package/dist/chunks/anatomy-BkGk10kB.js.map +1 -0
- package/dist/chunks/anatomy-zd4ecEFD.js +280 -0
- package/dist/chunks/anatomy-zd4ecEFD.js.map +1 -0
- package/dist/chunks/avatar.component-B1HGlwVW.js +2 -0
- package/dist/chunks/avatar.component-B1HGlwVW.js.map +1 -0
- package/dist/chunks/avatar.component-C-365mx3.js +404 -0
- package/dist/chunks/avatar.component-C-365mx3.js.map +1 -0
- package/dist/chunks/avatar.records-CxLCvZfG.js +2 -0
- package/dist/chunks/avatar.records-CxLCvZfG.js.map +1 -0
- package/dist/chunks/{index-Cv06PsSJ.js → avatar.records-EoZmO3VR.js} +21 -13
- package/dist/chunks/avatar.records-EoZmO3VR.js.map +1 -0
- package/dist/chunks/avatarGroup.component-B-ZOhj7i.js +75 -0
- package/dist/chunks/avatarGroup.component-B-ZOhj7i.js.map +1 -0
- package/dist/chunks/avatarGroup.component-CTBfGiSm.js +2 -0
- package/dist/chunks/avatarGroup.component-CTBfGiSm.js.map +1 -0
- package/dist/chunks/button.component-BO6oee_V.js +69 -0
- package/dist/chunks/button.component-BO6oee_V.js.map +1 -0
- package/dist/chunks/button.component-DjdgBXDC.js +2 -0
- package/dist/chunks/button.component-DjdgBXDC.js.map +1 -0
- package/dist/chunks/button.recipe-Bb0lptGi.js +613 -0
- package/dist/chunks/button.recipe-Bb0lptGi.js.map +1 -0
- package/dist/chunks/button.recipe-flk0XJTS.js +2 -0
- package/dist/chunks/button.recipe-flk0XJTS.js.map +1 -0
- package/dist/chunks/button.types-3lHElsln.js +2 -0
- package/dist/chunks/button.types-3lHElsln.js.map +1 -0
- package/dist/chunks/{button.types-BKXZNvN1.js → button.types-C9PpvmYR.js} +14 -9
- package/dist/chunks/button.types-C9PpvmYR.js.map +1 -0
- package/dist/chunks/buttonGroup.component-CowJsbr7.js +2 -0
- package/dist/chunks/buttonGroup.component-CowJsbr7.js.map +1 -0
- package/dist/chunks/buttonGroup.component-DUK2FgFn.js +70 -0
- package/dist/chunks/buttonGroup.component-DUK2FgFn.js.map +1 -0
- package/dist/chunks/calendar.component-CHIhplfO.js +18 -0
- package/dist/chunks/calendar.component-CHIhplfO.js.map +1 -0
- package/dist/chunks/calendar.component-tOoK1NrU.js +2 -0
- package/dist/chunks/calendar.component-tOoK1NrU.js.map +1 -0
- package/dist/chunks/card.component-B1AznjWF.js +55 -0
- package/dist/chunks/card.component-B1AznjWF.js.map +1 -0
- package/dist/chunks/card.component-BmBiYbMV.js +2 -0
- package/dist/chunks/card.component-BmBiYbMV.js.map +1 -0
- package/dist/chunks/center-Dmlzv1BW.js +20 -0
- package/dist/chunks/center-Dmlzv1BW.js.map +1 -0
- package/dist/chunks/center-kk61ArhQ.js +2 -0
- package/dist/chunks/center-kk61ArhQ.js.map +1 -0
- package/dist/chunks/characterCounter.component-CKDigkoD.js +2 -0
- package/dist/chunks/characterCounter.component-CKDigkoD.js.map +1 -0
- package/dist/chunks/characterCounter.component-Ch3P3GqC.js +82 -0
- package/dist/chunks/characterCounter.component-Ch3P3GqC.js.map +1 -0
- package/dist/chunks/{checkbox.anatomy-DC8fJdkY.js → checkbox.anatomy-BzZ0IkUF.js} +22 -22
- package/dist/chunks/{checkbox.anatomy-DC8fJdkY.js.map → checkbox.anatomy-BzZ0IkUF.js.map} +1 -1
- package/dist/chunks/{checkbox.anatomy-BNdLT4Qf.js → checkbox.anatomy-DM39E2Q9.js} +2 -2
- package/dist/chunks/{checkbox.anatomy-BNdLT4Qf.js.map → checkbox.anatomy-DM39E2Q9.js.map} +1 -1
- package/dist/chunks/checkbox.component-CiA3Z1zR.js +2 -0
- package/dist/chunks/{checkbox.component-DNOkXggb.js.map → checkbox.component-CiA3Z1zR.js.map} +1 -1
- package/dist/chunks/checkbox.component-DE35wBj-.js +269 -0
- package/dist/chunks/{checkbox.component-Dhjcu89D.js.map → checkbox.component-DE35wBj-.js.map} +1 -1
- package/dist/chunks/checkboxGroup.component-BGBd-roJ.js +2 -0
- package/dist/chunks/checkboxGroup.component-BGBd-roJ.js.map +1 -0
- package/dist/chunks/checkboxGroup.component-CYwGlktu.js +53 -0
- package/dist/chunks/checkboxGroup.component-CYwGlktu.js.map +1 -0
- package/dist/chunks/{config-B3QABP1-.js → config-Djkl1N81.js} +4 -4
- package/dist/chunks/{config-B3QABP1-.js.map → config-Djkl1N81.js.map} +1 -1
- package/dist/chunks/conversationCard.component-BrDGshOG.js +2 -0
- package/dist/chunks/conversationCard.component-BrDGshOG.js.map +1 -0
- package/dist/chunks/conversationCard.component-CMdqD3yN.js +331 -0
- package/dist/chunks/conversationCard.component-CMdqD3yN.js.map +1 -0
- package/dist/chunks/{create-recipe-context-CrEKmpj8.js → create-recipe-context-DfQ-MTih.js} +9 -9
- package/dist/chunks/{create-recipe-context-CrEKmpj8.js.map → create-recipe-context-DfQ-MTih.js.map} +1 -1
- package/dist/chunks/create-slot-recipe-context-D_FXDJGp.js +104 -0
- package/dist/chunks/create-slot-recipe-context-D_FXDJGp.js.map +1 -0
- package/dist/chunks/create-slot-recipe-context-HXE1VazG.js +2 -0
- package/dist/chunks/create-slot-recipe-context-HXE1VazG.js.map +1 -0
- package/dist/chunks/datePicker.component-C6cD1_HR.js +2 -0
- package/dist/chunks/datePicker.component-C6cD1_HR.js.map +1 -0
- package/dist/chunks/datePicker.component-eHU7IZgC.js +166 -0
- package/dist/chunks/datePicker.component-eHU7IZgC.js.map +1 -0
- package/dist/chunks/datePicker.provider-BWHE-9FA.js +3009 -0
- package/dist/chunks/datePicker.provider-BWHE-9FA.js.map +1 -0
- package/dist/chunks/datePicker.provider-DgarjPPd.js +15 -0
- package/dist/chunks/datePicker.provider-DgarjPPd.js.map +1 -0
- package/dist/chunks/dateTimePicker.component-Byjxg2lJ.js +317 -0
- package/dist/chunks/dateTimePicker.component-Byjxg2lJ.js.map +1 -0
- package/dist/chunks/dateTimePicker.component-REz9iX4S.js +2 -0
- package/dist/chunks/dateTimePicker.component-REz9iX4S.js.map +1 -0
- package/dist/chunks/{dialog-C51vaoYf.js → dialog-B9jifvV4.js} +37 -36
- package/dist/chunks/{dialog-C51vaoYf.js.map → dialog-B9jifvV4.js.map} +1 -1
- package/dist/chunks/dialog-CZFwddWp.js +2 -0
- package/dist/chunks/{dialog-BPhjKQkb.js.map → dialog-CZFwddWp.js.map} +1 -1
- package/dist/chunks/divider.component-BX3zyB7O.js +2 -0
- package/dist/chunks/divider.component-BX3zyB7O.js.map +1 -0
- package/dist/chunks/divider.component-CFOh4Nw3.js +45 -0
- package/dist/chunks/divider.component-CFOh4Nw3.js.map +1 -0
- package/dist/chunks/divider.types-6MEkMNbx.js +7 -0
- package/dist/chunks/divider.types-6MEkMNbx.js.map +1 -0
- package/dist/chunks/divider.types-DBNcs0IR.js +2 -0
- package/dist/chunks/divider.types-DBNcs0IR.js.map +1 -0
- package/dist/chunks/{empty-BU2EAux9.js → empty-DNH84khx.js} +3 -3
- package/dist/chunks/{empty-BU2EAux9.js.map → empty-DNH84khx.js.map} +1 -1
- package/dist/chunks/field.anatomy-Bhj7Mlr7.js +2 -0
- package/dist/chunks/field.anatomy-Bhj7Mlr7.js.map +1 -0
- package/dist/chunks/field.anatomy-C37GEr2p.js +16 -0
- package/dist/chunks/field.anatomy-C37GEr2p.js.map +1 -0
- package/dist/chunks/{format-BRt-TIiQ.js → format-CK7Imh-5.js} +2 -2
- package/dist/chunks/{format-BRt-TIiQ.js.map → format-CK7Imh-5.js.map} +1 -1
- package/dist/chunks/{format-DgHM6wFr.js → format-CqTHHSak.js} +3 -1
- package/dist/chunks/{format-DgHM6wFr.js.map → format-CqTHHSak.js.map} +1 -1
- package/dist/chunks/grid-item-BmCSQ38y.js +78 -0
- package/dist/chunks/grid-item-BmCSQ38y.js.map +1 -0
- package/dist/chunks/grid-item-CH3dbZHL.js +2 -0
- package/dist/chunks/grid-item-CH3dbZHL.js.map +1 -0
- package/dist/chunks/heading.component-7ikcgDco.js +18 -0
- package/dist/chunks/heading.component-7ikcgDco.js.map +1 -0
- package/dist/chunks/heading.component-DMAQO_-m.js +2 -0
- package/dist/chunks/heading.component-DMAQO_-m.js.map +1 -0
- package/dist/chunks/{icon-button-5UcFiA_W.js → icon-button-CcZMCNUJ.js} +3 -3
- package/dist/chunks/{icon-button-5UcFiA_W.js.map → icon-button-CcZMCNUJ.js.map} +1 -1
- package/dist/chunks/icon.component-B1hr5lLa.js +2 -0
- package/dist/chunks/icon.component-B1hr5lLa.js.map +1 -0
- package/dist/chunks/icon.component-PV_nHBId.js +32 -0
- package/dist/chunks/icon.component-PV_nHBId.js.map +1 -0
- package/dist/chunks/{icons-DQ5FafZQ.js → icons-CoSqruIn.js} +5 -5
- package/dist/chunks/{icons-DQ5FafZQ.js.map → icons-CoSqruIn.js.map} +1 -1
- package/dist/chunks/index-B-OGBT0w.js +2 -0
- package/dist/chunks/{index-BEfEzWJx.js.map → index-B-OGBT0w.js.map} +1 -1
- package/dist/chunks/index-B3xJnxjd.js +371 -0
- package/dist/chunks/index-B3xJnxjd.js.map +1 -0
- package/dist/chunks/index-BFUdiDZp.js +2 -0
- package/dist/chunks/{index-2glJ2faJ.js.map → index-BFUdiDZp.js.map} +1 -1
- package/dist/chunks/{index-CVJXrcei.js → index-BGd_2-DY.js} +29 -27
- package/dist/chunks/{index-CVJXrcei.js.map → index-BGd_2-DY.js.map} +1 -1
- package/dist/chunks/index-BXv9lkZC.js +4 -0
- package/dist/chunks/index-BXv9lkZC.js.map +1 -0
- package/dist/chunks/index-BbZjRFzg.js +265 -0
- package/dist/chunks/index-BbZjRFzg.js.map +1 -0
- package/dist/chunks/{index-CYXurbh4.js → index-BgFImxxe.js} +27 -25
- package/dist/chunks/{index-CYXurbh4.js.map → index-BgFImxxe.js.map} +1 -1
- package/dist/chunks/index-BoulS5Zg.js +2 -0
- package/dist/chunks/index-BoulS5Zg.js.map +1 -0
- package/dist/chunks/index-BrJtqTzN.js +4115 -0
- package/dist/chunks/index-BrJtqTzN.js.map +1 -0
- package/dist/chunks/index-C9UYIjEB.js +1584 -0
- package/dist/chunks/index-C9UYIjEB.js.map +1 -0
- package/dist/chunks/index-CQURjLlA.js +3 -0
- package/dist/chunks/index-CQURjLlA.js.map +1 -0
- package/dist/chunks/{index-BXJJKHzT.js → index-CbVKVxMW.js} +54 -52
- package/dist/chunks/{index-BXJJKHzT.js.map → index-CbVKVxMW.js.map} +1 -1
- package/dist/chunks/{index-CWhDtS-n.js → index-Cxrrsmf-.js} +17 -16
- package/dist/chunks/{index-CWhDtS-n.js.map → index-Cxrrsmf-.js.map} +1 -1
- package/dist/chunks/{index-BZBgTxer.js → index-D0DKQnEK.js} +11 -11
- package/dist/chunks/{index-BZBgTxer.js.map → index-D0DKQnEK.js.map} +1 -1
- package/dist/chunks/index-D1RhzPVz.js +984 -0
- package/dist/chunks/index-D1RhzPVz.js.map +1 -0
- package/dist/chunks/index-D3Q0mQNf.js +325 -0
- package/dist/chunks/index-D3Q0mQNf.js.map +1 -0
- package/dist/chunks/index-D6HBfqAu.js +2 -0
- package/dist/chunks/index-D6HBfqAu.js.map +1 -0
- package/dist/chunks/index-D6c4fMjg.js +2 -0
- package/dist/chunks/index-D6c4fMjg.js.map +1 -0
- package/dist/chunks/{index-CfqoBQoP.js → index-D7QT9KIZ.js} +9 -9
- package/dist/chunks/{index-CfqoBQoP.js.map → index-D7QT9KIZ.js.map} +1 -1
- package/dist/chunks/{index-WYcfOUFA.js → index-DIszpWqO.js} +2 -2
- package/dist/chunks/{index-WYcfOUFA.js.map → index-DIszpWqO.js.map} +1 -1
- package/dist/chunks/{index-D0HCo_Ly.js → index-DLe40do7.js} +2 -2
- package/dist/chunks/{index-D0HCo_Ly.js.map → index-DLe40do7.js.map} +1 -1
- package/dist/chunks/index-DS4KlAkI.js +371 -0
- package/dist/chunks/index-DS4KlAkI.js.map +1 -0
- package/dist/chunks/{index-nNZWP0FQ.js → index-DTVestnf.js} +2 -2
- package/dist/chunks/{index-nNZWP0FQ.js.map → index-DTVestnf.js.map} +1 -1
- package/dist/chunks/index-DVyODQn6.js +8 -0
- package/dist/chunks/index-DVyODQn6.js.map +1 -0
- package/dist/chunks/index-D_vndwae.js +3 -0
- package/dist/chunks/index-D_vndwae.js.map +1 -0
- package/dist/chunks/index-DfzXSlq1.js +2477 -0
- package/dist/chunks/index-DfzXSlq1.js.map +1 -0
- package/dist/chunks/{index-BhSvtzbY.js → index-QVc_GVoE.js} +13 -13
- package/dist/chunks/{index-BhSvtzbY.js.map → index-QVc_GVoE.js.map} +1 -1
- package/dist/chunks/index-Ts8g8jZd.js +2 -0
- package/dist/chunks/index-Ts8g8jZd.js.map +1 -0
- package/dist/chunks/index-_913FPya.js +2 -0
- package/dist/chunks/{index-A_vmTNU7.js.map → index-_913FPya.js.map} +1 -1
- package/dist/chunks/index-fHSGm2nC.js +1044 -0
- package/dist/chunks/index-fHSGm2nC.js.map +1 -0
- package/dist/chunks/{index-eNFIsSpE.js → index-kpOEHtZZ.js} +2 -2
- package/dist/chunks/{index-eNFIsSpE.js.map → index-kpOEHtZZ.js.map} +1 -1
- package/dist/chunks/index-rSq6Bry6.js +2 -0
- package/dist/chunks/{index-DAI6_P9H.js.map → index-rSq6Bry6.js.map} +1 -1
- package/dist/chunks/{index-BhPrz8Zu.js → index-wV4hG2vI.js} +19 -19
- package/dist/chunks/{index-BhPrz8Zu.js.map → index-wV4hG2vI.js.map} +1 -1
- package/dist/chunks/index-yh2QitBe.js +2 -0
- package/dist/chunks/index-yh2QitBe.js.map +1 -0
- package/dist/chunks/input-group-CFelIL63.js +78 -0
- package/dist/chunks/input-group-CFelIL63.js.map +1 -0
- package/dist/chunks/input-group-DUdSDk4o.js +2 -0
- package/dist/chunks/input-group-DUdSDk4o.js.map +1 -0
- package/dist/chunks/isToday-BgNkHh5t.js +2 -0
- package/dist/chunks/isToday-BgNkHh5t.js.map +1 -0
- package/dist/chunks/isToday-iCYsPDMT.js +23 -0
- package/dist/chunks/isToday-iCYsPDMT.js.map +1 -0
- package/dist/chunks/link.component--URNKuK2.js +44 -0
- package/dist/chunks/link.component--URNKuK2.js.map +1 -0
- package/dist/chunks/link.component-_YXG8MDq.js +2 -0
- package/dist/chunks/link.component-_YXG8MDq.js.map +1 -0
- package/dist/chunks/{list-D22V_L58.js → list-DTRn3TmT.js} +2 -2
- package/dist/chunks/{list-D22V_L58.js.map → list-DTRn3TmT.js.map} +1 -1
- package/dist/chunks/{list-DwRM9eA_.js → list-v83ZN2MC.js} +2 -2
- package/dist/chunks/{list-DwRM9eA_.js.map → list-v83ZN2MC.js.map} +1 -1
- package/dist/chunks/logo.types-88a31xCx.js +2 -0
- package/dist/chunks/logo.types-88a31xCx.js.map +1 -0
- package/dist/chunks/logo.types-C5GwpHjM.js +51 -0
- package/dist/chunks/logo.types-C5GwpHjM.js.map +1 -0
- package/dist/chunks/menu.component-D4-4xRDj.js +2 -0
- package/dist/chunks/menu.component-D4-4xRDj.js.map +1 -0
- package/dist/chunks/menu.component-DwTen8Uv.js +704 -0
- package/dist/chunks/menu.component-DwTen8Uv.js.map +1 -0
- package/dist/chunks/modal.types-74os4Bqi.js +2 -0
- package/dist/chunks/modal.types-74os4Bqi.js.map +1 -0
- package/dist/chunks/modal.types-B0rK6xJy.js +115 -0
- package/dist/chunks/modal.types-B0rK6xJy.js.map +1 -0
- package/dist/chunks/{notificationCounter.component-Lu4_Owvr.js → notificationCounter.component-BexkISUl.js} +37 -18
- package/dist/chunks/notificationCounter.component-BexkISUl.js.map +1 -0
- package/dist/chunks/notificationCounter.component-DJpUXeXm.js +2 -0
- package/dist/chunks/notificationCounter.component-DJpUXeXm.js.map +1 -0
- package/dist/chunks/numberInput.component-DIABzNV6.js +2 -0
- package/dist/chunks/numberInput.component-DIABzNV6.js.map +1 -0
- package/dist/chunks/numberInput.component-RCwUUzmH.js +227 -0
- package/dist/chunks/numberInput.component-RCwUUzmH.js.map +1 -0
- package/dist/chunks/picture.component-BA2hgdZy.js +2 -0
- package/dist/chunks/picture.component-BA2hgdZy.js.map +1 -0
- package/dist/chunks/picture.component-DzdHIFN_.js +28 -0
- package/dist/chunks/picture.component-DzdHIFN_.js.map +1 -0
- package/dist/chunks/pinInput.types-BCzsoF9r.js +2 -0
- package/dist/chunks/{pinInput.types-Cqm1Px5l.js.map → pinInput.types-BCzsoF9r.js.map} +1 -1
- package/dist/chunks/pinInput.types-CcaAN6P2.js +155 -0
- package/dist/chunks/{pinInput.types-CcN0aX_i.js.map → pinInput.types-CcaAN6P2.js.map} +1 -1
- package/dist/chunks/popover-C7aj8Iwj.js +2 -0
- package/dist/chunks/popover-C7aj8Iwj.js.map +1 -0
- package/dist/chunks/popover-pd70xkY_.js +111 -0
- package/dist/chunks/popover-pd70xkY_.js.map +1 -0
- package/dist/chunks/popover-root-provider-CZDbUJ2K.js +2 -0
- package/dist/chunks/{popover-root-provider-ZB5BcrXn.js.map → popover-root-provider-CZDbUJ2K.js.map} +1 -1
- package/dist/chunks/popover-root-provider-DR0Iuda1.js +44 -0
- package/dist/chunks/{popover-root-provider-CkW1eCBQ.js.map → popover-root-provider-DR0Iuda1.js.map} +1 -1
- package/dist/chunks/popover.component-BBp_5m8e.js +2 -0
- package/dist/chunks/popover.component-BBp_5m8e.js.map +1 -0
- package/dist/chunks/popover.component-DEOUdSu3.js +220 -0
- package/dist/chunks/popover.component-DEOUdSu3.js.map +1 -0
- package/dist/chunks/popover.recipe-B9bkpDfc.js +126 -0
- package/dist/chunks/popover.recipe-B9bkpDfc.js.map +1 -0
- package/dist/chunks/popover.recipe-Czy8Aeft.js +2 -0
- package/dist/chunks/popover.recipe-Czy8Aeft.js.map +1 -0
- package/dist/chunks/popover.types-CQJj3uOX.js +7 -0
- package/dist/chunks/popover.types-CQJj3uOX.js.map +1 -0
- package/dist/chunks/popover.types-ChA9ccQ2.js +2 -0
- package/dist/chunks/popover.types-ChA9ccQ2.js.map +1 -0
- package/dist/chunks/progress-value-text-CFVhPKYk.js +2 -0
- package/dist/chunks/progress-value-text-CFVhPKYk.js.map +1 -0
- package/dist/chunks/progress-value-text-DZkUF2cO.js +58 -0
- package/dist/chunks/progress-value-text-DZkUF2cO.js.map +1 -0
- package/dist/chunks/radioGroup.types-C7A8mLMz.js +2 -0
- package/dist/chunks/radioGroup.types-C7A8mLMz.js.map +1 -0
- package/dist/chunks/radioGroup.types-DJ68ERdO.js +228 -0
- package/dist/chunks/radioGroup.types-DJ68ERdO.js.map +1 -0
- package/dist/chunks/radiomark-Cj0NEJeE.js +2 -0
- package/dist/chunks/radiomark-Cj0NEJeE.js.map +1 -0
- package/dist/chunks/radiomark-DdwVpBDT.js +22 -0
- package/dist/chunks/radiomark-DdwVpBDT.js.map +1 -0
- package/dist/chunks/radiomark.component-D_7wT5VA.js +11 -0
- package/dist/chunks/radiomark.component-D_7wT5VA.js.map +1 -0
- package/dist/chunks/radiomark.component-YJNr68s7.js +2 -0
- package/dist/chunks/radiomark.component-YJNr68s7.js.map +1 -0
- package/dist/chunks/rating-group-CfwdAW9a.js +133 -0
- package/dist/chunks/rating-group-CfwdAW9a.js.map +1 -0
- package/dist/chunks/rating-group-D8QA23q6.js +2 -0
- package/dist/chunks/rating-group-D8QA23q6.js.map +1 -0
- package/dist/chunks/rating.component-BsuGbcxP.js +2 -0
- package/dist/chunks/rating.component-BsuGbcxP.js.map +1 -0
- package/dist/chunks/rating.component-ChzcvUl6.js +70 -0
- package/dist/chunks/rating.component-ChzcvUl6.js.map +1 -0
- package/dist/chunks/ratingDots.component-CVjSZ9JJ.js +2 -0
- package/dist/chunks/ratingDots.component-CVjSZ9JJ.js.map +1 -0
- package/dist/chunks/ratingDots.component-D9WQGVcj.js +147 -0
- package/dist/chunks/ratingDots.component-D9WQGVcj.js.map +1 -0
- package/dist/chunks/{render-strategy-CfHUEDVm.js → render-strategy-kPh1pd2U.js} +2 -2
- package/dist/chunks/{render-strategy-CfHUEDVm.js.map → render-strategy-kPh1pd2U.js.map} +1 -1
- package/dist/chunks/{render-strategy-Dr73HbQf.js → render-strategy-munDZLwL.js} +2 -2
- package/dist/chunks/{render-strategy-Dr73HbQf.js.map → render-strategy-munDZLwL.js.map} +1 -1
- package/dist/chunks/select.component-B4mAPqzN.js +1099 -0
- package/dist/chunks/select.component-B4mAPqzN.js.map +1 -0
- package/dist/chunks/select.component-CCNxMGvb.js +2 -0
- package/dist/chunks/select.component-CCNxMGvb.js.map +1 -0
- package/dist/chunks/{sortableList.component-vxiA7bvr.js → sortableList.component-BlwtnxVj.js} +3 -3
- package/dist/chunks/{sortableList.component-vxiA7bvr.js.map → sortableList.component-BlwtnxVj.js.map} +1 -1
- package/dist/chunks/{sortableList.component-i4dJ9oHN.js → sortableList.component-XfURY7C2.js} +384 -379
- package/dist/chunks/{sortableList.component-i4dJ9oHN.js.map → sortableList.component-XfURY7C2.js.map} +1 -1
- package/dist/chunks/spinner-B9ytCKVs.js +8 -0
- package/dist/chunks/{spinner-C31ZWQmA.js.map → spinner-B9ytCKVs.js.map} +1 -1
- package/dist/chunks/{spinner.component-DPYj17HK.js → spinner.component-B3dkvoO9.js} +53 -45
- package/dist/chunks/spinner.component-B3dkvoO9.js.map +1 -0
- package/dist/chunks/spinner.component-DuW1_IWM.js +2 -0
- package/dist/chunks/spinner.component-DuW1_IWM.js.map +1 -0
- package/dist/chunks/styledAvatar.types-CcP-Vl9c.js +2 -0
- package/dist/chunks/styledAvatar.types-CcP-Vl9c.js.map +1 -0
- package/dist/chunks/styledAvatar.types-cR6PNPxA.js +69 -0
- package/dist/chunks/styledAvatar.types-cR6PNPxA.js.map +1 -0
- package/dist/chunks/swatch.types-AZLB8OWG.js +2 -0
- package/dist/chunks/swatch.types-AZLB8OWG.js.map +1 -0
- package/dist/chunks/{swatch.types-CXlghcLw.js → swatch.types-CkrkMi11.js} +21 -20
- package/dist/chunks/swatch.types-CkrkMi11.js.map +1 -0
- package/dist/chunks/switch.component-CgzCLoTB.js +2 -0
- package/dist/chunks/{switch.component-Cke7O8gk.js.map → switch.component-CgzCLoTB.js.map} +1 -1
- package/dist/chunks/switch.component-CpV7mnhR.js +155 -0
- package/dist/chunks/{switch.component-C88jBbo_.js.map → switch.component-CpV7mnhR.js.map} +1 -1
- package/dist/chunks/{tab.types-DCkus0y2.js → tab.types-DaJfFBvr.js} +136 -117
- package/dist/chunks/{tab.types-DCkus0y2.js.map → tab.types-DaJfFBvr.js.map} +1 -1
- package/dist/chunks/tab.types-DwPEP_5N.js +2 -0
- package/dist/chunks/{tab.types-DpmXyw5C.js.map → tab.types-DwPEP_5N.js.map} +1 -1
- package/dist/chunks/tag.component-B7V76XfM.js +84 -0
- package/dist/chunks/tag.component-B7V76XfM.js.map +1 -0
- package/dist/chunks/tag.component-C98Wf07v.js +2 -0
- package/dist/chunks/tag.component-C98Wf07v.js.map +1 -0
- package/dist/chunks/tagBlock.component-BGEvRu81.js +2 -0
- package/dist/chunks/tagBlock.component-BGEvRu81.js.map +1 -0
- package/dist/chunks/tagBlock.component-Cor6eakc.js +170 -0
- package/dist/chunks/tagBlock.component-Cor6eakc.js.map +1 -0
- package/dist/chunks/text.component-CdTyTFds.js +12 -0
- package/dist/chunks/text.component-CdTyTFds.js.map +1 -0
- package/dist/chunks/text.component-CeioUl0G.js +2 -0
- package/dist/chunks/text.component-CeioUl0G.js.map +1 -0
- package/dist/chunks/textInput.component-BC0Hi8R_.js +108 -0
- package/dist/chunks/textInput.component-BC0Hi8R_.js.map +1 -0
- package/dist/chunks/textInput.component-C1vwy6pL.js +2 -0
- package/dist/chunks/textInput.component-C1vwy6pL.js.map +1 -0
- package/dist/chunks/textarea.component-D15hA9Jb.js +2 -0
- package/dist/chunks/{textarea.component-Dk2IMKkr.js.map → textarea.component-D15hA9Jb.js.map} +1 -1
- package/dist/chunks/textarea.component-axjxiv82.js +96 -0
- package/dist/chunks/{textarea.component-BYexywy1.js.map → textarea.component-axjxiv82.js.map} +1 -1
- package/dist/chunks/{theme.provider-w_I9S10D.js → theme.provider-BD7qyu-B.js} +1405 -1339
- package/dist/chunks/theme.provider-BD7qyu-B.js.map +1 -0
- package/dist/chunks/theme.provider-DFwAy7tr.js +28 -0
- package/dist/chunks/theme.provider-DFwAy7tr.js.map +1 -0
- package/dist/chunks/timePicker.component-Cz2XxVL6.js +2 -0
- package/dist/chunks/timePicker.component-Cz2XxVL6.js.map +1 -0
- package/dist/chunks/timePicker.component-u34pHrzr.js +220 -0
- package/dist/chunks/timePicker.component-u34pHrzr.js.map +1 -0
- package/dist/chunks/timeRange.component-BiA1VWQ8.js +19 -0
- package/dist/chunks/timeRange.component-BiA1VWQ8.js.map +1 -0
- package/dist/chunks/timeRange.component-tU_nCTmS.js +2 -0
- package/dist/chunks/timeRange.component-tU_nCTmS.js.map +1 -0
- package/dist/chunks/timestamp.component-DBmc7D23.js +36 -0
- package/dist/chunks/timestamp.component-DBmc7D23.js.map +1 -0
- package/dist/chunks/timestamp.component-DYZHgaas.js +2 -0
- package/dist/chunks/timestamp.component-DYZHgaas.js.map +1 -0
- package/dist/chunks/toaster.records-CDSkoMuU.js +2 -0
- package/dist/chunks/{toaster.records-eCXbM85Z.js.map → toaster.records-CDSkoMuU.js.map} +1 -1
- package/dist/chunks/{toaster.records-oryzm5Go.js → toaster.records-Cb3hbtuY.js} +103 -102
- package/dist/chunks/{toaster.records-oryzm5Go.js.map → toaster.records-Cb3hbtuY.js.map} +1 -1
- package/dist/chunks/tooltip.component-BkFDi5yK.js +2 -0
- package/dist/chunks/{tooltip.component-CATpCSkf.js.map → tooltip.component-BkFDi5yK.js.map} +1 -1
- package/dist/chunks/{tooltip.component-mjdP7nPN.js → tooltip.component-C_NS-AoH.js} +126 -103
- package/dist/chunks/{tooltip.component-mjdP7nPN.js.map → tooltip.component-C_NS-AoH.js.map} +1 -1
- package/dist/chunks/{typography.records-CpYV1kns.js → typography.records-BEd2lI_g.js} +10 -22
- package/dist/chunks/typography.records-BEd2lI_g.js.map +1 -0
- package/dist/chunks/typography.records-Cg_lT1Z3.js +2 -0
- package/dist/chunks/typography.records-Cg_lT1Z3.js.map +1 -0
- package/dist/chunks/{use-field-context-BTxME29X.js → use-field-context-Cm29IQ7H.js} +2 -2
- package/dist/chunks/{use-field-context-BTxME29X.js.map → use-field-context-Cm29IQ7H.js.map} +1 -1
- package/dist/chunks/{use-field-context-RQeEcNpb.js → use-field-context-DrC9mrDd.js} +2 -2
- package/dist/chunks/{use-field-context-RQeEcNpb.js.map → use-field-context-DrC9mrDd.js.map} +1 -1
- package/dist/chunks/use-locale-context-Bw4Gg9Z0.js +738 -0
- package/dist/chunks/use-locale-context-Bw4Gg9Z0.js.map +1 -0
- package/dist/chunks/use-locale-context-ym21RUxU.js +22 -0
- package/dist/chunks/use-locale-context-ym21RUxU.js.map +1 -0
- package/dist/chunks/useIconTextSizeMap-BK-pUrQv.js.map +1 -1
- package/dist/chunks/useIconTextSizeMap-BXmABb54.js.map +1 -1
- package/dist/chunks/withFormControl-DePFf9SY.js +367 -0
- package/dist/chunks/withFormControl-DePFf9SY.js.map +1 -0
- package/dist/chunks/withFormControl-wZA87Sd4.js +2 -0
- package/dist/chunks/withFormControl-wZA87Sd4.js.map +1 -0
- package/dist/chunks/withTruncation-DE3FFPE7.js +2 -0
- package/dist/chunks/withTruncation-DE3FFPE7.js.map +1 -0
- package/dist/chunks/withTruncation-DTCfQ2yk.js +92 -0
- package/dist/chunks/withTruncation-DTCfQ2yk.js.map +1 -0
- package/dist/chunks/{wrap-CRNL4bE6.js → wrap-Cu5ZEseD.js} +2 -2
- package/dist/chunks/{wrap-CRNL4bE6.js.map → wrap-Cu5ZEseD.js.map} +1 -1
- package/dist/cjs/chakra/index.cjs +2 -2
- package/dist/cjs/chakra/index.cjs.map +1 -1
- package/dist/cjs/components/Alert/index.cjs +1 -1
- package/dist/cjs/components/Avatar/index.cjs +1 -1
- package/dist/cjs/components/AvatarGroup/index.cjs +1 -1
- package/dist/cjs/components/Button/index.cjs +1 -1
- package/dist/cjs/components/ButtonGroup/index.cjs +1 -1
- package/dist/cjs/components/Calendar/index.cjs +2 -0
- package/dist/cjs/components/Calendar/index.cjs.map +1 -0
- package/dist/cjs/components/Card/index.cjs +1 -1
- package/dist/cjs/components/CharacterCounter/index.cjs +1 -1
- package/dist/cjs/components/Checkbox/index.cjs +1 -1
- package/dist/cjs/components/CheckboxGroup/index.cjs +1 -1
- package/dist/cjs/components/ConversationCard/index.cjs +1 -1
- package/dist/cjs/components/DatePicker/index.cjs +1 -1
- package/dist/cjs/components/DateTimePicker/index.cjs +2 -0
- package/dist/cjs/components/DateTimePicker/index.cjs.map +1 -0
- package/dist/cjs/components/Divider/index.cjs +1 -1
- package/dist/cjs/components/Heading/index.cjs +1 -1
- package/dist/cjs/components/Icon/generated/index.cjs +1 -1
- package/dist/cjs/components/Icon/generated/index.cjs.map +1 -1
- package/dist/cjs/components/Icon/index.cjs +1 -1
- package/dist/cjs/components/Link/index.cjs +1 -1
- package/dist/cjs/components/Logo/index.cjs +1 -1
- package/dist/cjs/components/Menu/index.cjs +1 -1
- package/dist/cjs/components/Modal/index.cjs +1 -1
- package/dist/cjs/components/NotificationCounter/index.cjs +1 -1
- package/dist/cjs/components/NumberInput/index.cjs +2 -0
- package/dist/cjs/components/NumberInput/index.cjs.map +1 -0
- package/dist/cjs/components/Picture/index.cjs +1 -1
- package/dist/cjs/components/PinInput/index.cjs +1 -1
- package/dist/cjs/components/Popover/index.cjs +1 -1
- package/dist/cjs/components/Progress/index.cjs +2 -0
- package/dist/cjs/components/Progress/index.cjs.map +1 -0
- package/dist/cjs/components/RadioGroup/index.cjs +1 -1
- package/dist/cjs/components/Radiomark/index.cjs +2 -0
- package/dist/cjs/components/Radiomark/index.cjs.map +1 -0
- package/dist/cjs/components/Rating/index.cjs +2 -0
- package/dist/cjs/components/Rating/index.cjs.map +1 -0
- package/dist/cjs/components/RatingDots/index.cjs +1 -1
- package/dist/cjs/components/Select/index.cjs +1 -1
- package/dist/cjs/components/SortableList/index.cjs +1 -1
- package/dist/cjs/components/Spinner/index.cjs +1 -1
- package/dist/cjs/components/StyledAvatar/index.cjs +1 -1
- package/dist/cjs/components/Swatch/index.cjs +1 -1
- package/dist/cjs/components/Switch/index.cjs +1 -1
- package/dist/cjs/components/Tabs/index.cjs +1 -1
- package/dist/cjs/components/Tag/index.cjs +1 -1
- package/dist/cjs/components/TagBlock/index.cjs +1 -1
- package/dist/cjs/components/Text/index.cjs +1 -1
- package/dist/cjs/components/TextInput/index.cjs +1 -1
- package/dist/cjs/components/Textarea/index.cjs +1 -1
- package/dist/cjs/components/TimePicker/index.cjs +1 -1
- package/dist/cjs/components/TimeRange/index.cjs +1 -1
- package/dist/cjs/components/Timestamp/index.cjs +1 -1
- package/dist/cjs/components/Toast/index.cjs +1 -1
- package/dist/cjs/components/Toast/index.cjs.map +1 -1
- package/dist/cjs/components/Tooltip/index.cjs +1 -1
- package/dist/cjs/components/index.cjs +1 -1
- package/dist/cjs/hooks/useBreakpoint/index.cjs.map +1 -1
- package/dist/cjs/hooks/useColorMode/index.cjs.map +1 -1
- package/dist/cjs/hooks/useColorModeValue/index.cjs.map +1 -1
- package/dist/cjs/hooks/useDeviceType/index.cjs.map +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/theme/index.cjs +1 -1
- package/dist/cjs/theme/semanticTokens/index.cjs +1 -1
- package/dist/cjs/theme/semanticTokens/index.cjs.map +1 -1
- package/dist/esm/chakra/index.js +1682 -1997
- package/dist/esm/chakra/index.js.map +1 -1
- package/dist/esm/components/Alert/index.js +1 -1
- package/dist/esm/components/Avatar/index.js +1 -1
- package/dist/esm/components/AvatarGroup/index.js +1 -1
- package/dist/esm/components/Button/index.js +2 -2
- package/dist/esm/components/ButtonGroup/index.js +1 -1
- package/dist/esm/components/Calendar/index.js +5 -0
- package/dist/esm/components/Calendar/index.js.map +1 -0
- package/dist/esm/components/Card/index.js +1 -1
- package/dist/esm/components/CharacterCounter/index.js +1 -1
- package/dist/esm/components/Checkbox/index.js +1 -1
- package/dist/esm/components/CheckboxGroup/index.js +1 -1
- package/dist/esm/components/ConversationCard/index.js +1 -1
- package/dist/esm/components/DatePicker/index.js +4 -3
- package/dist/esm/components/DatePicker/index.js.map +1 -1
- package/dist/esm/components/DateTimePicker/index.js +7 -0
- package/dist/esm/components/DateTimePicker/index.js.map +1 -0
- package/dist/esm/components/Divider/index.js +6 -5
- package/dist/esm/components/Divider/index.js.map +1 -1
- package/dist/esm/components/Heading/index.js +1 -1
- package/dist/esm/components/Icon/generated/index.js +556 -342
- package/dist/esm/components/Icon/generated/index.js.map +1 -1
- package/dist/esm/components/Icon/index.js +1 -1
- package/dist/esm/components/Link/index.js +1 -1
- package/dist/esm/components/Logo/index.js +1 -1
- package/dist/esm/components/Menu/index.js +1 -1
- package/dist/esm/components/Modal/index.js +1 -1
- package/dist/esm/components/NotificationCounter/index.js +1 -1
- package/dist/esm/components/NumberInput/index.js +5 -0
- package/dist/esm/components/NumberInput/index.js.map +1 -0
- package/dist/esm/components/Picture/index.js +1 -1
- package/dist/esm/components/PinInput/index.js +1 -1
- package/dist/esm/components/Popover/index.js +2 -2
- package/dist/esm/components/Progress/index.js +57 -0
- package/dist/esm/components/Progress/index.js.map +1 -0
- package/dist/esm/components/RadioGroup/index.js +1 -1
- package/dist/esm/components/Radiomark/index.js +5 -0
- package/dist/esm/components/Radiomark/index.js.map +1 -0
- package/dist/esm/components/Rating/index.js +5 -0
- package/dist/esm/components/Rating/index.js.map +1 -0
- package/dist/esm/components/RatingDots/index.js +1 -1
- package/dist/esm/components/Select/index.js +1 -1
- package/dist/esm/components/SortableList/index.js +1 -1
- package/dist/esm/components/Spinner/index.js +1 -1
- package/dist/esm/components/StyledAvatar/index.js +1 -1
- package/dist/esm/components/Swatch/index.js +1 -1
- package/dist/esm/components/Switch/index.js +1 -1
- package/dist/esm/components/Tabs/index.js +1 -1
- package/dist/esm/components/Tag/index.js +1 -1
- package/dist/esm/components/TagBlock/index.js +1 -1
- package/dist/esm/components/Text/index.js +1 -1
- package/dist/esm/components/TextInput/index.js +1 -1
- package/dist/esm/components/Textarea/index.js +1 -1
- package/dist/esm/components/TimePicker/index.js +1 -1
- package/dist/esm/components/TimeRange/index.js +1 -1
- package/dist/esm/components/Timestamp/index.js +1 -1
- package/dist/esm/components/Toast/index.js +26 -23
- package/dist/esm/components/Toast/index.js.map +1 -1
- package/dist/esm/components/Tooltip/index.js +1 -1
- package/dist/esm/components/index.js +131 -117
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/hooks/useBreakpoint/index.js.map +1 -1
- package/dist/esm/hooks/useColorMode/index.js.map +1 -1
- package/dist/esm/hooks/useColorModeValue/index.js.map +1 -1
- package/dist/esm/hooks/useDeviceType/index.js.map +1 -1
- package/dist/esm/index.js +148 -134
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/theme/index.js +1 -1
- package/dist/esm/theme/semanticTokens/index.js +4 -4
- package/dist/esm/theme/semanticTokens/index.js.map +1 -1
- package/dist/types/chakra/index.d.ts +2 -4
- package/dist/types/components/Alert/alert.component.d.ts +28 -1
- package/dist/types/components/Alert/alert.recipe.d.ts +3 -2
- package/dist/types/components/Alert/components/AlertButton/alertButton.component.d.ts +12 -1
- package/dist/types/components/Avatar/avatar.component.d.ts +30 -2
- package/dist/types/components/Avatar/avatar.recipe.d.ts +3 -2
- package/dist/types/components/Avatar/avatar.records.d.ts +2 -0
- package/dist/types/components/Avatar/components/AvatarBadge/avatarBadge.component.d.ts +9 -1
- package/dist/types/components/Avatar/components/AvatarRemoveButton/avatarRemoveButton.component.d.ts +15 -6
- package/dist/types/components/Avatar/components/AvatarTooltipTriggerWrapper/avatarTooltipTriggerWrapper.component.d.ts +2 -0
- package/dist/types/components/AvatarGroup/avatarGroup.component.d.ts +27 -3
- package/dist/types/components/Button/button.component.d.ts +14 -1
- package/dist/types/components/Button/button.recipe.d.ts +3 -1
- package/dist/types/components/Button/button.types.d.ts +2 -2
- package/dist/types/components/ButtonGroup/buttonGroup.component.d.ts +12 -1
- package/dist/types/components/Calendar/calendar.component.d.ts +19 -0
- package/dist/types/components/Calendar/index.d.ts +1 -0
- package/dist/types/components/Card/card.component.d.ts +41 -1
- package/dist/types/components/CharacterCounter/characterCounter.component.d.ts +9 -1
- package/dist/types/components/Checkbox/checkbox.component.d.ts +19 -2
- package/dist/types/components/Checkbox/checkbox.recipe.d.ts +3 -2
- package/dist/types/components/Checkbox/checkbox.types.d.ts +4 -0
- package/dist/types/components/Checkbox/index.d.ts +1 -0
- package/dist/types/components/CheckboxGroup/checkboxGroup.component.d.ts +12 -2
- package/dist/types/components/ConversationCard/components/ConversationCardAvatarGroup/conversationCardAvatarGroup.component.d.ts +11 -1
- package/dist/types/components/ConversationCard/components/ConversationCardButtons/conversationCardButtons.component.d.ts +22 -1
- package/dist/types/components/ConversationCard/components/ConversationCardContent/conversationCardContent.component.d.ts +8 -1
- package/dist/types/components/ConversationCard/components/ConversationCardFooter/conversationCardFooter.component.d.ts +8 -1
- package/dist/types/components/ConversationCard/components/ConversationCardHeader/conversationCardHeader.component.d.ts +12 -1
- package/dist/types/components/ConversationCard/components/ConversationCardTags/conversationCardTags.component.d.ts +7 -1
- package/dist/types/components/ConversationCard/conversationCard.component.d.ts +29 -1
- package/dist/types/components/DatePicker/components/DatePickerCalendar/datePickerCalendar.component.d.ts +10 -1
- package/dist/types/components/DatePicker/components/DatePickerDay/datePickerCalendarDay.component.d.ts +11 -1
- package/dist/types/components/DatePicker/components/DatePickerDay/datePickerCalendarDay.recipe.d.ts +5 -4
- package/dist/types/components/DatePicker/components/DatePickerDay/datePickerCalendarDay.types.d.ts +1 -1
- package/dist/types/components/DatePicker/components/DatePickerFooter/datePickerFooter.component.d.ts +9 -0
- package/dist/types/components/DatePicker/components/DatePickerHeader/datePickerHeader.component.d.ts +15 -1
- package/dist/types/components/DatePicker/components/DatePickerInput/datePickerInput.component.d.ts +6 -1
- package/dist/types/components/DatePicker/components/DatePickerMonth/datePickerCalendarMonth.component.d.ts +11 -1
- package/dist/types/components/DatePicker/context/datePicker.context.d.ts +3 -0
- package/dist/types/components/DatePicker/context/datePicker.provider.d.ts +10 -1
- package/dist/types/components/DatePicker/datePicker.component.d.ts +25 -11
- package/dist/types/components/DatePicker/datePicker.types.d.ts +18 -0
- package/dist/types/components/DatePicker/hooks/useComputeCornerRoundingFlags.d.ts +10 -0
- package/dist/types/components/DatePicker/utils/getDayVariant.d.ts +12 -0
- package/dist/types/components/DateTimePicker/components/DateTimePickerCustomView/dateTimePickerCustomView.component.d.ts +7 -0
- package/dist/types/components/DateTimePicker/components/DateTimePickerQuickOptions/dateTimePickerQuickOptions.component.d.ts +14 -0
- package/dist/types/components/DateTimePicker/components/DateTimePickerRangeSelector/dateTimePickerRangeSelector.component.d.ts +10 -0
- package/dist/types/components/DateTimePicker/dateTimePicker.component.d.ts +33 -0
- package/dist/types/components/DateTimePicker/dateTimePicker.records.d.ts +8 -0
- package/dist/types/components/DateTimePicker/dateTimePicker.types.d.ts +11 -0
- package/dist/types/components/DateTimePicker/index.d.ts +2 -0
- package/dist/types/components/DateTimePicker/utils/quickOptions.d.ts +13 -0
- package/dist/types/components/Divider/divider.component.d.ts +7 -2
- package/dist/types/components/Heading/heading.component.d.ts +12 -0
- package/dist/types/components/Icon/generated/Backspace.d.ts +10 -0
- package/dist/types/components/Icon/generated/CaretLeft.d.ts +10 -0
- package/dist/types/components/Icon/generated/CheckList.d.ts +10 -0
- package/dist/types/components/Icon/generated/Globe.d.ts +10 -0
- package/dist/types/components/Icon/generated/InputAlt.d.ts +10 -0
- package/dist/types/components/Icon/generated/LightBulb.d.ts +10 -0
- package/dist/types/components/Icon/generated/SelectDropDown.d.ts +10 -0
- package/dist/types/components/Icon/generated/TextArea.d.ts +10 -0
- package/dist/types/components/Icon/generated/TextBlock.d.ts +10 -0
- package/dist/types/components/Icon/generated/index.d.ts +1 -1
- package/dist/types/components/Icon/icon.component.d.ts +10 -0
- package/dist/types/components/Link/components/LinkIcon/linkIcon.component.d.ts +7 -0
- package/dist/types/components/Link/link.component.d.ts +19 -0
- package/dist/types/components/Logo/logo.component.d.ts +14 -1
- package/dist/types/components/Menu/components/MenuButton/menuButton.component.d.ts +22 -0
- package/dist/types/components/Menu/components/MenuItem/menuItem.component.d.ts +34 -5
- package/dist/types/components/Menu/components/MenuList/menuList.types.d.ts +18 -0
- package/dist/types/components/Menu/components/MenuToggleButtons/menuToggleButtons.component.d.ts +17 -0
- package/dist/types/components/Menu/index.d.ts +4 -0
- package/dist/types/components/Menu/menu.component.d.ts +22 -19
- package/dist/types/components/Menu/menu.recipe.d.ts +1 -1
- package/dist/types/components/Menu/menu.types.d.ts +17 -0
- package/dist/types/components/Modal/components/ModalFooter/modalFooter.component.d.ts +24 -1
- package/dist/types/components/Modal/modal.component.d.ts +46 -1
- package/dist/types/components/Modal/modal.recipe.d.ts +2 -2
- package/dist/types/components/NotificationCounter/notificationCounter.component.d.ts +19 -1
- package/dist/types/components/NotificationCounter/notificationCounter.records.d.ts +5 -0
- package/dist/types/components/NumberInput/index.d.ts +2 -0
- package/dist/types/components/NumberInput/numberInput.component.d.ts +40 -0
- package/dist/types/components/NumberInput/numberInput.recipe.d.ts +21 -0
- package/dist/types/components/NumberInput/numberInput.types.d.ts +4 -0
- package/dist/types/components/Picture/picture.component.d.ts +9 -1
- package/dist/types/components/PinInput/pinInput.component.d.ts +19 -1
- package/dist/types/components/PinInput/pinInput.recipe.d.ts +1 -1
- package/dist/types/components/Popover/components/PopoverFooter/popoverFooter.component.d.ts +26 -1
- package/dist/types/components/Popover/components/PopoverHeader/popoverHeader.component.d.ts +19 -1
- package/dist/types/components/Popover/popover.component.d.ts +45 -2
- package/dist/types/components/Popover/popover.recipe.d.ts +4 -3
- package/dist/types/components/Popover/popover.types.d.ts +1 -1
- package/dist/types/components/Progress/index.d.ts +2 -0
- package/dist/types/components/Progress/progress.component.d.ts +26 -0
- package/dist/types/components/Progress/progress.recipe.d.ts +38 -0
- package/dist/types/components/Progress/progress.types.d.ts +9 -0
- package/dist/types/components/RadioGroup/components/Radio/radio.component.d.ts +15 -0
- package/dist/types/components/RadioGroup/radioGroup.component.d.ts +22 -2
- package/dist/types/components/RadioGroup/radioGroup.recipe.d.ts +4 -2
- package/dist/types/components/Radiomark/index.d.ts +1 -0
- package/dist/types/components/Radiomark/radiomark.component.d.ts +12 -0
- package/dist/types/components/Radiomark/radiomark.recipe.d.ts +2 -0
- package/dist/types/components/Rating/index.d.ts +1 -0
- package/dist/types/components/Rating/rating.component.d.ts +37 -0
- package/dist/types/components/Rating/rating.recipe.d.ts +10 -0
- package/dist/types/components/RatingDots/components/RatingDot/ratingDot.component.d.ts +10 -1
- package/dist/types/components/RatingDots/ratingDots.component.d.ts +12 -0
- package/dist/types/components/Select/components/SelectItemContent/selectItemContent.component.d.ts +6 -0
- package/dist/types/components/Select/components/SelectTrigger/selectTrigger.component.d.ts +7 -2
- package/dist/types/components/Select/select.component.d.ts +53 -3
- package/dist/types/components/Select/select.types.d.ts +3 -0
- package/dist/types/components/SortableList/components/SortableListDragHandle/sortableListDragHandle.component.d.ts +1 -1
- package/dist/types/components/SortableList/components/SortableListItem/sortableListItem.component.d.ts +13 -1
- package/dist/types/components/SortableList/sortableList.component.d.ts +13 -1
- package/dist/types/components/Spinner/spinner.component.d.ts +28 -2
- package/dist/types/components/Spinner/spinner.recipe.d.ts +16 -1
- package/dist/types/components/StyledAvatar/styledAvatar.component.d.ts +10 -1
- package/dist/types/components/StyledAvatar/styledAvatar.types.d.ts +1 -1
- package/dist/types/components/Swatch/swatch.component.d.ts +10 -1
- package/dist/types/components/Switch/switch.component.d.ts +15 -0
- package/dist/types/components/Switch/switch.recipe.d.ts +3 -2
- package/dist/types/components/Tabs/components/Tab/tab.component.d.ts +14 -1
- package/dist/types/components/Tabs/tabs.component.d.ts +17 -2
- package/dist/types/components/Tabs/tabs.recipe.d.ts +3 -2
- package/dist/types/components/Tag/tag.component.d.ts +31 -0
- package/dist/types/components/Tag/tag.recipe.d.ts +3 -2
- package/dist/types/components/TagBlock/tagBlock.component.d.ts +34 -1
- package/dist/types/components/Text/text.component.d.ts +13 -0
- package/dist/types/components/TextInput/textInput.component.d.ts +28 -0
- package/dist/types/components/Textarea/textarea.component.d.ts +13 -0
- package/dist/types/components/TimePicker/components/TimeList/timeList.component.d.ts +10 -1
- package/dist/types/components/TimePicker/components/TimeOption/timeOption.component.d.ts +9 -1
- package/dist/types/components/TimePicker/timePicker.component.d.ts +19 -1
- package/dist/types/components/TimeRange/timeRange.component.d.ts +12 -1
- package/dist/types/components/Timestamp/timestamp.component.d.ts +18 -1
- package/dist/types/components/Toast/components/ToastAction/toastAction.component.d.ts +12 -1
- package/dist/types/components/Toast/components/Toaster/toaster.component.d.ts +6 -1
- package/dist/types/components/Toast/toast.component.d.ts +19 -1
- package/dist/types/components/Toast/toast.recipe.d.ts +3 -2
- package/dist/types/components/Toast/toast.types.d.ts +13 -0
- package/dist/types/components/Toast/useToast.d.ts +5 -0
- package/dist/types/components/Tooltip/tooltip.component.d.ts +26 -0
- package/dist/types/components/Tooltip/tooltip.recipe.d.ts +10 -1
- package/dist/types/components/index.d.ts +5 -0
- package/dist/types/hocs/withFormControl/withFormControl.d.ts +44 -0
- package/dist/types/hocs/withTruncation.d.ts +8 -0
- package/dist/types/hooks/useBreakpoint/index.d.ts +4 -0
- package/dist/types/hooks/useColorMode/index.d.ts +39 -0
- package/dist/types/hooks/useColorModeValue/index.d.ts +6 -0
- package/dist/types/hooks/useDeviceType/index.d.ts +4 -0
- package/dist/types/hooks/useIconTextSizeMap.d.ts +5 -0
- package/dist/types/shared/components/withVariantStory.d.ts +6 -0
- package/dist/types/shared/types/index.d.ts +1 -0
- package/dist/types/theme/providers/theme.provider.d.ts +1 -0
- package/dist/types/theme/recipes/List/list.recipe.d.ts +14 -0
- package/dist/types/theme/recipes/Table/table.recipe.d.ts +29 -0
- package/dist/types/theme/semanticTokens/semanticTokens.config.d.ts +91 -82
- package/dist/types/theme/semanticTokens/semanticTokens.records.d.ts +182 -164
- package/dist/types/theme/semanticTokens/semanticTokens.types.d.ts +4 -3
- package/dist/types/theme/tokens/sizes/sizes.config.d.ts +2 -2
- package/dist/types/theme/tokens/zIndices/zIndices.config.d.ts +10 -10
- package/package.json +21 -18
- package/dist/chunks/alert.types-De_IDZNV.js +0 -2
- package/dist/chunks/alert.types-De_IDZNV.js.map +0 -1
- package/dist/chunks/alert.types-NkOwCG0-.js +0 -139
- package/dist/chunks/alert.types-NkOwCG0-.js.map +0 -1
- package/dist/chunks/avatar.component-CqFsGMt6.js +0 -2
- package/dist/chunks/avatar.component-CqFsGMt6.js.map +0 -1
- package/dist/chunks/avatar.component-lHszPWEi.js +0 -394
- package/dist/chunks/avatar.component-lHszPWEi.js.map +0 -1
- package/dist/chunks/avatarGroup.component-BPYIE5NT.js +0 -2
- package/dist/chunks/avatarGroup.component-BPYIE5NT.js.map +0 -1
- package/dist/chunks/avatarGroup.component-EFxRAKiJ.js +0 -67
- package/dist/chunks/avatarGroup.component-EFxRAKiJ.js.map +0 -1
- package/dist/chunks/button.component-BE20YKDd.js +0 -67
- package/dist/chunks/button.component-BE20YKDd.js.map +0 -1
- package/dist/chunks/button.component-DAv5WxDc.js +0 -2
- package/dist/chunks/button.component-DAv5WxDc.js.map +0 -1
- package/dist/chunks/button.recipe-7PSQJbyz.js +0 -2
- package/dist/chunks/button.recipe-7PSQJbyz.js.map +0 -1
- package/dist/chunks/button.recipe-ClmsjdZI.js +0 -910
- package/dist/chunks/button.recipe-ClmsjdZI.js.map +0 -1
- package/dist/chunks/button.types-BKXZNvN1.js.map +0 -1
- package/dist/chunks/button.types-Bl1awbi0.js +0 -2
- package/dist/chunks/button.types-Bl1awbi0.js.map +0 -1
- package/dist/chunks/buttonGroup.component-CQBXYOhq.js +0 -2
- package/dist/chunks/buttonGroup.component-CQBXYOhq.js.map +0 -1
- package/dist/chunks/buttonGroup.component-CheBkHw6.js +0 -68
- package/dist/chunks/buttonGroup.component-CheBkHw6.js.map +0 -1
- package/dist/chunks/card.component-BZxC19F_.js +0 -2
- package/dist/chunks/card.component-BZxC19F_.js.map +0 -1
- package/dist/chunks/card.component-DJcYzMX1.js +0 -58
- package/dist/chunks/card.component-DJcYzMX1.js.map +0 -1
- package/dist/chunks/characterCounter.component-C6ZwdIiA.js +0 -84
- package/dist/chunks/characterCounter.component-C6ZwdIiA.js.map +0 -1
- package/dist/chunks/characterCounter.component-D0ccCiBG.js +0 -2
- package/dist/chunks/characterCounter.component-D0ccCiBG.js.map +0 -1
- package/dist/chunks/checkbox.component-DNOkXggb.js +0 -260
- package/dist/chunks/checkbox.component-Dhjcu89D.js +0 -2
- package/dist/chunks/checkboxGroup.component-BNKJqMKi.js +0 -52
- package/dist/chunks/checkboxGroup.component-BNKJqMKi.js.map +0 -1
- package/dist/chunks/checkboxGroup.component-M-nvlAbK.js +0 -2
- package/dist/chunks/checkboxGroup.component-M-nvlAbK.js.map +0 -1
- package/dist/chunks/conversationCard.component-BRJbMpwH.js +0 -2
- package/dist/chunks/conversationCard.component-BRJbMpwH.js.map +0 -1
- package/dist/chunks/conversationCard.component-DmSuBQ4_.js +0 -330
- package/dist/chunks/conversationCard.component-DmSuBQ4_.js.map +0 -1
- package/dist/chunks/create-slot-recipe-context-CViypfwB.js +0 -2
- package/dist/chunks/create-slot-recipe-context-CViypfwB.js.map +0 -1
- package/dist/chunks/create-slot-recipe-context-CrlT_nGQ.js +0 -97
- package/dist/chunks/create-slot-recipe-context-CrlT_nGQ.js.map +0 -1
- package/dist/chunks/datePicker.component-BOsFZiDy.js +0 -15
- package/dist/chunks/datePicker.component-BOsFZiDy.js.map +0 -1
- package/dist/chunks/datePicker.component-Dzh4WccC.js +0 -3019
- package/dist/chunks/datePicker.component-Dzh4WccC.js.map +0 -1
- package/dist/chunks/dialog-BPhjKQkb.js +0 -2
- package/dist/chunks/divider.types-Dht8eAh4.js +0 -2
- package/dist/chunks/divider.types-Dht8eAh4.js.map +0 -1
- package/dist/chunks/divider.types-ZN_wlva7.js +0 -47
- package/dist/chunks/divider.types-ZN_wlva7.js.map +0 -1
- package/dist/chunks/grid-item-DPdTp_nI.js +0 -94
- package/dist/chunks/grid-item-DPdTp_nI.js.map +0 -1
- package/dist/chunks/grid-item-qnuioQmr.js +0 -2
- package/dist/chunks/grid-item-qnuioQmr.js.map +0 -1
- package/dist/chunks/heading.component-C_cdAGTd.js +0 -2
- package/dist/chunks/heading.component-C_cdAGTd.js.map +0 -1
- package/dist/chunks/heading.component-SiJnYLOw.js +0 -12
- package/dist/chunks/heading.component-SiJnYLOw.js.map +0 -1
- package/dist/chunks/icon.component-Bhnf2n1O.js +0 -2
- package/dist/chunks/icon.component-Bhnf2n1O.js.map +0 -1
- package/dist/chunks/icon.component-C5bgxAD2.js +0 -32
- package/dist/chunks/icon.component-C5bgxAD2.js.map +0 -1
- package/dist/chunks/index-2glJ2faJ.js +0 -2
- package/dist/chunks/index-7Jpijbq_.js +0 -3
- package/dist/chunks/index-7Jpijbq_.js.map +0 -1
- package/dist/chunks/index-A_vmTNU7.js +0 -2
- package/dist/chunks/index-BEfEzWJx.js +0 -2
- package/dist/chunks/index-Bm5QBNWR.js +0 -8190
- package/dist/chunks/index-Bm5QBNWR.js.map +0 -1
- package/dist/chunks/index-Cv06PsSJ.js.map +0 -1
- package/dist/chunks/index-DA90Dqf9.js +0 -1362
- package/dist/chunks/index-DA90Dqf9.js.map +0 -1
- package/dist/chunks/index-DAI6_P9H.js +0 -2
- package/dist/chunks/index-DMcwHRZ5.js +0 -11
- package/dist/chunks/index-DMcwHRZ5.js.map +0 -1
- package/dist/chunks/index-jnwdAJ25.js +0 -2
- package/dist/chunks/index-jnwdAJ25.js.map +0 -1
- package/dist/chunks/link.component-CvR5CbiT.js +0 -36
- package/dist/chunks/link.component-CvR5CbiT.js.map +0 -1
- package/dist/chunks/link.component-yUJIJbIP.js +0 -2
- package/dist/chunks/link.component-yUJIJbIP.js.map +0 -1
- package/dist/chunks/logo.types-DF4eLSR9.js +0 -45
- package/dist/chunks/logo.types-DF4eLSR9.js.map +0 -1
- package/dist/chunks/logo.types-Zt-yfFAQ.js +0 -2
- package/dist/chunks/logo.types-Zt-yfFAQ.js.map +0 -1
- package/dist/chunks/menu.component-DylZiPAE.js +0 -2
- package/dist/chunks/menu.component-DylZiPAE.js.map +0 -1
- package/dist/chunks/menu.component-xhHsHlGT.js +0 -599
- package/dist/chunks/menu.component-xhHsHlGT.js.map +0 -1
- package/dist/chunks/modal.types-CBos7aXO.js +0 -2
- package/dist/chunks/modal.types-CBos7aXO.js.map +0 -1
- package/dist/chunks/modal.types-CkQIOPTa.js +0 -95
- package/dist/chunks/modal.types-CkQIOPTa.js.map +0 -1
- package/dist/chunks/notificationCounter.component-Lu4_Owvr.js.map +0 -1
- package/dist/chunks/notificationCounter.component-gp2ULnY_.js +0 -2
- package/dist/chunks/notificationCounter.component-gp2ULnY_.js.map +0 -1
- package/dist/chunks/picture.component-CKK-SMvr.js +0 -22
- package/dist/chunks/picture.component-CKK-SMvr.js.map +0 -1
- package/dist/chunks/picture.component-CR6e0wRG.js +0 -2
- package/dist/chunks/picture.component-CR6e0wRG.js.map +0 -1
- package/dist/chunks/pinInput.types-CcN0aX_i.js +0 -145
- package/dist/chunks/pinInput.types-Cqm1Px5l.js +0 -2
- package/dist/chunks/popover-root-provider-CkW1eCBQ.js +0 -43
- package/dist/chunks/popover-root-provider-ZB5BcrXn.js +0 -2
- package/dist/chunks/popover.component-BjS13k9K.js +0 -2
- package/dist/chunks/popover.component-BjS13k9K.js.map +0 -1
- package/dist/chunks/popover.component-C4WKxh4d.js +0 -196
- package/dist/chunks/popover.component-C4WKxh4d.js.map +0 -1
- package/dist/chunks/popover.recipe-Bx25Jhgs.js +0 -2
- package/dist/chunks/popover.recipe-Bx25Jhgs.js.map +0 -1
- package/dist/chunks/popover.recipe-C2nbfvL6.js +0 -241
- package/dist/chunks/popover.recipe-C2nbfvL6.js.map +0 -1
- package/dist/chunks/popover.types-BF2KRf_I.js +0 -2
- package/dist/chunks/popover.types-BF2KRf_I.js.map +0 -1
- package/dist/chunks/popover.types-D1O-Ehsz.js +0 -7
- package/dist/chunks/popover.types-D1O-Ehsz.js.map +0 -1
- package/dist/chunks/radioGroup.types-CZA7RcAn.js +0 -2
- package/dist/chunks/radioGroup.types-CZA7RcAn.js.map +0 -1
- package/dist/chunks/radioGroup.types-Dld5lmgo.js +0 -231
- package/dist/chunks/radioGroup.types-Dld5lmgo.js.map +0 -1
- package/dist/chunks/ratingDots.component-DcrCudac.js +0 -2
- package/dist/chunks/ratingDots.component-DcrCudac.js.map +0 -1
- package/dist/chunks/ratingDots.component-G4GMWvFy.js +0 -138
- package/dist/chunks/ratingDots.component-G4GMWvFy.js.map +0 -1
- package/dist/chunks/select.component-BTWHWvZV.js +0 -1058
- package/dist/chunks/select.component-BTWHWvZV.js.map +0 -1
- package/dist/chunks/select.component-Dyc1yQPO.js +0 -2
- package/dist/chunks/select.component-Dyc1yQPO.js.map +0 -1
- package/dist/chunks/spinner-C31ZWQmA.js +0 -8
- package/dist/chunks/spinner.component-CVVOuFka.js +0 -2
- package/dist/chunks/spinner.component-CVVOuFka.js.map +0 -1
- package/dist/chunks/spinner.component-DPYj17HK.js.map +0 -1
- package/dist/chunks/styledAvatar.types-CMpyDxAM.js +0 -2
- package/dist/chunks/styledAvatar.types-CMpyDxAM.js.map +0 -1
- package/dist/chunks/styledAvatar.types-CS07Zk7c.js +0 -51
- package/dist/chunks/styledAvatar.types-CS07Zk7c.js.map +0 -1
- package/dist/chunks/swatch.types-CXlghcLw.js.map +0 -1
- package/dist/chunks/swatch.types-jaI0KFHU.js +0 -2
- package/dist/chunks/swatch.types-jaI0KFHU.js.map +0 -1
- package/dist/chunks/switch.component-C88jBbo_.js +0 -2
- package/dist/chunks/switch.component-Cke7O8gk.js +0 -154
- package/dist/chunks/tab.types-DpmXyw5C.js +0 -2
- package/dist/chunks/tag.component-79aRVI7u.js +0 -82
- package/dist/chunks/tag.component-79aRVI7u.js.map +0 -1
- package/dist/chunks/tag.component-CAWh9OYa.js +0 -2
- package/dist/chunks/tag.component-CAWh9OYa.js.map +0 -1
- package/dist/chunks/tagBlock.component-Dn7coOgp.js +0 -2
- package/dist/chunks/tagBlock.component-Dn7coOgp.js.map +0 -1
- package/dist/chunks/tagBlock.component-vLA90b5S.js +0 -169
- package/dist/chunks/tagBlock.component-vLA90b5S.js.map +0 -1
- package/dist/chunks/text.component-CHpMvCFa.js +0 -2
- package/dist/chunks/text.component-CHpMvCFa.js.map +0 -1
- package/dist/chunks/text.component-D9w-u_dB.js +0 -12
- package/dist/chunks/text.component-D9w-u_dB.js.map +0 -1
- package/dist/chunks/textInput.component-Dpxb2RI-.js +0 -169
- package/dist/chunks/textInput.component-Dpxb2RI-.js.map +0 -1
- package/dist/chunks/textInput.component-Dx_Ktcmr.js +0 -2
- package/dist/chunks/textInput.component-Dx_Ktcmr.js.map +0 -1
- package/dist/chunks/textarea.component-BYexywy1.js +0 -2
- package/dist/chunks/textarea.component-Dk2IMKkr.js +0 -79
- package/dist/chunks/theme.provider-XYBMZJTB.js +0 -28
- package/dist/chunks/theme.provider-XYBMZJTB.js.map +0 -1
- package/dist/chunks/theme.provider-w_I9S10D.js.map +0 -1
- package/dist/chunks/timePicker.component-Bbd3BOA6.js +0 -209
- package/dist/chunks/timePicker.component-Bbd3BOA6.js.map +0 -1
- package/dist/chunks/timePicker.component-DcNgUFGj.js +0 -2
- package/dist/chunks/timePicker.component-DcNgUFGj.js.map +0 -1
- package/dist/chunks/timeRange.component-BBhPc2LP.js +0 -18
- package/dist/chunks/timeRange.component-BBhPc2LP.js.map +0 -1
- package/dist/chunks/timeRange.component-Bb-xDHWT.js +0 -2
- package/dist/chunks/timeRange.component-Bb-xDHWT.js.map +0 -1
- package/dist/chunks/timestamp.component-CrY5t68x.js +0 -2
- package/dist/chunks/timestamp.component-CrY5t68x.js.map +0 -1
- package/dist/chunks/timestamp.component-m0FTjlAi.js +0 -51
- package/dist/chunks/timestamp.component-m0FTjlAi.js.map +0 -1
- package/dist/chunks/toaster.records-eCXbM85Z.js +0 -2
- package/dist/chunks/tooltip.component-CATpCSkf.js +0 -2
- package/dist/chunks/typography.records-CpYV1kns.js.map +0 -1
- package/dist/chunks/typography.records-Dbw3sz4i.js +0 -2
- package/dist/chunks/typography.records-Dbw3sz4i.js.map +0 -1
- package/dist/chunks/use-locale-context-CazVZ4Kg.js +0 -2315
- package/dist/chunks/use-locale-context-CazVZ4Kg.js.map +0 -1
- package/dist/chunks/use-locale-context-Dv7DQ_mn.js +0 -22
- package/dist/chunks/use-locale-context-Dv7DQ_mn.js.map +0 -1
- package/dist/chunks/use-slot-recipe-8liupslO.js +0 -2
- package/dist/chunks/use-slot-recipe-8liupslO.js.map +0 -1
- package/dist/chunks/use-slot-recipe-DhtQ1j_5.js +0 -13
- package/dist/chunks/use-slot-recipe-DhtQ1j_5.js.map +0 -1
- package/dist/chunks/withFormControl-BdiccBy5.js +0 -2
- package/dist/chunks/withFormControl-BdiccBy5.js.map +0 -1
- package/dist/chunks/withFormControl-CRXVopOk.js +0 -361
- package/dist/chunks/withFormControl-CRXVopOk.js.map +0 -1
- package/dist/chunks/withTruncation-C9XLf_j6.js +0 -67
- package/dist/chunks/withTruncation-C9XLf_j6.js.map +0 -1
- package/dist/chunks/withTruncation-Ddr3jvAO.js +0 -2
- package/dist/chunks/withTruncation-Ddr3jvAO.js.map +0 -1
- package/dist/types/components/Menu/components/MenuButton/menuButton.components.d.ts +0 -9
- package/dist/types/components/Menu/components/MenuToggleButtons/menuToggleButtons.d.ts +0 -10
- package/dist/types/shared/utils/argTypes.d.ts +0 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sortableList.component-i4dJ9oHN.js","sources":["../../node_modules/@dnd-kit/utilities/dist/utilities.esm.js","../../node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js","../../node_modules/@dnd-kit/core/dist/core.esm.js","../../node_modules/@dnd-kit/sortable/dist/sortable.esm.js","../../src/components/SortableList/components/SortableListItem/sortableListItem.context.ts","../../src/components/SortableList/components/SortableListDragHandle/sortableListDragHandle.component.tsx","../../src/components/SortableList/components/SortableListItem/sortableListItem.component.tsx","../../src/components/SortableList/sortableList.component.tsx"],"sourcesContent":["import { useMemo, useLayoutEffect, useEffect, useRef, useCallback } from 'react';\n\nfunction useCombinedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return useMemo(() => node => {\n refs.forEach(ref => ref(node));\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n refs);\n}\n\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nconst canUseDOM = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';\n\nfunction isWindow(element) {\n const elementString = Object.prototype.toString.call(element);\n return elementString === '[object Window]' || // In Electron context the Window object serializes to [object global]\n elementString === '[object global]';\n}\n\nfunction isNode(node) {\n return 'nodeType' in node;\n}\n\nfunction getWindow(target) {\n var _target$ownerDocument, _target$ownerDocument2;\n\n if (!target) {\n return window;\n }\n\n if (isWindow(target)) {\n return target;\n }\n\n if (!isNode(target)) {\n return window;\n }\n\n return (_target$ownerDocument = (_target$ownerDocument2 = target.ownerDocument) == null ? void 0 : _target$ownerDocument2.defaultView) != null ? _target$ownerDocument : window;\n}\n\nfunction isDocument(node) {\n const {\n Document\n } = getWindow(node);\n return node instanceof Document;\n}\n\nfunction isHTMLElement(node) {\n if (isWindow(node)) {\n return false;\n }\n\n return node instanceof getWindow(node).HTMLElement;\n}\n\nfunction isSVGElement(node) {\n return node instanceof getWindow(node).SVGElement;\n}\n\nfunction getOwnerDocument(target) {\n if (!target) {\n return document;\n }\n\n if (isWindow(target)) {\n return target.document;\n }\n\n if (!isNode(target)) {\n return document;\n }\n\n if (isDocument(target)) {\n return target;\n }\n\n if (isHTMLElement(target) || isSVGElement(target)) {\n return target.ownerDocument;\n }\n\n return document;\n}\n\n/**\r\n * A hook that resolves to useEffect on the server and useLayoutEffect on the client\r\n * @param callback {function} Callback function that is invoked when the dependencies of the hook change\r\n */\n\nconst useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;\n\nfunction useEvent(handler) {\n const handlerRef = useRef(handler);\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n });\n return useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return handlerRef.current == null ? void 0 : handlerRef.current(...args);\n }, []);\n}\n\nfunction useInterval() {\n const intervalRef = useRef(null);\n const set = useCallback((listener, duration) => {\n intervalRef.current = setInterval(listener, duration);\n }, []);\n const clear = useCallback(() => {\n if (intervalRef.current !== null) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n return [set, clear];\n}\n\nfunction useLatestValue(value, dependencies) {\n if (dependencies === void 0) {\n dependencies = [value];\n }\n\n const valueRef = useRef(value);\n useIsomorphicLayoutEffect(() => {\n if (valueRef.current !== value) {\n valueRef.current = value;\n }\n }, dependencies);\n return valueRef;\n}\n\nfunction useLazyMemo(callback, dependencies) {\n const valueRef = useRef();\n return useMemo(() => {\n const newValue = callback(valueRef.current);\n valueRef.current = newValue;\n return newValue;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [...dependencies]);\n}\n\nfunction useNodeRef(onChange) {\n const onChangeHandler = useEvent(onChange);\n const node = useRef(null);\n const setNodeRef = useCallback(element => {\n if (element !== node.current) {\n onChangeHandler == null ? void 0 : onChangeHandler(element, node.current);\n }\n\n node.current = element;\n }, //eslint-disable-next-line\n []);\n return [node, setNodeRef];\n}\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nlet ids = {};\nfunction useUniqueId(prefix, value) {\n return useMemo(() => {\n if (value) {\n return value;\n }\n\n const id = ids[prefix] == null ? 0 : ids[prefix] + 1;\n ids[prefix] = id;\n return prefix + \"-\" + id;\n }, [prefix, value]);\n}\n\nfunction createAdjustmentFn(modifier) {\n return function (object) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((accumulator, adjustment) => {\n const entries = Object.entries(adjustment);\n\n for (const [key, valueAdjustment] of entries) {\n const value = accumulator[key];\n\n if (value != null) {\n accumulator[key] = value + modifier * valueAdjustment;\n }\n }\n\n return accumulator;\n }, { ...object\n });\n };\n}\n\nconst add = /*#__PURE__*/createAdjustmentFn(1);\nconst subtract = /*#__PURE__*/createAdjustmentFn(-1);\n\nfunction hasViewportRelativeCoordinates(event) {\n return 'clientX' in event && 'clientY' in event;\n}\n\nfunction isKeyboardEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n KeyboardEvent\n } = getWindow(event.target);\n return KeyboardEvent && event instanceof KeyboardEvent;\n}\n\nfunction isTouchEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n TouchEvent\n } = getWindow(event.target);\n return TouchEvent && event instanceof TouchEvent;\n}\n\n/**\r\n * Returns the normalized x and y coordinates for mouse and touch events.\r\n */\n\nfunction getEventCoordinates(event) {\n if (isTouchEvent(event)) {\n if (event.touches && event.touches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.touches[0];\n return {\n x,\n y\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.changedTouches[0];\n return {\n x,\n y\n };\n }\n }\n\n if (hasViewportRelativeCoordinates(event)) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n\n return null;\n}\n\nconst CSS = /*#__PURE__*/Object.freeze({\n Translate: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n x,\n y\n } = transform;\n return \"translate3d(\" + (x ? Math.round(x) : 0) + \"px, \" + (y ? Math.round(y) : 0) + \"px, 0)\";\n }\n\n },\n Scale: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n scaleX,\n scaleY\n } = transform;\n return \"scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\";\n }\n\n },\n Transform: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');\n }\n\n },\n Transition: {\n toString(_ref) {\n let {\n property,\n duration,\n easing\n } = _ref;\n return property + \" \" + duration + \"ms \" + easing;\n }\n\n }\n});\n\nconst SELECTOR = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';\nfunction findFirstFocusableNode(element) {\n if (element.matches(SELECTOR)) {\n return element;\n }\n\n return element.querySelector(SELECTOR);\n}\n\nexport { CSS, add, canUseDOM, findFirstFocusableNode, getEventCoordinates, getOwnerDocument, getWindow, hasViewportRelativeCoordinates, isDocument, isHTMLElement, isKeyboardEvent, isNode, isSVGElement, isTouchEvent, isWindow, subtract, useCombinedRefs, useEvent, useInterval, useIsomorphicLayoutEffect, useLatestValue, useLazyMemo, useNodeRef, usePrevious, useUniqueId };\n//# sourceMappingURL=utilities.esm.js.map\n","import React, { useState, useCallback } from 'react';\n\nconst hiddenStyles = {\n display: 'none'\n};\nfunction HiddenText(_ref) {\n let {\n id,\n value\n } = _ref;\n return React.createElement(\"div\", {\n id: id,\n style: hiddenStyles\n }, value);\n}\n\nfunction LiveRegion(_ref) {\n let {\n id,\n announcement,\n ariaLiveType = \"assertive\"\n } = _ref;\n // Hide element visually but keep it readable by screen readers\n const visuallyHidden = {\n position: 'fixed',\n top: 0,\n left: 0,\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(100%)',\n whiteSpace: 'nowrap'\n };\n return React.createElement(\"div\", {\n id: id,\n style: visuallyHidden,\n role: \"status\",\n \"aria-live\": ariaLiveType,\n \"aria-atomic\": true\n }, announcement);\n}\n\nfunction useAnnouncement() {\n const [announcement, setAnnouncement] = useState('');\n const announce = useCallback(value => {\n if (value != null) {\n setAnnouncement(value);\n }\n }, []);\n return {\n announce,\n announcement\n };\n}\n\nexport { HiddenText, LiveRegion, useAnnouncement };\n//# sourceMappingURL=accessibility.esm.js.map\n","import React, { createContext, useContext, useEffect, useState, useCallback, useMemo, useRef, memo, useReducer, cloneElement, forwardRef } from 'react';\nimport { createPortal, unstable_batchedUpdates } from 'react-dom';\nimport { useUniqueId, getEventCoordinates, getWindow, isDocument, isHTMLElement, isSVGElement, canUseDOM, isWindow, isNode, getOwnerDocument, add, isKeyboardEvent, subtract, useLazyMemo, useInterval, usePrevious, useLatestValue, useEvent, useIsomorphicLayoutEffect, useNodeRef, findFirstFocusableNode, CSS } from '@dnd-kit/utilities';\nimport { useAnnouncement, HiddenText, LiveRegion } from '@dnd-kit/accessibility';\n\nconst DndMonitorContext = /*#__PURE__*/createContext(null);\n\nfunction useDndMonitor(listener) {\n const registerListener = useContext(DndMonitorContext);\n useEffect(() => {\n if (!registerListener) {\n throw new Error('useDndMonitor must be used within a children of <DndContext>');\n }\n\n const unsubscribe = registerListener(listener);\n return unsubscribe;\n }, [listener, registerListener]);\n}\n\nfunction useDndMonitorProvider() {\n const [listeners] = useState(() => new Set());\n const registerListener = useCallback(listener => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n }, [listeners]);\n const dispatch = useCallback(_ref => {\n let {\n type,\n event\n } = _ref;\n listeners.forEach(listener => {\n var _listener$type;\n\n return (_listener$type = listener[type]) == null ? void 0 : _listener$type.call(listener, event);\n });\n }, [listeners]);\n return [dispatch, registerListener];\n}\n\nconst defaultScreenReaderInstructions = {\n draggable: \"\\n To pick up a draggable item, press the space bar.\\n While dragging, use the arrow keys to move the item.\\n Press space again to drop the item in its new position, or press escape to cancel.\\n \"\n};\nconst defaultAnnouncements = {\n onDragStart(_ref) {\n let {\n active\n } = _ref;\n return \"Picked up draggable item \" + active.id + \".\";\n },\n\n onDragOver(_ref2) {\n let {\n active,\n over\n } = _ref2;\n\n if (over) {\n return \"Draggable item \" + active.id + \" was moved over droppable area \" + over.id + \".\";\n }\n\n return \"Draggable item \" + active.id + \" is no longer over a droppable area.\";\n },\n\n onDragEnd(_ref3) {\n let {\n active,\n over\n } = _ref3;\n\n if (over) {\n return \"Draggable item \" + active.id + \" was dropped over droppable area \" + over.id;\n }\n\n return \"Draggable item \" + active.id + \" was dropped.\";\n },\n\n onDragCancel(_ref4) {\n let {\n active\n } = _ref4;\n return \"Dragging was cancelled. Draggable item \" + active.id + \" was dropped.\";\n }\n\n};\n\nfunction Accessibility(_ref) {\n let {\n announcements = defaultAnnouncements,\n container,\n hiddenTextDescribedById,\n screenReaderInstructions = defaultScreenReaderInstructions\n } = _ref;\n const {\n announce,\n announcement\n } = useAnnouncement();\n const liveRegionId = useUniqueId(\"DndLiveRegion\");\n const [mounted, setMounted] = useState(false);\n useEffect(() => {\n setMounted(true);\n }, []);\n useDndMonitor(useMemo(() => ({\n onDragStart(_ref2) {\n let {\n active\n } = _ref2;\n announce(announcements.onDragStart({\n active\n }));\n },\n\n onDragMove(_ref3) {\n let {\n active,\n over\n } = _ref3;\n\n if (announcements.onDragMove) {\n announce(announcements.onDragMove({\n active,\n over\n }));\n }\n },\n\n onDragOver(_ref4) {\n let {\n active,\n over\n } = _ref4;\n announce(announcements.onDragOver({\n active,\n over\n }));\n },\n\n onDragEnd(_ref5) {\n let {\n active,\n over\n } = _ref5;\n announce(announcements.onDragEnd({\n active,\n over\n }));\n },\n\n onDragCancel(_ref6) {\n let {\n active,\n over\n } = _ref6;\n announce(announcements.onDragCancel({\n active,\n over\n }));\n }\n\n }), [announce, announcements]));\n\n if (!mounted) {\n return null;\n }\n\n const markup = React.createElement(React.Fragment, null, React.createElement(HiddenText, {\n id: hiddenTextDescribedById,\n value: screenReaderInstructions.draggable\n }), React.createElement(LiveRegion, {\n id: liveRegionId,\n announcement: announcement\n }));\n return container ? createPortal(markup, container) : markup;\n}\n\nvar Action;\n\n(function (Action) {\n Action[\"DragStart\"] = \"dragStart\";\n Action[\"DragMove\"] = \"dragMove\";\n Action[\"DragEnd\"] = \"dragEnd\";\n Action[\"DragCancel\"] = \"dragCancel\";\n Action[\"DragOver\"] = \"dragOver\";\n Action[\"RegisterDroppable\"] = \"registerDroppable\";\n Action[\"SetDroppableDisabled\"] = \"setDroppableDisabled\";\n Action[\"UnregisterDroppable\"] = \"unregisterDroppable\";\n})(Action || (Action = {}));\n\nfunction noop() {}\n\nfunction useSensor(sensor, options) {\n return useMemo(() => ({\n sensor,\n options: options != null ? options : {}\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [sensor, options]);\n}\n\nfunction useSensors() {\n for (var _len = arguments.length, sensors = new Array(_len), _key = 0; _key < _len; _key++) {\n sensors[_key] = arguments[_key];\n }\n\n return useMemo(() => [...sensors].filter(sensor => sensor != null), // eslint-disable-next-line react-hooks/exhaustive-deps\n [...sensors]);\n}\n\nconst defaultCoordinates = /*#__PURE__*/Object.freeze({\n x: 0,\n y: 0\n});\n\n/**\r\n * Returns the distance between two points\r\n */\nfunction distanceBetween(p1, p2) {\n return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n}\n\nfunction getRelativeTransformOrigin(event, rect) {\n const eventCoordinates = getEventCoordinates(event);\n\n if (!eventCoordinates) {\n return '0 0';\n }\n\n const transformOrigin = {\n x: (eventCoordinates.x - rect.left) / rect.width * 100,\n y: (eventCoordinates.y - rect.top) / rect.height * 100\n };\n return transformOrigin.x + \"% \" + transformOrigin.y + \"%\";\n}\n\n/**\r\n * Sort collisions from smallest to greatest value\r\n */\nfunction sortCollisionsAsc(_ref, _ref2) {\n let {\n data: {\n value: a\n }\n } = _ref;\n let {\n data: {\n value: b\n }\n } = _ref2;\n return a - b;\n}\n/**\r\n * Sort collisions from greatest to smallest value\r\n */\n\nfunction sortCollisionsDesc(_ref3, _ref4) {\n let {\n data: {\n value: a\n }\n } = _ref3;\n let {\n data: {\n value: b\n }\n } = _ref4;\n return b - a;\n}\n/**\r\n * Returns the coordinates of the corners of a given rectangle:\r\n * [TopLeft {x, y}, TopRight {x, y}, BottomLeft {x, y}, BottomRight {x, y}]\r\n */\n\nfunction cornersOfRectangle(_ref5) {\n let {\n left,\n top,\n height,\n width\n } = _ref5;\n return [{\n x: left,\n y: top\n }, {\n x: left + width,\n y: top\n }, {\n x: left,\n y: top + height\n }, {\n x: left + width,\n y: top + height\n }];\n}\nfunction getFirstCollision(collisions, property) {\n if (!collisions || collisions.length === 0) {\n return null;\n }\n\n const [firstCollision] = collisions;\n return property ? firstCollision[property] : firstCollision;\n}\n\n/**\r\n * Returns the coordinates of the center of a given ClientRect\r\n */\n\nfunction centerOfRectangle(rect, left, top) {\n if (left === void 0) {\n left = rect.left;\n }\n\n if (top === void 0) {\n top = rect.top;\n }\n\n return {\n x: left + rect.width * 0.5,\n y: top + rect.height * 0.5\n };\n}\n/**\r\n * Returns the closest rectangles from an array of rectangles to the center of a given\r\n * rectangle.\r\n */\n\n\nconst closestCenter = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const centerRect = centerOfRectangle(collisionRect, collisionRect.left, collisionRect.top);\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const distBetween = distanceBetween(centerOfRectangle(rect), centerRect);\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: distBetween\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the closest rectangles from an array of rectangles to the corners of\r\n * another rectangle.\r\n */\n\nconst closestCorners = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const corners = cornersOfRectangle(collisionRect);\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const rectCorners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner, index) => {\n return accumulator + distanceBetween(rectCorners[index], corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: effectiveDistance\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the intersecting rectangle area between two rectangles\r\n */\n\nfunction getIntersectionRatio(entry, target) {\n const top = Math.max(target.top, entry.top);\n const left = Math.max(target.left, entry.left);\n const right = Math.min(target.left + target.width, entry.left + entry.width);\n const bottom = Math.min(target.top + target.height, entry.top + entry.height);\n const width = right - left;\n const height = bottom - top;\n\n if (left < right && top < bottom) {\n const targetArea = target.width * target.height;\n const entryArea = entry.width * entry.height;\n const intersectionArea = width * height;\n const intersectionRatio = intersectionArea / (targetArea + entryArea - intersectionArea);\n return Number(intersectionRatio.toFixed(4));\n } // Rectangles do not overlap, or overlap has an area of zero (edge/corner overlap)\n\n\n return 0;\n}\n/**\r\n * Returns the rectangles that has the greatest intersection area with a given\r\n * rectangle in an array of rectangles.\r\n */\n\nconst rectIntersection = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const intersectionRatio = getIntersectionRatio(rect, collisionRect);\n\n if (intersectionRatio > 0) {\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: intersectionRatio\n }\n });\n }\n }\n }\n\n return collisions.sort(sortCollisionsDesc);\n};\n\n/**\r\n * Check if a given point is contained within a bounding rectangle\r\n */\n\nfunction isPointWithinRect(point, rect) {\n const {\n top,\n left,\n bottom,\n right\n } = rect;\n return top <= point.y && point.y <= bottom && left <= point.x && point.x <= right;\n}\n/**\r\n * Returns the rectangles that the pointer is hovering over\r\n */\n\n\nconst pointerWithin = _ref => {\n let {\n droppableContainers,\n droppableRects,\n pointerCoordinates\n } = _ref;\n\n if (!pointerCoordinates) {\n return [];\n }\n\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect && isPointWithinRect(pointerCoordinates, rect)) {\n /* There may be more than a single rectangle intersecting\r\n * with the pointer coordinates. In order to sort the\r\n * colliding rectangles, we measure the distance between\r\n * the pointer and the corners of the intersecting rectangle\r\n */\n const corners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner) => {\n return accumulator + distanceBetween(pointerCoordinates, corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: effectiveDistance\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\nfunction adjustScale(transform, rect1, rect2) {\n return { ...transform,\n scaleX: rect1 && rect2 ? rect1.width / rect2.width : 1,\n scaleY: rect1 && rect2 ? rect1.height / rect2.height : 1\n };\n}\n\nfunction getRectDelta(rect1, rect2) {\n return rect1 && rect2 ? {\n x: rect1.left - rect2.left,\n y: rect1.top - rect2.top\n } : defaultCoordinates;\n}\n\nfunction createRectAdjustmentFn(modifier) {\n return function adjustClientRect(rect) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((acc, adjustment) => ({ ...acc,\n top: acc.top + modifier * adjustment.y,\n bottom: acc.bottom + modifier * adjustment.y,\n left: acc.left + modifier * adjustment.x,\n right: acc.right + modifier * adjustment.x\n }), { ...rect\n });\n };\n}\nconst getAdjustedRect = /*#__PURE__*/createRectAdjustmentFn(1);\n\nfunction parseTransform(transform) {\n if (transform.startsWith('matrix3d(')) {\n const transformArray = transform.slice(9, -1).split(/, /);\n return {\n x: +transformArray[12],\n y: +transformArray[13],\n scaleX: +transformArray[0],\n scaleY: +transformArray[5]\n };\n } else if (transform.startsWith('matrix(')) {\n const transformArray = transform.slice(7, -1).split(/, /);\n return {\n x: +transformArray[4],\n y: +transformArray[5],\n scaleX: +transformArray[0],\n scaleY: +transformArray[3]\n };\n }\n\n return null;\n}\n\nfunction inverseTransform(rect, transform, transformOrigin) {\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return rect;\n }\n\n const {\n scaleX,\n scaleY,\n x: translateX,\n y: translateY\n } = parsedTransform;\n const x = rect.left - translateX - (1 - scaleX) * parseFloat(transformOrigin);\n const y = rect.top - translateY - (1 - scaleY) * parseFloat(transformOrigin.slice(transformOrigin.indexOf(' ') + 1));\n const w = scaleX ? rect.width / scaleX : rect.width;\n const h = scaleY ? rect.height / scaleY : rect.height;\n return {\n width: w,\n height: h,\n top: y,\n right: x + w,\n bottom: y + h,\n left: x\n };\n}\n\nconst defaultOptions = {\n ignoreTransform: false\n};\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n */\n\nfunction getClientRect(element, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n let rect = element.getBoundingClientRect();\n\n if (options.ignoreTransform) {\n const {\n transform,\n transformOrigin\n } = getWindow(element).getComputedStyle(element);\n\n if (transform) {\n rect = inverseTransform(rect, transform, transformOrigin);\n }\n }\n\n const {\n top,\n left,\n width,\n height,\n bottom,\n right\n } = rect;\n return {\n top,\n left,\n width,\n height,\n bottom,\n right\n };\n}\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n *\r\n * @remarks\r\n * The ClientRect returned by this method does not take into account transforms\r\n * applied to the element it measures.\r\n *\r\n */\n\nfunction getTransformAgnosticClientRect(element) {\n return getClientRect(element, {\n ignoreTransform: true\n });\n}\n\nfunction getWindowClientRect(element) {\n const width = element.innerWidth;\n const height = element.innerHeight;\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height\n };\n}\n\nfunction isFixed(node, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = getWindow(node).getComputedStyle(node);\n }\n\n return computedStyle.position === 'fixed';\n}\n\nfunction isScrollable(element, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = getWindow(element).getComputedStyle(element);\n }\n\n const overflowRegex = /(auto|scroll|overlay)/;\n const properties = ['overflow', 'overflowX', 'overflowY'];\n return properties.some(property => {\n const value = computedStyle[property];\n return typeof value === 'string' ? overflowRegex.test(value) : false;\n });\n}\n\nfunction getScrollableAncestors(element, limit) {\n const scrollParents = [];\n\n function findScrollableAncestors(node) {\n if (limit != null && scrollParents.length >= limit) {\n return scrollParents;\n }\n\n if (!node) {\n return scrollParents;\n }\n\n if (isDocument(node) && node.scrollingElement != null && !scrollParents.includes(node.scrollingElement)) {\n scrollParents.push(node.scrollingElement);\n return scrollParents;\n }\n\n if (!isHTMLElement(node) || isSVGElement(node)) {\n return scrollParents;\n }\n\n if (scrollParents.includes(node)) {\n return scrollParents;\n }\n\n const computedStyle = getWindow(element).getComputedStyle(node);\n\n if (node !== element) {\n if (isScrollable(node, computedStyle)) {\n scrollParents.push(node);\n }\n }\n\n if (isFixed(node, computedStyle)) {\n return scrollParents;\n }\n\n return findScrollableAncestors(node.parentNode);\n }\n\n if (!element) {\n return scrollParents;\n }\n\n return findScrollableAncestors(element);\n}\nfunction getFirstScrollableAncestor(node) {\n const [firstScrollableAncestor] = getScrollableAncestors(node, 1);\n return firstScrollableAncestor != null ? firstScrollableAncestor : null;\n}\n\nfunction getScrollableElement(element) {\n if (!canUseDOM || !element) {\n return null;\n }\n\n if (isWindow(element)) {\n return element;\n }\n\n if (!isNode(element)) {\n return null;\n }\n\n if (isDocument(element) || element === getOwnerDocument(element).scrollingElement) {\n return window;\n }\n\n if (isHTMLElement(element)) {\n return element;\n }\n\n return null;\n}\n\nfunction getScrollXCoordinate(element) {\n if (isWindow(element)) {\n return element.scrollX;\n }\n\n return element.scrollLeft;\n}\nfunction getScrollYCoordinate(element) {\n if (isWindow(element)) {\n return element.scrollY;\n }\n\n return element.scrollTop;\n}\nfunction getScrollCoordinates(element) {\n return {\n x: getScrollXCoordinate(element),\n y: getScrollYCoordinate(element)\n };\n}\n\nvar Direction;\n\n(function (Direction) {\n Direction[Direction[\"Forward\"] = 1] = \"Forward\";\n Direction[Direction[\"Backward\"] = -1] = \"Backward\";\n})(Direction || (Direction = {}));\n\nfunction isDocumentScrollingElement(element) {\n if (!canUseDOM || !element) {\n return false;\n }\n\n return element === document.scrollingElement;\n}\n\nfunction getScrollPosition(scrollingContainer) {\n const minScroll = {\n x: 0,\n y: 0\n };\n const dimensions = isDocumentScrollingElement(scrollingContainer) ? {\n height: window.innerHeight,\n width: window.innerWidth\n } : {\n height: scrollingContainer.clientHeight,\n width: scrollingContainer.clientWidth\n };\n const maxScroll = {\n x: scrollingContainer.scrollWidth - dimensions.width,\n y: scrollingContainer.scrollHeight - dimensions.height\n };\n const isTop = scrollingContainer.scrollTop <= minScroll.y;\n const isLeft = scrollingContainer.scrollLeft <= minScroll.x;\n const isBottom = scrollingContainer.scrollTop >= maxScroll.y;\n const isRight = scrollingContainer.scrollLeft >= maxScroll.x;\n return {\n isTop,\n isLeft,\n isBottom,\n isRight,\n maxScroll,\n minScroll\n };\n}\n\nconst defaultThreshold = {\n x: 0.2,\n y: 0.2\n};\nfunction getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, _ref, acceleration, thresholdPercentage) {\n let {\n top,\n left,\n right,\n bottom\n } = _ref;\n\n if (acceleration === void 0) {\n acceleration = 10;\n }\n\n if (thresholdPercentage === void 0) {\n thresholdPercentage = defaultThreshold;\n }\n\n const {\n isTop,\n isBottom,\n isLeft,\n isRight\n } = getScrollPosition(scrollContainer);\n const direction = {\n x: 0,\n y: 0\n };\n const speed = {\n x: 0,\n y: 0\n };\n const threshold = {\n height: scrollContainerRect.height * thresholdPercentage.y,\n width: scrollContainerRect.width * thresholdPercentage.x\n };\n\n if (!isTop && top <= scrollContainerRect.top + threshold.height) {\n // Scroll Up\n direction.y = Direction.Backward;\n speed.y = acceleration * Math.abs((scrollContainerRect.top + threshold.height - top) / threshold.height);\n } else if (!isBottom && bottom >= scrollContainerRect.bottom - threshold.height) {\n // Scroll Down\n direction.y = Direction.Forward;\n speed.y = acceleration * Math.abs((scrollContainerRect.bottom - threshold.height - bottom) / threshold.height);\n }\n\n if (!isRight && right >= scrollContainerRect.right - threshold.width) {\n // Scroll Right\n direction.x = Direction.Forward;\n speed.x = acceleration * Math.abs((scrollContainerRect.right - threshold.width - right) / threshold.width);\n } else if (!isLeft && left <= scrollContainerRect.left + threshold.width) {\n // Scroll Left\n direction.x = Direction.Backward;\n speed.x = acceleration * Math.abs((scrollContainerRect.left + threshold.width - left) / threshold.width);\n }\n\n return {\n direction,\n speed\n };\n}\n\nfunction getScrollElementRect(element) {\n if (element === document.scrollingElement) {\n const {\n innerWidth,\n innerHeight\n } = window;\n return {\n top: 0,\n left: 0,\n right: innerWidth,\n bottom: innerHeight,\n width: innerWidth,\n height: innerHeight\n };\n }\n\n const {\n top,\n left,\n right,\n bottom\n } = element.getBoundingClientRect();\n return {\n top,\n left,\n right,\n bottom,\n width: element.clientWidth,\n height: element.clientHeight\n };\n}\n\nfunction getScrollOffsets(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return add(acc, getScrollCoordinates(node));\n }, defaultCoordinates);\n}\nfunction getScrollXOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollXCoordinate(node);\n }, 0);\n}\nfunction getScrollYOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollYCoordinate(node);\n }, 0);\n}\n\nfunction scrollIntoViewIfNeeded(element, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n\n if (!element) {\n return;\n }\n\n const {\n top,\n left,\n bottom,\n right\n } = measure(element);\n const firstScrollableAncestor = getFirstScrollableAncestor(element);\n\n if (!firstScrollableAncestor) {\n return;\n }\n\n if (bottom <= 0 || right <= 0 || top >= window.innerHeight || left >= window.innerWidth) {\n element.scrollIntoView({\n block: 'center',\n inline: 'center'\n });\n }\n}\n\nconst properties = [['x', ['left', 'right'], getScrollXOffset], ['y', ['top', 'bottom'], getScrollYOffset]];\nclass Rect {\n constructor(rect, element) {\n this.rect = void 0;\n this.width = void 0;\n this.height = void 0;\n this.top = void 0;\n this.bottom = void 0;\n this.right = void 0;\n this.left = void 0;\n const scrollableAncestors = getScrollableAncestors(element);\n const scrollOffsets = getScrollOffsets(scrollableAncestors);\n this.rect = { ...rect\n };\n this.width = rect.width;\n this.height = rect.height;\n\n for (const [axis, keys, getScrollOffset] of properties) {\n for (const key of keys) {\n Object.defineProperty(this, key, {\n get: () => {\n const currentOffsets = getScrollOffset(scrollableAncestors);\n const scrollOffsetsDeltla = scrollOffsets[axis] - currentOffsets;\n return this.rect[key] + scrollOffsetsDeltla;\n },\n enumerable: true\n });\n }\n }\n\n Object.defineProperty(this, 'rect', {\n enumerable: false\n });\n }\n\n}\n\nclass Listeners {\n constructor(target) {\n this.target = void 0;\n this.listeners = [];\n\n this.removeAll = () => {\n this.listeners.forEach(listener => {\n var _this$target;\n\n return (_this$target = this.target) == null ? void 0 : _this$target.removeEventListener(...listener);\n });\n };\n\n this.target = target;\n }\n\n add(eventName, handler, options) {\n var _this$target2;\n\n (_this$target2 = this.target) == null ? void 0 : _this$target2.addEventListener(eventName, handler, options);\n this.listeners.push([eventName, handler, options]);\n }\n\n}\n\nfunction getEventListenerTarget(target) {\n // If the `event.target` element is removed from the document events will still be targeted\n // at it, and hence won't always bubble up to the window or document anymore.\n // If there is any risk of an element being removed while it is being dragged,\n // the best practice is to attach the event listeners directly to the target.\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget\n const {\n EventTarget\n } = getWindow(target);\n return target instanceof EventTarget ? target : getOwnerDocument(target);\n}\n\nfunction hasExceededDistance(delta, measurement) {\n const dx = Math.abs(delta.x);\n const dy = Math.abs(delta.y);\n\n if (typeof measurement === 'number') {\n return Math.sqrt(dx ** 2 + dy ** 2) > measurement;\n }\n\n if ('x' in measurement && 'y' in measurement) {\n return dx > measurement.x && dy > measurement.y;\n }\n\n if ('x' in measurement) {\n return dx > measurement.x;\n }\n\n if ('y' in measurement) {\n return dy > measurement.y;\n }\n\n return false;\n}\n\nvar EventName;\n\n(function (EventName) {\n EventName[\"Click\"] = \"click\";\n EventName[\"DragStart\"] = \"dragstart\";\n EventName[\"Keydown\"] = \"keydown\";\n EventName[\"ContextMenu\"] = \"contextmenu\";\n EventName[\"Resize\"] = \"resize\";\n EventName[\"SelectionChange\"] = \"selectionchange\";\n EventName[\"VisibilityChange\"] = \"visibilitychange\";\n})(EventName || (EventName = {}));\n\nfunction preventDefault(event) {\n event.preventDefault();\n}\nfunction stopPropagation(event) {\n event.stopPropagation();\n}\n\nvar KeyboardCode;\n\n(function (KeyboardCode) {\n KeyboardCode[\"Space\"] = \"Space\";\n KeyboardCode[\"Down\"] = \"ArrowDown\";\n KeyboardCode[\"Right\"] = \"ArrowRight\";\n KeyboardCode[\"Left\"] = \"ArrowLeft\";\n KeyboardCode[\"Up\"] = \"ArrowUp\";\n KeyboardCode[\"Esc\"] = \"Escape\";\n KeyboardCode[\"Enter\"] = \"Enter\";\n KeyboardCode[\"Tab\"] = \"Tab\";\n})(KeyboardCode || (KeyboardCode = {}));\n\nconst defaultKeyboardCodes = {\n start: [KeyboardCode.Space, KeyboardCode.Enter],\n cancel: [KeyboardCode.Esc],\n end: [KeyboardCode.Space, KeyboardCode.Enter, KeyboardCode.Tab]\n};\nconst defaultKeyboardCoordinateGetter = (event, _ref) => {\n let {\n currentCoordinates\n } = _ref;\n\n switch (event.code) {\n case KeyboardCode.Right:\n return { ...currentCoordinates,\n x: currentCoordinates.x + 25\n };\n\n case KeyboardCode.Left:\n return { ...currentCoordinates,\n x: currentCoordinates.x - 25\n };\n\n case KeyboardCode.Down:\n return { ...currentCoordinates,\n y: currentCoordinates.y + 25\n };\n\n case KeyboardCode.Up:\n return { ...currentCoordinates,\n y: currentCoordinates.y - 25\n };\n }\n\n return undefined;\n};\n\nclass KeyboardSensor {\n constructor(props) {\n this.props = void 0;\n this.autoScrollEnabled = false;\n this.referenceCoordinates = void 0;\n this.listeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n const {\n event: {\n target\n }\n } = props;\n this.props = props;\n this.listeners = new Listeners(getOwnerDocument(target));\n this.windowListeners = new Listeners(getWindow(target));\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.attach();\n }\n\n attach() {\n this.handleStart();\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n setTimeout(() => this.listeners.add(EventName.Keydown, this.handleKeyDown));\n }\n\n handleStart() {\n const {\n activeNode,\n onStart\n } = this.props;\n const node = activeNode.node.current;\n\n if (node) {\n scrollIntoViewIfNeeded(node);\n }\n\n onStart(defaultCoordinates);\n }\n\n handleKeyDown(event) {\n if (isKeyboardEvent(event)) {\n const {\n active,\n context,\n options\n } = this.props;\n const {\n keyboardCodes = defaultKeyboardCodes,\n coordinateGetter = defaultKeyboardCoordinateGetter,\n scrollBehavior = 'smooth'\n } = options;\n const {\n code\n } = event;\n\n if (keyboardCodes.end.includes(code)) {\n this.handleEnd(event);\n return;\n }\n\n if (keyboardCodes.cancel.includes(code)) {\n this.handleCancel(event);\n return;\n }\n\n const {\n collisionRect\n } = context.current;\n const currentCoordinates = collisionRect ? {\n x: collisionRect.left,\n y: collisionRect.top\n } : defaultCoordinates;\n\n if (!this.referenceCoordinates) {\n this.referenceCoordinates = currentCoordinates;\n }\n\n const newCoordinates = coordinateGetter(event, {\n active,\n context: context.current,\n currentCoordinates\n });\n\n if (newCoordinates) {\n const coordinatesDelta = subtract(newCoordinates, currentCoordinates);\n const scrollDelta = {\n x: 0,\n y: 0\n };\n const {\n scrollableAncestors\n } = context.current;\n\n for (const scrollContainer of scrollableAncestors) {\n const direction = event.code;\n const {\n isTop,\n isRight,\n isLeft,\n isBottom,\n maxScroll,\n minScroll\n } = getScrollPosition(scrollContainer);\n const scrollElementRect = getScrollElementRect(scrollContainer);\n const clampedCoordinates = {\n x: Math.min(direction === KeyboardCode.Right ? scrollElementRect.right - scrollElementRect.width / 2 : scrollElementRect.right, Math.max(direction === KeyboardCode.Right ? scrollElementRect.left : scrollElementRect.left + scrollElementRect.width / 2, newCoordinates.x)),\n y: Math.min(direction === KeyboardCode.Down ? scrollElementRect.bottom - scrollElementRect.height / 2 : scrollElementRect.bottom, Math.max(direction === KeyboardCode.Down ? scrollElementRect.top : scrollElementRect.top + scrollElementRect.height / 2, newCoordinates.y))\n };\n const canScrollX = direction === KeyboardCode.Right && !isRight || direction === KeyboardCode.Left && !isLeft;\n const canScrollY = direction === KeyboardCode.Down && !isBottom || direction === KeyboardCode.Up && !isTop;\n\n if (canScrollX && clampedCoordinates.x !== newCoordinates.x) {\n const newScrollCoordinates = scrollContainer.scrollLeft + coordinatesDelta.x;\n const canScrollToNewCoordinates = direction === KeyboardCode.Right && newScrollCoordinates <= maxScroll.x || direction === KeyboardCode.Left && newScrollCoordinates >= minScroll.x;\n\n if (canScrollToNewCoordinates && !coordinatesDelta.y) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n left: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.x = scrollContainer.scrollLeft - newScrollCoordinates;\n } else {\n scrollDelta.x = direction === KeyboardCode.Right ? scrollContainer.scrollLeft - maxScroll.x : scrollContainer.scrollLeft - minScroll.x;\n }\n\n if (scrollDelta.x) {\n scrollContainer.scrollBy({\n left: -scrollDelta.x,\n behavior: scrollBehavior\n });\n }\n\n break;\n } else if (canScrollY && clampedCoordinates.y !== newCoordinates.y) {\n const newScrollCoordinates = scrollContainer.scrollTop + coordinatesDelta.y;\n const canScrollToNewCoordinates = direction === KeyboardCode.Down && newScrollCoordinates <= maxScroll.y || direction === KeyboardCode.Up && newScrollCoordinates >= minScroll.y;\n\n if (canScrollToNewCoordinates && !coordinatesDelta.x) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n top: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.y = scrollContainer.scrollTop - newScrollCoordinates;\n } else {\n scrollDelta.y = direction === KeyboardCode.Down ? scrollContainer.scrollTop - maxScroll.y : scrollContainer.scrollTop - minScroll.y;\n }\n\n if (scrollDelta.y) {\n scrollContainer.scrollBy({\n top: -scrollDelta.y,\n behavior: scrollBehavior\n });\n }\n\n break;\n }\n }\n\n this.handleMove(event, add(subtract(newCoordinates, this.referenceCoordinates), scrollDelta));\n }\n }\n }\n\n handleMove(event, coordinates) {\n const {\n onMove\n } = this.props;\n event.preventDefault();\n onMove(coordinates);\n }\n\n handleEnd(event) {\n const {\n onEnd\n } = this.props;\n event.preventDefault();\n this.detach();\n onEnd();\n }\n\n handleCancel(event) {\n const {\n onCancel\n } = this.props;\n event.preventDefault();\n this.detach();\n onCancel();\n }\n\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll();\n }\n\n}\nKeyboardSensor.activators = [{\n eventName: 'onKeyDown',\n handler: (event, _ref, _ref2) => {\n let {\n keyboardCodes = defaultKeyboardCodes,\n onActivation\n } = _ref;\n let {\n active\n } = _ref2;\n const {\n code\n } = event.nativeEvent;\n\n if (keyboardCodes.start.includes(code)) {\n const activator = active.activatorNode.current;\n\n if (activator && event.target !== activator) {\n return false;\n }\n\n event.preventDefault();\n onActivation == null ? void 0 : onActivation({\n event: event.nativeEvent\n });\n return true;\n }\n\n return false;\n }\n}];\n\nfunction isDistanceConstraint(constraint) {\n return Boolean(constraint && 'distance' in constraint);\n}\n\nfunction isDelayConstraint(constraint) {\n return Boolean(constraint && 'delay' in constraint);\n}\n\nclass AbstractPointerSensor {\n constructor(props, events, listenerTarget) {\n var _getEventCoordinates;\n\n if (listenerTarget === void 0) {\n listenerTarget = getEventListenerTarget(props.event.target);\n }\n\n this.props = void 0;\n this.events = void 0;\n this.autoScrollEnabled = true;\n this.document = void 0;\n this.activated = false;\n this.initialCoordinates = void 0;\n this.timeoutId = null;\n this.listeners = void 0;\n this.documentListeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n this.events = events;\n const {\n event\n } = props;\n const {\n target\n } = event;\n this.props = props;\n this.events = events;\n this.document = getOwnerDocument(target);\n this.documentListeners = new Listeners(this.document);\n this.listeners = new Listeners(listenerTarget);\n this.windowListeners = new Listeners(getWindow(target));\n this.initialCoordinates = (_getEventCoordinates = getEventCoordinates(event)) != null ? _getEventCoordinates : defaultCoordinates;\n this.handleStart = this.handleStart.bind(this);\n this.handleMove = this.handleMove.bind(this);\n this.handleEnd = this.handleEnd.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleKeydown = this.handleKeydown.bind(this);\n this.removeTextSelection = this.removeTextSelection.bind(this);\n this.attach();\n }\n\n attach() {\n const {\n events,\n props: {\n options: {\n activationConstraint,\n bypassActivationConstraint\n }\n }\n } = this;\n this.listeners.add(events.move.name, this.handleMove, {\n passive: false\n });\n this.listeners.add(events.end.name, this.handleEnd);\n\n if (events.cancel) {\n this.listeners.add(events.cancel.name, this.handleCancel);\n }\n\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.DragStart, preventDefault);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n this.windowListeners.add(EventName.ContextMenu, preventDefault);\n this.documentListeners.add(EventName.Keydown, this.handleKeydown);\n\n if (activationConstraint) {\n if (bypassActivationConstraint != null && bypassActivationConstraint({\n event: this.props.event,\n activeNode: this.props.activeNode,\n options: this.props.options\n })) {\n return this.handleStart();\n }\n\n if (isDelayConstraint(activationConstraint)) {\n this.timeoutId = setTimeout(this.handleStart, activationConstraint.delay);\n this.handlePending(activationConstraint);\n return;\n }\n\n if (isDistanceConstraint(activationConstraint)) {\n this.handlePending(activationConstraint);\n return;\n }\n }\n\n this.handleStart();\n }\n\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll(); // Wait until the next event loop before removing document listeners\n // This is necessary because we listen for `click` and `selection` events on the document\n\n setTimeout(this.documentListeners.removeAll, 50);\n\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n\n handlePending(constraint, offset) {\n const {\n active,\n onPending\n } = this.props;\n onPending(active, constraint, this.initialCoordinates, offset);\n }\n\n handleStart() {\n const {\n initialCoordinates\n } = this;\n const {\n onStart\n } = this.props;\n\n if (initialCoordinates) {\n this.activated = true; // Stop propagation of click events once activation constraints are met\n\n this.documentListeners.add(EventName.Click, stopPropagation, {\n capture: true\n }); // Remove any text selection from the document\n\n this.removeTextSelection(); // Prevent further text selection while dragging\n\n this.documentListeners.add(EventName.SelectionChange, this.removeTextSelection);\n onStart(initialCoordinates);\n }\n }\n\n handleMove(event) {\n var _getEventCoordinates2;\n\n const {\n activated,\n initialCoordinates,\n props\n } = this;\n const {\n onMove,\n options: {\n activationConstraint\n }\n } = props;\n\n if (!initialCoordinates) {\n return;\n }\n\n const coordinates = (_getEventCoordinates2 = getEventCoordinates(event)) != null ? _getEventCoordinates2 : defaultCoordinates;\n const delta = subtract(initialCoordinates, coordinates); // Constraint validation\n\n if (!activated && activationConstraint) {\n if (isDistanceConstraint(activationConstraint)) {\n if (activationConstraint.tolerance != null && hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n\n if (hasExceededDistance(delta, activationConstraint.distance)) {\n return this.handleStart();\n }\n }\n\n if (isDelayConstraint(activationConstraint)) {\n if (hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n }\n\n this.handlePending(activationConstraint, delta);\n return;\n }\n\n if (event.cancelable) {\n event.preventDefault();\n }\n\n onMove(coordinates);\n }\n\n handleEnd() {\n const {\n onAbort,\n onEnd\n } = this.props;\n this.detach();\n\n if (!this.activated) {\n onAbort(this.props.active);\n }\n\n onEnd();\n }\n\n handleCancel() {\n const {\n onAbort,\n onCancel\n } = this.props;\n this.detach();\n\n if (!this.activated) {\n onAbort(this.props.active);\n }\n\n onCancel();\n }\n\n handleKeydown(event) {\n if (event.code === KeyboardCode.Esc) {\n this.handleCancel();\n }\n }\n\n removeTextSelection() {\n var _this$document$getSel;\n\n (_this$document$getSel = this.document.getSelection()) == null ? void 0 : _this$document$getSel.removeAllRanges();\n }\n\n}\n\nconst events = {\n cancel: {\n name: 'pointercancel'\n },\n move: {\n name: 'pointermove'\n },\n end: {\n name: 'pointerup'\n }\n};\nclass PointerSensor extends AbstractPointerSensor {\n constructor(props) {\n const {\n event\n } = props; // Pointer events stop firing if the target is unmounted while dragging\n // Therefore we attach listeners to the owner document instead\n\n const listenerTarget = getOwnerDocument(event.target);\n super(props, events, listenerTarget);\n }\n\n}\nPointerSensor.activators = [{\n eventName: 'onPointerDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n\n if (!event.isPrimary || event.button !== 0) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nconst events$1 = {\n move: {\n name: 'mousemove'\n },\n end: {\n name: 'mouseup'\n }\n};\nvar MouseButton;\n\n(function (MouseButton) {\n MouseButton[MouseButton[\"RightClick\"] = 2] = \"RightClick\";\n})(MouseButton || (MouseButton = {}));\n\nclass MouseSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$1, getOwnerDocument(props.event.target));\n }\n\n}\nMouseSensor.activators = [{\n eventName: 'onMouseDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n\n if (event.button === MouseButton.RightClick) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nconst events$2 = {\n cancel: {\n name: 'touchcancel'\n },\n move: {\n name: 'touchmove'\n },\n end: {\n name: 'touchend'\n }\n};\nclass TouchSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$2);\n }\n\n static setup() {\n // Adding a non-capture and non-passive `touchmove` listener in order\n // to force `event.preventDefault()` calls to work in dynamically added\n // touchmove event handlers. This is required for iOS Safari.\n window.addEventListener(events$2.move.name, noop, {\n capture: false,\n passive: false\n });\n return function teardown() {\n window.removeEventListener(events$2.move.name, noop);\n }; // We create a new handler because the teardown function of another sensor\n // could remove our event listener if we use a referentially equal listener.\n\n function noop() {}\n }\n\n}\nTouchSensor.activators = [{\n eventName: 'onTouchStart',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n const {\n touches\n } = event;\n\n if (touches.length > 1) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nvar AutoScrollActivator;\n\n(function (AutoScrollActivator) {\n AutoScrollActivator[AutoScrollActivator[\"Pointer\"] = 0] = \"Pointer\";\n AutoScrollActivator[AutoScrollActivator[\"DraggableRect\"] = 1] = \"DraggableRect\";\n})(AutoScrollActivator || (AutoScrollActivator = {}));\n\nvar TraversalOrder;\n\n(function (TraversalOrder) {\n TraversalOrder[TraversalOrder[\"TreeOrder\"] = 0] = \"TreeOrder\";\n TraversalOrder[TraversalOrder[\"ReversedTreeOrder\"] = 1] = \"ReversedTreeOrder\";\n})(TraversalOrder || (TraversalOrder = {}));\n\nfunction useAutoScroller(_ref) {\n let {\n acceleration,\n activator = AutoScrollActivator.Pointer,\n canScroll,\n draggingRect,\n enabled,\n interval = 5,\n order = TraversalOrder.TreeOrder,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects,\n delta,\n threshold\n } = _ref;\n const scrollIntent = useScrollIntent({\n delta,\n disabled: !enabled\n });\n const [setAutoScrollInterval, clearAutoScrollInterval] = useInterval();\n const scrollSpeed = useRef({\n x: 0,\n y: 0\n });\n const scrollDirection = useRef({\n x: 0,\n y: 0\n });\n const rect = useMemo(() => {\n switch (activator) {\n case AutoScrollActivator.Pointer:\n return pointerCoordinates ? {\n top: pointerCoordinates.y,\n bottom: pointerCoordinates.y,\n left: pointerCoordinates.x,\n right: pointerCoordinates.x\n } : null;\n\n case AutoScrollActivator.DraggableRect:\n return draggingRect;\n }\n }, [activator, draggingRect, pointerCoordinates]);\n const scrollContainerRef = useRef(null);\n const autoScroll = useCallback(() => {\n const scrollContainer = scrollContainerRef.current;\n\n if (!scrollContainer) {\n return;\n }\n\n const scrollLeft = scrollSpeed.current.x * scrollDirection.current.x;\n const scrollTop = scrollSpeed.current.y * scrollDirection.current.y;\n scrollContainer.scrollBy(scrollLeft, scrollTop);\n }, []);\n const sortedScrollableAncestors = useMemo(() => order === TraversalOrder.TreeOrder ? [...scrollableAncestors].reverse() : scrollableAncestors, [order, scrollableAncestors]);\n useEffect(() => {\n if (!enabled || !scrollableAncestors.length || !rect) {\n clearAutoScrollInterval();\n return;\n }\n\n for (const scrollContainer of sortedScrollableAncestors) {\n if ((canScroll == null ? void 0 : canScroll(scrollContainer)) === false) {\n continue;\n }\n\n const index = scrollableAncestors.indexOf(scrollContainer);\n const scrollContainerRect = scrollableAncestorRects[index];\n\n if (!scrollContainerRect) {\n continue;\n }\n\n const {\n direction,\n speed\n } = getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, rect, acceleration, threshold);\n\n for (const axis of ['x', 'y']) {\n if (!scrollIntent[axis][direction[axis]]) {\n speed[axis] = 0;\n direction[axis] = 0;\n }\n }\n\n if (speed.x > 0 || speed.y > 0) {\n clearAutoScrollInterval();\n scrollContainerRef.current = scrollContainer;\n setAutoScrollInterval(autoScroll, interval);\n scrollSpeed.current = speed;\n scrollDirection.current = direction;\n return;\n }\n }\n\n scrollSpeed.current = {\n x: 0,\n y: 0\n };\n scrollDirection.current = {\n x: 0,\n y: 0\n };\n clearAutoScrollInterval();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [acceleration, autoScroll, canScroll, clearAutoScrollInterval, enabled, interval, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(rect), // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(scrollIntent), setAutoScrollInterval, scrollableAncestors, sortedScrollableAncestors, scrollableAncestorRects, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold)]);\n}\nconst defaultScrollIntent = {\n x: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n },\n y: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n }\n};\n\nfunction useScrollIntent(_ref2) {\n let {\n delta,\n disabled\n } = _ref2;\n const previousDelta = usePrevious(delta);\n return useLazyMemo(previousIntent => {\n if (disabled || !previousDelta || !previousIntent) {\n // Reset scroll intent tracking when auto-scrolling is disabled\n return defaultScrollIntent;\n }\n\n const direction = {\n x: Math.sign(delta.x - previousDelta.x),\n y: Math.sign(delta.y - previousDelta.y)\n }; // Keep track of the user intent to scroll in each direction for both axis\n\n return {\n x: {\n [Direction.Backward]: previousIntent.x[Direction.Backward] || direction.x === -1,\n [Direction.Forward]: previousIntent.x[Direction.Forward] || direction.x === 1\n },\n y: {\n [Direction.Backward]: previousIntent.y[Direction.Backward] || direction.y === -1,\n [Direction.Forward]: previousIntent.y[Direction.Forward] || direction.y === 1\n }\n };\n }, [disabled, delta, previousDelta]);\n}\n\nfunction useCachedNode(draggableNodes, id) {\n const draggableNode = id != null ? draggableNodes.get(id) : undefined;\n const node = draggableNode ? draggableNode.node.current : null;\n return useLazyMemo(cachedNode => {\n var _ref;\n\n if (id == null) {\n return null;\n } // In some cases, the draggable node can unmount while dragging\n // This is the case for virtualized lists. In those situations,\n // we fall back to the last known value for that node.\n\n\n return (_ref = node != null ? node : cachedNode) != null ? _ref : null;\n }, [node, id]);\n}\n\nfunction useCombineActivators(sensors, getSyntheticHandler) {\n return useMemo(() => sensors.reduce((accumulator, sensor) => {\n const {\n sensor: Sensor\n } = sensor;\n const sensorActivators = Sensor.activators.map(activator => ({\n eventName: activator.eventName,\n handler: getSyntheticHandler(activator.handler, sensor)\n }));\n return [...accumulator, ...sensorActivators];\n }, []), [sensors, getSyntheticHandler]);\n}\n\nvar MeasuringStrategy;\n\n(function (MeasuringStrategy) {\n MeasuringStrategy[MeasuringStrategy[\"Always\"] = 0] = \"Always\";\n MeasuringStrategy[MeasuringStrategy[\"BeforeDragging\"] = 1] = \"BeforeDragging\";\n MeasuringStrategy[MeasuringStrategy[\"WhileDragging\"] = 2] = \"WhileDragging\";\n})(MeasuringStrategy || (MeasuringStrategy = {}));\n\nvar MeasuringFrequency;\n\n(function (MeasuringFrequency) {\n MeasuringFrequency[\"Optimized\"] = \"optimized\";\n})(MeasuringFrequency || (MeasuringFrequency = {}));\n\nconst defaultValue = /*#__PURE__*/new Map();\nfunction useDroppableMeasuring(containers, _ref) {\n let {\n dragging,\n dependencies,\n config\n } = _ref;\n const [queue, setQueue] = useState(null);\n const {\n frequency,\n measure,\n strategy\n } = config;\n const containersRef = useRef(containers);\n const disabled = isDisabled();\n const disabledRef = useLatestValue(disabled);\n const measureDroppableContainers = useCallback(function (ids) {\n if (ids === void 0) {\n ids = [];\n }\n\n if (disabledRef.current) {\n return;\n }\n\n setQueue(value => {\n if (value === null) {\n return ids;\n }\n\n return value.concat(ids.filter(id => !value.includes(id)));\n });\n }, [disabledRef]);\n const timeoutId = useRef(null);\n const droppableRects = useLazyMemo(previousValue => {\n if (disabled && !dragging) {\n return defaultValue;\n }\n\n if (!previousValue || previousValue === defaultValue || containersRef.current !== containers || queue != null) {\n const map = new Map();\n\n for (let container of containers) {\n if (!container) {\n continue;\n }\n\n if (queue && queue.length > 0 && !queue.includes(container.id) && container.rect.current) {\n // This container does not need to be re-measured\n map.set(container.id, container.rect.current);\n continue;\n }\n\n const node = container.node.current;\n const rect = node ? new Rect(measure(node), node) : null;\n container.rect.current = rect;\n\n if (rect) {\n map.set(container.id, rect);\n }\n }\n\n return map;\n }\n\n return previousValue;\n }, [containers, queue, dragging, disabled, measure]);\n useEffect(() => {\n containersRef.current = containers;\n }, [containers]);\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n measureDroppableContainers();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [dragging, disabled]);\n useEffect(() => {\n if (queue && queue.length > 0) {\n setQueue(null);\n }\n }, //eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(queue)]);\n useEffect(() => {\n if (disabled || typeof frequency !== 'number' || timeoutId.current !== null) {\n return;\n }\n\n timeoutId.current = setTimeout(() => {\n measureDroppableContainers();\n timeoutId.current = null;\n }, frequency);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [frequency, disabled, measureDroppableContainers, ...dependencies]);\n return {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled: queue != null\n };\n\n function isDisabled() {\n switch (strategy) {\n case MeasuringStrategy.Always:\n return false;\n\n case MeasuringStrategy.BeforeDragging:\n return dragging;\n\n default:\n return !dragging;\n }\n }\n}\n\nfunction useInitialValue(value, computeFn) {\n return useLazyMemo(previousValue => {\n if (!value) {\n return null;\n }\n\n if (previousValue) {\n return previousValue;\n }\n\n return typeof computeFn === 'function' ? computeFn(value) : value;\n }, [computeFn, value]);\n}\n\nfunction useInitialRect(node, measure) {\n return useInitialValue(node, measure);\n}\n\n/**\r\n * Returns a new MutationObserver instance.\r\n * If `MutationObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useMutationObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleMutations = useEvent(callback);\n const mutationObserver = useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.MutationObserver === 'undefined') {\n return undefined;\n }\n\n const {\n MutationObserver\n } = window;\n return new MutationObserver(handleMutations);\n }, [handleMutations, disabled]);\n useEffect(() => {\n return () => mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }, [mutationObserver]);\n return mutationObserver;\n}\n\n/**\r\n * Returns a new ResizeObserver instance bound to the `onResize` callback.\r\n * If `ResizeObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useResizeObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleResize = useEvent(callback);\n const resizeObserver = useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.ResizeObserver === 'undefined') {\n return undefined;\n }\n\n const {\n ResizeObserver\n } = window;\n return new ResizeObserver(handleResize);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [disabled]);\n useEffect(() => {\n return () => resizeObserver == null ? void 0 : resizeObserver.disconnect();\n }, [resizeObserver]);\n return resizeObserver;\n}\n\nfunction defaultMeasure(element) {\n return new Rect(getClientRect(element), element);\n}\n\nfunction useRect(element, measure, fallbackRect) {\n if (measure === void 0) {\n measure = defaultMeasure;\n }\n\n const [rect, setRect] = useState(null);\n\n function measureRect() {\n setRect(currentRect => {\n if (!element) {\n return null;\n }\n\n if (element.isConnected === false) {\n var _ref;\n\n // Fall back to last rect we measured if the element is\n // no longer connected to the DOM.\n return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;\n }\n\n const newRect = measure(element);\n\n if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {\n return currentRect;\n }\n\n return newRect;\n });\n }\n\n const mutationObserver = useMutationObserver({\n callback(records) {\n if (!element) {\n return;\n }\n\n for (const record of records) {\n const {\n type,\n target\n } = record;\n\n if (type === 'childList' && target instanceof HTMLElement && target.contains(element)) {\n measureRect();\n break;\n }\n }\n }\n\n });\n const resizeObserver = useResizeObserver({\n callback: measureRect\n });\n useIsomorphicLayoutEffect(() => {\n measureRect();\n\n if (element) {\n resizeObserver == null ? void 0 : resizeObserver.observe(element);\n mutationObserver == null ? void 0 : mutationObserver.observe(document.body, {\n childList: true,\n subtree: true\n });\n } else {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }\n }, [element]);\n return rect;\n}\n\nfunction useRectDelta(rect) {\n const initialRect = useInitialValue(rect);\n return getRectDelta(rect, initialRect);\n}\n\nconst defaultValue$1 = [];\nfunction useScrollableAncestors(node) {\n const previousNode = useRef(node);\n const ancestors = useLazyMemo(previousValue => {\n if (!node) {\n return defaultValue$1;\n }\n\n if (previousValue && previousValue !== defaultValue$1 && node && previousNode.current && node.parentNode === previousNode.current.parentNode) {\n return previousValue;\n }\n\n return getScrollableAncestors(node);\n }, [node]);\n useEffect(() => {\n previousNode.current = node;\n }, [node]);\n return ancestors;\n}\n\nfunction useScrollOffsets(elements) {\n const [scrollCoordinates, setScrollCoordinates] = useState(null);\n const prevElements = useRef(elements); // To-do: Throttle the handleScroll callback\n\n const handleScroll = useCallback(event => {\n const scrollingElement = getScrollableElement(event.target);\n\n if (!scrollingElement) {\n return;\n }\n\n setScrollCoordinates(scrollCoordinates => {\n if (!scrollCoordinates) {\n return null;\n }\n\n scrollCoordinates.set(scrollingElement, getScrollCoordinates(scrollingElement));\n return new Map(scrollCoordinates);\n });\n }, []);\n useEffect(() => {\n const previousElements = prevElements.current;\n\n if (elements !== previousElements) {\n cleanup(previousElements);\n const entries = elements.map(element => {\n const scrollableElement = getScrollableElement(element);\n\n if (scrollableElement) {\n scrollableElement.addEventListener('scroll', handleScroll, {\n passive: true\n });\n return [scrollableElement, getScrollCoordinates(scrollableElement)];\n }\n\n return null;\n }).filter(entry => entry != null);\n setScrollCoordinates(entries.length ? new Map(entries) : null);\n prevElements.current = elements;\n }\n\n return () => {\n cleanup(elements);\n cleanup(previousElements);\n };\n\n function cleanup(elements) {\n elements.forEach(element => {\n const scrollableElement = getScrollableElement(element);\n scrollableElement == null ? void 0 : scrollableElement.removeEventListener('scroll', handleScroll);\n });\n }\n }, [handleScroll, elements]);\n return useMemo(() => {\n if (elements.length) {\n return scrollCoordinates ? Array.from(scrollCoordinates.values()).reduce((acc, coordinates) => add(acc, coordinates), defaultCoordinates) : getScrollOffsets(elements);\n }\n\n return defaultCoordinates;\n }, [elements, scrollCoordinates]);\n}\n\nfunction useScrollOffsetsDelta(scrollOffsets, dependencies) {\n if (dependencies === void 0) {\n dependencies = [];\n }\n\n const initialScrollOffsets = useRef(null);\n useEffect(() => {\n initialScrollOffsets.current = null;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n dependencies);\n useEffect(() => {\n const hasScrollOffsets = scrollOffsets !== defaultCoordinates;\n\n if (hasScrollOffsets && !initialScrollOffsets.current) {\n initialScrollOffsets.current = scrollOffsets;\n }\n\n if (!hasScrollOffsets && initialScrollOffsets.current) {\n initialScrollOffsets.current = null;\n }\n }, [scrollOffsets]);\n return initialScrollOffsets.current ? subtract(scrollOffsets, initialScrollOffsets.current) : defaultCoordinates;\n}\n\nfunction useSensorSetup(sensors) {\n useEffect(() => {\n if (!canUseDOM) {\n return;\n }\n\n const teardownFns = sensors.map(_ref => {\n let {\n sensor\n } = _ref;\n return sensor.setup == null ? void 0 : sensor.setup();\n });\n return () => {\n for (const teardown of teardownFns) {\n teardown == null ? void 0 : teardown();\n }\n };\n }, // TO-DO: Sensors length could theoretically change which would not be a valid dependency\n // eslint-disable-next-line react-hooks/exhaustive-deps\n sensors.map(_ref2 => {\n let {\n sensor\n } = _ref2;\n return sensor;\n }));\n}\n\nfunction useSyntheticListeners(listeners, id) {\n return useMemo(() => {\n return listeners.reduce((acc, _ref) => {\n let {\n eventName,\n handler\n } = _ref;\n\n acc[eventName] = event => {\n handler(event, id);\n };\n\n return acc;\n }, {});\n }, [listeners, id]);\n}\n\nfunction useWindowRect(element) {\n return useMemo(() => element ? getWindowClientRect(element) : null, [element]);\n}\n\nconst defaultValue$2 = [];\nfunction useRects(elements, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n\n const [firstElement] = elements;\n const windowRect = useWindowRect(firstElement ? getWindow(firstElement) : null);\n const [rects, setRects] = useState(defaultValue$2);\n\n function measureRects() {\n setRects(() => {\n if (!elements.length) {\n return defaultValue$2;\n }\n\n return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));\n });\n }\n\n const resizeObserver = useResizeObserver({\n callback: measureRects\n });\n useIsomorphicLayoutEffect(() => {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n measureRects();\n elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));\n }, [elements]);\n return rects;\n}\n\nfunction getMeasurableNode(node) {\n if (!node) {\n return null;\n }\n\n if (node.children.length > 1) {\n return node;\n }\n\n const firstChild = node.children[0];\n return isHTMLElement(firstChild) ? firstChild : node;\n}\n\nfunction useDragOverlayMeasuring(_ref) {\n let {\n measure\n } = _ref;\n const [rect, setRect] = useState(null);\n const handleResize = useCallback(entries => {\n for (const {\n target\n } of entries) {\n if (isHTMLElement(target)) {\n setRect(rect => {\n const newRect = measure(target);\n return rect ? { ...rect,\n width: newRect.width,\n height: newRect.height\n } : newRect;\n });\n break;\n }\n }\n }, [measure]);\n const resizeObserver = useResizeObserver({\n callback: handleResize\n });\n const handleNodeChange = useCallback(element => {\n const node = getMeasurableNode(element);\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n\n if (node) {\n resizeObserver == null ? void 0 : resizeObserver.observe(node);\n }\n\n setRect(node ? measure(node) : null);\n }, [measure, resizeObserver]);\n const [nodeRef, setRef] = useNodeRef(handleNodeChange);\n return useMemo(() => ({\n nodeRef,\n rect,\n setRef\n }), [rect, nodeRef, setRef]);\n}\n\nconst defaultSensors = [{\n sensor: PointerSensor,\n options: {}\n}, {\n sensor: KeyboardSensor,\n options: {}\n}];\nconst defaultData = {\n current: {}\n};\nconst defaultMeasuringConfiguration = {\n draggable: {\n measure: getTransformAgnosticClientRect\n },\n droppable: {\n measure: getTransformAgnosticClientRect,\n strategy: MeasuringStrategy.WhileDragging,\n frequency: MeasuringFrequency.Optimized\n },\n dragOverlay: {\n measure: getClientRect\n }\n};\n\nclass DroppableContainersMap extends Map {\n get(id) {\n var _super$get;\n\n return id != null ? (_super$get = super.get(id)) != null ? _super$get : undefined : undefined;\n }\n\n toArray() {\n return Array.from(this.values());\n }\n\n getEnabled() {\n return this.toArray().filter(_ref => {\n let {\n disabled\n } = _ref;\n return !disabled;\n });\n }\n\n getNodeFor(id) {\n var _this$get$node$curren, _this$get;\n\n return (_this$get$node$curren = (_this$get = this.get(id)) == null ? void 0 : _this$get.node.current) != null ? _this$get$node$curren : undefined;\n }\n\n}\n\nconst defaultPublicContext = {\n activatorEvent: null,\n active: null,\n activeNode: null,\n activeNodeRect: null,\n collisions: null,\n containerNodeRect: null,\n draggableNodes: /*#__PURE__*/new Map(),\n droppableRects: /*#__PURE__*/new Map(),\n droppableContainers: /*#__PURE__*/new DroppableContainersMap(),\n over: null,\n dragOverlay: {\n nodeRef: {\n current: null\n },\n rect: null,\n setRef: noop\n },\n scrollableAncestors: [],\n scrollableAncestorRects: [],\n measuringConfiguration: defaultMeasuringConfiguration,\n measureDroppableContainers: noop,\n windowRect: null,\n measuringScheduled: false\n};\nconst defaultInternalContext = {\n activatorEvent: null,\n activators: [],\n active: null,\n activeNodeRect: null,\n ariaDescribedById: {\n draggable: ''\n },\n dispatch: noop,\n draggableNodes: /*#__PURE__*/new Map(),\n over: null,\n measureDroppableContainers: noop\n};\nconst InternalContext = /*#__PURE__*/createContext(defaultInternalContext);\nconst PublicContext = /*#__PURE__*/createContext(defaultPublicContext);\n\nfunction getInitialState() {\n return {\n draggable: {\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n nodes: new Map(),\n translate: {\n x: 0,\n y: 0\n }\n },\n droppable: {\n containers: new DroppableContainersMap()\n }\n };\n}\nfunction reducer(state, action) {\n switch (action.type) {\n case Action.DragStart:\n return { ...state,\n draggable: { ...state.draggable,\n initialCoordinates: action.initialCoordinates,\n active: action.active\n }\n };\n\n case Action.DragMove:\n if (state.draggable.active == null) {\n return state;\n }\n\n return { ...state,\n draggable: { ...state.draggable,\n translate: {\n x: action.coordinates.x - state.draggable.initialCoordinates.x,\n y: action.coordinates.y - state.draggable.initialCoordinates.y\n }\n }\n };\n\n case Action.DragEnd:\n case Action.DragCancel:\n return { ...state,\n draggable: { ...state.draggable,\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n translate: {\n x: 0,\n y: 0\n }\n }\n };\n\n case Action.RegisterDroppable:\n {\n const {\n element\n } = action;\n const {\n id\n } = element;\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, element);\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n case Action.SetDroppableDisabled:\n {\n const {\n id,\n key,\n disabled\n } = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, { ...element,\n disabled\n });\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n case Action.UnregisterDroppable:\n {\n const {\n id,\n key\n } = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.delete(id);\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n default:\n {\n return state;\n }\n }\n}\n\nfunction RestoreFocus(_ref) {\n let {\n disabled\n } = _ref;\n const {\n active,\n activatorEvent,\n draggableNodes\n } = useContext(InternalContext);\n const previousActivatorEvent = usePrevious(activatorEvent);\n const previousActiveId = usePrevious(active == null ? void 0 : active.id); // Restore keyboard focus on the activator node\n\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n if (!activatorEvent && previousActivatorEvent && previousActiveId != null) {\n if (!isKeyboardEvent(previousActivatorEvent)) {\n return;\n }\n\n if (document.activeElement === previousActivatorEvent.target) {\n // No need to restore focus\n return;\n }\n\n const draggableNode = draggableNodes.get(previousActiveId);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n activatorNode,\n node\n } = draggableNode;\n\n if (!activatorNode.current && !node.current) {\n return;\n }\n\n requestAnimationFrame(() => {\n for (const element of [activatorNode.current, node.current]) {\n if (!element) {\n continue;\n }\n\n const focusableNode = findFirstFocusableNode(element);\n\n if (focusableNode) {\n focusableNode.focus();\n break;\n }\n }\n });\n }\n }, [activatorEvent, disabled, draggableNodes, previousActiveId, previousActivatorEvent]);\n return null;\n}\n\nfunction applyModifiers(modifiers, _ref) {\n let {\n transform,\n ...args\n } = _ref;\n return modifiers != null && modifiers.length ? modifiers.reduce((accumulator, modifier) => {\n return modifier({\n transform: accumulator,\n ...args\n });\n }, transform) : transform;\n}\n\nfunction useMeasuringConfiguration(config) {\n return useMemo(() => ({\n draggable: { ...defaultMeasuringConfiguration.draggable,\n ...(config == null ? void 0 : config.draggable)\n },\n droppable: { ...defaultMeasuringConfiguration.droppable,\n ...(config == null ? void 0 : config.droppable)\n },\n dragOverlay: { ...defaultMeasuringConfiguration.dragOverlay,\n ...(config == null ? void 0 : config.dragOverlay)\n }\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [config == null ? void 0 : config.draggable, config == null ? void 0 : config.droppable, config == null ? void 0 : config.dragOverlay]);\n}\n\nfunction useLayoutShiftScrollCompensation(_ref) {\n let {\n activeNode,\n measure,\n initialRect,\n config = true\n } = _ref;\n const initialized = useRef(false);\n const {\n x,\n y\n } = typeof config === 'boolean' ? {\n x: config,\n y: config\n } : config;\n useIsomorphicLayoutEffect(() => {\n const disabled = !x && !y;\n\n if (disabled || !activeNode) {\n initialized.current = false;\n return;\n }\n\n if (initialized.current || !initialRect) {\n // Return early if layout shift scroll compensation was already attempted\n // or if there is no initialRect to compare to.\n return;\n } // Get the most up to date node ref for the active draggable\n\n\n const node = activeNode == null ? void 0 : activeNode.node.current;\n\n if (!node || node.isConnected === false) {\n // Return early if there is no attached node ref or if the node is\n // disconnected from the document.\n return;\n }\n\n const rect = measure(node);\n const rectDelta = getRectDelta(rect, initialRect);\n\n if (!x) {\n rectDelta.x = 0;\n }\n\n if (!y) {\n rectDelta.y = 0;\n } // Only perform layout shift scroll compensation once\n\n\n initialized.current = true;\n\n if (Math.abs(rectDelta.x) > 0 || Math.abs(rectDelta.y) > 0) {\n const firstScrollableAncestor = getFirstScrollableAncestor(node);\n\n if (firstScrollableAncestor) {\n firstScrollableAncestor.scrollBy({\n top: rectDelta.y,\n left: rectDelta.x\n });\n }\n }\n }, [activeNode, x, y, initialRect, measure]);\n}\n\nconst ActiveDraggableContext = /*#__PURE__*/createContext({ ...defaultCoordinates,\n scaleX: 1,\n scaleY: 1\n});\nvar Status;\n\n(function (Status) {\n Status[Status[\"Uninitialized\"] = 0] = \"Uninitialized\";\n Status[Status[\"Initializing\"] = 1] = \"Initializing\";\n Status[Status[\"Initialized\"] = 2] = \"Initialized\";\n})(Status || (Status = {}));\n\nconst DndContext = /*#__PURE__*/memo(function DndContext(_ref) {\n var _sensorContext$curren, _dragOverlay$nodeRef$, _dragOverlay$rect, _over$rect;\n\n let {\n id,\n accessibility,\n autoScroll = true,\n children,\n sensors = defaultSensors,\n collisionDetection = rectIntersection,\n measuring,\n modifiers,\n ...props\n } = _ref;\n const store = useReducer(reducer, undefined, getInitialState);\n const [state, dispatch] = store;\n const [dispatchMonitorEvent, registerMonitorListener] = useDndMonitorProvider();\n const [status, setStatus] = useState(Status.Uninitialized);\n const isInitialized = status === Status.Initialized;\n const {\n draggable: {\n active: activeId,\n nodes: draggableNodes,\n translate\n },\n droppable: {\n containers: droppableContainers\n }\n } = state;\n const node = activeId != null ? draggableNodes.get(activeId) : null;\n const activeRects = useRef({\n initial: null,\n translated: null\n });\n const active = useMemo(() => {\n var _node$data;\n\n return activeId != null ? {\n id: activeId,\n // It's possible for the active node to unmount while dragging\n data: (_node$data = node == null ? void 0 : node.data) != null ? _node$data : defaultData,\n rect: activeRects\n } : null;\n }, [activeId, node]);\n const activeRef = useRef(null);\n const [activeSensor, setActiveSensor] = useState(null);\n const [activatorEvent, setActivatorEvent] = useState(null);\n const latestProps = useLatestValue(props, Object.values(props));\n const draggableDescribedById = useUniqueId(\"DndDescribedBy\", id);\n const enabledDroppableContainers = useMemo(() => droppableContainers.getEnabled(), [droppableContainers]);\n const measuringConfiguration = useMeasuringConfiguration(measuring);\n const {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled\n } = useDroppableMeasuring(enabledDroppableContainers, {\n dragging: isInitialized,\n dependencies: [translate.x, translate.y],\n config: measuringConfiguration.droppable\n });\n const activeNode = useCachedNode(draggableNodes, activeId);\n const activationCoordinates = useMemo(() => activatorEvent ? getEventCoordinates(activatorEvent) : null, [activatorEvent]);\n const autoScrollOptions = getAutoScrollerOptions();\n const initialActiveNodeRect = useInitialRect(activeNode, measuringConfiguration.draggable.measure);\n useLayoutShiftScrollCompensation({\n activeNode: activeId != null ? draggableNodes.get(activeId) : null,\n config: autoScrollOptions.layoutShiftCompensation,\n initialRect: initialActiveNodeRect,\n measure: measuringConfiguration.draggable.measure\n });\n const activeNodeRect = useRect(activeNode, measuringConfiguration.draggable.measure, initialActiveNodeRect);\n const containerNodeRect = useRect(activeNode ? activeNode.parentElement : null);\n const sensorContext = useRef({\n activatorEvent: null,\n active: null,\n activeNode,\n collisionRect: null,\n collisions: null,\n droppableRects,\n draggableNodes,\n draggingNode: null,\n draggingNodeRect: null,\n droppableContainers,\n over: null,\n scrollableAncestors: [],\n scrollAdjustedTranslate: null\n });\n const overNode = droppableContainers.getNodeFor((_sensorContext$curren = sensorContext.current.over) == null ? void 0 : _sensorContext$curren.id);\n const dragOverlay = useDragOverlayMeasuring({\n measure: measuringConfiguration.dragOverlay.measure\n }); // Use the rect of the drag overlay if it is mounted\n\n const draggingNode = (_dragOverlay$nodeRef$ = dragOverlay.nodeRef.current) != null ? _dragOverlay$nodeRef$ : activeNode;\n const draggingNodeRect = isInitialized ? (_dragOverlay$rect = dragOverlay.rect) != null ? _dragOverlay$rect : activeNodeRect : null;\n const usesDragOverlay = Boolean(dragOverlay.nodeRef.current && dragOverlay.rect); // The delta between the previous and new position of the draggable node\n // is only relevant when there is no drag overlay\n\n const nodeRectDelta = useRectDelta(usesDragOverlay ? null : activeNodeRect); // Get the window rect of the dragging node\n\n const windowRect = useWindowRect(draggingNode ? getWindow(draggingNode) : null); // Get scrollable ancestors of the dragging node\n\n const scrollableAncestors = useScrollableAncestors(isInitialized ? overNode != null ? overNode : activeNode : null);\n const scrollableAncestorRects = useRects(scrollableAncestors); // Apply modifiers\n\n const modifiedTranslate = applyModifiers(modifiers, {\n transform: {\n x: translate.x - nodeRectDelta.x,\n y: translate.y - nodeRectDelta.y,\n scaleX: 1,\n scaleY: 1\n },\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect,\n over: sensorContext.current.over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n });\n const pointerCoordinates = activationCoordinates ? add(activationCoordinates, translate) : null;\n const scrollOffsets = useScrollOffsets(scrollableAncestors); // Represents the scroll delta since dragging was initiated\n\n const scrollAdjustment = useScrollOffsetsDelta(scrollOffsets); // Represents the scroll delta since the last time the active node rect was measured\n\n const activeNodeScrollDelta = useScrollOffsetsDelta(scrollOffsets, [activeNodeRect]);\n const scrollAdjustedTranslate = add(modifiedTranslate, scrollAdjustment);\n const collisionRect = draggingNodeRect ? getAdjustedRect(draggingNodeRect, modifiedTranslate) : null;\n const collisions = active && collisionRect ? collisionDetection({\n active,\n collisionRect,\n droppableRects,\n droppableContainers: enabledDroppableContainers,\n pointerCoordinates\n }) : null;\n const overId = getFirstCollision(collisions, 'id');\n const [over, setOver] = useState(null); // When there is no drag overlay used, we need to account for the\n // window scroll delta\n\n const appliedTranslate = usesDragOverlay ? modifiedTranslate : add(modifiedTranslate, activeNodeScrollDelta);\n const transform = adjustScale(appliedTranslate, (_over$rect = over == null ? void 0 : over.rect) != null ? _over$rect : null, activeNodeRect);\n const activeSensorRef = useRef(null);\n const instantiateSensor = useCallback((event, _ref2) => {\n let {\n sensor: Sensor,\n options\n } = _ref2;\n\n if (activeRef.current == null) {\n return;\n }\n\n const activeNode = draggableNodes.get(activeRef.current);\n\n if (!activeNode) {\n return;\n }\n\n const activatorEvent = event.nativeEvent;\n const sensorInstance = new Sensor({\n active: activeRef.current,\n activeNode,\n event: activatorEvent,\n options,\n // Sensors need to be instantiated with refs for arguments that change over time\n // otherwise they are frozen in time with the stale arguments\n context: sensorContext,\n\n onAbort(id) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragAbort\n } = latestProps.current;\n const event = {\n id\n };\n onDragAbort == null ? void 0 : onDragAbort(event);\n dispatchMonitorEvent({\n type: 'onDragAbort',\n event\n });\n },\n\n onPending(id, constraint, initialCoordinates, offset) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragPending\n } = latestProps.current;\n const event = {\n id,\n constraint,\n initialCoordinates,\n offset\n };\n onDragPending == null ? void 0 : onDragPending(event);\n dispatchMonitorEvent({\n type: 'onDragPending',\n event\n });\n },\n\n onStart(initialCoordinates) {\n const id = activeRef.current;\n\n if (id == null) {\n return;\n }\n\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragStart\n } = latestProps.current;\n const event = {\n activatorEvent,\n active: {\n id,\n data: draggableNode.data,\n rect: activeRects\n }\n };\n unstable_batchedUpdates(() => {\n onDragStart == null ? void 0 : onDragStart(event);\n setStatus(Status.Initializing);\n dispatch({\n type: Action.DragStart,\n initialCoordinates,\n active: id\n });\n dispatchMonitorEvent({\n type: 'onDragStart',\n event\n });\n setActiveSensor(activeSensorRef.current);\n setActivatorEvent(activatorEvent);\n });\n },\n\n onMove(coordinates) {\n dispatch({\n type: Action.DragMove,\n coordinates\n });\n },\n\n onEnd: createHandler(Action.DragEnd),\n onCancel: createHandler(Action.DragCancel)\n });\n activeSensorRef.current = sensorInstance;\n\n function createHandler(type) {\n return async function handler() {\n const {\n active,\n collisions,\n over,\n scrollAdjustedTranslate\n } = sensorContext.current;\n let event = null;\n\n if (active && scrollAdjustedTranslate) {\n const {\n cancelDrop\n } = latestProps.current;\n event = {\n activatorEvent,\n active: active,\n collisions,\n delta: scrollAdjustedTranslate,\n over\n };\n\n if (type === Action.DragEnd && typeof cancelDrop === 'function') {\n const shouldCancel = await Promise.resolve(cancelDrop(event));\n\n if (shouldCancel) {\n type = Action.DragCancel;\n }\n }\n }\n\n activeRef.current = null;\n unstable_batchedUpdates(() => {\n dispatch({\n type\n });\n setStatus(Status.Uninitialized);\n setOver(null);\n setActiveSensor(null);\n setActivatorEvent(null);\n activeSensorRef.current = null;\n const eventName = type === Action.DragEnd ? 'onDragEnd' : 'onDragCancel';\n\n if (event) {\n const handler = latestProps.current[eventName];\n handler == null ? void 0 : handler(event);\n dispatchMonitorEvent({\n type: eventName,\n event\n });\n }\n });\n };\n }\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes]);\n const bindActivatorToSensorInstantiator = useCallback((handler, sensor) => {\n return (event, active) => {\n const nativeEvent = event.nativeEvent;\n const activeDraggableNode = draggableNodes.get(active);\n\n if ( // Another sensor is already instantiating\n activeRef.current !== null || // No active draggable\n !activeDraggableNode || // Event has already been captured\n nativeEvent.dndKit || nativeEvent.defaultPrevented) {\n return;\n }\n\n const activationContext = {\n active: activeDraggableNode\n };\n const shouldActivate = handler(event, sensor.options, activationContext);\n\n if (shouldActivate === true) {\n nativeEvent.dndKit = {\n capturedBy: sensor.sensor\n };\n activeRef.current = active;\n instantiateSensor(event, sensor);\n }\n };\n }, [draggableNodes, instantiateSensor]);\n const activators = useCombineActivators(sensors, bindActivatorToSensorInstantiator);\n useSensorSetup(sensors);\n useIsomorphicLayoutEffect(() => {\n if (activeNodeRect && status === Status.Initializing) {\n setStatus(Status.Initialized);\n }\n }, [activeNodeRect, status]);\n useEffect(() => {\n const {\n onDragMove\n } = latestProps.current;\n const {\n active,\n activatorEvent,\n collisions,\n over\n } = sensorContext.current;\n\n if (!active || !activatorEvent) {\n return;\n }\n\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n unstable_batchedUpdates(() => {\n onDragMove == null ? void 0 : onDragMove(event);\n dispatchMonitorEvent({\n type: 'onDragMove',\n event\n });\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [scrollAdjustedTranslate.x, scrollAdjustedTranslate.y]);\n useEffect(() => {\n const {\n active,\n activatorEvent,\n collisions,\n droppableContainers,\n scrollAdjustedTranslate\n } = sensorContext.current;\n\n if (!active || activeRef.current == null || !activatorEvent || !scrollAdjustedTranslate) {\n return;\n }\n\n const {\n onDragOver\n } = latestProps.current;\n const overContainer = droppableContainers.get(overId);\n const over = overContainer && overContainer.rect.current ? {\n id: overContainer.id,\n rect: overContainer.rect.current,\n data: overContainer.data,\n disabled: overContainer.disabled\n } : null;\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n unstable_batchedUpdates(() => {\n setOver(over);\n onDragOver == null ? void 0 : onDragOver(event);\n dispatchMonitorEvent({\n type: 'onDragOver',\n event\n });\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [overId]);\n useIsomorphicLayoutEffect(() => {\n sensorContext.current = {\n activatorEvent,\n active,\n activeNode,\n collisionRect,\n collisions,\n droppableRects,\n draggableNodes,\n draggingNode,\n draggingNodeRect,\n droppableContainers,\n over,\n scrollableAncestors,\n scrollAdjustedTranslate\n };\n activeRects.current = {\n initial: draggingNodeRect,\n translated: collisionRect\n };\n }, [active, activeNode, collisions, collisionRect, draggableNodes, draggingNode, draggingNodeRect, droppableRects, droppableContainers, over, scrollableAncestors, scrollAdjustedTranslate]);\n useAutoScroller({ ...autoScrollOptions,\n delta: translate,\n draggingRect: collisionRect,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects\n });\n const publicContext = useMemo(() => {\n const context = {\n active,\n activeNode,\n activeNodeRect,\n activatorEvent,\n collisions,\n containerNodeRect,\n dragOverlay,\n draggableNodes,\n droppableContainers,\n droppableRects,\n over,\n measureDroppableContainers,\n scrollableAncestors,\n scrollableAncestorRects,\n measuringConfiguration,\n measuringScheduled,\n windowRect\n };\n return context;\n }, [active, activeNode, activeNodeRect, activatorEvent, collisions, containerNodeRect, dragOverlay, draggableNodes, droppableContainers, droppableRects, over, measureDroppableContainers, scrollableAncestors, scrollableAncestorRects, measuringConfiguration, measuringScheduled, windowRect]);\n const internalContext = useMemo(() => {\n const context = {\n activatorEvent,\n activators,\n active,\n activeNodeRect,\n ariaDescribedById: {\n draggable: draggableDescribedById\n },\n dispatch,\n draggableNodes,\n over,\n measureDroppableContainers\n };\n return context;\n }, [activatorEvent, activators, active, activeNodeRect, dispatch, draggableDescribedById, draggableNodes, over, measureDroppableContainers]);\n return React.createElement(DndMonitorContext.Provider, {\n value: registerMonitorListener\n }, React.createElement(InternalContext.Provider, {\n value: internalContext\n }, React.createElement(PublicContext.Provider, {\n value: publicContext\n }, React.createElement(ActiveDraggableContext.Provider, {\n value: transform\n }, children)), React.createElement(RestoreFocus, {\n disabled: (accessibility == null ? void 0 : accessibility.restoreFocus) === false\n })), React.createElement(Accessibility, { ...accessibility,\n hiddenTextDescribedById: draggableDescribedById\n }));\n\n function getAutoScrollerOptions() {\n const activeSensorDisablesAutoscroll = (activeSensor == null ? void 0 : activeSensor.autoScrollEnabled) === false;\n const autoScrollGloballyDisabled = typeof autoScroll === 'object' ? autoScroll.enabled === false : autoScroll === false;\n const enabled = isInitialized && !activeSensorDisablesAutoscroll && !autoScrollGloballyDisabled;\n\n if (typeof autoScroll === 'object') {\n return { ...autoScroll,\n enabled\n };\n }\n\n return {\n enabled\n };\n }\n});\n\nconst NullContext = /*#__PURE__*/createContext(null);\nconst defaultRole = 'button';\nconst ID_PREFIX = 'Draggable';\nfunction useDraggable(_ref) {\n let {\n id,\n data,\n disabled = false,\n attributes\n } = _ref;\n const key = useUniqueId(ID_PREFIX);\n const {\n activators,\n activatorEvent,\n active,\n activeNodeRect,\n ariaDescribedById,\n draggableNodes,\n over\n } = useContext(InternalContext);\n const {\n role = defaultRole,\n roleDescription = 'draggable',\n tabIndex = 0\n } = attributes != null ? attributes : {};\n const isDragging = (active == null ? void 0 : active.id) === id;\n const transform = useContext(isDragging ? ActiveDraggableContext : NullContext);\n const [node, setNodeRef] = useNodeRef();\n const [activatorNode, setActivatorNodeRef] = useNodeRef();\n const listeners = useSyntheticListeners(activators, id);\n const dataRef = useLatestValue(data);\n useIsomorphicLayoutEffect(() => {\n draggableNodes.set(id, {\n id,\n key,\n node,\n activatorNode,\n data: dataRef\n });\n return () => {\n const node = draggableNodes.get(id);\n\n if (node && node.key === key) {\n draggableNodes.delete(id);\n }\n };\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes, id]);\n const memoizedAttributes = useMemo(() => ({\n role,\n tabIndex,\n 'aria-disabled': disabled,\n 'aria-pressed': isDragging && role === defaultRole ? true : undefined,\n 'aria-roledescription': roleDescription,\n 'aria-describedby': ariaDescribedById.draggable\n }), [disabled, role, tabIndex, isDragging, roleDescription, ariaDescribedById.draggable]);\n return {\n active,\n activatorEvent,\n activeNodeRect,\n attributes: memoizedAttributes,\n isDragging,\n listeners: disabled ? undefined : listeners,\n node,\n over,\n setNodeRef,\n setActivatorNodeRef,\n transform\n };\n}\n\nfunction useDndContext() {\n return useContext(PublicContext);\n}\n\nconst ID_PREFIX$1 = 'Droppable';\nconst defaultResizeObserverConfig = {\n timeout: 25\n};\nfunction useDroppable(_ref) {\n let {\n data,\n disabled = false,\n id,\n resizeObserverConfig\n } = _ref;\n const key = useUniqueId(ID_PREFIX$1);\n const {\n active,\n dispatch,\n over,\n measureDroppableContainers\n } = useContext(InternalContext);\n const previous = useRef({\n disabled\n });\n const resizeObserverConnected = useRef(false);\n const rect = useRef(null);\n const callbackId = useRef(null);\n const {\n disabled: resizeObserverDisabled,\n updateMeasurementsFor,\n timeout: resizeObserverTimeout\n } = { ...defaultResizeObserverConfig,\n ...resizeObserverConfig\n };\n const ids = useLatestValue(updateMeasurementsFor != null ? updateMeasurementsFor : id);\n const handleResize = useCallback(() => {\n if (!resizeObserverConnected.current) {\n // ResizeObserver invokes the `handleResize` callback as soon as `observe` is called,\n // assuming the element is rendered and displayed.\n resizeObserverConnected.current = true;\n return;\n }\n\n if (callbackId.current != null) {\n clearTimeout(callbackId.current);\n }\n\n callbackId.current = setTimeout(() => {\n measureDroppableContainers(Array.isArray(ids.current) ? ids.current : [ids.current]);\n callbackId.current = null;\n }, resizeObserverTimeout);\n }, //eslint-disable-next-line react-hooks/exhaustive-deps\n [resizeObserverTimeout]);\n const resizeObserver = useResizeObserver({\n callback: handleResize,\n disabled: resizeObserverDisabled || !active\n });\n const handleNodeChange = useCallback((newElement, previousElement) => {\n if (!resizeObserver) {\n return;\n }\n\n if (previousElement) {\n resizeObserver.unobserve(previousElement);\n resizeObserverConnected.current = false;\n }\n\n if (newElement) {\n resizeObserver.observe(newElement);\n }\n }, [resizeObserver]);\n const [nodeRef, setNodeRef] = useNodeRef(handleNodeChange);\n const dataRef = useLatestValue(data);\n useEffect(() => {\n if (!resizeObserver || !nodeRef.current) {\n return;\n }\n\n resizeObserver.disconnect();\n resizeObserverConnected.current = false;\n resizeObserver.observe(nodeRef.current);\n }, [nodeRef, resizeObserver]);\n useEffect(() => {\n dispatch({\n type: Action.RegisterDroppable,\n element: {\n id,\n key,\n disabled,\n node: nodeRef,\n rect,\n data: dataRef\n }\n });\n return () => dispatch({\n type: Action.UnregisterDroppable,\n key,\n id\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [id]);\n useEffect(() => {\n if (disabled !== previous.current.disabled) {\n dispatch({\n type: Action.SetDroppableDisabled,\n id,\n key,\n disabled\n });\n previous.current.disabled = disabled;\n }\n }, [id, key, disabled, dispatch]);\n return {\n active,\n rect,\n isOver: (over == null ? void 0 : over.id) === id,\n node: nodeRef,\n over,\n setNodeRef\n };\n}\n\nfunction AnimationManager(_ref) {\n let {\n animation,\n children\n } = _ref;\n const [clonedChildren, setClonedChildren] = useState(null);\n const [element, setElement] = useState(null);\n const previousChildren = usePrevious(children);\n\n if (!children && !clonedChildren && previousChildren) {\n setClonedChildren(previousChildren);\n }\n\n useIsomorphicLayoutEffect(() => {\n if (!element) {\n return;\n }\n\n const key = clonedChildren == null ? void 0 : clonedChildren.key;\n const id = clonedChildren == null ? void 0 : clonedChildren.props.id;\n\n if (key == null || id == null) {\n setClonedChildren(null);\n return;\n }\n\n Promise.resolve(animation(id, element)).then(() => {\n setClonedChildren(null);\n });\n }, [animation, clonedChildren, element]);\n return React.createElement(React.Fragment, null, children, clonedChildren ? cloneElement(clonedChildren, {\n ref: setElement\n }) : null);\n}\n\nconst defaultTransform = {\n x: 0,\n y: 0,\n scaleX: 1,\n scaleY: 1\n};\nfunction NullifiedContextProvider(_ref) {\n let {\n children\n } = _ref;\n return React.createElement(InternalContext.Provider, {\n value: defaultInternalContext\n }, React.createElement(ActiveDraggableContext.Provider, {\n value: defaultTransform\n }, children));\n}\n\nconst baseStyles = {\n position: 'fixed',\n touchAction: 'none'\n};\n\nconst defaultTransition = activatorEvent => {\n const isKeyboardActivator = isKeyboardEvent(activatorEvent);\n return isKeyboardActivator ? 'transform 250ms ease' : undefined;\n};\n\nconst PositionedOverlay = /*#__PURE__*/forwardRef((_ref, ref) => {\n let {\n as,\n activatorEvent,\n adjustScale,\n children,\n className,\n rect,\n style,\n transform,\n transition = defaultTransition\n } = _ref;\n\n if (!rect) {\n return null;\n }\n\n const scaleAdjustedTransform = adjustScale ? transform : { ...transform,\n scaleX: 1,\n scaleY: 1\n };\n const styles = { ...baseStyles,\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n transform: CSS.Transform.toString(scaleAdjustedTransform),\n transformOrigin: adjustScale && activatorEvent ? getRelativeTransformOrigin(activatorEvent, rect) : undefined,\n transition: typeof transition === 'function' ? transition(activatorEvent) : transition,\n ...style\n };\n return React.createElement(as, {\n className,\n style: styles,\n ref\n }, children);\n});\n\nconst defaultDropAnimationSideEffects = options => _ref => {\n let {\n active,\n dragOverlay\n } = _ref;\n const originalStyles = {};\n const {\n styles,\n className\n } = options;\n\n if (styles != null && styles.active) {\n for (const [key, value] of Object.entries(styles.active)) {\n if (value === undefined) {\n continue;\n }\n\n originalStyles[key] = active.node.style.getPropertyValue(key);\n active.node.style.setProperty(key, value);\n }\n }\n\n if (styles != null && styles.dragOverlay) {\n for (const [key, value] of Object.entries(styles.dragOverlay)) {\n if (value === undefined) {\n continue;\n }\n\n dragOverlay.node.style.setProperty(key, value);\n }\n }\n\n if (className != null && className.active) {\n active.node.classList.add(className.active);\n }\n\n if (className != null && className.dragOverlay) {\n dragOverlay.node.classList.add(className.dragOverlay);\n }\n\n return function cleanup() {\n for (const [key, value] of Object.entries(originalStyles)) {\n active.node.style.setProperty(key, value);\n }\n\n if (className != null && className.active) {\n active.node.classList.remove(className.active);\n }\n };\n};\n\nconst defaultKeyframeResolver = _ref2 => {\n let {\n transform: {\n initial,\n final\n }\n } = _ref2;\n return [{\n transform: CSS.Transform.toString(initial)\n }, {\n transform: CSS.Transform.toString(final)\n }];\n};\n\nconst defaultDropAnimationConfiguration = {\n duration: 250,\n easing: 'ease',\n keyframes: defaultKeyframeResolver,\n sideEffects: /*#__PURE__*/defaultDropAnimationSideEffects({\n styles: {\n active: {\n opacity: '0'\n }\n }\n })\n};\nfunction useDropAnimation(_ref3) {\n let {\n config,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n } = _ref3;\n return useEvent((id, node) => {\n if (config === null) {\n return;\n }\n\n const activeDraggable = draggableNodes.get(id);\n\n if (!activeDraggable) {\n return;\n }\n\n const activeNode = activeDraggable.node.current;\n\n if (!activeNode) {\n return;\n }\n\n const measurableNode = getMeasurableNode(node);\n\n if (!measurableNode) {\n return;\n }\n\n const {\n transform\n } = getWindow(node).getComputedStyle(node);\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return;\n }\n\n const animation = typeof config === 'function' ? config : createDefaultDropAnimation(config);\n scrollIntoViewIfNeeded(activeNode, measuringConfiguration.draggable.measure);\n return animation({\n active: {\n id,\n data: activeDraggable.data,\n node: activeNode,\n rect: measuringConfiguration.draggable.measure(activeNode)\n },\n draggableNodes,\n dragOverlay: {\n node,\n rect: measuringConfiguration.dragOverlay.measure(measurableNode)\n },\n droppableContainers,\n measuringConfiguration,\n transform: parsedTransform\n });\n });\n}\n\nfunction createDefaultDropAnimation(options) {\n const {\n duration,\n easing,\n sideEffects,\n keyframes\n } = { ...defaultDropAnimationConfiguration,\n ...options\n };\n return _ref4 => {\n let {\n active,\n dragOverlay,\n transform,\n ...rest\n } = _ref4;\n\n if (!duration) {\n // Do not animate if animation duration is zero.\n return;\n }\n\n const delta = {\n x: dragOverlay.rect.left - active.rect.left,\n y: dragOverlay.rect.top - active.rect.top\n };\n const scale = {\n scaleX: transform.scaleX !== 1 ? active.rect.width * transform.scaleX / dragOverlay.rect.width : 1,\n scaleY: transform.scaleY !== 1 ? active.rect.height * transform.scaleY / dragOverlay.rect.height : 1\n };\n const finalTransform = {\n x: transform.x - delta.x,\n y: transform.y - delta.y,\n ...scale\n };\n const animationKeyframes = keyframes({ ...rest,\n active,\n dragOverlay,\n transform: {\n initial: transform,\n final: finalTransform\n }\n });\n const [firstKeyframe] = animationKeyframes;\n const lastKeyframe = animationKeyframes[animationKeyframes.length - 1];\n\n if (JSON.stringify(firstKeyframe) === JSON.stringify(lastKeyframe)) {\n // The start and end keyframes are the same, infer that there is no animation needed.\n return;\n }\n\n const cleanup = sideEffects == null ? void 0 : sideEffects({\n active,\n dragOverlay,\n ...rest\n });\n const animation = dragOverlay.node.animate(animationKeyframes, {\n duration,\n easing,\n fill: 'forwards'\n });\n return new Promise(resolve => {\n animation.onfinish = () => {\n cleanup == null ? void 0 : cleanup();\n resolve();\n };\n });\n };\n}\n\nlet key = 0;\nfunction useKey(id) {\n return useMemo(() => {\n if (id == null) {\n return;\n }\n\n key++;\n return key;\n }, [id]);\n}\n\nconst DragOverlay = /*#__PURE__*/React.memo(_ref => {\n let {\n adjustScale = false,\n children,\n dropAnimation: dropAnimationConfig,\n style,\n transition,\n modifiers,\n wrapperElement = 'div',\n className,\n zIndex = 999\n } = _ref;\n const {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggableNodes,\n droppableContainers,\n dragOverlay,\n over,\n measuringConfiguration,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n } = useDndContext();\n const transform = useContext(ActiveDraggableContext);\n const key = useKey(active == null ? void 0 : active.id);\n const modifiedTransform = applyModifiers(modifiers, {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect: dragOverlay.rect,\n over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n transform,\n windowRect\n });\n const initialRect = useInitialValue(activeNodeRect);\n const dropAnimation = useDropAnimation({\n config: dropAnimationConfig,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n }); // We need to wait for the active node to be measured before connecting the drag overlay ref\n // otherwise collisions can be computed against a mispositioned drag overlay\n\n const ref = initialRect ? dragOverlay.setRef : undefined;\n return React.createElement(NullifiedContextProvider, null, React.createElement(AnimationManager, {\n animation: dropAnimation\n }, active && key ? React.createElement(PositionedOverlay, {\n key: key,\n id: active.id,\n ref: ref,\n as: wrapperElement,\n activatorEvent: activatorEvent,\n adjustScale: adjustScale,\n className: className,\n transition: transition,\n rect: initialRect,\n style: {\n zIndex,\n ...style\n },\n transform: modifiedTransform\n }, children) : null));\n});\n\nexport { AutoScrollActivator, DndContext, DragOverlay, KeyboardCode, KeyboardSensor, MeasuringFrequency, MeasuringStrategy, MouseSensor, PointerSensor, TouchSensor, TraversalOrder, applyModifiers, closestCenter, closestCorners, defaultAnnouncements, defaultCoordinates, defaultDropAnimationConfiguration as defaultDropAnimation, defaultDropAnimationSideEffects, defaultKeyboardCoordinateGetter, defaultScreenReaderInstructions, getClientRect, getFirstCollision, getScrollableAncestors, pointerWithin, rectIntersection, useDndContext, useDndMonitor, useDraggable, useDroppable, useSensor, useSensors };\n//# sourceMappingURL=core.esm.js.map\n","import React, { useMemo, useRef, useEffect, useState, useContext } from 'react';\nimport { useDndContext, getClientRect, useDroppable, useDraggable, closestCorners, getFirstCollision, getScrollableAncestors, KeyboardCode } from '@dnd-kit/core';\nimport { useUniqueId, useIsomorphicLayoutEffect, CSS, useCombinedRefs, isKeyboardEvent, subtract } from '@dnd-kit/utilities';\n\n/**\r\n * Move an array item to a different position. Returns a new array with the item moved to the new position.\r\n */\nfunction arrayMove(array, from, to) {\n const newArray = array.slice();\n newArray.splice(to < 0 ? newArray.length + to : to, 0, newArray.splice(from, 1)[0]);\n return newArray;\n}\n\n/**\r\n * Swap an array item to a different position. Returns a new array with the item swapped to the new position.\r\n */\nfunction arraySwap(array, from, to) {\n const newArray = array.slice();\n newArray[from] = array[to];\n newArray[to] = array[from];\n return newArray;\n}\n\nfunction getSortedRects(items, rects) {\n return items.reduce((accumulator, id, index) => {\n const rect = rects.get(id);\n\n if (rect) {\n accumulator[index] = rect;\n }\n\n return accumulator;\n }, Array(items.length));\n}\n\nfunction isValidIndex(index) {\n return index !== null && index >= 0;\n}\n\nfunction itemsEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction normalizeDisabled(disabled) {\n if (typeof disabled === 'boolean') {\n return {\n draggable: disabled,\n droppable: disabled\n };\n }\n\n return disabled;\n}\n\n// To-do: We should be calculating scale transformation\nconst defaultScale = {\n scaleX: 1,\n scaleY: 1\n};\nconst horizontalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n\n let {\n rects,\n activeNodeRect: fallbackActiveRect,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n const itemGap = getItemGap(rects, index, activeIndex);\n\n if (index === activeIndex) {\n const newIndexRect = rects[overIndex];\n\n if (!newIndexRect) {\n return null;\n }\n\n return {\n x: activeIndex < overIndex ? newIndexRect.left + newIndexRect.width - (activeNodeRect.left + activeNodeRect.width) : newIndexRect.left - activeNodeRect.left,\n y: 0,\n ...defaultScale\n };\n }\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: -activeNodeRect.width - itemGap,\n y: 0,\n ...defaultScale\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: activeNodeRect.width + itemGap,\n y: 0,\n ...defaultScale\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale\n };\n};\n\nfunction getItemGap(rects, index, activeIndex) {\n const currentRect = rects[index];\n const previousRect = rects[index - 1];\n const nextRect = rects[index + 1];\n\n if (!currentRect || !previousRect && !nextRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect ? currentRect.left - (previousRect.left + previousRect.width) : nextRect.left - (currentRect.left + currentRect.width);\n }\n\n return nextRect ? nextRect.left - (currentRect.left + currentRect.width) : currentRect.left - (previousRect.left + previousRect.width);\n}\n\nconst rectSortingStrategy = _ref => {\n let {\n rects,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const newRects = arrayMove(rects, overIndex, activeIndex);\n const oldRect = rects[index];\n const newRect = newRects[index];\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\nconst rectSwappingStrategy = _ref => {\n let {\n activeIndex,\n index,\n rects,\n overIndex\n } = _ref;\n let oldRect;\n let newRect;\n\n if (index === activeIndex) {\n oldRect = rects[index];\n newRect = rects[overIndex];\n }\n\n if (index === overIndex) {\n oldRect = rects[index];\n newRect = rects[activeIndex];\n }\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\n// To-do: We should be calculating scale transformation\nconst defaultScale$1 = {\n scaleX: 1,\n scaleY: 1\n};\nconst verticalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n\n let {\n activeIndex,\n activeNodeRect: fallbackActiveRect,\n index,\n rects,\n overIndex\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n if (index === activeIndex) {\n const overIndexRect = rects[overIndex];\n\n if (!overIndexRect) {\n return null;\n }\n\n return {\n x: 0,\n y: activeIndex < overIndex ? overIndexRect.top + overIndexRect.height - (activeNodeRect.top + activeNodeRect.height) : overIndexRect.top - activeNodeRect.top,\n ...defaultScale$1\n };\n }\n\n const itemGap = getItemGap$1(rects, index, activeIndex);\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: 0,\n y: -activeNodeRect.height - itemGap,\n ...defaultScale$1\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: 0,\n y: activeNodeRect.height + itemGap,\n ...defaultScale$1\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale$1\n };\n};\n\nfunction getItemGap$1(clientRects, index, activeIndex) {\n const currentRect = clientRects[index];\n const previousRect = clientRects[index - 1];\n const nextRect = clientRects[index + 1];\n\n if (!currentRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect ? currentRect.top - (previousRect.top + previousRect.height) : nextRect ? nextRect.top - (currentRect.top + currentRect.height) : 0;\n }\n\n return nextRect ? nextRect.top - (currentRect.top + currentRect.height) : previousRect ? currentRect.top - (previousRect.top + previousRect.height) : 0;\n}\n\nconst ID_PREFIX = 'Sortable';\nconst Context = /*#__PURE__*/React.createContext({\n activeIndex: -1,\n containerId: ID_PREFIX,\n disableTransforms: false,\n items: [],\n overIndex: -1,\n useDragOverlay: false,\n sortedRects: [],\n strategy: rectSortingStrategy,\n disabled: {\n draggable: false,\n droppable: false\n }\n});\nfunction SortableContext(_ref) {\n let {\n children,\n id,\n items: userDefinedItems,\n strategy = rectSortingStrategy,\n disabled: disabledProp = false\n } = _ref;\n const {\n active,\n dragOverlay,\n droppableRects,\n over,\n measureDroppableContainers\n } = useDndContext();\n const containerId = useUniqueId(ID_PREFIX, id);\n const useDragOverlay = Boolean(dragOverlay.rect !== null);\n const items = useMemo(() => userDefinedItems.map(item => typeof item === 'object' && 'id' in item ? item.id : item), [userDefinedItems]);\n const isDragging = active != null;\n const activeIndex = active ? items.indexOf(active.id) : -1;\n const overIndex = over ? items.indexOf(over.id) : -1;\n const previousItemsRef = useRef(items);\n const itemsHaveChanged = !itemsEqual(items, previousItemsRef.current);\n const disableTransforms = overIndex !== -1 && activeIndex === -1 || itemsHaveChanged;\n const disabled = normalizeDisabled(disabledProp);\n useIsomorphicLayoutEffect(() => {\n if (itemsHaveChanged && isDragging) {\n measureDroppableContainers(items);\n }\n }, [itemsHaveChanged, items, isDragging, measureDroppableContainers]);\n useEffect(() => {\n previousItemsRef.current = items;\n }, [items]);\n const contextValue = useMemo(() => ({\n activeIndex,\n containerId,\n disabled,\n disableTransforms,\n items,\n overIndex,\n useDragOverlay,\n sortedRects: getSortedRects(items, droppableRects),\n strategy\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeIndex, containerId, disabled.draggable, disabled.droppable, disableTransforms, items, overIndex, droppableRects, useDragOverlay, strategy]);\n return React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nconst defaultNewIndexGetter = _ref => {\n let {\n id,\n items,\n activeIndex,\n overIndex\n } = _ref;\n return arrayMove(items, activeIndex, overIndex).indexOf(id);\n};\nconst defaultAnimateLayoutChanges = _ref2 => {\n let {\n containerId,\n isSorting,\n wasDragging,\n index,\n items,\n newIndex,\n previousItems,\n previousContainerId,\n transition\n } = _ref2;\n\n if (!transition || !wasDragging) {\n return false;\n }\n\n if (previousItems !== items && index === newIndex) {\n return false;\n }\n\n if (isSorting) {\n return true;\n }\n\n return newIndex !== index && containerId === previousContainerId;\n};\nconst defaultTransition = {\n duration: 200,\n easing: 'ease'\n};\nconst transitionProperty = 'transform';\nconst disabledTransition = /*#__PURE__*/CSS.Transition.toString({\n property: transitionProperty,\n duration: 0,\n easing: 'linear'\n});\nconst defaultAttributes = {\n roleDescription: 'sortable'\n};\n\n/*\r\n * When the index of an item changes while sorting,\r\n * we need to temporarily disable the transforms\r\n */\n\nfunction useDerivedTransform(_ref) {\n let {\n disabled,\n index,\n node,\n rect\n } = _ref;\n const [derivedTransform, setDerivedtransform] = useState(null);\n const previousIndex = useRef(index);\n useIsomorphicLayoutEffect(() => {\n if (!disabled && index !== previousIndex.current && node.current) {\n const initial = rect.current;\n\n if (initial) {\n const current = getClientRect(node.current, {\n ignoreTransform: true\n });\n const delta = {\n x: initial.left - current.left,\n y: initial.top - current.top,\n scaleX: initial.width / current.width,\n scaleY: initial.height / current.height\n };\n\n if (delta.x || delta.y) {\n setDerivedtransform(delta);\n }\n }\n }\n\n if (index !== previousIndex.current) {\n previousIndex.current = index;\n }\n }, [disabled, index, node, rect]);\n useEffect(() => {\n if (derivedTransform) {\n setDerivedtransform(null);\n }\n }, [derivedTransform]);\n return derivedTransform;\n}\n\nfunction useSortable(_ref) {\n let {\n animateLayoutChanges = defaultAnimateLayoutChanges,\n attributes: userDefinedAttributes,\n disabled: localDisabled,\n data: customData,\n getNewIndex = defaultNewIndexGetter,\n id,\n strategy: localStrategy,\n resizeObserverConfig,\n transition = defaultTransition\n } = _ref;\n const {\n items,\n containerId,\n activeIndex,\n disabled: globalDisabled,\n disableTransforms,\n sortedRects,\n overIndex,\n useDragOverlay,\n strategy: globalStrategy\n } = useContext(Context);\n const disabled = normalizeLocalDisabled(localDisabled, globalDisabled);\n const index = items.indexOf(id);\n const data = useMemo(() => ({\n sortable: {\n containerId,\n index,\n items\n },\n ...customData\n }), [containerId, customData, index, items]);\n const itemsAfterCurrentSortable = useMemo(() => items.slice(items.indexOf(id)), [items, id]);\n const {\n rect,\n node,\n isOver,\n setNodeRef: setDroppableNodeRef\n } = useDroppable({\n id,\n data,\n disabled: disabled.droppable,\n resizeObserverConfig: {\n updateMeasurementsFor: itemsAfterCurrentSortable,\n ...resizeObserverConfig\n }\n });\n const {\n active,\n activatorEvent,\n activeNodeRect,\n attributes,\n setNodeRef: setDraggableNodeRef,\n listeners,\n isDragging,\n over,\n setActivatorNodeRef,\n transform\n } = useDraggable({\n id,\n data,\n attributes: { ...defaultAttributes,\n ...userDefinedAttributes\n },\n disabled: disabled.draggable\n });\n const setNodeRef = useCombinedRefs(setDroppableNodeRef, setDraggableNodeRef);\n const isSorting = Boolean(active);\n const displaceItem = isSorting && !disableTransforms && isValidIndex(activeIndex) && isValidIndex(overIndex);\n const shouldDisplaceDragSource = !useDragOverlay && isDragging;\n const dragSourceDisplacement = shouldDisplaceDragSource && displaceItem ? transform : null;\n const strategy = localStrategy != null ? localStrategy : globalStrategy;\n const finalTransform = displaceItem ? dragSourceDisplacement != null ? dragSourceDisplacement : strategy({\n rects: sortedRects,\n activeNodeRect,\n activeIndex,\n overIndex,\n index\n }) : null;\n const newIndex = isValidIndex(activeIndex) && isValidIndex(overIndex) ? getNewIndex({\n id,\n items,\n activeIndex,\n overIndex\n }) : index;\n const activeId = active == null ? void 0 : active.id;\n const previous = useRef({\n activeId,\n items,\n newIndex,\n containerId\n });\n const itemsHaveChanged = items !== previous.current.items;\n const shouldAnimateLayoutChanges = animateLayoutChanges({\n active,\n containerId,\n isDragging,\n isSorting,\n id,\n index,\n items,\n newIndex: previous.current.newIndex,\n previousItems: previous.current.items,\n previousContainerId: previous.current.containerId,\n transition,\n wasDragging: previous.current.activeId != null\n });\n const derivedTransform = useDerivedTransform({\n disabled: !shouldAnimateLayoutChanges,\n index,\n node,\n rect\n });\n useEffect(() => {\n if (isSorting && previous.current.newIndex !== newIndex) {\n previous.current.newIndex = newIndex;\n }\n\n if (containerId !== previous.current.containerId) {\n previous.current.containerId = containerId;\n }\n\n if (items !== previous.current.items) {\n previous.current.items = items;\n }\n }, [isSorting, newIndex, containerId, items]);\n useEffect(() => {\n if (activeId === previous.current.activeId) {\n return;\n }\n\n if (activeId != null && previous.current.activeId == null) {\n previous.current.activeId = activeId;\n return;\n }\n\n const timeoutId = setTimeout(() => {\n previous.current.activeId = activeId;\n }, 50);\n return () => clearTimeout(timeoutId);\n }, [activeId]);\n return {\n active,\n activeIndex,\n attributes,\n data,\n rect,\n index,\n newIndex,\n items,\n isOver,\n isSorting,\n isDragging,\n listeners,\n node,\n overIndex,\n over,\n setNodeRef,\n setActivatorNodeRef,\n setDroppableNodeRef,\n setDraggableNodeRef,\n transform: derivedTransform != null ? derivedTransform : finalTransform,\n transition: getTransition()\n };\n\n function getTransition() {\n if ( // Temporarily disable transitions for a single frame to set up derived transforms\n derivedTransform || // Or to prevent items jumping to back to their \"new\" position when items change\n itemsHaveChanged && previous.current.newIndex === index) {\n return disabledTransition;\n }\n\n if (shouldDisplaceDragSource && !isKeyboardEvent(activatorEvent) || !transition) {\n return undefined;\n }\n\n if (isSorting || shouldAnimateLayoutChanges) {\n return CSS.Transition.toString({ ...transition,\n property: transitionProperty\n });\n }\n\n return undefined;\n }\n}\n\nfunction normalizeLocalDisabled(localDisabled, globalDisabled) {\n var _localDisabled$dragga, _localDisabled$droppa;\n\n if (typeof localDisabled === 'boolean') {\n return {\n draggable: localDisabled,\n // Backwards compatibility\n droppable: false\n };\n }\n\n return {\n draggable: (_localDisabled$dragga = localDisabled == null ? void 0 : localDisabled.draggable) != null ? _localDisabled$dragga : globalDisabled.draggable,\n droppable: (_localDisabled$droppa = localDisabled == null ? void 0 : localDisabled.droppable) != null ? _localDisabled$droppa : globalDisabled.droppable\n };\n}\n\nfunction hasSortableData(entry) {\n if (!entry) {\n return false;\n }\n\n const data = entry.data.current;\n\n if (data && 'sortable' in data && typeof data.sortable === 'object' && 'containerId' in data.sortable && 'items' in data.sortable && 'index' in data.sortable) {\n return true;\n }\n\n return false;\n}\n\nconst directions = [KeyboardCode.Down, KeyboardCode.Right, KeyboardCode.Up, KeyboardCode.Left];\nconst sortableKeyboardCoordinates = (event, _ref) => {\n let {\n context: {\n active,\n collisionRect,\n droppableRects,\n droppableContainers,\n over,\n scrollableAncestors\n }\n } = _ref;\n\n if (directions.includes(event.code)) {\n event.preventDefault();\n\n if (!active || !collisionRect) {\n return;\n }\n\n const filteredContainers = [];\n droppableContainers.getEnabled().forEach(entry => {\n if (!entry || entry != null && entry.disabled) {\n return;\n }\n\n const rect = droppableRects.get(entry.id);\n\n if (!rect) {\n return;\n }\n\n switch (event.code) {\n case KeyboardCode.Down:\n if (collisionRect.top < rect.top) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Up:\n if (collisionRect.top > rect.top) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Left:\n if (collisionRect.left > rect.left) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Right:\n if (collisionRect.left < rect.left) {\n filteredContainers.push(entry);\n }\n\n break;\n }\n });\n const collisions = closestCorners({\n active,\n collisionRect: collisionRect,\n droppableRects,\n droppableContainers: filteredContainers,\n pointerCoordinates: null\n });\n let closestId = getFirstCollision(collisions, 'id');\n\n if (closestId === (over == null ? void 0 : over.id) && collisions.length > 1) {\n closestId = collisions[1].id;\n }\n\n if (closestId != null) {\n const activeDroppable = droppableContainers.get(active.id);\n const newDroppable = droppableContainers.get(closestId);\n const newRect = newDroppable ? droppableRects.get(newDroppable.id) : null;\n const newNode = newDroppable == null ? void 0 : newDroppable.node.current;\n\n if (newNode && newRect && activeDroppable && newDroppable) {\n const newScrollAncestors = getScrollableAncestors(newNode);\n const hasDifferentScrollAncestors = newScrollAncestors.some((element, index) => scrollableAncestors[index] !== element);\n const hasSameContainer = isSameContainer(activeDroppable, newDroppable);\n const isAfterActive = isAfter(activeDroppable, newDroppable);\n const offset = hasDifferentScrollAncestors || !hasSameContainer ? {\n x: 0,\n y: 0\n } : {\n x: isAfterActive ? collisionRect.width - newRect.width : 0,\n y: isAfterActive ? collisionRect.height - newRect.height : 0\n };\n const rectCoordinates = {\n x: newRect.left,\n y: newRect.top\n };\n const newCoordinates = offset.x && offset.y ? rectCoordinates : subtract(rectCoordinates, offset);\n return newCoordinates;\n }\n }\n }\n\n return undefined;\n};\n\nfunction isSameContainer(a, b) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n return a.data.current.sortable.containerId === b.data.current.sortable.containerId;\n}\n\nfunction isAfter(a, b) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n if (!isSameContainer(a, b)) {\n return false;\n }\n\n return a.data.current.sortable.index < b.data.current.sortable.index;\n}\n\nexport { SortableContext, arrayMove, arraySwap, defaultAnimateLayoutChanges, defaultNewIndexGetter, hasSortableData, horizontalListSortingStrategy, rectSortingStrategy, rectSwappingStrategy, sortableKeyboardCoordinates, useSortable, verticalListSortingStrategy };\n//# sourceMappingURL=sortable.esm.js.map\n","import { DraggableAttributes, DraggableSyntheticListeners } from '@dnd-kit/core/dist/hooks/useDraggable';\nimport { createContext } from 'react';\n\ninterface Context {\n attributes?: DraggableAttributes;\n listeners: DraggableSyntheticListeners;\n ref(node: HTMLElement | null): void;\n}\n\nexport const SortableItemContext = createContext<Context>({\n attributes: undefined,\n listeners: undefined,\n ref() {},\n});\n","import React, { useContext } from 'react';\n\nimport { useDndContext } from '@dnd-kit/core';\nimport { Button, ButtonProps } from '../../../Button/button.component';\nimport { SortableItemContext } from '../SortableListItem/sortableListItem.context';\n\nexport const SortableListDragHandle = ({ ...rest }: ButtonProps): React.JSX.Element => {\n const { attributes, listeners, ref } = useContext(SortableItemContext);\n const dndContext = useDndContext();\n\n return (\n <Button\n className=\"SortableList__DragHandle\"\n data-testid=\"kibble-sortable-list-drag-handle\"\n ref={ref}\n cursor={dndContext.activatorEvent ? 'grabbing' : 'grab'}\n iconName=\"grid\"\n size=\"sm\"\n variant=\"ghostNeutral\"\n {...attributes}\n {...listeners}\n {...rest}\n />\n );\n};\n","import React, { useMemo } from 'react';\nimport { List } from '@chakra-ui/react/list';\nimport { UniqueIdentifier } from '@dnd-kit/core';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { SortableItemContext } from './sortableListItem.context';\nimport { SortableListDragHandle } from '../SortableListDragHandle/sortableListDragHandle.component';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { Text } from 'components/Text/text.component';\n\nexport interface SortableListItemProps {\n content: React.ReactNode;\n id: UniqueIdentifier;\n}\n\ninterface InternalSortableListItemProps extends SortableListItemProps {\n hideHandle?: boolean;\n itemProps?: Omit<List.ItemProps, 'id' | 'content'>;\n}\n\nexport const SortableListItem = ({\n content,\n hideHandle,\n id,\n itemProps,\n}: InternalSortableListItemProps): React.JSX.Element => {\n const { attributes, isDragging, listeners, setNodeRef, setActivatorNodeRef, transform, transition } = useSortable({\n id,\n });\n\n const context = useMemo(\n () => ({\n attributes,\n listeners,\n ref: setActivatorNodeRef,\n }),\n [attributes, listeners, setActivatorNodeRef],\n );\n\n return (\n <SortableItemContext.Provider value={context}>\n <List.Item\n className=\"SortableList__Item\"\n data-testid=\"kibble-sortable-list-item\"\n ref={setNodeRef}\n {...itemProps}\n listStyleType=\"none\"\n {...(isDragging && { opacity: 0.4 })}\n transition={transition}\n transform={CSS.Translate.toString(transform)}\n >\n <Flex alignItems=\"center\" gap={2} width=\"100%\">\n {!hideHandle && <SortableListDragHandle />}\n {typeof content === 'string' ? <Text size=\"sm\">{content}</Text> : content}\n </Flex>\n </List.Item>\n </SortableItemContext.Provider>\n );\n};\n","import React, { useMemo, useState } from 'react';\nimport { List } from '@chakra-ui/react/list';\nimport {\n defaultDropAnimationSideEffects,\n DndContext,\n DragOverlay,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport type { Active, DropAnimation } from '@dnd-kit/core';\nimport { SortableContext, arrayMove, sortableKeyboardCoordinates } from '@dnd-kit/sortable';\nimport { SortableListItem, SortableListItemProps } from './components/SortableListItem/sortableListItem.component';\n\nexport interface SortableListProps extends Omit<List.RootProps, 'onChange'> {\n hideHandle?: boolean;\n items: SortableListItemProps[];\n itemsProps?: Omit<List.ItemProps, 'id' | 'content'>;\n onChange(items: SortableListItemProps[]): void;\n}\n\nexport const SortableList = ({\n hideHandle = false,\n items,\n itemsProps,\n onChange,\n ...rest\n}: SortableListProps): React.JSX.Element => {\n const [active, setActive] = useState<Active | null>(null);\n const activeItem = useMemo(() => items.find((item) => item.id === active?.id), [active, items]);\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n return (\n <DndContext\n sensors={sensors}\n onDragStart={({ active }): void => {\n setActive(active);\n }}\n onDragEnd={({ active, over }): void => {\n if (over && active.id !== over?.id) {\n const activeIndex = items.findIndex(({ id }) => id === active.id);\n const overIndex = items.findIndex(({ id }) => id === over.id);\n\n onChange(arrayMove(items, activeIndex, overIndex));\n }\n setActive(null);\n }}\n onDragCancel={(): void => setActive(null)}\n >\n <SortableContext items={items}>\n <List.Root className=\"SortableList\" data-testid=\"kibble-sortable-list\" gap={2} {...rest}>\n {items.map((item) => (\n <SortableListItem key={item.id} {...item} itemProps={itemsProps} hideHandle={hideHandle} />\n ))}\n\n {activeItem && (\n <DragOverlay dropAnimation={dropAnimationConfig}>\n <SortableListItem {...activeItem} itemProps={itemsProps} hideHandle={hideHandle} />\n </DragOverlay>\n )}\n </List.Root>\n </SortableContext>\n </DndContext>\n );\n};\n\nconst dropAnimationConfig: DropAnimation = {\n sideEffects: defaultDropAnimationSideEffects({\n styles: {\n active: {\n opacity: '0.4',\n },\n },\n }),\n};\n"],"names":["useCombinedRefs","_len","refs","_key","useMemo","node","ref","canUseDOM","isWindow","element","elementString","isNode","getWindow","target","_target$ownerDocument","_target$ownerDocument2","isDocument","Document","isHTMLElement","isSVGElement","getOwnerDocument","useIsomorphicLayoutEffect","useLayoutEffect","useEffect","useEvent","handler","handlerRef","useRef","useCallback","args","useInterval","intervalRef","set","listener","duration","clear","useLatestValue","value","dependencies","valueRef","useLazyMemo","callback","newValue","useNodeRef","onChange","onChangeHandler","setNodeRef","usePrevious","ids","useUniqueId","prefix","id","createAdjustmentFn","modifier","object","adjustments","accumulator","adjustment","entries","key","valueAdjustment","add","subtract","hasViewportRelativeCoordinates","event","isKeyboardEvent","KeyboardEvent","isTouchEvent","TouchEvent","getEventCoordinates","x","y","CSS","transform","scaleX","scaleY","_ref","property","easing","SELECTOR","findFirstFocusableNode","hiddenStyles","HiddenText","React","LiveRegion","announcement","ariaLiveType","visuallyHidden","useAnnouncement","setAnnouncement","useState","DndMonitorContext","createContext","useDndMonitor","registerListener","useContext","useDndMonitorProvider","listeners","type","_listener$type","defaultScreenReaderInstructions","defaultAnnouncements","active","_ref2","over","_ref3","_ref4","Accessibility","announcements","container","hiddenTextDescribedById","screenReaderInstructions","announce","liveRegionId","mounted","setMounted","_ref5","_ref6","markup","createPortal","Action","noop","useSensor","sensor","options","useSensors","sensors","defaultCoordinates","distanceBetween","p1","p2","getRelativeTransformOrigin","rect","eventCoordinates","transformOrigin","sortCollisionsAsc","a","b","sortCollisionsDesc","cornersOfRectangle","left","top","height","width","getFirstCollision","collisions","firstCollision","closestCorners","collisionRect","droppableRects","droppableContainers","corners","droppableContainer","rectCorners","distances","corner","index","effectiveDistance","getIntersectionRatio","entry","right","bottom","targetArea","entryArea","intersectionArea","intersectionRatio","rectIntersection","adjustScale","rect1","rect2","getRectDelta","createRectAdjustmentFn","acc","getAdjustedRect","parseTransform","transformArray","inverseTransform","parsedTransform","translateX","translateY","w","h","defaultOptions","getClientRect","getTransformAgnosticClientRect","getWindowClientRect","isFixed","computedStyle","isScrollable","overflowRegex","getScrollableAncestors","limit","scrollParents","findScrollableAncestors","getFirstScrollableAncestor","firstScrollableAncestor","getScrollableElement","getScrollXCoordinate","getScrollYCoordinate","getScrollCoordinates","Direction","isDocumentScrollingElement","getScrollPosition","scrollingContainer","minScroll","dimensions","maxScroll","isTop","isLeft","isBottom","isRight","defaultThreshold","getScrollDirectionAndSpeed","scrollContainer","scrollContainerRect","acceleration","thresholdPercentage","direction","speed","threshold","getScrollElementRect","innerWidth","innerHeight","getScrollOffsets","scrollableAncestors","getScrollXOffset","getScrollYOffset","scrollIntoViewIfNeeded","measure","properties","Rect","scrollOffsets","axis","keys","getScrollOffset","currentOffsets","scrollOffsetsDeltla","Listeners","_this$target","eventName","_this$target2","getEventListenerTarget","EventTarget","hasExceededDistance","delta","measurement","dx","dy","EventName","preventDefault","stopPropagation","KeyboardCode","defaultKeyboardCodes","defaultKeyboardCoordinateGetter","currentCoordinates","KeyboardSensor","props","activeNode","onStart","context","keyboardCodes","coordinateGetter","scrollBehavior","code","newCoordinates","coordinatesDelta","scrollDelta","scrollElementRect","clampedCoordinates","canScrollX","canScrollY","newScrollCoordinates","canScrollToNewCoordinates","coordinates","onMove","onEnd","onCancel","onActivation","activator","isDistanceConstraint","constraint","isDelayConstraint","AbstractPointerSensor","events","listenerTarget","_getEventCoordinates","activationConstraint","bypassActivationConstraint","offset","onPending","initialCoordinates","_getEventCoordinates2","activated","onAbort","_this$document$getSel","PointerSensor","events$1","MouseButton","MouseSensor","events$2","TouchSensor","touches","AutoScrollActivator","TraversalOrder","useAutoScroller","canScroll","draggingRect","enabled","interval","order","pointerCoordinates","scrollableAncestorRects","scrollIntent","useScrollIntent","setAutoScrollInterval","clearAutoScrollInterval","scrollSpeed","scrollDirection","scrollContainerRef","autoScroll","scrollLeft","scrollTop","sortedScrollableAncestors","defaultScrollIntent","disabled","previousDelta","previousIntent","useCachedNode","draggableNodes","draggableNode","cachedNode","useCombineActivators","getSyntheticHandler","Sensor","sensorActivators","MeasuringStrategy","MeasuringFrequency","defaultValue","useDroppableMeasuring","containers","dragging","config","queue","setQueue","frequency","strategy","containersRef","isDisabled","disabledRef","measureDroppableContainers","timeoutId","previousValue","map","useInitialValue","computeFn","useInitialRect","useMutationObserver","handleMutations","mutationObserver","MutationObserver","useResizeObserver","handleResize","resizeObserver","ResizeObserver","defaultMeasure","useRect","fallbackRect","setRect","measureRect","currentRect","newRect","records","record","useRectDelta","initialRect","defaultValue$1","useScrollableAncestors","previousNode","ancestors","useScrollOffsets","elements","scrollCoordinates","setScrollCoordinates","prevElements","handleScroll","scrollingElement","previousElements","cleanup","scrollableElement","useScrollOffsetsDelta","initialScrollOffsets","hasScrollOffsets","useSensorSetup","teardownFns","teardown","useSyntheticListeners","useWindowRect","defaultValue$2","useRects","firstElement","windowRect","rects","setRects","measureRects","getMeasurableNode","firstChild","useDragOverlayMeasuring","handleNodeChange","nodeRef","setRef","defaultSensors","defaultData","defaultMeasuringConfiguration","DroppableContainersMap","_super$get","_this$get$node$curren","_this$get","defaultPublicContext","defaultInternalContext","InternalContext","PublicContext","getInitialState","reducer","state","action","RestoreFocus","activatorEvent","previousActivatorEvent","previousActiveId","activatorNode","focusableNode","applyModifiers","modifiers","useMeasuringConfiguration","useLayoutShiftScrollCompensation","initialized","rectDelta","ActiveDraggableContext","Status","DndContext","memo","_sensorContext$curren","_dragOverlay$nodeRef$","_dragOverlay$rect","_over$rect","accessibility","children","collisionDetection","measuring","store","useReducer","dispatch","dispatchMonitorEvent","registerMonitorListener","status","setStatus","isInitialized","activeId","translate","activeRects","_node$data","activeRef","activeSensor","setActiveSensor","setActivatorEvent","latestProps","draggableDescribedById","enabledDroppableContainers","measuringConfiguration","measuringScheduled","activationCoordinates","autoScrollOptions","getAutoScrollerOptions","initialActiveNodeRect","activeNodeRect","containerNodeRect","sensorContext","overNode","dragOverlay","draggingNode","draggingNodeRect","usesDragOverlay","nodeRectDelta","modifiedTranslate","scrollAdjustment","activeNodeScrollDelta","scrollAdjustedTranslate","overId","setOver","appliedTranslate","activeSensorRef","instantiateSensor","sensorInstance","onDragAbort","onDragPending","onDragStart","unstable_batchedUpdates","createHandler","cancelDrop","bindActivatorToSensorInstantiator","nativeEvent","activeDraggableNode","activationContext","activators","onDragMove","onDragOver","overContainer","publicContext","internalContext","activeSensorDisablesAutoscroll","autoScrollGloballyDisabled","NullContext","defaultRole","ID_PREFIX","useDraggable","data","attributes","ariaDescribedById","role","roleDescription","tabIndex","isDragging","setActivatorNodeRef","dataRef","memoizedAttributes","useDndContext","ID_PREFIX$1","defaultResizeObserverConfig","useDroppable","resizeObserverConfig","previous","resizeObserverConnected","callbackId","resizeObserverDisabled","updateMeasurementsFor","resizeObserverTimeout","newElement","previousElement","AnimationManager","animation","clonedChildren","setClonedChildren","setElement","previousChildren","cloneElement","defaultTransform","NullifiedContextProvider","baseStyles","defaultTransition","PositionedOverlay","forwardRef","as","className","style","transition","scaleAdjustedTransform","styles","defaultDropAnimationSideEffects","originalStyles","defaultKeyframeResolver","initial","final","defaultDropAnimationConfiguration","useDropAnimation","activeDraggable","measurableNode","createDefaultDropAnimation","sideEffects","keyframes","rest","scale","finalTransform","animationKeyframes","firstKeyframe","lastKeyframe","resolve","useKey","DragOverlay","dropAnimationConfig","wrapperElement","zIndex","modifiedTransform","dropAnimation","arrayMove","array","from","to","newArray","getSortedRects","items","isValidIndex","itemsEqual","i","normalizeDisabled","rectSortingStrategy","activeIndex","overIndex","newRects","oldRect","Context","SortableContext","userDefinedItems","disabledProp","containerId","useDragOverlay","item","previousItemsRef","itemsHaveChanged","disableTransforms","contextValue","defaultNewIndexGetter","defaultAnimateLayoutChanges","isSorting","wasDragging","newIndex","previousItems","previousContainerId","transitionProperty","disabledTransition","defaultAttributes","useDerivedTransform","derivedTransform","setDerivedtransform","previousIndex","current","useSortable","animateLayoutChanges","userDefinedAttributes","localDisabled","customData","getNewIndex","localStrategy","globalDisabled","sortedRects","globalStrategy","normalizeLocalDisabled","itemsAfterCurrentSortable","isOver","setDroppableNodeRef","setDraggableNodeRef","displaceItem","shouldDisplaceDragSource","dragSourceDisplacement","shouldAnimateLayoutChanges","getTransition","_localDisabled$dragga","_localDisabled$droppa","hasSortableData","directions","sortableKeyboardCoordinates","filteredContainers","closestId","activeDroppable","newDroppable","newNode","hasDifferentScrollAncestors","hasSameContainer","isSameContainer","isAfterActive","isAfter","rectCoordinates","SortableItemContext","SortableListDragHandle","dndContext","jsx","Button","SortableListItem","content","hideHandle","itemProps","List.Item","Flex","Text","SortableList","itemsProps","setActive","activeItem","jsxs","List.Root"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|
|
1
|
+
{"version":3,"file":"sortableList.component-XfURY7C2.js","sources":["../../node_modules/@dnd-kit/utilities/dist/utilities.esm.js","../../node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js","../../node_modules/@dnd-kit/core/dist/core.esm.js","../../node_modules/@dnd-kit/sortable/dist/sortable.esm.js","../../src/components/SortableList/components/SortableListItem/sortableListItem.context.ts","../../src/components/SortableList/components/SortableListDragHandle/sortableListDragHandle.component.tsx","../../src/components/SortableList/components/SortableListItem/sortableListItem.component.tsx","../../src/components/SortableList/sortableList.component.tsx"],"sourcesContent":["import { useMemo, useLayoutEffect, useEffect, useRef, useCallback } from 'react';\n\nfunction useCombinedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return useMemo(() => node => {\n refs.forEach(ref => ref(node));\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n refs);\n}\n\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nconst canUseDOM = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';\n\nfunction isWindow(element) {\n const elementString = Object.prototype.toString.call(element);\n return elementString === '[object Window]' || // In Electron context the Window object serializes to [object global]\n elementString === '[object global]';\n}\n\nfunction isNode(node) {\n return 'nodeType' in node;\n}\n\nfunction getWindow(target) {\n var _target$ownerDocument, _target$ownerDocument2;\n\n if (!target) {\n return window;\n }\n\n if (isWindow(target)) {\n return target;\n }\n\n if (!isNode(target)) {\n return window;\n }\n\n return (_target$ownerDocument = (_target$ownerDocument2 = target.ownerDocument) == null ? void 0 : _target$ownerDocument2.defaultView) != null ? _target$ownerDocument : window;\n}\n\nfunction isDocument(node) {\n const {\n Document\n } = getWindow(node);\n return node instanceof Document;\n}\n\nfunction isHTMLElement(node) {\n if (isWindow(node)) {\n return false;\n }\n\n return node instanceof getWindow(node).HTMLElement;\n}\n\nfunction isSVGElement(node) {\n return node instanceof getWindow(node).SVGElement;\n}\n\nfunction getOwnerDocument(target) {\n if (!target) {\n return document;\n }\n\n if (isWindow(target)) {\n return target.document;\n }\n\n if (!isNode(target)) {\n return document;\n }\n\n if (isDocument(target)) {\n return target;\n }\n\n if (isHTMLElement(target) || isSVGElement(target)) {\n return target.ownerDocument;\n }\n\n return document;\n}\n\n/**\r\n * A hook that resolves to useEffect on the server and useLayoutEffect on the client\r\n * @param callback {function} Callback function that is invoked when the dependencies of the hook change\r\n */\n\nconst useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;\n\nfunction useEvent(handler) {\n const handlerRef = useRef(handler);\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n });\n return useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return handlerRef.current == null ? void 0 : handlerRef.current(...args);\n }, []);\n}\n\nfunction useInterval() {\n const intervalRef = useRef(null);\n const set = useCallback((listener, duration) => {\n intervalRef.current = setInterval(listener, duration);\n }, []);\n const clear = useCallback(() => {\n if (intervalRef.current !== null) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n return [set, clear];\n}\n\nfunction useLatestValue(value, dependencies) {\n if (dependencies === void 0) {\n dependencies = [value];\n }\n\n const valueRef = useRef(value);\n useIsomorphicLayoutEffect(() => {\n if (valueRef.current !== value) {\n valueRef.current = value;\n }\n }, dependencies);\n return valueRef;\n}\n\nfunction useLazyMemo(callback, dependencies) {\n const valueRef = useRef();\n return useMemo(() => {\n const newValue = callback(valueRef.current);\n valueRef.current = newValue;\n return newValue;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [...dependencies]);\n}\n\nfunction useNodeRef(onChange) {\n const onChangeHandler = useEvent(onChange);\n const node = useRef(null);\n const setNodeRef = useCallback(element => {\n if (element !== node.current) {\n onChangeHandler == null ? void 0 : onChangeHandler(element, node.current);\n }\n\n node.current = element;\n }, //eslint-disable-next-line\n []);\n return [node, setNodeRef];\n}\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nlet ids = {};\nfunction useUniqueId(prefix, value) {\n return useMemo(() => {\n if (value) {\n return value;\n }\n\n const id = ids[prefix] == null ? 0 : ids[prefix] + 1;\n ids[prefix] = id;\n return prefix + \"-\" + id;\n }, [prefix, value]);\n}\n\nfunction createAdjustmentFn(modifier) {\n return function (object) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((accumulator, adjustment) => {\n const entries = Object.entries(adjustment);\n\n for (const [key, valueAdjustment] of entries) {\n const value = accumulator[key];\n\n if (value != null) {\n accumulator[key] = value + modifier * valueAdjustment;\n }\n }\n\n return accumulator;\n }, { ...object\n });\n };\n}\n\nconst add = /*#__PURE__*/createAdjustmentFn(1);\nconst subtract = /*#__PURE__*/createAdjustmentFn(-1);\n\nfunction hasViewportRelativeCoordinates(event) {\n return 'clientX' in event && 'clientY' in event;\n}\n\nfunction isKeyboardEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n KeyboardEvent\n } = getWindow(event.target);\n return KeyboardEvent && event instanceof KeyboardEvent;\n}\n\nfunction isTouchEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n TouchEvent\n } = getWindow(event.target);\n return TouchEvent && event instanceof TouchEvent;\n}\n\n/**\r\n * Returns the normalized x and y coordinates for mouse and touch events.\r\n */\n\nfunction getEventCoordinates(event) {\n if (isTouchEvent(event)) {\n if (event.touches && event.touches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.touches[0];\n return {\n x,\n y\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.changedTouches[0];\n return {\n x,\n y\n };\n }\n }\n\n if (hasViewportRelativeCoordinates(event)) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n\n return null;\n}\n\nconst CSS = /*#__PURE__*/Object.freeze({\n Translate: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n x,\n y\n } = transform;\n return \"translate3d(\" + (x ? Math.round(x) : 0) + \"px, \" + (y ? Math.round(y) : 0) + \"px, 0)\";\n }\n\n },\n Scale: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n scaleX,\n scaleY\n } = transform;\n return \"scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\";\n }\n\n },\n Transform: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');\n }\n\n },\n Transition: {\n toString(_ref) {\n let {\n property,\n duration,\n easing\n } = _ref;\n return property + \" \" + duration + \"ms \" + easing;\n }\n\n }\n});\n\nconst SELECTOR = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';\nfunction findFirstFocusableNode(element) {\n if (element.matches(SELECTOR)) {\n return element;\n }\n\n return element.querySelector(SELECTOR);\n}\n\nexport { CSS, add, canUseDOM, findFirstFocusableNode, getEventCoordinates, getOwnerDocument, getWindow, hasViewportRelativeCoordinates, isDocument, isHTMLElement, isKeyboardEvent, isNode, isSVGElement, isTouchEvent, isWindow, subtract, useCombinedRefs, useEvent, useInterval, useIsomorphicLayoutEffect, useLatestValue, useLazyMemo, useNodeRef, usePrevious, useUniqueId };\n//# sourceMappingURL=utilities.esm.js.map\n","import React, { useState, useCallback } from 'react';\n\nconst hiddenStyles = {\n display: 'none'\n};\nfunction HiddenText(_ref) {\n let {\n id,\n value\n } = _ref;\n return React.createElement(\"div\", {\n id: id,\n style: hiddenStyles\n }, value);\n}\n\nfunction LiveRegion(_ref) {\n let {\n id,\n announcement,\n ariaLiveType = \"assertive\"\n } = _ref;\n // Hide element visually but keep it readable by screen readers\n const visuallyHidden = {\n position: 'fixed',\n top: 0,\n left: 0,\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(100%)',\n whiteSpace: 'nowrap'\n };\n return React.createElement(\"div\", {\n id: id,\n style: visuallyHidden,\n role: \"status\",\n \"aria-live\": ariaLiveType,\n \"aria-atomic\": true\n }, announcement);\n}\n\nfunction useAnnouncement() {\n const [announcement, setAnnouncement] = useState('');\n const announce = useCallback(value => {\n if (value != null) {\n setAnnouncement(value);\n }\n }, []);\n return {\n announce,\n announcement\n };\n}\n\nexport { HiddenText, LiveRegion, useAnnouncement };\n//# sourceMappingURL=accessibility.esm.js.map\n","import React, { createContext, useContext, useEffect, useState, useCallback, useMemo, useRef, memo, useReducer, cloneElement, forwardRef } from 'react';\nimport { createPortal, unstable_batchedUpdates } from 'react-dom';\nimport { useUniqueId, getEventCoordinates, getWindow, isDocument, isHTMLElement, isSVGElement, canUseDOM, isWindow, isNode, getOwnerDocument, add, isKeyboardEvent, subtract, useLazyMemo, useInterval, usePrevious, useLatestValue, useEvent, useIsomorphicLayoutEffect, useNodeRef, findFirstFocusableNode, CSS } from '@dnd-kit/utilities';\nimport { useAnnouncement, HiddenText, LiveRegion } from '@dnd-kit/accessibility';\n\nconst DndMonitorContext = /*#__PURE__*/createContext(null);\n\nfunction useDndMonitor(listener) {\n const registerListener = useContext(DndMonitorContext);\n useEffect(() => {\n if (!registerListener) {\n throw new Error('useDndMonitor must be used within a children of <DndContext>');\n }\n\n const unsubscribe = registerListener(listener);\n return unsubscribe;\n }, [listener, registerListener]);\n}\n\nfunction useDndMonitorProvider() {\n const [listeners] = useState(() => new Set());\n const registerListener = useCallback(listener => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n }, [listeners]);\n const dispatch = useCallback(_ref => {\n let {\n type,\n event\n } = _ref;\n listeners.forEach(listener => {\n var _listener$type;\n\n return (_listener$type = listener[type]) == null ? void 0 : _listener$type.call(listener, event);\n });\n }, [listeners]);\n return [dispatch, registerListener];\n}\n\nconst defaultScreenReaderInstructions = {\n draggable: \"\\n To pick up a draggable item, press the space bar.\\n While dragging, use the arrow keys to move the item.\\n Press space again to drop the item in its new position, or press escape to cancel.\\n \"\n};\nconst defaultAnnouncements = {\n onDragStart(_ref) {\n let {\n active\n } = _ref;\n return \"Picked up draggable item \" + active.id + \".\";\n },\n\n onDragOver(_ref2) {\n let {\n active,\n over\n } = _ref2;\n\n if (over) {\n return \"Draggable item \" + active.id + \" was moved over droppable area \" + over.id + \".\";\n }\n\n return \"Draggable item \" + active.id + \" is no longer over a droppable area.\";\n },\n\n onDragEnd(_ref3) {\n let {\n active,\n over\n } = _ref3;\n\n if (over) {\n return \"Draggable item \" + active.id + \" was dropped over droppable area \" + over.id;\n }\n\n return \"Draggable item \" + active.id + \" was dropped.\";\n },\n\n onDragCancel(_ref4) {\n let {\n active\n } = _ref4;\n return \"Dragging was cancelled. Draggable item \" + active.id + \" was dropped.\";\n }\n\n};\n\nfunction Accessibility(_ref) {\n let {\n announcements = defaultAnnouncements,\n container,\n hiddenTextDescribedById,\n screenReaderInstructions = defaultScreenReaderInstructions\n } = _ref;\n const {\n announce,\n announcement\n } = useAnnouncement();\n const liveRegionId = useUniqueId(\"DndLiveRegion\");\n const [mounted, setMounted] = useState(false);\n useEffect(() => {\n setMounted(true);\n }, []);\n useDndMonitor(useMemo(() => ({\n onDragStart(_ref2) {\n let {\n active\n } = _ref2;\n announce(announcements.onDragStart({\n active\n }));\n },\n\n onDragMove(_ref3) {\n let {\n active,\n over\n } = _ref3;\n\n if (announcements.onDragMove) {\n announce(announcements.onDragMove({\n active,\n over\n }));\n }\n },\n\n onDragOver(_ref4) {\n let {\n active,\n over\n } = _ref4;\n announce(announcements.onDragOver({\n active,\n over\n }));\n },\n\n onDragEnd(_ref5) {\n let {\n active,\n over\n } = _ref5;\n announce(announcements.onDragEnd({\n active,\n over\n }));\n },\n\n onDragCancel(_ref6) {\n let {\n active,\n over\n } = _ref6;\n announce(announcements.onDragCancel({\n active,\n over\n }));\n }\n\n }), [announce, announcements]));\n\n if (!mounted) {\n return null;\n }\n\n const markup = React.createElement(React.Fragment, null, React.createElement(HiddenText, {\n id: hiddenTextDescribedById,\n value: screenReaderInstructions.draggable\n }), React.createElement(LiveRegion, {\n id: liveRegionId,\n announcement: announcement\n }));\n return container ? createPortal(markup, container) : markup;\n}\n\nvar Action;\n\n(function (Action) {\n Action[\"DragStart\"] = \"dragStart\";\n Action[\"DragMove\"] = \"dragMove\";\n Action[\"DragEnd\"] = \"dragEnd\";\n Action[\"DragCancel\"] = \"dragCancel\";\n Action[\"DragOver\"] = \"dragOver\";\n Action[\"RegisterDroppable\"] = \"registerDroppable\";\n Action[\"SetDroppableDisabled\"] = \"setDroppableDisabled\";\n Action[\"UnregisterDroppable\"] = \"unregisterDroppable\";\n})(Action || (Action = {}));\n\nfunction noop() {}\n\nfunction useSensor(sensor, options) {\n return useMemo(() => ({\n sensor,\n options: options != null ? options : {}\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [sensor, options]);\n}\n\nfunction useSensors() {\n for (var _len = arguments.length, sensors = new Array(_len), _key = 0; _key < _len; _key++) {\n sensors[_key] = arguments[_key];\n }\n\n return useMemo(() => [...sensors].filter(sensor => sensor != null), // eslint-disable-next-line react-hooks/exhaustive-deps\n [...sensors]);\n}\n\nconst defaultCoordinates = /*#__PURE__*/Object.freeze({\n x: 0,\n y: 0\n});\n\n/**\r\n * Returns the distance between two points\r\n */\nfunction distanceBetween(p1, p2) {\n return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n}\n\nfunction getRelativeTransformOrigin(event, rect) {\n const eventCoordinates = getEventCoordinates(event);\n\n if (!eventCoordinates) {\n return '0 0';\n }\n\n const transformOrigin = {\n x: (eventCoordinates.x - rect.left) / rect.width * 100,\n y: (eventCoordinates.y - rect.top) / rect.height * 100\n };\n return transformOrigin.x + \"% \" + transformOrigin.y + \"%\";\n}\n\n/**\r\n * Sort collisions from smallest to greatest value\r\n */\nfunction sortCollisionsAsc(_ref, _ref2) {\n let {\n data: {\n value: a\n }\n } = _ref;\n let {\n data: {\n value: b\n }\n } = _ref2;\n return a - b;\n}\n/**\r\n * Sort collisions from greatest to smallest value\r\n */\n\nfunction sortCollisionsDesc(_ref3, _ref4) {\n let {\n data: {\n value: a\n }\n } = _ref3;\n let {\n data: {\n value: b\n }\n } = _ref4;\n return b - a;\n}\n/**\r\n * Returns the coordinates of the corners of a given rectangle:\r\n * [TopLeft {x, y}, TopRight {x, y}, BottomLeft {x, y}, BottomRight {x, y}]\r\n */\n\nfunction cornersOfRectangle(_ref5) {\n let {\n left,\n top,\n height,\n width\n } = _ref5;\n return [{\n x: left,\n y: top\n }, {\n x: left + width,\n y: top\n }, {\n x: left,\n y: top + height\n }, {\n x: left + width,\n y: top + height\n }];\n}\nfunction getFirstCollision(collisions, property) {\n if (!collisions || collisions.length === 0) {\n return null;\n }\n\n const [firstCollision] = collisions;\n return property ? firstCollision[property] : firstCollision;\n}\n\n/**\r\n * Returns the coordinates of the center of a given ClientRect\r\n */\n\nfunction centerOfRectangle(rect, left, top) {\n if (left === void 0) {\n left = rect.left;\n }\n\n if (top === void 0) {\n top = rect.top;\n }\n\n return {\n x: left + rect.width * 0.5,\n y: top + rect.height * 0.5\n };\n}\n/**\r\n * Returns the closest rectangles from an array of rectangles to the center of a given\r\n * rectangle.\r\n */\n\n\nconst closestCenter = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const centerRect = centerOfRectangle(collisionRect, collisionRect.left, collisionRect.top);\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const distBetween = distanceBetween(centerOfRectangle(rect), centerRect);\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: distBetween\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the closest rectangles from an array of rectangles to the corners of\r\n * another rectangle.\r\n */\n\nconst closestCorners = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const corners = cornersOfRectangle(collisionRect);\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const rectCorners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner, index) => {\n return accumulator + distanceBetween(rectCorners[index], corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: effectiveDistance\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the intersecting rectangle area between two rectangles\r\n */\n\nfunction getIntersectionRatio(entry, target) {\n const top = Math.max(target.top, entry.top);\n const left = Math.max(target.left, entry.left);\n const right = Math.min(target.left + target.width, entry.left + entry.width);\n const bottom = Math.min(target.top + target.height, entry.top + entry.height);\n const width = right - left;\n const height = bottom - top;\n\n if (left < right && top < bottom) {\n const targetArea = target.width * target.height;\n const entryArea = entry.width * entry.height;\n const intersectionArea = width * height;\n const intersectionRatio = intersectionArea / (targetArea + entryArea - intersectionArea);\n return Number(intersectionRatio.toFixed(4));\n } // Rectangles do not overlap, or overlap has an area of zero (edge/corner overlap)\n\n\n return 0;\n}\n/**\r\n * Returns the rectangles that has the greatest intersection area with a given\r\n * rectangle in an array of rectangles.\r\n */\n\nconst rectIntersection = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const intersectionRatio = getIntersectionRatio(rect, collisionRect);\n\n if (intersectionRatio > 0) {\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: intersectionRatio\n }\n });\n }\n }\n }\n\n return collisions.sort(sortCollisionsDesc);\n};\n\n/**\r\n * Check if a given point is contained within a bounding rectangle\r\n */\n\nfunction isPointWithinRect(point, rect) {\n const {\n top,\n left,\n bottom,\n right\n } = rect;\n return top <= point.y && point.y <= bottom && left <= point.x && point.x <= right;\n}\n/**\r\n * Returns the rectangles that the pointer is hovering over\r\n */\n\n\nconst pointerWithin = _ref => {\n let {\n droppableContainers,\n droppableRects,\n pointerCoordinates\n } = _ref;\n\n if (!pointerCoordinates) {\n return [];\n }\n\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect && isPointWithinRect(pointerCoordinates, rect)) {\n /* There may be more than a single rectangle intersecting\r\n * with the pointer coordinates. In order to sort the\r\n * colliding rectangles, we measure the distance between\r\n * the pointer and the corners of the intersecting rectangle\r\n */\n const corners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner) => {\n return accumulator + distanceBetween(pointerCoordinates, corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: effectiveDistance\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\nfunction adjustScale(transform, rect1, rect2) {\n return { ...transform,\n scaleX: rect1 && rect2 ? rect1.width / rect2.width : 1,\n scaleY: rect1 && rect2 ? rect1.height / rect2.height : 1\n };\n}\n\nfunction getRectDelta(rect1, rect2) {\n return rect1 && rect2 ? {\n x: rect1.left - rect2.left,\n y: rect1.top - rect2.top\n } : defaultCoordinates;\n}\n\nfunction createRectAdjustmentFn(modifier) {\n return function adjustClientRect(rect) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((acc, adjustment) => ({ ...acc,\n top: acc.top + modifier * adjustment.y,\n bottom: acc.bottom + modifier * adjustment.y,\n left: acc.left + modifier * adjustment.x,\n right: acc.right + modifier * adjustment.x\n }), { ...rect\n });\n };\n}\nconst getAdjustedRect = /*#__PURE__*/createRectAdjustmentFn(1);\n\nfunction parseTransform(transform) {\n if (transform.startsWith('matrix3d(')) {\n const transformArray = transform.slice(9, -1).split(/, /);\n return {\n x: +transformArray[12],\n y: +transformArray[13],\n scaleX: +transformArray[0],\n scaleY: +transformArray[5]\n };\n } else if (transform.startsWith('matrix(')) {\n const transformArray = transform.slice(7, -1).split(/, /);\n return {\n x: +transformArray[4],\n y: +transformArray[5],\n scaleX: +transformArray[0],\n scaleY: +transformArray[3]\n };\n }\n\n return null;\n}\n\nfunction inverseTransform(rect, transform, transformOrigin) {\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return rect;\n }\n\n const {\n scaleX,\n scaleY,\n x: translateX,\n y: translateY\n } = parsedTransform;\n const x = rect.left - translateX - (1 - scaleX) * parseFloat(transformOrigin);\n const y = rect.top - translateY - (1 - scaleY) * parseFloat(transformOrigin.slice(transformOrigin.indexOf(' ') + 1));\n const w = scaleX ? rect.width / scaleX : rect.width;\n const h = scaleY ? rect.height / scaleY : rect.height;\n return {\n width: w,\n height: h,\n top: y,\n right: x + w,\n bottom: y + h,\n left: x\n };\n}\n\nconst defaultOptions = {\n ignoreTransform: false\n};\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n */\n\nfunction getClientRect(element, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n let rect = element.getBoundingClientRect();\n\n if (options.ignoreTransform) {\n const {\n transform,\n transformOrigin\n } = getWindow(element).getComputedStyle(element);\n\n if (transform) {\n rect = inverseTransform(rect, transform, transformOrigin);\n }\n }\n\n const {\n top,\n left,\n width,\n height,\n bottom,\n right\n } = rect;\n return {\n top,\n left,\n width,\n height,\n bottom,\n right\n };\n}\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n *\r\n * @remarks\r\n * The ClientRect returned by this method does not take into account transforms\r\n * applied to the element it measures.\r\n *\r\n */\n\nfunction getTransformAgnosticClientRect(element) {\n return getClientRect(element, {\n ignoreTransform: true\n });\n}\n\nfunction getWindowClientRect(element) {\n const width = element.innerWidth;\n const height = element.innerHeight;\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height\n };\n}\n\nfunction isFixed(node, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = getWindow(node).getComputedStyle(node);\n }\n\n return computedStyle.position === 'fixed';\n}\n\nfunction isScrollable(element, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = getWindow(element).getComputedStyle(element);\n }\n\n const overflowRegex = /(auto|scroll|overlay)/;\n const properties = ['overflow', 'overflowX', 'overflowY'];\n return properties.some(property => {\n const value = computedStyle[property];\n return typeof value === 'string' ? overflowRegex.test(value) : false;\n });\n}\n\nfunction getScrollableAncestors(element, limit) {\n const scrollParents = [];\n\n function findScrollableAncestors(node) {\n if (limit != null && scrollParents.length >= limit) {\n return scrollParents;\n }\n\n if (!node) {\n return scrollParents;\n }\n\n if (isDocument(node) && node.scrollingElement != null && !scrollParents.includes(node.scrollingElement)) {\n scrollParents.push(node.scrollingElement);\n return scrollParents;\n }\n\n if (!isHTMLElement(node) || isSVGElement(node)) {\n return scrollParents;\n }\n\n if (scrollParents.includes(node)) {\n return scrollParents;\n }\n\n const computedStyle = getWindow(element).getComputedStyle(node);\n\n if (node !== element) {\n if (isScrollable(node, computedStyle)) {\n scrollParents.push(node);\n }\n }\n\n if (isFixed(node, computedStyle)) {\n return scrollParents;\n }\n\n return findScrollableAncestors(node.parentNode);\n }\n\n if (!element) {\n return scrollParents;\n }\n\n return findScrollableAncestors(element);\n}\nfunction getFirstScrollableAncestor(node) {\n const [firstScrollableAncestor] = getScrollableAncestors(node, 1);\n return firstScrollableAncestor != null ? firstScrollableAncestor : null;\n}\n\nfunction getScrollableElement(element) {\n if (!canUseDOM || !element) {\n return null;\n }\n\n if (isWindow(element)) {\n return element;\n }\n\n if (!isNode(element)) {\n return null;\n }\n\n if (isDocument(element) || element === getOwnerDocument(element).scrollingElement) {\n return window;\n }\n\n if (isHTMLElement(element)) {\n return element;\n }\n\n return null;\n}\n\nfunction getScrollXCoordinate(element) {\n if (isWindow(element)) {\n return element.scrollX;\n }\n\n return element.scrollLeft;\n}\nfunction getScrollYCoordinate(element) {\n if (isWindow(element)) {\n return element.scrollY;\n }\n\n return element.scrollTop;\n}\nfunction getScrollCoordinates(element) {\n return {\n x: getScrollXCoordinate(element),\n y: getScrollYCoordinate(element)\n };\n}\n\nvar Direction;\n\n(function (Direction) {\n Direction[Direction[\"Forward\"] = 1] = \"Forward\";\n Direction[Direction[\"Backward\"] = -1] = \"Backward\";\n})(Direction || (Direction = {}));\n\nfunction isDocumentScrollingElement(element) {\n if (!canUseDOM || !element) {\n return false;\n }\n\n return element === document.scrollingElement;\n}\n\nfunction getScrollPosition(scrollingContainer) {\n const minScroll = {\n x: 0,\n y: 0\n };\n const dimensions = isDocumentScrollingElement(scrollingContainer) ? {\n height: window.innerHeight,\n width: window.innerWidth\n } : {\n height: scrollingContainer.clientHeight,\n width: scrollingContainer.clientWidth\n };\n const maxScroll = {\n x: scrollingContainer.scrollWidth - dimensions.width,\n y: scrollingContainer.scrollHeight - dimensions.height\n };\n const isTop = scrollingContainer.scrollTop <= minScroll.y;\n const isLeft = scrollingContainer.scrollLeft <= minScroll.x;\n const isBottom = scrollingContainer.scrollTop >= maxScroll.y;\n const isRight = scrollingContainer.scrollLeft >= maxScroll.x;\n return {\n isTop,\n isLeft,\n isBottom,\n isRight,\n maxScroll,\n minScroll\n };\n}\n\nconst defaultThreshold = {\n x: 0.2,\n y: 0.2\n};\nfunction getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, _ref, acceleration, thresholdPercentage) {\n let {\n top,\n left,\n right,\n bottom\n } = _ref;\n\n if (acceleration === void 0) {\n acceleration = 10;\n }\n\n if (thresholdPercentage === void 0) {\n thresholdPercentage = defaultThreshold;\n }\n\n const {\n isTop,\n isBottom,\n isLeft,\n isRight\n } = getScrollPosition(scrollContainer);\n const direction = {\n x: 0,\n y: 0\n };\n const speed = {\n x: 0,\n y: 0\n };\n const threshold = {\n height: scrollContainerRect.height * thresholdPercentage.y,\n width: scrollContainerRect.width * thresholdPercentage.x\n };\n\n if (!isTop && top <= scrollContainerRect.top + threshold.height) {\n // Scroll Up\n direction.y = Direction.Backward;\n speed.y = acceleration * Math.abs((scrollContainerRect.top + threshold.height - top) / threshold.height);\n } else if (!isBottom && bottom >= scrollContainerRect.bottom - threshold.height) {\n // Scroll Down\n direction.y = Direction.Forward;\n speed.y = acceleration * Math.abs((scrollContainerRect.bottom - threshold.height - bottom) / threshold.height);\n }\n\n if (!isRight && right >= scrollContainerRect.right - threshold.width) {\n // Scroll Right\n direction.x = Direction.Forward;\n speed.x = acceleration * Math.abs((scrollContainerRect.right - threshold.width - right) / threshold.width);\n } else if (!isLeft && left <= scrollContainerRect.left + threshold.width) {\n // Scroll Left\n direction.x = Direction.Backward;\n speed.x = acceleration * Math.abs((scrollContainerRect.left + threshold.width - left) / threshold.width);\n }\n\n return {\n direction,\n speed\n };\n}\n\nfunction getScrollElementRect(element) {\n if (element === document.scrollingElement) {\n const {\n innerWidth,\n innerHeight\n } = window;\n return {\n top: 0,\n left: 0,\n right: innerWidth,\n bottom: innerHeight,\n width: innerWidth,\n height: innerHeight\n };\n }\n\n const {\n top,\n left,\n right,\n bottom\n } = element.getBoundingClientRect();\n return {\n top,\n left,\n right,\n bottom,\n width: element.clientWidth,\n height: element.clientHeight\n };\n}\n\nfunction getScrollOffsets(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return add(acc, getScrollCoordinates(node));\n }, defaultCoordinates);\n}\nfunction getScrollXOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollXCoordinate(node);\n }, 0);\n}\nfunction getScrollYOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollYCoordinate(node);\n }, 0);\n}\n\nfunction scrollIntoViewIfNeeded(element, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n\n if (!element) {\n return;\n }\n\n const {\n top,\n left,\n bottom,\n right\n } = measure(element);\n const firstScrollableAncestor = getFirstScrollableAncestor(element);\n\n if (!firstScrollableAncestor) {\n return;\n }\n\n if (bottom <= 0 || right <= 0 || top >= window.innerHeight || left >= window.innerWidth) {\n element.scrollIntoView({\n block: 'center',\n inline: 'center'\n });\n }\n}\n\nconst properties = [['x', ['left', 'right'], getScrollXOffset], ['y', ['top', 'bottom'], getScrollYOffset]];\nclass Rect {\n constructor(rect, element) {\n this.rect = void 0;\n this.width = void 0;\n this.height = void 0;\n this.top = void 0;\n this.bottom = void 0;\n this.right = void 0;\n this.left = void 0;\n const scrollableAncestors = getScrollableAncestors(element);\n const scrollOffsets = getScrollOffsets(scrollableAncestors);\n this.rect = { ...rect\n };\n this.width = rect.width;\n this.height = rect.height;\n\n for (const [axis, keys, getScrollOffset] of properties) {\n for (const key of keys) {\n Object.defineProperty(this, key, {\n get: () => {\n const currentOffsets = getScrollOffset(scrollableAncestors);\n const scrollOffsetsDeltla = scrollOffsets[axis] - currentOffsets;\n return this.rect[key] + scrollOffsetsDeltla;\n },\n enumerable: true\n });\n }\n }\n\n Object.defineProperty(this, 'rect', {\n enumerable: false\n });\n }\n\n}\n\nclass Listeners {\n constructor(target) {\n this.target = void 0;\n this.listeners = [];\n\n this.removeAll = () => {\n this.listeners.forEach(listener => {\n var _this$target;\n\n return (_this$target = this.target) == null ? void 0 : _this$target.removeEventListener(...listener);\n });\n };\n\n this.target = target;\n }\n\n add(eventName, handler, options) {\n var _this$target2;\n\n (_this$target2 = this.target) == null ? void 0 : _this$target2.addEventListener(eventName, handler, options);\n this.listeners.push([eventName, handler, options]);\n }\n\n}\n\nfunction getEventListenerTarget(target) {\n // If the `event.target` element is removed from the document events will still be targeted\n // at it, and hence won't always bubble up to the window or document anymore.\n // If there is any risk of an element being removed while it is being dragged,\n // the best practice is to attach the event listeners directly to the target.\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget\n const {\n EventTarget\n } = getWindow(target);\n return target instanceof EventTarget ? target : getOwnerDocument(target);\n}\n\nfunction hasExceededDistance(delta, measurement) {\n const dx = Math.abs(delta.x);\n const dy = Math.abs(delta.y);\n\n if (typeof measurement === 'number') {\n return Math.sqrt(dx ** 2 + dy ** 2) > measurement;\n }\n\n if ('x' in measurement && 'y' in measurement) {\n return dx > measurement.x && dy > measurement.y;\n }\n\n if ('x' in measurement) {\n return dx > measurement.x;\n }\n\n if ('y' in measurement) {\n return dy > measurement.y;\n }\n\n return false;\n}\n\nvar EventName;\n\n(function (EventName) {\n EventName[\"Click\"] = \"click\";\n EventName[\"DragStart\"] = \"dragstart\";\n EventName[\"Keydown\"] = \"keydown\";\n EventName[\"ContextMenu\"] = \"contextmenu\";\n EventName[\"Resize\"] = \"resize\";\n EventName[\"SelectionChange\"] = \"selectionchange\";\n EventName[\"VisibilityChange\"] = \"visibilitychange\";\n})(EventName || (EventName = {}));\n\nfunction preventDefault(event) {\n event.preventDefault();\n}\nfunction stopPropagation(event) {\n event.stopPropagation();\n}\n\nvar KeyboardCode;\n\n(function (KeyboardCode) {\n KeyboardCode[\"Space\"] = \"Space\";\n KeyboardCode[\"Down\"] = \"ArrowDown\";\n KeyboardCode[\"Right\"] = \"ArrowRight\";\n KeyboardCode[\"Left\"] = \"ArrowLeft\";\n KeyboardCode[\"Up\"] = \"ArrowUp\";\n KeyboardCode[\"Esc\"] = \"Escape\";\n KeyboardCode[\"Enter\"] = \"Enter\";\n KeyboardCode[\"Tab\"] = \"Tab\";\n})(KeyboardCode || (KeyboardCode = {}));\n\nconst defaultKeyboardCodes = {\n start: [KeyboardCode.Space, KeyboardCode.Enter],\n cancel: [KeyboardCode.Esc],\n end: [KeyboardCode.Space, KeyboardCode.Enter, KeyboardCode.Tab]\n};\nconst defaultKeyboardCoordinateGetter = (event, _ref) => {\n let {\n currentCoordinates\n } = _ref;\n\n switch (event.code) {\n case KeyboardCode.Right:\n return { ...currentCoordinates,\n x: currentCoordinates.x + 25\n };\n\n case KeyboardCode.Left:\n return { ...currentCoordinates,\n x: currentCoordinates.x - 25\n };\n\n case KeyboardCode.Down:\n return { ...currentCoordinates,\n y: currentCoordinates.y + 25\n };\n\n case KeyboardCode.Up:\n return { ...currentCoordinates,\n y: currentCoordinates.y - 25\n };\n }\n\n return undefined;\n};\n\nclass KeyboardSensor {\n constructor(props) {\n this.props = void 0;\n this.autoScrollEnabled = false;\n this.referenceCoordinates = void 0;\n this.listeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n const {\n event: {\n target\n }\n } = props;\n this.props = props;\n this.listeners = new Listeners(getOwnerDocument(target));\n this.windowListeners = new Listeners(getWindow(target));\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.attach();\n }\n\n attach() {\n this.handleStart();\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n setTimeout(() => this.listeners.add(EventName.Keydown, this.handleKeyDown));\n }\n\n handleStart() {\n const {\n activeNode,\n onStart\n } = this.props;\n const node = activeNode.node.current;\n\n if (node) {\n scrollIntoViewIfNeeded(node);\n }\n\n onStart(defaultCoordinates);\n }\n\n handleKeyDown(event) {\n if (isKeyboardEvent(event)) {\n const {\n active,\n context,\n options\n } = this.props;\n const {\n keyboardCodes = defaultKeyboardCodes,\n coordinateGetter = defaultKeyboardCoordinateGetter,\n scrollBehavior = 'smooth'\n } = options;\n const {\n code\n } = event;\n\n if (keyboardCodes.end.includes(code)) {\n this.handleEnd(event);\n return;\n }\n\n if (keyboardCodes.cancel.includes(code)) {\n this.handleCancel(event);\n return;\n }\n\n const {\n collisionRect\n } = context.current;\n const currentCoordinates = collisionRect ? {\n x: collisionRect.left,\n y: collisionRect.top\n } : defaultCoordinates;\n\n if (!this.referenceCoordinates) {\n this.referenceCoordinates = currentCoordinates;\n }\n\n const newCoordinates = coordinateGetter(event, {\n active,\n context: context.current,\n currentCoordinates\n });\n\n if (newCoordinates) {\n const coordinatesDelta = subtract(newCoordinates, currentCoordinates);\n const scrollDelta = {\n x: 0,\n y: 0\n };\n const {\n scrollableAncestors\n } = context.current;\n\n for (const scrollContainer of scrollableAncestors) {\n const direction = event.code;\n const {\n isTop,\n isRight,\n isLeft,\n isBottom,\n maxScroll,\n minScroll\n } = getScrollPosition(scrollContainer);\n const scrollElementRect = getScrollElementRect(scrollContainer);\n const clampedCoordinates = {\n x: Math.min(direction === KeyboardCode.Right ? scrollElementRect.right - scrollElementRect.width / 2 : scrollElementRect.right, Math.max(direction === KeyboardCode.Right ? scrollElementRect.left : scrollElementRect.left + scrollElementRect.width / 2, newCoordinates.x)),\n y: Math.min(direction === KeyboardCode.Down ? scrollElementRect.bottom - scrollElementRect.height / 2 : scrollElementRect.bottom, Math.max(direction === KeyboardCode.Down ? scrollElementRect.top : scrollElementRect.top + scrollElementRect.height / 2, newCoordinates.y))\n };\n const canScrollX = direction === KeyboardCode.Right && !isRight || direction === KeyboardCode.Left && !isLeft;\n const canScrollY = direction === KeyboardCode.Down && !isBottom || direction === KeyboardCode.Up && !isTop;\n\n if (canScrollX && clampedCoordinates.x !== newCoordinates.x) {\n const newScrollCoordinates = scrollContainer.scrollLeft + coordinatesDelta.x;\n const canScrollToNewCoordinates = direction === KeyboardCode.Right && newScrollCoordinates <= maxScroll.x || direction === KeyboardCode.Left && newScrollCoordinates >= minScroll.x;\n\n if (canScrollToNewCoordinates && !coordinatesDelta.y) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n left: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.x = scrollContainer.scrollLeft - newScrollCoordinates;\n } else {\n scrollDelta.x = direction === KeyboardCode.Right ? scrollContainer.scrollLeft - maxScroll.x : scrollContainer.scrollLeft - minScroll.x;\n }\n\n if (scrollDelta.x) {\n scrollContainer.scrollBy({\n left: -scrollDelta.x,\n behavior: scrollBehavior\n });\n }\n\n break;\n } else if (canScrollY && clampedCoordinates.y !== newCoordinates.y) {\n const newScrollCoordinates = scrollContainer.scrollTop + coordinatesDelta.y;\n const canScrollToNewCoordinates = direction === KeyboardCode.Down && newScrollCoordinates <= maxScroll.y || direction === KeyboardCode.Up && newScrollCoordinates >= minScroll.y;\n\n if (canScrollToNewCoordinates && !coordinatesDelta.x) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n top: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.y = scrollContainer.scrollTop - newScrollCoordinates;\n } else {\n scrollDelta.y = direction === KeyboardCode.Down ? scrollContainer.scrollTop - maxScroll.y : scrollContainer.scrollTop - minScroll.y;\n }\n\n if (scrollDelta.y) {\n scrollContainer.scrollBy({\n top: -scrollDelta.y,\n behavior: scrollBehavior\n });\n }\n\n break;\n }\n }\n\n this.handleMove(event, add(subtract(newCoordinates, this.referenceCoordinates), scrollDelta));\n }\n }\n }\n\n handleMove(event, coordinates) {\n const {\n onMove\n } = this.props;\n event.preventDefault();\n onMove(coordinates);\n }\n\n handleEnd(event) {\n const {\n onEnd\n } = this.props;\n event.preventDefault();\n this.detach();\n onEnd();\n }\n\n handleCancel(event) {\n const {\n onCancel\n } = this.props;\n event.preventDefault();\n this.detach();\n onCancel();\n }\n\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll();\n }\n\n}\nKeyboardSensor.activators = [{\n eventName: 'onKeyDown',\n handler: (event, _ref, _ref2) => {\n let {\n keyboardCodes = defaultKeyboardCodes,\n onActivation\n } = _ref;\n let {\n active\n } = _ref2;\n const {\n code\n } = event.nativeEvent;\n\n if (keyboardCodes.start.includes(code)) {\n const activator = active.activatorNode.current;\n\n if (activator && event.target !== activator) {\n return false;\n }\n\n event.preventDefault();\n onActivation == null ? void 0 : onActivation({\n event: event.nativeEvent\n });\n return true;\n }\n\n return false;\n }\n}];\n\nfunction isDistanceConstraint(constraint) {\n return Boolean(constraint && 'distance' in constraint);\n}\n\nfunction isDelayConstraint(constraint) {\n return Boolean(constraint && 'delay' in constraint);\n}\n\nclass AbstractPointerSensor {\n constructor(props, events, listenerTarget) {\n var _getEventCoordinates;\n\n if (listenerTarget === void 0) {\n listenerTarget = getEventListenerTarget(props.event.target);\n }\n\n this.props = void 0;\n this.events = void 0;\n this.autoScrollEnabled = true;\n this.document = void 0;\n this.activated = false;\n this.initialCoordinates = void 0;\n this.timeoutId = null;\n this.listeners = void 0;\n this.documentListeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n this.events = events;\n const {\n event\n } = props;\n const {\n target\n } = event;\n this.props = props;\n this.events = events;\n this.document = getOwnerDocument(target);\n this.documentListeners = new Listeners(this.document);\n this.listeners = new Listeners(listenerTarget);\n this.windowListeners = new Listeners(getWindow(target));\n this.initialCoordinates = (_getEventCoordinates = getEventCoordinates(event)) != null ? _getEventCoordinates : defaultCoordinates;\n this.handleStart = this.handleStart.bind(this);\n this.handleMove = this.handleMove.bind(this);\n this.handleEnd = this.handleEnd.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleKeydown = this.handleKeydown.bind(this);\n this.removeTextSelection = this.removeTextSelection.bind(this);\n this.attach();\n }\n\n attach() {\n const {\n events,\n props: {\n options: {\n activationConstraint,\n bypassActivationConstraint\n }\n }\n } = this;\n this.listeners.add(events.move.name, this.handleMove, {\n passive: false\n });\n this.listeners.add(events.end.name, this.handleEnd);\n\n if (events.cancel) {\n this.listeners.add(events.cancel.name, this.handleCancel);\n }\n\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.DragStart, preventDefault);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n this.windowListeners.add(EventName.ContextMenu, preventDefault);\n this.documentListeners.add(EventName.Keydown, this.handleKeydown);\n\n if (activationConstraint) {\n if (bypassActivationConstraint != null && bypassActivationConstraint({\n event: this.props.event,\n activeNode: this.props.activeNode,\n options: this.props.options\n })) {\n return this.handleStart();\n }\n\n if (isDelayConstraint(activationConstraint)) {\n this.timeoutId = setTimeout(this.handleStart, activationConstraint.delay);\n this.handlePending(activationConstraint);\n return;\n }\n\n if (isDistanceConstraint(activationConstraint)) {\n this.handlePending(activationConstraint);\n return;\n }\n }\n\n this.handleStart();\n }\n\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll(); // Wait until the next event loop before removing document listeners\n // This is necessary because we listen for `click` and `selection` events on the document\n\n setTimeout(this.documentListeners.removeAll, 50);\n\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n\n handlePending(constraint, offset) {\n const {\n active,\n onPending\n } = this.props;\n onPending(active, constraint, this.initialCoordinates, offset);\n }\n\n handleStart() {\n const {\n initialCoordinates\n } = this;\n const {\n onStart\n } = this.props;\n\n if (initialCoordinates) {\n this.activated = true; // Stop propagation of click events once activation constraints are met\n\n this.documentListeners.add(EventName.Click, stopPropagation, {\n capture: true\n }); // Remove any text selection from the document\n\n this.removeTextSelection(); // Prevent further text selection while dragging\n\n this.documentListeners.add(EventName.SelectionChange, this.removeTextSelection);\n onStart(initialCoordinates);\n }\n }\n\n handleMove(event) {\n var _getEventCoordinates2;\n\n const {\n activated,\n initialCoordinates,\n props\n } = this;\n const {\n onMove,\n options: {\n activationConstraint\n }\n } = props;\n\n if (!initialCoordinates) {\n return;\n }\n\n const coordinates = (_getEventCoordinates2 = getEventCoordinates(event)) != null ? _getEventCoordinates2 : defaultCoordinates;\n const delta = subtract(initialCoordinates, coordinates); // Constraint validation\n\n if (!activated && activationConstraint) {\n if (isDistanceConstraint(activationConstraint)) {\n if (activationConstraint.tolerance != null && hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n\n if (hasExceededDistance(delta, activationConstraint.distance)) {\n return this.handleStart();\n }\n }\n\n if (isDelayConstraint(activationConstraint)) {\n if (hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n }\n\n this.handlePending(activationConstraint, delta);\n return;\n }\n\n if (event.cancelable) {\n event.preventDefault();\n }\n\n onMove(coordinates);\n }\n\n handleEnd() {\n const {\n onAbort,\n onEnd\n } = this.props;\n this.detach();\n\n if (!this.activated) {\n onAbort(this.props.active);\n }\n\n onEnd();\n }\n\n handleCancel() {\n const {\n onAbort,\n onCancel\n } = this.props;\n this.detach();\n\n if (!this.activated) {\n onAbort(this.props.active);\n }\n\n onCancel();\n }\n\n handleKeydown(event) {\n if (event.code === KeyboardCode.Esc) {\n this.handleCancel();\n }\n }\n\n removeTextSelection() {\n var _this$document$getSel;\n\n (_this$document$getSel = this.document.getSelection()) == null ? void 0 : _this$document$getSel.removeAllRanges();\n }\n\n}\n\nconst events = {\n cancel: {\n name: 'pointercancel'\n },\n move: {\n name: 'pointermove'\n },\n end: {\n name: 'pointerup'\n }\n};\nclass PointerSensor extends AbstractPointerSensor {\n constructor(props) {\n const {\n event\n } = props; // Pointer events stop firing if the target is unmounted while dragging\n // Therefore we attach listeners to the owner document instead\n\n const listenerTarget = getOwnerDocument(event.target);\n super(props, events, listenerTarget);\n }\n\n}\nPointerSensor.activators = [{\n eventName: 'onPointerDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n\n if (!event.isPrimary || event.button !== 0) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nconst events$1 = {\n move: {\n name: 'mousemove'\n },\n end: {\n name: 'mouseup'\n }\n};\nvar MouseButton;\n\n(function (MouseButton) {\n MouseButton[MouseButton[\"RightClick\"] = 2] = \"RightClick\";\n})(MouseButton || (MouseButton = {}));\n\nclass MouseSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$1, getOwnerDocument(props.event.target));\n }\n\n}\nMouseSensor.activators = [{\n eventName: 'onMouseDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n\n if (event.button === MouseButton.RightClick) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nconst events$2 = {\n cancel: {\n name: 'touchcancel'\n },\n move: {\n name: 'touchmove'\n },\n end: {\n name: 'touchend'\n }\n};\nclass TouchSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$2);\n }\n\n static setup() {\n // Adding a non-capture and non-passive `touchmove` listener in order\n // to force `event.preventDefault()` calls to work in dynamically added\n // touchmove event handlers. This is required for iOS Safari.\n window.addEventListener(events$2.move.name, noop, {\n capture: false,\n passive: false\n });\n return function teardown() {\n window.removeEventListener(events$2.move.name, noop);\n }; // We create a new handler because the teardown function of another sensor\n // could remove our event listener if we use a referentially equal listener.\n\n function noop() {}\n }\n\n}\nTouchSensor.activators = [{\n eventName: 'onTouchStart',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n const {\n touches\n } = event;\n\n if (touches.length > 1) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nvar AutoScrollActivator;\n\n(function (AutoScrollActivator) {\n AutoScrollActivator[AutoScrollActivator[\"Pointer\"] = 0] = \"Pointer\";\n AutoScrollActivator[AutoScrollActivator[\"DraggableRect\"] = 1] = \"DraggableRect\";\n})(AutoScrollActivator || (AutoScrollActivator = {}));\n\nvar TraversalOrder;\n\n(function (TraversalOrder) {\n TraversalOrder[TraversalOrder[\"TreeOrder\"] = 0] = \"TreeOrder\";\n TraversalOrder[TraversalOrder[\"ReversedTreeOrder\"] = 1] = \"ReversedTreeOrder\";\n})(TraversalOrder || (TraversalOrder = {}));\n\nfunction useAutoScroller(_ref) {\n let {\n acceleration,\n activator = AutoScrollActivator.Pointer,\n canScroll,\n draggingRect,\n enabled,\n interval = 5,\n order = TraversalOrder.TreeOrder,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects,\n delta,\n threshold\n } = _ref;\n const scrollIntent = useScrollIntent({\n delta,\n disabled: !enabled\n });\n const [setAutoScrollInterval, clearAutoScrollInterval] = useInterval();\n const scrollSpeed = useRef({\n x: 0,\n y: 0\n });\n const scrollDirection = useRef({\n x: 0,\n y: 0\n });\n const rect = useMemo(() => {\n switch (activator) {\n case AutoScrollActivator.Pointer:\n return pointerCoordinates ? {\n top: pointerCoordinates.y,\n bottom: pointerCoordinates.y,\n left: pointerCoordinates.x,\n right: pointerCoordinates.x\n } : null;\n\n case AutoScrollActivator.DraggableRect:\n return draggingRect;\n }\n }, [activator, draggingRect, pointerCoordinates]);\n const scrollContainerRef = useRef(null);\n const autoScroll = useCallback(() => {\n const scrollContainer = scrollContainerRef.current;\n\n if (!scrollContainer) {\n return;\n }\n\n const scrollLeft = scrollSpeed.current.x * scrollDirection.current.x;\n const scrollTop = scrollSpeed.current.y * scrollDirection.current.y;\n scrollContainer.scrollBy(scrollLeft, scrollTop);\n }, []);\n const sortedScrollableAncestors = useMemo(() => order === TraversalOrder.TreeOrder ? [...scrollableAncestors].reverse() : scrollableAncestors, [order, scrollableAncestors]);\n useEffect(() => {\n if (!enabled || !scrollableAncestors.length || !rect) {\n clearAutoScrollInterval();\n return;\n }\n\n for (const scrollContainer of sortedScrollableAncestors) {\n if ((canScroll == null ? void 0 : canScroll(scrollContainer)) === false) {\n continue;\n }\n\n const index = scrollableAncestors.indexOf(scrollContainer);\n const scrollContainerRect = scrollableAncestorRects[index];\n\n if (!scrollContainerRect) {\n continue;\n }\n\n const {\n direction,\n speed\n } = getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, rect, acceleration, threshold);\n\n for (const axis of ['x', 'y']) {\n if (!scrollIntent[axis][direction[axis]]) {\n speed[axis] = 0;\n direction[axis] = 0;\n }\n }\n\n if (speed.x > 0 || speed.y > 0) {\n clearAutoScrollInterval();\n scrollContainerRef.current = scrollContainer;\n setAutoScrollInterval(autoScroll, interval);\n scrollSpeed.current = speed;\n scrollDirection.current = direction;\n return;\n }\n }\n\n scrollSpeed.current = {\n x: 0,\n y: 0\n };\n scrollDirection.current = {\n x: 0,\n y: 0\n };\n clearAutoScrollInterval();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [acceleration, autoScroll, canScroll, clearAutoScrollInterval, enabled, interval, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(rect), // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(scrollIntent), setAutoScrollInterval, scrollableAncestors, sortedScrollableAncestors, scrollableAncestorRects, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold)]);\n}\nconst defaultScrollIntent = {\n x: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n },\n y: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n }\n};\n\nfunction useScrollIntent(_ref2) {\n let {\n delta,\n disabled\n } = _ref2;\n const previousDelta = usePrevious(delta);\n return useLazyMemo(previousIntent => {\n if (disabled || !previousDelta || !previousIntent) {\n // Reset scroll intent tracking when auto-scrolling is disabled\n return defaultScrollIntent;\n }\n\n const direction = {\n x: Math.sign(delta.x - previousDelta.x),\n y: Math.sign(delta.y - previousDelta.y)\n }; // Keep track of the user intent to scroll in each direction for both axis\n\n return {\n x: {\n [Direction.Backward]: previousIntent.x[Direction.Backward] || direction.x === -1,\n [Direction.Forward]: previousIntent.x[Direction.Forward] || direction.x === 1\n },\n y: {\n [Direction.Backward]: previousIntent.y[Direction.Backward] || direction.y === -1,\n [Direction.Forward]: previousIntent.y[Direction.Forward] || direction.y === 1\n }\n };\n }, [disabled, delta, previousDelta]);\n}\n\nfunction useCachedNode(draggableNodes, id) {\n const draggableNode = id != null ? draggableNodes.get(id) : undefined;\n const node = draggableNode ? draggableNode.node.current : null;\n return useLazyMemo(cachedNode => {\n var _ref;\n\n if (id == null) {\n return null;\n } // In some cases, the draggable node can unmount while dragging\n // This is the case for virtualized lists. In those situations,\n // we fall back to the last known value for that node.\n\n\n return (_ref = node != null ? node : cachedNode) != null ? _ref : null;\n }, [node, id]);\n}\n\nfunction useCombineActivators(sensors, getSyntheticHandler) {\n return useMemo(() => sensors.reduce((accumulator, sensor) => {\n const {\n sensor: Sensor\n } = sensor;\n const sensorActivators = Sensor.activators.map(activator => ({\n eventName: activator.eventName,\n handler: getSyntheticHandler(activator.handler, sensor)\n }));\n return [...accumulator, ...sensorActivators];\n }, []), [sensors, getSyntheticHandler]);\n}\n\nvar MeasuringStrategy;\n\n(function (MeasuringStrategy) {\n MeasuringStrategy[MeasuringStrategy[\"Always\"] = 0] = \"Always\";\n MeasuringStrategy[MeasuringStrategy[\"BeforeDragging\"] = 1] = \"BeforeDragging\";\n MeasuringStrategy[MeasuringStrategy[\"WhileDragging\"] = 2] = \"WhileDragging\";\n})(MeasuringStrategy || (MeasuringStrategy = {}));\n\nvar MeasuringFrequency;\n\n(function (MeasuringFrequency) {\n MeasuringFrequency[\"Optimized\"] = \"optimized\";\n})(MeasuringFrequency || (MeasuringFrequency = {}));\n\nconst defaultValue = /*#__PURE__*/new Map();\nfunction useDroppableMeasuring(containers, _ref) {\n let {\n dragging,\n dependencies,\n config\n } = _ref;\n const [queue, setQueue] = useState(null);\n const {\n frequency,\n measure,\n strategy\n } = config;\n const containersRef = useRef(containers);\n const disabled = isDisabled();\n const disabledRef = useLatestValue(disabled);\n const measureDroppableContainers = useCallback(function (ids) {\n if (ids === void 0) {\n ids = [];\n }\n\n if (disabledRef.current) {\n return;\n }\n\n setQueue(value => {\n if (value === null) {\n return ids;\n }\n\n return value.concat(ids.filter(id => !value.includes(id)));\n });\n }, [disabledRef]);\n const timeoutId = useRef(null);\n const droppableRects = useLazyMemo(previousValue => {\n if (disabled && !dragging) {\n return defaultValue;\n }\n\n if (!previousValue || previousValue === defaultValue || containersRef.current !== containers || queue != null) {\n const map = new Map();\n\n for (let container of containers) {\n if (!container) {\n continue;\n }\n\n if (queue && queue.length > 0 && !queue.includes(container.id) && container.rect.current) {\n // This container does not need to be re-measured\n map.set(container.id, container.rect.current);\n continue;\n }\n\n const node = container.node.current;\n const rect = node ? new Rect(measure(node), node) : null;\n container.rect.current = rect;\n\n if (rect) {\n map.set(container.id, rect);\n }\n }\n\n return map;\n }\n\n return previousValue;\n }, [containers, queue, dragging, disabled, measure]);\n useEffect(() => {\n containersRef.current = containers;\n }, [containers]);\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n measureDroppableContainers();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [dragging, disabled]);\n useEffect(() => {\n if (queue && queue.length > 0) {\n setQueue(null);\n }\n }, //eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(queue)]);\n useEffect(() => {\n if (disabled || typeof frequency !== 'number' || timeoutId.current !== null) {\n return;\n }\n\n timeoutId.current = setTimeout(() => {\n measureDroppableContainers();\n timeoutId.current = null;\n }, frequency);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [frequency, disabled, measureDroppableContainers, ...dependencies]);\n return {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled: queue != null\n };\n\n function isDisabled() {\n switch (strategy) {\n case MeasuringStrategy.Always:\n return false;\n\n case MeasuringStrategy.BeforeDragging:\n return dragging;\n\n default:\n return !dragging;\n }\n }\n}\n\nfunction useInitialValue(value, computeFn) {\n return useLazyMemo(previousValue => {\n if (!value) {\n return null;\n }\n\n if (previousValue) {\n return previousValue;\n }\n\n return typeof computeFn === 'function' ? computeFn(value) : value;\n }, [computeFn, value]);\n}\n\nfunction useInitialRect(node, measure) {\n return useInitialValue(node, measure);\n}\n\n/**\r\n * Returns a new MutationObserver instance.\r\n * If `MutationObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useMutationObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleMutations = useEvent(callback);\n const mutationObserver = useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.MutationObserver === 'undefined') {\n return undefined;\n }\n\n const {\n MutationObserver\n } = window;\n return new MutationObserver(handleMutations);\n }, [handleMutations, disabled]);\n useEffect(() => {\n return () => mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }, [mutationObserver]);\n return mutationObserver;\n}\n\n/**\r\n * Returns a new ResizeObserver instance bound to the `onResize` callback.\r\n * If `ResizeObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useResizeObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleResize = useEvent(callback);\n const resizeObserver = useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.ResizeObserver === 'undefined') {\n return undefined;\n }\n\n const {\n ResizeObserver\n } = window;\n return new ResizeObserver(handleResize);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [disabled]);\n useEffect(() => {\n return () => resizeObserver == null ? void 0 : resizeObserver.disconnect();\n }, [resizeObserver]);\n return resizeObserver;\n}\n\nfunction defaultMeasure(element) {\n return new Rect(getClientRect(element), element);\n}\n\nfunction useRect(element, measure, fallbackRect) {\n if (measure === void 0) {\n measure = defaultMeasure;\n }\n\n const [rect, setRect] = useState(null);\n\n function measureRect() {\n setRect(currentRect => {\n if (!element) {\n return null;\n }\n\n if (element.isConnected === false) {\n var _ref;\n\n // Fall back to last rect we measured if the element is\n // no longer connected to the DOM.\n return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;\n }\n\n const newRect = measure(element);\n\n if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {\n return currentRect;\n }\n\n return newRect;\n });\n }\n\n const mutationObserver = useMutationObserver({\n callback(records) {\n if (!element) {\n return;\n }\n\n for (const record of records) {\n const {\n type,\n target\n } = record;\n\n if (type === 'childList' && target instanceof HTMLElement && target.contains(element)) {\n measureRect();\n break;\n }\n }\n }\n\n });\n const resizeObserver = useResizeObserver({\n callback: measureRect\n });\n useIsomorphicLayoutEffect(() => {\n measureRect();\n\n if (element) {\n resizeObserver == null ? void 0 : resizeObserver.observe(element);\n mutationObserver == null ? void 0 : mutationObserver.observe(document.body, {\n childList: true,\n subtree: true\n });\n } else {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }\n }, [element]);\n return rect;\n}\n\nfunction useRectDelta(rect) {\n const initialRect = useInitialValue(rect);\n return getRectDelta(rect, initialRect);\n}\n\nconst defaultValue$1 = [];\nfunction useScrollableAncestors(node) {\n const previousNode = useRef(node);\n const ancestors = useLazyMemo(previousValue => {\n if (!node) {\n return defaultValue$1;\n }\n\n if (previousValue && previousValue !== defaultValue$1 && node && previousNode.current && node.parentNode === previousNode.current.parentNode) {\n return previousValue;\n }\n\n return getScrollableAncestors(node);\n }, [node]);\n useEffect(() => {\n previousNode.current = node;\n }, [node]);\n return ancestors;\n}\n\nfunction useScrollOffsets(elements) {\n const [scrollCoordinates, setScrollCoordinates] = useState(null);\n const prevElements = useRef(elements); // To-do: Throttle the handleScroll callback\n\n const handleScroll = useCallback(event => {\n const scrollingElement = getScrollableElement(event.target);\n\n if (!scrollingElement) {\n return;\n }\n\n setScrollCoordinates(scrollCoordinates => {\n if (!scrollCoordinates) {\n return null;\n }\n\n scrollCoordinates.set(scrollingElement, getScrollCoordinates(scrollingElement));\n return new Map(scrollCoordinates);\n });\n }, []);\n useEffect(() => {\n const previousElements = prevElements.current;\n\n if (elements !== previousElements) {\n cleanup(previousElements);\n const entries = elements.map(element => {\n const scrollableElement = getScrollableElement(element);\n\n if (scrollableElement) {\n scrollableElement.addEventListener('scroll', handleScroll, {\n passive: true\n });\n return [scrollableElement, getScrollCoordinates(scrollableElement)];\n }\n\n return null;\n }).filter(entry => entry != null);\n setScrollCoordinates(entries.length ? new Map(entries) : null);\n prevElements.current = elements;\n }\n\n return () => {\n cleanup(elements);\n cleanup(previousElements);\n };\n\n function cleanup(elements) {\n elements.forEach(element => {\n const scrollableElement = getScrollableElement(element);\n scrollableElement == null ? void 0 : scrollableElement.removeEventListener('scroll', handleScroll);\n });\n }\n }, [handleScroll, elements]);\n return useMemo(() => {\n if (elements.length) {\n return scrollCoordinates ? Array.from(scrollCoordinates.values()).reduce((acc, coordinates) => add(acc, coordinates), defaultCoordinates) : getScrollOffsets(elements);\n }\n\n return defaultCoordinates;\n }, [elements, scrollCoordinates]);\n}\n\nfunction useScrollOffsetsDelta(scrollOffsets, dependencies) {\n if (dependencies === void 0) {\n dependencies = [];\n }\n\n const initialScrollOffsets = useRef(null);\n useEffect(() => {\n initialScrollOffsets.current = null;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n dependencies);\n useEffect(() => {\n const hasScrollOffsets = scrollOffsets !== defaultCoordinates;\n\n if (hasScrollOffsets && !initialScrollOffsets.current) {\n initialScrollOffsets.current = scrollOffsets;\n }\n\n if (!hasScrollOffsets && initialScrollOffsets.current) {\n initialScrollOffsets.current = null;\n }\n }, [scrollOffsets]);\n return initialScrollOffsets.current ? subtract(scrollOffsets, initialScrollOffsets.current) : defaultCoordinates;\n}\n\nfunction useSensorSetup(sensors) {\n useEffect(() => {\n if (!canUseDOM) {\n return;\n }\n\n const teardownFns = sensors.map(_ref => {\n let {\n sensor\n } = _ref;\n return sensor.setup == null ? void 0 : sensor.setup();\n });\n return () => {\n for (const teardown of teardownFns) {\n teardown == null ? void 0 : teardown();\n }\n };\n }, // TO-DO: Sensors length could theoretically change which would not be a valid dependency\n // eslint-disable-next-line react-hooks/exhaustive-deps\n sensors.map(_ref2 => {\n let {\n sensor\n } = _ref2;\n return sensor;\n }));\n}\n\nfunction useSyntheticListeners(listeners, id) {\n return useMemo(() => {\n return listeners.reduce((acc, _ref) => {\n let {\n eventName,\n handler\n } = _ref;\n\n acc[eventName] = event => {\n handler(event, id);\n };\n\n return acc;\n }, {});\n }, [listeners, id]);\n}\n\nfunction useWindowRect(element) {\n return useMemo(() => element ? getWindowClientRect(element) : null, [element]);\n}\n\nconst defaultValue$2 = [];\nfunction useRects(elements, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n\n const [firstElement] = elements;\n const windowRect = useWindowRect(firstElement ? getWindow(firstElement) : null);\n const [rects, setRects] = useState(defaultValue$2);\n\n function measureRects() {\n setRects(() => {\n if (!elements.length) {\n return defaultValue$2;\n }\n\n return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));\n });\n }\n\n const resizeObserver = useResizeObserver({\n callback: measureRects\n });\n useIsomorphicLayoutEffect(() => {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n measureRects();\n elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));\n }, [elements]);\n return rects;\n}\n\nfunction getMeasurableNode(node) {\n if (!node) {\n return null;\n }\n\n if (node.children.length > 1) {\n return node;\n }\n\n const firstChild = node.children[0];\n return isHTMLElement(firstChild) ? firstChild : node;\n}\n\nfunction useDragOverlayMeasuring(_ref) {\n let {\n measure\n } = _ref;\n const [rect, setRect] = useState(null);\n const handleResize = useCallback(entries => {\n for (const {\n target\n } of entries) {\n if (isHTMLElement(target)) {\n setRect(rect => {\n const newRect = measure(target);\n return rect ? { ...rect,\n width: newRect.width,\n height: newRect.height\n } : newRect;\n });\n break;\n }\n }\n }, [measure]);\n const resizeObserver = useResizeObserver({\n callback: handleResize\n });\n const handleNodeChange = useCallback(element => {\n const node = getMeasurableNode(element);\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n\n if (node) {\n resizeObserver == null ? void 0 : resizeObserver.observe(node);\n }\n\n setRect(node ? measure(node) : null);\n }, [measure, resizeObserver]);\n const [nodeRef, setRef] = useNodeRef(handleNodeChange);\n return useMemo(() => ({\n nodeRef,\n rect,\n setRef\n }), [rect, nodeRef, setRef]);\n}\n\nconst defaultSensors = [{\n sensor: PointerSensor,\n options: {}\n}, {\n sensor: KeyboardSensor,\n options: {}\n}];\nconst defaultData = {\n current: {}\n};\nconst defaultMeasuringConfiguration = {\n draggable: {\n measure: getTransformAgnosticClientRect\n },\n droppable: {\n measure: getTransformAgnosticClientRect,\n strategy: MeasuringStrategy.WhileDragging,\n frequency: MeasuringFrequency.Optimized\n },\n dragOverlay: {\n measure: getClientRect\n }\n};\n\nclass DroppableContainersMap extends Map {\n get(id) {\n var _super$get;\n\n return id != null ? (_super$get = super.get(id)) != null ? _super$get : undefined : undefined;\n }\n\n toArray() {\n return Array.from(this.values());\n }\n\n getEnabled() {\n return this.toArray().filter(_ref => {\n let {\n disabled\n } = _ref;\n return !disabled;\n });\n }\n\n getNodeFor(id) {\n var _this$get$node$curren, _this$get;\n\n return (_this$get$node$curren = (_this$get = this.get(id)) == null ? void 0 : _this$get.node.current) != null ? _this$get$node$curren : undefined;\n }\n\n}\n\nconst defaultPublicContext = {\n activatorEvent: null,\n active: null,\n activeNode: null,\n activeNodeRect: null,\n collisions: null,\n containerNodeRect: null,\n draggableNodes: /*#__PURE__*/new Map(),\n droppableRects: /*#__PURE__*/new Map(),\n droppableContainers: /*#__PURE__*/new DroppableContainersMap(),\n over: null,\n dragOverlay: {\n nodeRef: {\n current: null\n },\n rect: null,\n setRef: noop\n },\n scrollableAncestors: [],\n scrollableAncestorRects: [],\n measuringConfiguration: defaultMeasuringConfiguration,\n measureDroppableContainers: noop,\n windowRect: null,\n measuringScheduled: false\n};\nconst defaultInternalContext = {\n activatorEvent: null,\n activators: [],\n active: null,\n activeNodeRect: null,\n ariaDescribedById: {\n draggable: ''\n },\n dispatch: noop,\n draggableNodes: /*#__PURE__*/new Map(),\n over: null,\n measureDroppableContainers: noop\n};\nconst InternalContext = /*#__PURE__*/createContext(defaultInternalContext);\nconst PublicContext = /*#__PURE__*/createContext(defaultPublicContext);\n\nfunction getInitialState() {\n return {\n draggable: {\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n nodes: new Map(),\n translate: {\n x: 0,\n y: 0\n }\n },\n droppable: {\n containers: new DroppableContainersMap()\n }\n };\n}\nfunction reducer(state, action) {\n switch (action.type) {\n case Action.DragStart:\n return { ...state,\n draggable: { ...state.draggable,\n initialCoordinates: action.initialCoordinates,\n active: action.active\n }\n };\n\n case Action.DragMove:\n if (state.draggable.active == null) {\n return state;\n }\n\n return { ...state,\n draggable: { ...state.draggable,\n translate: {\n x: action.coordinates.x - state.draggable.initialCoordinates.x,\n y: action.coordinates.y - state.draggable.initialCoordinates.y\n }\n }\n };\n\n case Action.DragEnd:\n case Action.DragCancel:\n return { ...state,\n draggable: { ...state.draggable,\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n translate: {\n x: 0,\n y: 0\n }\n }\n };\n\n case Action.RegisterDroppable:\n {\n const {\n element\n } = action;\n const {\n id\n } = element;\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, element);\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n case Action.SetDroppableDisabled:\n {\n const {\n id,\n key,\n disabled\n } = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, { ...element,\n disabled\n });\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n case Action.UnregisterDroppable:\n {\n const {\n id,\n key\n } = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.delete(id);\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n default:\n {\n return state;\n }\n }\n}\n\nfunction RestoreFocus(_ref) {\n let {\n disabled\n } = _ref;\n const {\n active,\n activatorEvent,\n draggableNodes\n } = useContext(InternalContext);\n const previousActivatorEvent = usePrevious(activatorEvent);\n const previousActiveId = usePrevious(active == null ? void 0 : active.id); // Restore keyboard focus on the activator node\n\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n if (!activatorEvent && previousActivatorEvent && previousActiveId != null) {\n if (!isKeyboardEvent(previousActivatorEvent)) {\n return;\n }\n\n if (document.activeElement === previousActivatorEvent.target) {\n // No need to restore focus\n return;\n }\n\n const draggableNode = draggableNodes.get(previousActiveId);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n activatorNode,\n node\n } = draggableNode;\n\n if (!activatorNode.current && !node.current) {\n return;\n }\n\n requestAnimationFrame(() => {\n for (const element of [activatorNode.current, node.current]) {\n if (!element) {\n continue;\n }\n\n const focusableNode = findFirstFocusableNode(element);\n\n if (focusableNode) {\n focusableNode.focus();\n break;\n }\n }\n });\n }\n }, [activatorEvent, disabled, draggableNodes, previousActiveId, previousActivatorEvent]);\n return null;\n}\n\nfunction applyModifiers(modifiers, _ref) {\n let {\n transform,\n ...args\n } = _ref;\n return modifiers != null && modifiers.length ? modifiers.reduce((accumulator, modifier) => {\n return modifier({\n transform: accumulator,\n ...args\n });\n }, transform) : transform;\n}\n\nfunction useMeasuringConfiguration(config) {\n return useMemo(() => ({\n draggable: { ...defaultMeasuringConfiguration.draggable,\n ...(config == null ? void 0 : config.draggable)\n },\n droppable: { ...defaultMeasuringConfiguration.droppable,\n ...(config == null ? void 0 : config.droppable)\n },\n dragOverlay: { ...defaultMeasuringConfiguration.dragOverlay,\n ...(config == null ? void 0 : config.dragOverlay)\n }\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [config == null ? void 0 : config.draggable, config == null ? void 0 : config.droppable, config == null ? void 0 : config.dragOverlay]);\n}\n\nfunction useLayoutShiftScrollCompensation(_ref) {\n let {\n activeNode,\n measure,\n initialRect,\n config = true\n } = _ref;\n const initialized = useRef(false);\n const {\n x,\n y\n } = typeof config === 'boolean' ? {\n x: config,\n y: config\n } : config;\n useIsomorphicLayoutEffect(() => {\n const disabled = !x && !y;\n\n if (disabled || !activeNode) {\n initialized.current = false;\n return;\n }\n\n if (initialized.current || !initialRect) {\n // Return early if layout shift scroll compensation was already attempted\n // or if there is no initialRect to compare to.\n return;\n } // Get the most up to date node ref for the active draggable\n\n\n const node = activeNode == null ? void 0 : activeNode.node.current;\n\n if (!node || node.isConnected === false) {\n // Return early if there is no attached node ref or if the node is\n // disconnected from the document.\n return;\n }\n\n const rect = measure(node);\n const rectDelta = getRectDelta(rect, initialRect);\n\n if (!x) {\n rectDelta.x = 0;\n }\n\n if (!y) {\n rectDelta.y = 0;\n } // Only perform layout shift scroll compensation once\n\n\n initialized.current = true;\n\n if (Math.abs(rectDelta.x) > 0 || Math.abs(rectDelta.y) > 0) {\n const firstScrollableAncestor = getFirstScrollableAncestor(node);\n\n if (firstScrollableAncestor) {\n firstScrollableAncestor.scrollBy({\n top: rectDelta.y,\n left: rectDelta.x\n });\n }\n }\n }, [activeNode, x, y, initialRect, measure]);\n}\n\nconst ActiveDraggableContext = /*#__PURE__*/createContext({ ...defaultCoordinates,\n scaleX: 1,\n scaleY: 1\n});\nvar Status;\n\n(function (Status) {\n Status[Status[\"Uninitialized\"] = 0] = \"Uninitialized\";\n Status[Status[\"Initializing\"] = 1] = \"Initializing\";\n Status[Status[\"Initialized\"] = 2] = \"Initialized\";\n})(Status || (Status = {}));\n\nconst DndContext = /*#__PURE__*/memo(function DndContext(_ref) {\n var _sensorContext$curren, _dragOverlay$nodeRef$, _dragOverlay$rect, _over$rect;\n\n let {\n id,\n accessibility,\n autoScroll = true,\n children,\n sensors = defaultSensors,\n collisionDetection = rectIntersection,\n measuring,\n modifiers,\n ...props\n } = _ref;\n const store = useReducer(reducer, undefined, getInitialState);\n const [state, dispatch] = store;\n const [dispatchMonitorEvent, registerMonitorListener] = useDndMonitorProvider();\n const [status, setStatus] = useState(Status.Uninitialized);\n const isInitialized = status === Status.Initialized;\n const {\n draggable: {\n active: activeId,\n nodes: draggableNodes,\n translate\n },\n droppable: {\n containers: droppableContainers\n }\n } = state;\n const node = activeId != null ? draggableNodes.get(activeId) : null;\n const activeRects = useRef({\n initial: null,\n translated: null\n });\n const active = useMemo(() => {\n var _node$data;\n\n return activeId != null ? {\n id: activeId,\n // It's possible for the active node to unmount while dragging\n data: (_node$data = node == null ? void 0 : node.data) != null ? _node$data : defaultData,\n rect: activeRects\n } : null;\n }, [activeId, node]);\n const activeRef = useRef(null);\n const [activeSensor, setActiveSensor] = useState(null);\n const [activatorEvent, setActivatorEvent] = useState(null);\n const latestProps = useLatestValue(props, Object.values(props));\n const draggableDescribedById = useUniqueId(\"DndDescribedBy\", id);\n const enabledDroppableContainers = useMemo(() => droppableContainers.getEnabled(), [droppableContainers]);\n const measuringConfiguration = useMeasuringConfiguration(measuring);\n const {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled\n } = useDroppableMeasuring(enabledDroppableContainers, {\n dragging: isInitialized,\n dependencies: [translate.x, translate.y],\n config: measuringConfiguration.droppable\n });\n const activeNode = useCachedNode(draggableNodes, activeId);\n const activationCoordinates = useMemo(() => activatorEvent ? getEventCoordinates(activatorEvent) : null, [activatorEvent]);\n const autoScrollOptions = getAutoScrollerOptions();\n const initialActiveNodeRect = useInitialRect(activeNode, measuringConfiguration.draggable.measure);\n useLayoutShiftScrollCompensation({\n activeNode: activeId != null ? draggableNodes.get(activeId) : null,\n config: autoScrollOptions.layoutShiftCompensation,\n initialRect: initialActiveNodeRect,\n measure: measuringConfiguration.draggable.measure\n });\n const activeNodeRect = useRect(activeNode, measuringConfiguration.draggable.measure, initialActiveNodeRect);\n const containerNodeRect = useRect(activeNode ? activeNode.parentElement : null);\n const sensorContext = useRef({\n activatorEvent: null,\n active: null,\n activeNode,\n collisionRect: null,\n collisions: null,\n droppableRects,\n draggableNodes,\n draggingNode: null,\n draggingNodeRect: null,\n droppableContainers,\n over: null,\n scrollableAncestors: [],\n scrollAdjustedTranslate: null\n });\n const overNode = droppableContainers.getNodeFor((_sensorContext$curren = sensorContext.current.over) == null ? void 0 : _sensorContext$curren.id);\n const dragOverlay = useDragOverlayMeasuring({\n measure: measuringConfiguration.dragOverlay.measure\n }); // Use the rect of the drag overlay if it is mounted\n\n const draggingNode = (_dragOverlay$nodeRef$ = dragOverlay.nodeRef.current) != null ? _dragOverlay$nodeRef$ : activeNode;\n const draggingNodeRect = isInitialized ? (_dragOverlay$rect = dragOverlay.rect) != null ? _dragOverlay$rect : activeNodeRect : null;\n const usesDragOverlay = Boolean(dragOverlay.nodeRef.current && dragOverlay.rect); // The delta between the previous and new position of the draggable node\n // is only relevant when there is no drag overlay\n\n const nodeRectDelta = useRectDelta(usesDragOverlay ? null : activeNodeRect); // Get the window rect of the dragging node\n\n const windowRect = useWindowRect(draggingNode ? getWindow(draggingNode) : null); // Get scrollable ancestors of the dragging node\n\n const scrollableAncestors = useScrollableAncestors(isInitialized ? overNode != null ? overNode : activeNode : null);\n const scrollableAncestorRects = useRects(scrollableAncestors); // Apply modifiers\n\n const modifiedTranslate = applyModifiers(modifiers, {\n transform: {\n x: translate.x - nodeRectDelta.x,\n y: translate.y - nodeRectDelta.y,\n scaleX: 1,\n scaleY: 1\n },\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect,\n over: sensorContext.current.over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n });\n const pointerCoordinates = activationCoordinates ? add(activationCoordinates, translate) : null;\n const scrollOffsets = useScrollOffsets(scrollableAncestors); // Represents the scroll delta since dragging was initiated\n\n const scrollAdjustment = useScrollOffsetsDelta(scrollOffsets); // Represents the scroll delta since the last time the active node rect was measured\n\n const activeNodeScrollDelta = useScrollOffsetsDelta(scrollOffsets, [activeNodeRect]);\n const scrollAdjustedTranslate = add(modifiedTranslate, scrollAdjustment);\n const collisionRect = draggingNodeRect ? getAdjustedRect(draggingNodeRect, modifiedTranslate) : null;\n const collisions = active && collisionRect ? collisionDetection({\n active,\n collisionRect,\n droppableRects,\n droppableContainers: enabledDroppableContainers,\n pointerCoordinates\n }) : null;\n const overId = getFirstCollision(collisions, 'id');\n const [over, setOver] = useState(null); // When there is no drag overlay used, we need to account for the\n // window scroll delta\n\n const appliedTranslate = usesDragOverlay ? modifiedTranslate : add(modifiedTranslate, activeNodeScrollDelta);\n const transform = adjustScale(appliedTranslate, (_over$rect = over == null ? void 0 : over.rect) != null ? _over$rect : null, activeNodeRect);\n const activeSensorRef = useRef(null);\n const instantiateSensor = useCallback((event, _ref2) => {\n let {\n sensor: Sensor,\n options\n } = _ref2;\n\n if (activeRef.current == null) {\n return;\n }\n\n const activeNode = draggableNodes.get(activeRef.current);\n\n if (!activeNode) {\n return;\n }\n\n const activatorEvent = event.nativeEvent;\n const sensorInstance = new Sensor({\n active: activeRef.current,\n activeNode,\n event: activatorEvent,\n options,\n // Sensors need to be instantiated with refs for arguments that change over time\n // otherwise they are frozen in time with the stale arguments\n context: sensorContext,\n\n onAbort(id) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragAbort\n } = latestProps.current;\n const event = {\n id\n };\n onDragAbort == null ? void 0 : onDragAbort(event);\n dispatchMonitorEvent({\n type: 'onDragAbort',\n event\n });\n },\n\n onPending(id, constraint, initialCoordinates, offset) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragPending\n } = latestProps.current;\n const event = {\n id,\n constraint,\n initialCoordinates,\n offset\n };\n onDragPending == null ? void 0 : onDragPending(event);\n dispatchMonitorEvent({\n type: 'onDragPending',\n event\n });\n },\n\n onStart(initialCoordinates) {\n const id = activeRef.current;\n\n if (id == null) {\n return;\n }\n\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragStart\n } = latestProps.current;\n const event = {\n activatorEvent,\n active: {\n id,\n data: draggableNode.data,\n rect: activeRects\n }\n };\n unstable_batchedUpdates(() => {\n onDragStart == null ? void 0 : onDragStart(event);\n setStatus(Status.Initializing);\n dispatch({\n type: Action.DragStart,\n initialCoordinates,\n active: id\n });\n dispatchMonitorEvent({\n type: 'onDragStart',\n event\n });\n setActiveSensor(activeSensorRef.current);\n setActivatorEvent(activatorEvent);\n });\n },\n\n onMove(coordinates) {\n dispatch({\n type: Action.DragMove,\n coordinates\n });\n },\n\n onEnd: createHandler(Action.DragEnd),\n onCancel: createHandler(Action.DragCancel)\n });\n activeSensorRef.current = sensorInstance;\n\n function createHandler(type) {\n return async function handler() {\n const {\n active,\n collisions,\n over,\n scrollAdjustedTranslate\n } = sensorContext.current;\n let event = null;\n\n if (active && scrollAdjustedTranslate) {\n const {\n cancelDrop\n } = latestProps.current;\n event = {\n activatorEvent,\n active: active,\n collisions,\n delta: scrollAdjustedTranslate,\n over\n };\n\n if (type === Action.DragEnd && typeof cancelDrop === 'function') {\n const shouldCancel = await Promise.resolve(cancelDrop(event));\n\n if (shouldCancel) {\n type = Action.DragCancel;\n }\n }\n }\n\n activeRef.current = null;\n unstable_batchedUpdates(() => {\n dispatch({\n type\n });\n setStatus(Status.Uninitialized);\n setOver(null);\n setActiveSensor(null);\n setActivatorEvent(null);\n activeSensorRef.current = null;\n const eventName = type === Action.DragEnd ? 'onDragEnd' : 'onDragCancel';\n\n if (event) {\n const handler = latestProps.current[eventName];\n handler == null ? void 0 : handler(event);\n dispatchMonitorEvent({\n type: eventName,\n event\n });\n }\n });\n };\n }\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes]);\n const bindActivatorToSensorInstantiator = useCallback((handler, sensor) => {\n return (event, active) => {\n const nativeEvent = event.nativeEvent;\n const activeDraggableNode = draggableNodes.get(active);\n\n if ( // Another sensor is already instantiating\n activeRef.current !== null || // No active draggable\n !activeDraggableNode || // Event has already been captured\n nativeEvent.dndKit || nativeEvent.defaultPrevented) {\n return;\n }\n\n const activationContext = {\n active: activeDraggableNode\n };\n const shouldActivate = handler(event, sensor.options, activationContext);\n\n if (shouldActivate === true) {\n nativeEvent.dndKit = {\n capturedBy: sensor.sensor\n };\n activeRef.current = active;\n instantiateSensor(event, sensor);\n }\n };\n }, [draggableNodes, instantiateSensor]);\n const activators = useCombineActivators(sensors, bindActivatorToSensorInstantiator);\n useSensorSetup(sensors);\n useIsomorphicLayoutEffect(() => {\n if (activeNodeRect && status === Status.Initializing) {\n setStatus(Status.Initialized);\n }\n }, [activeNodeRect, status]);\n useEffect(() => {\n const {\n onDragMove\n } = latestProps.current;\n const {\n active,\n activatorEvent,\n collisions,\n over\n } = sensorContext.current;\n\n if (!active || !activatorEvent) {\n return;\n }\n\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n unstable_batchedUpdates(() => {\n onDragMove == null ? void 0 : onDragMove(event);\n dispatchMonitorEvent({\n type: 'onDragMove',\n event\n });\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [scrollAdjustedTranslate.x, scrollAdjustedTranslate.y]);\n useEffect(() => {\n const {\n active,\n activatorEvent,\n collisions,\n droppableContainers,\n scrollAdjustedTranslate\n } = sensorContext.current;\n\n if (!active || activeRef.current == null || !activatorEvent || !scrollAdjustedTranslate) {\n return;\n }\n\n const {\n onDragOver\n } = latestProps.current;\n const overContainer = droppableContainers.get(overId);\n const over = overContainer && overContainer.rect.current ? {\n id: overContainer.id,\n rect: overContainer.rect.current,\n data: overContainer.data,\n disabled: overContainer.disabled\n } : null;\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n unstable_batchedUpdates(() => {\n setOver(over);\n onDragOver == null ? void 0 : onDragOver(event);\n dispatchMonitorEvent({\n type: 'onDragOver',\n event\n });\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [overId]);\n useIsomorphicLayoutEffect(() => {\n sensorContext.current = {\n activatorEvent,\n active,\n activeNode,\n collisionRect,\n collisions,\n droppableRects,\n draggableNodes,\n draggingNode,\n draggingNodeRect,\n droppableContainers,\n over,\n scrollableAncestors,\n scrollAdjustedTranslate\n };\n activeRects.current = {\n initial: draggingNodeRect,\n translated: collisionRect\n };\n }, [active, activeNode, collisions, collisionRect, draggableNodes, draggingNode, draggingNodeRect, droppableRects, droppableContainers, over, scrollableAncestors, scrollAdjustedTranslate]);\n useAutoScroller({ ...autoScrollOptions,\n delta: translate,\n draggingRect: collisionRect,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects\n });\n const publicContext = useMemo(() => {\n const context = {\n active,\n activeNode,\n activeNodeRect,\n activatorEvent,\n collisions,\n containerNodeRect,\n dragOverlay,\n draggableNodes,\n droppableContainers,\n droppableRects,\n over,\n measureDroppableContainers,\n scrollableAncestors,\n scrollableAncestorRects,\n measuringConfiguration,\n measuringScheduled,\n windowRect\n };\n return context;\n }, [active, activeNode, activeNodeRect, activatorEvent, collisions, containerNodeRect, dragOverlay, draggableNodes, droppableContainers, droppableRects, over, measureDroppableContainers, scrollableAncestors, scrollableAncestorRects, measuringConfiguration, measuringScheduled, windowRect]);\n const internalContext = useMemo(() => {\n const context = {\n activatorEvent,\n activators,\n active,\n activeNodeRect,\n ariaDescribedById: {\n draggable: draggableDescribedById\n },\n dispatch,\n draggableNodes,\n over,\n measureDroppableContainers\n };\n return context;\n }, [activatorEvent, activators, active, activeNodeRect, dispatch, draggableDescribedById, draggableNodes, over, measureDroppableContainers]);\n return React.createElement(DndMonitorContext.Provider, {\n value: registerMonitorListener\n }, React.createElement(InternalContext.Provider, {\n value: internalContext\n }, React.createElement(PublicContext.Provider, {\n value: publicContext\n }, React.createElement(ActiveDraggableContext.Provider, {\n value: transform\n }, children)), React.createElement(RestoreFocus, {\n disabled: (accessibility == null ? void 0 : accessibility.restoreFocus) === false\n })), React.createElement(Accessibility, { ...accessibility,\n hiddenTextDescribedById: draggableDescribedById\n }));\n\n function getAutoScrollerOptions() {\n const activeSensorDisablesAutoscroll = (activeSensor == null ? void 0 : activeSensor.autoScrollEnabled) === false;\n const autoScrollGloballyDisabled = typeof autoScroll === 'object' ? autoScroll.enabled === false : autoScroll === false;\n const enabled = isInitialized && !activeSensorDisablesAutoscroll && !autoScrollGloballyDisabled;\n\n if (typeof autoScroll === 'object') {\n return { ...autoScroll,\n enabled\n };\n }\n\n return {\n enabled\n };\n }\n});\n\nconst NullContext = /*#__PURE__*/createContext(null);\nconst defaultRole = 'button';\nconst ID_PREFIX = 'Draggable';\nfunction useDraggable(_ref) {\n let {\n id,\n data,\n disabled = false,\n attributes\n } = _ref;\n const key = useUniqueId(ID_PREFIX);\n const {\n activators,\n activatorEvent,\n active,\n activeNodeRect,\n ariaDescribedById,\n draggableNodes,\n over\n } = useContext(InternalContext);\n const {\n role = defaultRole,\n roleDescription = 'draggable',\n tabIndex = 0\n } = attributes != null ? attributes : {};\n const isDragging = (active == null ? void 0 : active.id) === id;\n const transform = useContext(isDragging ? ActiveDraggableContext : NullContext);\n const [node, setNodeRef] = useNodeRef();\n const [activatorNode, setActivatorNodeRef] = useNodeRef();\n const listeners = useSyntheticListeners(activators, id);\n const dataRef = useLatestValue(data);\n useIsomorphicLayoutEffect(() => {\n draggableNodes.set(id, {\n id,\n key,\n node,\n activatorNode,\n data: dataRef\n });\n return () => {\n const node = draggableNodes.get(id);\n\n if (node && node.key === key) {\n draggableNodes.delete(id);\n }\n };\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes, id]);\n const memoizedAttributes = useMemo(() => ({\n role,\n tabIndex,\n 'aria-disabled': disabled,\n 'aria-pressed': isDragging && role === defaultRole ? true : undefined,\n 'aria-roledescription': roleDescription,\n 'aria-describedby': ariaDescribedById.draggable\n }), [disabled, role, tabIndex, isDragging, roleDescription, ariaDescribedById.draggable]);\n return {\n active,\n activatorEvent,\n activeNodeRect,\n attributes: memoizedAttributes,\n isDragging,\n listeners: disabled ? undefined : listeners,\n node,\n over,\n setNodeRef,\n setActivatorNodeRef,\n transform\n };\n}\n\nfunction useDndContext() {\n return useContext(PublicContext);\n}\n\nconst ID_PREFIX$1 = 'Droppable';\nconst defaultResizeObserverConfig = {\n timeout: 25\n};\nfunction useDroppable(_ref) {\n let {\n data,\n disabled = false,\n id,\n resizeObserverConfig\n } = _ref;\n const key = useUniqueId(ID_PREFIX$1);\n const {\n active,\n dispatch,\n over,\n measureDroppableContainers\n } = useContext(InternalContext);\n const previous = useRef({\n disabled\n });\n const resizeObserverConnected = useRef(false);\n const rect = useRef(null);\n const callbackId = useRef(null);\n const {\n disabled: resizeObserverDisabled,\n updateMeasurementsFor,\n timeout: resizeObserverTimeout\n } = { ...defaultResizeObserverConfig,\n ...resizeObserverConfig\n };\n const ids = useLatestValue(updateMeasurementsFor != null ? updateMeasurementsFor : id);\n const handleResize = useCallback(() => {\n if (!resizeObserverConnected.current) {\n // ResizeObserver invokes the `handleResize` callback as soon as `observe` is called,\n // assuming the element is rendered and displayed.\n resizeObserverConnected.current = true;\n return;\n }\n\n if (callbackId.current != null) {\n clearTimeout(callbackId.current);\n }\n\n callbackId.current = setTimeout(() => {\n measureDroppableContainers(Array.isArray(ids.current) ? ids.current : [ids.current]);\n callbackId.current = null;\n }, resizeObserverTimeout);\n }, //eslint-disable-next-line react-hooks/exhaustive-deps\n [resizeObserverTimeout]);\n const resizeObserver = useResizeObserver({\n callback: handleResize,\n disabled: resizeObserverDisabled || !active\n });\n const handleNodeChange = useCallback((newElement, previousElement) => {\n if (!resizeObserver) {\n return;\n }\n\n if (previousElement) {\n resizeObserver.unobserve(previousElement);\n resizeObserverConnected.current = false;\n }\n\n if (newElement) {\n resizeObserver.observe(newElement);\n }\n }, [resizeObserver]);\n const [nodeRef, setNodeRef] = useNodeRef(handleNodeChange);\n const dataRef = useLatestValue(data);\n useEffect(() => {\n if (!resizeObserver || !nodeRef.current) {\n return;\n }\n\n resizeObserver.disconnect();\n resizeObserverConnected.current = false;\n resizeObserver.observe(nodeRef.current);\n }, [nodeRef, resizeObserver]);\n useEffect(() => {\n dispatch({\n type: Action.RegisterDroppable,\n element: {\n id,\n key,\n disabled,\n node: nodeRef,\n rect,\n data: dataRef\n }\n });\n return () => dispatch({\n type: Action.UnregisterDroppable,\n key,\n id\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [id]);\n useEffect(() => {\n if (disabled !== previous.current.disabled) {\n dispatch({\n type: Action.SetDroppableDisabled,\n id,\n key,\n disabled\n });\n previous.current.disabled = disabled;\n }\n }, [id, key, disabled, dispatch]);\n return {\n active,\n rect,\n isOver: (over == null ? void 0 : over.id) === id,\n node: nodeRef,\n over,\n setNodeRef\n };\n}\n\nfunction AnimationManager(_ref) {\n let {\n animation,\n children\n } = _ref;\n const [clonedChildren, setClonedChildren] = useState(null);\n const [element, setElement] = useState(null);\n const previousChildren = usePrevious(children);\n\n if (!children && !clonedChildren && previousChildren) {\n setClonedChildren(previousChildren);\n }\n\n useIsomorphicLayoutEffect(() => {\n if (!element) {\n return;\n }\n\n const key = clonedChildren == null ? void 0 : clonedChildren.key;\n const id = clonedChildren == null ? void 0 : clonedChildren.props.id;\n\n if (key == null || id == null) {\n setClonedChildren(null);\n return;\n }\n\n Promise.resolve(animation(id, element)).then(() => {\n setClonedChildren(null);\n });\n }, [animation, clonedChildren, element]);\n return React.createElement(React.Fragment, null, children, clonedChildren ? cloneElement(clonedChildren, {\n ref: setElement\n }) : null);\n}\n\nconst defaultTransform = {\n x: 0,\n y: 0,\n scaleX: 1,\n scaleY: 1\n};\nfunction NullifiedContextProvider(_ref) {\n let {\n children\n } = _ref;\n return React.createElement(InternalContext.Provider, {\n value: defaultInternalContext\n }, React.createElement(ActiveDraggableContext.Provider, {\n value: defaultTransform\n }, children));\n}\n\nconst baseStyles = {\n position: 'fixed',\n touchAction: 'none'\n};\n\nconst defaultTransition = activatorEvent => {\n const isKeyboardActivator = isKeyboardEvent(activatorEvent);\n return isKeyboardActivator ? 'transform 250ms ease' : undefined;\n};\n\nconst PositionedOverlay = /*#__PURE__*/forwardRef((_ref, ref) => {\n let {\n as,\n activatorEvent,\n adjustScale,\n children,\n className,\n rect,\n style,\n transform,\n transition = defaultTransition\n } = _ref;\n\n if (!rect) {\n return null;\n }\n\n const scaleAdjustedTransform = adjustScale ? transform : { ...transform,\n scaleX: 1,\n scaleY: 1\n };\n const styles = { ...baseStyles,\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n transform: CSS.Transform.toString(scaleAdjustedTransform),\n transformOrigin: adjustScale && activatorEvent ? getRelativeTransformOrigin(activatorEvent, rect) : undefined,\n transition: typeof transition === 'function' ? transition(activatorEvent) : transition,\n ...style\n };\n return React.createElement(as, {\n className,\n style: styles,\n ref\n }, children);\n});\n\nconst defaultDropAnimationSideEffects = options => _ref => {\n let {\n active,\n dragOverlay\n } = _ref;\n const originalStyles = {};\n const {\n styles,\n className\n } = options;\n\n if (styles != null && styles.active) {\n for (const [key, value] of Object.entries(styles.active)) {\n if (value === undefined) {\n continue;\n }\n\n originalStyles[key] = active.node.style.getPropertyValue(key);\n active.node.style.setProperty(key, value);\n }\n }\n\n if (styles != null && styles.dragOverlay) {\n for (const [key, value] of Object.entries(styles.dragOverlay)) {\n if (value === undefined) {\n continue;\n }\n\n dragOverlay.node.style.setProperty(key, value);\n }\n }\n\n if (className != null && className.active) {\n active.node.classList.add(className.active);\n }\n\n if (className != null && className.dragOverlay) {\n dragOverlay.node.classList.add(className.dragOverlay);\n }\n\n return function cleanup() {\n for (const [key, value] of Object.entries(originalStyles)) {\n active.node.style.setProperty(key, value);\n }\n\n if (className != null && className.active) {\n active.node.classList.remove(className.active);\n }\n };\n};\n\nconst defaultKeyframeResolver = _ref2 => {\n let {\n transform: {\n initial,\n final\n }\n } = _ref2;\n return [{\n transform: CSS.Transform.toString(initial)\n }, {\n transform: CSS.Transform.toString(final)\n }];\n};\n\nconst defaultDropAnimationConfiguration = {\n duration: 250,\n easing: 'ease',\n keyframes: defaultKeyframeResolver,\n sideEffects: /*#__PURE__*/defaultDropAnimationSideEffects({\n styles: {\n active: {\n opacity: '0'\n }\n }\n })\n};\nfunction useDropAnimation(_ref3) {\n let {\n config,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n } = _ref3;\n return useEvent((id, node) => {\n if (config === null) {\n return;\n }\n\n const activeDraggable = draggableNodes.get(id);\n\n if (!activeDraggable) {\n return;\n }\n\n const activeNode = activeDraggable.node.current;\n\n if (!activeNode) {\n return;\n }\n\n const measurableNode = getMeasurableNode(node);\n\n if (!measurableNode) {\n return;\n }\n\n const {\n transform\n } = getWindow(node).getComputedStyle(node);\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return;\n }\n\n const animation = typeof config === 'function' ? config : createDefaultDropAnimation(config);\n scrollIntoViewIfNeeded(activeNode, measuringConfiguration.draggable.measure);\n return animation({\n active: {\n id,\n data: activeDraggable.data,\n node: activeNode,\n rect: measuringConfiguration.draggable.measure(activeNode)\n },\n draggableNodes,\n dragOverlay: {\n node,\n rect: measuringConfiguration.dragOverlay.measure(measurableNode)\n },\n droppableContainers,\n measuringConfiguration,\n transform: parsedTransform\n });\n });\n}\n\nfunction createDefaultDropAnimation(options) {\n const {\n duration,\n easing,\n sideEffects,\n keyframes\n } = { ...defaultDropAnimationConfiguration,\n ...options\n };\n return _ref4 => {\n let {\n active,\n dragOverlay,\n transform,\n ...rest\n } = _ref4;\n\n if (!duration) {\n // Do not animate if animation duration is zero.\n return;\n }\n\n const delta = {\n x: dragOverlay.rect.left - active.rect.left,\n y: dragOverlay.rect.top - active.rect.top\n };\n const scale = {\n scaleX: transform.scaleX !== 1 ? active.rect.width * transform.scaleX / dragOverlay.rect.width : 1,\n scaleY: transform.scaleY !== 1 ? active.rect.height * transform.scaleY / dragOverlay.rect.height : 1\n };\n const finalTransform = {\n x: transform.x - delta.x,\n y: transform.y - delta.y,\n ...scale\n };\n const animationKeyframes = keyframes({ ...rest,\n active,\n dragOverlay,\n transform: {\n initial: transform,\n final: finalTransform\n }\n });\n const [firstKeyframe] = animationKeyframes;\n const lastKeyframe = animationKeyframes[animationKeyframes.length - 1];\n\n if (JSON.stringify(firstKeyframe) === JSON.stringify(lastKeyframe)) {\n // The start and end keyframes are the same, infer that there is no animation needed.\n return;\n }\n\n const cleanup = sideEffects == null ? void 0 : sideEffects({\n active,\n dragOverlay,\n ...rest\n });\n const animation = dragOverlay.node.animate(animationKeyframes, {\n duration,\n easing,\n fill: 'forwards'\n });\n return new Promise(resolve => {\n animation.onfinish = () => {\n cleanup == null ? void 0 : cleanup();\n resolve();\n };\n });\n };\n}\n\nlet key = 0;\nfunction useKey(id) {\n return useMemo(() => {\n if (id == null) {\n return;\n }\n\n key++;\n return key;\n }, [id]);\n}\n\nconst DragOverlay = /*#__PURE__*/React.memo(_ref => {\n let {\n adjustScale = false,\n children,\n dropAnimation: dropAnimationConfig,\n style,\n transition,\n modifiers,\n wrapperElement = 'div',\n className,\n zIndex = 999\n } = _ref;\n const {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggableNodes,\n droppableContainers,\n dragOverlay,\n over,\n measuringConfiguration,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n } = useDndContext();\n const transform = useContext(ActiveDraggableContext);\n const key = useKey(active == null ? void 0 : active.id);\n const modifiedTransform = applyModifiers(modifiers, {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect: dragOverlay.rect,\n over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n transform,\n windowRect\n });\n const initialRect = useInitialValue(activeNodeRect);\n const dropAnimation = useDropAnimation({\n config: dropAnimationConfig,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n }); // We need to wait for the active node to be measured before connecting the drag overlay ref\n // otherwise collisions can be computed against a mispositioned drag overlay\n\n const ref = initialRect ? dragOverlay.setRef : undefined;\n return React.createElement(NullifiedContextProvider, null, React.createElement(AnimationManager, {\n animation: dropAnimation\n }, active && key ? React.createElement(PositionedOverlay, {\n key: key,\n id: active.id,\n ref: ref,\n as: wrapperElement,\n activatorEvent: activatorEvent,\n adjustScale: adjustScale,\n className: className,\n transition: transition,\n rect: initialRect,\n style: {\n zIndex,\n ...style\n },\n transform: modifiedTransform\n }, children) : null));\n});\n\nexport { AutoScrollActivator, DndContext, DragOverlay, KeyboardCode, KeyboardSensor, MeasuringFrequency, MeasuringStrategy, MouseSensor, PointerSensor, TouchSensor, TraversalOrder, applyModifiers, closestCenter, closestCorners, defaultAnnouncements, defaultCoordinates, defaultDropAnimationConfiguration as defaultDropAnimation, defaultDropAnimationSideEffects, defaultKeyboardCoordinateGetter, defaultScreenReaderInstructions, getClientRect, getFirstCollision, getScrollableAncestors, pointerWithin, rectIntersection, useDndContext, useDndMonitor, useDraggable, useDroppable, useSensor, useSensors };\n//# sourceMappingURL=core.esm.js.map\n","import React, { useMemo, useRef, useEffect, useState, useContext } from 'react';\nimport { useDndContext, getClientRect, useDroppable, useDraggable, closestCorners, getFirstCollision, getScrollableAncestors, KeyboardCode } from '@dnd-kit/core';\nimport { useUniqueId, useIsomorphicLayoutEffect, CSS, useCombinedRefs, isKeyboardEvent, subtract } from '@dnd-kit/utilities';\n\n/**\r\n * Move an array item to a different position. Returns a new array with the item moved to the new position.\r\n */\nfunction arrayMove(array, from, to) {\n const newArray = array.slice();\n newArray.splice(to < 0 ? newArray.length + to : to, 0, newArray.splice(from, 1)[0]);\n return newArray;\n}\n\n/**\r\n * Swap an array item to a different position. Returns a new array with the item swapped to the new position.\r\n */\nfunction arraySwap(array, from, to) {\n const newArray = array.slice();\n newArray[from] = array[to];\n newArray[to] = array[from];\n return newArray;\n}\n\nfunction getSortedRects(items, rects) {\n return items.reduce((accumulator, id, index) => {\n const rect = rects.get(id);\n\n if (rect) {\n accumulator[index] = rect;\n }\n\n return accumulator;\n }, Array(items.length));\n}\n\nfunction isValidIndex(index) {\n return index !== null && index >= 0;\n}\n\nfunction itemsEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction normalizeDisabled(disabled) {\n if (typeof disabled === 'boolean') {\n return {\n draggable: disabled,\n droppable: disabled\n };\n }\n\n return disabled;\n}\n\n// To-do: We should be calculating scale transformation\nconst defaultScale = {\n scaleX: 1,\n scaleY: 1\n};\nconst horizontalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n\n let {\n rects,\n activeNodeRect: fallbackActiveRect,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n const itemGap = getItemGap(rects, index, activeIndex);\n\n if (index === activeIndex) {\n const newIndexRect = rects[overIndex];\n\n if (!newIndexRect) {\n return null;\n }\n\n return {\n x: activeIndex < overIndex ? newIndexRect.left + newIndexRect.width - (activeNodeRect.left + activeNodeRect.width) : newIndexRect.left - activeNodeRect.left,\n y: 0,\n ...defaultScale\n };\n }\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: -activeNodeRect.width - itemGap,\n y: 0,\n ...defaultScale\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: activeNodeRect.width + itemGap,\n y: 0,\n ...defaultScale\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale\n };\n};\n\nfunction getItemGap(rects, index, activeIndex) {\n const currentRect = rects[index];\n const previousRect = rects[index - 1];\n const nextRect = rects[index + 1];\n\n if (!currentRect || !previousRect && !nextRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect ? currentRect.left - (previousRect.left + previousRect.width) : nextRect.left - (currentRect.left + currentRect.width);\n }\n\n return nextRect ? nextRect.left - (currentRect.left + currentRect.width) : currentRect.left - (previousRect.left + previousRect.width);\n}\n\nconst rectSortingStrategy = _ref => {\n let {\n rects,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const newRects = arrayMove(rects, overIndex, activeIndex);\n const oldRect = rects[index];\n const newRect = newRects[index];\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\nconst rectSwappingStrategy = _ref => {\n let {\n activeIndex,\n index,\n rects,\n overIndex\n } = _ref;\n let oldRect;\n let newRect;\n\n if (index === activeIndex) {\n oldRect = rects[index];\n newRect = rects[overIndex];\n }\n\n if (index === overIndex) {\n oldRect = rects[index];\n newRect = rects[activeIndex];\n }\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\n// To-do: We should be calculating scale transformation\nconst defaultScale$1 = {\n scaleX: 1,\n scaleY: 1\n};\nconst verticalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n\n let {\n activeIndex,\n activeNodeRect: fallbackActiveRect,\n index,\n rects,\n overIndex\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n if (index === activeIndex) {\n const overIndexRect = rects[overIndex];\n\n if (!overIndexRect) {\n return null;\n }\n\n return {\n x: 0,\n y: activeIndex < overIndex ? overIndexRect.top + overIndexRect.height - (activeNodeRect.top + activeNodeRect.height) : overIndexRect.top - activeNodeRect.top,\n ...defaultScale$1\n };\n }\n\n const itemGap = getItemGap$1(rects, index, activeIndex);\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: 0,\n y: -activeNodeRect.height - itemGap,\n ...defaultScale$1\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: 0,\n y: activeNodeRect.height + itemGap,\n ...defaultScale$1\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale$1\n };\n};\n\nfunction getItemGap$1(clientRects, index, activeIndex) {\n const currentRect = clientRects[index];\n const previousRect = clientRects[index - 1];\n const nextRect = clientRects[index + 1];\n\n if (!currentRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect ? currentRect.top - (previousRect.top + previousRect.height) : nextRect ? nextRect.top - (currentRect.top + currentRect.height) : 0;\n }\n\n return nextRect ? nextRect.top - (currentRect.top + currentRect.height) : previousRect ? currentRect.top - (previousRect.top + previousRect.height) : 0;\n}\n\nconst ID_PREFIX = 'Sortable';\nconst Context = /*#__PURE__*/React.createContext({\n activeIndex: -1,\n containerId: ID_PREFIX,\n disableTransforms: false,\n items: [],\n overIndex: -1,\n useDragOverlay: false,\n sortedRects: [],\n strategy: rectSortingStrategy,\n disabled: {\n draggable: false,\n droppable: false\n }\n});\nfunction SortableContext(_ref) {\n let {\n children,\n id,\n items: userDefinedItems,\n strategy = rectSortingStrategy,\n disabled: disabledProp = false\n } = _ref;\n const {\n active,\n dragOverlay,\n droppableRects,\n over,\n measureDroppableContainers\n } = useDndContext();\n const containerId = useUniqueId(ID_PREFIX, id);\n const useDragOverlay = Boolean(dragOverlay.rect !== null);\n const items = useMemo(() => userDefinedItems.map(item => typeof item === 'object' && 'id' in item ? item.id : item), [userDefinedItems]);\n const isDragging = active != null;\n const activeIndex = active ? items.indexOf(active.id) : -1;\n const overIndex = over ? items.indexOf(over.id) : -1;\n const previousItemsRef = useRef(items);\n const itemsHaveChanged = !itemsEqual(items, previousItemsRef.current);\n const disableTransforms = overIndex !== -1 && activeIndex === -1 || itemsHaveChanged;\n const disabled = normalizeDisabled(disabledProp);\n useIsomorphicLayoutEffect(() => {\n if (itemsHaveChanged && isDragging) {\n measureDroppableContainers(items);\n }\n }, [itemsHaveChanged, items, isDragging, measureDroppableContainers]);\n useEffect(() => {\n previousItemsRef.current = items;\n }, [items]);\n const contextValue = useMemo(() => ({\n activeIndex,\n containerId,\n disabled,\n disableTransforms,\n items,\n overIndex,\n useDragOverlay,\n sortedRects: getSortedRects(items, droppableRects),\n strategy\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeIndex, containerId, disabled.draggable, disabled.droppable, disableTransforms, items, overIndex, droppableRects, useDragOverlay, strategy]);\n return React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nconst defaultNewIndexGetter = _ref => {\n let {\n id,\n items,\n activeIndex,\n overIndex\n } = _ref;\n return arrayMove(items, activeIndex, overIndex).indexOf(id);\n};\nconst defaultAnimateLayoutChanges = _ref2 => {\n let {\n containerId,\n isSorting,\n wasDragging,\n index,\n items,\n newIndex,\n previousItems,\n previousContainerId,\n transition\n } = _ref2;\n\n if (!transition || !wasDragging) {\n return false;\n }\n\n if (previousItems !== items && index === newIndex) {\n return false;\n }\n\n if (isSorting) {\n return true;\n }\n\n return newIndex !== index && containerId === previousContainerId;\n};\nconst defaultTransition = {\n duration: 200,\n easing: 'ease'\n};\nconst transitionProperty = 'transform';\nconst disabledTransition = /*#__PURE__*/CSS.Transition.toString({\n property: transitionProperty,\n duration: 0,\n easing: 'linear'\n});\nconst defaultAttributes = {\n roleDescription: 'sortable'\n};\n\n/*\r\n * When the index of an item changes while sorting,\r\n * we need to temporarily disable the transforms\r\n */\n\nfunction useDerivedTransform(_ref) {\n let {\n disabled,\n index,\n node,\n rect\n } = _ref;\n const [derivedTransform, setDerivedtransform] = useState(null);\n const previousIndex = useRef(index);\n useIsomorphicLayoutEffect(() => {\n if (!disabled && index !== previousIndex.current && node.current) {\n const initial = rect.current;\n\n if (initial) {\n const current = getClientRect(node.current, {\n ignoreTransform: true\n });\n const delta = {\n x: initial.left - current.left,\n y: initial.top - current.top,\n scaleX: initial.width / current.width,\n scaleY: initial.height / current.height\n };\n\n if (delta.x || delta.y) {\n setDerivedtransform(delta);\n }\n }\n }\n\n if (index !== previousIndex.current) {\n previousIndex.current = index;\n }\n }, [disabled, index, node, rect]);\n useEffect(() => {\n if (derivedTransform) {\n setDerivedtransform(null);\n }\n }, [derivedTransform]);\n return derivedTransform;\n}\n\nfunction useSortable(_ref) {\n let {\n animateLayoutChanges = defaultAnimateLayoutChanges,\n attributes: userDefinedAttributes,\n disabled: localDisabled,\n data: customData,\n getNewIndex = defaultNewIndexGetter,\n id,\n strategy: localStrategy,\n resizeObserverConfig,\n transition = defaultTransition\n } = _ref;\n const {\n items,\n containerId,\n activeIndex,\n disabled: globalDisabled,\n disableTransforms,\n sortedRects,\n overIndex,\n useDragOverlay,\n strategy: globalStrategy\n } = useContext(Context);\n const disabled = normalizeLocalDisabled(localDisabled, globalDisabled);\n const index = items.indexOf(id);\n const data = useMemo(() => ({\n sortable: {\n containerId,\n index,\n items\n },\n ...customData\n }), [containerId, customData, index, items]);\n const itemsAfterCurrentSortable = useMemo(() => items.slice(items.indexOf(id)), [items, id]);\n const {\n rect,\n node,\n isOver,\n setNodeRef: setDroppableNodeRef\n } = useDroppable({\n id,\n data,\n disabled: disabled.droppable,\n resizeObserverConfig: {\n updateMeasurementsFor: itemsAfterCurrentSortable,\n ...resizeObserverConfig\n }\n });\n const {\n active,\n activatorEvent,\n activeNodeRect,\n attributes,\n setNodeRef: setDraggableNodeRef,\n listeners,\n isDragging,\n over,\n setActivatorNodeRef,\n transform\n } = useDraggable({\n id,\n data,\n attributes: { ...defaultAttributes,\n ...userDefinedAttributes\n },\n disabled: disabled.draggable\n });\n const setNodeRef = useCombinedRefs(setDroppableNodeRef, setDraggableNodeRef);\n const isSorting = Boolean(active);\n const displaceItem = isSorting && !disableTransforms && isValidIndex(activeIndex) && isValidIndex(overIndex);\n const shouldDisplaceDragSource = !useDragOverlay && isDragging;\n const dragSourceDisplacement = shouldDisplaceDragSource && displaceItem ? transform : null;\n const strategy = localStrategy != null ? localStrategy : globalStrategy;\n const finalTransform = displaceItem ? dragSourceDisplacement != null ? dragSourceDisplacement : strategy({\n rects: sortedRects,\n activeNodeRect,\n activeIndex,\n overIndex,\n index\n }) : null;\n const newIndex = isValidIndex(activeIndex) && isValidIndex(overIndex) ? getNewIndex({\n id,\n items,\n activeIndex,\n overIndex\n }) : index;\n const activeId = active == null ? void 0 : active.id;\n const previous = useRef({\n activeId,\n items,\n newIndex,\n containerId\n });\n const itemsHaveChanged = items !== previous.current.items;\n const shouldAnimateLayoutChanges = animateLayoutChanges({\n active,\n containerId,\n isDragging,\n isSorting,\n id,\n index,\n items,\n newIndex: previous.current.newIndex,\n previousItems: previous.current.items,\n previousContainerId: previous.current.containerId,\n transition,\n wasDragging: previous.current.activeId != null\n });\n const derivedTransform = useDerivedTransform({\n disabled: !shouldAnimateLayoutChanges,\n index,\n node,\n rect\n });\n useEffect(() => {\n if (isSorting && previous.current.newIndex !== newIndex) {\n previous.current.newIndex = newIndex;\n }\n\n if (containerId !== previous.current.containerId) {\n previous.current.containerId = containerId;\n }\n\n if (items !== previous.current.items) {\n previous.current.items = items;\n }\n }, [isSorting, newIndex, containerId, items]);\n useEffect(() => {\n if (activeId === previous.current.activeId) {\n return;\n }\n\n if (activeId != null && previous.current.activeId == null) {\n previous.current.activeId = activeId;\n return;\n }\n\n const timeoutId = setTimeout(() => {\n previous.current.activeId = activeId;\n }, 50);\n return () => clearTimeout(timeoutId);\n }, [activeId]);\n return {\n active,\n activeIndex,\n attributes,\n data,\n rect,\n index,\n newIndex,\n items,\n isOver,\n isSorting,\n isDragging,\n listeners,\n node,\n overIndex,\n over,\n setNodeRef,\n setActivatorNodeRef,\n setDroppableNodeRef,\n setDraggableNodeRef,\n transform: derivedTransform != null ? derivedTransform : finalTransform,\n transition: getTransition()\n };\n\n function getTransition() {\n if ( // Temporarily disable transitions for a single frame to set up derived transforms\n derivedTransform || // Or to prevent items jumping to back to their \"new\" position when items change\n itemsHaveChanged && previous.current.newIndex === index) {\n return disabledTransition;\n }\n\n if (shouldDisplaceDragSource && !isKeyboardEvent(activatorEvent) || !transition) {\n return undefined;\n }\n\n if (isSorting || shouldAnimateLayoutChanges) {\n return CSS.Transition.toString({ ...transition,\n property: transitionProperty\n });\n }\n\n return undefined;\n }\n}\n\nfunction normalizeLocalDisabled(localDisabled, globalDisabled) {\n var _localDisabled$dragga, _localDisabled$droppa;\n\n if (typeof localDisabled === 'boolean') {\n return {\n draggable: localDisabled,\n // Backwards compatibility\n droppable: false\n };\n }\n\n return {\n draggable: (_localDisabled$dragga = localDisabled == null ? void 0 : localDisabled.draggable) != null ? _localDisabled$dragga : globalDisabled.draggable,\n droppable: (_localDisabled$droppa = localDisabled == null ? void 0 : localDisabled.droppable) != null ? _localDisabled$droppa : globalDisabled.droppable\n };\n}\n\nfunction hasSortableData(entry) {\n if (!entry) {\n return false;\n }\n\n const data = entry.data.current;\n\n if (data && 'sortable' in data && typeof data.sortable === 'object' && 'containerId' in data.sortable && 'items' in data.sortable && 'index' in data.sortable) {\n return true;\n }\n\n return false;\n}\n\nconst directions = [KeyboardCode.Down, KeyboardCode.Right, KeyboardCode.Up, KeyboardCode.Left];\nconst sortableKeyboardCoordinates = (event, _ref) => {\n let {\n context: {\n active,\n collisionRect,\n droppableRects,\n droppableContainers,\n over,\n scrollableAncestors\n }\n } = _ref;\n\n if (directions.includes(event.code)) {\n event.preventDefault();\n\n if (!active || !collisionRect) {\n return;\n }\n\n const filteredContainers = [];\n droppableContainers.getEnabled().forEach(entry => {\n if (!entry || entry != null && entry.disabled) {\n return;\n }\n\n const rect = droppableRects.get(entry.id);\n\n if (!rect) {\n return;\n }\n\n switch (event.code) {\n case KeyboardCode.Down:\n if (collisionRect.top < rect.top) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Up:\n if (collisionRect.top > rect.top) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Left:\n if (collisionRect.left > rect.left) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Right:\n if (collisionRect.left < rect.left) {\n filteredContainers.push(entry);\n }\n\n break;\n }\n });\n const collisions = closestCorners({\n active,\n collisionRect: collisionRect,\n droppableRects,\n droppableContainers: filteredContainers,\n pointerCoordinates: null\n });\n let closestId = getFirstCollision(collisions, 'id');\n\n if (closestId === (over == null ? void 0 : over.id) && collisions.length > 1) {\n closestId = collisions[1].id;\n }\n\n if (closestId != null) {\n const activeDroppable = droppableContainers.get(active.id);\n const newDroppable = droppableContainers.get(closestId);\n const newRect = newDroppable ? droppableRects.get(newDroppable.id) : null;\n const newNode = newDroppable == null ? void 0 : newDroppable.node.current;\n\n if (newNode && newRect && activeDroppable && newDroppable) {\n const newScrollAncestors = getScrollableAncestors(newNode);\n const hasDifferentScrollAncestors = newScrollAncestors.some((element, index) => scrollableAncestors[index] !== element);\n const hasSameContainer = isSameContainer(activeDroppable, newDroppable);\n const isAfterActive = isAfter(activeDroppable, newDroppable);\n const offset = hasDifferentScrollAncestors || !hasSameContainer ? {\n x: 0,\n y: 0\n } : {\n x: isAfterActive ? collisionRect.width - newRect.width : 0,\n y: isAfterActive ? collisionRect.height - newRect.height : 0\n };\n const rectCoordinates = {\n x: newRect.left,\n y: newRect.top\n };\n const newCoordinates = offset.x && offset.y ? rectCoordinates : subtract(rectCoordinates, offset);\n return newCoordinates;\n }\n }\n }\n\n return undefined;\n};\n\nfunction isSameContainer(a, b) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n return a.data.current.sortable.containerId === b.data.current.sortable.containerId;\n}\n\nfunction isAfter(a, b) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n if (!isSameContainer(a, b)) {\n return false;\n }\n\n return a.data.current.sortable.index < b.data.current.sortable.index;\n}\n\nexport { SortableContext, arrayMove, arraySwap, defaultAnimateLayoutChanges, defaultNewIndexGetter, hasSortableData, horizontalListSortingStrategy, rectSortingStrategy, rectSwappingStrategy, sortableKeyboardCoordinates, useSortable, verticalListSortingStrategy };\n//# sourceMappingURL=sortable.esm.js.map\n","import { DraggableAttributes, DraggableSyntheticListeners } from '@dnd-kit/core/dist/hooks/useDraggable';\nimport { createContext } from 'react';\n\ninterface Context {\n attributes?: DraggableAttributes;\n listeners: DraggableSyntheticListeners;\n ref(node: HTMLElement | null): void;\n}\n\nexport const SortableItemContext = createContext<Context>({\n attributes: undefined,\n listeners: undefined,\n ref() {},\n});\n","import React, { useContext } from 'react';\n\nimport { useDndContext } from '@dnd-kit/core';\nimport { Button, ButtonProps } from '../../../Button/button.component';\nimport { SortableItemContext } from '../SortableListItem/sortableListItem.context';\n\nexport const SortableListDragHandle = ({\n ['data-testid']: dataTestId = 'kibble-sortable-list-drag-handle',\n ...rest\n}: ButtonProps): React.JSX.Element => {\n const { attributes, listeners, ref } = useContext(SortableItemContext);\n const dndContext = useDndContext();\n\n return (\n <Button\n className=\"SortableList__DragHandle\"\n data-testid={dataTestId}\n ref={ref}\n cursor={dndContext.activatorEvent ? 'grabbing' : 'grab'}\n iconName=\"grid\"\n size=\"sm\"\n variant=\"ghostNeutral\"\n {...attributes}\n {...listeners}\n {...rest}\n />\n );\n};\n","import React, { useMemo } from 'react';\nimport { List } from '@chakra-ui/react/list';\nimport { UniqueIdentifier } from '@dnd-kit/core';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { SortableItemContext } from './sortableListItem.context';\nimport { SortableListDragHandle } from '../SortableListDragHandle/sortableListDragHandle.component';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { Text } from 'components/Text/text.component';\n\nexport interface SortableListItemProps {\n /** Content to be rendered in the list item. */\n content: React.ReactNode;\n /** Id of the list item. */\n id: UniqueIdentifier;\n /** Data test id for the list item.\n * @default kibble-sortable-list-item\n */\n 'data-testid'?: string;\n}\n\ninterface InternalSortableListItemProps extends SortableListItemProps {\n /** If true, the drag handle will not be displayed.\n * @internal\n */\n hideHandle?: boolean;\n /** Props to be passed to the list item.\n * @internal\n */\n itemProps?: Omit<List.ItemProps, 'id' | 'content'>;\n}\n\nexport const SortableListItem = ({\n content,\n hideHandle,\n id,\n itemProps,\n ['data-testid']: dataTestId = 'kibble-sortable-list-item',\n}: InternalSortableListItemProps): React.JSX.Element => {\n const { attributes, isDragging, listeners, setNodeRef, setActivatorNodeRef, transform, transition } = useSortable({\n id,\n });\n\n const context = useMemo(\n () => ({\n attributes,\n listeners,\n ref: setActivatorNodeRef,\n }),\n [attributes, listeners, setActivatorNodeRef],\n );\n\n return (\n <SortableItemContext.Provider value={context}>\n <List.Item\n className=\"SortableList__Item\"\n data-testid={dataTestId}\n ref={setNodeRef}\n {...itemProps}\n listStyleType=\"none\"\n {...(isDragging && { opacity: 0.4 })}\n transition={transition}\n transform={CSS.Translate.toString(transform)}\n >\n <Flex alignItems=\"center\" gap={2} width=\"100%\">\n {!hideHandle && <SortableListDragHandle />}\n {typeof content === 'string' ? <Text size=\"sm\">{content}</Text> : content}\n </Flex>\n </List.Item>\n </SortableItemContext.Provider>\n );\n};\n","import React, { useMemo, useState } from 'react';\nimport { List } from '@chakra-ui/react/list';\nimport {\n defaultDropAnimationSideEffects,\n DndContext,\n DragOverlay,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport type { Active, DropAnimation } from '@dnd-kit/core';\nimport { SortableContext, arrayMove, sortableKeyboardCoordinates } from '@dnd-kit/sortable';\nimport { SortableListItem, SortableListItemProps } from './components/SortableListItem/sortableListItem.component';\n\nexport interface SortableListProps extends Omit<List.RootProps, 'onChange'> {\n /**\n * If true, the drag handle will not be displayed.\n * @default false\n */\n hideHandle?: boolean;\n /** Array of items to be rendered in the list. */\n items: SortableListItemProps[];\n /** Props to be passed to each sortable list item. Commonly used for styling. */\n itemsProps?: Omit<List.ItemProps, 'id' | 'content'>;\n /** Callback function triggered when the order of items changes. */\n onChange(items: SortableListItemProps[]): void;\n /**\n * Data test id for the sortable list.\n * @default kibble-sortable-list\n */\n 'data-testid'?: string;\n}\n\nexport const SortableList = ({\n hideHandle = false,\n items,\n itemsProps,\n onChange,\n ['data-testid']: dataTestId = 'kibble-sortable-list',\n ...rest\n}: SortableListProps): React.JSX.Element => {\n const [active, setActive] = useState<Active | null>(null);\n const activeItem = useMemo(() => items.find((item) => item.id === active?.id), [active, items]);\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n return (\n <DndContext\n sensors={sensors}\n onDragStart={({ active }): void => {\n setActive(active);\n }}\n onDragEnd={({ active, over }): void => {\n if (over && active.id !== over?.id) {\n const activeIndex = items.findIndex(({ id }) => id === active.id);\n const overIndex = items.findIndex(({ id }) => id === over.id);\n\n onChange(arrayMove(items, activeIndex, overIndex));\n }\n setActive(null);\n }}\n onDragCancel={(): void => setActive(null)}\n >\n <SortableContext items={items}>\n <List.Root className=\"SortableList\" data-testid={dataTestId} gap={2} ml={0} {...rest}>\n {items.map((item) => (\n <SortableListItem key={item.id} {...item} itemProps={itemsProps} hideHandle={hideHandle} />\n ))}\n\n {activeItem && (\n <DragOverlay dropAnimation={dropAnimationConfig}>\n <SortableListItem {...activeItem} itemProps={itemsProps} hideHandle={hideHandle} />\n </DragOverlay>\n )}\n </List.Root>\n </SortableContext>\n </DndContext>\n );\n};\n\nconst dropAnimationConfig: DropAnimation = {\n sideEffects: defaultDropAnimationSideEffects({\n styles: {\n active: {\n opacity: '0.4',\n },\n },\n }),\n};\n"],"names":["useCombinedRefs","_len","refs","_key","useMemo","node","ref","canUseDOM","isWindow","element","elementString","isNode","getWindow","target","_target$ownerDocument","_target$ownerDocument2","isDocument","Document","isHTMLElement","isSVGElement","getOwnerDocument","useIsomorphicLayoutEffect","useLayoutEffect","useEffect","useEvent","handler","handlerRef","useRef","useCallback","args","useInterval","intervalRef","set","listener","duration","clear","useLatestValue","value","dependencies","valueRef","useLazyMemo","callback","newValue","useNodeRef","onChange","onChangeHandler","setNodeRef","usePrevious","ids","useUniqueId","prefix","id","createAdjustmentFn","modifier","object","adjustments","accumulator","adjustment","entries","key","valueAdjustment","add","subtract","hasViewportRelativeCoordinates","event","isKeyboardEvent","KeyboardEvent","isTouchEvent","TouchEvent","getEventCoordinates","x","y","CSS","transform","scaleX","scaleY","_ref","property","easing","SELECTOR","findFirstFocusableNode","hiddenStyles","HiddenText","React","LiveRegion","announcement","ariaLiveType","visuallyHidden","useAnnouncement","setAnnouncement","useState","DndMonitorContext","createContext","useDndMonitor","registerListener","useContext","useDndMonitorProvider","listeners","type","_listener$type","defaultScreenReaderInstructions","defaultAnnouncements","active","_ref2","over","_ref3","_ref4","Accessibility","announcements","container","hiddenTextDescribedById","screenReaderInstructions","announce","liveRegionId","mounted","setMounted","_ref5","_ref6","markup","createPortal","Action","noop","useSensor","sensor","options","useSensors","sensors","defaultCoordinates","distanceBetween","p1","p2","getRelativeTransformOrigin","rect","eventCoordinates","transformOrigin","sortCollisionsAsc","a","b","sortCollisionsDesc","cornersOfRectangle","left","top","height","width","getFirstCollision","collisions","firstCollision","closestCorners","collisionRect","droppableRects","droppableContainers","corners","droppableContainer","rectCorners","distances","corner","index","effectiveDistance","getIntersectionRatio","entry","right","bottom","targetArea","entryArea","intersectionArea","intersectionRatio","rectIntersection","adjustScale","rect1","rect2","getRectDelta","createRectAdjustmentFn","acc","getAdjustedRect","parseTransform","transformArray","inverseTransform","parsedTransform","translateX","translateY","w","h","defaultOptions","getClientRect","getTransformAgnosticClientRect","getWindowClientRect","isFixed","computedStyle","isScrollable","overflowRegex","getScrollableAncestors","limit","scrollParents","findScrollableAncestors","getFirstScrollableAncestor","firstScrollableAncestor","getScrollableElement","getScrollXCoordinate","getScrollYCoordinate","getScrollCoordinates","Direction","isDocumentScrollingElement","getScrollPosition","scrollingContainer","minScroll","dimensions","maxScroll","isTop","isLeft","isBottom","isRight","defaultThreshold","getScrollDirectionAndSpeed","scrollContainer","scrollContainerRect","acceleration","thresholdPercentage","direction","speed","threshold","getScrollElementRect","innerWidth","innerHeight","getScrollOffsets","scrollableAncestors","getScrollXOffset","getScrollYOffset","scrollIntoViewIfNeeded","measure","properties","Rect","scrollOffsets","axis","keys","getScrollOffset","currentOffsets","scrollOffsetsDeltla","Listeners","_this$target","eventName","_this$target2","getEventListenerTarget","EventTarget","hasExceededDistance","delta","measurement","dx","dy","EventName","preventDefault","stopPropagation","KeyboardCode","defaultKeyboardCodes","defaultKeyboardCoordinateGetter","currentCoordinates","KeyboardSensor","props","activeNode","onStart","context","keyboardCodes","coordinateGetter","scrollBehavior","code","newCoordinates","coordinatesDelta","scrollDelta","scrollElementRect","clampedCoordinates","canScrollX","canScrollY","newScrollCoordinates","canScrollToNewCoordinates","coordinates","onMove","onEnd","onCancel","onActivation","activator","isDistanceConstraint","constraint","isDelayConstraint","AbstractPointerSensor","events","listenerTarget","_getEventCoordinates","activationConstraint","bypassActivationConstraint","offset","onPending","initialCoordinates","_getEventCoordinates2","activated","onAbort","_this$document$getSel","PointerSensor","events$1","MouseButton","MouseSensor","events$2","TouchSensor","touches","AutoScrollActivator","TraversalOrder","useAutoScroller","canScroll","draggingRect","enabled","interval","order","pointerCoordinates","scrollableAncestorRects","scrollIntent","useScrollIntent","setAutoScrollInterval","clearAutoScrollInterval","scrollSpeed","scrollDirection","scrollContainerRef","autoScroll","scrollLeft","scrollTop","sortedScrollableAncestors","defaultScrollIntent","disabled","previousDelta","previousIntent","useCachedNode","draggableNodes","draggableNode","cachedNode","useCombineActivators","getSyntheticHandler","Sensor","sensorActivators","MeasuringStrategy","MeasuringFrequency","defaultValue","useDroppableMeasuring","containers","dragging","config","queue","setQueue","frequency","strategy","containersRef","isDisabled","disabledRef","measureDroppableContainers","timeoutId","previousValue","map","useInitialValue","computeFn","useInitialRect","useMutationObserver","handleMutations","mutationObserver","MutationObserver","useResizeObserver","handleResize","resizeObserver","ResizeObserver","defaultMeasure","useRect","fallbackRect","setRect","measureRect","currentRect","newRect","records","record","useRectDelta","initialRect","defaultValue$1","useScrollableAncestors","previousNode","ancestors","useScrollOffsets","elements","scrollCoordinates","setScrollCoordinates","prevElements","handleScroll","scrollingElement","previousElements","cleanup","scrollableElement","useScrollOffsetsDelta","initialScrollOffsets","hasScrollOffsets","useSensorSetup","teardownFns","teardown","useSyntheticListeners","useWindowRect","defaultValue$2","useRects","firstElement","windowRect","rects","setRects","measureRects","getMeasurableNode","firstChild","useDragOverlayMeasuring","handleNodeChange","nodeRef","setRef","defaultSensors","defaultData","defaultMeasuringConfiguration","DroppableContainersMap","_super$get","_this$get$node$curren","_this$get","defaultPublicContext","defaultInternalContext","InternalContext","PublicContext","getInitialState","reducer","state","action","RestoreFocus","activatorEvent","previousActivatorEvent","previousActiveId","activatorNode","focusableNode","applyModifiers","modifiers","useMeasuringConfiguration","useLayoutShiftScrollCompensation","initialized","rectDelta","ActiveDraggableContext","Status","DndContext","memo","_sensorContext$curren","_dragOverlay$nodeRef$","_dragOverlay$rect","_over$rect","accessibility","children","collisionDetection","measuring","store","useReducer","dispatch","dispatchMonitorEvent","registerMonitorListener","status","setStatus","isInitialized","activeId","translate","activeRects","_node$data","activeRef","activeSensor","setActiveSensor","setActivatorEvent","latestProps","draggableDescribedById","enabledDroppableContainers","measuringConfiguration","measuringScheduled","activationCoordinates","autoScrollOptions","getAutoScrollerOptions","initialActiveNodeRect","activeNodeRect","containerNodeRect","sensorContext","overNode","dragOverlay","draggingNode","draggingNodeRect","usesDragOverlay","nodeRectDelta","modifiedTranslate","scrollAdjustment","activeNodeScrollDelta","scrollAdjustedTranslate","overId","setOver","appliedTranslate","activeSensorRef","instantiateSensor","sensorInstance","onDragAbort","onDragPending","onDragStart","unstable_batchedUpdates","createHandler","cancelDrop","bindActivatorToSensorInstantiator","nativeEvent","activeDraggableNode","activationContext","activators","onDragMove","onDragOver","overContainer","publicContext","internalContext","activeSensorDisablesAutoscroll","autoScrollGloballyDisabled","NullContext","defaultRole","ID_PREFIX","useDraggable","data","attributes","ariaDescribedById","role","roleDescription","tabIndex","isDragging","setActivatorNodeRef","dataRef","memoizedAttributes","useDndContext","ID_PREFIX$1","defaultResizeObserverConfig","useDroppable","resizeObserverConfig","previous","resizeObserverConnected","callbackId","resizeObserverDisabled","updateMeasurementsFor","resizeObserverTimeout","newElement","previousElement","AnimationManager","animation","clonedChildren","setClonedChildren","setElement","previousChildren","cloneElement","defaultTransform","NullifiedContextProvider","baseStyles","defaultTransition","PositionedOverlay","forwardRef","as","className","style","transition","scaleAdjustedTransform","styles","defaultDropAnimationSideEffects","originalStyles","defaultKeyframeResolver","initial","final","defaultDropAnimationConfiguration","useDropAnimation","activeDraggable","measurableNode","createDefaultDropAnimation","sideEffects","keyframes","rest","scale","finalTransform","animationKeyframes","firstKeyframe","lastKeyframe","resolve","useKey","DragOverlay","dropAnimationConfig","wrapperElement","zIndex","modifiedTransform","dropAnimation","arrayMove","array","from","to","newArray","getSortedRects","items","isValidIndex","itemsEqual","i","normalizeDisabled","rectSortingStrategy","activeIndex","overIndex","newRects","oldRect","Context","SortableContext","userDefinedItems","disabledProp","containerId","useDragOverlay","item","previousItemsRef","itemsHaveChanged","disableTransforms","contextValue","defaultNewIndexGetter","defaultAnimateLayoutChanges","isSorting","wasDragging","newIndex","previousItems","previousContainerId","transitionProperty","disabledTransition","defaultAttributes","useDerivedTransform","derivedTransform","setDerivedtransform","previousIndex","current","useSortable","animateLayoutChanges","userDefinedAttributes","localDisabled","customData","getNewIndex","localStrategy","globalDisabled","sortedRects","globalStrategy","normalizeLocalDisabled","itemsAfterCurrentSortable","isOver","setDroppableNodeRef","setDraggableNodeRef","displaceItem","shouldDisplaceDragSource","dragSourceDisplacement","shouldAnimateLayoutChanges","getTransition","_localDisabled$dragga","_localDisabled$droppa","hasSortableData","directions","sortableKeyboardCoordinates","filteredContainers","closestId","activeDroppable","newDroppable","newNode","hasDifferentScrollAncestors","hasSameContainer","isSameContainer","isAfterActive","isAfter","rectCoordinates","SortableItemContext","SortableListDragHandle","dataTestId","dndContext","jsx","Button","SortableListItem","content","hideHandle","itemProps","List.Item","Flex","Text","SortableList","itemsProps","setActive","activeItem","jsxs","List.Root"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|