react-start-kit 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +99 -0
- package/dist/accordion/index.cjs.js +2 -0
- package/dist/accordion/index.cjs.js.map +1 -0
- package/dist/accordion/index.es.js +287 -0
- package/dist/accordion/index.es.js.map +1 -0
- package/dist/alert/index.cjs.js +2 -0
- package/dist/alert/index.cjs.js.map +1 -0
- package/dist/alert/index.es.js +8 -0
- package/dist/alert/index.es.js.map +1 -0
- package/dist/alert-dialog/index.cjs.js +2 -0
- package/dist/alert-dialog/index.cjs.js.map +1 -0
- package/dist/alert-dialog/index.es.js +15 -0
- package/dist/alert-dialog/index.es.js.map +1 -0
- package/dist/avatar/index.cjs.js +2 -0
- package/dist/avatar/index.cjs.js.map +1 -0
- package/dist/avatar/index.es.js +8 -0
- package/dist/avatar/index.es.js.map +1 -0
- package/dist/badge/index.cjs.js +2 -0
- package/dist/badge/index.cjs.js.map +1 -0
- package/dist/badge/index.es.js +6 -0
- package/dist/badge/index.es.js.map +1 -0
- package/dist/breadcrumb/index.cjs.js +2 -0
- package/dist/breadcrumb/index.cjs.js.map +1 -0
- package/dist/breadcrumb/index.es.js +10 -0
- package/dist/breadcrumb/index.es.js.map +1 -0
- package/dist/button/index.cjs.js +2 -0
- package/dist/button/index.cjs.js.map +1 -0
- package/dist/button/index.es.js +11 -0
- package/dist/button/index.es.js.map +1 -0
- package/dist/calendar/index.cjs.js +2 -0
- package/dist/calendar/index.cjs.js.map +1 -0
- package/dist/calendar/index.es.js +11 -0
- package/dist/calendar/index.es.js.map +1 -0
- package/dist/card/index.cjs.js +2 -0
- package/dist/card/index.cjs.js.map +1 -0
- package/dist/card/index.es.js +10 -0
- package/dist/card/index.es.js.map +1 -0
- package/dist/carousel/index.cjs.js +12 -0
- package/dist/carousel/index.cjs.js.map +1 -0
- package/dist/carousel/index.es.js +1441 -0
- package/dist/carousel/index.es.js.map +1 -0
- package/dist/chunks/_commonjsHelpers-DKOUU3wS.cjs.js +2 -0
- package/dist/chunks/_commonjsHelpers-DKOUU3wS.cjs.js.map +1 -0
- package/dist/chunks/_commonjsHelpers-DaMA6jEr.es.js +9 -0
- package/dist/chunks/_commonjsHelpers-DaMA6jEr.es.js.map +1 -0
- package/dist/chunks/alert-B9rImkiX.es.js +53 -0
- package/dist/chunks/alert-B9rImkiX.es.js.map +1 -0
- package/dist/chunks/alert-BNcf_eJn.cjs.js +2 -0
- package/dist/chunks/alert-BNcf_eJn.cjs.js.map +1 -0
- package/dist/chunks/alert-dialog-BfBtlIHj.cjs.js +8 -0
- package/dist/chunks/alert-dialog-BfBtlIHj.cjs.js.map +1 -0
- package/dist/chunks/alert-dialog-BrCPhmhd.es.js +209 -0
- package/dist/chunks/alert-dialog-BrCPhmhd.es.js.map +1 -0
- package/dist/chunks/avatar-CQMWDnOM.cjs.js +18 -0
- package/dist/chunks/avatar-CQMWDnOM.cjs.js.map +1 -0
- package/dist/chunks/avatar-zl4cf4c2.es.js +333 -0
- package/dist/chunks/avatar-zl4cf4c2.es.js.map +1 -0
- package/dist/chunks/badge-1ocx6hox.cjs.js +2 -0
- package/dist/chunks/badge-1ocx6hox.cjs.js.map +1 -0
- package/dist/chunks/badge-CPzxgRrM.es.js +75 -0
- package/dist/chunks/badge-CPzxgRrM.es.js.map +1 -0
- package/dist/chunks/breadcrumb-BrMrkZfa.es.js +82 -0
- package/dist/chunks/breadcrumb-BrMrkZfa.es.js.map +1 -0
- package/dist/chunks/breadcrumb-iPT-f06l.cjs.js +2 -0
- package/dist/chunks/breadcrumb-iPT-f06l.cjs.js.map +1 -0
- package/dist/chunks/button-CpKtD3qG.cjs.js +2 -0
- package/dist/chunks/button-CpKtD3qG.cjs.js.map +1 -0
- package/dist/chunks/button-DTRIYqDb.es.js +50 -0
- package/dist/chunks/button-DTRIYqDb.es.js.map +1 -0
- package/dist/chunks/button-group-B4h4-5eB.es.js +76 -0
- package/dist/chunks/button-group-B4h4-5eB.es.js.map +1 -0
- package/dist/chunks/button-group-CaFYso6b.cjs.js +2 -0
- package/dist/chunks/button-group-CaFYso6b.cjs.js.map +1 -0
- package/dist/chunks/card-B1sx5mON.cjs.js +2 -0
- package/dist/chunks/card-B1sx5mON.cjs.js.map +1 -0
- package/dist/chunks/card-BJ0eqFqO.es.js +74 -0
- package/dist/chunks/card-BJ0eqFqO.es.js.map +1 -0
- package/dist/chunks/check-B6UTraXT.cjs.js +7 -0
- package/dist/chunks/check-B6UTraXT.cjs.js.map +1 -0
- package/dist/chunks/check-DFKaRaBZ.es.js +12 -0
- package/dist/chunks/check-DFKaRaBZ.es.js.map +1 -0
- package/dist/chunks/chevron-down-DDxUy1A2.es.js +12 -0
- package/dist/chunks/chevron-down-DDxUy1A2.es.js.map +1 -0
- package/dist/chunks/chevron-down-T-PkxHnH.cjs.js +7 -0
- package/dist/chunks/chevron-down-T-PkxHnH.cjs.js.map +1 -0
- package/dist/chunks/chevron-left-B_pqqZqr.cjs.js +7 -0
- package/dist/chunks/chevron-left-B_pqqZqr.cjs.js.map +1 -0
- package/dist/chunks/chevron-left-CfOUdNQ0.es.js +12 -0
- package/dist/chunks/chevron-left-CfOUdNQ0.es.js.map +1 -0
- package/dist/chunks/chevron-right-BNG-Ugyb.es.js +12 -0
- package/dist/chunks/chevron-right-BNG-Ugyb.es.js.map +1 -0
- package/dist/chunks/chevron-right-BxyusM7v.cjs.js +7 -0
- package/dist/chunks/chevron-right-BxyusM7v.cjs.js.map +1 -0
- package/dist/chunks/circle--GxygOe5.es.js +12 -0
- package/dist/chunks/circle--GxygOe5.es.js.map +1 -0
- package/dist/chunks/circle-DjcntFbc.cjs.js +7 -0
- package/dist/chunks/circle-DjcntFbc.cjs.js.map +1 -0
- package/dist/chunks/collapsible-CBOSWBKB.cjs.js +2 -0
- package/dist/chunks/collapsible-CBOSWBKB.cjs.js.map +1 -0
- package/dist/chunks/collapsible-Ddd6kxXS.es.js +35 -0
- package/dist/chunks/collapsible-Ddd6kxXS.es.js.map +1 -0
- package/dist/chunks/createLucideIcon-CyFYF6Ug.es.js +124 -0
- package/dist/chunks/createLucideIcon-CyFYF6Ug.es.js.map +1 -0
- package/dist/chunks/createLucideIcon-HtK0p34L.cjs.js +42 -0
- package/dist/chunks/createLucideIcon-HtK0p34L.cjs.js.map +1 -0
- package/dist/chunks/dialog-BWF5BkHj.cjs.js +2 -0
- package/dist/chunks/dialog-BWF5BkHj.cjs.js.map +1 -0
- package/dist/chunks/dialog-D9BMBoAJ.es.js +105 -0
- package/dist/chunks/dialog-D9BMBoAJ.es.js.map +1 -0
- package/dist/chunks/dropdown-menu-Bu9wADja.cjs.js +2 -0
- package/dist/chunks/dropdown-menu-Bu9wADja.cjs.js.map +1 -0
- package/dist/chunks/dropdown-menu-CcnxQ7Zj.es.js +980 -0
- package/dist/chunks/dropdown-menu-CcnxQ7Zj.es.js.map +1 -0
- package/dist/chunks/ellipsis-9FjKj8zv.es.js +16 -0
- package/dist/chunks/ellipsis-9FjKj8zv.es.js.map +1 -0
- package/dist/chunks/ellipsis-FJjSjEdP.cjs.js +7 -0
- package/dist/chunks/ellipsis-FJjSjEdP.cjs.js.map +1 -0
- package/dist/chunks/index-BKZjW6I1.es.js +692 -0
- package/dist/chunks/index-BKZjW6I1.es.js.map +1 -0
- package/dist/chunks/index-BVqmUhu5.es.js +221 -0
- package/dist/chunks/index-BVqmUhu5.es.js.map +1 -0
- package/dist/chunks/index-BdfbDt7y.es.js +64 -0
- package/dist/chunks/index-BdfbDt7y.es.js.map +1 -0
- package/dist/chunks/index-Bli6ZByj.es.js +1571 -0
- package/dist/chunks/index-Bli6ZByj.es.js.map +1 -0
- package/dist/chunks/index-Br4MVOGV.es.js +12 -0
- package/dist/chunks/index-Br4MVOGV.es.js.map +1 -0
- package/dist/chunks/index-BruMW80s.cjs.js +2 -0
- package/dist/chunks/index-BruMW80s.cjs.js.map +1 -0
- package/dist/chunks/index-C28jaZCP.cjs.js +2 -0
- package/dist/chunks/index-C28jaZCP.cjs.js.map +1 -0
- package/dist/chunks/index-C8ni3LLa.cjs.js +2 -0
- package/dist/chunks/index-C8ni3LLa.cjs.js.map +1 -0
- package/dist/chunks/index-CGLGXpw0.cjs.js +2 -0
- package/dist/chunks/index-CGLGXpw0.cjs.js.map +1 -0
- package/dist/chunks/index-CItoM52t.cjs.js +2 -0
- package/dist/chunks/index-CItoM52t.cjs.js.map +1 -0
- package/dist/chunks/index-CJ0fGifh.cjs.js +2 -0
- package/dist/chunks/index-CJ0fGifh.cjs.js.map +1 -0
- package/dist/chunks/index-CMEUY8i_.cjs.js +2 -0
- package/dist/chunks/index-CMEUY8i_.cjs.js.map +1 -0
- package/dist/chunks/index-CN4RxFxN.cjs.js +2 -0
- package/dist/chunks/index-CN4RxFxN.cjs.js.map +1 -0
- package/dist/chunks/index-CNbacFZ5.es.js +116 -0
- package/dist/chunks/index-CNbacFZ5.es.js.map +1 -0
- package/dist/chunks/index-CbjDVb-G.es.js +93 -0
- package/dist/chunks/index-CbjDVb-G.es.js.map +1 -0
- package/dist/chunks/index-ClNIHY-1.es.js +134 -0
- package/dist/chunks/index-ClNIHY-1.es.js.map +1 -0
- package/dist/chunks/index-Clo5BFLY.es.js +32 -0
- package/dist/chunks/index-Clo5BFLY.es.js.map +1 -0
- package/dist/chunks/index-CtCzh8NB.cjs.js +6 -0
- package/dist/chunks/index-CtCzh8NB.cjs.js.map +1 -0
- package/dist/chunks/index-D9zW9Tk7.cjs.js +2 -0
- package/dist/chunks/index-D9zW9Tk7.cjs.js.map +1 -0
- package/dist/chunks/index-DBXFJW5M.es.js +11 -0
- package/dist/chunks/index-DBXFJW5M.es.js.map +1 -0
- package/dist/chunks/index-DG15yxNP.cjs.js +42 -0
- package/dist/chunks/index-DG15yxNP.cjs.js.map +1 -0
- package/dist/chunks/index-DGEvZwN5.cjs.js +2 -0
- package/dist/chunks/index-DGEvZwN5.cjs.js.map +1 -0
- package/dist/chunks/index-DLcqcWxM.es.js +30 -0
- package/dist/chunks/index-DLcqcWxM.es.js.map +1 -0
- package/dist/chunks/index-DNQZbZsM.es.js +179 -0
- package/dist/chunks/index-DNQZbZsM.es.js.map +1 -0
- package/dist/chunks/index-DnRKXUWD.cjs.js +2 -0
- package/dist/chunks/index-DnRKXUWD.cjs.js.map +1 -0
- package/dist/chunks/index-Dt3MSLsk.es.js +7 -0
- package/dist/chunks/index-Dt3MSLsk.es.js.map +1 -0
- package/dist/chunks/index-DvGm4EwH.es.js +62 -0
- package/dist/chunks/index-DvGm4EwH.es.js.map +1 -0
- package/dist/chunks/index-DwYXX2sM.es.js +14 -0
- package/dist/chunks/index-DwYXX2sM.es.js.map +1 -0
- package/dist/chunks/index-is755vrc.cjs.js +2 -0
- package/dist/chunks/index-is755vrc.cjs.js.map +1 -0
- package/dist/chunks/index-jFOWwfD3.cjs.js +2 -0
- package/dist/chunks/index-jFOWwfD3.cjs.js.map +1 -0
- package/dist/chunks/index-pF_O2Ico.cjs.js +2 -0
- package/dist/chunks/index-pF_O2Ico.cjs.js.map +1 -0
- package/dist/chunks/index-pQxT4IlV.cjs.js +2 -0
- package/dist/chunks/index-pQxT4IlV.cjs.js.map +1 -0
- package/dist/chunks/index-rKs9bXHr.es.js +7 -0
- package/dist/chunks/index-rKs9bXHr.es.js.map +1 -0
- package/dist/chunks/index-xA4mlFw5.es.js +35 -0
- package/dist/chunks/index-xA4mlFw5.es.js.map +1 -0
- package/dist/chunks/index-x_Mxo00P.cjs.js +2 -0
- package/dist/chunks/index-x_Mxo00P.cjs.js.map +1 -0
- package/dist/chunks/index-xl-szYFX.es.js +290 -0
- package/dist/chunks/index-xl-szYFX.es.js.map +1 -0
- package/dist/chunks/pagination-DFYeehFF.es.js +113 -0
- package/dist/chunks/pagination-DFYeehFF.es.js.map +1 -0
- package/dist/chunks/pagination-LHTb7tXo.cjs.js +2 -0
- package/dist/chunks/pagination-LHTb7tXo.cjs.js.map +1 -0
- package/dist/chunks/popover-Bh6emR_J.cjs.js +2 -0
- package/dist/chunks/popover-Bh6emR_J.cjs.js.map +1 -0
- package/dist/chunks/popover-BredK0sg.es.js +285 -0
- package/dist/chunks/popover-BredK0sg.es.js.map +1 -0
- package/dist/chunks/scroll-area-CwWjTiks.es.js +555 -0
- package/dist/chunks/scroll-area-CwWjTiks.es.js.map +1 -0
- package/dist/chunks/scroll-area-Nj6J9MqV.cjs.js +2 -0
- package/dist/chunks/scroll-area-Nj6J9MqV.cjs.js.map +1 -0
- package/dist/chunks/select-BTgKkicD.es.js +1404 -0
- package/dist/chunks/select-BTgKkicD.es.js.map +1 -0
- package/dist/chunks/select-D703Xctn.cjs.js +7 -0
- package/dist/chunks/select-D703Xctn.cjs.js.map +1 -0
- package/dist/chunks/separator-CGvV-BlI.cjs.js +2 -0
- package/dist/chunks/separator-CGvV-BlI.cjs.js.map +1 -0
- package/dist/chunks/separator-CgP4OHOF.es.js +67 -0
- package/dist/chunks/separator-CgP4OHOF.es.js.map +1 -0
- package/dist/chunks/sheet-BL1AP0aU.cjs.js +2 -0
- package/dist/chunks/sheet-BL1AP0aU.cjs.js.map +1 -0
- package/dist/chunks/sheet-CKsRhiVy.es.js +136 -0
- package/dist/chunks/sheet-CKsRhiVy.es.js.map +1 -0
- package/dist/chunks/skeleton-C7pnV7bc.cjs.js +2 -0
- package/dist/chunks/skeleton-C7pnV7bc.cjs.js.map +1 -0
- package/dist/chunks/skeleton-DKbF2Fso.es.js +18 -0
- package/dist/chunks/skeleton-DKbF2Fso.es.js.map +1 -0
- package/dist/chunks/table-BTb0KUhR.es.js +90 -0
- package/dist/chunks/table-BTb0KUhR.es.js.map +1 -0
- package/dist/chunks/table-Dxainp0Z.cjs.js +2 -0
- package/dist/chunks/table-Dxainp0Z.cjs.js.map +1 -0
- package/dist/chunks/tabs-BnamvF0S.es.js +317 -0
- package/dist/chunks/tabs-BnamvF0S.es.js.map +1 -0
- package/dist/chunks/tabs-CDt2LiNL.cjs.js +6 -0
- package/dist/chunks/tabs-CDt2LiNL.cjs.js.map +1 -0
- package/dist/chunks/textarea-4zXXFdLZ.cjs.js +187 -0
- package/dist/chunks/textarea-4zXXFdLZ.cjs.js.map +1 -0
- package/dist/chunks/textarea-CBSWNU0D.es.js +17234 -0
- package/dist/chunks/textarea-CBSWNU0D.es.js.map +1 -0
- package/dist/chunks/timepicker-CVkum2UK.es.js +3394 -0
- package/dist/chunks/timepicker-CVkum2UK.es.js.map +1 -0
- package/dist/chunks/timepicker-nlKbDl_W.cjs.js +7 -0
- package/dist/chunks/timepicker-nlKbDl_W.cjs.js.map +1 -0
- package/dist/chunks/tooltip-CsZB0nVr.cjs.js +2 -0
- package/dist/chunks/tooltip-CsZB0nVr.cjs.js.map +1 -0
- package/dist/chunks/tooltip-Dtzkuphk.es.js +341 -0
- package/dist/chunks/tooltip-Dtzkuphk.es.js.map +1 -0
- package/dist/chunks/utils-C4d7Ql9-.cjs.js +2 -0
- package/dist/chunks/utils-C4d7Ql9-.cjs.js.map +1 -0
- package/dist/chunks/utils-CnvKSirc.es.js +2778 -0
- package/dist/chunks/utils-CnvKSirc.es.js.map +1 -0
- package/dist/chunks/x-8d8XBbXN.es.js +15 -0
- package/dist/chunks/x-8d8XBbXN.es.js.map +1 -0
- package/dist/chunks/x-Ev63aQi_.cjs.js +7 -0
- package/dist/chunks/x-Ev63aQi_.cjs.js.map +1 -0
- package/dist/collapsible/index.cjs.js +2 -0
- package/dist/collapsible/index.cjs.js.map +1 -0
- package/dist/collapsible/index.es.js +7 -0
- package/dist/collapsible/index.es.js.map +1 -0
- package/dist/dialog/index.cjs.js +2 -0
- package/dist/dialog/index.cjs.js.map +1 -0
- package/dist/dialog/index.es.js +14 -0
- package/dist/dialog/index.es.js.map +1 -0
- package/dist/dropdown/index.cjs.js +2 -0
- package/dist/dropdown/index.cjs.js.map +1 -0
- package/dist/dropdown/index.es.js +19 -0
- package/dist/dropdown/index.es.js.map +1 -0
- package/dist/form/index.cjs.js +2 -0
- package/dist/form/index.cjs.js.map +1 -0
- package/dist/form/index.es.js +36 -0
- package/dist/form/index.es.js.map +1 -0
- package/dist/index.cjs.js +2 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.es.js +171 -0
- package/dist/index.es.js.map +1 -0
- package/dist/pagination/index.cjs.js +2 -0
- package/dist/pagination/index.cjs.js.map +1 -0
- package/dist/pagination/index.es.js +11 -0
- package/dist/pagination/index.es.js.map +1 -0
- package/dist/popover/index.cjs.js +2 -0
- package/dist/popover/index.cjs.js.map +1 -0
- package/dist/popover/index.es.js +7 -0
- package/dist/popover/index.es.js.map +1 -0
- package/dist/progress/index.cjs.js +7 -0
- package/dist/progress/index.cjs.js.map +1 -0
- package/dist/progress/index.es.js +194 -0
- package/dist/progress/index.es.js.map +1 -0
- package/dist/scroll-area/index.cjs.js +2 -0
- package/dist/scroll-area/index.cjs.js.map +1 -0
- package/dist/scroll-area/index.es.js +6 -0
- package/dist/scroll-area/index.es.js.map +1 -0
- package/dist/separator/index.cjs.js +2 -0
- package/dist/separator/index.cjs.js.map +1 -0
- package/dist/separator/index.es.js +5 -0
- package/dist/separator/index.es.js.map +1 -0
- package/dist/sheet/index.cjs.js +2 -0
- package/dist/sheet/index.cjs.js.map +1 -0
- package/dist/sheet/index.es.js +12 -0
- package/dist/sheet/index.es.js.map +1 -0
- package/dist/skeleton/index.cjs.js +2 -0
- package/dist/skeleton/index.cjs.js.map +1 -0
- package/dist/skeleton/index.es.js +5 -0
- package/dist/skeleton/index.es.js.map +1 -0
- package/dist/styles.css +7 -0
- package/dist/tab/index.cjs.js +2 -0
- package/dist/tab/index.cjs.js.map +1 -0
- package/dist/tab/index.es.js +8 -0
- package/dist/tab/index.es.js.map +1 -0
- package/dist/table/index.cjs.js +2 -0
- package/dist/table/index.cjs.js.map +1 -0
- package/dist/table/index.es.js +12 -0
- package/dist/table/index.es.js.map +1 -0
- package/dist/tooltip/index.cjs.js +2 -0
- package/dist/tooltip/index.cjs.js.map +1 -0
- package/dist/tooltip/index.es.js +8 -0
- package/dist/tooltip/index.es.js.map +1 -0
- package/dist/types/App.d.ts +9 -0
- package/dist/types/App.d.ts.map +1 -0
- package/dist/types/hooks/use-mobile.d.ts +8 -0
- package/dist/types/hooks/use-mobile.d.ts.map +1 -0
- package/dist/types/index.d.ts +28 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/lib/day.d.ts +7 -0
- package/dist/types/lib/day.d.ts.map +1 -0
- package/dist/types/lib/index.d.ts +6 -0
- package/dist/types/lib/index.d.ts.map +1 -0
- package/dist/types/lib/utils.d.ts +10 -0
- package/dist/types/lib/utils.d.ts.map +1 -0
- package/dist/types/main.d.ts +1 -0
- package/dist/types/main.d.ts.map +1 -0
- package/dist/types/stories/Accordion.stories.d.ts +17 -0
- package/dist/types/stories/Accordion.stories.d.ts.map +1 -0
- package/dist/types/stories/Alert.stories.d.ts +26 -0
- package/dist/types/stories/Alert.stories.d.ts.map +1 -0
- package/dist/types/stories/AlertDialog.stories.d.ts +18 -0
- package/dist/types/stories/AlertDialog.stories.d.ts.map +1 -0
- package/dist/types/stories/Avatar.stories.d.ts +27 -0
- package/dist/types/stories/Avatar.stories.d.ts.map +1 -0
- package/dist/types/stories/Badge.stories.d.ts +44 -0
- package/dist/types/stories/Badge.stories.d.ts.map +1 -0
- package/dist/types/stories/Breadcrumb.stories.d.ts +20 -0
- package/dist/types/stories/Breadcrumb.stories.d.ts.map +1 -0
- package/dist/types/stories/Button.stories.d.ts +48 -0
- package/dist/types/stories/Button.stories.d.ts.map +1 -0
- package/dist/types/stories/ButtonGroup.stories.d.ts +29 -0
- package/dist/types/stories/ButtonGroup.stories.d.ts.map +1 -0
- package/dist/types/stories/Calendar.stories.d.ts +35 -0
- package/dist/types/stories/Calendar.stories.d.ts.map +1 -0
- package/dist/types/stories/Card.stories.d.ts +17 -0
- package/dist/types/stories/Card.stories.d.ts.map +1 -0
- package/dist/types/stories/Carousel.stories.d.ts +23 -0
- package/dist/types/stories/Carousel.stories.d.ts.map +1 -0
- package/dist/types/stories/Checkbox.stories.d.ts +31 -0
- package/dist/types/stories/Checkbox.stories.d.ts.map +1 -0
- package/dist/types/stories/Collapsible.stories.d.ts +17 -0
- package/dist/types/stories/Collapsible.stories.d.ts.map +1 -0
- package/dist/types/stories/DatePicker.stories.d.ts +14 -0
- package/dist/types/stories/DatePicker.stories.d.ts.map +1 -0
- package/dist/types/stories/Dialog.stories.d.ts +18 -0
- package/dist/types/stories/Dialog.stories.d.ts.map +1 -0
- package/dist/types/stories/DropdownMenu.stories.d.ts +17 -0
- package/dist/types/stories/DropdownMenu.stories.d.ts.map +1 -0
- package/dist/types/stories/FilepondContainer.stories.d.ts +21 -0
- package/dist/types/stories/FilepondContainer.stories.d.ts.map +1 -0
- package/dist/types/stories/Form.stories.d.ts +15 -0
- package/dist/types/stories/Form.stories.d.ts.map +1 -0
- package/dist/types/stories/HtmlEditor.stories.d.ts +27 -0
- package/dist/types/stories/HtmlEditor.stories.d.ts.map +1 -0
- package/dist/types/stories/Input.stories.d.ts +40 -0
- package/dist/types/stories/Input.stories.d.ts.map +1 -0
- package/dist/types/stories/Label.stories.d.ts +19 -0
- package/dist/types/stories/Label.stories.d.ts.map +1 -0
- package/dist/types/stories/MaskInput.stories.d.ts +115 -0
- package/dist/types/stories/MaskInput.stories.d.ts.map +1 -0
- package/dist/types/stories/Pagination.stories.d.ts +21 -0
- package/dist/types/stories/Pagination.stories.d.ts.map +1 -0
- package/dist/types/stories/Popover.stories.d.ts +17 -0
- package/dist/types/stories/Popover.stories.d.ts.map +1 -0
- package/dist/types/stories/Progress.stories.d.ts +33 -0
- package/dist/types/stories/Progress.stories.d.ts.map +1 -0
- package/dist/types/stories/RadioGroup.stories.d.ts +18 -0
- package/dist/types/stories/RadioGroup.stories.d.ts.map +1 -0
- package/dist/types/stories/ReactSelect.stories.d.ts +39 -0
- package/dist/types/stories/ReactSelect.stories.d.ts.map +1 -0
- package/dist/types/stories/ScrollArea.stories.d.ts +18 -0
- package/dist/types/stories/ScrollArea.stories.d.ts.map +1 -0
- package/dist/types/stories/Select.stories.d.ts +18 -0
- package/dist/types/stories/Select.stories.d.ts.map +1 -0
- package/dist/types/stories/Separator.stories.d.ts +28 -0
- package/dist/types/stories/Separator.stories.d.ts.map +1 -0
- package/dist/types/stories/Sheet.stories.d.ts +21 -0
- package/dist/types/stories/Sheet.stories.d.ts.map +1 -0
- package/dist/types/stories/Skeleton.stories.d.ts +22 -0
- package/dist/types/stories/Skeleton.stories.d.ts.map +1 -0
- package/dist/types/stories/Switch.stories.d.ts +29 -0
- package/dist/types/stories/Switch.stories.d.ts.map +1 -0
- package/dist/types/stories/Table.stories.d.ts +17 -0
- package/dist/types/stories/Table.stories.d.ts.map +1 -0
- package/dist/types/stories/Tabs.stories.d.ts +19 -0
- package/dist/types/stories/Tabs.stories.d.ts.map +1 -0
- package/dist/types/stories/Textarea.stories.d.ts +34 -0
- package/dist/types/stories/Textarea.stories.d.ts.map +1 -0
- package/dist/types/stories/TimePicker.stories.d.ts +33 -0
- package/dist/types/stories/TimePicker.stories.d.ts.map +1 -0
- package/dist/types/stories/Tooltip.stories.d.ts +27 -0
- package/dist/types/stories/Tooltip.stories.d.ts.map +1 -0
- package/dist/types/types/element-data.type.d.ts +8 -0
- package/dist/types/types/element-data.type.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +2 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/ui/accordion/accordion.d.ts +69 -0
- package/dist/types/ui/accordion/accordion.d.ts.map +1 -0
- package/dist/types/ui/accordion/index.d.ts +2 -0
- package/dist/types/ui/accordion/index.d.ts.map +1 -0
- package/dist/types/ui/alert/alert.d.ts +31 -0
- package/dist/types/ui/alert/alert.d.ts.map +1 -0
- package/dist/types/ui/alert/index.d.ts +2 -0
- package/dist/types/ui/alert/index.d.ts.map +1 -0
- package/dist/types/ui/alert-dialog/alert-dialog.d.ts +62 -0
- package/dist/types/ui/alert-dialog/alert-dialog.d.ts.map +1 -0
- package/dist/types/ui/alert-dialog/index.d.ts +2 -0
- package/dist/types/ui/alert-dialog/index.d.ts.map +1 -0
- package/dist/types/ui/avatar/avatar.d.ts +86 -0
- package/dist/types/ui/avatar/avatar.d.ts.map +1 -0
- package/dist/types/ui/avatar/index.d.ts +2 -0
- package/dist/types/ui/avatar/index.d.ts.map +1 -0
- package/dist/types/ui/badge/badge.d.ts +45 -0
- package/dist/types/ui/badge/badge.d.ts.map +1 -0
- package/dist/types/ui/badge/index.d.ts +2 -0
- package/dist/types/ui/badge/index.d.ts.map +1 -0
- package/dist/types/ui/breadcrumb/breadcrumb.d.ts +60 -0
- package/dist/types/ui/breadcrumb/breadcrumb.d.ts.map +1 -0
- package/dist/types/ui/breadcrumb/index.d.ts +2 -0
- package/dist/types/ui/breadcrumb/index.d.ts.map +1 -0
- package/dist/types/ui/button/button-group.d.ts +43 -0
- package/dist/types/ui/button/button-group.d.ts.map +1 -0
- package/dist/types/ui/button/button.d.ts +42 -0
- package/dist/types/ui/button/button.d.ts.map +1 -0
- package/dist/types/ui/button/index.d.ts +3 -0
- package/dist/types/ui/button/index.d.ts.map +1 -0
- package/dist/types/ui/calendar/calendar.d.ts +84 -0
- package/dist/types/ui/calendar/calendar.d.ts.map +1 -0
- package/dist/types/ui/calendar/datepicker.d.ts +8 -0
- package/dist/types/ui/calendar/datepicker.d.ts.map +1 -0
- package/dist/types/ui/calendar/index.d.ts +4 -0
- package/dist/types/ui/calendar/index.d.ts.map +1 -0
- package/dist/types/ui/calendar/timepicker.d.ts +38 -0
- package/dist/types/ui/calendar/timepicker.d.ts.map +1 -0
- package/dist/types/ui/card/card.d.ts +39 -0
- package/dist/types/ui/card/card.d.ts.map +1 -0
- package/dist/types/ui/card/index.d.ts +2 -0
- package/dist/types/ui/card/index.d.ts.map +1 -0
- package/dist/types/ui/carousel/carousel.d.ts +73 -0
- package/dist/types/ui/carousel/carousel.d.ts.map +1 -0
- package/dist/types/ui/carousel/index.d.ts +2 -0
- package/dist/types/ui/carousel/index.d.ts.map +1 -0
- package/dist/types/ui/collapsible/collapsible.d.ts +18 -0
- package/dist/types/ui/collapsible/collapsible.d.ts.map +1 -0
- package/dist/types/ui/collapsible/index.d.ts +2 -0
- package/dist/types/ui/collapsible/index.d.ts.map +1 -0
- package/dist/types/ui/dialog/dialog.d.ts +76 -0
- package/dist/types/ui/dialog/dialog.d.ts.map +1 -0
- package/dist/types/ui/dialog/index.d.ts +2 -0
- package/dist/types/ui/dialog/index.d.ts.map +1 -0
- package/dist/types/ui/dropdown/dropdown-menu.d.ts +88 -0
- package/dist/types/ui/dropdown/dropdown-menu.d.ts.map +1 -0
- package/dist/types/ui/dropdown/index.d.ts +2 -0
- package/dist/types/ui/dropdown/index.d.ts.map +1 -0
- package/dist/types/ui/form/checkbox.d.ts +16 -0
- package/dist/types/ui/form/checkbox.d.ts.map +1 -0
- package/dist/types/ui/form/filepond-container.d.ts +25 -0
- package/dist/types/ui/form/filepond-container.d.ts.map +1 -0
- package/dist/types/ui/form/form.d.ts +68 -0
- package/dist/types/ui/form/form.d.ts.map +1 -0
- package/dist/types/ui/form/html-editor.d.ts +38 -0
- package/dist/types/ui/form/html-editor.d.ts.map +1 -0
- package/dist/types/ui/form/index.d.ts +13 -0
- package/dist/types/ui/form/index.d.ts.map +1 -0
- package/dist/types/ui/form/input-mask.d.ts +111 -0
- package/dist/types/ui/form/input-mask.d.ts.map +1 -0
- package/dist/types/ui/form/input.d.ts +33 -0
- package/dist/types/ui/form/input.d.ts.map +1 -0
- package/dist/types/ui/form/label.d.ts +11 -0
- package/dist/types/ui/form/label.d.ts.map +1 -0
- package/dist/types/ui/form/radio-group.d.ts +25 -0
- package/dist/types/ui/form/radio-group.d.ts.map +1 -0
- package/dist/types/ui/form/react-select.d.ts +40 -0
- package/dist/types/ui/form/react-select.d.ts.map +1 -0
- package/dist/types/ui/form/select.d.ts +100 -0
- package/dist/types/ui/form/select.d.ts.map +1 -0
- package/dist/types/ui/form/switch.d.ts +16 -0
- package/dist/types/ui/form/switch.d.ts.map +1 -0
- package/dist/types/ui/form/textarea.d.ts +19 -0
- package/dist/types/ui/form/textarea.d.ts.map +1 -0
- package/dist/types/ui/pagination/index.d.ts +2 -0
- package/dist/types/ui/pagination/index.d.ts.map +1 -0
- package/dist/types/ui/pagination/pagination.d.ts +78 -0
- package/dist/types/ui/pagination/pagination.d.ts.map +1 -0
- package/dist/types/ui/popover/index.d.ts +2 -0
- package/dist/types/ui/popover/index.d.ts.map +1 -0
- package/dist/types/ui/popover/popover.d.ts +29 -0
- package/dist/types/ui/popover/popover.d.ts.map +1 -0
- package/dist/types/ui/progress/index.d.ts +2 -0
- package/dist/types/ui/progress/index.d.ts.map +1 -0
- package/dist/types/ui/progress/progress.d.ts +14 -0
- package/dist/types/ui/progress/progress.d.ts.map +1 -0
- package/dist/types/ui/scroll-area/index.d.ts +2 -0
- package/dist/types/ui/scroll-area/index.d.ts.map +1 -0
- package/dist/types/ui/scroll-area/scroll-area.d.ts +20 -0
- package/dist/types/ui/scroll-area/scroll-area.d.ts.map +1 -0
- package/dist/types/ui/separator/index.d.ts +2 -0
- package/dist/types/ui/separator/index.d.ts.map +1 -0
- package/dist/types/ui/separator/separator.d.ts +13 -0
- package/dist/types/ui/separator/separator.d.ts.map +1 -0
- package/dist/types/ui/sheet/index.d.ts +2 -0
- package/dist/types/ui/sheet/index.d.ts.map +1 -0
- package/dist/types/ui/sheet/sheet.d.ts +61 -0
- package/dist/types/ui/sheet/sheet.d.ts.map +1 -0
- package/dist/types/ui/skeleton/index.d.ts +2 -0
- package/dist/types/ui/skeleton/index.d.ts.map +1 -0
- package/dist/types/ui/skeleton/skeleton.d.ts +8 -0
- package/dist/types/ui/skeleton/skeleton.d.ts.map +1 -0
- package/dist/types/ui/tab/index.d.ts +2 -0
- package/dist/types/ui/tab/index.d.ts.map +1 -0
- package/dist/types/ui/tab/tabs.d.ts +50 -0
- package/dist/types/ui/tab/tabs.d.ts.map +1 -0
- package/dist/types/ui/table/index.d.ts +2 -0
- package/dist/types/ui/table/index.d.ts.map +1 -0
- package/dist/types/ui/table/table.d.ts +43 -0
- package/dist/types/ui/table/table.d.ts.map +1 -0
- package/dist/types/ui/tooltip/index.d.ts +2 -0
- package/dist/types/ui/tooltip/index.d.ts.map +1 -0
- package/dist/types/ui/tooltip/tooltip.d.ts +15 -0
- package/dist/types/ui/tooltip/tooltip.d.ts.map +1 -0
- package/dist/types/vite-env.d.ts +1 -0
- package/dist/utils/index.cjs.js +2 -0
- package/dist/utils/index.cjs.js.map +1 -0
- package/dist/utils/index.es.js +287 -0
- package/dist/utils/index.es.js.map +1 -0
- package/package.json +366 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-D703Xctn.cjs.js","sources":["../../node_modules/lucide-react/dist/esm/icons/chevron-up.js","../../node_modules/@radix-ui/react-use-previous/dist/index.mjs","../../node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-slot/dist/index.mjs","../../node_modules/@radix-ui/react-select/dist/index.mjs","../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../node_modules/react-window/node_modules/memoize-one/dist/memoize-one.esm.js","../../node_modules/react-window/dist/index.esm.js","../../src/ui/form/select.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m18 15-6-6-6 6\", key: \"153udz\" }]];\nconst ChevronUp = createLucideIcon(\"chevron-up\", __iconNode);\n\nexport { __iconNode, ChevronUp as default };\n//# sourceMappingURL=chevron-up.js.map\n","// packages/react/use-previous/src/use-previous.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/select.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { VISUALLY_HIDDEN_STYLES } from \"@radix-ui/react-visually-hidden\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar OPEN_KEYS = [\" \", \"Enter\", \"ArrowUp\", \"ArrowDown\"];\nvar SELECTION_KEYS = [\" \", \"Enter\"];\nvar SELECT_NAME = \"Select\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SELECT_NAME);\nvar [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME, [\n createCollectionScope,\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);\nvar [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);\nvar Select = (props) => {\n const {\n __scopeSelect,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n value: valueProp,\n defaultValue,\n onValueChange,\n dir,\n name,\n autoComplete,\n disabled,\n required,\n form\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = React.useState(null);\n const [valueNode, setValueNode] = React.useState(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = React.useState(false);\n const direction = useDirection(dir);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: SELECT_NAME\n });\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange,\n caller: SELECT_NAME\n });\n const triggerPointerDownPosRef = React.useRef(null);\n const isFormControl = trigger ? form || !!trigger.closest(\"form\") : true;\n const [nativeOptionsSet, setNativeOptionsSet] = React.useState(/* @__PURE__ */ new Set());\n const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(\";\");\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsxs(\n SelectProvider,\n {\n required,\n scope: __scopeSelect,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId: useId(),\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled,\n children: [\n /* @__PURE__ */ jsx(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n SelectNativeOptionsProvider,\n {\n scope: props.__scopeSelect,\n onNativeOptionAdd: React.useCallback((option) => {\n setNativeOptionsSet((prev) => new Set(prev).add(option));\n }, []),\n onNativeOptionRemove: React.useCallback((option) => {\n setNativeOptionsSet((prev) => {\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, []),\n children\n }\n ) }),\n isFormControl ? /* @__PURE__ */ jsxs(\n SelectBubbleInput,\n {\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n value,\n onChange: (event) => setValue(event.target.value),\n disabled,\n form,\n children: [\n value === void 0 ? /* @__PURE__ */ jsx(\"option\", { value: \"\" }) : null,\n Array.from(nativeOptionsSet)\n ]\n },\n nativeSelectKey\n ) : null\n ]\n }\n ) });\n};\nSelect.displayName = SELECT_NAME;\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, disabled = false, ...triggerProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);\n const getItems = useCollection(__scopeSelect);\n const pointerTypeRef = React.useRef(\"touch\");\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.value === context.value);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0) {\n context.onValueChange(nextItem.value);\n }\n });\n const handleOpen = (pointerEvent) => {\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n if (pointerEvent) {\n context.triggerPointerDownPosRef.current = {\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY)\n };\n }\n };\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open,\n \"aria-required\": context.required,\n \"aria-autocomplete\": \"none\",\n dir: context.dir,\n \"data-state\": context.open ? \"open\" : \"closed\",\n disabled: isDisabled,\n \"data-disabled\": isDisabled ? \"\" : void 0,\n \"data-placeholder\": shouldShowPlaceholder(context.value) ? \"\" : void 0,\n ...triggerProps,\n ref: composedRefs,\n onClick: composeEventHandlers(triggerProps.onClick, (event) => {\n event.currentTarget.focus();\n if (pointerTypeRef.current !== \"mouse\") {\n handleOpen(event);\n }\n }),\n onPointerDown: composeEventHandlers(triggerProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n if (event.button === 0 && event.ctrlKey === false && event.pointerType === \"mouse\") {\n handleOpen(event);\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (event) => {\n const isTypingAhead = searchRef.current !== \"\";\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === \" \") return;\n if (OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nSelectTrigger.displayName = TRIGGER_NAME;\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, children, placeholder = \"\", ...valueProps } = props;\n const context = useSelectContext(VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n useLayoutEffect(() => {\n onValueNodeHasChildrenChange(hasChildren);\n }, [onValueNodeHasChildrenChange, hasChildren]);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...valueProps,\n ref: composedRefs,\n style: { pointerEvents: \"none\" },\n children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ jsx(Fragment, { children: placeholder }) : children\n }\n );\n }\n);\nSelectValue.displayName = VALUE_NAME;\nvar ICON_NAME = \"SelectIcon\";\nvar SelectIcon = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...iconProps, ref: forwardedRef, children: children || \"\\u25BC\" });\n }\n);\nSelectIcon.displayName = ICON_NAME;\nvar PORTAL_NAME = \"SelectPortal\";\nvar SelectPortal = (props) => {\n return /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, ...props });\n};\nSelectPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = React.forwardRef(\n (props, forwardedRef) => {\n const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = React.useState();\n useLayoutEffect(() => {\n setFragment(new DocumentFragment());\n }, []);\n if (!context.open) {\n const frag = fragment;\n return frag ? ReactDOM.createPortal(\n /* @__PURE__ */ jsx(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(\"div\", { children: props.children }) }) }),\n frag\n ) : null;\n }\n return /* @__PURE__ */ jsx(SelectContentImpl, { ...props, ref: forwardedRef });\n }\n);\nSelectContent.displayName = CONTENT_NAME;\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar CONTENT_IMPL_NAME = \"SelectContentImpl\";\nvar Slot = createSlot(\"SelectContent.RemoveScroll\");\nvar SelectContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n position = \"item-aligned\",\n onCloseAutoFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n //\n // PopperContent props\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions,\n //\n ...contentProps\n } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const [content, setContent] = React.useState(null);\n const [viewport, setViewport] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [selectedItem, setSelectedItem] = React.useState(null);\n const [selectedItemText, setSelectedItemText] = React.useState(\n null\n );\n const getItems = useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = React.useState(false);\n const firstValidItemFoundRef = React.useRef(false);\n React.useEffect(() => {\n if (content) return hideOthers(content);\n }, [content]);\n useFocusGuards();\n const focusFirst = React.useCallback(\n (candidates) => {\n const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);\n const [lastItem] = restItems.slice(-1);\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate?.scrollIntoView({ block: \"nearest\" });\n if (candidate === firstItem && viewport) viewport.scrollTop = 0;\n if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;\n candidate?.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n },\n [getItems, viewport]\n );\n const focusSelectedItem = React.useCallback(\n () => focusFirst([selectedItem, content]),\n [focusFirst, selectedItem, content]\n );\n React.useEffect(() => {\n if (isPositioned) {\n focusSelectedItem();\n }\n }, [isPositioned, focusSelectedItem]);\n const { onOpenChange, triggerPointerDownPosRef } = context;\n React.useEffect(() => {\n if (content) {\n let pointerMoveDelta = { x: 0, y: 0 };\n const handlePointerMove = (event) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.current?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.current?.y ?? 0))\n };\n };\n const handlePointerUp = (event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!content.contains(event.target)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, { capture: true, once: true });\n }\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, { capture: true });\n };\n }\n }, [content, onOpenChange, triggerPointerDownPosRef]);\n React.useEffect(() => {\n const close = () => onOpenChange(false);\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return () => {\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n };\n }, [onOpenChange]);\n const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.ref.current === document.activeElement);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem) {\n setTimeout(() => nextItem.ref.current.focus());\n }\n });\n const itemRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n },\n [context.value]\n );\n const handleItemLeave = React.useCallback(() => content?.focus(), [content]);\n const itemTextRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItemText(node);\n }\n },\n [context.value]\n );\n const SelectPosition = position === \"popper\" ? SelectPopperPosition : SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return /* @__PURE__ */ jsx(\n SelectContentProvider,\n {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef,\n children: /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event) => {\n event.preventDefault();\n },\n onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, (event) => {\n context.trigger?.focus({ preventScroll: true });\n event.preventDefault();\n }),\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n SelectPosition,\n {\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event) => event.preventDefault(),\n ...contentProps,\n ...popperContentProps,\n onPlaced: () => setIsPositioned(true),\n ref: composedRefs,\n style: {\n // flex layout so we can place the scroll buttons properly\n display: \"flex\",\n flexDirection: \"column\",\n // reset the outline by default as the content MAY get focused\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if ([\"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const items = getItems().filter((item) => !item.disabled);\n let candidateNodes = items.map((item) => item.ref.current);\n if ([\"ArrowUp\", \"End\"].includes(event.key)) {\n candidateNodes = candidateNodes.slice().reverse();\n }\n if ([\"ArrowUp\", \"ArrowDown\"].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n event.preventDefault();\n }\n })\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nSelectContentImpl.displayName = CONTENT_IMPL_NAME;\nvar ITEM_ALIGNED_POSITION_NAME = \"SelectItemAlignedPosition\";\nvar SelectItemAlignedPosition = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onPlaced, ...popperProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const getItems = useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = React.useRef(false);\n const shouldRepositionRef = React.useRef(true);\n const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;\n const position = React.useCallback(() => {\n if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {\n const triggerRect = context.trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n if (context.dir !== \"rtl\") {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedLeft = clamp(left, [\n CONTENT_MARGIN,\n // Prevents the content from going off the starting edge of the\n // viewport. It may still go off the ending edge, but this can be\n // controlled by the user since they may want to manage overflow in a\n // specific way.\n // https://github.com/radix-ui/primitives/issues/2049\n Math.max(CONTENT_MARGIN, rightEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.left = clampedLeft + \"px\";\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedRight = clamp(right, [\n CONTENT_MARGIN,\n Math.max(CONTENT_MARGIN, leftEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.right = clampedRight + \"px\";\n }\n const items = getItems();\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n const selectedItemHalfHeight = selectedItem.offsetHeight / 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n if (willAlignWithoutTopOverflow) {\n const isLastItem = items.length > 0 && selectedItem === items[items.length - 1].ref.current;\n contentWrapper.style.bottom = \"0px\";\n const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(\n triggerMiddleToBottomEdge,\n selectedItemHalfHeight + // viewport might have padding bottom, include it to avoid a scrollable viewport\n (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth\n );\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + \"px\";\n } else {\n const isFirstItem = items.length > 0 && selectedItem === items[0].ref.current;\n contentWrapper.style.top = \"0px\";\n const clampedTopEdgeToTriggerMiddle = Math.max(\n topEdgeToTriggerMiddle,\n contentBorderTopWidth + viewport.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport\n (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight\n );\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + \"px\";\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n contentWrapper.style.margin = `${CONTENT_MARGIN}px 0`;\n contentWrapper.style.minHeight = minContentHeight + \"px\";\n contentWrapper.style.maxHeight = availableHeight + \"px\";\n onPlaced?.();\n requestAnimationFrame(() => shouldExpandOnScrollRef.current = true);\n }\n }, [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced\n ]);\n useLayoutEffect(() => position(), [position]);\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n const handleScrollButtonChange = React.useCallback(\n (node) => {\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem?.();\n shouldRepositionRef.current = false;\n }\n },\n [position, focusSelectedItem]\n );\n return /* @__PURE__ */ jsx(\n SelectViewportProvider,\n {\n scope: __scopeSelect,\n contentWrapper,\n shouldExpandOnScrollRef,\n onScrollButtonChange: handleScrollButtonChange,\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: setContentWrapper,\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"fixed\",\n zIndex: contentZIndex\n },\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...popperProps,\n ref: composedRefs,\n style: {\n // When we get the height of the content, it includes borders. If we were to set\n // the height without having `boxSizing: 'border-box'` it would be too big.\n boxSizing: \"border-box\",\n // We need to ensure the content doesn't get taller than the wrapper\n maxHeight: \"100%\",\n ...popperProps.style\n }\n }\n )\n }\n )\n }\n );\n});\nSelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;\nvar POPPER_POSITION_NAME = \"SelectPopperPosition\";\nvar SelectPopperPosition = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeSelect,\n align = \"start\",\n collisionPadding = CONTENT_MARGIN,\n ...popperProps\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n return /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n ...popperScope,\n ...popperProps,\n ref: forwardedRef,\n align,\n collisionPadding,\n style: {\n // Ensure border-box for floating-ui calculations\n boxSizing: \"border-box\",\n ...popperProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nSelectPopperPosition.displayName = POPPER_POSITION_NAME;\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, nonce, ...viewportProps } = props;\n const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);\n const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);\n const composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = React.useRef(0);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-select-viewport\": \"\",\n role: \"presentation\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: \"relative\",\n flex: 1,\n // Viewport should only be scrollable in the vertical direction.\n // This won't work in vertical writing modes, so we'll need to\n // revisit this if/when that is supported\n // https://developer.chrome.com/blog/vertical-form-controls\n overflow: \"hidden auto\",\n ...viewportProps.style\n },\n onScroll: composeEventHandlers(viewportProps.onScroll, (event) => {\n const viewport = event.currentTarget;\n const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;\n if (shouldExpandOnScrollRef?.current && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n contentWrapper.style.height = clampedNextHeight + \"px\";\n if (contentWrapper.style.bottom === \"0px\") {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;\n contentWrapper.style.justifyContent = \"flex-end\";\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })\n }\n ) })\n ] });\n }\n);\nSelectViewport.displayName = VIEWPORT_NAME;\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...groupProps } = props;\n const groupId = useId();\n return /* @__PURE__ */ jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", \"aria-labelledby\": groupId, ...groupProps, ref: forwardedRef }) });\n }\n);\nSelectGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...labelProps } = props;\n const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n return /* @__PURE__ */ jsx(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });\n }\n);\nSelectLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n value,\n disabled = false,\n textValue: textValueProp,\n ...itemProps\n } = props;\n const context = useSelectContext(ITEM_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = React.useState(textValueProp ?? \"\");\n const [isFocused, setIsFocused] = React.useState(false);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => contentContext.itemRefCallback?.(node, value, disabled)\n );\n const textId = useId();\n const pointerTypeRef = React.useRef(\"touch\");\n const handleSelect = () => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n if (value === \"\") {\n throw new Error(\n \"A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.\"\n );\n }\n return /* @__PURE__ */ jsx(\n SelectItemContextProvider,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: React.useCallback((node) => {\n setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? \"\").trim());\n }, []),\n children: /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textValue,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1,\n ...itemProps,\n ref: composedRefs,\n onFocus: composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),\n onClick: composeEventHandlers(itemProps.onClick, () => {\n if (pointerTypeRef.current !== \"mouse\") handleSelect();\n }),\n onPointerUp: composeEventHandlers(itemProps.onPointerUp, () => {\n if (pointerTypeRef.current === \"mouse\") handleSelect();\n }),\n onPointerDown: composeEventHandlers(itemProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n }),\n onPointerMove: composeEventHandlers(itemProps.onPointerMove, (event) => {\n pointerTypeRef.current = event.pointerType;\n if (disabled) {\n contentContext.onItemLeave?.();\n } else if (pointerTypeRef.current === \"mouse\") {\n event.currentTarget.focus({ preventScroll: true });\n }\n }),\n onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, (event) => {\n if (event.currentTarget === document.activeElement) {\n contentContext.onItemLeave?.();\n }\n }),\n onKeyDown: composeEventHandlers(itemProps.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef?.current !== \"\";\n if (isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) handleSelect();\n if (event.key === \" \") event.preventDefault();\n })\n }\n )\n }\n )\n }\n );\n }\n);\nSelectItem.displayName = ITEM_NAME;\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, ...itemTextProps } = props;\n const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = React.useState(null);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => setItemTextNode(node),\n itemContext.onItemTextChange,\n (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled)\n );\n const textContent = itemTextNode?.textContent;\n const nativeOption = React.useMemo(\n () => /* @__PURE__ */ jsx(\"option\", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),\n [itemContext.disabled, itemContext.value, textContent]\n );\n const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;\n useLayoutEffect(() => {\n onNativeOptionAdd(nativeOption);\n return () => onNativeOptionRemove(nativeOption);\n }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),\n itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? ReactDOM.createPortal(itemTextProps.children, context.valueNode) : null\n ] });\n }\n);\nSelectItemText.displayName = ITEM_TEXT_NAME;\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...itemIndicatorProps } = props;\n const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...itemIndicatorProps, ref: forwardedRef }) : null;\n }\n);\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp, setCanScrollUp] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const canScrollUp2 = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollUp ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown, setCanScrollDown] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollDown ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nvar SelectScrollButtonImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;\n const contentContext = useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = React.useRef(null);\n const getItems = useCollection(__scopeSelect);\n const clearAutoScrollTimer = React.useCallback(() => {\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n React.useEffect(() => {\n return () => clearAutoScrollTimer();\n }, [clearAutoScrollTimer]);\n useLayoutEffect(() => {\n const activeItem = getItems().find((item) => item.ref.current === document.activeElement);\n activeItem?.ref.current?.scrollIntoView({ block: \"nearest\" });\n }, [getItems]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-hidden\": true,\n ...scrollIndicatorProps,\n ref: forwardedRef,\n style: { flexShrink: 0, ...scrollIndicatorProps.style },\n onPointerDown: composeEventHandlers(scrollIndicatorProps.onPointerDown, () => {\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {\n contentContext.onItemLeave?.();\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {\n clearAutoScrollTimer();\n })\n }\n );\n});\nvar SEPARATOR_NAME = \"SelectSeparator\";\nvar SelectSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { \"aria-hidden\": true, ...separatorProps, ref: forwardedRef });\n }\n);\nSelectSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(ARROW_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return context.open && contentContext.position === \"popper\" ? /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;\n }\n);\nSelectArrow.displayName = ARROW_NAME;\nvar BUBBLE_INPUT_NAME = \"SelectBubbleInput\";\nvar SelectBubbleInput = React.forwardRef(\n ({ __scopeSelect, value, ...props }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const select = ref.current;\n if (!select) return;\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n \"value\"\n );\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"change\", { bubbles: true });\n setValue.call(select, value);\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\n Primitive.select,\n {\n ...props,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style },\n ref: composedRefs,\n defaultValue: value\n }\n );\n }\n);\nSelectBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\nfunction useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = useCallbackRef(onSearchChange);\n const searchRef = React.useRef(\"\");\n const timerRef = React.useRef(0);\n const handleTypeaheadSearch = React.useCallback(\n (key) => {\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n },\n [handleSearchChange]\n );\n const resetTypeahead = React.useCallback(() => {\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }, []);\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n return [searchRef, handleTypeaheadSearch, resetTypeahead];\n}\nfunction findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v) => v !== currentItem);\n const nextItem = wrappedItems.find(\n (item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root2 = Select;\nvar Trigger = SelectTrigger;\nvar Value = SelectValue;\nvar Icon = SelectIcon;\nvar Portal = SelectPortal;\nvar Content2 = SelectContent;\nvar Viewport = SelectViewport;\nvar Group = SelectGroup;\nvar Label = SelectLabel;\nvar Item = SelectItem;\nvar ItemText = SelectItemText;\nvar ItemIndicator = SelectItemIndicator;\nvar ScrollUpButton = SelectScrollUpButton;\nvar ScrollDownButton = SelectScrollDownButton;\nvar Separator = SelectSeparator;\nvar Arrow2 = SelectArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Group,\n Icon,\n Item,\n ItemIndicator,\n ItemText,\n Label,\n Portal,\n Root2 as Root,\n ScrollDownButton,\n ScrollUpButton,\n Select,\n SelectArrow,\n SelectContent,\n SelectGroup,\n SelectIcon,\n SelectItem,\n SelectItemIndicator,\n SelectItemText,\n SelectLabel,\n SelectPortal,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n SelectViewport,\n Separator,\n Trigger,\n Value,\n Viewport,\n createSelectScope\n};\n//# sourceMappingURL=index.mjs.map\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport memoizeOne from 'memoize-one';\nimport { createElement, PureComponent } from 'react';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\n\n// Animation frame based implementation of setTimeout.\n// Inspired by Joe Lambert, https://gist.github.com/joelambert/1002116#file-requesttimeout-js\nvar hasNativePerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';\nvar now = hasNativePerformanceNow ? function () {\n return performance.now();\n} : function () {\n return Date.now();\n};\nfunction cancelTimeout(timeoutID) {\n cancelAnimationFrame(timeoutID.id);\n}\nfunction requestTimeout(callback, delay) {\n var start = now();\n\n function tick() {\n if (now() - start >= delay) {\n callback.call(null);\n } else {\n timeoutID.id = requestAnimationFrame(tick);\n }\n }\n\n var timeoutID = {\n id: requestAnimationFrame(tick)\n };\n return timeoutID;\n}\n\nvar size = -1; // This utility copied from \"dom-helpers\" package.\n\nfunction getScrollbarSize(recalculate) {\n if (recalculate === void 0) {\n recalculate = false;\n }\n\n if (size === -1 || recalculate) {\n var div = document.createElement('div');\n var style = div.style;\n style.width = '50px';\n style.height = '50px';\n style.overflow = 'scroll';\n document.body.appendChild(div);\n size = div.offsetWidth - div.clientWidth;\n document.body.removeChild(div);\n }\n\n return size;\n}\nvar cachedRTLResult = null; // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n// Chrome does not seem to adhere; its scrollLeft values are positive (measured relative to the left).\n// Safari's elastic bounce makes detecting this even more complicated wrt potential false positives.\n// The safest way to check this is to intentionally set a negative offset,\n// and then verify that the subsequent \"scroll\" event matches the negative offset.\n// If it does not match, then we can assume a non-standard RTL scroll implementation.\n\nfunction getRTLOffsetType(recalculate) {\n if (recalculate === void 0) {\n recalculate = false;\n }\n\n if (cachedRTLResult === null || recalculate) {\n var outerDiv = document.createElement('div');\n var outerStyle = outerDiv.style;\n outerStyle.width = '50px';\n outerStyle.height = '50px';\n outerStyle.overflow = 'scroll';\n outerStyle.direction = 'rtl';\n var innerDiv = document.createElement('div');\n var innerStyle = innerDiv.style;\n innerStyle.width = '100px';\n innerStyle.height = '100px';\n outerDiv.appendChild(innerDiv);\n document.body.appendChild(outerDiv);\n\n if (outerDiv.scrollLeft > 0) {\n cachedRTLResult = 'positive-descending';\n } else {\n outerDiv.scrollLeft = 1;\n\n if (outerDiv.scrollLeft === 0) {\n cachedRTLResult = 'negative';\n } else {\n cachedRTLResult = 'positive-ascending';\n }\n }\n\n document.body.removeChild(outerDiv);\n return cachedRTLResult;\n }\n\n return cachedRTLResult;\n}\n\nvar IS_SCROLLING_DEBOUNCE_INTERVAL = 150;\n\nvar defaultItemKey = function defaultItemKey(_ref) {\n var columnIndex = _ref.columnIndex,\n data = _ref.data,\n rowIndex = _ref.rowIndex;\n return rowIndex + \":\" + columnIndex;\n}; // In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\n\n\nvar devWarningsOverscanCount = null;\nvar devWarningsOverscanRowsColumnsCount = null;\nvar devWarningsTagName = null;\n\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsOverscanCount = /*#__PURE__*/new WeakSet();\n devWarningsOverscanRowsColumnsCount = /*#__PURE__*/new WeakSet();\n devWarningsTagName = /*#__PURE__*/new WeakSet();\n }\n}\n\nfunction createGridComponent(_ref2) {\n var _class;\n\n var getColumnOffset = _ref2.getColumnOffset,\n getColumnStartIndexForOffset = _ref2.getColumnStartIndexForOffset,\n getColumnStopIndexForStartIndex = _ref2.getColumnStopIndexForStartIndex,\n getColumnWidth = _ref2.getColumnWidth,\n getEstimatedTotalHeight = _ref2.getEstimatedTotalHeight,\n getEstimatedTotalWidth = _ref2.getEstimatedTotalWidth,\n getOffsetForColumnAndAlignment = _ref2.getOffsetForColumnAndAlignment,\n getOffsetForRowAndAlignment = _ref2.getOffsetForRowAndAlignment,\n getRowHeight = _ref2.getRowHeight,\n getRowOffset = _ref2.getRowOffset,\n getRowStartIndexForOffset = _ref2.getRowStartIndexForOffset,\n getRowStopIndexForStartIndex = _ref2.getRowStopIndexForStartIndex,\n initInstanceProps = _ref2.initInstanceProps,\n shouldResetStyleCacheOnItemSizeChange = _ref2.shouldResetStyleCacheOnItemSizeChange,\n validateProps = _ref2.validateProps;\n return _class = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(Grid, _PureComponent);\n\n // Always use explicit constructor for React components.\n // It produces less code after transpilation. (#26)\n // eslint-disable-next-line no-useless-constructor\n function Grid(props) {\n var _this;\n\n _this = _PureComponent.call(this, props) || this;\n _this._instanceProps = initInstanceProps(_this.props, _assertThisInitialized(_this));\n _this._resetIsScrollingTimeoutId = null;\n _this._outerRef = void 0;\n _this.state = {\n instance: _assertThisInitialized(_this),\n isScrolling: false,\n horizontalScrollDirection: 'forward',\n scrollLeft: typeof _this.props.initialScrollLeft === 'number' ? _this.props.initialScrollLeft : 0,\n scrollTop: typeof _this.props.initialScrollTop === 'number' ? _this.props.initialScrollTop : 0,\n scrollUpdateWasRequested: false,\n verticalScrollDirection: 'forward'\n };\n _this._callOnItemsRendered = void 0;\n _this._callOnItemsRendered = memoizeOne(function (overscanColumnStartIndex, overscanColumnStopIndex, overscanRowStartIndex, overscanRowStopIndex, visibleColumnStartIndex, visibleColumnStopIndex, visibleRowStartIndex, visibleRowStopIndex) {\n return _this.props.onItemsRendered({\n overscanColumnStartIndex: overscanColumnStartIndex,\n overscanColumnStopIndex: overscanColumnStopIndex,\n overscanRowStartIndex: overscanRowStartIndex,\n overscanRowStopIndex: overscanRowStopIndex,\n visibleColumnStartIndex: visibleColumnStartIndex,\n visibleColumnStopIndex: visibleColumnStopIndex,\n visibleRowStartIndex: visibleRowStartIndex,\n visibleRowStopIndex: visibleRowStopIndex\n });\n });\n _this._callOnScroll = void 0;\n _this._callOnScroll = memoizeOne(function (scrollLeft, scrollTop, horizontalScrollDirection, verticalScrollDirection, scrollUpdateWasRequested) {\n return _this.props.onScroll({\n horizontalScrollDirection: horizontalScrollDirection,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n verticalScrollDirection: verticalScrollDirection,\n scrollUpdateWasRequested: scrollUpdateWasRequested\n });\n });\n _this._getItemStyle = void 0;\n\n _this._getItemStyle = function (rowIndex, columnIndex) {\n var _this$props = _this.props,\n columnWidth = _this$props.columnWidth,\n direction = _this$props.direction,\n rowHeight = _this$props.rowHeight;\n\n var itemStyleCache = _this._getItemStyleCache(shouldResetStyleCacheOnItemSizeChange && columnWidth, shouldResetStyleCacheOnItemSizeChange && direction, shouldResetStyleCacheOnItemSizeChange && rowHeight);\n\n var key = rowIndex + \":\" + columnIndex;\n var style;\n\n if (itemStyleCache.hasOwnProperty(key)) {\n style = itemStyleCache[key];\n } else {\n var _offset = getColumnOffset(_this.props, columnIndex, _this._instanceProps);\n\n var isRtl = direction === 'rtl';\n itemStyleCache[key] = style = {\n position: 'absolute',\n left: isRtl ? undefined : _offset,\n right: isRtl ? _offset : undefined,\n top: getRowOffset(_this.props, rowIndex, _this._instanceProps),\n height: getRowHeight(_this.props, rowIndex, _this._instanceProps),\n width: getColumnWidth(_this.props, columnIndex, _this._instanceProps)\n };\n }\n\n return style;\n };\n\n _this._getItemStyleCache = void 0;\n _this._getItemStyleCache = memoizeOne(function (_, __, ___) {\n return {};\n });\n\n _this._onScroll = function (event) {\n var _event$currentTarget = event.currentTarget,\n clientHeight = _event$currentTarget.clientHeight,\n clientWidth = _event$currentTarget.clientWidth,\n scrollLeft = _event$currentTarget.scrollLeft,\n scrollTop = _event$currentTarget.scrollTop,\n scrollHeight = _event$currentTarget.scrollHeight,\n scrollWidth = _event$currentTarget.scrollWidth;\n\n _this.setState(function (prevState) {\n if (prevState.scrollLeft === scrollLeft && prevState.scrollTop === scrollTop) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n var direction = _this.props.direction; // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n\n var calculatedScrollLeft = scrollLeft;\n\n if (direction === 'rtl') {\n switch (getRTLOffsetType()) {\n case 'negative':\n calculatedScrollLeft = -scrollLeft;\n break;\n\n case 'positive-descending':\n calculatedScrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n\n\n calculatedScrollLeft = Math.max(0, Math.min(calculatedScrollLeft, scrollWidth - clientWidth));\n var calculatedScrollTop = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight));\n return {\n isScrolling: true,\n horizontalScrollDirection: prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',\n scrollLeft: calculatedScrollLeft,\n scrollTop: calculatedScrollTop,\n verticalScrollDirection: prevState.scrollTop < scrollTop ? 'forward' : 'backward',\n scrollUpdateWasRequested: false\n };\n }, _this._resetIsScrollingDebounced);\n };\n\n _this._outerRefSetter = function (ref) {\n var outerRef = _this.props.outerRef;\n _this._outerRef = ref;\n\n if (typeof outerRef === 'function') {\n outerRef(ref);\n } else if (outerRef != null && typeof outerRef === 'object' && outerRef.hasOwnProperty('current')) {\n outerRef.current = ref;\n }\n };\n\n _this._resetIsScrollingDebounced = function () {\n if (_this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(_this._resetIsScrollingTimeoutId);\n }\n\n _this._resetIsScrollingTimeoutId = requestTimeout(_this._resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL);\n };\n\n _this._resetIsScrolling = function () {\n _this._resetIsScrollingTimeoutId = null;\n\n _this.setState({\n isScrolling: false\n }, function () {\n // Clear style cache after state update has been committed.\n // This way we don't break pure sCU for items that don't use isScrolling param.\n _this._getItemStyleCache(-1);\n });\n };\n\n return _this;\n }\n\n Grid.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n validateSharedProps(nextProps, prevState);\n validateProps(nextProps);\n return null;\n };\n\n var _proto = Grid.prototype;\n\n _proto.scrollTo = function scrollTo(_ref3) {\n var scrollLeft = _ref3.scrollLeft,\n scrollTop = _ref3.scrollTop;\n\n if (scrollLeft !== undefined) {\n scrollLeft = Math.max(0, scrollLeft);\n }\n\n if (scrollTop !== undefined) {\n scrollTop = Math.max(0, scrollTop);\n }\n\n this.setState(function (prevState) {\n if (scrollLeft === undefined) {\n scrollLeft = prevState.scrollLeft;\n }\n\n if (scrollTop === undefined) {\n scrollTop = prevState.scrollTop;\n }\n\n if (prevState.scrollLeft === scrollLeft && prevState.scrollTop === scrollTop) {\n return null;\n }\n\n return {\n horizontalScrollDirection: prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollUpdateWasRequested: true,\n verticalScrollDirection: prevState.scrollTop < scrollTop ? 'forward' : 'backward'\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _proto.scrollToItem = function scrollToItem(_ref4) {\n var _ref4$align = _ref4.align,\n align = _ref4$align === void 0 ? 'auto' : _ref4$align,\n columnIndex = _ref4.columnIndex,\n rowIndex = _ref4.rowIndex;\n var _this$props2 = this.props,\n columnCount = _this$props2.columnCount,\n height = _this$props2.height,\n rowCount = _this$props2.rowCount,\n width = _this$props2.width;\n var _this$state = this.state,\n scrollLeft = _this$state.scrollLeft,\n scrollTop = _this$state.scrollTop;\n var scrollbarSize = getScrollbarSize();\n\n if (columnIndex !== undefined) {\n columnIndex = Math.max(0, Math.min(columnIndex, columnCount - 1));\n }\n\n if (rowIndex !== undefined) {\n rowIndex = Math.max(0, Math.min(rowIndex, rowCount - 1));\n }\n\n var estimatedTotalHeight = getEstimatedTotalHeight(this.props, this._instanceProps);\n var estimatedTotalWidth = getEstimatedTotalWidth(this.props, this._instanceProps); // The scrollbar size should be considered when scrolling an item into view,\n // to ensure it's fully visible.\n // But we only need to account for its size when it's actually visible.\n\n var horizontalScrollbarSize = estimatedTotalWidth > width ? scrollbarSize : 0;\n var verticalScrollbarSize = estimatedTotalHeight > height ? scrollbarSize : 0;\n this.scrollTo({\n scrollLeft: columnIndex !== undefined ? getOffsetForColumnAndAlignment(this.props, columnIndex, align, scrollLeft, this._instanceProps, verticalScrollbarSize) : scrollLeft,\n scrollTop: rowIndex !== undefined ? getOffsetForRowAndAlignment(this.props, rowIndex, align, scrollTop, this._instanceProps, horizontalScrollbarSize) : scrollTop\n });\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this$props3 = this.props,\n initialScrollLeft = _this$props3.initialScrollLeft,\n initialScrollTop = _this$props3.initialScrollTop;\n\n if (this._outerRef != null) {\n var outerRef = this._outerRef;\n\n if (typeof initialScrollLeft === 'number') {\n outerRef.scrollLeft = initialScrollLeft;\n }\n\n if (typeof initialScrollTop === 'number') {\n outerRef.scrollTop = initialScrollTop;\n }\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var direction = this.props.direction;\n var _this$state2 = this.state,\n scrollLeft = _this$state2.scrollLeft,\n scrollTop = _this$state2.scrollTop,\n scrollUpdateWasRequested = _this$state2.scrollUpdateWasRequested;\n\n if (scrollUpdateWasRequested && this._outerRef != null) {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n var outerRef = this._outerRef;\n\n if (direction === 'rtl') {\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollLeft;\n break;\n\n case 'positive-ascending':\n outerRef.scrollLeft = scrollLeft;\n break;\n\n default:\n var clientWidth = outerRef.clientWidth,\n scrollWidth = outerRef.scrollWidth;\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } else {\n outerRef.scrollLeft = Math.max(0, scrollLeft);\n }\n\n outerRef.scrollTop = Math.max(0, scrollTop);\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n };\n\n _proto.render = function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n className = _this$props4.className,\n columnCount = _this$props4.columnCount,\n direction = _this$props4.direction,\n height = _this$props4.height,\n innerRef = _this$props4.innerRef,\n innerElementType = _this$props4.innerElementType,\n innerTagName = _this$props4.innerTagName,\n itemData = _this$props4.itemData,\n _this$props4$itemKey = _this$props4.itemKey,\n itemKey = _this$props4$itemKey === void 0 ? defaultItemKey : _this$props4$itemKey,\n outerElementType = _this$props4.outerElementType,\n outerTagName = _this$props4.outerTagName,\n rowCount = _this$props4.rowCount,\n style = _this$props4.style,\n useIsScrolling = _this$props4.useIsScrolling,\n width = _this$props4.width;\n var isScrolling = this.state.isScrolling;\n\n var _this$_getHorizontalR = this._getHorizontalRangeToRender(),\n columnStartIndex = _this$_getHorizontalR[0],\n columnStopIndex = _this$_getHorizontalR[1];\n\n var _this$_getVerticalRan = this._getVerticalRangeToRender(),\n rowStartIndex = _this$_getVerticalRan[0],\n rowStopIndex = _this$_getVerticalRan[1];\n\n var items = [];\n\n if (columnCount > 0 && rowCount) {\n for (var _rowIndex = rowStartIndex; _rowIndex <= rowStopIndex; _rowIndex++) {\n for (var _columnIndex = columnStartIndex; _columnIndex <= columnStopIndex; _columnIndex++) {\n items.push(createElement(children, {\n columnIndex: _columnIndex,\n data: itemData,\n isScrolling: useIsScrolling ? isScrolling : undefined,\n key: itemKey({\n columnIndex: _columnIndex,\n data: itemData,\n rowIndex: _rowIndex\n }),\n rowIndex: _rowIndex,\n style: this._getItemStyle(_rowIndex, _columnIndex)\n }));\n }\n }\n } // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n\n\n var estimatedTotalHeight = getEstimatedTotalHeight(this.props, this._instanceProps);\n var estimatedTotalWidth = getEstimatedTotalWidth(this.props, this._instanceProps);\n return createElement(outerElementType || outerTagName || 'div', {\n className: className,\n onScroll: this._onScroll,\n ref: this._outerRefSetter,\n style: _extends({\n position: 'relative',\n height: height,\n width: width,\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction: direction\n }, style)\n }, createElement(innerElementType || innerTagName || 'div', {\n children: items,\n ref: innerRef,\n style: {\n height: estimatedTotalHeight,\n pointerEvents: isScrolling ? 'none' : undefined,\n width: estimatedTotalWidth\n }\n }));\n };\n\n _proto._callPropsCallbacks = function _callPropsCallbacks() {\n var _this$props5 = this.props,\n columnCount = _this$props5.columnCount,\n onItemsRendered = _this$props5.onItemsRendered,\n onScroll = _this$props5.onScroll,\n rowCount = _this$props5.rowCount;\n\n if (typeof onItemsRendered === 'function') {\n if (columnCount > 0 && rowCount > 0) {\n var _this$_getHorizontalR2 = this._getHorizontalRangeToRender(),\n _overscanColumnStartIndex = _this$_getHorizontalR2[0],\n _overscanColumnStopIndex = _this$_getHorizontalR2[1],\n _visibleColumnStartIndex = _this$_getHorizontalR2[2],\n _visibleColumnStopIndex = _this$_getHorizontalR2[3];\n\n var _this$_getVerticalRan2 = this._getVerticalRangeToRender(),\n _overscanRowStartIndex = _this$_getVerticalRan2[0],\n _overscanRowStopIndex = _this$_getVerticalRan2[1],\n _visibleRowStartIndex = _this$_getVerticalRan2[2],\n _visibleRowStopIndex = _this$_getVerticalRan2[3];\n\n this._callOnItemsRendered(_overscanColumnStartIndex, _overscanColumnStopIndex, _overscanRowStartIndex, _overscanRowStopIndex, _visibleColumnStartIndex, _visibleColumnStopIndex, _visibleRowStartIndex, _visibleRowStopIndex);\n }\n }\n\n if (typeof onScroll === 'function') {\n var _this$state3 = this.state,\n _horizontalScrollDirection = _this$state3.horizontalScrollDirection,\n _scrollLeft = _this$state3.scrollLeft,\n _scrollTop = _this$state3.scrollTop,\n _scrollUpdateWasRequested = _this$state3.scrollUpdateWasRequested,\n _verticalScrollDirection = _this$state3.verticalScrollDirection;\n\n this._callOnScroll(_scrollLeft, _scrollTop, _horizontalScrollDirection, _verticalScrollDirection, _scrollUpdateWasRequested);\n }\n } // Lazily create and cache item styles while scrolling,\n // So that pure component sCU will prevent re-renders.\n // We maintain this cache, and pass a style prop rather than index,\n // So that List can clear cached styles and force item re-render if necessary.\n ;\n\n _proto._getHorizontalRangeToRender = function _getHorizontalRangeToRender() {\n var _this$props6 = this.props,\n columnCount = _this$props6.columnCount,\n overscanColumnCount = _this$props6.overscanColumnCount,\n overscanColumnsCount = _this$props6.overscanColumnsCount,\n overscanCount = _this$props6.overscanCount,\n rowCount = _this$props6.rowCount;\n var _this$state4 = this.state,\n horizontalScrollDirection = _this$state4.horizontalScrollDirection,\n isScrolling = _this$state4.isScrolling,\n scrollLeft = _this$state4.scrollLeft;\n var overscanCountResolved = overscanColumnCount || overscanColumnsCount || overscanCount || 1;\n\n if (columnCount === 0 || rowCount === 0) {\n return [0, 0, 0, 0];\n }\n\n var startIndex = getColumnStartIndexForOffset(this.props, scrollLeft, this._instanceProps);\n var stopIndex = getColumnStopIndexForStartIndex(this.props, startIndex, scrollLeft, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n\n var overscanBackward = !isScrolling || horizontalScrollDirection === 'backward' ? Math.max(1, overscanCountResolved) : 1;\n var overscanForward = !isScrolling || horizontalScrollDirection === 'forward' ? Math.max(1, overscanCountResolved) : 1;\n return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(columnCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];\n };\n\n _proto._getVerticalRangeToRender = function _getVerticalRangeToRender() {\n var _this$props7 = this.props,\n columnCount = _this$props7.columnCount,\n overscanCount = _this$props7.overscanCount,\n overscanRowCount = _this$props7.overscanRowCount,\n overscanRowsCount = _this$props7.overscanRowsCount,\n rowCount = _this$props7.rowCount;\n var _this$state5 = this.state,\n isScrolling = _this$state5.isScrolling,\n verticalScrollDirection = _this$state5.verticalScrollDirection,\n scrollTop = _this$state5.scrollTop;\n var overscanCountResolved = overscanRowCount || overscanRowsCount || overscanCount || 1;\n\n if (columnCount === 0 || rowCount === 0) {\n return [0, 0, 0, 0];\n }\n\n var startIndex = getRowStartIndexForOffset(this.props, scrollTop, this._instanceProps);\n var stopIndex = getRowStopIndexForStartIndex(this.props, startIndex, scrollTop, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n\n var overscanBackward = !isScrolling || verticalScrollDirection === 'backward' ? Math.max(1, overscanCountResolved) : 1;\n var overscanForward = !isScrolling || verticalScrollDirection === 'forward' ? Math.max(1, overscanCountResolved) : 1;\n return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(rowCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];\n };\n\n return Grid;\n }(PureComponent), _class.defaultProps = {\n direction: 'ltr',\n itemData: undefined,\n useIsScrolling: false\n }, _class;\n}\n\nvar validateSharedProps = function validateSharedProps(_ref5, _ref6) {\n var children = _ref5.children,\n direction = _ref5.direction,\n height = _ref5.height,\n innerTagName = _ref5.innerTagName,\n outerTagName = _ref5.outerTagName,\n overscanColumnsCount = _ref5.overscanColumnsCount,\n overscanCount = _ref5.overscanCount,\n overscanRowsCount = _ref5.overscanRowsCount,\n width = _ref5.width;\n var instance = _ref6.instance;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof overscanCount === 'number') {\n if (devWarningsOverscanCount && !devWarningsOverscanCount.has(instance)) {\n devWarningsOverscanCount.add(instance);\n console.warn('The overscanCount prop has been deprecated. ' + 'Please use the overscanColumnCount and overscanRowCount props instead.');\n }\n }\n\n if (typeof overscanColumnsCount === 'number' || typeof overscanRowsCount === 'number') {\n if (devWarningsOverscanRowsColumnsCount && !devWarningsOverscanRowsColumnsCount.has(instance)) {\n devWarningsOverscanRowsColumnsCount.add(instance);\n console.warn('The overscanColumnsCount and overscanRowsCount props have been deprecated. ' + 'Please use the overscanColumnCount and overscanRowCount props instead.');\n }\n }\n\n if (innerTagName != null || outerTagName != null) {\n if (devWarningsTagName && !devWarningsTagName.has(instance)) {\n devWarningsTagName.add(instance);\n console.warn('The innerTagName and outerTagName props have been deprecated. ' + 'Please use the innerElementType and outerElementType props instead.');\n }\n }\n\n if (children == null) {\n throw Error('An invalid \"children\" prop has been specified. ' + 'Value should be a React component. ' + (\"\\\"\" + (children === null ? 'null' : typeof children) + \"\\\" was specified.\"));\n }\n\n switch (direction) {\n case 'ltr':\n case 'rtl':\n // Valid values\n break;\n\n default:\n throw Error('An invalid \"direction\" prop has been specified. ' + 'Value should be either \"ltr\" or \"rtl\". ' + (\"\\\"\" + direction + \"\\\" was specified.\"));\n }\n\n if (typeof width !== 'number') {\n throw Error('An invalid \"width\" prop has been specified. ' + 'Grids must specify a number for width. ' + (\"\\\"\" + (width === null ? 'null' : typeof width) + \"\\\" was specified.\"));\n }\n\n if (typeof height !== 'number') {\n throw Error('An invalid \"height\" prop has been specified. ' + 'Grids must specify a number for height. ' + (\"\\\"\" + (height === null ? 'null' : typeof height) + \"\\\" was specified.\"));\n }\n }\n};\n\nvar DEFAULT_ESTIMATED_ITEM_SIZE = 50;\n\nvar getEstimatedTotalHeight = function getEstimatedTotalHeight(_ref, _ref2) {\n var rowCount = _ref.rowCount;\n var rowMetadataMap = _ref2.rowMetadataMap,\n estimatedRowHeight = _ref2.estimatedRowHeight,\n lastMeasuredRowIndex = _ref2.lastMeasuredRowIndex;\n var totalSizeOfMeasuredRows = 0; // Edge case check for when the number of items decreases while a scroll is in progress.\n // https://github.com/bvaughn/react-window/pull/138\n\n if (lastMeasuredRowIndex >= rowCount) {\n lastMeasuredRowIndex = rowCount - 1;\n }\n\n if (lastMeasuredRowIndex >= 0) {\n var itemMetadata = rowMetadataMap[lastMeasuredRowIndex];\n totalSizeOfMeasuredRows = itemMetadata.offset + itemMetadata.size;\n }\n\n var numUnmeasuredItems = rowCount - lastMeasuredRowIndex - 1;\n var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedRowHeight;\n return totalSizeOfMeasuredRows + totalSizeOfUnmeasuredItems;\n};\n\nvar getEstimatedTotalWidth = function getEstimatedTotalWidth(_ref3, _ref4) {\n var columnCount = _ref3.columnCount;\n var columnMetadataMap = _ref4.columnMetadataMap,\n estimatedColumnWidth = _ref4.estimatedColumnWidth,\n lastMeasuredColumnIndex = _ref4.lastMeasuredColumnIndex;\n var totalSizeOfMeasuredRows = 0; // Edge case check for when the number of items decreases while a scroll is in progress.\n // https://github.com/bvaughn/react-window/pull/138\n\n if (lastMeasuredColumnIndex >= columnCount) {\n lastMeasuredColumnIndex = columnCount - 1;\n }\n\n if (lastMeasuredColumnIndex >= 0) {\n var itemMetadata = columnMetadataMap[lastMeasuredColumnIndex];\n totalSizeOfMeasuredRows = itemMetadata.offset + itemMetadata.size;\n }\n\n var numUnmeasuredItems = columnCount - lastMeasuredColumnIndex - 1;\n var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedColumnWidth;\n return totalSizeOfMeasuredRows + totalSizeOfUnmeasuredItems;\n};\n\nvar getItemMetadata = function getItemMetadata(itemType, props, index, instanceProps) {\n var itemMetadataMap, itemSize, lastMeasuredIndex;\n\n if (itemType === 'column') {\n itemMetadataMap = instanceProps.columnMetadataMap;\n itemSize = props.columnWidth;\n lastMeasuredIndex = instanceProps.lastMeasuredColumnIndex;\n } else {\n itemMetadataMap = instanceProps.rowMetadataMap;\n itemSize = props.rowHeight;\n lastMeasuredIndex = instanceProps.lastMeasuredRowIndex;\n }\n\n if (index > lastMeasuredIndex) {\n var offset = 0;\n\n if (lastMeasuredIndex >= 0) {\n var itemMetadata = itemMetadataMap[lastMeasuredIndex];\n offset = itemMetadata.offset + itemMetadata.size;\n }\n\n for (var i = lastMeasuredIndex + 1; i <= index; i++) {\n var size = itemSize(i);\n itemMetadataMap[i] = {\n offset: offset,\n size: size\n };\n offset += size;\n }\n\n if (itemType === 'column') {\n instanceProps.lastMeasuredColumnIndex = index;\n } else {\n instanceProps.lastMeasuredRowIndex = index;\n }\n }\n\n return itemMetadataMap[index];\n};\n\nvar findNearestItem = function findNearestItem(itemType, props, instanceProps, offset) {\n var itemMetadataMap, lastMeasuredIndex;\n\n if (itemType === 'column') {\n itemMetadataMap = instanceProps.columnMetadataMap;\n lastMeasuredIndex = instanceProps.lastMeasuredColumnIndex;\n } else {\n itemMetadataMap = instanceProps.rowMetadataMap;\n lastMeasuredIndex = instanceProps.lastMeasuredRowIndex;\n }\n\n var lastMeasuredItemOffset = lastMeasuredIndex > 0 ? itemMetadataMap[lastMeasuredIndex].offset : 0;\n\n if (lastMeasuredItemOffset >= offset) {\n // If we've already measured items within this range just use a binary search as it's faster.\n return findNearestItemBinarySearch(itemType, props, instanceProps, lastMeasuredIndex, 0, offset);\n } else {\n // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.\n // The exponential search avoids pre-computing sizes for the full set of items as a binary search would.\n // The overall complexity for this approach is O(log n).\n return findNearestItemExponentialSearch(itemType, props, instanceProps, Math.max(0, lastMeasuredIndex), offset);\n }\n};\n\nvar findNearestItemBinarySearch = function findNearestItemBinarySearch(itemType, props, instanceProps, high, low, offset) {\n while (low <= high) {\n var middle = low + Math.floor((high - low) / 2);\n var currentOffset = getItemMetadata(itemType, props, middle, instanceProps).offset;\n\n if (currentOffset === offset) {\n return middle;\n } else if (currentOffset < offset) {\n low = middle + 1;\n } else if (currentOffset > offset) {\n high = middle - 1;\n }\n }\n\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\n\nvar findNearestItemExponentialSearch = function findNearestItemExponentialSearch(itemType, props, instanceProps, index, offset) {\n var itemCount = itemType === 'column' ? props.columnCount : props.rowCount;\n var interval = 1;\n\n while (index < itemCount && getItemMetadata(itemType, props, index, instanceProps).offset < offset) {\n index += interval;\n interval *= 2;\n }\n\n return findNearestItemBinarySearch(itemType, props, instanceProps, Math.min(index, itemCount - 1), Math.floor(index / 2), offset);\n};\n\nvar getOffsetForIndexAndAlignment = function getOffsetForIndexAndAlignment(itemType, props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n var size = itemType === 'column' ? props.width : props.height;\n var itemMetadata = getItemMetadata(itemType, props, index, instanceProps); // Get estimated total size after ItemMetadata is computed,\n // To ensure it reflects actual measurements instead of just estimates.\n\n var estimatedTotalSize = itemType === 'column' ? getEstimatedTotalWidth(props, instanceProps) : getEstimatedTotalHeight(props, instanceProps);\n var maxOffset = Math.max(0, Math.min(estimatedTotalSize - size, itemMetadata.offset));\n var minOffset = Math.max(0, itemMetadata.offset - size + scrollbarSize + itemMetadata.size);\n\n if (align === 'smart') {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n return Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (minOffset > maxOffset) {\n // Because we only take into account the scrollbar size when calculating minOffset\n // this value can be larger than maxOffset when at the end of the list\n return minOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n};\n\nvar VariableSizeGrid = /*#__PURE__*/createGridComponent({\n getColumnOffset: function getColumnOffset(props, index, instanceProps) {\n return getItemMetadata('column', props, index, instanceProps).offset;\n },\n getColumnStartIndexForOffset: function getColumnStartIndexForOffset(props, scrollLeft, instanceProps) {\n return findNearestItem('column', props, instanceProps, scrollLeft);\n },\n getColumnStopIndexForStartIndex: function getColumnStopIndexForStartIndex(props, startIndex, scrollLeft, instanceProps) {\n var columnCount = props.columnCount,\n width = props.width;\n var itemMetadata = getItemMetadata('column', props, startIndex, instanceProps);\n var maxOffset = scrollLeft + width;\n var offset = itemMetadata.offset + itemMetadata.size;\n var stopIndex = startIndex;\n\n while (stopIndex < columnCount - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemMetadata('column', props, stopIndex, instanceProps).size;\n }\n\n return stopIndex;\n },\n getColumnWidth: function getColumnWidth(props, index, instanceProps) {\n return instanceProps.columnMetadataMap[index].size;\n },\n getEstimatedTotalHeight: getEstimatedTotalHeight,\n getEstimatedTotalWidth: getEstimatedTotalWidth,\n getOffsetForColumnAndAlignment: function getOffsetForColumnAndAlignment(props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n return getOffsetForIndexAndAlignment('column', props, index, align, scrollOffset, instanceProps, scrollbarSize);\n },\n getOffsetForRowAndAlignment: function getOffsetForRowAndAlignment(props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n return getOffsetForIndexAndAlignment('row', props, index, align, scrollOffset, instanceProps, scrollbarSize);\n },\n getRowOffset: function getRowOffset(props, index, instanceProps) {\n return getItemMetadata('row', props, index, instanceProps).offset;\n },\n getRowHeight: function getRowHeight(props, index, instanceProps) {\n return instanceProps.rowMetadataMap[index].size;\n },\n getRowStartIndexForOffset: function getRowStartIndexForOffset(props, scrollTop, instanceProps) {\n return findNearestItem('row', props, instanceProps, scrollTop);\n },\n getRowStopIndexForStartIndex: function getRowStopIndexForStartIndex(props, startIndex, scrollTop, instanceProps) {\n var rowCount = props.rowCount,\n height = props.height;\n var itemMetadata = getItemMetadata('row', props, startIndex, instanceProps);\n var maxOffset = scrollTop + height;\n var offset = itemMetadata.offset + itemMetadata.size;\n var stopIndex = startIndex;\n\n while (stopIndex < rowCount - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemMetadata('row', props, stopIndex, instanceProps).size;\n }\n\n return stopIndex;\n },\n initInstanceProps: function initInstanceProps(props, instance) {\n var _ref5 = props,\n estimatedColumnWidth = _ref5.estimatedColumnWidth,\n estimatedRowHeight = _ref5.estimatedRowHeight;\n var instanceProps = {\n columnMetadataMap: {},\n estimatedColumnWidth: estimatedColumnWidth || DEFAULT_ESTIMATED_ITEM_SIZE,\n estimatedRowHeight: estimatedRowHeight || DEFAULT_ESTIMATED_ITEM_SIZE,\n lastMeasuredColumnIndex: -1,\n lastMeasuredRowIndex: -1,\n rowMetadataMap: {}\n };\n\n instance.resetAfterColumnIndex = function (columnIndex, shouldForceUpdate) {\n if (shouldForceUpdate === void 0) {\n shouldForceUpdate = true;\n }\n\n instance.resetAfterIndices({\n columnIndex: columnIndex,\n shouldForceUpdate: shouldForceUpdate\n });\n };\n\n instance.resetAfterRowIndex = function (rowIndex, shouldForceUpdate) {\n if (shouldForceUpdate === void 0) {\n shouldForceUpdate = true;\n }\n\n instance.resetAfterIndices({\n rowIndex: rowIndex,\n shouldForceUpdate: shouldForceUpdate\n });\n };\n\n instance.resetAfterIndices = function (_ref6) {\n var columnIndex = _ref6.columnIndex,\n rowIndex = _ref6.rowIndex,\n _ref6$shouldForceUpda = _ref6.shouldForceUpdate,\n shouldForceUpdate = _ref6$shouldForceUpda === void 0 ? true : _ref6$shouldForceUpda;\n\n if (typeof columnIndex === 'number') {\n instanceProps.lastMeasuredColumnIndex = Math.min(instanceProps.lastMeasuredColumnIndex, columnIndex - 1);\n }\n\n if (typeof rowIndex === 'number') {\n instanceProps.lastMeasuredRowIndex = Math.min(instanceProps.lastMeasuredRowIndex, rowIndex - 1);\n } // We could potentially optimize further by only evicting styles after this index,\n // But since styles are only cached while scrolling is in progress-\n // It seems an unnecessary optimization.\n // It's unlikely that resetAfterIndex() will be called while a user is scrolling.\n\n\n instance._getItemStyleCache(-1);\n\n if (shouldForceUpdate) {\n instance.forceUpdate();\n }\n };\n\n return instanceProps;\n },\n shouldResetStyleCacheOnItemSizeChange: false,\n validateProps: function validateProps(_ref7) {\n var columnWidth = _ref7.columnWidth,\n rowHeight = _ref7.rowHeight;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof columnWidth !== 'function') {\n throw Error('An invalid \"columnWidth\" prop has been specified. ' + 'Value should be a function. ' + (\"\\\"\" + (columnWidth === null ? 'null' : typeof columnWidth) + \"\\\" was specified.\"));\n } else if (typeof rowHeight !== 'function') {\n throw Error('An invalid \"rowHeight\" prop has been specified. ' + 'Value should be a function. ' + (\"\\\"\" + (rowHeight === null ? 'null' : typeof rowHeight) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\nvar IS_SCROLLING_DEBOUNCE_INTERVAL$1 = 150;\n\nvar defaultItemKey$1 = function defaultItemKey(index, data) {\n return index;\n}; // In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\n\n\nvar devWarningsDirection = null;\nvar devWarningsTagName$1 = null;\n\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsDirection = /*#__PURE__*/new WeakSet();\n devWarningsTagName$1 = /*#__PURE__*/new WeakSet();\n }\n}\n\nfunction createListComponent(_ref) {\n var _class;\n\n var getItemOffset = _ref.getItemOffset,\n getEstimatedTotalSize = _ref.getEstimatedTotalSize,\n getItemSize = _ref.getItemSize,\n getOffsetForIndexAndAlignment = _ref.getOffsetForIndexAndAlignment,\n getStartIndexForOffset = _ref.getStartIndexForOffset,\n getStopIndexForStartIndex = _ref.getStopIndexForStartIndex,\n initInstanceProps = _ref.initInstanceProps,\n shouldResetStyleCacheOnItemSizeChange = _ref.shouldResetStyleCacheOnItemSizeChange,\n validateProps = _ref.validateProps;\n return _class = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(List, _PureComponent);\n\n // Always use explicit constructor for React components.\n // It produces less code after transpilation. (#26)\n // eslint-disable-next-line no-useless-constructor\n function List(props) {\n var _this;\n\n _this = _PureComponent.call(this, props) || this;\n _this._instanceProps = initInstanceProps(_this.props, _assertThisInitialized(_this));\n _this._outerRef = void 0;\n _this._resetIsScrollingTimeoutId = null;\n _this.state = {\n instance: _assertThisInitialized(_this),\n isScrolling: false,\n scrollDirection: 'forward',\n scrollOffset: typeof _this.props.initialScrollOffset === 'number' ? _this.props.initialScrollOffset : 0,\n scrollUpdateWasRequested: false\n };\n _this._callOnItemsRendered = void 0;\n _this._callOnItemsRendered = memoizeOne(function (overscanStartIndex, overscanStopIndex, visibleStartIndex, visibleStopIndex) {\n return _this.props.onItemsRendered({\n overscanStartIndex: overscanStartIndex,\n overscanStopIndex: overscanStopIndex,\n visibleStartIndex: visibleStartIndex,\n visibleStopIndex: visibleStopIndex\n });\n });\n _this._callOnScroll = void 0;\n _this._callOnScroll = memoizeOne(function (scrollDirection, scrollOffset, scrollUpdateWasRequested) {\n return _this.props.onScroll({\n scrollDirection: scrollDirection,\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: scrollUpdateWasRequested\n });\n });\n _this._getItemStyle = void 0;\n\n _this._getItemStyle = function (index) {\n var _this$props = _this.props,\n direction = _this$props.direction,\n itemSize = _this$props.itemSize,\n layout = _this$props.layout;\n\n var itemStyleCache = _this._getItemStyleCache(shouldResetStyleCacheOnItemSizeChange && itemSize, shouldResetStyleCacheOnItemSizeChange && layout, shouldResetStyleCacheOnItemSizeChange && direction);\n\n var style;\n\n if (itemStyleCache.hasOwnProperty(index)) {\n style = itemStyleCache[index];\n } else {\n var _offset = getItemOffset(_this.props, index, _this._instanceProps);\n\n var size = getItemSize(_this.props, index, _this._instanceProps); // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var isRtl = direction === 'rtl';\n var offsetHorizontal = isHorizontal ? _offset : 0;\n itemStyleCache[index] = style = {\n position: 'absolute',\n left: isRtl ? undefined : offsetHorizontal,\n right: isRtl ? offsetHorizontal : undefined,\n top: !isHorizontal ? _offset : 0,\n height: !isHorizontal ? size : '100%',\n width: isHorizontal ? size : '100%'\n };\n }\n\n return style;\n };\n\n _this._getItemStyleCache = void 0;\n _this._getItemStyleCache = memoizeOne(function (_, __, ___) {\n return {};\n });\n\n _this._onScrollHorizontal = function (event) {\n var _event$currentTarget = event.currentTarget,\n clientWidth = _event$currentTarget.clientWidth,\n scrollLeft = _event$currentTarget.scrollLeft,\n scrollWidth = _event$currentTarget.scrollWidth;\n\n _this.setState(function (prevState) {\n if (prevState.scrollOffset === scrollLeft) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n var direction = _this.props.direction;\n var scrollOffset = scrollLeft;\n\n if (direction === 'rtl') {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n switch (getRTLOffsetType()) {\n case 'negative':\n scrollOffset = -scrollLeft;\n break;\n\n case 'positive-descending':\n scrollOffset = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n\n\n scrollOffset = Math.max(0, Math.min(scrollOffset, scrollWidth - clientWidth));\n return {\n isScrolling: true,\n scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: false\n };\n }, _this._resetIsScrollingDebounced);\n };\n\n _this._onScrollVertical = function (event) {\n var _event$currentTarget2 = event.currentTarget,\n clientHeight = _event$currentTarget2.clientHeight,\n scrollHeight = _event$currentTarget2.scrollHeight,\n scrollTop = _event$currentTarget2.scrollTop;\n\n _this.setState(function (prevState) {\n if (prevState.scrollOffset === scrollTop) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n\n\n var scrollOffset = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight));\n return {\n isScrolling: true,\n scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: false\n };\n }, _this._resetIsScrollingDebounced);\n };\n\n _this._outerRefSetter = function (ref) {\n var outerRef = _this.props.outerRef;\n _this._outerRef = ref;\n\n if (typeof outerRef === 'function') {\n outerRef(ref);\n } else if (outerRef != null && typeof outerRef === 'object' && outerRef.hasOwnProperty('current')) {\n outerRef.current = ref;\n }\n };\n\n _this._resetIsScrollingDebounced = function () {\n if (_this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(_this._resetIsScrollingTimeoutId);\n }\n\n _this._resetIsScrollingTimeoutId = requestTimeout(_this._resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL$1);\n };\n\n _this._resetIsScrolling = function () {\n _this._resetIsScrollingTimeoutId = null;\n\n _this.setState({\n isScrolling: false\n }, function () {\n // Clear style cache after state update has been committed.\n // This way we don't break pure sCU for items that don't use isScrolling param.\n _this._getItemStyleCache(-1, null);\n });\n };\n\n return _this;\n }\n\n List.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n validateSharedProps$1(nextProps, prevState);\n validateProps(nextProps);\n return null;\n };\n\n var _proto = List.prototype;\n\n _proto.scrollTo = function scrollTo(scrollOffset) {\n scrollOffset = Math.max(0, scrollOffset);\n this.setState(function (prevState) {\n if (prevState.scrollOffset === scrollOffset) {\n return null;\n }\n\n return {\n scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: true\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _proto.scrollToItem = function scrollToItem(index, align) {\n if (align === void 0) {\n align = 'auto';\n }\n\n var _this$props2 = this.props,\n itemCount = _this$props2.itemCount,\n layout = _this$props2.layout;\n var scrollOffset = this.state.scrollOffset;\n index = Math.max(0, Math.min(index, itemCount - 1)); // The scrollbar size should be considered when scrolling an item into view, to ensure it's fully visible.\n // But we only need to account for its size when it's actually visible.\n // This is an edge case for lists; normally they only scroll in the dominant direction.\n\n var scrollbarSize = 0;\n\n if (this._outerRef) {\n var outerRef = this._outerRef;\n\n if (layout === 'vertical') {\n scrollbarSize = outerRef.scrollWidth > outerRef.clientWidth ? getScrollbarSize() : 0;\n } else {\n scrollbarSize = outerRef.scrollHeight > outerRef.clientHeight ? getScrollbarSize() : 0;\n }\n }\n\n this.scrollTo(getOffsetForIndexAndAlignment(this.props, index, align, scrollOffset, this._instanceProps, scrollbarSize));\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this$props3 = this.props,\n direction = _this$props3.direction,\n initialScrollOffset = _this$props3.initialScrollOffset,\n layout = _this$props3.layout;\n\n if (typeof initialScrollOffset === 'number' && this._outerRef != null) {\n var outerRef = this._outerRef; // TODO Deprecate direction \"horizontal\"\n\n if (direction === 'horizontal' || layout === 'horizontal') {\n outerRef.scrollLeft = initialScrollOffset;\n } else {\n outerRef.scrollTop = initialScrollOffset;\n }\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var _this$props4 = this.props,\n direction = _this$props4.direction,\n layout = _this$props4.layout;\n var _this$state = this.state,\n scrollOffset = _this$state.scrollOffset,\n scrollUpdateWasRequested = _this$state.scrollUpdateWasRequested;\n\n if (scrollUpdateWasRequested && this._outerRef != null) {\n var outerRef = this._outerRef; // TODO Deprecate direction \"horizontal\"\n\n if (direction === 'horizontal' || layout === 'horizontal') {\n if (direction === 'rtl') {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollOffset;\n break;\n\n case 'positive-ascending':\n outerRef.scrollLeft = scrollOffset;\n break;\n\n default:\n var clientWidth = outerRef.clientWidth,\n scrollWidth = outerRef.scrollWidth;\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollOffset;\n break;\n }\n } else {\n outerRef.scrollLeft = scrollOffset;\n }\n } else {\n outerRef.scrollTop = scrollOffset;\n }\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n };\n\n _proto.render = function render() {\n var _this$props5 = this.props,\n children = _this$props5.children,\n className = _this$props5.className,\n direction = _this$props5.direction,\n height = _this$props5.height,\n innerRef = _this$props5.innerRef,\n innerElementType = _this$props5.innerElementType,\n innerTagName = _this$props5.innerTagName,\n itemCount = _this$props5.itemCount,\n itemData = _this$props5.itemData,\n _this$props5$itemKey = _this$props5.itemKey,\n itemKey = _this$props5$itemKey === void 0 ? defaultItemKey$1 : _this$props5$itemKey,\n layout = _this$props5.layout,\n outerElementType = _this$props5.outerElementType,\n outerTagName = _this$props5.outerTagName,\n style = _this$props5.style,\n useIsScrolling = _this$props5.useIsScrolling,\n width = _this$props5.width;\n var isScrolling = this.state.isScrolling; // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var onScroll = isHorizontal ? this._onScrollHorizontal : this._onScrollVertical;\n\n var _this$_getRangeToRend = this._getRangeToRender(),\n startIndex = _this$_getRangeToRend[0],\n stopIndex = _this$_getRangeToRend[1];\n\n var items = [];\n\n if (itemCount > 0) {\n for (var _index = startIndex; _index <= stopIndex; _index++) {\n items.push(createElement(children, {\n data: itemData,\n key: itemKey(_index, itemData),\n index: _index,\n isScrolling: useIsScrolling ? isScrolling : undefined,\n style: this._getItemStyle(_index)\n }));\n }\n } // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n\n\n var estimatedTotalSize = getEstimatedTotalSize(this.props, this._instanceProps);\n return createElement(outerElementType || outerTagName || 'div', {\n className: className,\n onScroll: onScroll,\n ref: this._outerRefSetter,\n style: _extends({\n position: 'relative',\n height: height,\n width: width,\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction: direction\n }, style)\n }, createElement(innerElementType || innerTagName || 'div', {\n children: items,\n ref: innerRef,\n style: {\n height: isHorizontal ? '100%' : estimatedTotalSize,\n pointerEvents: isScrolling ? 'none' : undefined,\n width: isHorizontal ? estimatedTotalSize : '100%'\n }\n }));\n };\n\n _proto._callPropsCallbacks = function _callPropsCallbacks() {\n if (typeof this.props.onItemsRendered === 'function') {\n var itemCount = this.props.itemCount;\n\n if (itemCount > 0) {\n var _this$_getRangeToRend2 = this._getRangeToRender(),\n _overscanStartIndex = _this$_getRangeToRend2[0],\n _overscanStopIndex = _this$_getRangeToRend2[1],\n _visibleStartIndex = _this$_getRangeToRend2[2],\n _visibleStopIndex = _this$_getRangeToRend2[3];\n\n this._callOnItemsRendered(_overscanStartIndex, _overscanStopIndex, _visibleStartIndex, _visibleStopIndex);\n }\n }\n\n if (typeof this.props.onScroll === 'function') {\n var _this$state2 = this.state,\n _scrollDirection = _this$state2.scrollDirection,\n _scrollOffset = _this$state2.scrollOffset,\n _scrollUpdateWasRequested = _this$state2.scrollUpdateWasRequested;\n\n this._callOnScroll(_scrollDirection, _scrollOffset, _scrollUpdateWasRequested);\n }\n } // Lazily create and cache item styles while scrolling,\n // So that pure component sCU will prevent re-renders.\n // We maintain this cache, and pass a style prop rather than index,\n // So that List can clear cached styles and force item re-render if necessary.\n ;\n\n _proto._getRangeToRender = function _getRangeToRender() {\n var _this$props6 = this.props,\n itemCount = _this$props6.itemCount,\n overscanCount = _this$props6.overscanCount;\n var _this$state3 = this.state,\n isScrolling = _this$state3.isScrolling,\n scrollDirection = _this$state3.scrollDirection,\n scrollOffset = _this$state3.scrollOffset;\n\n if (itemCount === 0) {\n return [0, 0, 0, 0];\n }\n\n var startIndex = getStartIndexForOffset(this.props, scrollOffset, this._instanceProps);\n var stopIndex = getStopIndexForStartIndex(this.props, startIndex, scrollOffset, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n\n var overscanBackward = !isScrolling || scrollDirection === 'backward' ? Math.max(1, overscanCount) : 1;\n var overscanForward = !isScrolling || scrollDirection === 'forward' ? Math.max(1, overscanCount) : 1;\n return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(itemCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];\n };\n\n return List;\n }(PureComponent), _class.defaultProps = {\n direction: 'ltr',\n itemData: undefined,\n layout: 'vertical',\n overscanCount: 2,\n useIsScrolling: false\n }, _class;\n} // NOTE: I considered further wrapping individual items with a pure ListItem component.\n// This would avoid ever calling the render function for the same index more than once,\n// But it would also add the overhead of a lot of components/fibers.\n// I assume people already do this (render function returning a class component),\n// So my doing it would just unnecessarily double the wrappers.\n\nvar validateSharedProps$1 = function validateSharedProps(_ref2, _ref3) {\n var children = _ref2.children,\n direction = _ref2.direction,\n height = _ref2.height,\n layout = _ref2.layout,\n innerTagName = _ref2.innerTagName,\n outerTagName = _ref2.outerTagName,\n width = _ref2.width;\n var instance = _ref3.instance;\n\n if (process.env.NODE_ENV !== 'production') {\n if (innerTagName != null || outerTagName != null) {\n if (devWarningsTagName$1 && !devWarningsTagName$1.has(instance)) {\n devWarningsTagName$1.add(instance);\n console.warn('The innerTagName and outerTagName props have been deprecated. ' + 'Please use the innerElementType and outerElementType props instead.');\n }\n } // TODO Deprecate direction \"horizontal\"\n\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n\n switch (direction) {\n case 'horizontal':\n case 'vertical':\n if (devWarningsDirection && !devWarningsDirection.has(instance)) {\n devWarningsDirection.add(instance);\n console.warn('The direction prop should be either \"ltr\" (default) or \"rtl\". ' + 'Please use the layout prop to specify \"vertical\" (default) or \"horizontal\" orientation.');\n }\n\n break;\n\n case 'ltr':\n case 'rtl':\n // Valid values\n break;\n\n default:\n throw Error('An invalid \"direction\" prop has been specified. ' + 'Value should be either \"ltr\" or \"rtl\". ' + (\"\\\"\" + direction + \"\\\" was specified.\"));\n }\n\n switch (layout) {\n case 'horizontal':\n case 'vertical':\n // Valid values\n break;\n\n default:\n throw Error('An invalid \"layout\" prop has been specified. ' + 'Value should be either \"horizontal\" or \"vertical\". ' + (\"\\\"\" + layout + \"\\\" was specified.\"));\n }\n\n if (children == null) {\n throw Error('An invalid \"children\" prop has been specified. ' + 'Value should be a React component. ' + (\"\\\"\" + (children === null ? 'null' : typeof children) + \"\\\" was specified.\"));\n }\n\n if (isHorizontal && typeof width !== 'number') {\n throw Error('An invalid \"width\" prop has been specified. ' + 'Horizontal lists must specify a number for width. ' + (\"\\\"\" + (width === null ? 'null' : typeof width) + \"\\\" was specified.\"));\n } else if (!isHorizontal && typeof height !== 'number') {\n throw Error('An invalid \"height\" prop has been specified. ' + 'Vertical lists must specify a number for height. ' + (\"\\\"\" + (height === null ? 'null' : typeof height) + \"\\\" was specified.\"));\n }\n }\n};\n\nvar DEFAULT_ESTIMATED_ITEM_SIZE$1 = 50;\n\nvar getItemMetadata$1 = function getItemMetadata(props, index, instanceProps) {\n var _ref = props,\n itemSize = _ref.itemSize;\n var itemMetadataMap = instanceProps.itemMetadataMap,\n lastMeasuredIndex = instanceProps.lastMeasuredIndex;\n\n if (index > lastMeasuredIndex) {\n var offset = 0;\n\n if (lastMeasuredIndex >= 0) {\n var itemMetadata = itemMetadataMap[lastMeasuredIndex];\n offset = itemMetadata.offset + itemMetadata.size;\n }\n\n for (var i = lastMeasuredIndex + 1; i <= index; i++) {\n var size = itemSize(i);\n itemMetadataMap[i] = {\n offset: offset,\n size: size\n };\n offset += size;\n }\n\n instanceProps.lastMeasuredIndex = index;\n }\n\n return itemMetadataMap[index];\n};\n\nvar findNearestItem$1 = function findNearestItem(props, instanceProps, offset) {\n var itemMetadataMap = instanceProps.itemMetadataMap,\n lastMeasuredIndex = instanceProps.lastMeasuredIndex;\n var lastMeasuredItemOffset = lastMeasuredIndex > 0 ? itemMetadataMap[lastMeasuredIndex].offset : 0;\n\n if (lastMeasuredItemOffset >= offset) {\n // If we've already measured items within this range just use a binary search as it's faster.\n return findNearestItemBinarySearch$1(props, instanceProps, lastMeasuredIndex, 0, offset);\n } else {\n // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.\n // The exponential search avoids pre-computing sizes for the full set of items as a binary search would.\n // The overall complexity for this approach is O(log n).\n return findNearestItemExponentialSearch$1(props, instanceProps, Math.max(0, lastMeasuredIndex), offset);\n }\n};\n\nvar findNearestItemBinarySearch$1 = function findNearestItemBinarySearch(props, instanceProps, high, low, offset) {\n while (low <= high) {\n var middle = low + Math.floor((high - low) / 2);\n var currentOffset = getItemMetadata$1(props, middle, instanceProps).offset;\n\n if (currentOffset === offset) {\n return middle;\n } else if (currentOffset < offset) {\n low = middle + 1;\n } else if (currentOffset > offset) {\n high = middle - 1;\n }\n }\n\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\n\nvar findNearestItemExponentialSearch$1 = function findNearestItemExponentialSearch(props, instanceProps, index, offset) {\n var itemCount = props.itemCount;\n var interval = 1;\n\n while (index < itemCount && getItemMetadata$1(props, index, instanceProps).offset < offset) {\n index += interval;\n interval *= 2;\n }\n\n return findNearestItemBinarySearch$1(props, instanceProps, Math.min(index, itemCount - 1), Math.floor(index / 2), offset);\n};\n\nvar getEstimatedTotalSize = function getEstimatedTotalSize(_ref2, _ref3) {\n var itemCount = _ref2.itemCount;\n var itemMetadataMap = _ref3.itemMetadataMap,\n estimatedItemSize = _ref3.estimatedItemSize,\n lastMeasuredIndex = _ref3.lastMeasuredIndex;\n var totalSizeOfMeasuredItems = 0; // Edge case check for when the number of items decreases while a scroll is in progress.\n // https://github.com/bvaughn/react-window/pull/138\n\n if (lastMeasuredIndex >= itemCount) {\n lastMeasuredIndex = itemCount - 1;\n }\n\n if (lastMeasuredIndex >= 0) {\n var itemMetadata = itemMetadataMap[lastMeasuredIndex];\n totalSizeOfMeasuredItems = itemMetadata.offset + itemMetadata.size;\n }\n\n var numUnmeasuredItems = itemCount - lastMeasuredIndex - 1;\n var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedItemSize;\n return totalSizeOfMeasuredItems + totalSizeOfUnmeasuredItems;\n};\n\nvar VariableSizeList = /*#__PURE__*/createListComponent({\n getItemOffset: function getItemOffset(props, index, instanceProps) {\n return getItemMetadata$1(props, index, instanceProps).offset;\n },\n getItemSize: function getItemSize(props, index, instanceProps) {\n return instanceProps.itemMetadataMap[index].size;\n },\n getEstimatedTotalSize: getEstimatedTotalSize,\n getOffsetForIndexAndAlignment: function getOffsetForIndexAndAlignment(props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n var direction = props.direction,\n height = props.height,\n layout = props.layout,\n width = props.width; // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var size = isHorizontal ? width : height;\n var itemMetadata = getItemMetadata$1(props, index, instanceProps); // Get estimated total size after ItemMetadata is computed,\n // To ensure it reflects actual measurements instead of just estimates.\n\n var estimatedTotalSize = getEstimatedTotalSize(props, instanceProps);\n var maxOffset = Math.max(0, Math.min(estimatedTotalSize - size, itemMetadata.offset));\n var minOffset = Math.max(0, itemMetadata.offset - size + itemMetadata.size + scrollbarSize);\n\n if (align === 'smart') {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n return Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getStartIndexForOffset: function getStartIndexForOffset(props, offset, instanceProps) {\n return findNearestItem$1(props, instanceProps, offset);\n },\n getStopIndexForStartIndex: function getStopIndexForStartIndex(props, startIndex, scrollOffset, instanceProps) {\n var direction = props.direction,\n height = props.height,\n itemCount = props.itemCount,\n layout = props.layout,\n width = props.width; // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var size = isHorizontal ? width : height;\n var itemMetadata = getItemMetadata$1(props, startIndex, instanceProps);\n var maxOffset = scrollOffset + size;\n var offset = itemMetadata.offset + itemMetadata.size;\n var stopIndex = startIndex;\n\n while (stopIndex < itemCount - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemMetadata$1(props, stopIndex, instanceProps).size;\n }\n\n return stopIndex;\n },\n initInstanceProps: function initInstanceProps(props, instance) {\n var _ref4 = props,\n estimatedItemSize = _ref4.estimatedItemSize;\n var instanceProps = {\n itemMetadataMap: {},\n estimatedItemSize: estimatedItemSize || DEFAULT_ESTIMATED_ITEM_SIZE$1,\n lastMeasuredIndex: -1\n };\n\n instance.resetAfterIndex = function (index, shouldForceUpdate) {\n if (shouldForceUpdate === void 0) {\n shouldForceUpdate = true;\n }\n\n instanceProps.lastMeasuredIndex = Math.min(instanceProps.lastMeasuredIndex, index - 1); // We could potentially optimize further by only evicting styles after this index,\n // But since styles are only cached while scrolling is in progress-\n // It seems an unnecessary optimization.\n // It's unlikely that resetAfterIndex() will be called while a user is scrolling.\n\n instance._getItemStyleCache(-1);\n\n if (shouldForceUpdate) {\n instance.forceUpdate();\n }\n };\n\n return instanceProps;\n },\n shouldResetStyleCacheOnItemSizeChange: false,\n validateProps: function validateProps(_ref5) {\n var itemSize = _ref5.itemSize;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof itemSize !== 'function') {\n throw Error('An invalid \"itemSize\" prop has been specified. ' + 'Value should be a function. ' + (\"\\\"\" + (itemSize === null ? 'null' : typeof itemSize) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\nvar FixedSizeGrid = /*#__PURE__*/createGridComponent({\n getColumnOffset: function getColumnOffset(_ref, index) {\n var columnWidth = _ref.columnWidth;\n return index * columnWidth;\n },\n getColumnWidth: function getColumnWidth(_ref2, index) {\n var columnWidth = _ref2.columnWidth;\n return columnWidth;\n },\n getRowOffset: function getRowOffset(_ref3, index) {\n var rowHeight = _ref3.rowHeight;\n return index * rowHeight;\n },\n getRowHeight: function getRowHeight(_ref4, index) {\n var rowHeight = _ref4.rowHeight;\n return rowHeight;\n },\n getEstimatedTotalHeight: function getEstimatedTotalHeight(_ref5) {\n var rowCount = _ref5.rowCount,\n rowHeight = _ref5.rowHeight;\n return rowHeight * rowCount;\n },\n getEstimatedTotalWidth: function getEstimatedTotalWidth(_ref6) {\n var columnCount = _ref6.columnCount,\n columnWidth = _ref6.columnWidth;\n return columnWidth * columnCount;\n },\n getOffsetForColumnAndAlignment: function getOffsetForColumnAndAlignment(_ref7, columnIndex, align, scrollLeft, instanceProps, scrollbarSize) {\n var columnCount = _ref7.columnCount,\n columnWidth = _ref7.columnWidth,\n width = _ref7.width;\n var lastColumnOffset = Math.max(0, columnCount * columnWidth - width);\n var maxOffset = Math.min(lastColumnOffset, columnIndex * columnWidth);\n var minOffset = Math.max(0, columnIndex * columnWidth - width + scrollbarSize + columnWidth);\n\n if (align === 'smart') {\n if (scrollLeft >= minOffset - width && scrollLeft <= maxOffset + width) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n if (middleOffset < Math.ceil(width / 2)) {\n return 0; // near the beginning\n } else if (middleOffset > lastColumnOffset + Math.floor(width / 2)) {\n return lastColumnOffset; // near the end\n } else {\n return middleOffset;\n }\n\n case 'auto':\n default:\n if (scrollLeft >= minOffset && scrollLeft <= maxOffset) {\n return scrollLeft;\n } else if (minOffset > maxOffset) {\n // Because we only take into account the scrollbar size when calculating minOffset\n // this value can be larger than maxOffset when at the end of the list\n return minOffset;\n } else if (scrollLeft < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getOffsetForRowAndAlignment: function getOffsetForRowAndAlignment(_ref8, rowIndex, align, scrollTop, instanceProps, scrollbarSize) {\n var rowHeight = _ref8.rowHeight,\n height = _ref8.height,\n rowCount = _ref8.rowCount;\n var lastRowOffset = Math.max(0, rowCount * rowHeight - height);\n var maxOffset = Math.min(lastRowOffset, rowIndex * rowHeight);\n var minOffset = Math.max(0, rowIndex * rowHeight - height + scrollbarSize + rowHeight);\n\n if (align === 'smart') {\n if (scrollTop >= minOffset - height && scrollTop <= maxOffset + height) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n if (middleOffset < Math.ceil(height / 2)) {\n return 0; // near the beginning\n } else if (middleOffset > lastRowOffset + Math.floor(height / 2)) {\n return lastRowOffset; // near the end\n } else {\n return middleOffset;\n }\n\n case 'auto':\n default:\n if (scrollTop >= minOffset && scrollTop <= maxOffset) {\n return scrollTop;\n } else if (minOffset > maxOffset) {\n // Because we only take into account the scrollbar size when calculating minOffset\n // this value can be larger than maxOffset when at the end of the list\n return minOffset;\n } else if (scrollTop < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getColumnStartIndexForOffset: function getColumnStartIndexForOffset(_ref9, scrollLeft) {\n var columnWidth = _ref9.columnWidth,\n columnCount = _ref9.columnCount;\n return Math.max(0, Math.min(columnCount - 1, Math.floor(scrollLeft / columnWidth)));\n },\n getColumnStopIndexForStartIndex: function getColumnStopIndexForStartIndex(_ref10, startIndex, scrollLeft) {\n var columnWidth = _ref10.columnWidth,\n columnCount = _ref10.columnCount,\n width = _ref10.width;\n var left = startIndex * columnWidth;\n var numVisibleColumns = Math.ceil((width + scrollLeft - left) / columnWidth);\n return Math.max(0, Math.min(columnCount - 1, startIndex + numVisibleColumns - 1 // -1 is because stop index is inclusive\n ));\n },\n getRowStartIndexForOffset: function getRowStartIndexForOffset(_ref11, scrollTop) {\n var rowHeight = _ref11.rowHeight,\n rowCount = _ref11.rowCount;\n return Math.max(0, Math.min(rowCount - 1, Math.floor(scrollTop / rowHeight)));\n },\n getRowStopIndexForStartIndex: function getRowStopIndexForStartIndex(_ref12, startIndex, scrollTop) {\n var rowHeight = _ref12.rowHeight,\n rowCount = _ref12.rowCount,\n height = _ref12.height;\n var top = startIndex * rowHeight;\n var numVisibleRows = Math.ceil((height + scrollTop - top) / rowHeight);\n return Math.max(0, Math.min(rowCount - 1, startIndex + numVisibleRows - 1 // -1 is because stop index is inclusive\n ));\n },\n initInstanceProps: function initInstanceProps(props) {// Noop\n },\n shouldResetStyleCacheOnItemSizeChange: true,\n validateProps: function validateProps(_ref13) {\n var columnWidth = _ref13.columnWidth,\n rowHeight = _ref13.rowHeight;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof columnWidth !== 'number') {\n throw Error('An invalid \"columnWidth\" prop has been specified. ' + 'Value should be a number. ' + (\"\\\"\" + (columnWidth === null ? 'null' : typeof columnWidth) + \"\\\" was specified.\"));\n }\n\n if (typeof rowHeight !== 'number') {\n throw Error('An invalid \"rowHeight\" prop has been specified. ' + 'Value should be a number. ' + (\"\\\"\" + (rowHeight === null ? 'null' : typeof rowHeight) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\nvar FixedSizeList = /*#__PURE__*/createListComponent({\n getItemOffset: function getItemOffset(_ref, index) {\n var itemSize = _ref.itemSize;\n return index * itemSize;\n },\n getItemSize: function getItemSize(_ref2, index) {\n var itemSize = _ref2.itemSize;\n return itemSize;\n },\n getEstimatedTotalSize: function getEstimatedTotalSize(_ref3) {\n var itemCount = _ref3.itemCount,\n itemSize = _ref3.itemSize;\n return itemSize * itemCount;\n },\n getOffsetForIndexAndAlignment: function getOffsetForIndexAndAlignment(_ref4, index, align, scrollOffset, instanceProps, scrollbarSize) {\n var direction = _ref4.direction,\n height = _ref4.height,\n itemCount = _ref4.itemCount,\n itemSize = _ref4.itemSize,\n layout = _ref4.layout,\n width = _ref4.width;\n // TODO Deprecate direction \"horizontal\"\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var size = isHorizontal ? width : height;\n var lastItemOffset = Math.max(0, itemCount * itemSize - size);\n var maxOffset = Math.min(lastItemOffset, index * itemSize);\n var minOffset = Math.max(0, index * itemSize - size + itemSize + scrollbarSize);\n\n if (align === 'smart') {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n {\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n if (middleOffset < Math.ceil(size / 2)) {\n return 0; // near the beginning\n } else if (middleOffset > lastItemOffset + Math.floor(size / 2)) {\n return lastItemOffset; // near the end\n } else {\n return middleOffset;\n }\n }\n\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getStartIndexForOffset: function getStartIndexForOffset(_ref5, offset) {\n var itemCount = _ref5.itemCount,\n itemSize = _ref5.itemSize;\n return Math.max(0, Math.min(itemCount - 1, Math.floor(offset / itemSize)));\n },\n getStopIndexForStartIndex: function getStopIndexForStartIndex(_ref6, startIndex, scrollOffset) {\n var direction = _ref6.direction,\n height = _ref6.height,\n itemCount = _ref6.itemCount,\n itemSize = _ref6.itemSize,\n layout = _ref6.layout,\n width = _ref6.width;\n // TODO Deprecate direction \"horizontal\"\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var offset = startIndex * itemSize;\n var size = isHorizontal ? width : height;\n var numVisibleItems = Math.ceil((size + scrollOffset - offset) / itemSize);\n return Math.max(0, Math.min(itemCount - 1, startIndex + numVisibleItems - 1 // -1 is because stop index is inclusive\n ));\n },\n initInstanceProps: function initInstanceProps(props) {// Noop\n },\n shouldResetStyleCacheOnItemSizeChange: true,\n validateProps: function validateProps(_ref7) {\n var itemSize = _ref7.itemSize;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof itemSize !== 'number') {\n throw Error('An invalid \"itemSize\" prop has been specified. ' + 'Value should be a number. ' + (\"\\\"\" + (itemSize === null ? 'null' : typeof itemSize) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\n// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(prev, next) {\n for (var attribute in prev) {\n if (!(attribute in next)) {\n return true;\n }\n }\n\n for (var _attribute in next) {\n if (prev[_attribute] !== next[_attribute]) {\n return true;\n }\n }\n\n return false;\n}\n\nvar _excluded = [\"style\"],\n _excluded2 = [\"style\"];\n// It knows to compare individual style props and ignore the wrapper object.\n// See https://reactjs.org/docs/react-api.html#reactmemo\n\nfunction areEqual(prevProps, nextProps) {\n var prevStyle = prevProps.style,\n prevRest = _objectWithoutPropertiesLoose(prevProps, _excluded);\n\n var nextStyle = nextProps.style,\n nextRest = _objectWithoutPropertiesLoose(nextProps, _excluded2);\n\n return !shallowDiffers(prevStyle, nextStyle) && !shallowDiffers(prevRest, nextRest);\n}\n\n// It knows to compare individual style props and ignore the wrapper object.\n// See https://reactjs.org/docs/react-component.html#shouldcomponentupdate\n\nfunction shouldComponentUpdate(nextProps, nextState) {\n return !areEqual(this.props, nextProps) || shallowDiffers(this.state, nextState);\n}\n\nexport { FixedSizeGrid, FixedSizeList, VariableSizeGrid, VariableSizeList, areEqual, shouldComponentUpdate };\n//# sourceMappingURL=index.esm.js.map\n","import * as SelectPrimitive from '@radix-ui/react-select';\nimport { Check, ChevronDown, ChevronUp } from 'lucide-react';\nimport * as React from 'react';\nimport { type CSSProperties, useRef } from 'react';\nimport { FixedSizeList, FixedSizeList as List } from 'react-window';\nimport { cn } from '../../lib';\nimport type { Option } from './react-select';\n\n/**\n * Select primitives built on Radix Select for accessible dropdowns.\n * @example\n * ```tsx\n * <Select>\n * <SelectTrigger className=\"w-[180px]\">\n * <SelectValue placeholder=\"Select a fruit\" />\n * </SelectTrigger>\n * <SelectContent>\n * <SelectGroup>\n * <SelectLabel>Fruits</SelectLabel>\n * <SelectItem value=\"apple\">Apple</SelectItem>\n * <SelectItem value=\"banana\">Banana</SelectItem>\n * <SelectItem value=\"blueberry\">Blueberry</SelectItem>\n * <SelectItem value=\"grapes\">Grapes</SelectItem>\n * <SelectItem value=\"pineapple\">Pineapple</SelectItem>\n * </SelectGroup>\n * </SelectContent>\n * </Select>\n * ```\n */\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\n/**\n * Props for SelectTrigger component.\n */\nexport type SelectTriggerProps = React.ComponentPropsWithoutRef<\n typeof SelectPrimitive.Trigger\n> & {\n variant?: 'default' | 'failure';\n};\n\n/**\n * SelectTrigger - The trigger button for the Select.\n * @returns {JSX.Element} The rendered SelectTrigger component.\n * @example\n * ```tsx\n * <SelectTrigger className=\"w-[180px]\">\n * <SelectValue placeholder=\"Select a fruit\" />\n * </SelectTrigger>\n * ```\n */\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n SelectTriggerProps\n>(({ className, children, variant = 'default', ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n 'border-border-alpha-strong focus:ring-primary data-placeholder:[&>span]:text-body-sm-regular! flex h-10 w-full items-center justify-between rounded-lg border px-3 py-2 focus:ring-2 focus:ring-offset-2 focus:ring-offset-transparent focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1',\n 'focus:ring-offset-bg data-placeholder:[&>span]:text-secondary/70 focus:ring-item-primary focus:ring-2 focus:ring-offset-2',\n variant === 'failure' &&\n 'focus:ring-destructive border-destructive text-destructive! data-placeholder:[&>span]:text-destructive',\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\n/**\n * SelectScrollUpButton - Scrolls the Select viewport up.\n * @returns {JSX.Element} The rendered SelectScrollUpButton component.\n */\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n 'flex cursor-default items-center justify-center py-1',\n className\n )}\n {...props}\n >\n <ChevronUp className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\n/**\n * SelectScrollDownButton - Scrolls the Select viewport down.\n * @returns {JSX.Element} The rendered SelectScrollDownButton component.\n */\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n 'flex cursor-default items-center justify-center py-1',\n className\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\n/**\n * SelectContent - Popup container for Select options.\n * @returns {JSX.Element} The rendered SelectContent component.\n */\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = 'popper', ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n 'p-1',\n position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]'\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\n/**\n * SelectLabel - Label for a group of Select items.\n * @returns {JSX.Element} The rendered SelectLabel component.\n */\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn('py-1.5 pr-2 pl-8 text-sm font-semibold', className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\n/**\n * SelectItem - A single option row within the Select.\n * @returns {JSX.Element} The rendered SelectItem component.\n */\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\n/**\n * SelectSeparator - Visual separator within the list of Select options.\n * @returns {JSX.Element} The rendered SelectSeparator component.\n */\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn('bg-muted -mx-1 my-1 h-px', className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport type VirtualizedSelectContentProps = Omit<\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>,\n 'children'\n> & {\n itemHeight?: number;\n maxHeight?: number;\n options: Option[];\n};\n\n/**\n * VirtualizedSelectContent - A virtualized popup container for Select options, optimized for large lists.\n * Uses `react-window` for efficient rendering.\n * @augments {React.ForwardRefExoticComponent<Omit<React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>, 'children'> & {itemHeight?: number;maxHeight?: number;options: Option[];} & React.RefAttributes<HTMLDivElement>>}\n * @param {object} props - The props for the VirtualizedSelectContent component.\n * @param {string} [props.className] - Additional CSS classes.\n * @param {Option[]} props.options - The array of options to display in the select.\n * @param {'popper' | 'item-aligned'} [props.position='popper'] - The positioning strategy for the content.\n * @param {number} [props.itemHeight=35] - The height of each item in the virtualized list.\n * @param {number} [props.maxHeight=300] - The maximum height of the virtualized list.\n * @returns {JSX.Element} The rendered VirtualizedSelectContent component.\n */\nconst VirtualizedSelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n VirtualizedSelectContentProps\n>(\n (\n {\n className,\n options,\n position = 'popper',\n itemHeight = 35,\n maxHeight = 300,\n ...props\n },\n ref\n ) => {\n const listRef = useRef<FixedSizeList>(null);\n // const [selectedValue, setSelectedValue] = useState(null);\n //\n // useEffect(() => {\n // // Scroll to selected item when content opens\n // if (selectedValue && listRef.current && options) {\n // const index = options.findIndex((opt) => opt.value === selectedValue);\n // if (index !== -1) {\n // listRef.current?.scrollToItem(index, 'center');\n // }\n // }\n // }, [selectedValue, options]);\n\n const Row = ({ index, style }: { index: number; style: CSSProperties }) => {\n const option = options[index];\n return (\n <div style={style}>\n <SelectItem value={`${option.value}`}>{option.label}</SelectItem>\n </div>\n );\n };\n\n return (\n <SelectContent ref={ref} {...props}>\n <List\n ref={listRef}\n height={Math.min(maxHeight, options.length * itemHeight)}\n itemCount={options.length}\n itemSize={itemHeight}\n width=\"100%\"\n >\n {Row}\n </List>\n </SelectContent>\n );\n }\n);\n\nVirtualizedSelectContent.displayName = 'VirtualizedSelectContent';\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n VirtualizedSelectContent,\n};\n"],"names":["__iconNode","ChevronUp","createLucideIcon","usePrevious","value","ref","React","_extends","n","t","_setPrototypeOf","e","_assertThisInitialized","createSlot","ownerName","SlotClone","createSlotClone","Slot2","props","forwardedRef","children","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","jsx","childrenRef","getElementRef","props2","mergeProps","composeRefs","SLOTTABLE_IDENTIFIER","childProps","overrideProps","propName","slotPropValue","childPropValue","args","result","element","getter","_a","mayWarn","_b","OPEN_KEYS","SELECTION_KEYS","SELECT_NAME","Collection","useCollection","createCollectionScope","createCollection","createSelectContext","createContextScope","createPopperScope","usePopperScope","SelectProvider","useSelectContext","SelectNativeOptionsProvider","useSelectNativeOptionsContext","Select","__scopeSelect","openProp","defaultOpen","onOpenChange","valueProp","defaultValue","onValueChange","dir","name","autoComplete","disabled","required","form","popperScope","trigger","setTrigger","valueNode","setValueNode","valueNodeHasChildren","setValueNodeHasChildren","direction","useDirection","open","setOpen","useControllableState","setValue","triggerPointerDownPosRef","isFormControl","nativeOptionsSet","setNativeOptionsSet","nativeSelectKey","option","PopperPrimitive.Root","jsxs","useId","prev","optionsSet","SelectBubbleInput","event","TRIGGER_NAME","SelectTrigger","triggerProps","context","isDisabled","composedRefs","useComposedRefs","getItems","pointerTypeRef","searchRef","handleTypeaheadSearch","resetTypeahead","useTypeaheadSearch","search","enabledItems","item","currentItem","nextItem","findNextItem","handleOpen","pointerEvent","PopperPrimitive.Anchor","Primitive","shouldShowPlaceholder","composeEventHandlers","target","isTypingAhead","VALUE_NAME","SelectValue","className","style","placeholder","valueProps","onValueNodeHasChildrenChange","hasChildren","useLayoutEffect","Fragment","ICON_NAME","SelectIcon","iconProps","PORTAL_NAME","SelectPortal","PortalPrimitive","CONTENT_NAME","SelectContent","fragment","setFragment","frag","ReactDOM","SelectContentProvider","SelectContentImpl","CONTENT_MARGIN","useSelectContentContext","CONTENT_IMPL_NAME","Slot","position","onCloseAutoFocus","onEscapeKeyDown","onPointerDownOutside","side","sideOffset","align","alignOffset","arrowPadding","collisionBoundary","collisionPadding","sticky","hideWhenDetached","avoidCollisions","contentProps","content","setContent","viewport","setViewport","node","selectedItem","setSelectedItem","selectedItemText","setSelectedItemText","isPositioned","setIsPositioned","firstValidItemFoundRef","hideOthers","useFocusGuards","focusFirst","candidates","firstItem","restItems","lastItem","PREVIOUSLY_FOCUSED_ELEMENT","candidate","focusSelectedItem","pointerMoveDelta","handlePointerMove","handlePointerUp","close","itemRefCallback","isFirstValidItem","handleItemLeave","itemTextRefCallback","SelectPosition","SelectPopperPosition","SelectItemAlignedPosition","popperContentProps","RemoveScroll","FocusScope","DismissableLayer","isModifierKey","candidateNodes","currentElement","currentIndex","ITEM_ALIGNED_POSITION_NAME","onPlaced","popperProps","contentContext","contentWrapper","setContentWrapper","shouldExpandOnScrollRef","shouldRepositionRef","triggerRect","contentRect","valueNodeRect","itemTextRect","itemTextOffset","left","leftDelta","minContentWidth","contentWidth","rightEdge","clampedLeft","clamp","right","rightDelta","leftEdge","clampedRight","items","availableHeight","itemsHeight","contentStyles","contentBorderTopWidth","contentPaddingTop","contentBorderBottomWidth","contentPaddingBottom","fullContentHeight","minContentHeight","viewportStyles","viewportPaddingTop","viewportPaddingBottom","topEdgeToTriggerMiddle","triggerMiddleToBottomEdge","selectedItemHalfHeight","itemOffsetMiddle","contentTopToItemMiddle","itemMiddleToContentBottom","isLastItem","viewportOffsetBottom","clampedTriggerMiddleToBottomEdge","height","isFirstItem","contentZIndex","setContentZIndex","handleScrollButtonChange","SelectViewportProvider","POPPER_POSITION_NAME","PopperPrimitive.Content","useSelectViewportContext","VIEWPORT_NAME","SelectViewport","nonce","viewportProps","viewportContext","prevScrollTopRef","scrolledBy","cssMinHeight","cssHeight","prevHeight","nextHeight","clampedNextHeight","heightDiff","GROUP_NAME","SelectGroupContextProvider","useSelectGroupContext","SelectGroup","groupProps","groupId","LABEL_NAME","SelectLabel","labelProps","groupContext","ITEM_NAME","SelectItemContextProvider","useSelectItemContext","SelectItem","textValueProp","itemProps","isSelected","textValue","setTextValue","isFocused","setIsFocused","textId","handleSelect","prevTextValue","ITEM_TEXT_NAME","SelectItemText","itemTextProps","itemContext","nativeOptionsContext","itemTextNode","setItemTextNode","textContent","nativeOption","onNativeOptionAdd","onNativeOptionRemove","ITEM_INDICATOR_NAME","SelectItemIndicator","itemIndicatorProps","SCROLL_UP_BUTTON_NAME","SelectScrollUpButton","canScrollUp","setCanScrollUp","handleScroll2","canScrollUp2","SelectScrollButtonImpl","SCROLL_DOWN_BUTTON_NAME","SelectScrollDownButton","canScrollDown","setCanScrollDown","maxScroll","canScrollDown2","onAutoScroll","scrollIndicatorProps","autoScrollTimerRef","clearAutoScrollTimer","activeItem","SEPARATOR_NAME","SelectSeparator","separatorProps","ARROW_NAME","SelectArrow","arrowProps","PopperPrimitive.Arrow","BUBBLE_INPUT_NAME","prevValue","select","selectProto","VISUALLY_HIDDEN_STYLES","onSearchChange","handleSearchChange","useCallbackRef","timerRef","key","updateSearch","normalizedSearch","char","currentItemIndex","wrappedItems","wrapArray","array","startIndex","_","index","Root2","Trigger","Value","Icon","Portal","Content2","Viewport","Group","Label","Item","ItemText","ItemIndicator","ScrollUpButton","ScrollDownButton","Separator","_inheritsLoose","o","setPrototypeOf","safeIsNaN","isEqual","first","second","areInputsEqual","newInputs","lastInputs","i","memoizeOne","resultFn","lastThis","lastArgs","lastResult","calledOnce","memoized","newArgs","_i","hasNativePerformanceNow","now","cancelTimeout","timeoutID","requestTimeout","callback","delay","start","tick","size","getScrollbarSize","recalculate","div","cachedRTLResult","getRTLOffsetType","outerDiv","outerStyle","innerDiv","innerStyle","IS_SCROLLING_DEBOUNCE_INTERVAL$1","defaultItemKey$1","data","devWarningsDirection","devWarningsTagName$1","createListComponent","_ref","_class","getItemOffset","getEstimatedTotalSize","getItemSize","getOffsetForIndexAndAlignment","getStartIndexForOffset","getStopIndexForStartIndex","initInstanceProps","shouldResetStyleCacheOnItemSizeChange","validateProps","_PureComponent","List","_this","overscanStartIndex","overscanStopIndex","visibleStartIndex","visibleStopIndex","scrollDirection","scrollOffset","scrollUpdateWasRequested","_this$props","itemSize","layout","itemStyleCache","_offset","isHorizontal","isRtl","offsetHorizontal","__","___","_event$currentTarget","clientWidth","scrollLeft","scrollWidth","prevState","_event$currentTarget2","clientHeight","scrollHeight","scrollTop","outerRef","nextProps","validateSharedProps$1","_proto","_this$props2","itemCount","scrollbarSize","_this$props3","initialScrollOffset","_this$props4","_this$state","_this$props5","innerRef","innerElementType","innerTagName","itemData","_this$props5$itemKey","itemKey","outerElementType","outerTagName","useIsScrolling","width","isScrolling","onScroll","_this$_getRangeToRend","stopIndex","_index","createElement","estimatedTotalSize","_this$_getRangeToRend2","_overscanStartIndex","_overscanStopIndex","_visibleStartIndex","_visibleStopIndex","_this$state2","_scrollDirection","_scrollOffset","_scrollUpdateWasRequested","_this$props6","overscanCount","_this$state3","overscanBackward","overscanForward","PureComponent","_ref2","_ref3","instance","FixedSizeList","_ref4","instanceProps","lastItemOffset","maxOffset","minOffset","middleOffset","_ref5","offset","_ref6","numVisibleItems","_ref7","SelectPrimitive.Root","SelectPrimitive.Group","SelectPrimitive.Value","variant","SelectPrimitive.Trigger","cn","SelectPrimitive.Icon","ChevronDown","SelectPrimitive.ScrollUpButton","SelectPrimitive.ScrollDownButton","SelectPrimitive.Portal","SelectPrimitive.Content","SelectPrimitive.Viewport","SelectPrimitive.Label","SelectPrimitive.Item","SelectPrimitive.ItemIndicator","Check","SelectPrimitive.ItemText","SelectPrimitive.Separator","VirtualizedSelectContent","options","itemHeight","maxHeight","listRef","useRef","Row"],"mappings":"+gCAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAMA,GAAa,CAAC,CAAC,OAAQ,CAAE,EAAG,iBAAkB,IAAK,QAAQ,CAAE,CAAC,EAC9DC,GAAYC,GAAAA,iBAAiB,aAAcF,EAAU,ECR3D,SAASG,GAAYC,EAAO,CAC1B,MAAMC,EAAMC,EAAM,OAAO,CAAE,MAAAF,EAAO,SAAUA,EAAO,EACnD,OAAOE,EAAM,QAAQ,KACfD,EAAI,QAAQ,QAAUD,IACxBC,EAAI,QAAQ,SAAWA,EAAI,QAAQ,MACnCA,EAAI,QAAQ,MAAQD,GAEfC,EAAI,QAAQ,UAClB,CAACD,CAAK,CAAC,CACZ,CCXA,SAASG,IAAW,CAClB,OAAOA,GAAW,OAAO,OAAS,OAAO,OAAO,KAAI,EAAK,SAAUC,EAAG,CACpE,QAAS,EAAI,EAAG,EAAI,UAAU,OAAQ,IAAK,CACzC,IAAIC,EAAI,UAAU,CAAC,EACnB,QAAS,KAAKA,GAAI,CAAA,GAAI,eAAe,KAAKA,EAAG,CAAC,IAAMD,EAAE,CAAC,EAAIC,EAAE,CAAC,EAChE,CACA,OAAOD,CACT,EAAGD,GAAS,MAAM,KAAM,SAAS,CACnC,CCRA,SAASG,GAAgB,EAAG,EAAG,CAC7B,OAAOA,GAAkB,OAAO,eAAiB,OAAO,eAAe,KAAI,EAAK,SAAUD,EAAGE,EAAG,CAC9F,OAAOF,EAAE,UAAYE,EAAGF,CAC1B,EAAGC,GAAgB,EAAG,CAAC,CACzB,CCJA,SAASE,GAAuBD,EAAG,CACjC,GAAeA,IAAX,OAAc,MAAM,IAAI,eAAe,2DAA2D,EACtG,OAAOA,CACT,CCEA,SAASE,GAAWC,EAAW,CAC7B,MAAMC,EAA4BC,GAAgBF,CAAS,EACrDG,EAAQX,EAAM,WAAW,CAACY,EAAOC,IAAiB,CACtD,KAAM,CAAE,SAAAC,EAAU,GAAGC,CAAS,EAAKH,EAC7BI,EAAgBhB,EAAM,SAAS,QAAQc,CAAQ,EAC/CG,EAAYD,EAAc,KAAKE,EAAW,EAChD,GAAID,EAAW,CACb,MAAME,EAAaF,EAAU,MAAM,SAC7BG,EAAcJ,EAAc,IAAKK,GACjCA,IAAUJ,EACRjB,EAAM,SAAS,MAAMmB,CAAU,EAAI,EAAUnB,EAAM,SAAS,KAAK,IAAI,EAClEA,EAAM,eAAemB,CAAU,EAAIA,EAAW,MAAM,SAAW,KAE/DE,CAEV,EACD,OAAuBC,EAAAA,IAAIb,EAAW,CAAE,GAAGM,EAAW,IAAKF,EAAc,SAAUb,EAAM,eAAemB,CAAU,EAAInB,EAAM,aAAamB,EAAY,OAAQC,CAAW,EAAI,KAAM,CACpL,CACA,OAAuBE,EAAAA,IAAIb,EAAW,CAAE,GAAGM,EAAW,IAAKF,EAAc,SAAAC,EAAU,CACrF,CAAC,EACD,OAAAH,EAAM,YAAc,GAAGH,CAAS,QACzBG,CACT,CAGA,SAASD,GAAgBF,EAAW,CAClC,MAAMC,EAAYT,EAAM,WAAW,CAACY,EAAOC,IAAiB,CAC1D,KAAM,CAAE,SAAAC,EAAU,GAAGC,CAAS,EAAKH,EACnC,GAAIZ,EAAM,eAAec,CAAQ,EAAG,CAClC,MAAMS,EAAcC,GAAcV,CAAQ,EACpCW,EAASC,GAAWX,EAAWD,EAAS,KAAK,EACnD,OAAIA,EAAS,OAASd,EAAM,WAC1ByB,EAAO,IAAMZ,EAAec,EAAAA,YAAYd,EAAcU,CAAW,EAAIA,GAEhEvB,EAAM,aAAac,EAAUW,CAAM,CAC5C,CACA,OAAOzB,EAAM,SAAS,MAAMc,CAAQ,EAAI,EAAId,EAAM,SAAS,KAAK,IAAI,EAAI,IAC1E,CAAC,EACD,OAAAS,EAAU,YAAc,GAAGD,CAAS,aAC7BC,CACT,CACA,IAAImB,GAAuB,OAAO,iBAAiB,EAWnD,SAASV,GAAYG,EAAO,CAC1B,OAAOrB,EAAM,eAAeqB,CAAK,GAAK,OAAOA,EAAM,MAAS,YAAc,cAAeA,EAAM,MAAQA,EAAM,KAAK,YAAcO,EAClI,CACA,SAASF,GAAWX,EAAWc,EAAY,CACzC,MAAMC,EAAgB,CAAE,GAAGD,CAAU,EACrC,UAAWE,KAAYF,EAAY,CACjC,MAAMG,EAAgBjB,EAAUgB,CAAQ,EAClCE,EAAiBJ,EAAWE,CAAQ,EACxB,WAAW,KAAKA,CAAQ,EAEpCC,GAAiBC,EACnBH,EAAcC,CAAQ,EAAI,IAAIG,IAAS,CACrC,MAAMC,EAASF,EAAe,GAAGC,CAAI,EACrC,OAAAF,EAAc,GAAGE,CAAI,EACdC,CACT,EACSH,IACTF,EAAcC,CAAQ,EAAIC,GAEnBD,IAAa,QACtBD,EAAcC,CAAQ,EAAI,CAAE,GAAGC,EAAe,GAAGC,CAAc,EACtDF,IAAa,cACtBD,EAAcC,CAAQ,EAAI,CAACC,EAAeC,CAAc,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAEtF,CACA,MAAO,CAAE,GAAGlB,EAAW,GAAGe,CAAa,CACzC,CACA,SAASN,GAAcY,EAAS,SAC9B,IAAIC,GAASC,EAAA,OAAO,yBAAyBF,EAAQ,MAAO,KAAK,IAApD,YAAAE,EAAuD,IAChEC,EAAUF,GAAU,mBAAoBA,GAAUA,EAAO,eAC7D,OAAIE,EACKH,EAAQ,KAEjBC,GAASG,EAAA,OAAO,yBAAyBJ,EAAS,KAAK,IAA9C,YAAAI,EAAiD,IAC1DD,EAAUF,GAAU,mBAAoBA,GAAUA,EAAO,eACrDE,EACKH,EAAQ,MAAM,IAEhBA,EAAQ,MAAM,KAAOA,EAAQ,IACtC,CCpEA,IAAIK,GAAY,CAAC,IAAK,QAAS,UAAW,WAAW,EACjDC,GAAiB,CAAC,IAAK,OAAO,EAC9BC,GAAc,SACd,CAACC,GAAYC,GAAeC,EAAqB,EAAIC,GAAAA,iBAAiBJ,EAAW,EACjF,CAACK,EAAsC,EAAIC,EAAAA,mBAAmBN,GAAa,CAC7EG,GACAI,GAAAA,iBACF,CAAC,EACGC,GAAiBD,GAAAA,kBAAiB,EAClC,CAACE,GAAgBC,CAAgB,EAAIL,GAAoBL,EAAW,EACpE,CAACW,GAA6BC,EAA6B,EAAIP,GAAoBL,EAAW,EAC9Fa,GAAU5C,GAAU,CACtB,KAAM,CACJ,cAAA6C,EACA,SAAA3C,EACA,KAAM4C,EACN,YAAAC,EACA,aAAAC,EACA,MAAOC,EACP,aAAAC,EACA,cAAAC,EACA,IAAAC,EACA,KAAAC,EACA,aAAAC,EACA,SAAAC,EACA,SAAAC,EACA,KAAAC,CACJ,EAAMzD,EACE0D,EAAcnB,GAAeM,CAAa,EAC1C,CAACc,EAASC,CAAU,EAAIxE,EAAM,SAAS,IAAI,EAC3C,CAACyE,EAAWC,CAAY,EAAI1E,EAAM,SAAS,IAAI,EAC/C,CAAC2E,EAAsBC,CAAuB,EAAI5E,EAAM,SAAS,EAAK,EACtE6E,EAAYC,GAAAA,aAAad,CAAG,EAC5B,CAACe,EAAMC,CAAO,EAAIC,wBAAqB,CAC3C,KAAMvB,EACN,YAAaC,GAAe,GAC5B,SAAUC,EACV,OAAQjB,EACZ,CAAG,EACK,CAAC7C,EAAOoF,CAAQ,EAAID,wBAAqB,CAC7C,KAAMpB,EACN,YAAaC,EACb,SAAUC,EACV,OAAQpB,EACZ,CAAG,EACKwC,EAA2BnF,EAAM,OAAO,IAAI,EAC5CoF,EAAgBb,EAAUF,GAAQ,CAAC,CAACE,EAAQ,QAAQ,MAAM,EAAI,GAC9D,CAACc,EAAkBC,CAAmB,EAAItF,EAAM,SAAyB,IAAI,GAAK,EAClFuF,EAAkB,MAAM,KAAKF,CAAgB,EAAE,IAAKG,GAAWA,EAAO,MAAM,KAAK,EAAE,KAAK,GAAG,EACjG,OAAuBlE,EAAAA,IAAImE,GAAAA,MAAsB,CAAE,GAAGnB,EAAa,SAA0BoB,EAAAA,KAC3FtC,GACA,CACE,SAAAgB,EACA,MAAOX,EACP,QAAAc,EACA,gBAAiBC,EACjB,UAAAC,EACA,kBAAmBC,EACnB,qBAAAC,EACA,6BAA8BC,EAC9B,UAAWe,GAAAA,MAAK,EAChB,MAAA7F,EACA,cAAeoF,EACf,KAAAH,EACA,aAAcC,EACd,IAAKH,EACL,yBAAAM,EACA,SAAAhB,EACA,SAAU,CACQ7C,EAAAA,IAAIsB,GAAW,SAAU,CAAE,MAAOa,EAAe,SAA0BnC,EAAAA,IACzFgC,GACA,CACE,MAAO1C,EAAM,cACb,kBAAmBZ,EAAM,YAAawF,GAAW,CAC/CF,EAAqBM,GAAS,IAAI,IAAIA,CAAI,EAAE,IAAIJ,CAAM,CAAC,CACzD,EAAG,CAAA,CAAE,EACL,qBAAsBxF,EAAM,YAAawF,GAAW,CAClDF,EAAqBM,GAAS,CAC5B,MAAMC,EAAa,IAAI,IAAID,CAAI,EAC/B,OAAAC,EAAW,OAAOL,CAAM,EACjBK,CACT,CAAC,CACH,EAAG,CAAA,CAAE,EACL,SAAA/E,CACZ,CACA,EAAW,EACHsE,EAAgCM,EAAAA,KAC9BI,GACA,CACE,cAAe,GACf,SAAA1B,EACA,SAAU,GACV,KAAAH,EACA,aAAAC,EACA,MAAApE,EACA,SAAWiG,GAAUb,EAASa,EAAM,OAAO,KAAK,EAChD,SAAA5B,EACA,KAAAE,EACA,SAAU,CACRvE,IAAU,OAAyBwB,MAAI,SAAU,CAAE,MAAO,EAAE,CAAE,EAAI,KAClE,MAAM,KAAK+D,CAAgB,CACzC,CACA,EACUE,CACV,EAAY,IACZ,CACA,CACA,EAAK,CACL,EACA/B,GAAO,YAAcb,GACrB,IAAIqD,GAAe,gBACfC,GAAgBjG,EAAM,WACxB,CAACY,EAAOC,IAAiB,CACvB,KAAM,CAAE,cAAA4C,EAAe,SAAAU,EAAW,GAAO,GAAG+B,CAAY,EAAKtF,EACvD0D,EAAcnB,GAAeM,CAAa,EAC1C0C,EAAU9C,EAAiB2C,GAAcvC,CAAa,EACtD2C,EAAaD,EAAQ,UAAYhC,EACjCkC,EAAeC,EAAAA,gBAAgBzF,EAAcsF,EAAQ,eAAe,EACpEI,EAAW1D,GAAcY,CAAa,EACtC+C,EAAiBxG,EAAM,OAAO,OAAO,EACrC,CAACyG,EAAWC,EAAuBC,CAAc,EAAIC,GAAoBC,GAAW,CACxF,MAAMC,EAAeP,IAAW,OAAQQ,GAAS,CAACA,EAAK,QAAQ,EACzDC,EAAcF,EAAa,KAAMC,GAASA,EAAK,QAAUZ,EAAQ,KAAK,EACtEc,EAAWC,GAAaJ,EAAcD,EAAQG,CAAW,EAC3DC,IAAa,QACfd,EAAQ,cAAcc,EAAS,KAAK,CAExC,CAAC,EACKE,EAAcC,GAAiB,CAC9BhB,IACHD,EAAQ,aAAa,EAAI,EACzBQ,EAAc,GAEZS,IACFjB,EAAQ,yBAAyB,QAAU,CACzC,EAAG,KAAK,MAAMiB,EAAa,KAAK,EAChC,EAAG,KAAK,MAAMA,EAAa,KAAK,CAC1C,EAEI,EACA,OAAuB9F,EAAAA,IAAI+F,GAAAA,OAAwB,CAAE,QAAS,GAAM,GAAG/C,EAAa,SAA0BhD,EAAAA,IAC5GgG,EAAAA,UAAU,OACV,CACE,KAAM,SACN,KAAM,WACN,gBAAiBnB,EAAQ,UACzB,gBAAiBA,EAAQ,KACzB,gBAAiBA,EAAQ,SACzB,oBAAqB,OACrB,IAAKA,EAAQ,IACb,aAAcA,EAAQ,KAAO,OAAS,SACtC,SAAUC,EACV,gBAAiBA,EAAa,GAAK,OACnC,mBAAoBmB,GAAsBpB,EAAQ,KAAK,EAAI,GAAK,OAChE,GAAGD,EACH,IAAKG,EACL,QAASmB,EAAAA,qBAAqBtB,EAAa,QAAUH,GAAU,CAC7DA,EAAM,cAAc,MAAK,EACrBS,EAAe,UAAY,SAC7BW,EAAWpB,CAAK,CAEpB,CAAC,EACD,cAAeyB,EAAAA,qBAAqBtB,EAAa,cAAgBH,GAAU,CACzES,EAAe,QAAUT,EAAM,YAC/B,MAAM0B,EAAS1B,EAAM,OACjB0B,EAAO,kBAAkB1B,EAAM,SAAS,GAC1C0B,EAAO,sBAAsB1B,EAAM,SAAS,EAE1CA,EAAM,SAAW,GAAKA,EAAM,UAAY,IAASA,EAAM,cAAgB,UACzEoB,EAAWpB,CAAK,EAChBA,EAAM,eAAc,EAExB,CAAC,EACD,UAAWyB,EAAAA,qBAAqBtB,EAAa,UAAYH,GAAU,CACjE,MAAM2B,EAAgBjB,EAAU,UAAY,GAExC,EADkBV,EAAM,SAAWA,EAAM,QAAUA,EAAM,UACvCA,EAAM,IAAI,SAAW,GAAGW,EAAsBX,EAAM,GAAG,EACzE,EAAA2B,GAAiB3B,EAAM,MAAQ,MAC/BtD,GAAU,SAASsD,EAAM,GAAG,IAC9BoB,EAAU,EACVpB,EAAM,eAAc,EAExB,CAAC,CACT,CACA,EAAO,CACL,CACF,EACAE,GAAc,YAAcD,GAC5B,IAAI2B,GAAa,cACbC,GAAc5H,EAAM,WACtB,CAACY,EAAOC,IAAiB,CACvB,KAAM,CAAE,cAAA4C,EAAe,UAAAoE,EAAW,MAAAC,EAAO,SAAAhH,EAAU,YAAAiH,EAAc,GAAI,GAAGC,CAAU,EAAKpH,EACjFuF,EAAU9C,EAAiBsE,GAAYlE,CAAa,EACpD,CAAE,6BAAAwE,CAA4B,EAAK9B,EACnC+B,EAAcpH,IAAa,OAC3BuF,EAAeC,EAAAA,gBAAgBzF,EAAcsF,EAAQ,iBAAiB,EAC5EgC,OAAAA,EAAAA,iBAAgB,IAAM,CACpBF,EAA6BC,CAAW,CAC1C,EAAG,CAACD,EAA8BC,CAAW,CAAC,EACvB5G,EAAAA,IACrBgG,EAAAA,UAAU,KACV,CACE,GAAGU,EACH,IAAK3B,EACL,MAAO,CAAE,cAAe,MAAM,EAC9B,SAAUkB,GAAsBpB,EAAQ,KAAK,EAAoB7E,MAAI8G,EAAAA,SAAU,CAAE,SAAUL,CAAW,CAAE,EAAIjH,CACpH,CACA,CACE,CACF,EACA8G,GAAY,YAAcD,GAC1B,IAAIU,GAAY,aACZC,GAAatI,EAAM,WACrB,CAACY,EAAOC,IAAiB,CACvB,KAAM,CAAE,cAAA4C,EAAe,SAAA3C,EAAU,GAAGyH,CAAS,EAAK3H,EAClD,OAAuBU,EAAAA,IAAIgG,EAAAA,UAAU,KAAM,CAAE,cAAe,GAAM,GAAGiB,EAAW,IAAK1H,EAAc,SAAUC,GAAY,GAAQ,CAAE,CACrI,CACF,EACAwH,GAAW,YAAcD,GACzB,IAAIG,GAAc,eACdC,GAAgB7H,GACKU,EAAAA,IAAIoH,GAAAA,OAAiB,CAAE,QAAS,GAAM,GAAG9H,EAAO,EAEzE6H,GAAa,YAAcD,GAC3B,IAAIG,GAAe,gBACfC,GAAgB5I,EAAM,WACxB,CAACY,EAAOC,IAAiB,CACvB,MAAMsF,EAAU9C,EAAiBsF,GAAc/H,EAAM,aAAa,EAC5D,CAACiI,EAAUC,CAAW,EAAI9I,EAAM,SAAQ,EAI9C,GAHAmI,EAAAA,iBAAgB,IAAM,CACpBW,EAAY,IAAI,gBAAkB,CACpC,EAAG,CAAA,CAAE,EACD,CAAC3C,EAAQ,KAAM,CACjB,MAAM4C,EAAOF,EACb,OAAOE,EAAOC,GAAS,aACL1H,MAAI2H,GAAuB,CAAE,MAAOrI,EAAM,cAAe,SAA0BU,EAAAA,IAAIsB,GAAW,KAAM,CAAE,MAAOhC,EAAM,cAAe,SAA0BU,EAAAA,IAAI,MAAO,CAAE,SAAUV,EAAM,QAAQ,CAAE,CAAC,CAAE,EAAG,EAC7NmI,CACR,EAAU,IACN,CACA,OAAuBzH,EAAAA,IAAI4H,GAAmB,CAAE,GAAGtI,EAAO,IAAKC,EAAc,CAC/E,CACF,EACA+H,GAAc,YAAcD,GAC5B,IAAIQ,EAAiB,GACjB,CAACF,GAAuBG,CAAuB,EAAIpG,GAAoB2F,EAAY,EACnFU,GAAoB,oBACpBC,GAAO/I,GAAW,4BAA4B,EAC9C2I,GAAoBlJ,EAAM,WAC5B,CAACY,EAAOC,IAAiB,CACvB,KAAM,CACJ,cAAA4C,EACA,SAAA8F,EAAW,eACX,iBAAAC,EACA,gBAAAC,EACA,qBAAAC,EAGA,KAAAC,EACA,WAAAC,EACA,MAAAC,EACA,YAAAC,EACA,aAAAC,EACA,kBAAAC,EACA,iBAAAC,EACA,OAAAC,EACA,iBAAAC,EACA,gBAAAC,EAEA,GAAGC,CACT,EAAQzJ,EACEuF,EAAU9C,EAAiBsF,GAAclF,CAAa,EACtD,CAAC6G,EAASC,CAAU,EAAIvK,EAAM,SAAS,IAAI,EAC3C,CAACwK,EAAUC,CAAW,EAAIzK,EAAM,SAAS,IAAI,EAC7CqG,EAAeC,EAAAA,gBAAgBzF,EAAe6J,GAASH,EAAWG,CAAI,CAAC,EACvE,CAACC,EAAcC,CAAe,EAAI5K,EAAM,SAAS,IAAI,EACrD,CAAC6K,EAAkBC,CAAmB,EAAI9K,EAAM,SACpD,IACN,EACUuG,EAAW1D,GAAcY,CAAa,EACtC,CAACsH,EAAcC,CAAe,EAAIhL,EAAM,SAAS,EAAK,EACtDiL,EAAyBjL,EAAM,OAAO,EAAK,EACjDA,EAAM,UAAU,IAAM,CACpB,GAAIsK,EAAS,OAAOY,GAAAA,WAAWZ,CAAO,CACxC,EAAG,CAACA,CAAO,CAAC,EACZa,kBAAc,EACd,MAAMC,EAAapL,EAAM,YACtBqL,GAAe,CACd,KAAM,CAACC,EAAW,GAAGC,CAAS,EAAIhF,EAAQ,EAAG,IAAKQ,GAASA,EAAK,IAAI,OAAO,EACrE,CAACyE,CAAQ,EAAID,EAAU,MAAM,EAAE,EAC/BE,EAA6B,SAAS,cAC5C,UAAWC,KAAaL,EAMtB,GALIK,IAAcD,IAClBC,GAAA,MAAAA,EAAW,eAAe,CAAE,MAAO,SAAS,GACxCA,IAAcJ,GAAad,IAAUA,EAAS,UAAY,GAC1DkB,IAAcF,GAAYhB,IAAUA,EAAS,UAAYA,EAAS,cACtEkB,GAAA,MAAAA,EAAW,QACP,SAAS,gBAAkBD,GAA4B,MAE/D,EACA,CAAClF,EAAUiE,CAAQ,CACzB,EACUmB,EAAoB3L,EAAM,YAC9B,IAAMoL,EAAW,CAACT,EAAcL,CAAO,CAAC,EACxC,CAACc,EAAYT,EAAcL,CAAO,CACxC,EACItK,EAAM,UAAU,IAAM,CAChB+K,GACFY,EAAiB,CAErB,EAAG,CAACZ,EAAcY,CAAiB,CAAC,EACpC,KAAM,CAAE,aAAA/H,EAAc,yBAAAuB,CAAwB,EAAKgB,EACnDnG,EAAM,UAAU,IAAM,CACpB,GAAIsK,EAAS,CACX,IAAIsB,EAAmB,CAAE,EAAG,EAAG,EAAG,CAAC,EACnC,MAAMC,EAAqB9F,GAAU,SACnC6F,EAAmB,CACjB,EAAG,KAAK,IAAI,KAAK,MAAM7F,EAAM,KAAK,KAAKzD,EAAA6C,EAAyB,UAAzB,YAAA7C,EAAkC,IAAK,EAAE,EAChF,EAAG,KAAK,IAAI,KAAK,MAAMyD,EAAM,KAAK,KAAKvD,EAAA2C,EAAyB,UAAzB,YAAA3C,EAAkC,IAAK,EAAE,CAC5F,CACQ,EACMsJ,EAAmB/F,GAAU,CAC7B6F,EAAiB,GAAK,IAAMA,EAAiB,GAAK,GACpD7F,EAAM,eAAc,EAEfuE,EAAQ,SAASvE,EAAM,MAAM,GAChCnC,EAAa,EAAK,EAGtB,SAAS,oBAAoB,cAAeiI,CAAiB,EAC7D1G,EAAyB,QAAU,IACrC,EACA,OAAIA,EAAyB,UAAY,OACvC,SAAS,iBAAiB,cAAe0G,CAAiB,EAC1D,SAAS,iBAAiB,YAAaC,EAAiB,CAAE,QAAS,GAAM,KAAM,GAAM,GAEhF,IAAM,CACX,SAAS,oBAAoB,cAAeD,CAAiB,EAC7D,SAAS,oBAAoB,YAAaC,EAAiB,CAAE,QAAS,GAAM,CAC9E,CACF,CACF,EAAG,CAACxB,EAAS1G,EAAcuB,CAAwB,CAAC,EACpDnF,EAAM,UAAU,IAAM,CACpB,MAAM+L,EAAQ,IAAMnI,EAAa,EAAK,EACtC,cAAO,iBAAiB,OAAQmI,CAAK,EACrC,OAAO,iBAAiB,SAAUA,CAAK,EAChC,IAAM,CACX,OAAO,oBAAoB,OAAQA,CAAK,EACxC,OAAO,oBAAoB,SAAUA,CAAK,CAC5C,CACF,EAAG,CAACnI,CAAY,CAAC,EACjB,KAAM,CAAC6C,GAAWC,EAAqB,EAAIE,GAAoBC,GAAW,CACxE,MAAMC,EAAeP,IAAW,OAAQQ,GAAS,CAACA,EAAK,QAAQ,EACzDC,EAAcF,EAAa,KAAMC,GAASA,EAAK,IAAI,UAAY,SAAS,aAAa,EACrFE,EAAWC,GAAaJ,EAAcD,EAAQG,CAAW,EAC3DC,GACF,WAAW,IAAMA,EAAS,IAAI,QAAQ,MAAK,CAAE,CAEjD,CAAC,EACK+E,GAAkBhM,EAAM,YAC5B,CAAC0K,EAAM5K,EAAOqE,IAAa,CACzB,MAAM8H,EAAmB,CAAChB,EAAuB,SAAW,CAAC9G,GACtCgC,EAAQ,QAAU,QAAUA,EAAQ,QAAUrG,GAC/CmM,KACpBrB,EAAgBF,CAAI,EAChBuB,IAAkBhB,EAAuB,QAAU,IAE3D,EACA,CAAC9E,EAAQ,KAAK,CACpB,EACU+F,GAAkBlM,EAAM,YAAY,IAAMsK,GAAA,YAAAA,EAAS,QAAS,CAACA,CAAO,CAAC,EACrE6B,EAAsBnM,EAAM,YAChC,CAAC0K,EAAM5K,EAAOqE,IAAa,CACzB,MAAM8H,EAAmB,CAAChB,EAAuB,SAAW,CAAC9G,GACtCgC,EAAQ,QAAU,QAAUA,EAAQ,QAAUrG,GAC/CmM,IACpBnB,EAAoBJ,CAAI,CAE5B,EACA,CAACvE,EAAQ,KAAK,CACpB,EACUiG,EAAiB7C,IAAa,SAAW8C,GAAuBC,GAChEC,GAAqBH,IAAmBC,GAAuB,CACnE,KAAA1C,EACA,WAAAC,EACA,MAAAC,EACA,YAAAC,EACA,aAAAC,EACA,kBAAAC,EACA,iBAAAC,EACA,OAAAC,EACA,iBAAAC,EACA,gBAAAC,CACN,EAAQ,CAAA,EACJ,OAAuB9I,EAAAA,IACrB2H,GACA,CACE,MAAOxF,EACP,QAAA6G,EACA,SAAAE,EACA,iBAAkBC,EAClB,gBAAAuB,GACA,aAAArB,EACA,YAAauB,GACb,oBAAAC,EACA,kBAAAR,EACA,iBAAAd,EACA,SAAAtB,EACA,aAAAwB,EACA,UAAAtE,GACA,SAA0BnF,EAAAA,IAAIkL,GAAAA,kBAAc,CAAE,GAAIlD,GAAM,eAAgB,GAAM,SAA0BhI,EAAAA,IACtGmL,GAAAA,WACA,CACE,QAAS,GACT,QAAStG,EAAQ,KACjB,iBAAmBJ,GAAU,CAC3BA,EAAM,eAAc,CACtB,EACA,mBAAoByB,EAAAA,qBAAqBgC,EAAmBzD,GAAU,QACpEzD,EAAA6D,EAAQ,UAAR,MAAA7D,EAAiB,MAAM,CAAE,cAAe,EAAI,GAC5CyD,EAAM,eAAc,CACtB,CAAC,EACD,SAA0BzE,EAAAA,IACxBoL,GAAAA,iBACA,CACE,QAAS,GACT,4BAA6B,GAC7B,gBAAAjD,EACA,qBAAAC,EACA,eAAiB3D,GAAUA,EAAM,eAAc,EAC/C,UAAW,IAAMI,EAAQ,aAAa,EAAK,EAC3C,SAA0B7E,EAAAA,IACxB8K,EACA,CACE,KAAM,UACN,GAAIjG,EAAQ,UACZ,aAAcA,EAAQ,KAAO,OAAS,SACtC,IAAKA,EAAQ,IACb,cAAgBJ,GAAUA,EAAM,eAAc,EAC9C,GAAGsE,EACH,GAAGkC,GACH,SAAU,IAAMvB,EAAgB,EAAI,EACpC,IAAK3E,EACL,MAAO,CAEL,QAAS,OACT,cAAe,SAEf,QAAS,OACT,GAAGgE,EAAa,KACtC,EACoB,UAAW7C,EAAAA,qBAAqB6C,EAAa,UAAYtE,GAAU,CACjE,MAAM4G,EAAgB5G,EAAM,SAAWA,EAAM,QAAUA,EAAM,QAG7D,GAFIA,EAAM,MAAQ,OAAOA,EAAM,eAAc,EACzC,CAAC4G,GAAiB5G,EAAM,IAAI,SAAW,GAAGW,GAAsBX,EAAM,GAAG,EACzE,CAAC,UAAW,YAAa,OAAQ,KAAK,EAAE,SAASA,EAAM,GAAG,EAAG,CAE/D,IAAI6G,EADUrG,IAAW,OAAQQ,GAAS,CAACA,EAAK,QAAQ,EAC7B,IAAKA,GAASA,EAAK,IAAI,OAAO,EAIzD,GAHI,CAAC,UAAW,KAAK,EAAE,SAAShB,EAAM,GAAG,IACvC6G,EAAiBA,EAAe,MAAK,EAAG,QAAO,GAE7C,CAAC,UAAW,WAAW,EAAE,SAAS7G,EAAM,GAAG,EAAG,CAChD,MAAM8G,EAAiB9G,EAAM,OACvB+G,EAAeF,EAAe,QAAQC,CAAc,EAC1DD,EAAiBA,EAAe,MAAME,EAAe,CAAC,CACxD,CACA,WAAW,IAAM1B,EAAWwB,CAAc,CAAC,EAC3C7G,EAAM,eAAc,CACtB,CACF,CAAC,CACrB,CACA,CACA,CACA,CACA,CACA,CAAS,CAAE,CACX,CACA,CACE,CACF,EACAmD,GAAkB,YAAcG,GAChC,IAAI0D,GAA6B,4BAC7BT,GAA4BtM,EAAM,WAAW,CAACY,EAAOC,IAAiB,CACxE,KAAM,CAAE,cAAA4C,EAAe,SAAAuJ,EAAU,GAAGC,CAAW,EAAKrM,EAC9CuF,EAAU9C,EAAiBsF,GAAclF,CAAa,EACtDyJ,EAAiB9D,EAAwBT,GAAclF,CAAa,EACpE,CAAC0J,EAAgBC,CAAiB,EAAIpN,EAAM,SAAS,IAAI,EACzD,CAACsK,EAASC,CAAU,EAAIvK,EAAM,SAAS,IAAI,EAC3CqG,EAAeC,EAAAA,gBAAgBzF,EAAe6J,GAASH,EAAWG,CAAI,CAAC,EACvEnE,EAAW1D,GAAcY,CAAa,EACtC4J,EAA0BrN,EAAM,OAAO,EAAK,EAC5CsN,EAAsBtN,EAAM,OAAO,EAAI,EACvC,CAAE,SAAAwK,EAAU,aAAAG,EAAc,iBAAAE,EAAkB,kBAAAc,CAAiB,EAAKuB,EAClE3D,EAAWvJ,EAAM,YAAY,IAAM,CACvC,GAAImG,EAAQ,SAAWA,EAAQ,WAAagH,GAAkB7C,GAAWE,GAAYG,GAAgBE,EAAkB,CACrH,MAAM0C,EAAcpH,EAAQ,QAAQ,sBAAqB,EACnDqH,EAAclD,EAAQ,sBAAqB,EAC3CmD,EAAgBtH,EAAQ,UAAU,sBAAqB,EACvDuH,EAAe7C,EAAiB,sBAAqB,EAC3D,GAAI1E,EAAQ,MAAQ,MAAO,CACzB,MAAMwH,EAAiBD,EAAa,KAAOF,EAAY,KACjDI,EAAOH,EAAc,KAAOE,EAC5BE,EAAYN,EAAY,KAAOK,EAC/BE,GAAkBP,EAAY,MAAQM,EACtCE,GAAe,KAAK,IAAID,GAAiBN,EAAY,KAAK,EAC1DQ,GAAY,OAAO,WAAa7E,EAChC8E,GAAcC,GAAAA,MAAMN,EAAM,CAC9BzE,EAMA,KAAK,IAAIA,EAAgB6E,GAAYD,EAAY,CAC3D,CAAS,EACDZ,EAAe,MAAM,SAAWW,GAAkB,KAClDX,EAAe,MAAM,KAAOc,GAAc,IAC5C,KAAO,CACL,MAAMN,EAAiBH,EAAY,MAAQE,EAAa,MAClDS,EAAQ,OAAO,WAAaV,EAAc,MAAQE,EAClDS,EAAa,OAAO,WAAab,EAAY,MAAQY,EACrDL,GAAkBP,EAAY,MAAQa,EACtCL,GAAe,KAAK,IAAID,GAAiBN,EAAY,KAAK,EAC1Da,GAAW,OAAO,WAAalF,EAC/BmF,GAAeJ,GAAAA,MAAMC,EAAO,CAChChF,EACA,KAAK,IAAIA,EAAgBkF,GAAWN,EAAY,CAC1D,CAAS,EACDZ,EAAe,MAAM,SAAWW,GAAkB,KAClDX,EAAe,MAAM,MAAQmB,GAAe,IAC9C,CACA,MAAMC,EAAQhI,EAAQ,EAChBiI,EAAkB,OAAO,YAAcrF,EAAiB,EACxDsF,EAAcjE,EAAS,aACvBkE,EAAgB,OAAO,iBAAiBpE,CAAO,EAC/CqE,EAAwB,SAASD,EAAc,eAAgB,EAAE,EACjEE,EAAoB,SAASF,EAAc,WAAY,EAAE,EACzDG,EAA2B,SAASH,EAAc,kBAAmB,EAAE,EACvEI,EAAuB,SAASJ,EAAc,cAAe,EAAE,EAC/DK,EAAoBJ,EAAwBC,EAAoBH,EAAcK,EAAuBD,EACrGG,GAAmB,KAAK,IAAIrE,EAAa,aAAe,EAAGoE,CAAiB,EAC5EE,GAAiB,OAAO,iBAAiBzE,CAAQ,EACjD0E,GAAqB,SAASD,GAAe,WAAY,EAAE,EAC3DE,GAAwB,SAASF,GAAe,cAAe,EAAE,EACjEG,EAAyB7B,EAAY,IAAMA,EAAY,OAAS,EAAIpE,EACpEkG,EAA4Bb,EAAkBY,EAC9CE,GAAyB3E,EAAa,aAAe,EACrD4E,EAAmB5E,EAAa,UAAY2E,GAC5CE,EAAyBb,EAAwBC,EAAoBW,EACrEE,EAA4BV,EAAoBS,EAEtD,GADoCA,GAA0BJ,EAC7B,CAC/B,MAAMM,EAAanB,EAAM,OAAS,GAAK5D,IAAiB4D,EAAMA,EAAM,OAAS,CAAC,EAAE,IAAI,QACpFpB,EAAe,MAAM,OAAS,MAC9B,MAAMwC,EAAuBrF,EAAQ,aAAeE,EAAS,UAAYA,EAAS,aAC5EoF,EAAmC,KAAK,IAC5CP,EACAC,IACCI,EAAaP,GAAwB,GAAKQ,EAAuBd,CAC5E,EACcgB,GAASL,EAAyBI,EACxCzC,EAAe,MAAM,OAAS0C,GAAS,IACzC,KAAO,CACL,MAAMC,EAAcvB,EAAM,OAAS,GAAK5D,IAAiB4D,EAAM,CAAC,EAAE,IAAI,QACtEpB,EAAe,MAAM,IAAM,MAM3B,MAAM0C,EALgC,KAAK,IACzCT,EACAT,EAAwBnE,EAAS,WAChCsF,EAAcZ,GAAqB,GAAKI,EACnD,EACuDG,EAC/CtC,EAAe,MAAM,OAAS0C,EAAS,KACvCrF,EAAS,UAAYgF,EAAyBJ,EAAyB5E,EAAS,SAClF,CACA2C,EAAe,MAAM,OAAS,GAAGhE,CAAc,OAC/CgE,EAAe,MAAM,UAAY6B,GAAmB,KACpD7B,EAAe,MAAM,UAAYqB,EAAkB,KACnDxB,GAAA,MAAAA,IACA,sBAAsB,IAAMK,EAAwB,QAAU,EAAI,CACpE,CACF,EAAG,CACD9G,EACAJ,EAAQ,QACRA,EAAQ,UACRgH,EACA7C,EACAE,EACAG,EACAE,EACA1E,EAAQ,IACR6G,CACJ,CAAG,EACD7E,EAAAA,iBAAgB,IAAMoB,IAAY,CAACA,CAAQ,CAAC,EAC5C,KAAM,CAACwG,EAAeC,CAAgB,EAAIhQ,EAAM,SAAQ,EACxDmI,EAAAA,iBAAgB,IAAM,CAChBmC,GAAS0F,EAAiB,OAAO,iBAAiB1F,CAAO,EAAE,MAAM,CACvE,EAAG,CAACA,CAAO,CAAC,EACZ,MAAM2F,EAA2BjQ,EAAM,YACpC0K,GAAS,CACJA,GAAQ4C,EAAoB,UAAY,KAC1C/D,EAAQ,EACRoC,GAAA,MAAAA,IACA2B,EAAoB,QAAU,GAElC,EACA,CAAC/D,EAAUoC,CAAiB,CAChC,EACE,OAAuBrK,EAAAA,IACrB4O,GACA,CACE,MAAOzM,EACP,eAAA0J,EACA,wBAAAE,EACA,qBAAsB4C,EACtB,SAA0B3O,EAAAA,IACxB,MACA,CACE,IAAK8L,EACL,MAAO,CACL,QAAS,OACT,cAAe,SACf,SAAU,QACV,OAAQ2C,CACpB,EACU,SAA0BzO,EAAAA,IACxBgG,EAAAA,UAAU,IACV,CACE,GAAG2F,EACH,IAAK5G,EACL,MAAO,CAGL,UAAW,aAEX,UAAW,OACX,GAAG4G,EAAY,KAC/B,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAAC,EACDX,GAA0B,YAAcS,GACxC,IAAIoD,GAAuB,uBACvB9D,GAAuBrM,EAAM,WAAW,CAACY,EAAOC,IAAiB,CACnE,KAAM,CACJ,cAAA4C,EACA,MAAAoG,EAAQ,QACR,iBAAAI,EAAmBd,EACnB,GAAG8D,CACP,EAAMrM,EACE0D,EAAcnB,GAAeM,CAAa,EAChD,OAAuBnC,EAAAA,IACrB8O,GAAAA,QACA,CACE,GAAG9L,EACH,GAAG2I,EACH,IAAKpM,EACL,MAAAgJ,EACA,iBAAAI,EACA,MAAO,CAEL,UAAW,aACX,GAAGgD,EAAY,MAGb,0CAA2C,uCAC3C,yCAA0C,sCAC1C,0CAA2C,uCAC3C,+BAAgC,mCAChC,gCAAiC,mCAE3C,CACA,CACA,CACA,CAAC,EACDZ,GAAqB,YAAc8D,GACnC,GAAI,CAACD,GAAwBG,EAAwB,EAAIrN,GAAoB2F,GAAc,CAAA,CAAE,EACzF2H,GAAgB,iBAChBC,GAAiBvQ,EAAM,WACzB,CAACY,EAAOC,IAAiB,CACvB,KAAM,CAAE,cAAA4C,EAAe,MAAA+M,EAAO,GAAGC,CAAa,EAAK7P,EAC7CsM,EAAiB9D,EAAwBkH,GAAe7M,CAAa,EACrEiN,EAAkBL,GAAyBC,GAAe7M,CAAa,EACvE4C,EAAeC,EAAAA,gBAAgBzF,EAAcqM,EAAe,gBAAgB,EAC5EyD,EAAmB3Q,EAAM,OAAO,CAAC,EACvC,OAAuB0F,EAAAA,KAAK0C,WAAU,CAAE,SAAU,CAChC9G,EAAAA,IACd,QACA,CACE,wBAAyB,CACvB,OAAQ,2KACpB,EACU,MAAAkP,CACV,CACA,EACsBlP,EAAAA,IAAIsB,GAAW,KAAM,CAAE,MAAOa,EAAe,SAA0BnC,EAAAA,IACrFgG,EAAAA,UAAU,IACV,CACE,6BAA8B,GAC9B,KAAM,eACN,GAAGmJ,EACH,IAAKpK,EACL,MAAO,CAIL,SAAU,WACV,KAAM,EAKN,SAAU,cACV,GAAGoK,EAAc,KAC7B,EACU,SAAUjJ,EAAAA,qBAAqBiJ,EAAc,SAAW1K,GAAU,CAChE,MAAMyE,EAAWzE,EAAM,cACjB,CAAE,eAAAoH,EAAgB,wBAAAE,CAAuB,EAAKqD,EACpD,GAAIrD,GAAA,MAAAA,EAAyB,SAAWF,EAAgB,CACtD,MAAMyD,EAAa,KAAK,IAAID,EAAiB,QAAUnG,EAAS,SAAS,EACzE,GAAIoG,EAAa,EAAG,CAClB,MAAMpC,EAAkB,OAAO,YAAcrF,EAAiB,EACxD0H,EAAe,WAAW1D,EAAe,MAAM,SAAS,EACxD2D,EAAY,WAAW3D,EAAe,MAAM,MAAM,EAClD4D,EAAa,KAAK,IAAIF,EAAcC,CAAS,EACnD,GAAIC,EAAavC,EAAiB,CAChC,MAAMwC,EAAaD,EAAaH,EAC1BK,EAAoB,KAAK,IAAIzC,EAAiBwC,CAAU,EACxDE,EAAaF,EAAaC,EAChC9D,EAAe,MAAM,OAAS8D,EAAoB,KAC9C9D,EAAe,MAAM,SAAW,QAClC3C,EAAS,UAAY0G,EAAa,EAAIA,EAAa,EACnD/D,EAAe,MAAM,eAAiB,WAE1C,CACF,CACF,CACAwD,EAAiB,QAAUnG,EAAS,SACtC,CAAC,CACX,CACA,CAAO,CAAE,CACT,EAAO,CACL,CACF,EACA+F,GAAe,YAAcD,GAC7B,IAAIa,GAAa,cACb,CAACC,GAA4BC,EAAqB,EAAIrO,GAAoBmO,EAAU,EACpFG,GAActR,EAAM,WACtB,CAACY,EAAOC,IAAiB,CACvB,KAAM,CAAE,cAAA4C,EAAe,GAAG8N,CAAU,EAAK3Q,EACnC4Q,EAAU7L,GAAAA,MAAK,EACrB,OAAuBrE,EAAAA,IAAI8P,GAA4B,CAAE,MAAO3N,EAAe,GAAI+N,EAAS,SAA0BlQ,EAAAA,IAAIgG,EAAAA,UAAU,IAAK,CAAE,KAAM,QAAS,kBAAmBkK,EAAS,GAAGD,EAAY,IAAK1Q,CAAY,CAAE,EAAG,CAC7N,CACF,EACAyQ,GAAY,YAAcH,GAC1B,IAAIM,GAAa,cACbC,GAAc1R,EAAM,WACtB,CAACY,EAAOC,IAAiB,CACvB,KAAM,CAAE,cAAA4C,EAAe,GAAGkO,CAAU,EAAK/Q,EACnCgR,EAAeP,GAAsBI,GAAYhO,CAAa,EACpE,OAAuBnC,MAAIgG,EAAAA,UAAU,IAAK,CAAE,GAAIsK,EAAa,GAAI,GAAGD,EAAY,IAAK9Q,CAAY,CAAE,CACrG,CACF,EACA6Q,GAAY,YAAcD,GAC1B,IAAII,GAAY,aACZ,CAACC,GAA2BC,EAAoB,EAAI/O,GAAoB6O,EAAS,EACjFG,GAAahS,EAAM,WACrB,CAACY,EAAOC,IAAiB,CACvB,KAAM,CACJ,cAAA4C,EACA,MAAA3D,EACA,SAAAqE,EAAW,GACX,UAAW8N,EACX,GAAGC,CACT,EAAQtR,EACEuF,EAAU9C,EAAiBwO,GAAWpO,CAAa,EACnDyJ,EAAiB9D,EAAwByI,GAAWpO,CAAa,EACjE0O,EAAahM,EAAQ,QAAUrG,EAC/B,CAACsS,EAAWC,CAAY,EAAIrS,EAAM,SAASiS,GAAiB,EAAE,EAC9D,CAACK,EAAWC,CAAY,EAAIvS,EAAM,SAAS,EAAK,EAChDqG,EAAeC,EAAAA,gBACnBzF,EACC6J,GAAI,OAAK,OAAApI,EAAA4K,EAAe,kBAAf,YAAA5K,EAAA,KAAA4K,EAAiCxC,EAAM5K,EAAOqE,GAC9D,EACUqO,EAAS7M,GAAAA,MAAK,EACda,EAAiBxG,EAAM,OAAO,OAAO,EACrCyS,EAAe,IAAM,CACpBtO,IACHgC,EAAQ,cAAcrG,CAAK,EAC3BqG,EAAQ,aAAa,EAAK,EAE9B,EACA,GAAIrG,IAAU,GACZ,MAAM,IAAI,MACR,uLACR,EAEI,OAAuBwB,EAAAA,IACrBwQ,GACA,CACE,MAAOrO,EACP,MAAA3D,EACA,SAAAqE,EACA,OAAAqO,EACA,WAAAL,EACA,iBAAkBnS,EAAM,YAAa0K,GAAS,CAC5C2H,EAAcK,GAAkBA,KAAkBhI,GAAA,YAAAA,EAAM,cAAe,IAAI,MAAM,CACnF,EAAG,CAAA,CAAE,EACL,SAA0BpJ,EAAAA,IACxBsB,GAAW,SACX,CACE,MAAOa,EACP,MAAA3D,EACA,SAAAqE,EACA,UAAAiO,EACA,SAA0B9Q,EAAAA,IACxBgG,EAAAA,UAAU,IACV,CACE,KAAM,SACN,kBAAmBkL,EACnB,mBAAoBF,EAAY,GAAK,OACrC,gBAAiBH,GAAcG,EAC/B,aAAcH,EAAa,UAAY,YACvC,gBAAiBhO,GAAY,OAC7B,gBAAiBA,EAAW,GAAK,OACjC,SAAUA,EAAW,OAAS,GAC9B,GAAG+N,EACH,IAAK7L,EACL,QAASmB,EAAAA,qBAAqB0K,EAAU,QAAS,IAAMK,EAAa,EAAI,CAAC,EACzE,OAAQ/K,EAAAA,qBAAqB0K,EAAU,OAAQ,IAAMK,EAAa,EAAK,CAAC,EACxE,QAAS/K,EAAAA,qBAAqB0K,EAAU,QAAS,IAAM,CACjD1L,EAAe,UAAY,SAASiM,EAAY,CACtD,CAAC,EACD,YAAajL,EAAAA,qBAAqB0K,EAAU,YAAa,IAAM,CACzD1L,EAAe,UAAY,SAASiM,EAAY,CACtD,CAAC,EACD,cAAejL,EAAAA,qBAAqB0K,EAAU,cAAgBnM,GAAU,CACtES,EAAe,QAAUT,EAAM,WACjC,CAAC,EACD,cAAeyB,EAAAA,qBAAqB0K,EAAU,cAAgBnM,GAAU,OACtES,EAAe,QAAUT,EAAM,YAC3B5B,GACF7B,EAAA4K,EAAe,cAAf,MAAA5K,EAAA,KAAA4K,GACS1G,EAAe,UAAY,SACpCT,EAAM,cAAc,MAAM,CAAE,cAAe,EAAI,CAAE,CAErD,CAAC,EACD,eAAgByB,EAAAA,qBAAqB0K,EAAU,eAAiBnM,GAAU,OACpEA,EAAM,gBAAkB,SAAS,iBACnCzD,EAAA4K,EAAe,cAAf,MAAA5K,EAAA,KAAA4K,GAEJ,CAAC,EACD,UAAW1F,EAAAA,qBAAqB0K,EAAU,UAAYnM,GAAU,SACxCzD,EAAA4K,EAAe,YAAf,YAAA5K,EAA0B,WAAY,IACvCyD,EAAM,MAAQ,MAC/BrD,GAAe,SAASqD,EAAM,GAAG,GAAG0M,EAAY,EAChD1M,EAAM,MAAQ,KAAKA,EAAM,eAAc,EAC7C,CAAC,CACjB,CACA,CACA,CACA,CACA,CACA,CACE,CACF,EACAiM,GAAW,YAAcH,GACzB,IAAIc,GAAiB,iBACjBC,GAAiB5S,EAAM,WACzB,CAACY,EAAOC,IAAiB,CACvB,KAAM,CAAE,cAAA4C,EAAe,UAAAoE,EAAW,MAAAC,EAAO,GAAG+K,CAAa,EAAKjS,EACxDuF,EAAU9C,EAAiBsP,GAAgBlP,CAAa,EACxDyJ,EAAiB9D,EAAwBuJ,GAAgBlP,CAAa,EACtEqP,EAAcf,GAAqBY,GAAgBlP,CAAa,EAChEsP,EAAuBxP,GAA8BoP,GAAgBlP,CAAa,EAClF,CAACuP,EAAcC,CAAe,EAAIjT,EAAM,SAAS,IAAI,EACrDqG,EAAeC,EAAAA,gBACnBzF,EACC6J,GAASuI,EAAgBvI,CAAI,EAC9BoI,EAAY,iBACXpI,GAAI,OAAK,OAAApI,EAAA4K,EAAe,sBAAf,YAAA5K,EAAA,KAAA4K,EAAqCxC,EAAMoI,EAAY,MAAOA,EAAY,UAC1F,EACUI,EAAcF,GAAA,YAAAA,EAAc,YAC5BG,EAAenT,EAAM,QACzB,IAAsBsB,EAAAA,IAAI,SAAU,CAAE,MAAOwR,EAAY,MAAO,SAAUA,EAAY,SAAU,SAAUI,CAAW,EAAIJ,EAAY,KAAK,EAC1I,CAACA,EAAY,SAAUA,EAAY,MAAOI,CAAW,CAC3D,EACU,CAAE,kBAAAE,EAAmB,qBAAAC,CAAoB,EAAKN,EACpD5K,OAAAA,EAAAA,iBAAgB,KACdiL,EAAkBD,CAAY,EACvB,IAAME,EAAqBF,CAAY,GAC7C,CAACC,EAAmBC,EAAsBF,CAAY,CAAC,EACnCzN,EAAAA,KAAK0C,WAAU,CAAE,SAAU,CAChC9G,EAAAA,IAAIgG,EAAAA,UAAU,KAAM,CAAE,GAAIwL,EAAY,OAAQ,GAAGD,EAAe,IAAKxM,EAAc,EACnGyM,EAAY,YAAc3M,EAAQ,WAAa,CAACA,EAAQ,qBAAuB6C,GAAS,aAAa6J,EAAc,SAAU1M,EAAQ,SAAS,EAAI,IACxJ,EAAO,CACL,CACF,EACAyM,GAAe,YAAcD,GAC7B,IAAIW,GAAsB,sBACtBC,GAAsBvT,EAAM,WAC9B,CAACY,EAAOC,IAAiB,CACvB,KAAM,CAAE,cAAA4C,EAAe,GAAG+P,CAAkB,EAAK5S,EAEjD,OADoBmR,GAAqBuB,GAAqB7P,CAAa,EACxD,WAA6BnC,MAAIgG,EAAAA,UAAU,KAAM,CAAE,cAAe,GAAM,GAAGkM,EAAoB,IAAK3S,CAAY,CAAE,EAAI,IAC3I,CACF,EACA0S,GAAoB,YAAcD,GAClC,IAAIG,GAAwB,uBACxBC,GAAuB1T,EAAM,WAAW,CAACY,EAAOC,IAAiB,CACnE,MAAMqM,EAAiB9D,EAAwBqK,GAAuB7S,EAAM,aAAa,EACnF8P,EAAkBL,GAAyBoD,GAAuB7S,EAAM,aAAa,EACrF,CAAC+S,EAAaC,CAAc,EAAI5T,EAAM,SAAS,EAAK,EACpDqG,EAAeC,EAAAA,gBAAgBzF,EAAc6P,EAAgB,oBAAoB,EACvFvI,OAAAA,EAAAA,iBAAgB,IAAM,CACpB,GAAI+E,EAAe,UAAYA,EAAe,aAAc,CAC1D,IAAI2G,EAAgB,UAAW,CAC7B,MAAMC,EAAetJ,EAAS,UAAY,EAC1CoJ,EAAeE,CAAY,CAC7B,EAEA,MAAMtJ,EAAW0C,EAAe,SAChC,OAAA2G,EAAa,EACbrJ,EAAS,iBAAiB,SAAUqJ,CAAa,EAC1C,IAAMrJ,EAAS,oBAAoB,SAAUqJ,CAAa,CACnE,CACF,EAAG,CAAC3G,EAAe,SAAUA,EAAe,YAAY,CAAC,EAClDyG,EAA8BrS,EAAAA,IACnCyS,GACA,CACE,GAAGnT,EACH,IAAKyF,EACL,aAAc,IAAM,CAClB,KAAM,CAAE,SAAAmE,EAAU,aAAAG,CAAY,EAAKuC,EAC/B1C,GAAYG,IACdH,EAAS,UAAYA,EAAS,UAAYG,EAAa,aAE3D,CACN,CACA,EAAM,IACN,CAAC,EACD+I,GAAqB,YAAcD,GACnC,IAAIO,GAA0B,yBAC1BC,GAAyBjU,EAAM,WAAW,CAACY,EAAOC,IAAiB,CACrE,MAAMqM,EAAiB9D,EAAwB4K,GAAyBpT,EAAM,aAAa,EACrF8P,EAAkBL,GAAyB2D,GAAyBpT,EAAM,aAAa,EACvF,CAACsT,EAAeC,CAAgB,EAAInU,EAAM,SAAS,EAAK,EACxDqG,EAAeC,EAAAA,gBAAgBzF,EAAc6P,EAAgB,oBAAoB,EACvFvI,OAAAA,EAAAA,iBAAgB,IAAM,CACpB,GAAI+E,EAAe,UAAYA,EAAe,aAAc,CAC1D,IAAI2G,EAAgB,UAAW,CAC7B,MAAMO,EAAY5J,EAAS,aAAeA,EAAS,aAC7C6J,EAAiB,KAAK,KAAK7J,EAAS,SAAS,EAAI4J,EACvDD,EAAiBE,CAAc,CACjC,EAEA,MAAM7J,EAAW0C,EAAe,SAChC,OAAA2G,EAAa,EACbrJ,EAAS,iBAAiB,SAAUqJ,CAAa,EAC1C,IAAMrJ,EAAS,oBAAoB,SAAUqJ,CAAa,CACnE,CACF,EAAG,CAAC3G,EAAe,SAAUA,EAAe,YAAY,CAAC,EAClDgH,EAAgC5S,EAAAA,IACrCyS,GACA,CACE,GAAGnT,EACH,IAAKyF,EACL,aAAc,IAAM,CAClB,KAAM,CAAE,SAAAmE,EAAU,aAAAG,CAAY,EAAKuC,EAC/B1C,GAAYG,IACdH,EAAS,UAAYA,EAAS,UAAYG,EAAa,aAE3D,CACN,CACA,EAAM,IACN,CAAC,EACDsJ,GAAuB,YAAcD,GACrC,IAAID,GAAyB/T,EAAM,WAAW,CAACY,EAAOC,IAAiB,CACrE,KAAM,CAAE,cAAA4C,EAAe,aAAA6Q,EAAc,GAAGC,CAAoB,EAAK3T,EAC3DsM,EAAiB9D,EAAwB,qBAAsB3F,CAAa,EAC5E+Q,EAAqBxU,EAAM,OAAO,IAAI,EACtCuG,EAAW1D,GAAcY,CAAa,EACtCgR,EAAuBzU,EAAM,YAAY,IAAM,CAC/CwU,EAAmB,UAAY,OACjC,OAAO,cAAcA,EAAmB,OAAO,EAC/CA,EAAmB,QAAU,KAEjC,EAAG,CAAA,CAAE,EACLxU,OAAAA,EAAM,UAAU,IACP,IAAMyU,EAAoB,EAChC,CAACA,CAAoB,CAAC,EACzBtM,EAAAA,iBAAgB,IAAM,OACpB,MAAMuM,EAAanO,IAAW,KAAMQ,GAASA,EAAK,IAAI,UAAY,SAAS,aAAa,GACxFzE,EAAAoS,GAAA,YAAAA,EAAY,IAAI,UAAhB,MAAApS,EAAyB,eAAe,CAAE,MAAO,WACnD,EAAG,CAACiE,CAAQ,CAAC,EACUjF,EAAAA,IACrBgG,EAAAA,UAAU,IACV,CACE,cAAe,GACf,GAAGiN,EACH,IAAK1T,EACL,MAAO,CAAE,WAAY,EAAG,GAAG0T,EAAqB,KAAK,EACrD,cAAe/M,EAAAA,qBAAqB+M,EAAqB,cAAe,IAAM,CACxEC,EAAmB,UAAY,OACjCA,EAAmB,QAAU,OAAO,YAAYF,EAAc,EAAE,EAEpE,CAAC,EACD,cAAe9M,EAAAA,qBAAqB+M,EAAqB,cAAe,IAAM,QAC5EjS,EAAA4K,EAAe,cAAf,MAAA5K,EAAA,KAAA4K,GACIsH,EAAmB,UAAY,OACjCA,EAAmB,QAAU,OAAO,YAAYF,EAAc,EAAE,EAEpE,CAAC,EACD,eAAgB9M,EAAAA,qBAAqB+M,EAAqB,eAAgB,IAAM,CAC9EE,EAAoB,CACtB,CAAC,CACP,CACA,CACA,CAAC,EACGE,GAAiB,kBACjBC,GAAkB5U,EAAM,WAC1B,CAACY,EAAOC,IAAiB,CACvB,KAAM,CAAE,cAAA4C,EAAe,GAAGoR,CAAc,EAAKjU,EAC7C,OAAuBU,EAAAA,IAAIgG,YAAU,IAAK,CAAE,cAAe,GAAM,GAAGuN,EAAgB,IAAKhU,EAAc,CACzG,CACF,EACA+T,GAAgB,YAAcD,GAC9B,IAAIG,GAAa,cACbC,GAAc/U,EAAM,WACtB,CAACY,EAAOC,IAAiB,CACvB,KAAM,CAAE,cAAA4C,EAAe,GAAGuR,CAAU,EAAKpU,EACnC0D,EAAcnB,GAAeM,CAAa,EAC1C0C,EAAU9C,EAAiByR,GAAYrR,CAAa,EACpDyJ,EAAiB9D,EAAwB0L,GAAYrR,CAAa,EACxE,OAAO0C,EAAQ,MAAQ+G,EAAe,WAAa,SAA2B5L,EAAAA,IAAI2T,GAAAA,MAAuB,CAAE,GAAG3Q,EAAa,GAAG0Q,EAAY,IAAKnU,CAAY,CAAE,EAAI,IACnK,CACF,EACAkU,GAAY,YAAcD,GAC1B,IAAII,GAAoB,oBACpBpP,GAAoB9F,EAAM,WAC5B,CAAC,CAAE,cAAAyD,EAAe,MAAA3D,EAAO,GAAGc,CAAK,EAAIC,IAAiB,CACpD,MAAMd,EAAMC,EAAM,OAAO,IAAI,EACvBqG,EAAeC,EAAAA,gBAAgBzF,EAAcd,CAAG,EAChDoV,EAAYtV,GAAYC,CAAK,EACnCE,OAAAA,EAAM,UAAU,IAAM,CACpB,MAAMoV,EAASrV,EAAI,QACnB,GAAI,CAACqV,EAAQ,OACb,MAAMC,EAAc,OAAO,kBAAkB,UAKvCnQ,EAJa,OAAO,yBACxBmQ,EACA,OACR,EACkC,IAC5B,GAAIF,IAAcrV,GAASoF,EAAU,CACnC,MAAMa,EAAQ,IAAI,MAAM,SAAU,CAAE,QAAS,GAAM,EACnDb,EAAS,KAAKkQ,EAAQtV,CAAK,EAC3BsV,EAAO,cAAcrP,CAAK,CAC5B,CACF,EAAG,CAACoP,EAAWrV,CAAK,CAAC,EACEwB,EAAAA,IACrBgG,EAAAA,UAAU,OACV,CACE,GAAG1G,EACH,MAAO,CAAE,GAAG0U,GAAAA,uBAAwB,GAAG1U,EAAM,KAAK,EAClD,IAAKyF,EACL,aAAcvG,CACtB,CACA,CACE,CACF,EACAgG,GAAkB,YAAcoP,GAChC,SAAS3N,GAAsBzH,EAAO,CACpC,OAAOA,IAAU,IAAMA,IAAU,MACnC,CACA,SAAS8G,GAAmB2O,EAAgB,CAC1C,MAAMC,EAAqBC,GAAAA,eAAeF,CAAc,EAClD9O,EAAYzG,EAAM,OAAO,EAAE,EAC3B0V,EAAW1V,EAAM,OAAO,CAAC,EACzB0G,EAAwB1G,EAAM,YACjC2V,GAAQ,CACP,MAAM9O,EAASJ,EAAU,QAAUkP,EACnCH,EAAmB3O,CAAM,GACxB,SAAS+O,EAAa9V,EAAO,CAC5B2G,EAAU,QAAU3G,EACpB,OAAO,aAAa4V,EAAS,OAAO,EAChC5V,IAAU,KAAI4V,EAAS,QAAU,OAAO,WAAW,IAAME,EAAa,EAAE,EAAG,GAAG,EACpF,GAAG/O,CAAM,CACX,EACA,CAAC2O,CAAkB,CACvB,EACQ7O,EAAiB3G,EAAM,YAAY,IAAM,CAC7CyG,EAAU,QAAU,GACpB,OAAO,aAAaiP,EAAS,OAAO,CACtC,EAAG,CAAA,CAAE,EACL1V,OAAAA,EAAM,UAAU,IACP,IAAM,OAAO,aAAa0V,EAAS,OAAO,EAChD,CAAA,CAAE,EACE,CAACjP,EAAWC,EAAuBC,CAAc,CAC1D,CACA,SAASO,GAAaqH,EAAO1H,EAAQG,EAAa,CAEhD,MAAM6O,EADahP,EAAO,OAAS,GAAK,MAAM,KAAKA,CAAM,EAAE,MAAOiP,GAASA,IAASjP,EAAO,CAAC,CAAC,EACvDA,EAAO,CAAC,EAAIA,EAC5CkP,EAAmB/O,EAAcuH,EAAM,QAAQvH,CAAW,EAAI,GACpE,IAAIgP,EAAeC,GAAU1H,EAAO,KAAK,IAAIwH,EAAkB,CAAC,CAAC,EACtCF,EAAiB,SAAW,IAC/BG,EAAeA,EAAa,OAAQ,GAAM,IAAMhP,CAAW,GACnF,MAAMC,EAAW+O,EAAa,KAC3BjP,GAASA,EAAK,UAAU,YAAW,EAAG,WAAW8O,EAAiB,YAAW,CAAE,CACpF,EACE,OAAO5O,IAAaD,EAAcC,EAAW,MAC/C,CACA,SAASgP,GAAUC,EAAOC,EAAY,CACpC,OAAOD,EAAM,IAAI,CAACE,EAAGC,IAAUH,GAAOC,EAAaE,GAASH,EAAM,MAAM,CAAC,CAC3E,CACA,IAAII,GAAQ9S,GACR+S,GAAUtQ,GACVuQ,GAAQ5O,GACR6O,GAAOnO,GACPoO,GAASjO,GACTkO,GAAW/N,GACXgO,GAAWrG,GACXsG,GAAQvF,GACRwF,GAAQpF,GACRqF,GAAO/E,GACPgF,GAAWpE,GACXqE,GAAgB1D,GAChB2D,GAAiBxD,GACjByD,GAAmBlD,GACnBmD,GAAYxC,GCroChB,SAASyC,GAAe,EAAGC,EAAG,CAC5B,EAAE,UAAY,OAAO,OAAOA,EAAE,SAAS,EAAG,EAAE,UAAU,YAAc,EAAGC,GAAe,EAAGD,CAAC,CAC5F,CCHA,IAAIE,GAAY,OAAO,OACnB,SAAkB1X,EAAO,CACrB,OAAO,OAAOA,GAAU,UAAYA,IAAUA,CAClD,EACJ,SAAS2X,GAAQC,EAAOC,EAAQ,CAI5B,MAHI,GAAAD,IAAUC,GAGVH,GAAUE,CAAK,GAAKF,GAAUG,CAAM,EAI5C,CACA,SAASC,GAAeC,EAAWC,EAAY,CAC3C,GAAID,EAAU,SAAWC,EAAW,OAChC,MAAO,GAEX,QAASC,EAAI,EAAGA,EAAIF,EAAU,OAAQE,IAClC,GAAI,CAACN,GAAQI,EAAUE,CAAC,EAAGD,EAAWC,CAAC,CAAC,EACpC,MAAO,GAGf,MAAO,EACX,CAEA,SAASC,GAAWC,EAAUR,EAAS,CAC/BA,IAAY,SAAUA,EAAUG,IACpC,IAAIM,EACAC,EAAW,CAAA,EACXC,EACAC,EAAa,GACjB,SAASC,GAAW,CAEhB,QADIC,EAAU,CAAA,EACLC,EAAK,EAAGA,EAAK,UAAU,OAAQA,IACpCD,EAAQC,CAAE,EAAI,UAAUA,CAAE,EAE9B,OAAIH,GAAcH,IAAa,MAAQT,EAAQc,EAASJ,CAAQ,IAGhEC,EAAaH,EAAS,MAAM,KAAMM,CAAO,EACzCF,EAAa,GACbH,EAAW,KACXC,EAAWI,GACJH,CACX,CACA,OAAOE,CACX,CCrCA,IAAIG,GAA0B,OAAO,aAAgB,UAAY,OAAO,YAAY,KAAQ,WACxFC,GAAMD,GAA0B,UAAY,CAC9C,OAAO,YAAY,IAAG,CACxB,EAAI,UAAY,CACd,OAAO,KAAK,IAAG,CACjB,EACA,SAASE,GAAcC,EAAW,CAChC,qBAAqBA,EAAU,EAAE,CACnC,CACA,SAASC,GAAeC,EAAUC,EAAO,CACvC,IAAIC,EAAQN,GAAG,EAEf,SAASO,GAAO,CACVP,GAAG,EAAKM,GAASD,EACnBD,EAAS,KAAK,IAAI,EAElBF,EAAU,GAAK,sBAAsBK,CAAI,CAE7C,CAEA,IAAIL,EAAY,CACd,GAAI,sBAAsBK,CAAI,CAClC,EACE,OAAOL,CACT,CAEA,IAAIM,GAAO,GAEX,SAASC,GAAiBC,EAAa,CAKrC,GAJIA,IAAgB,SAClBA,EAAc,IAGZF,KAAS,IAAME,EAAa,CAC9B,IAAIC,EAAM,SAAS,cAAc,KAAK,EAClCvR,EAAQuR,EAAI,MAChBvR,EAAM,MAAQ,OACdA,EAAM,OAAS,OACfA,EAAM,SAAW,SACjB,SAAS,KAAK,YAAYuR,CAAG,EAC7BH,GAAOG,EAAI,YAAcA,EAAI,YAC7B,SAAS,KAAK,YAAYA,CAAG,CAC/B,CAEA,OAAOH,EACT,CACA,IAAII,GAAkB,KAOtB,SAASC,GAAiBH,EAAa,CAKrC,GAJIA,IAAgB,SAClBA,EAAc,IAGZE,KAAoB,MAAQF,EAAa,CAC3C,IAAII,EAAW,SAAS,cAAc,KAAK,EACvCC,EAAaD,EAAS,MAC1BC,EAAW,MAAQ,OACnBA,EAAW,OAAS,OACpBA,EAAW,SAAW,SACtBA,EAAW,UAAY,MACvB,IAAIC,EAAW,SAAS,cAAc,KAAK,EACvCC,EAAaD,EAAS,MAC1B,OAAAC,EAAW,MAAQ,QACnBA,EAAW,OAAS,QACpBH,EAAS,YAAYE,CAAQ,EAC7B,SAAS,KAAK,YAAYF,CAAQ,EAE9BA,EAAS,WAAa,EACxBF,GAAkB,uBAElBE,EAAS,WAAa,EAElBA,EAAS,aAAe,EAC1BF,GAAkB,WAElBA,GAAkB,sBAItB,SAAS,KAAK,YAAYE,CAAQ,EAC3BF,EACT,CAEA,OAAOA,EACT,CAiBI,QAAQ,IAAI,SA83BhB,IAAIM,GAAmC,IAEnCC,GAAmB,SAAwBxD,EAAOyD,EAAM,CAC1D,OAAOzD,CACT,EAII0D,GAAuB,KACvBC,GAAuB,KAEvB,QAAQ,IAAI,WAAa,cACvB,OAAO,OAAW,KAAe,OAAO,OAAO,QAAY,MAC7DD,GAAoC,IAAI,QACxCC,GAAoC,IAAI,SAI5C,SAASC,GAAoBC,EAAM,CACjC,IAAIC,EAEAC,EAAgBF,EAAK,cACrBG,EAAwBH,EAAK,sBAC7BI,EAAcJ,EAAK,YACnBK,EAAgCL,EAAK,8BACrCM,EAAyBN,EAAK,uBAC9BO,EAA4BP,EAAK,0BACjCQ,EAAoBR,EAAK,kBACzBS,EAAwCT,EAAK,sCAC7CU,EAAgBV,EAAK,cACzB,OAAOC,GAAsB,SAAUU,EAAgB,CACrDxD,GAAeyD,EAAMD,CAAc,EAKnC,SAASC,EAAKla,EAAO,CACnB,IAAIma,EAEJ,OAAAA,EAAQF,EAAe,KAAK,KAAMja,CAAK,GAAK,KAC5Cma,EAAM,eAAiBL,EAAkBK,EAAM,MAAOza,GAAuBya,CAAK,CAAC,EACnFA,EAAM,UAAY,OAClBA,EAAM,2BAA6B,KACnCA,EAAM,MAAQ,CACZ,SAAUza,GAAuBya,CAAK,EACtC,YAAa,GACb,gBAAiB,UACjB,aAAc,OAAOA,EAAM,MAAM,qBAAwB,SAAWA,EAAM,MAAM,oBAAsB,EACtG,yBAA0B,EAClC,EACMA,EAAM,qBAAuB,OAC7BA,EAAM,qBAAuB/C,GAAW,SAAUgD,EAAoBC,EAAmBC,EAAmBC,EAAkB,CAC5H,OAAOJ,EAAM,MAAM,gBAAgB,CACjC,mBAAoBC,EACpB,kBAAmBC,EACnB,kBAAmBC,EACnB,iBAAkBC,CAC5B,CAAS,CACH,CAAC,EACDJ,EAAM,cAAgB,OACtBA,EAAM,cAAgB/C,GAAW,SAAUoD,EAAiBC,EAAcC,EAA0B,CAClG,OAAOP,EAAM,MAAM,SAAS,CAC1B,gBAAiBK,EACjB,aAAcC,EACd,yBAA0BC,CACpC,CAAS,CACH,CAAC,EACDP,EAAM,cAAgB,OAEtBA,EAAM,cAAgB,SAAU1E,EAAO,CACrC,IAAIkF,EAAcR,EAAM,MACpBlW,EAAY0W,EAAY,UACxBC,EAAWD,EAAY,SACvBE,EAASF,EAAY,OAErBG,EAAiBX,EAAM,mBAAmBJ,GAAyCa,EAAUb,GAAyCc,EAAQd,GAAyC9V,CAAS,EAEhMiD,EAEJ,GAAI4T,EAAe,eAAerF,CAAK,EACrCvO,EAAQ4T,EAAerF,CAAK,MACvB,CACL,IAAIsF,EAAUvB,EAAcW,EAAM,MAAO1E,EAAO0E,EAAM,cAAc,EAEhE7B,EAAOoB,EAAYS,EAAM,MAAO1E,EAAO0E,EAAM,cAAc,EAE3Da,EAAe/W,IAAc,cAAgB4W,IAAW,aACxDI,EAAQhX,IAAc,MACtBiX,EAAmBF,EAAeD,EAAU,EAChDD,EAAerF,CAAK,EAAIvO,EAAQ,CAC9B,SAAU,WACV,KAAM+T,EAAQ,OAAYC,EAC1B,MAAOD,EAAQC,EAAmB,OAClC,IAAMF,EAAyB,EAAVD,EACrB,OAASC,EAAsB,OAAP1C,EACxB,MAAO0C,EAAe1C,EAAO,MACzC,CACQ,CAEA,OAAOpR,CACT,EAEAiT,EAAM,mBAAqB,OAC3BA,EAAM,mBAAqB/C,GAAW,SAAU5B,EAAG2F,EAAIC,EAAK,CAC1D,MAAO,CAAA,CACT,CAAC,EAEDjB,EAAM,oBAAsB,SAAUhV,EAAO,CAC3C,IAAIkW,EAAuBlW,EAAM,cAC7BmW,EAAcD,EAAqB,YACnCE,EAAaF,EAAqB,WAClCG,EAAcH,EAAqB,YAEvClB,EAAM,SAAS,SAAUsB,EAAW,CAClC,GAAIA,EAAU,eAAiBF,EAI7B,OAAO,KAGT,IAAItX,EAAYkW,EAAM,MAAM,UACxBM,EAAec,EAEnB,GAAItX,IAAc,MAKhB,OAAQ0U,GAAgB,EAAE,CACxB,IAAK,WACH8B,EAAe,CAACc,EAChB,MAEF,IAAK,sBACHd,EAAee,EAAcF,EAAcC,EAC3C,KAChB,CAIU,OAAAd,EAAe,KAAK,IAAI,EAAG,KAAK,IAAIA,EAAce,EAAcF,CAAW,CAAC,EACrE,CACL,YAAa,GACb,gBAAiBG,EAAU,aAAehB,EAAe,UAAY,WACrE,aAAcA,EACd,yBAA0B,EACtC,CACQ,EAAGN,EAAM,0BAA0B,CACrC,EAEAA,EAAM,kBAAoB,SAAUhV,EAAO,CACzC,IAAIuW,EAAwBvW,EAAM,cAC9BwW,EAAeD,EAAsB,aACrCE,EAAeF,EAAsB,aACrCG,EAAYH,EAAsB,UAEtCvB,EAAM,SAAS,SAAUsB,EAAW,CAClC,GAAIA,EAAU,eAAiBI,EAI7B,OAAO,KAIT,IAAIpB,EAAe,KAAK,IAAI,EAAG,KAAK,IAAIoB,EAAWD,EAAeD,CAAY,CAAC,EAC/E,MAAO,CACL,YAAa,GACb,gBAAiBF,EAAU,aAAehB,EAAe,UAAY,WACrE,aAAcA,EACd,yBAA0B,EACtC,CACQ,EAAGN,EAAM,0BAA0B,CACrC,EAEAA,EAAM,gBAAkB,SAAUhb,EAAK,CACrC,IAAI2c,EAAW3B,EAAM,MAAM,SAC3BA,EAAM,UAAYhb,EAEd,OAAO2c,GAAa,WACtBA,EAAS3c,CAAG,EACH2c,GAAY,MAAQ,OAAOA,GAAa,UAAYA,EAAS,eAAe,SAAS,IAC9FA,EAAS,QAAU3c,EAEvB,EAEAgb,EAAM,2BAA6B,UAAY,CACzCA,EAAM,6BAA+B,MACvCpC,GAAcoC,EAAM,0BAA0B,EAGhDA,EAAM,2BAA6BlC,GAAekC,EAAM,kBAAmBnB,EAAgC,CAC7G,EAEAmB,EAAM,kBAAoB,UAAY,CACpCA,EAAM,2BAA6B,KAEnCA,EAAM,SAAS,CACb,YAAa,EACvB,EAAW,UAAY,CAGbA,EAAM,mBAAmB,GAAI,IAAI,CACnC,CAAC,CACH,EAEOA,CACT,CAEAD,EAAK,yBAA2B,SAAkC6B,EAAWN,EAAW,CACtF,OAAAO,GAAsBD,EAAWN,CAAS,EAC1CzB,EAAc+B,CAAS,EAChB,IACT,EAEA,IAAIE,EAAS/B,EAAK,UAElB,OAAA+B,EAAO,SAAW,SAAkBxB,EAAc,CAChDA,EAAe,KAAK,IAAI,EAAGA,CAAY,EACvC,KAAK,SAAS,SAAUgB,EAAW,CACjC,OAAIA,EAAU,eAAiBhB,EACtB,KAGF,CACL,gBAAiBgB,EAAU,aAAehB,EAAe,UAAY,WACrE,aAAcA,EACd,yBAA0B,EACpC,CACM,EAAG,KAAK,0BAA0B,CACpC,EAEAwB,EAAO,aAAe,SAAsBxG,EAAOxM,EAAO,CACpDA,IAAU,SACZA,EAAQ,QAGV,IAAIiT,EAAe,KAAK,MACpBC,EAAYD,EAAa,UACzBrB,EAASqB,EAAa,OACtBzB,EAAe,KAAK,MAAM,aAC9BhF,EAAQ,KAAK,IAAI,EAAG,KAAK,IAAIA,EAAO0G,EAAY,CAAC,CAAC,EAIlD,IAAIC,EAAgB,EAEpB,GAAI,KAAK,UAAW,CAClB,IAAIN,EAAW,KAAK,UAEhBjB,IAAW,WACbuB,EAAgBN,EAAS,YAAcA,EAAS,YAAcvD,GAAgB,EAAK,EAEnF6D,EAAgBN,EAAS,aAAeA,EAAS,aAAevD,GAAgB,EAAK,CAEzF,CAEA,KAAK,SAASoB,EAA8B,KAAK,MAAOlE,EAAOxM,EAAOwR,EAAc,KAAK,eAAgB2B,CAAa,CAAC,CACzH,EAEAH,EAAO,kBAAoB,UAA6B,CACtD,IAAII,EAAe,KAAK,MACpBpY,EAAYoY,EAAa,UACzBC,EAAsBD,EAAa,oBACnCxB,EAASwB,EAAa,OAE1B,GAAI,OAAOC,GAAwB,UAAY,KAAK,WAAa,KAAM,CACrE,IAAIR,EAAW,KAAK,UAEhB7X,IAAc,cAAgB4W,IAAW,aAC3CiB,EAAS,WAAaQ,EAEtBR,EAAS,UAAYQ,CAEzB,CAEA,KAAK,oBAAmB,CAC1B,EAEAL,EAAO,mBAAqB,UAA8B,CACxD,IAAIM,EAAe,KAAK,MACpBtY,EAAYsY,EAAa,UACzB1B,EAAS0B,EAAa,OACtBC,EAAc,KAAK,MACnB/B,EAAe+B,EAAY,aAC3B9B,EAA2B8B,EAAY,yBAE3C,GAAI9B,GAA4B,KAAK,WAAa,KAAM,CACtD,IAAIoB,EAAW,KAAK,UAEpB,GAAI7X,IAAc,cAAgB4W,IAAW,aAC3C,GAAI5W,IAAc,MAIhB,OAAQ0U,GAAgB,EAAE,CACxB,IAAK,WACHmD,EAAS,WAAa,CAACrB,EACvB,MAEF,IAAK,qBACHqB,EAAS,WAAarB,EACtB,MAEF,QACE,IAAIa,EAAcQ,EAAS,YACvBN,EAAcM,EAAS,YAC3BA,EAAS,WAAaN,EAAcF,EAAcb,EAClD,KAChB,MAEYqB,EAAS,WAAarB,OAGxBqB,EAAS,UAAYrB,CAEzB,CAEA,KAAK,oBAAmB,CAC1B,EAEAwB,EAAO,qBAAuB,UAAgC,CACxD,KAAK,6BAA+B,MACtClE,GAAc,KAAK,0BAA0B,CAEjD,EAEAkE,EAAO,OAAS,UAAkB,CAChC,IAAIQ,EAAe,KAAK,MACpBvc,EAAWuc,EAAa,SACxBxV,EAAYwV,EAAa,UACzBxY,EAAYwY,EAAa,UACzBxN,EAASwN,EAAa,OACtBC,EAAWD,EAAa,SACxBE,EAAmBF,EAAa,iBAChCG,EAAeH,EAAa,aAC5BN,EAAYM,EAAa,UACzBI,EAAWJ,EAAa,SACxBK,EAAuBL,EAAa,QACpCM,EAAUD,IAAyB,OAAS7D,GAAmB6D,EAC/DjC,EAAS4B,EAAa,OACtBO,EAAmBP,EAAa,iBAChCQ,EAAeR,EAAa,aAC5BvV,EAAQuV,EAAa,MACrBS,EAAiBT,EAAa,eAC9BU,EAAQV,EAAa,MACrBW,EAAc,KAAK,MAAM,YAEzBpC,EAAe/W,IAAc,cAAgB4W,IAAW,aACxDwC,EAAWrC,EAAe,KAAK,oBAAsB,KAAK,kBAE1DsC,GAAwB,KAAK,kBAAiB,EAC9C/H,GAAa+H,GAAsB,CAAC,EACpCC,GAAYD,GAAsB,CAAC,EAEnC3P,GAAQ,CAAA,EAEZ,GAAIwO,EAAY,EACd,QAASqB,EAASjI,GAAYiI,GAAUD,GAAWC,IACjD7P,GAAM,KAAK8P,GAAAA,cAAcvd,EAAU,CACjC,KAAM2c,EACN,IAAKE,EAAQS,EAAQX,CAAQ,EAC7B,MAAOW,EACP,YAAaN,EAAiBE,EAAc,OAC5C,MAAO,KAAK,cAAcI,CAAM,CAC5C,CAAW,CAAC,EAMN,IAAIE,EAAqBjE,EAAsB,KAAK,MAAO,KAAK,cAAc,EAC9E,OAAOgE,iBAAcT,GAAoBC,GAAgB,MAAO,CAC9D,UAAWhW,EACX,SAAUoW,EACV,IAAK,KAAK,gBACV,MAAOhe,GAAS,CACd,SAAU,WACV,OAAQ4P,EACR,MAAOkO,EACP,SAAU,OACV,wBAAyB,QACzB,WAAY,YACZ,UAAWlZ,CACrB,EAAWiD,CAAK,CAChB,EAASuW,iBAAcd,GAAoBC,GAAgB,MAAO,CAC1D,SAAUjP,GACV,IAAK+O,EACL,MAAO,CACL,OAAQ1B,EAAe,OAAS0C,EAChC,cAAeN,EAAc,OAAS,OACtC,MAAOpC,EAAe0C,EAAqB,MACrD,CACA,CAAO,CAAC,CACJ,EAEAzB,EAAO,oBAAsB,UAA+B,CAC1D,GAAI,OAAO,KAAK,MAAM,iBAAoB,WAAY,CACpD,IAAIE,EAAY,KAAK,MAAM,UAE3B,GAAIA,EAAY,EAAG,CACjB,IAAIwB,EAAyB,KAAK,kBAAiB,EAC/CC,EAAsBD,EAAuB,CAAC,EAC9CE,EAAqBF,EAAuB,CAAC,EAC7CG,EAAqBH,EAAuB,CAAC,EAC7CI,EAAoBJ,EAAuB,CAAC,EAEhD,KAAK,qBAAqBC,EAAqBC,EAAoBC,EAAoBC,CAAiB,CAC1G,CACF,CAEA,GAAI,OAAO,KAAK,MAAM,UAAa,WAAY,CAC7C,IAAIC,EAAe,KAAK,MACpBC,EAAmBD,EAAa,gBAChCE,EAAgBF,EAAa,aAC7BG,EAA4BH,EAAa,yBAE7C,KAAK,cAAcC,EAAkBC,EAAeC,CAAyB,CAC/E,CACF,EAMAlC,EAAO,kBAAoB,UAA6B,CACtD,IAAImC,EAAe,KAAK,MACpBjC,EAAYiC,EAAa,UACzBC,EAAgBD,EAAa,cAC7BE,EAAe,KAAK,MACpBlB,EAAckB,EAAa,YAC3B9D,EAAkB8D,EAAa,gBAC/B7D,EAAe6D,EAAa,aAEhC,GAAInC,IAAc,EAChB,MAAO,CAAC,EAAG,EAAG,EAAG,CAAC,EAGpB,IAAI5G,EAAaqE,EAAuB,KAAK,MAAOa,EAAc,KAAK,cAAc,EACjF8C,EAAY1D,EAA0B,KAAK,MAAOtE,EAAYkF,EAAc,KAAK,cAAc,EAG/F8D,EAAmB,CAACnB,GAAe5C,IAAoB,WAAa,KAAK,IAAI,EAAG6D,CAAa,EAAI,EACjGG,EAAkB,CAACpB,GAAe5C,IAAoB,UAAY,KAAK,IAAI,EAAG6D,CAAa,EAAI,EACnG,MAAO,CAAC,KAAK,IAAI,EAAG9I,EAAagJ,CAAgB,EAAG,KAAK,IAAI,EAAG,KAAK,IAAIpC,EAAY,EAAGoB,EAAYiB,CAAe,CAAC,EAAGjJ,EAAYgI,CAAS,CAC9I,EAEOrD,CACT,GAAEuE,GAAAA,aAAa,EAAGlF,EAAO,aAAe,CACtC,UAAW,MACX,SAAU,OACV,OAAQ,WACR,cAAe,EACf,eAAgB,EACpB,EAAKA,CACL,CAMA,IAAIyC,GAAwB,SAA6B0C,EAAOC,EAAO,CACrE,IAAIze,EAAWwe,EAAM,SACjBza,EAAYya,EAAM,UAClBzP,EAASyP,EAAM,OACf7D,EAAS6D,EAAM,OACf9B,EAAe8B,EAAM,aACrBzB,EAAeyB,EAAM,aACrBvB,EAAQuB,EAAM,MACdE,EAAWD,EAAM,SAErB,GAAI,QAAQ,IAAI,WAAa,aAAc,EACrC/B,GAAgB,MAAQK,GAAgB,OACtC7D,IAAwB,CAACA,GAAqB,IAAIwF,CAAQ,IAC5DxF,GAAqB,IAAIwF,CAAQ,EACjC,QAAQ,KAAK,mIAAwI,GAKzJ,IAAI5D,EAAe/W,IAAc,cAAgB4W,IAAW,aAE5D,OAAQ5W,EAAS,CACf,IAAK,aACL,IAAK,WACCkV,IAAwB,CAACA,GAAqB,IAAIyF,CAAQ,IAC5DzF,GAAqB,IAAIyF,CAAQ,EACjC,QAAQ,KAAK,uJAA4J,GAG3K,MAEF,IAAK,MACL,IAAK,MAEH,MAEF,QACE,MAAM,MAAM,2FAAkG,IAAO3a,EAAY,mBAAoB,CAC7J,CAEI,OAAQ4W,EAAM,CACZ,IAAK,aACL,IAAK,WAEH,MAEF,QACE,MAAM,MAAM,oGAA2G,IAAOA,EAAS,mBAAoB,CACnK,CAEI,GAAI3a,GAAY,KACd,MAAM,MAAM,sFAA6F,KAAQA,IAAa,KAAO,OAAS,OAAOA,GAAY,mBAAoB,EAGvL,GAAI8a,GAAgB,OAAOmC,GAAU,SACnC,MAAM,MAAM,kGAAyG,KAAQA,IAAU,KAAO,OAAS,OAAOA,GAAS,mBAAoB,EACtL,GAAI,CAACnC,GAAgB,OAAO/L,GAAW,SAC5C,MAAM,MAAM,kGAAyG,KAAQA,IAAW,KAAO,OAAS,OAAOA,GAAU,mBAAoB,CAEjM,CACF,EA+YI4P,GAA6BxF,GAAoB,CACnD,cAAe,SAAuBC,EAAM7D,EAAO,CACjD,IAAImF,EAAWtB,EAAK,SACpB,OAAO7D,EAAQmF,CACjB,EACA,YAAa,SAAqB8D,EAAOjJ,EAAO,CAC9C,IAAImF,EAAW8D,EAAM,SACrB,OAAO9D,CACT,EACA,sBAAuB,SAA+B+D,EAAO,CAC3D,IAAIxC,EAAYwC,EAAM,UAClB/D,EAAW+D,EAAM,SACrB,OAAO/D,EAAWuB,CACpB,EACA,8BAA+B,SAAuC2C,EAAOrJ,EAAOxM,EAAOwR,EAAcsE,EAAe3C,EAAe,CACrI,IAAInY,EAAY6a,EAAM,UAClB7P,EAAS6P,EAAM,OACf3C,EAAY2C,EAAM,UAClBlE,EAAWkE,EAAM,SACjBjE,EAASiE,EAAM,OACf3B,EAAQ2B,EAAM,MAEd9D,EAAe/W,IAAc,cAAgB4W,IAAW,aACxDvC,EAAO0C,EAAemC,EAAQlO,EAC9B+P,EAAiB,KAAK,IAAI,EAAG7C,EAAYvB,EAAWtC,CAAI,EACxD2G,EAAY,KAAK,IAAID,EAAgBvJ,EAAQmF,CAAQ,EACrDsE,EAAY,KAAK,IAAI,EAAGzJ,EAAQmF,EAAWtC,EAAOsC,EAAWwB,CAAa,EAU9E,OARInT,IAAU,UACRwR,GAAgByE,EAAY5G,GAAQmC,GAAgBwE,EAAY3G,EAClErP,EAAQ,OAERA,EAAQ,UAIJA,EAAK,CACX,IAAK,QACH,OAAOgW,EAET,IAAK,MACH,OAAOC,EAET,IAAK,SACH,CAGE,IAAIC,EAAe,KAAK,MAAMD,GAAaD,EAAYC,GAAa,CAAC,EAErE,OAAIC,EAAe,KAAK,KAAK7G,EAAO,CAAC,EAC5B,EACE6G,EAAeH,EAAiB,KAAK,MAAM1G,EAAO,CAAC,EACrD0G,EAEAG,CAEX,CAEF,IAAK,OACL,QACE,OAAI1E,GAAgByE,GAAazE,GAAgBwE,EACxCxE,EACEA,EAAeyE,EACjBA,EAEAD,CAGjB,CACE,EACA,uBAAwB,SAAgCG,EAAOC,EAAQ,CACrE,IAAIlD,EAAYiD,EAAM,UAClBxE,EAAWwE,EAAM,SACrB,OAAO,KAAK,IAAI,EAAG,KAAK,IAAIjD,EAAY,EAAG,KAAK,MAAMkD,EAASzE,CAAQ,CAAC,CAAC,CAC3E,EACA,0BAA2B,SAAmC0E,EAAO/J,EAAYkF,EAAc,CAC7F,IAAIxW,EAAYqb,EAAM,UAClBrQ,EAASqQ,EAAM,OACfnD,EAAYmD,EAAM,UAClB1E,EAAW0E,EAAM,SACjBzE,EAASyE,EAAM,OACfnC,EAAQmC,EAAM,MAEdtE,EAAe/W,IAAc,cAAgB4W,IAAW,aACxDwE,EAAS9J,EAAaqF,EACtBtC,EAAO0C,EAAemC,EAAQlO,EAC9BsQ,EAAkB,KAAK,MAAMjH,EAAOmC,EAAe4E,GAAUzE,CAAQ,EACzE,OAAO,KAAK,IAAI,EAAG,KAAK,IAAIuB,EAAY,EAAG5G,EAAagK,EAAkB,CAC9E,CAAK,CACH,EACA,kBAAmB,SAA2Bvf,EAAO,CACrD,EACA,sCAAuC,GACvC,cAAe,SAAuBwf,EAAO,CAC3C,IAAI5E,EAAW4E,EAAM,SAErB,GAAI,QAAQ,IAAI,WAAa,cACvB,OAAO5E,GAAa,SACtB,MAAM,MAAM,6EAAoF,KAAQA,IAAa,KAAO,OAAS,OAAOA,GAAY,mBAAoB,CAGlL,CACF,CAAC,ECn9DD,MAAMhY,GAAS6c,GAET/O,GAAcgP,GAEd1Y,GAAc2Y,GAqBdta,GAAgBjG,EAAM,WAG1B,CAAC,CAAE,UAAA6H,EAAW,SAAA/G,EAAU,QAAA0f,EAAU,UAAW,GAAG5f,CAAA,EAASb,IACzD2F,EAAAA,KAAC+a,GAAA,CACC,IAAA1gB,EACA,UAAW2gB,EAAAA,GACT,kUACA,4HACAF,IAAY,WACV,yGACF3Y,CAAA,EAED,GAAGjH,EAEH,SAAA,CAAAE,EACDQ,EAAAA,IAACqf,GAAA,CAAqB,QAAO,GAC3B,SAAArf,EAAAA,IAACsf,eAAA,CAAY,UAAU,oBAAA,CAAqB,CAAA,CAC9C,CAAA,CAAA,CACF,CACD,EACD3a,GAAc,YAAcwa,GAAwB,YAMpD,MAAM/M,GAAuB1T,EAAM,WAGjC,CAAC,CAAE,UAAA6H,EAAW,GAAGjH,CAAA,EAASb,IAC1BuB,EAAAA,IAACuf,GAAA,CACC,IAAA9gB,EACA,UAAW2gB,EAAAA,GACT,uDACA7Y,CAAA,EAED,GAAGjH,EAEJ,SAAAU,EAAAA,IAAC3B,GAAA,CAAU,UAAU,QAAA,CAAS,CAAA,CAChC,CACD,EACD+T,GAAqB,YAAcmN,GAA+B,YAMlE,MAAM5M,GAAyBjU,EAAM,WAGnC,CAAC,CAAE,UAAA6H,EAAW,GAAGjH,CAAA,EAASb,IAC1BuB,EAAAA,IAACwf,GAAA,CACC,IAAA/gB,EACA,UAAW2gB,EAAAA,GACT,uDACA7Y,CAAA,EAED,GAAGjH,EAEJ,SAAAU,EAAAA,IAACsf,GAAAA,YAAA,CAAY,UAAU,SAAA,CAAU,CAAA,CACnC,CACD,EACD3M,GAAuB,YACrB6M,GAAiC,YAMnC,MAAMlY,GAAgB5I,EAAM,WAG1B,CAAC,CAAE,UAAA6H,EAAW,SAAA/G,EAAU,SAAAyI,EAAW,SAAU,GAAG3I,GAASb,IACzDuB,EAAAA,IAACyf,GAAA,CACC,SAAArb,EAAAA,KAACsb,GAAA,CACC,IAAAjhB,EACA,UAAW2gB,EAAAA,GACT,scACAnX,IAAa,UACX,kIACF1B,CAAA,EAEF,SAAA0B,EACC,GAAG3I,EAEJ,SAAA,CAAAU,EAAAA,IAACoS,GAAA,EAAqB,EACtBpS,EAAAA,IAAC2f,GAAA,CACC,UAAWP,EAAAA,GACT,MACAnX,IAAa,UACX,yFAAA,EAGH,SAAAzI,CAAA,CAAA,QAEFmT,GAAA,CAAA,CAAuB,CAAA,CAAA,CAC1B,EACF,CACD,EACDrL,GAAc,YAAcoY,GAAwB,YAMpD,MAAMtP,GAAc1R,EAAM,WAGxB,CAAC,CAAE,UAAA6H,EAAW,GAAGjH,CAAA,EAASb,IAC1BuB,EAAAA,IAAC4f,GAAA,CACC,IAAAnhB,EACA,UAAW2gB,EAAAA,GAAG,yCAA0C7Y,CAAS,EAChE,GAAGjH,CAAA,CACN,CACD,EACD8Q,GAAY,YAAcwP,GAAsB,YAMhD,MAAMlP,GAAahS,EAAM,WAGvB,CAAC,CAAE,UAAA6H,EAAW,SAAA/G,EAAU,GAAGF,GAASb,IACpC2F,EAAAA,KAACyb,GAAA,CACC,IAAAphB,EACA,UAAW2gB,EAAAA,GACT,4NACA7Y,CAAA,EAED,GAAGjH,EAEJ,SAAA,CAAAU,EAAAA,IAAC,OAAA,CAAK,UAAU,+DACd,SAAAA,EAAAA,IAAC8f,GAAA,CACC,SAAA9f,EAAAA,IAAC+f,GAAAA,MAAA,CAAM,UAAU,SAAA,CAAU,CAAA,CAC7B,EACF,EAEA/f,MAACggB,GAAA,CAA0B,SAAAxgB,CAAA,CAAS,CAAA,CAAA,CACtC,CACD,EACDkR,GAAW,YAAcmP,GAAqB,YAM9C,MAAMvM,GAAkB5U,EAAM,WAG5B,CAAC,CAAE,UAAA6H,EAAW,GAAGjH,CAAA,EAASb,IAC1BuB,EAAAA,IAACigB,GAAA,CACC,IAAAxhB,EACA,UAAW2gB,EAAAA,GAAG,2BAA4B7Y,CAAS,EAClD,GAAGjH,CAAA,CACN,CACD,EACDgU,GAAgB,YAAc2M,GAA0B,YAuBxD,MAAMC,GAA2BxhB,EAAM,WAIrC,CACE,CACE,UAAA6H,EACA,QAAA4Z,EACA,SAAAlY,EAAW,SACX,WAAAmY,EAAa,GACb,UAAAC,EAAY,IACZ,GAAG/gB,CAAA,EAELb,IACG,CACH,MAAM6hB,EAAUC,GAAAA,OAAsB,IAAI,EAapCC,EAAM,CAAC,CAAE,MAAAzL,EAAO,MAAAvO,KAAqD,CACzE,MAAMtC,EAASic,EAAQpL,CAAK,EAC5B,OACE/U,EAAAA,IAAC,MAAA,CAAI,MAAAwG,EACH,SAAAxG,EAAAA,IAAC0Q,GAAA,CAAW,MAAO,GAAGxM,EAAO,KAAK,GAAK,SAAAA,EAAO,KAAA,CAAM,EACtD,CAEJ,EAEA,OACElE,EAAAA,IAACsH,GAAA,CAAc,IAAA7I,EAAW,GAAGa,EAC3B,SAAAU,EAAAA,IAACwZ,GAAA,CACC,IAAK8G,EACL,OAAQ,KAAK,IAAID,EAAWF,EAAQ,OAASC,CAAU,EACvD,UAAWD,EAAQ,OACnB,SAAUC,EACV,MAAM,OAEL,SAAAI,CAAA,CAAA,EAEL,CAEJ,CACF,EAEAN,GAAyB,YAAc","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const s=require("react/jsx-runtime"),v=require("react");require("react-dom");const N=require("./index-CMEUY8i_.cjs.js"),O=require("./utils-C4d7Ql9-.cjs.js");function b(r){if(r&&r.__esModule)return r;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const e in r)if(e!=="default"){const i=Object.getOwnPropertyDescriptor(r,e);Object.defineProperty(t,e,i.get?i:{enumerable:!0,get:()=>r[e]})}}return t.default=r,Object.freeze(t)}const l=b(v);var S=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],h=S.reduce((r,t)=>{const e=N.createSlot(`Primitive.${t}`),i=l.forwardRef((o,a)=>{const{asChild:c,...n}=o,m=c?e:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),s.jsx(m,{...n,ref:a})});return i.displayName=`Primitive.${t}`,{...r,[t]:i}},{}),w="Separator",u="horizontal",y=["horizontal","vertical"],d=l.forwardRef((r,t)=>{const{decorative:e,orientation:i=u,...o}=r,a=P(i)?i:u,n=e?{role:"none"}:{"aria-orientation":a==="vertical"?a:void 0,role:"separator"};return s.jsx(h.div,{"data-orientation":a,...n,...o,ref:t})});d.displayName=w;function P(r){return y.includes(r)}var p=d;const f=l.forwardRef(({className:r,orientation:t="horizontal",decorative:e=!0,...i},o)=>s.jsx(p,{ref:o,decorative:e,orientation:t,className:O.cn("bg-border shrink-0",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",r),...i}));f.displayName=p.displayName;exports.Separator=f;
|
|
2
|
+
//# sourceMappingURL=separator-CGvV-BlI.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"separator-CGvV-BlI.cjs.js","sources":["../../node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../node_modules/@radix-ui/react-separator/dist/index.mjs","../../src/ui/separator/separator.tsx"],"sourcesContent":["// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// src/separator.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Separator\";\nvar DEFAULT_ORIENTATION = \"horizontal\";\nvar ORIENTATIONS = [\"horizontal\", \"vertical\"];\nvar Separator = React.forwardRef((props, forwardedRef) => {\n const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;\n const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;\n const ariaOrientation = orientation === \"vertical\" ? orientation : void 0;\n const semanticProps = decorative ? { role: \"none\" } : { \"aria-orientation\": ariaOrientation, role: \"separator\" };\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-orientation\": orientation,\n ...semanticProps,\n ...domProps,\n ref: forwardedRef\n }\n );\n});\nSeparator.displayName = NAME;\nfunction isValidOrientation(orientation) {\n return ORIENTATIONS.includes(orientation);\n}\nvar Root = Separator;\nexport {\n Root,\n Separator\n};\n//# sourceMappingURL=index.mjs.map\n","import * as SeparatorPrimitive from '@radix-ui/react-separator';\nimport * as React from 'react';\nimport { cn } from '../../lib';\n\n/**\n * Separator - Visual divider for groups of content.\n * @returns {JSX.Element} The rendered Separator component.\n * @param {object} props - The properties for the component.\n * @param {string} [props.className] - Additional classes for the separator.\n * @param {'horizontal' | 'vertical'} [props.orientation='horizontal'] - The orientation of the separator.\n * @param {boolean} [props.decorative=true] - Whether the separator is decorative or semantic.\n */\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = 'horizontal', decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'bg-border shrink-0',\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\n className\n )}\n {...props}\n />\n )\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n"],"names":["NODES","Primitive","primitive","node","Slot","createSlot","Node","React","props","forwardedRef","asChild","primitiveProps","Comp","jsx","NAME","DEFAULT_ORIENTATION","ORIENTATIONS","Separator","decorative","orientationProp","domProps","orientation","isValidOrientation","semanticProps","Root","className","ref","SeparatorPrimitive.Root","cn"],"mappings":"geAKA,IAAIA,EAAQ,CACV,IACA,SACA,MACA,OACA,KACA,KACA,MACA,QACA,QACA,KACA,MACA,KACA,IACA,SACA,OACA,MACA,IACF,EACIC,EAAYD,EAAM,OAAO,CAACE,EAAWC,IAAS,CAChD,MAAMC,EAAOC,EAAAA,WAAW,aAAaF,CAAI,EAAE,EACrCG,EAAOC,EAAM,WAAW,CAACC,EAAOC,IAAiB,CACrD,KAAM,CAAE,QAAAC,EAAS,GAAGC,CAAc,EAAKH,EACjCI,EAAOF,EAAUN,EAAOD,EAC9B,OAAI,OAAO,OAAW,MACpB,OAAO,OAAO,IAAI,UAAU,CAAC,EAAI,IAEZU,EAAAA,IAAID,EAAM,CAAE,GAAGD,EAAgB,IAAKF,EAAc,CAC3E,CAAC,EACD,OAAAH,EAAK,YAAc,aAAaH,CAAI,GAC7B,CAAE,GAAGD,EAAW,CAACC,CAAI,EAAGG,CAAI,CACrC,EAAG,EAAE,EChCDQ,EAAO,YACPC,EAAsB,aACtBC,EAAe,CAAC,aAAc,UAAU,EACxCC,EAAYV,EAAM,WAAW,CAACC,EAAOC,IAAiB,CACxD,KAAM,CAAE,WAAAS,EAAY,YAAaC,EAAkBJ,EAAqB,GAAGK,CAAQ,EAAKZ,EAClFa,EAAcC,EAAmBH,CAAe,EAAIA,EAAkBJ,EAEtEQ,EAAgBL,EAAa,CAAE,KAAM,QAAW,CAAE,mBADhCG,IAAgB,WAAaA,EAAc,OAC0B,KAAM,WAAW,EAC9G,OAAuBR,EAAAA,IACrBZ,EAAU,IACV,CACE,mBAAoBoB,EACpB,GAAGE,EACH,GAAGH,EACH,IAAKX,CACX,CACA,CACA,CAAC,EACDQ,EAAU,YAAcH,EACxB,SAASQ,EAAmBD,EAAa,CACvC,OAAOL,EAAa,SAASK,CAAW,CAC1C,CACA,IAAIG,EAAOP,ECdX,MAAMA,EAAYV,EAAM,WAItB,CACE,CAAE,UAAAkB,EAAW,YAAAJ,EAAc,aAAc,WAAAH,EAAa,GAAM,GAAGV,GAC/DkB,IAEAb,EAAAA,IAACc,EAAA,CACC,IAAAD,EACA,WAAAR,EACA,YAAAG,EACA,UAAWO,EAAAA,GACT,qBACAP,IAAgB,aAAe,iBAAmB,iBAClDI,CAAA,EAED,GAAGjB,CAAA,CAAA,CAGV,EACAS,EAAU,YAAcU,EAAwB","x_google_ignoreList":[0,1]}
|