@shapio/cms 0.5.8 → 0.5.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/assets/{AssetTile-BrMzsUZD.js → AssetTile-DecaDqjj.js} +2 -2
- package/dist/admin/assets/{AssetTile-BrMzsUZD.js.map → AssetTile-DecaDqjj.js.map} +1 -1
- package/dist/admin/assets/AssistError-rslPtgWB.js +2 -0
- package/dist/admin/assets/{AssistError-Cs-r9Ssc.js.map → AssistError-rslPtgWB.js.map} +1 -1
- package/dist/admin/assets/{BlockMenuItems-DsccXMc_.js → BlockMenuItems-JHFue7Qt.js} +2 -2
- package/dist/admin/assets/{BlockMenuItems-DsccXMc_.js.map → BlockMenuItems-JHFue7Qt.js.map} +1 -1
- package/dist/admin/assets/Body-7NgJl9Pi.js +2 -0
- package/dist/admin/assets/Body-7NgJl9Pi.js.map +1 -0
- package/dist/admin/assets/Builder-DmlYcgiP.js +2 -0
- package/dist/admin/assets/Builder-DmlYcgiP.js.map +1 -0
- package/dist/admin/assets/{CodeEditor-CBCR73Wd.js → CodeEditor-Dv1FtkvI.js} +2 -2
- package/dist/admin/assets/{CodeEditor-CBCR73Wd.js.map → CodeEditor-Dv1FtkvI.js.map} +1 -1
- package/dist/admin/assets/{CopyButton-CxFsBHfF.js → CopyButton-Brnpfqe0.js} +2 -2
- package/dist/admin/assets/{CopyButton-CxFsBHfF.js.map → CopyButton-Brnpfqe0.js.map} +1 -1
- package/dist/admin/assets/{CursorPager-BW2U3v6l.js → CursorPager-C7cAK5Qe.js} +2 -2
- package/dist/admin/assets/{CursorPager-BW2U3v6l.js.map → CursorPager-C7cAK5Qe.js.map} +1 -1
- package/dist/admin/assets/{ExternalLink-BITMgS1K.js → ExternalLink-D80sb5Jj.js} +2 -2
- package/dist/admin/assets/{ExternalLink-BITMgS1K.js.map → ExternalLink-D80sb5Jj.js.map} +1 -1
- package/dist/admin/assets/{FocalPoint-CpZTve1E.js → FocalPoint-Bhtb1gUa.js} +2 -2
- package/dist/admin/assets/{FocalPoint-CpZTve1E.js.map → FocalPoint-Bhtb1gUa.js.map} +1 -1
- package/dist/admin/assets/Form-Cf1ephPH.js +2 -0
- package/dist/admin/assets/Form-Cf1ephPH.js.map +1 -0
- package/dist/admin/assets/FormCheckboxGroup-BzVZFR3W.js +2 -0
- package/dist/admin/assets/FormCheckboxGroup-BzVZFR3W.js.map +1 -0
- package/dist/admin/assets/{FormRadioGroup-Cfx5pvzU.js → FormRadioGroup-BzmLzRnI.js} +2 -2
- package/dist/admin/assets/{FormRadioGroup-Cfx5pvzU.js.map → FormRadioGroup-BzmLzRnI.js.map} +1 -1
- package/dist/admin/assets/FormSelectField-Cl7EjXc3.js +2 -0
- package/dist/admin/assets/FormSelectField-Cl7EjXc3.js.map +1 -0
- package/dist/admin/assets/FormSheet-CLZpd_7B.js +2 -0
- package/dist/admin/assets/FormSheet-CLZpd_7B.js.map +1 -0
- package/dist/admin/assets/{FormSwitchField-BLOh7qei.js → FormSwitchField-BbqQ3tx_.js} +2 -2
- package/dist/admin/assets/{FormSwitchField-BLOh7qei.js.map → FormSwitchField-BbqQ3tx_.js.map} +1 -1
- package/dist/admin/assets/{FormTextareaField-CO115n_u.js → FormTextareaField-9RN5Pt3B.js} +2 -2
- package/dist/admin/assets/{FormTextareaField-CO115n_u.js.map → FormTextareaField-9RN5Pt3B.js.map} +1 -1
- package/dist/admin/assets/{HintedLabel-DzHnEdIK.js → HintedLabel-D9IVF0EE.js} +2 -2
- package/dist/admin/assets/{HintedLabel-DzHnEdIK.js.map → HintedLabel-D9IVF0EE.js.map} +1 -1
- package/dist/admin/assets/{InfoHint-CSEtcHjL.js → InfoHint-tlSeZB9U.js} +2 -2
- package/dist/admin/assets/{InfoHint-CSEtcHjL.js.map → InfoHint-tlSeZB9U.js.map} +1 -1
- package/dist/admin/assets/{InlineConfirm-yW-iUKFC.js → InlineConfirm-Kj9AOIFO.js} +2 -2
- package/dist/admin/assets/{InlineConfirm-yW-iUKFC.js.map → InlineConfirm-Kj9AOIFO.js.map} +1 -1
- package/dist/admin/assets/{InsertMenuItem-CCr9e0qY.js → InsertMenuItem-CHAp2tH7.js} +2 -2
- package/dist/admin/assets/{InsertMenuItem-CCr9e0qY.js.map → InsertMenuItem-CHAp2tH7.js.map} +1 -1
- package/dist/admin/assets/{LinkTabs-8SmS1vCd.js → LinkTabs-oQXsy1I3.js} +2 -2
- package/dist/admin/assets/{LinkTabs-8SmS1vCd.js.map → LinkTabs-oQXsy1I3.js.map} +1 -1
- package/dist/admin/assets/{Match-CcD9KxHH.js → Match-BfNRwPfR.js} +2 -2
- package/dist/admin/assets/{Match-CcD9KxHH.js.map → Match-BfNRwPfR.js.map} +1 -1
- package/dist/admin/assets/{NoAccess-C8RLPN0I.js → NoAccess-DnEpYj9l.js} +2 -2
- package/dist/admin/assets/{NoAccess-C8RLPN0I.js.map → NoAccess-DnEpYj9l.js.map} +1 -1
- package/dist/admin/assets/Panel-Bcl09TtM.js.map +1 -1
- package/dist/admin/assets/{QueryView-xMP_uJ_t.js → QueryView-B86NcRt5.js} +2 -2
- package/dist/admin/assets/{QueryView-xMP_uJ_t.js.map → QueryView-B86NcRt5.js.map} +1 -1
- package/dist/admin/assets/{RadioTile-DQFmni5A.js → RadioTile-Bwd2Pmlk.js} +2 -2
- package/dist/admin/assets/RadioTile-Bwd2Pmlk.js.map +1 -0
- package/dist/admin/assets/{RichTextField-CVHRIbnu.js → RichTextField-Dou79MHF.js} +4 -4
- package/dist/admin/assets/RichTextField-Dou79MHF.js.map +1 -0
- package/dist/admin/assets/{RowTitle-Bqt6evG9.js → RowTitle-DH9OZs3g.js} +2 -2
- package/dist/admin/assets/{RowTitle-Bqt6evG9.js.map → RowTitle-DH9OZs3g.js.map} +1 -1
- package/dist/admin/assets/{SecretReveal-Bm6nYg5J.js → SecretReveal-D95oACLj.js} +2 -2
- package/dist/admin/assets/{SecretReveal-Bm6nYg5J.js.map → SecretReveal-D95oACLj.js.map} +1 -1
- package/dist/admin/assets/{SharedGlyph-cUmTh0_C.js → SharedGlyph-Chwb1EIS.js} +2 -2
- package/dist/admin/assets/{SharedGlyph-cUmTh0_C.js.map → SharedGlyph-Chwb1EIS.js.map} +1 -1
- package/dist/admin/assets/StepList-D9iHsUZJ.js +2 -0
- package/dist/admin/assets/StepList-D9iHsUZJ.js.map +1 -0
- package/dist/admin/assets/Structure-CewJL1b3.js +2 -0
- package/dist/admin/assets/{Structure-D8csgrIt.js.map → Structure-CewJL1b3.js.map} +1 -1
- package/dist/admin/assets/{SubNavLink-CiCaVV8U.js → SubNavLink-7Cs1LqMv.js} +2 -2
- package/dist/admin/assets/SubNavLink-7Cs1LqMv.js.map +1 -0
- package/dist/admin/assets/{SuggestAltButton-CvIoirnz.js → SuggestAltButton-BK1uo4yC.js} +2 -2
- package/dist/admin/assets/{SuggestAltButton-CvIoirnz.js.map → SuggestAltButton-BK1uo4yC.js.map} +1 -1
- package/dist/admin/assets/{TextLink-HRn66VL1.js → TextLink-Dfs5wsc5.js} +2 -2
- package/dist/admin/assets/{TextLink-HRn66VL1.js.map → TextLink-Dfs5wsc5.js.map} +1 -1
- package/dist/admin/assets/{Thumbnail-DNj5TRBI.js → Thumbnail-C2A_Ub77.js} +2 -2
- package/dist/admin/assets/{Thumbnail-DNj5TRBI.js.map → Thumbnail-C2A_Ub77.js.map} +1 -1
- package/dist/admin/assets/Trans-CPoNNUK1.js +2 -0
- package/dist/admin/assets/Trans-CPoNNUK1.js.map +1 -0
- package/dist/admin/assets/{UnsavedChangesGuard-CUiuMklN.js → UnsavedChangesGuard-BsEyn9oH.js} +2 -2
- package/dist/admin/assets/{UnsavedChangesGuard-CUiuMklN.js.map → UnsavedChangesGuard-BsEyn9oH.js.map} +1 -1
- package/dist/admin/assets/{UserAvatar-p-jV-LoD.js → UserAvatar-CgGKOFfP.js} +2 -2
- package/dist/admin/assets/{UserAvatar-p-jV-LoD.js.map → UserAvatar-CgGKOFfP.js.map} +1 -1
- package/dist/admin/assets/auth-BFSvtV59.js +2 -0
- package/dist/admin/assets/{auth-CQO4MBUj.js.map → auth-BFSvtV59.js.map} +1 -1
- package/dist/admin/assets/{badge-CqKF1pwz.js → badge-DGqA_yr_.js} +2 -2
- package/dist/admin/assets/{badge-CqKF1pwz.js.map → badge-DGqA_yr_.js.map} +1 -1
- package/dist/admin/assets/baseExtensions-TVKN1UwW.js.map +1 -1
- package/dist/admin/assets/{boxes-CAygw8zF.js → boxes-_5klpWNM.js} +2 -2
- package/dist/admin/assets/{boxes-CAygw8zF.js.map → boxes-_5klpWNM.js.map} +1 -1
- package/dist/admin/assets/{calendar-clock-BZGtAvWR.js → calendar-clock-VXok22Xj.js} +2 -2
- package/dist/admin/assets/{calendar-clock-BZGtAvWR.js.map → calendar-clock-VXok22Xj.js.map} +1 -1
- package/dist/admin/assets/changeSets-B6HxCJ4A.js +2 -0
- package/dist/admin/assets/{changeSets-8EburmT0.js.map → changeSets-B6HxCJ4A.js.map} +1 -1
- package/dist/admin/assets/chevron-left-CkRxDtvO.js +2 -0
- package/dist/admin/assets/{chevron-left-DGU3HGYG.js.map → chevron-left-CkRxDtvO.js.map} +1 -1
- package/dist/admin/assets/{circle-check-C37MSJqX.js → circle-check-DtDq7QMo.js} +2 -2
- package/dist/admin/assets/{circle-check-C37MSJqX.js.map → circle-check-DtDq7QMo.js.map} +1 -1
- package/dist/admin/assets/{clock-2arjsgZ4.js → clock-BtvZR9KD.js} +2 -2
- package/dist/admin/assets/{clock-2arjsgZ4.js.map → clock-BtvZR9KD.js.map} +1 -1
- package/dist/admin/assets/cn-DVhJ55Mo.js.map +1 -1
- package/dist/admin/assets/{constants-a_15vqOh.js → constants-DY3YJAKH.js} +2 -2
- package/dist/admin/assets/{constants-a_15vqOh.js.map → constants-DY3YJAKH.js.map} +1 -1
- package/dist/admin/assets/content-BNZF26Ve.js +3 -0
- package/dist/admin/assets/content-BNZF26Ve.js.map +1 -0
- package/dist/admin/assets/{contentCounts-DP7YYeZZ.js → contentCounts-BzC7IQqP.js} +2 -2
- package/dist/admin/assets/{contentCounts-DP7YYeZZ.js.map → contentCounts-BzC7IQqP.js.map} +1 -1
- package/dist/admin/assets/{contentTypes-84uc0bjR.js → contentTypes-Bz2xpqGf.js} +2 -2
- package/dist/admin/assets/{contentTypes-84uc0bjR.js.map → contentTypes-Bz2xpqGf.js.map} +1 -1
- package/dist/admin/assets/{context-IKYdzQJ-.js → context-CEVKblBl.js} +2 -2
- package/dist/admin/assets/{context-IKYdzQJ-.js.map → context-CEVKblBl.js.map} +1 -1
- package/dist/admin/assets/{copy-CsSRHgKZ.js → copy-B7vIq8DS.js} +2 -2
- package/dist/admin/assets/{copy-CsSRHgKZ.js.map → copy-B7vIq8DS.js.map} +1 -1
- package/dist/admin/assets/createLucideIcon-BOsNKleB.js +2 -0
- package/dist/admin/assets/createLucideIcon-BOsNKleB.js.map +1 -0
- package/dist/admin/assets/develop-D6CtwuYj.js +11 -0
- package/dist/admin/assets/develop-D6CtwuYj.js.map +1 -0
- package/dist/admin/assets/{dropdown-menu-_xfaEp5C.js → dropdown-menu-Bz7CLcRK.js} +2 -2
- package/dist/admin/assets/{dropdown-menu-_xfaEp5C.js.map → dropdown-menu-Bz7CLcRK.js.map} +1 -1
- package/dist/admin/assets/{ellipsis-F91991on.js → ellipsis-Ci0rsbCJ.js} +2 -2
- package/dist/admin/assets/{ellipsis-F91991on.js.map → ellipsis-Ci0rsbCJ.js.map} +1 -1
- package/dist/admin/assets/{entryLink-CVB-TdIn.js → entryLink-B0hSb_dN.js} +2 -2
- package/dist/admin/assets/{entryLink-CVB-TdIn.js.map → entryLink-B0hSb_dN.js.map} +1 -1
- package/dist/admin/assets/es2015-Cv57ynE1.js +42 -0
- package/dist/admin/assets/es2015-Cv57ynE1.js.map +1 -0
- package/dist/admin/assets/{external-link-CdG6kHfA.js → external-link-Bs9YRzvY.js} +2 -2
- package/dist/admin/assets/{external-link-CdG6kHfA.js.map → external-link-Bs9YRzvY.js.map} +1 -1
- package/dist/admin/assets/{field-COOzRptX.js → field-D-xWW2E7.js} +2 -2
- package/dist/admin/assets/{field-COOzRptX.js.map → field-D-xWW2E7.js.map} +1 -1
- package/dist/admin/assets/{file-stack-28ZtO1xW.js → file-stack-X4OGmkLA.js} +2 -2
- package/dist/admin/assets/{file-stack-28ZtO1xW.js.map → file-stack-X4OGmkLA.js.map} +1 -1
- package/dist/admin/assets/{fileRoute-s7mCMYUJ.js → fileRoute-DMal-zYL.js} +2 -2
- package/dist/admin/assets/{fileRoute-s7mCMYUJ.js.map → fileRoute-DMal-zYL.js.map} +1 -1
- package/dist/admin/assets/{folder-plus-DIk0pWkP.js → folder-plus-De2GNvry.js} +2 -2
- package/dist/admin/assets/{folder-plus-DIk0pWkP.js.map → folder-plus-De2GNvry.js.map} +1 -1
- package/dist/admin/assets/followPlural-CsgeALTW.js +2 -0
- package/dist/admin/assets/followPlural-CsgeALTW.js.map +1 -0
- package/dist/admin/assets/{globe-DFr3Gd2w.js → globe-DBw84s8Z.js} +2 -2
- package/dist/admin/assets/{globe-DFr3Gd2w.js.map → globe-DBw84s8Z.js.map} +1 -1
- package/dist/admin/assets/{image-DT79QFa_.js → image-CX4mT-_R.js} +2 -2
- package/dist/admin/assets/{image-DT79QFa_.js.map → image-CX4mT-_R.js.map} +1 -1
- package/dist/admin/assets/{image-off-DFs5upyX.js → image-off-CVaH_qKf.js} +2 -2
- package/dist/admin/assets/{image-off-DFs5upyX.js.map → image-off-CVaH_qKf.js.map} +1 -1
- package/dist/admin/assets/inbox-C0PVc6UI.js +2 -0
- package/dist/admin/assets/inbox-C0PVc6UI.js.map +1 -0
- package/dist/admin/assets/{inbox-CySnQydm.js → inbox-D9SmWt5L.js} +2 -2
- package/dist/admin/assets/{inbox-CySnQydm.js.map → inbox-D9SmWt5L.js.map} +1 -1
- package/dist/admin/assets/index-BqtCXB0u.js +4 -0
- package/dist/admin/assets/index-BqtCXB0u.js.map +1 -0
- package/dist/admin/assets/index-DZsQq6fY.css +2 -0
- package/dist/admin/assets/{key-round-D36CePnN.js → key-round-C8sd9CLN.js} +2 -2
- package/dist/admin/assets/{key-round-D36CePnN.js.map → key-round-C8sd9CLN.js.map} +1 -1
- package/dist/admin/assets/{labels-DQckbLGW.js → labels-BtktCNGw.js} +2 -2
- package/dist/admin/assets/{labels-DQckbLGW.js.map → labels-BtktCNGw.js.map} +1 -1
- package/dist/admin/assets/{languages-CzbTaQv9.js → languages-DLjdz6gb.js} +2 -2
- package/dist/admin/assets/{languages-CzbTaQv9.js.map → languages-DLjdz6gb.js.map} +1 -1
- package/dist/admin/assets/{layers-BmcodiaH.js → layers-swLuw-3a.js} +2 -2
- package/dist/admin/assets/{layers-BmcodiaH.js.map → layers-swLuw-3a.js.map} +1 -1
- package/dist/admin/assets/{link-2-off-CoJNwrxm.js → link-2-off-CEsI5T8h.js} +2 -2
- package/dist/admin/assets/{link-2-off-CoJNwrxm.js.map → link-2-off-CEsI5T8h.js.map} +1 -1
- package/dist/admin/assets/{link-Pyr2Y35S.js → link-C98FG_p5.js} +2 -2
- package/dist/admin/assets/{link-Pyr2Y35S.js.map → link-C98FG_p5.js.map} +1 -1
- package/dist/admin/assets/locales-CkuC7TJ1.js +2 -0
- package/dist/admin/assets/{locales-Bg3htKo8.js.map → locales-CkuC7TJ1.js.map} +1 -1
- package/dist/admin/assets/media-CbGSd_Mw.js +2 -0
- package/dist/admin/assets/{media-BCnVhaDH.js.map → media-CbGSd_Mw.js.map} +1 -1
- package/dist/admin/assets/{media-CURizGns.js → media-CeZGDGh7.js} +2 -2
- package/dist/admin/assets/{media-CURizGns.js.map → media-CeZGDGh7.js.map} +1 -1
- package/dist/admin/assets/network-BflLSKFO.js +2 -0
- package/dist/admin/assets/network-BflLSKFO.js.map +1 -0
- package/dist/admin/assets/{plus-BoDtdLCo.js → plus-cr9ZfO6j.js} +2 -2
- package/dist/admin/assets/{plus-BoDtdLCo.js.map → plus-cr9ZfO6j.js.map} +1 -1
- package/dist/admin/assets/publishing-BkxBplUZ.js +2 -0
- package/dist/admin/assets/publishing-BkxBplUZ.js.map +1 -0
- package/dist/admin/assets/{radio-group-4ok5evXq.js → radio-group-CRuWQnuV.js} +2 -2
- package/dist/admin/assets/{radio-group-4ok5evXq.js.map → radio-group-CRuWQnuV.js.map} +1 -1
- package/dist/admin/assets/{rotate-ccw-DL6TzcZh.js → rotate-ccw-BP8Ba-mY.js} +2 -2
- package/dist/admin/assets/{rotate-ccw-DL6TzcZh.js.map → rotate-ccw-BP8Ba-mY.js.map} +1 -1
- package/dist/admin/assets/schedules-BIyBlsYZ.js +2 -0
- package/dist/admin/assets/{schedules-BmB9Y73z.js.map → schedules-BIyBlsYZ.js.map} +1 -1
- package/dist/admin/assets/schema-6eUoC8fJ.js +2 -0
- package/dist/admin/assets/schema-6eUoC8fJ.js.map +1 -0
- package/dist/admin/assets/{scroll-text-PqeZm472.js → scroll-text-B5vfi9fD.js} +2 -2
- package/dist/admin/assets/{scroll-text-PqeZm472.js.map → scroll-text-B5vfi9fD.js.map} +1 -1
- package/dist/admin/assets/{search-BdwIwOzC.js → search-wj7zbkx1.js} +2 -2
- package/dist/admin/assets/{search-BdwIwOzC.js.map → search-wj7zbkx1.js.map} +1 -1
- package/dist/admin/assets/{searchSchemas-CSScloG8.js → searchSchemas-DAnwh3I3.js} +2 -2
- package/dist/admin/assets/{searchSchemas-CSScloG8.js.map → searchSchemas-DAnwh3I3.js.map} +1 -1
- package/dist/admin/assets/{sections-DqBzSKMP.js → sections-CWL-XD6m.js} +2 -2
- package/dist/admin/assets/sections-CWL-XD6m.js.map +1 -0
- package/dist/admin/assets/{sections-BTS683ur.js → sections-DBQpB0uv.js} +2 -2
- package/dist/admin/assets/{sections-BTS683ur.js.map → sections-DBQpB0uv.js.map} +1 -1
- package/dist/admin/assets/{select-C0USI-Ox.js → select-DVrPV1b3.js} +2 -2
- package/dist/admin/assets/{select-C0USI-Ox.js.map → select-DVrPV1b3.js.map} +1 -1
- package/dist/admin/assets/{send-XPWo3m4u.js → send-CzFdgUc_.js} +2 -2
- package/dist/admin/assets/{send-XPWo3m4u.js.map → send-CzFdgUc_.js.map} +1 -1
- package/dist/admin/assets/seo-Bd0sWQMo.js +2 -0
- package/dist/admin/assets/{seo-CceGYTIX.js.map → seo-Bd0sWQMo.js.map} +1 -1
- package/dist/admin/assets/settings-CqnrPmzR.js +2 -0
- package/dist/admin/assets/{settings-B60vHpZd.js.map → settings-CqnrPmzR.js.map} +1 -1
- package/dist/admin/assets/shapes-ZAkMBB-Z.js +6 -0
- package/dist/admin/assets/shapes-ZAkMBB-Z.js.map +1 -0
- package/dist/admin/assets/{skeleton-B5MP72Kw.js → skeleton-CiX26LnL.js} +2 -2
- package/dist/admin/assets/{skeleton-B5MP72Kw.js.map → skeleton-CiX26LnL.js.map} +1 -1
- package/dist/admin/assets/{snapshots-DUI2t-qF.js → snapshots-DbFQNJgN.js} +2 -2
- package/dist/admin/assets/{snapshots-DUI2t-qF.js.map → snapshots-DbFQNJgN.js.map} +1 -1
- package/dist/admin/assets/{sparkles-CvT-jxrW.js → sparkles-D_kmZJVd.js} +2 -2
- package/dist/admin/assets/{sparkles-CvT-jxrW.js.map → sparkles-D_kmZJVd.js.map} +1 -1
- package/dist/admin/assets/src-CMor9izq.js +7 -0
- package/dist/admin/assets/src-CMor9izq.js.map +1 -0
- package/dist/admin/assets/{stableId-BrtQedPy.js → stableId-g1uxJGSz.js} +2 -2
- package/dist/admin/assets/{stableId-BrtQedPy.js.map → stableId-g1uxJGSz.js.map} +1 -1
- package/dist/admin/assets/{store-CdIFG90N.js → store-CznhNKEi.js} +2 -2
- package/dist/admin/assets/{store-CdIFG90N.js.map → store-CznhNKEi.js.map} +1 -1
- package/dist/admin/assets/{switch-Dp6WYNam.js → switch-CiVf05NF.js} +2 -2
- package/dist/admin/assets/{switch-Dp6WYNam.js.map → switch-CiVf05NF.js.map} +1 -1
- package/dist/admin/assets/{theme-65PB8uAu.js → theme-Cv-MfOv8.js} +2 -2
- package/dist/admin/assets/theme-Cv-MfOv8.js.map +1 -0
- package/dist/admin/assets/titles-DrQhW8z3.js +2 -0
- package/dist/admin/assets/titles-DrQhW8z3.js.map +1 -0
- package/dist/admin/assets/tokens-B1S81Epe.js +2 -0
- package/dist/admin/assets/{tokens-ixHjAkDK.js.map → tokens-B1S81Epe.js.map} +1 -1
- package/dist/admin/assets/{tooltip-BGP1DVBt.js → tooltip-Bqf3oyqC.js} +2 -2
- package/dist/admin/assets/{tooltip-BGP1DVBt.js.map → tooltip-Bqf3oyqC.js.map} +1 -1
- package/dist/admin/assets/{undo-2-BiTANHFz.js → undo-2-DpwwRQTf.js} +2 -2
- package/dist/admin/assets/{undo-2-BiTANHFz.js.map → undo-2-DpwwRQTf.js.map} +1 -1
- package/dist/admin/assets/useContentSchema-B_q1rMrG.js +2 -0
- package/dist/admin/assets/useContentSchema-B_q1rMrG.js.map +1 -0
- package/dist/admin/assets/useCursorPager-BHYqHb3M.js +2 -0
- package/dist/admin/assets/{useCursorPager-0zHjlm-7.js.map → useCursorPager-BHYqHb3M.js.map} +1 -1
- package/dist/admin/assets/{useDiscardGuard-BskWSlbT.js → useDiscardGuard-C4QTfiU4.js} +2 -2
- package/dist/admin/assets/{useDiscardGuard-BskWSlbT.js.map → useDiscardGuard-C4QTfiU4.js.map} +1 -1
- package/dist/admin/assets/{useMediaPickerDialog-CU-ekPqX.js → useMediaPickerDialog-BLrVV1Kn.js} +2 -2
- package/dist/admin/assets/{useMediaPickerDialog-CU-ekPqX.js.map → useMediaPickerDialog-BLrVV1Kn.js.map} +1 -1
- package/dist/admin/assets/{useMediaUploader-CBcq1ICg.js → useMediaUploader-CFy6lasO.js} +2 -2
- package/dist/admin/assets/useMediaUploader-CFy6lasO.js.map +1 -0
- package/dist/admin/assets/useModelIndex-NU-WlHQY.js +2 -0
- package/dist/admin/assets/useModelIndex-NU-WlHQY.js.map +1 -0
- package/dist/admin/assets/useNetworkPermission-DehDln-U.js +2 -0
- package/dist/admin/assets/{useNetworkPermission-Cts98h9d.js.map → useNetworkPermission-DehDln-U.js.map} +1 -1
- package/dist/admin/assets/{usePaletteItems-DtReWmkd.js → usePaletteItems-CFpNlSOs.js} +2 -2
- package/dist/admin/assets/{usePaletteItems-DtReWmkd.js.map → usePaletteItems-CFpNlSOs.js.map} +1 -1
- package/dist/admin/assets/usePlaces-BA4x6503.js +2 -0
- package/dist/admin/assets/usePlaces-BA4x6503.js.map +1 -0
- package/dist/admin/assets/useResolvedDefinitions-30lnwFQ1.js +2 -0
- package/dist/admin/assets/useResolvedDefinitions-30lnwFQ1.js.map +1 -0
- package/dist/admin/assets/{useResolvedScheme-C8vcQVko.js → useResolvedScheme-BVM4qLct.js} +2 -2
- package/dist/admin/assets/{useResolvedScheme-C8vcQVko.js.map → useResolvedScheme-BVM4qLct.js.map} +1 -1
- package/dist/admin/assets/useSaveShortcut-DQuNL1uJ.js +2 -0
- package/dist/admin/assets/useSaveShortcut-DQuNL1uJ.js.map +1 -0
- package/dist/admin/assets/{useSchemaScopeAccess-ByrxIdKM.js → useSchemaScopeAccess-JXOMx51q.js} +2 -2
- package/dist/admin/assets/{useSchemaScopeAccess-ByrxIdKM.js.map → useSchemaScopeAccess-JXOMx51q.js.map} +1 -1
- package/dist/admin/assets/users-38jLQ7zr.js +2 -0
- package/dist/admin/assets/users-38jLQ7zr.js.map +1 -0
- package/dist/admin/assets/{users-DM7CXUBJ.js → users-DYwcVDqp.js} +2 -2
- package/dist/admin/assets/{users-DM7CXUBJ.js.map → users-DYwcVDqp.js.map} +1 -1
- package/dist/admin/assets/{zod-Cry7YvLY.js → zod-ZaQjjiAq.js} +2 -2
- package/dist/admin/assets/{zod-Cry7YvLY.js.map → zod-ZaQjjiAq.js.map} +1 -1
- package/dist/admin/index.html +60 -58
- package/dist/cli.js +1 -1
- package/dist/{cliMain-papyXJDd.js → cliMain-CTntiVc2.js} +107 -30
- package/dist/cliMain-CTntiVc2.js.map +1 -0
- package/dist/config.d.ts +2 -2
- package/dist/config.js +1 -1
- package/dist/{contentDisposition-DOL2Xt0l.js → contentDisposition-DzhPhncr.js} +2 -2
- package/dist/{contentDisposition-DOL2Xt0l.js.map → contentDisposition-DzhPhncr.js.map} +1 -1
- package/dist/index.d.ts +43 -6
- package/dist/index.js +2 -2
- package/dist/{public-COKbHR-N.d.ts → public-CMFaGDyf.d.ts} +50 -8
- package/dist/{public-B57h4F7Y.js → public-sJCQaNaP.js} +2 -2
- package/dist/public-sJCQaNaP.js.map +1 -0
- package/dist/{s3Adapter-U01iEAcK.js → s3Adapter-CZcCl0sy.js} +2 -2
- package/dist/{s3Adapter-U01iEAcK.js.map → s3Adapter-CZcCl0sy.js.map} +1 -1
- package/dist/{worker-B-sC-eY2.js → worker-DHm2JwMZ.js} +3140 -1292
- package/dist/worker-DHm2JwMZ.js.map +1 -0
- package/package.json +5 -5
- package/dist/admin/assets/AssistError-Cs-r9Ssc.js +0 -2
- package/dist/admin/assets/Body-BzZD-TZT.js +0 -2
- package/dist/admin/assets/Body-BzZD-TZT.js.map +0 -1
- package/dist/admin/assets/Builder-DW-GJA_q.js +0 -2
- package/dist/admin/assets/Builder-DW-GJA_q.js.map +0 -1
- package/dist/admin/assets/Form-lNrRHc0I.js +0 -2
- package/dist/admin/assets/Form-lNrRHc0I.js.map +0 -1
- package/dist/admin/assets/FormCheckboxGroup-DeeaYnzB.js +0 -2
- package/dist/admin/assets/FormCheckboxGroup-DeeaYnzB.js.map +0 -1
- package/dist/admin/assets/FormSelectField-BzE9Lq9i.js +0 -2
- package/dist/admin/assets/FormSelectField-BzE9Lq9i.js.map +0 -1
- package/dist/admin/assets/RadioTile-DQFmni5A.js.map +0 -1
- package/dist/admin/assets/RichTextField-CVHRIbnu.js.map +0 -1
- package/dist/admin/assets/StepList-BXGYD9eJ.js +0 -2
- package/dist/admin/assets/StepList-BXGYD9eJ.js.map +0 -1
- package/dist/admin/assets/Structure-D8csgrIt.js +0 -2
- package/dist/admin/assets/SubNavLink-CiCaVV8U.js.map +0 -1
- package/dist/admin/assets/auth-CQO4MBUj.js +0 -2
- package/dist/admin/assets/changeSets-8EburmT0.js +0 -2
- package/dist/admin/assets/chevron-left-DGU3HGYG.js +0 -2
- package/dist/admin/assets/content-CAjkbZEY.js +0 -3
- package/dist/admin/assets/content-CAjkbZEY.js.map +0 -1
- package/dist/admin/assets/createLucideIcon-CLmh7Go-.js +0 -2
- package/dist/admin/assets/createLucideIcon-CLmh7Go-.js.map +0 -1
- package/dist/admin/assets/develop-BOqvnlgt.js +0 -11
- package/dist/admin/assets/develop-BOqvnlgt.js.map +0 -1
- package/dist/admin/assets/es2015-BHmI7wjK.js +0 -42
- package/dist/admin/assets/es2015-BHmI7wjK.js.map +0 -1
- package/dist/admin/assets/followPlural-Cm7v_Udv.js +0 -2
- package/dist/admin/assets/followPlural-Cm7v_Udv.js.map +0 -1
- package/dist/admin/assets/inbox-DGO2D8fa.js +0 -2
- package/dist/admin/assets/inbox-DGO2D8fa.js.map +0 -1
- package/dist/admin/assets/index-BIIU9ZI6.js +0 -4
- package/dist/admin/assets/index-BIIU9ZI6.js.map +0 -1
- package/dist/admin/assets/index-lxe7WimO.css +0 -2
- package/dist/admin/assets/locales-Bg3htKo8.js +0 -2
- package/dist/admin/assets/media-BCnVhaDH.js +0 -2
- package/dist/admin/assets/network-BixABr0o.js +0 -2
- package/dist/admin/assets/network-BixABr0o.js.map +0 -1
- package/dist/admin/assets/publishing-Dke9bSKp.js +0 -2
- package/dist/admin/assets/publishing-Dke9bSKp.js.map +0 -1
- package/dist/admin/assets/schedules-BmB9Y73z.js +0 -2
- package/dist/admin/assets/schema-D-qo7XSF.js +0 -2
- package/dist/admin/assets/schema-D-qo7XSF.js.map +0 -1
- package/dist/admin/assets/sections-DqBzSKMP.js.map +0 -1
- package/dist/admin/assets/seo-CceGYTIX.js +0 -2
- package/dist/admin/assets/settings-B60vHpZd.js +0 -2
- package/dist/admin/assets/shapes-B5twqZcp.js +0 -6
- package/dist/admin/assets/shapes-B5twqZcp.js.map +0 -1
- package/dist/admin/assets/src-ndgTSYLX.js +0 -7
- package/dist/admin/assets/src-ndgTSYLX.js.map +0 -1
- package/dist/admin/assets/theme-65PB8uAu.js.map +0 -1
- package/dist/admin/assets/titles-CQiqqDw-.js +0 -2
- package/dist/admin/assets/titles-CQiqqDw-.js.map +0 -1
- package/dist/admin/assets/tokens-ixHjAkDK.js +0 -2
- package/dist/admin/assets/useContentSchema-DtYfhsd2.js +0 -2
- package/dist/admin/assets/useContentSchema-DtYfhsd2.js.map +0 -1
- package/dist/admin/assets/useCursorPager-0zHjlm-7.js +0 -2
- package/dist/admin/assets/useMediaUploader-CBcq1ICg.js.map +0 -1
- package/dist/admin/assets/useNetworkPermission-Cts98h9d.js +0 -2
- package/dist/admin/assets/usePlaces-DC47wVeU.js +0 -2
- package/dist/admin/assets/usePlaces-DC47wVeU.js.map +0 -1
- package/dist/admin/assets/useQueries-CirW3Mvp.js +0 -2
- package/dist/admin/assets/useQueries-CirW3Mvp.js.map +0 -1
- package/dist/admin/assets/useSaveShortcut-rKtp1qK7.js +0 -2
- package/dist/admin/assets/useSaveShortcut-rKtp1qK7.js.map +0 -1
- package/dist/admin/assets/users-2iJYwlJb.js +0 -2
- package/dist/admin/assets/users-2iJYwlJb.js.map +0 -1
- package/dist/cliMain-papyXJDd.js.map +0 -1
- package/dist/public-B57h4F7Y.js.map +0 -1
- package/dist/worker-B-sC-eY2.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-C0USI-Ox.js","names":["__iconData","__defProp","__name","__defProp","__name","PopperPrimitive.Root","Select","Fragment2","SelectTrigger","PopperPrimitive.Anchor","SelectValue","PortalPrimitive","SelectContent","RemoveScroll","PopperPrimitive.Content","SelectItem","SelectScrollUpButton","SelectScrollDownButton","SelectPrimitive.Root","SelectPrimitive.Value","SelectPrimitive.Trigger","SelectPrimitive.Icon","ChevronDownIcon","SelectPrimitive.Portal","SelectPrimitive.Content","SelectPrimitive.Viewport","SelectPrimitive.Item","SelectPrimitive.ItemIndicator","CheckIcon","SelectPrimitive.ItemText","SelectPrimitive.ScrollUpButton","ChevronUpIcon","SelectPrimitive.ScrollDownButton","__toESM","require_react_dom","require_jsx_runtime","createLucideIcon","Content","Root2","Anchor","createPopperScope","FocusScope","useComposedRefs","useCallbackRef","useControllableState","useLayoutEffect2","Primitive","Portal","useId","createContextScope","ReactRemoveScroll","DismissableLayer","composeEventHandlers","useFocusGuards","hideOthers","Presence","createSlot","Check","VISUALLY_HIDDEN_STYLES","createCollection","useDirection","cn","__iconData$1","ChevronDown","__iconData","ChevronUp","import_react_dom","import_react","require_react","__defProp$2","__name$2","target","usePrevious","ref","value","__defProp$1","__name$1","clamp","min","max","import_jsx_runtime","__defProp","__name","OPEN_KEYS","SELECTION_KEYS","SELECT_NAME","Collection","useCollection","createCollectionScope","createSelectContext","createSelectScope","usePopperScope","SelectProviderImpl","useSelectContext","SelectNativeOptionsProvider","useSelectNativeOptionsContext","SelectProvider","openProp","valueProp","props","popperScope","__scopeSelect","trigger","setTrigger","valueNode","setValueNode","valueNodeHasChildren","setValueNodeHasChildren","direction","dir","open","setOpen","defaultOpen","onOpenChange","setValue","defaultValue","onValueChange","triggerPointerDownPosRef","initialValueRef","associatedForm","form","reset","isFormControl","nativeOptionsSet","setNativeOptionsSet","contentId","nativeSelectKey","option","handleNativeOptionAdd","prev","handleNativeOptionRemove","optionsSet","context","isFunction","internal_do_not_use_render","children","Select$1","providerProps","SelectBubbleInput","TRIGGER_NAME","SelectTrigger$1","triggerProps","isDisabled","disabled","composedRefs","forwardedRef","getItems","pointerTypeRef","searchRef","handleTypeaheadSearch","resetTypeahead","useTypeaheadSearch","enabledItems","item","nextItem","findNextItem","search","handleOpen","pointerEvent","shouldShowPlaceholder","event","isTypingAhead","VALUE_NAME","SelectValue$1","valueProps","hasChildren","onValueNodeHasChildrenChange","showPlaceholder","placeholder","SelectIcon","iconProps","PortalProvider","usePortalContext","SelectPortal","portalProps","CONTENT_NAME","SelectContent$1","portalContext","contentProps","fragment","setFragment","forceMount","present","SelectContentImpl","SelectContentFragment","SelectContentProvider","CONTENT_MARGIN","useSelectContentContext","Slot","content","setContent","viewport","setViewport","selectedItem","setSelectedItem","selectedItemText","setSelectedItemText","isPositioned","setIsPositioned","firstValidItemFoundRef","focusFirst","firstItem","restItems","lastItem","PREVIOUSLY_FOCUSED_ELEMENT","candidate","candidates","focusSelectedItem","pointerMoveDelta","handlePointerMove","handlePointerUp","close","itemRefCallback","isFirstValidItem","node","handleItemLeave","itemTextRefCallback","SelectPosition","position","SelectPopperPosition","SelectItemAlignedPosition","popperContentProps","onCloseAutoFocus","isModifierKey","candidateNodes","currentElement","currentIndex","popperProps","contentContext","contentWrapper","setContentWrapper","shouldExpandOnScrollRef","shouldRepositionRef","triggerRect","contentRect","valueNodeRect","itemTextRect","itemTextOffset","left","leftDelta","minContentWidth","contentWidth","rightEdge","clampedLeft","right","rightDelta","leftEdge","clampedRight","items","availableHeight","itemsHeight","contentStyles","contentBorderTopWidth","contentPaddingTop","contentBorderBottomWidth","contentPaddingBottom","fullContentHeight","minContentHeight","viewportStyles","viewportPaddingTop","viewportPaddingBottom","topEdgeToTriggerMiddle","triggerMiddleToBottomEdge","selectedItemHalfHeight","itemOffsetMiddle","contentTopToItemMiddle","itemMiddleToContentBottom","isLastItem","viewportOffsetBottom","height","isFirstItem","onPlaced","contentZIndex","setContentZIndex","handleScrollButtonChange","SelectViewportProvider","useSelectViewportContext","VIEWPORT_NAME","SelectViewport","viewportProps","viewportContext","prevScrollTopRef","scrolledBy","cssMinHeight","cssHeight","prevHeight","nextHeight","clampedNextHeight","heightDiff","SelectGroupContextProvider","useSelectGroupContext","ITEM_NAME","SelectItemContextProvider","useSelectItemContext","SelectItem$1","textValueProp","itemProps","isSelected","textValue","setTextValue","isFocused","setIsFocused","handleItemRefCallback","textId","handleSelect","prevTextValue","ITEM_TEXT_NAME","SelectItemText","itemTextProps","itemContext","nativeOptionsContext","itemTextNode","setItemTextNode","handleItemTextRefCallback","textContent","nativeOption","onNativeOptionAdd","onNativeOptionRemove","ITEM_INDICATOR_NAME","SelectItemIndicator","itemIndicatorProps","SCROLL_UP_BUTTON_NAME","SelectScrollUpButton$1","canScrollUp","setCanScrollUp","handleScroll2","canScrollUp2","SelectScrollButtonImpl","SCROLL_DOWN_BUTTON_NAME","SelectScrollDownButton$1","canScrollDown","setCanScrollDown","maxScroll","canScrollDown2","scrollIndicatorProps","autoScrollTimerRef","clearAutoScrollTimer","onAutoScroll","BUBBLE_INPUT_NAME","selectValue","prevValue","hasEmptyValueOption","nativeOptions","select","selectProto","handleSearchChange","onSearchChange","timerRef","key","updateSearch","normalizedSearch","char","currentItemIndex","currentItem","wrappedItems","wrapArray","v","array","startIndex","index","Select","SelectValue","SelectTrigger","size","className","SelectContent","SelectScrollUpButton","SelectScrollDownButton","SelectItem"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/chevron-down.mjs","../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/chevron-up.mjs","../../../../node_modules/.pnpm/@radix-ui+react-use-previous@1.1.4_@types+react@19.3.0_react@19.3.0/node_modules/@radix-ui/react-use-previous/dist/index.mjs","../../../../node_modules/.pnpm/@radix-ui+number@1.1.3/node_modules/@radix-ui/number/dist/index.mjs","../../../../node_modules/.pnpm/@radix-ui+react-select@2.3.7_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react@_c077d25a874f27141804d1923df5095a/node_modules/@radix-ui/react-select/dist/index.mjs","../../src/components/ui/select.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.49.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.mjs';\n\nconst __iconData = {\n name: \"chevron-down\",\n size: 24,\n node: [[\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]]\n};\n__iconData.node;\nconst ChevronDown = createLucideIcon(__iconData);\n\nexport { __iconData, ChevronDown as default };\n//# sourceMappingURL=chevron-down.mjs.map\n","/**\n * @license lucide-react v1.49.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.mjs';\n\nconst __iconData = {\n name: \"chevron-up\",\n size: 24,\n node: [[\"path\", { d: \"m18 15-6-6-6 6\", key: \"153udz\" }]]\n};\n__iconData.node;\nconst ChevronUp = createLucideIcon(__iconData);\n\nexport { __iconData, ChevronUp as default };\n//# sourceMappingURL=chevron-up.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// 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}\n__name(usePrevious, \"usePrevious\");\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\n__name(clamp, \"clamp\");\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\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 { Presence } from \"@radix-ui/react-presence\";\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 as Fragment2, 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 [SelectProviderImpl, useSelectContext] = createSelectContext(SELECT_NAME);\nvar [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);\nfunction SelectProvider(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 // @ts-expect-error internal render prop used by `Select` to compose its default parts\n internal_do_not_use_render\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 initialValueRef = React.useRef(value);\n React.useEffect(() => {\n const associatedForm = form ? trigger?.ownerDocument.getElementById(form) : trigger?.form;\n if (associatedForm instanceof HTMLFormElement) {\n const reset = /* @__PURE__ */ __name(() => setValue(initialValueRef.current), \"reset\");\n associatedForm.addEventListener(\"reset\", reset);\n return () => associatedForm.removeEventListener(\"reset\", reset);\n }\n }, [form, trigger, setValue]);\n const isFormControl = trigger ? !!form || !!trigger.closest(\"form\") : true;\n const [nativeOptionsSet, setNativeOptionsSet] = React.useState(/* @__PURE__ */ new Set());\n const contentId = useId();\n const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(\";\");\n const handleNativeOptionAdd = React.useCallback((option) => {\n setNativeOptionsSet((prev) => new Set(prev).add(option));\n }, []);\n const handleNativeOptionRemove = React.useCallback((option) => {\n setNativeOptionsSet((prev) => {\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, []);\n const context = {\n required,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId,\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled,\n name,\n autoComplete,\n form,\n nativeOptions: nativeOptionsSet,\n nativeSelectKey,\n isFormControl\n };\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(SelectProviderImpl, { scope: __scopeSelect, ...context, children: /* @__PURE__ */ jsx(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n SelectNativeOptionsProvider,\n {\n scope: __scopeSelect,\n onNativeOptionAdd: handleNativeOptionAdd,\n onNativeOptionRemove: handleNativeOptionRemove,\n children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children\n }\n ) }) }) });\n}\n__name(SelectProvider, \"SelectProvider\");\nvar Select = /* @__PURE__ */ __name((props) => {\n const { __scopeSelect, children, ...providerProps } = props;\n return /* @__PURE__ */ jsx(\n SelectProvider,\n {\n __scopeSelect,\n ...providerProps,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment2, { children: [\n children,\n isFormControl ? /* @__PURE__ */ jsx(\n SelectBubbleInput,\n {\n __scopeSelect\n }\n ) : null\n ] })\n }\n );\n}, \"Select\");\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectTrigger2(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 = /* @__PURE__ */ __name((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 }, \"handleOpen\");\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.open ? context.contentId : void 0,\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 }, \"SelectTrigger\")\n);\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectValue2(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 const showPlaceholder = shouldShowPlaceholder(context.value);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...valueProps,\n asChild: showPlaceholder ? false : valueProps.asChild,\n ref: composedRefs,\n style: { pointerEvents: \"none\" },\n children: /* @__PURE__ */ jsx(React.Fragment, { children: showPlaceholder ? placeholder : children }, showPlaceholder ? \"placeholder\" : \"value\")\n }\n );\n }, \"SelectValue\")\n);\nvar SelectIcon = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectIcon2(props, forwardedRef) {\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...iconProps, ref: forwardedRef, children: children || \"\\u25BC\" });\n }, \"SelectIcon\")\n);\nvar PORTAL_NAME = \"SelectPortal\";\nvar [PortalProvider, usePortalContext] = createSelectContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar SelectPortal = /* @__PURE__ */ __name((props) => {\n const { __scopeSelect, forceMount, ...portalProps } = props;\n return /* @__PURE__ */ jsx(PortalProvider, { scope: props.__scopeSelect, forceMount, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, ...portalProps }) });\n}, \"SelectPortal\");\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectContent2(props, forwardedRef) {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeSelect);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = React.useState();\n useLayoutEffect(() => {\n setFragment(new DocumentFragment());\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: ({ present }) => present ? /* @__PURE__ */ jsx(SelectContentImpl, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(SelectContentFragment, { ...contentProps, fragment }) });\n }, \"SelectContent\")\n);\nvar SelectContentFragment = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function SelectContentFragment2(props, forwardedRef) {\n const { __scopeSelect, children, fragment } = props;\n if (!fragment) return null;\n return ReactDOM.createPortal(\n /* @__PURE__ */ jsx(SelectContentProvider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\"div\", { ref: forwardedRef, children }) }) }),\n fragment\n );\n}, \"SelectContentFragment\"));\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar Slot = createSlot(\"SelectContent.RemoveScroll\");\nvar SelectContentImpl = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function SelectContentImpl2(props, forwardedRef) {\n const { __scopeSelect } = props;\n const {\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, setContent);\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 = /* @__PURE__ */ __name((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 }, \"handlePointerMove\");\n const handlePointerUp = /* @__PURE__ */ __name((event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!event.composedPath().includes(content)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n }, \"handlePointerUp\");\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 = /* @__PURE__ */ __name(() => onOpenChange(false), \"close\");\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 }, \"SelectContentImpl\")\n);\nvar SelectItemAlignedPosition = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function SelectItemAlignedPosition2(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, setContent);\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}, \"SelectItemAlignedPosition\"));\nvar SelectPopperPosition = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function SelectPopperPosition2(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}, \"SelectPopperPosition\"));\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectViewport2(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(Fragment2, { 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 }, \"SelectViewport\")\n);\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectGroup2(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 }, \"SelectGroup\")\n);\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectLabel2(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 }, \"SelectLabel\")\n);\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectItem2(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 handleItemRefCallback = useCallbackRef(\n (node) => contentContext.itemRefCallback?.(node, value, disabled)\n );\n const composedRefs = useComposedRefs(forwardedRef, handleItemRefCallback);\n const textId = useId();\n const pointerTypeRef = React.useRef(\"touch\");\n const handleSelect = /* @__PURE__ */ __name(() => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n }, \"handleSelect\");\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 if (disabled || event.target !== event.currentTarget) {\n return;\n }\n const isTypingAhead = contentContext.searchRef?.current !== \"\";\n if (isTypingAhead && event.key === \" \") {\n return;\n }\n if (SELECTION_KEYS.includes(event.key)) {\n handleSelect();\n }\n if (event.key === \" \") {\n event.preventDefault();\n }\n })\n }\n )\n }\n )\n }\n );\n }, \"SelectItem\")\n);\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectItemText2(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 handleItemTextRefCallback = useCallbackRef(\n (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled)\n );\n const composedRefs = useComposedRefs(\n forwardedRef,\n setItemTextNode,\n itemContext.onItemTextChange,\n handleItemTextRefCallback\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(Fragment2, { children: [\n /* @__PURE__ */ jsx(Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),\n itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren && !shouldShowPlaceholder(context.value) ? ReactDOM.createPortal(itemTextProps.children, context.valueNode) : null\n ] });\n }, \"SelectItemText\")\n);\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function SelectItemIndicator2(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 }, \"SelectItemIndicator\")\n);\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function SelectScrollUpButton2(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 __name(handleScroll2, \"handleScroll\");\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}, \"SelectScrollUpButton\"));\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function SelectScrollDownButton2(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 __name(handleScroll2, \"handleScroll\");\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}, \"SelectScrollDownButton\"));\nvar SelectScrollButtonImpl = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function SelectScrollButtonImpl2(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}, \"SelectScrollButtonImpl\"));\nvar SelectSeparator = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function SelectSeparator2(props, forwardedRef) {\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { \"aria-hidden\": true, ...separatorProps, ref: forwardedRef });\n }, \"SelectSeparator\")\n);\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectArrow2(props, forwardedRef) {\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return contentContext.position === \"popper\" ? /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;\n }, \"SelectArrow\")\n);\nvar BUBBLE_INPUT_NAME = \"SelectBubbleInput\";\nvar SelectBubbleInput = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function SelectBubbleInput2({ __scopeSelect, ...props }, forwardedRef) {\n const context = useSelectContext(BUBBLE_INPUT_NAME, __scopeSelect);\n const { value, onValueChange, required, disabled, name, autoComplete, form } = context;\n const { nativeOptions, nativeSelectKey } = context;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const selectValue = value ?? \"\";\n const prevValue = usePrevious(selectValue);\n const hasEmptyValueOption = Array.from(nativeOptions).some(\n (option) => (option.props.value ?? \"\") === \"\"\n );\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 !== selectValue && setValue) {\n const event = new Event(\"change\", { bubbles: true });\n setValue.call(select, selectValue);\n select.dispatchEvent(event);\n }\n }, [prevValue, selectValue]);\n return /* @__PURE__ */ jsxs(\n Primitive.select,\n {\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n disabled,\n form,\n onChange: (event) => onValueChange(event.target.value),\n ...props,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style },\n ref: composedRefs,\n defaultValue: selectValue,\n children: [\n shouldShowPlaceholder(value) && !hasEmptyValueOption ? /* @__PURE__ */ jsx(\"option\", { value: \"\" }) : null,\n Array.from(nativeOptions)\n ]\n },\n nativeSelectKey\n );\n }, \"SelectBubbleInput\")\n);\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n__name(isFunction, \"isFunction\");\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\n__name(shouldShowPlaceholder, \"shouldShowPlaceholder\");\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 (/* @__PURE__ */ __name((function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n }), \"updateSearch\"))(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}\n__name(useTypeaheadSearch, \"useTypeaheadSearch\");\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}\n__name(findNextItem, \"findNextItem\");\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\n__name(wrapArray, \"wrapArray\");\nexport {\n SelectArrow as Arrow,\n SelectContent as Content,\n SelectGroup as Group,\n SelectIcon as Icon,\n SelectItem as Item,\n SelectItemIndicator as ItemIndicator,\n SelectItemText as ItemText,\n SelectLabel as Label,\n SelectPortal as Portal,\n Select as Root,\n SelectScrollDownButton as ScrollDownButton,\n SelectScrollUpButton as 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 SelectSeparator as Separator,\n SelectTrigger as Trigger,\n SelectValue as Value,\n SelectViewport as Viewport,\n createSelectScope,\n SelectBubbleInput as unstable_BubbleInput,\n SelectProvider as unstable_Provider,\n SelectBubbleInput as unstable_SelectBubbleInput,\n SelectProvider as unstable_SelectProvider\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react';\nimport { Select as SelectPrimitive } from 'radix-ui';\nimport * as React from 'react';\nimport { cn } from '@/helpers/cn';\n\nfunction Select({ ...props }: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({ ...props }: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n size = 'default',\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"flex w-fit items-center justify-between gap-2 rounded-lg border border-input bg-card px-3 py-2 text-sm whitespace-nowrap text-foreground transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-10 data-[size=sm]:h-9 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/20 dark:hover:bg-input/30 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'item-aligned',\n align = 'center',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n 'relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg border bg-popover text-popover-foreground shadow-md 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95',\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 align={align}\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)] scroll-my-1',\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn('px-2 py-1.5 text-xs text-muted-foreground', className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({ className, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className,\n )}\n {...props}\n >\n <span\n data-slot=\"select-item-indicator\"\n className=\"absolute right-2 flex size-3.5 items-center justify-center\"\n >\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('pointer-events-none -mx-1 my-1 h-px bg-border', className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn('flex cursor-default items-center justify-center py-1', className)}\n {...props}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn('flex cursor-default items-center justify-center py-1', className)}\n {...props}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"ignoreList":[0,1,2,3,4],"mappings":"2jBASA,IAAMA,EAAa,CACjB,KAAM,eACN,KAAM,GACN,KAAM,CAAC,CAAC,OAAQ,CAAE,EAAG,eAAgB,IAAK,QAAS,CAAC,CAAC,CACvD,EACAA,EAAW,KACX,IAAM+D,EAAc3B,EAAiBpC,CAAU,ECNzCgE,EAAa,CACjB,KAAM,aACN,KAAM,GACN,KAAM,CAAC,CAAC,OAAQ,CAAE,EAAG,iBAAkB,IAAK,QAAS,CAAC,CAAC,CACzD,EACAA,EAAW,KACX,IAAMC,GAAY7B,EAAiB4B,CAAU,wBCfzC/D,EAAY,OAAO,eACnBC,GAAU,EAAQ,IAAUD,EAAUsE,EAAQ,OAAQ,CAAE,QAAO,aAAc,EAAK,CAAC,EAIvF,SAASC,EAAY,EAAO,CAC1B,IAAMC,EAAAN,EAAY,OAAO,CAAE,QAAO,SAAUO,CAAM,CAAC,EACnD,OAAAP,EAAa,aACPM,EAAI,QAAQ,QAAUC,IACxB,EAAI,QAAQ,SAAWD,EAAI,QAAQ,MACnC,EAAI,QAAQ,MAAQC,GAEfD,EAAI,QAAQ,UAClB,CAACC,CAAK,CAAC,CACZ,CACAxE,EAAOsE,EAAa,aAAa,ECfjC,IAAIrE,EAAY,OAAO,eACnBC,GAAU,EAAQ,IAAUD,EAAUoE,EAAQ,OAAQ,CAAE,QAAO,aAAc,EAAK,CAAC,EAGvF,SAASM,EAAM,EAAO,CAACC,EAAKC,GAAM,CAChC,OAAO,KAAK,IAAIA,EAAK,KAAK,IAAID,EAAKJ,CAAK,CAAC,CAC3C,CACAtE,EAAOyE,EAAO,OAAO,iBCNjBI,EAAY,OAAO,eACnBC,GAAU,EAAQ,IAAUD,EAAUV,EAAQ,OAAQ,CAAE,QAAO,aAAc,EAAK,CAAC,EA6BnFY,EAAY,CAAC,IAAK,QAAS,UAAW,WAAW,EACjDC,GAAiB,CAAC,IAAK,OAAO,EAC9BC,EAAc,SACd,CAACC,EAAYC,GAAeC,IAAyB7B,EAAiB0B,CAAW,EACjF,CAACI,EAAqBC,IAAqBzC,EAAmBoC,EAAa,CAC7EG,GACAhD,CACF,CAAC,EACGmD,EAAiBnD,EAAkB,EACnC,CAACoD,GAAoBC,GAAoBJ,EAAoBJ,CAAW,EACxE,CAACS,GAA6BC,IAAiCN,EAAoBJ,CAAW,EAClG,SAASW,GAAe,EAAO,CAC7B,GAAM,CACJ,gBACA,WACA,KAAMC,EACN,cACA,eACA,MAAOC,EACP,eACA,gBACA,MACA,OACA,eACA,WACA,WACA,OAEA,8BACEC,EACEC,EAAcT,EAAeU,CAAa,EAC1C,CAACC,EAASC,GAAApC,EAAoB,SAAS,IAAI,EAC3C,CAACqC,EAAWC,GAAAtC,EAAsB,SAAS,IAAI,EAC/C,CAACuC,EAAsBC,GAAAxC,EAAiC,SAAS,EAAK,EACtEyC,EAAYhD,EAAaiD,CAAG,EAC5B,CAACC,EAAMC,GAAWnE,EAAqB,CAC3C,KAAMqD,EACN,YAAae,GAAe,GAC5B,SAAUC,EACV,OAAQ5B,CACV,CAAC,EACK,CAACX,EAAOwC,GAAYtE,EAAqB,CAC7C,KAAMsD,EACN,YAAaiB,EACb,SAAUC,EACV,OAAQ/B,CACV,CAAC,EACKgC,EAAAlD,EAAiC,OAAO,IAAI,EAC5CmD,GAAAnD,EAAwB,OAAOO,CAAK,EAC1CP,EAAM,cAAgB,CACpB,IAAMoD,EAAiBC,EAAOlB,GAAS,cAAc,eAAekB,CAAI,EAAIlB,GAAS,KACrF,GAAIiB,aAA0B,gBAAiB,CAC7C,IAAME,EAAwBvC,MAAagC,EAASI,GAAgB,OAAO,EAAG,OAAO,EAErF,OADAC,EAAe,iBAAiB,QAASE,CAAK,MACjCF,EAAe,oBAAoB,QAASE,CAAK,CAChE,CACF,EAAG,CAACD,EAAMlB,EAASY,CAAQ,CAAC,EAC5B,IAAMQ,EAAgB,IAAU,CAAC,CAACF,GAAQ,CAAC,CAAClB,EAAQ,QAAQ,MAAM,EAC5D,CAACqB,EAAkBC,GAAAzD,EAA6B,SAAyB,IAAI,GAAK,EAClF0D,EAAY7E,EAAM,EAClB8E,EAAkB,MAAM,KAAKH,CAAgB,CAAC,CAAC,IAAK,GAAWI,EAAO,MAAM,KAAK,CAAC,CAAC,KAAK,GAAG,EAC3FC,EAAA7D,EAA8B,YAAa,GAAW,CAC1DyD,EAAqB,GAAS,IAAI,IAAIK,CAAI,CAAC,CAAC,IAAIF,CAAM,CAAC,CACzD,EAAG,CAAC,CAAC,EACCG,EAAA/D,EAAiC,YAAa,GAAW,CAC7DyD,EAAqB,GAAS,CAC5B,IAAMO,EAAa,IAAI,IAAIF,CAAI,EAE/B,OADAE,EAAW,OAAOJ,CAAM,EACjBI,CACT,CAAC,CACH,EAAG,CAAC,CAAC,EACCC,EAAU,CACd,WACA,UACA,gBAAiB7B,EACjB,YACA,kBAAmBE,EACnB,uBACA,6BAA8BE,EAC9B,YACA,QACA,cAAeO,EACf,OACA,aAAcH,EACd,IAAKH,EACL,2BACA,WACA,OACA,eACA,OACA,cAAee,EACf,kBACA,eACF,EACA,OAAuB,EAAA3C,EAAA,IAAA,CAAI3E,EAAsB,CAAE,GAAG+F,EAAa,UAA0B,EAAApB,EAAA,IAAA,CAAIY,GAAoB,CAAE,MAAOS,EAAe,GAAG+B,EAAS,UAA0B,EAAApD,EAAA,IAAA,CAAIM,EAAW,SAAU,CAAE,MAAOe,EAAe,UAA0B,EAAArB,EAAA,IAAA,CAC5Pc,GACA,CACE,MAAOO,EACP,kBAAmB2B,EACnB,qBAAsBE,EACtB,SAAUG,GAAWC,CAA0B,EAAIA,EAA2BF,CAAO,EAAIG,CAC3F,CACF,CAAE,CAAC,CAAE,CAAC,CAAE,CAAC,CACX,CACArD,EAAOc,GAAgB,gBAAgB,EACvC,IAAI1F,GAAyB4E,EAAQ,GAAU,CAC7C,GAAM,CAAE,gBAAe,WAAU,GAAGuD,GAAkBtC,EACtD,OAAuB,EAAAnB,EAAA,IAAA,CACrBgB,GACA,CACE,gBACA,GAAGyC,EACH,4BAA6B,CAAE,oBAAoC,EAAAzD,EAAA,KAAA,CAAKzE,EAAAA,SAAW,CAAE,SAAU,CAC7FgI,EACAb,GAAgC,EAAA1C,EAAA,IAAA,CAC9B0D,GACA,CACE,eACF,CACF,EAAI,IACN,CAAE,CAAC,CACL,CACF,CACF,EAAG,QAAQ,EACPC,GAAe,gBACfnI,GAAgC2D,EAAM,WACxBe,EAAO,SAAwB,EAAO,EAAc,CAClE,GAAM,CAAE,gBAAe,WAAW,GAAO,GAAG2D,GAAiB1C,EACvDC,EAAcT,EAAeU,CAAa,EAC1C+B,EAAUvC,EAAiB8C,GAActC,CAAa,EACtDyC,EAAaV,EAAQ,UAAYW,EACjCC,EAAetG,EAAgBuG,EAAcb,EAAQ,eAAe,EACpEc,EAAW3D,GAAcc,CAAa,EACtC8C,EAAAhF,EAAuB,OAAO,OAAO,EACrC,CAACiF,EAAWC,EAAuBC,GAAkBC,GAAoB,GAAW,CACxF,IAAMC,EAAeN,EAAS,CAAC,CAAC,OAAQ,GAAS,CAACO,EAAK,QAAQ,EAEzDC,EAAWC,GAAaH,EAAcI,EADxBJ,EAAa,KAAM,GAASC,EAAK,QAAUrB,EAAQ,KACT,CAAC,EAC3DsB,IAAa,IAAK,IACpBtB,EAAQ,cAAcsB,EAAS,KAAK,CAExC,CAAC,EACKG,EAA6B3E,EAAQ,GAAiB,CACrD4D,IACHV,EAAQ,aAAa,EAAI,EACzBkB,EAAe,GAEbQ,IACF,EAAQ,yBAAyB,QAAU,CACzC,EAAG,KAAK,MAAMA,EAAa,KAAK,EAChC,EAAG,KAAK,MAAMA,EAAa,KAAK,CAClC,EAEJ,EAAG,YAAY,EACf,OAAuB,EAAA9E,EAAA,IAAA,CAAIvE,EAAwB,CAAE,QAAS,GAAM,GAAG2F,EAAa,UAA0B,EAAApB,EAAA,IAAA,CAC5GlC,EAAU,OACV,CACE,KAAM,SACN,KAAM,WACN,gBAAiBsF,EAAQ,KAAOA,EAAQ,UAAY,IAAK,GACzD,gBAAiBA,EAAQ,KACzB,gBAAiBA,EAAQ,SACzB,oBAAqB,OACrB,IAAKA,EAAQ,IACb,aAAcA,EAAQ,KAAO,OAAS,SACtC,SAAUU,EACV,gBAAiBA,EAAa,GAAK,IAAK,GACxC,mBAAoBiB,EAAsB3B,EAAQ,KAAK,EAAI,GAAK,IAAK,GACrE,GAAGS,EACH,IAAKG,EACL,QAAS5F,EAAqByF,EAAa,QAAU,GAAU,CAC7DmB,EAAM,cAAc,MAAM,EACtBb,EAAe,UAAY,SAC7BU,EAAWG,CAAK,CAEpB,CAAC,EACD,cAAe5G,EAAqByF,EAAa,cAAgB,GAAU,CACzE,EAAe,QAAUmB,EAAM,YAC/B,IAAMzF,EAASyF,EAAM,OACjBzF,EAAO,kBAAkByF,EAAM,SAAS,GAC1CzF,EAAO,sBAAsByF,EAAM,SAAS,EAE1CA,EAAM,SAAW,GAAKA,EAAM,UAAY,IAASA,EAAM,cAAgB,UACzEH,EAAWG,CAAK,EAChBA,EAAM,eAAe,EAEzB,CAAC,EACD,UAAW5G,EAAqByF,EAAa,UAAY,GAAU,CACjE,IAAMoB,EAAgBb,EAAU,UAAY,GAExC,EADkBY,EAAM,SAAWA,EAAM,QAAUA,EAAM,UACvCA,EAAM,IAAI,SAAW,GAAGX,EAAsBW,EAAM,GAAG,EACzE,KAAiBA,EAAM,MAAQ,MAC/B7E,EAAU,SAAS6E,EAAM,GAAG,IAC9BH,EAAW,EACXG,EAAM,eAAe,EAEzB,CAAC,CACH,CACF,CAAE,CAAC,CACL,EAAG,eAAe,CACpB,EACIE,GAAa,cACbxJ,GAA8ByD,EAAM,WACtBe,EAAO,SAAsB,EAAO,EAAc,CAChE,GAAM,CAAE,gBAAe,YAAW,QAAO,WAAU,cAAc,GAAI,GAAGkF,GAAejE,EACjFiC,EAAUvC,EAAiBqE,GAAY7D,CAAa,EACpD,CAAE,gCAAiC+B,EACnCiC,EAAc9B,IAAa,IAAK,GAChCS,EAAetG,EAAgBuG,EAAcb,EAAQ,iBAAiB,EAC5EvF,MAAsB,CACpByH,EAA6BD,CAAW,CAC1C,EAAG,CAACC,EAA8BD,CAAW,CAAC,EAC9C,IAAME,EAAkBR,EAAsB3B,EAAQ,KAAK,EAC3D,OAAuB,EAAApD,EAAA,IAAA,CACrBlC,EAAU,KACV,CACE,GAAGsH,EACH,QAAS,IAA0BA,EAAW,QAC9C,IAAKpB,EACL,MAAO,CAAE,cAAe,MAAO,EAC/B,UAA0B,EAAAhE,EAAA,IAAA,CAAAb,EAAU,SAAU,CAAE,SAAUoG,EAAkBC,EAAcjC,CAAS,EAAGgC,EAAkB,cAAgB,OAAO,CACjJ,CACF,CACF,EAAG,aAAa,CAClB,EACIE,GAA6BtG,EAAM,WACrBe,EAAO,SAAqB,EAAO,EAAc,CAC/D,GAAM,CAAE,gBAAe,WAAU,GAAGwF,GAAcvE,EAClD,OAAuB,EAAAnB,EAAA,IAAA,CAAIlC,EAAU,KAAM,CAAE,cAAe,GAAM,GAAG4H,EAAW,IAAKzB,EAAc,SAAUV,GAAY,GAAS,CAAC,CACrI,EAAG,YAAY,CACjB,EAEI,CAACoC,GAAgBC,IAAoBnF,EAAoB,eAAa,CACxE,WAAY,IAAK,EACnB,CAAC,EACGoF,GAA+B3F,EAAQ,GAAU,CACnD,GAAM,CAAE,gBAAe,aAAY,GAAG4F,GAAgB3E,EACtD,OAAuB,EAAAnB,EAAA,IAAA,CAAI2F,GAAgB,CAAE,MAAOxE,EAAM,cAAe,aAAY,UAA0B,EAAAnB,EAAA,IAAA,CAAIrE,EAAiB,CAAE,QAAS,GAAM,GAAGmK,CAAY,CAAC,CAAE,CAAC,CAC1K,EAAG,cAAc,EACbC,EAAe,gBACfnK,GAAgCuD,EAAM,WACxBe,EAAO,SAAwB,EAAO,EAAc,CAClE,IAAM+F,EAAgBL,GAAiBG,EAAc5E,EAAM,aAAa,EAClE,CAAE,aAAa8E,EAAc,WAAY,GAAGC,GAAiB/E,EAC7DiC,EAAUvC,EAAiBkF,EAAc5E,EAAM,aAAa,EAC5D,CAACgF,EAAUC,GAAAjH,EAAqB,SAAS,EAI/C,OAHAtB,MAAsB,CACpBuI,EAAY,IAAI,gBAAkB,CACpC,EAAG,CAAC,CAAC,GACkB,EAAApG,EAAA,IAAA,CAAIzB,EAAU,CAAE,QAAS8H,GAAcjD,EAAQ,KAAM,UAAW,CAAE,aAAckD,GAA0B,EAAAtG,EAAA,IAAA,CAAIuG,GAAmB,CAAE,GAAGL,EAAc,IAAKjC,CAAa,CAAC,GAAoB,EAAAjE,EAAA,IAAA,CAAIwG,GAAuB,CAAE,GAAGN,EAAc,UAAS,CAAC,CAAE,CAAC,CAC/Q,EAAG,eAAe,CACpB,EACIM,GAAwCrH,EAAM,WAA2Be,EAAO,SAAgC,EAAO,EAAc,CACvI,GAAM,CAAE,gBAAe,WAAU,YAAaiB,EAE9C,OADKgF,EACLjH,EAAgB,cACE,EAAAc,EAAA,IAAA,CAAIyG,GAAuB,CAAE,MAAOpF,EAAe,UAA0B,EAAArB,EAAA,IAAA,CAAIM,EAAW,KAAM,CAAE,MAAOe,EAAe,UAA0B,EAAArB,EAAA,IAAA,CAAI,MAAO,CAAE,IAAKiE,EAAc,UAAS,CAAC,CAAE,CAAC,CAAE,CAAC,EACpNkC,CACF,EAJsB,IAKxB,EAAG,uBAAuB,CAAC,EACvBO,EAAiB,GACjB,CAACD,GAAuBE,GAA2BlG,EAAoBsF,CAAY,EACnFa,GAAOpI,EAAW,4BAA4B,EAC9C+H,GAAoCpH,EAAM,WAE5Be,EAAO,SAA4B,EAAO,EAAc,CACtE,GAAM,CAAE,iBAAkBiB,EACpB,CACJ,WAAW,eACX,mBACA,kBACA,uBAGA,OACA,aACA,QACA,cACA,eACA,oBACA,mBACA,SACA,mBACA,kBAEA,GAAG+E,GACD/E,EACEiC,EAAUvC,EAAiBkF,EAAc1E,CAAa,EACtD,CAACwF,EAASC,GAAA3H,EAAoB,SAAS,IAAI,EAC3C,CAAC4H,EAAUC,GAAA7H,EAAqB,SAAS,IAAI,EAC7C6E,EAAetG,EAAgBuG,EAAc6C,CAAU,EACvD,CAACG,EAAcC,GAAA/H,EAAyB,SAAS,IAAI,EACrD,CAACgI,GAAkBC,GAAAjI,EAA6B,SACpD,IACF,EACM+E,EAAW3D,GAAcc,CAAa,EACtC,CAACgG,EAAcC,GAAAnI,EAAyB,SAAS,EAAK,EACtDoI,EAAApI,EAA+B,OAAO,EAAK,EACjDA,EAAM,cAAgB,CACpB,GAAI0H,EAAS,OAAOvI,EAAWuI,CAAO,CACxC,EAAG,CAACA,CAAO,CAAC,EACZxI,EAAe,EACf,IAAMmJ,EAAArI,EAAmB,YACtB,GAAe,CACd,GAAM,CAACsI,EAAW,GAAGC,GAAaxD,EAAS,CAAC,CAAC,IAAK,GAASO,EAAK,IAAI,OAAO,EACrE,CAACkD,GAAYD,EAAU,MAAM,EAAE,EAC/BE,EAA6B,SAAS,cAC5C,IAAK,IAAMC,KAAaC,EAMtB,GALID,IAAcD,IAClBC,GAAW,eAAe,CAAE,MAAO,SAAU,CAAC,EAC1CA,IAAcJ,GAAaV,IAAU,EAAS,UAAY,GAC1Dc,IAAcF,GAAYZ,IAAU,EAAS,UAAYA,EAAS,cACtEc,GAAW,MAAM,EACb,SAAS,gBAAkBD,GAA4B,MAE/D,EACA,CAAC1D,EAAU6C,CAAQ,CACrB,EACMgB,EAAA5I,EAA0B,gBACxBqI,EAAW,CAACP,EAAcJ,CAAO,CAAC,EACxC,CAACW,EAAYP,EAAcJ,CAAO,CACpC,EACA1H,EAAM,cAAgB,CAChBkI,GACFU,EAAkB,CAEtB,EAAG,CAACV,EAAcU,CAAiB,CAAC,EACpC,GAAM,CAAE,eAAc,4BAA6B3E,EACnDjE,EAAM,cAAgB,CACpB,GAAI0H,EAAS,CACX,IAAImB,EAAmB,CAAE,EAAG,EAAG,EAAG,CAAE,EAC9BC,EAAoC/H,EAAQ,GAAU,CAC1D,EAAmB,CACjB,EAAG,KAAK,IAAI,KAAK,MAAM8E,EAAM,KAAK,GAAK3C,EAAyB,SAAS,GAAK,EAAE,EAChF,EAAG,KAAK,IAAI,KAAK,MAAM2C,EAAM,KAAK,GAAK3C,EAAyB,SAAS,GAAK,EAAE,CAClF,CACF,EAAG,mBAAmB,EAChB6F,EAAkChI,EAAQ,GAAU,CACpD8H,EAAiB,GAAK,IAAMA,EAAiB,GAAK,GACpDhD,EAAM,eAAe,EAEhBA,EAAM,aAAa,CAAC,CAAC,SAAS6B,CAAO,GACxC5E,EAAa,EAAK,EAGtB,SAAS,oBAAoB,cAAegG,CAAiB,EAC7D,EAAyB,QAAU,IACrC,EAAG,iBAAiB,EAKpB,OAJI5F,EAAyB,UAAY,OACvC,SAAS,iBAAiB,cAAe4F,CAAiB,EAC1D,SAAS,iBAAiB,YAAaC,EAAiB,CAAE,QAAS,GAAM,KAAM,EAAK,CAAC,OAE1E,CACX,SAAS,oBAAoB,cAAeD,CAAiB,EAC7D,SAAS,oBAAoB,YAAaC,EAAiB,CAAE,QAAS,EAAK,CAAC,CAC9E,CACF,CACF,EAAG,CAACrB,EAAS5E,EAAcI,CAAwB,CAAC,EACpDlD,EAAM,cAAgB,CACpB,IAAMgJ,EAAwBjI,MAAa+B,EAAa,EAAK,EAAG,OAAO,EAGvE,OAFA,OAAO,iBAAiB,OAAQkG,CAAK,EACrC,OAAO,iBAAiB,SAAUA,CAAK,MAC1B,CACX,OAAO,oBAAoB,OAAQA,CAAK,EACxC,OAAO,oBAAoB,SAAUA,CAAK,CAC5C,CACF,EAAG,CAAClG,CAAY,CAAC,EACjB,GAAM,CAACmC,GAAWC,GAAyBE,GAAoB,GAAW,CACxE,IAAMC,EAAeN,EAAS,CAAC,CAAC,OAAQ,GAAS,CAACO,EAAK,QAAQ,EAEzDC,EAAWC,GAAaH,EAAcI,EADxBJ,EAAa,KAAM,GAASC,EAAK,IAAI,UAAY,SAAS,aAChB,CAAC,EAC3DC,GACF,eAAiBA,EAAS,IAAI,SAAS,MAAM,CAAC,CAElD,CAAC,EACK0D,EAAAjJ,EAAwB,aAC3B,EAAM,EAAO,IAAa,CACzB,IAAMkJ,EAAmB,CAACd,EAAuB,SAAW,CAACxD,GACtCX,EAAQ,QAAU,IAAK,IAAKA,EAAQ,QAAU1D,GAC/C2I,KACpBnB,EAAgBoB,CAAI,EAChBD,IAAkB,EAAuB,QAAU,IAE3D,EACA,CAACjF,EAAQ,KAAK,CAChB,EACMmF,GAAApJ,EAAwB,gBAAkB0H,GAAS,MAAM,EAAG,CAACA,CAAO,CAAC,EACrE2B,EAAArJ,EAA4B,aAC/B,EAAM,EAAO,IAAa,CACzB,IAAMkJ,EAAmB,CAACd,EAAuB,SAAW,CAACxD,GACtCX,EAAQ,QAAU,IAAK,IAAKA,EAAQ,QAAU1D,GAC/C2I,IACpBjB,EAAoBkB,CAAI,CAE5B,EACA,CAAClF,EAAQ,KAAK,CAChB,EACMqF,GAAiBC,IAAa,SAAWC,GAAuBC,GAChEC,EAAqBJ,KAAmBE,GAAuB,CACnE,OACA,aACA,QACA,cACA,eACA,oBACA,mBACA,SACA,mBACA,iBACF,EAAI,CAAC,EACL,OAAuB,EAAA3I,EAAA,IAAA,CACrByG,GACA,CACE,MAAOpF,EACP,UACA,WACA,iBAAkB2F,EAClB,kBACA,eACA,YAAauB,GACb,sBACA,oBACA,oBACA,WACA,eACA,aACA,UAA0B,EAAAvI,EAAA,IAAA,CAAInE,EAAc,CAAE,GAAI+K,GAAM,eAAgB,GAAM,UAA0B,EAAA5G,EAAA,IAAA,CACtGvC,EACA,CACE,QAAS,GACT,QAAS2F,EAAQ,KACjB,iBAAmB,GAAU,CAC3B4B,EAAM,eAAe,CACvB,EACA,mBAAoB5G,EAAqB0K,EAAmB,GAAU,CACpE1F,EAAQ,SAAS,MAAM,CAAE,cAAe,EAAK,CAAC,EAC9C4B,EAAM,eAAe,CACvB,CAAC,EACD,UAA0B,EAAAhF,EAAA,IAAA,CACxB7B,EACA,CACE,QAAS,GACT,4BAA6B,GAC7B,kBACA,uBACA,eAAiB,GAAU6G,EAAM,eAAe,EAChD,cAAiB5B,EAAQ,aAAa,EAAK,EAC3C,UAA0B,EAAApD,EAAA,IAAA,CACxByI,GACA,CACE,KAAM,UACN,GAAIrF,EAAQ,UACZ,aAAcA,EAAQ,KAAO,OAAS,SACtC,IAAKA,EAAQ,IACb,cAAgB,GAAU4B,EAAM,eAAe,EAC/C,GAAGkB,EACH,GAAG2C,EACH,aAAgBvB,EAAgB,EAAI,EACpC,IAAKtD,EACL,MAAO,CAEL,QAAS,OACT,cAAe,SAEf,QAAS,OACT,GAAGkC,EAAa,KAClB,EACA,UAAW9H,EAAqB8H,EAAa,UAAY,GAAU,CACjE,IAAM6C,EAAgB/D,EAAM,SAAWA,EAAM,QAAUA,EAAM,QAG7D,GAFIA,EAAM,MAAQ,OAAOA,EAAM,eAAe,EAC1C,CAAC+D,GAAiB/D,EAAM,IAAI,SAAW,GAAGX,EAAsBW,EAAM,GAAG,EACzE,CAAC,UAAW,YAAa,OAAQ,KAAK,CAAC,CAAC,SAASA,EAAM,GAAG,EAAG,CAE/D,IAAIgE,EADU9E,EAAS,CAAC,CAAC,OAAQ,GAAS,CAACO,EAAK,QACvB,CAAC,CAAC,IAAK,GAASA,EAAK,IAAI,OAAO,EAIzD,GAHI,CAAC,UAAW,KAAK,CAAC,CAAC,SAASO,EAAM,GAAG,IACvC,EAAiBgE,EAAe,MAAM,CAAC,CAAC,QAAQ,GAE9C,CAAC,UAAW,WAAW,CAAC,CAAC,SAAShE,EAAM,GAAG,EAAG,CAChD,IAAMiE,EAAiBjE,EAAM,OACvBkE,EAAeF,EAAe,QAAQC,CAAc,EAC1D,EAAiBD,EAAe,MAAME,EAAe,CAAC,CACxD,CACA,eAAiB1B,EAAWwB,CAAc,CAAC,EAC3ChE,EAAM,eAAe,CACvB,CACF,CAAC,CACH,CACF,CACF,CACF,CACF,CACF,CAAE,CAAC,CACL,CACF,CACF,EAAG,mBAAmB,CACxB,EACI4D,GAA4CzJ,EAAM,WAA2Be,EAAO,SAAoC,EAAO,EAAc,CAC/I,GAAM,CAAE,gBAAe,WAAU,GAAGiJ,GAAgBhI,EAC9CiC,EAAUvC,EAAiBkF,EAAc1E,CAAa,EACtD+H,EAAiBzC,EAAwBZ,EAAc1E,CAAa,EACpE,CAACgI,EAAgBC,GAAAnK,EAA2B,SAAS,IAAI,EACzD,CAAC0H,EAASC,GAAA3H,EAAoB,SAAS,IAAI,EAC3C6E,EAAetG,EAAgBuG,EAAc6C,CAAU,EACvD5C,EAAW3D,GAAcc,CAAa,EACtCkI,EAAApK,EAAgC,OAAO,EAAK,EAC5CqK,EAAArK,EAA4B,OAAO,EAAI,EACvC,CAAE,WAAU,eAAc,mBAAkB,qBAAsBiK,EAClEV,EAAAvJ,EAAiB,gBAAkB,CACvC,GAAIiE,EAAQ,SAAWA,EAAQ,WAAaiG,GAAkBxC,GAAWE,GAAYE,GAAgBE,EAAkB,CACrH,IAAMsC,EAAcrG,EAAQ,QAAQ,sBAAsB,EACpDsG,EAAc7C,EAAQ,sBAAsB,EAC5C8C,EAAgBvG,EAAQ,UAAU,sBAAsB,EACxDwG,EAAezC,EAAiB,sBAAsB,EAC5D,GAAI/D,EAAQ,MAAQ,MAAO,CACzB,IAAMyG,EAAiBD,EAAa,KAAOF,EAAY,KACjDI,EAAOH,EAAc,KAAOE,EAC5BE,EAAYN,EAAY,KAAOK,EAC/BE,EAAkBP,EAAY,MAAQM,EACtCE,EAAe,KAAK,IAAID,EAAiBN,EAAY,KAAK,EAC1DQ,EAAY,OAAO,WAAaxD,EAChCyD,EAActK,EAAMiK,EAAM,CAC9BpD,EAMA,KAAK,IAAIA,EAAgBwD,EAAYD,CAAY,CACnD,CAAC,EACD,EAAe,MAAM,SAAWD,EAAkB,KAClD,EAAe,MAAM,KAAOG,EAAc,IAC5C,KAAO,CACL,IAAMN,EAAiBH,EAAY,MAAQE,EAAa,MAClDQ,EAAQ,OAAO,WAAaT,EAAc,MAAQE,EAClDQ,EAAa,OAAO,WAAaZ,EAAY,MAAQW,EACrDJ,EAAkBP,EAAY,MAAQY,EACtCJ,EAAe,KAAK,IAAID,EAAiBN,EAAY,KAAK,EAC1DY,EAAW,OAAO,WAAa5D,EAC/B6D,EAAe1K,EAAMuK,EAAO,CAChC1D,EACA,KAAK,IAAIA,EAAgB4D,EAAWL,CAAY,CAClD,CAAC,EACD,EAAe,MAAM,SAAWD,EAAkB,KAClD,EAAe,MAAM,MAAQO,EAAe,IAC9C,CACA,IAAMC,EAAQtG,EAAS,EACjBuG,EAAkB,OAAO,YAAc/D,EAAiB,EACxDgE,EAAc3D,EAAS,aACvB4D,EAAgB,OAAO,iBAAiB9D,CAAO,EAC/C+D,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,EAAmB,KAAK,IAAIhE,EAAa,aAAe,EAAG+D,CAAiB,EAC5EE,EAAiB,OAAO,iBAAiBnE,CAAQ,EACjDoE,EAAqB,SAASD,EAAe,WAAY,EAAE,EAC3DE,EAAwB,SAASF,EAAe,cAAe,EAAE,EACjEG,EAAyB5B,EAAY,IAAMA,EAAY,OAAS,EAAI/C,EACpE4E,EAA4Bb,EAAkBY,EAC9CE,EAAyBtE,EAAa,aAAe,EACrDuE,EAAmBvE,EAAa,UAAYsE,EAC5CE,EAAyBb,EAAwBC,EAAoBW,EACrEE,EAA4BV,EAAoBS,EAEtD,GADoCA,GAA0BJ,EAC7B,CAC/B,IAAMM,EAAanB,EAAM,OAAS,GAAKvD,IAAiBuD,EAAMA,EAAM,OAAS,EAAE,CAAC,IAAI,QACpF,EAAe,MAAM,OAAS,MAC9B,IAAMoB,EAAuB/E,EAAQ,aAAeE,EAAS,UAAYA,EAAS,aAM5E8E,EAASJ,EAL0B,KAAK,IAC5CH,EACAC,GACCI,EAAaP,EAAwB,GAAKQ,EAAuBd,CAEG,EACvE,EAAe,MAAM,OAASe,EAAS,IACzC,KAAO,CACL,IAAMC,EAActB,EAAM,OAAS,GAAKvD,IAAiBuD,EAAM,EAAE,CAAC,IAAI,QACtE,EAAe,MAAM,IAAM,MAM3B,IAAMqB,EALgC,KAAK,IACzCR,EACAT,EAAwB7D,EAAS,WAChC+E,EAAcX,EAAqB,GAAKI,CAEA,EAAIG,EAC/C,EAAe,MAAM,OAASG,EAAS,KACvC,EAAS,UAAYJ,EAAyBJ,EAAyBtE,EAAS,SAClF,CACA,EAAe,MAAM,OAAS,GAAGL,EAAe,MAChD,EAAe,MAAM,UAAYuE,EAAmB,KACpD,EAAe,MAAM,UAAYR,EAAkB,KACnDsB,IAAW,EACX,0BAA4B,EAAwB,QAAU,EAAI,CACpE,CACF,EAAG,CACD7H,EACAd,EAAQ,QACRA,EAAQ,UACRiG,EACAxC,EACAE,EACAE,EACAE,EACA/D,EAAQ,IACR2I,CACF,CAAC,EACDlO,MAAsB6K,EAAS,EAAG,CAACA,CAAQ,CAAC,EAC5C,GAAM,CAACsD,EAAeC,GAAA9M,EAA0B,SAAS,EACzDtB,MAAsB,CAChBgJ,GAASoF,EAAiB,OAAO,iBAAiBpF,CAAO,CAAC,CAAC,MAAM,CACvE,EAAG,CAACA,CAAO,CAAC,EACZ,IAAMqF,EAAA/M,EAAiC,YACpC,GAAS,CACJmJ,GAAQkB,EAAoB,UAAY,KAC1Cd,EAAS,EACTX,IAAoB,EACpB,EAAoB,QAAU,GAElC,EACA,CAACW,EAAUX,CAAiB,CAC9B,EACA,OAAuB,EAAA/H,EAAA,IAAA,CACrBmM,GACA,CACE,MAAO9K,EACP,iBACA,0BACA,qBAAsB6K,EACtB,UAA0B,EAAAlM,EAAA,IAAA,CACxB,MACA,CACE,IAAKsJ,EACL,MAAO,CACL,QAAS,OACT,cAAe,SACf,SAAU,QACV,OAAQ0C,CACV,EACA,UAA0B,EAAAhM,EAAA,IAAA,CACxBlC,EAAU,IACV,CACE,GAAGqL,EACH,IAAKnF,EACL,MAAO,CAGL,UAAW,aAEX,UAAW,OACX,GAAGmF,EAAY,KACjB,CACF,CACF,CACF,CACF,CACF,CACF,CACF,EAAG,2BAA2B,CAAC,EAC3BR,GAAuCxJ,EAAM,WAA2Be,EAAO,SAA+B,EAAO,EAAc,CACrI,GAAM,CACJ,gBACA,QAAQ,QACR,mBAAmBwG,EACnB,GAAGyC,GACDhI,EACEC,EAAcT,EAAeU,CAAa,EAChD,OAAuB,EAAArB,EAAA,IAAA,CACrBlE,EACA,CACE,GAAGsF,EACH,GAAG+H,EACH,IAAKlF,EACL,QACA,mBACA,MAAO,CAEL,UAAW,aACX,GAAGkF,EAAY,MAGb,0CAA2C,uCAC3C,yCAA0C,sCAC1C,0CAA2C,uCAC3C,+BAAgC,mCAChC,gCAAiC,mCAErC,CACF,CACF,CACF,EAAG,sBAAsB,CAAC,EACtB,CAACgD,GAAwBC,IAA4B3L,EAAoBsF,EAAc,CAAC,CAAC,EACzFsG,GAAgB,iBAChBC,GAAiCnN,EAAM,WACzBe,EAAO,SAAyB,EAAO,EAAc,CACnE,GAAM,CAAE,gBAAe,QAAO,GAAGqM,GAAkBpL,EAC7CiI,EAAiBzC,EAAwB0F,GAAehL,CAAa,EACrEmL,EAAkBJ,GAAyBC,GAAehL,CAAa,EACvE2C,EAAetG,EAAgBuG,EAAcmF,EAAe,gBAAgB,EAC5EqD,EAAAtN,EAAyB,OAAO,CAAC,EACvC,OAAuB,EAAAa,EAAA,KAAA,CAAKzE,EAAAA,SAAW,CAAE,SAAU,EACjC,EAAAyE,EAAA,IAAA,CACd,QACA,CACE,wBAAyB,CACvB,OAAQ,2KACV,EACA,OACF,CACF,GACgB,EAAAA,EAAA,IAAA,CAAIM,EAAW,KAAM,CAAE,MAAOe,EAAe,UAA0B,EAAArB,EAAA,IAAA,CACrFlC,EAAU,IACV,CACE,6BAA8B,GAC9B,KAAM,eACN,GAAGyO,EACH,IAAKvI,EACL,MAAO,CAIL,SAAU,WACV,KAAM,EAKN,SAAU,cACV,GAAGuI,EAAc,KACnB,EACA,SAAUnO,EAAqBmO,EAAc,SAAW,GAAU,CAChE,IAAMxF,EAAW/B,EAAM,cACjB,CAAE,iBAAgB,2BAA4BwH,EACpD,GAAIjD,GAAyB,SAAWF,EAAgB,CACtD,IAAMqD,EAAa,KAAK,IAAID,EAAiB,QAAU1F,EAAS,SAAS,EACzE,GAAI2F,EAAa,EAAG,CAClB,IAAMjC,EAAkB,OAAO,YAAc/D,EAAiB,EACxDiG,EAAe,WAAWtD,EAAe,MAAM,SAAS,EACxDuD,EAAY,WAAWvD,EAAe,MAAM,MAAM,EAClDwD,EAAa,KAAK,IAAIF,EAAcC,CAAS,EACnD,GAAIC,EAAapC,EAAiB,CAChC,IAAMqC,EAAaD,EAAaH,EAC1BK,EAAoB,KAAK,IAAItC,EAAiBqC,CAAU,EACxDE,EAAaF,EAAaC,EAChC,EAAe,MAAM,OAASA,EAAoB,KAC9C1D,EAAe,MAAM,SAAW,QAClC,EAAS,UAAY2D,EAAa,EAAIA,EAAa,EACnD,EAAe,MAAM,eAAiB,WAE1C,CACF,CACF,CACA,EAAiB,QAAUjG,EAAS,SACtC,CAAC,CACH,CACF,CAAE,CAAC,CACL,CAAE,CAAC,CACL,EAAG,gBAAgB,CACrB,EAEI,CAACkG,GAA4BC,IAAyBzM,EAAoB,aAAU,EAgBpF0M,GAAY,aACZ,CAACC,GAA2BC,IAAwB5M,EAAoB0M,EAAS,EACjFpR,GAA6BoD,EAAM,WACrBe,EAAO,SAAqB,EAAO,EAAc,CAC/D,GAAM,CACJ,gBACA,QACA,WAAW,GACX,UAAWqN,EACX,GAAGC,GACDrM,EACEiC,EAAUvC,EAAiBsM,GAAW9L,CAAa,EACnD+H,EAAiBzC,EAAwBwG,GAAW9L,CAAa,EACjEoM,EAAarK,EAAQ,QAAU1D,EAC/B,CAACgO,EAAWC,GAAAxO,EAAsB,SAASoO,GAAiB,EAAE,EAC9D,CAACK,EAAWC,GAAA1O,EAAsB,SAAS,EAAK,EAChD2O,EAAwBnQ,EAC3B,GAASyL,EAAe,kBAAkBd,EAAM5I,EAAOqE,CAAQ,CAClE,EACMC,EAAetG,EAAgBuG,EAAc6J,CAAqB,EAClEC,EAAS/P,EAAM,EACfmG,EAAAhF,EAAuB,OAAO,OAAO,EACrC6O,EAA+B9N,MAAa,CAC3C6D,IACHX,EAAQ,cAAc1D,CAAK,EAC3B0D,EAAQ,aAAa,EAAK,EAE9B,EAAG,cAAc,EACjB,OAAuB,EAAApD,EAAA,IAAA,CACrBoN,GACA,CACE,MAAO/L,EACP,QACA,WACA,SACA,aACA,iBAAAlC,EAAwB,YAAa,GAAS,CAC5CwO,EAAc,GAAkBM,IAAkB3F,GAAM,aAAe,GAAA,CAAI,KAAK,CAAC,CACnF,EAAG,CAAC,CAAC,EACL,UAA0B,EAAAtI,EAAA,IAAA,CACxBM,EAAW,SACX,CACE,MAAOe,EACP,QACA,WACA,YACA,UAA0B,EAAArB,EAAA,IAAA,CACxBlC,EAAU,IACV,CACE,KAAM,SACN,kBAAmBiQ,EACnB,mBAAoBH,EAAY,GAAK,IAAK,GAC1C,gBAAiBH,GAAcG,EAC/B,aAAcH,EAAa,UAAY,YACvC,gBAAiB1J,GAAY,IAAK,GAClC,gBAAiBA,EAAW,GAAK,IAAK,GACtC,SAAUA,EAAW,IAAK,GAAI,GAC9B,GAAGyJ,EACH,IAAKxJ,EACL,QAAS5F,EAAqBoP,EAAU,YAAeK,EAAa,EAAI,CAAC,EACzE,OAAQzP,EAAqBoP,EAAU,WAAcK,EAAa,EAAK,CAAC,EACxE,QAASzP,EAAqBoP,EAAU,YAAe,CACjDrJ,EAAe,UAAY,SAAS6J,EAAa,CACvD,CAAC,EACD,YAAa5P,EAAqBoP,EAAU,gBAAmB,CACzDrJ,EAAe,UAAY,SAAS6J,EAAa,CACvD,CAAC,EACD,cAAe5P,EAAqBoP,EAAU,cAAgB,GAAU,CACtE,EAAe,QAAUxI,EAAM,WACjC,CAAC,EACD,cAAe5G,EAAqBoP,EAAU,cAAgB,GAAU,CACtE,EAAe,QAAUxI,EAAM,YAC3BjB,EACFqF,EAAe,cAAc,EACpBjF,EAAe,UAAY,SACpCa,EAAM,cAAc,MAAM,CAAE,cAAe,EAAK,CAAC,CAErD,CAAC,EACD,eAAgB5G,EAAqBoP,EAAU,eAAiB,GAAU,CACpExI,EAAM,gBAAkB,SAAS,eACnCoE,EAAe,cAAc,CAEjC,CAAC,EACD,UAAWhL,EAAqBoP,EAAU,UAAY,GAAU,CAC1DzJ,GAAYiB,EAAM,SAAWA,EAAM,gBAGjBoE,EAAe,WAAW,UAAY,IACvCpE,EAAM,MAAQ,OAG/B5E,GAAe,SAAS4E,EAAM,GAAG,GACnCgJ,EAAa,EAEXhJ,EAAM,MAAQ,KAChBA,EAAM,eAAe,EAEzB,CAAC,CACH,CACF,CACF,CACF,CACF,CACF,CACF,EAAG,YAAY,CACjB,EACIkJ,GAAiB,iBACjBC,GAAiChP,EAAM,WACzBe,EAAO,SAAyB,EAAO,EAAc,CACnE,GAAM,CAAE,gBAAe,YAAW,QAAO,GAAGkO,GAAkBjN,EACxDiC,EAAUvC,EAAiBqN,GAAgB7M,CAAa,EACxD+H,EAAiBzC,EAAwBuH,GAAgB7M,CAAa,EACtEgN,EAAchB,GAAqBa,GAAgB7M,CAAa,EAChEiN,EAAuBvN,GAA8BmN,GAAgB7M,CAAa,EAClF,CAACkN,EAAcC,GAAArP,EAAyB,SAAS,IAAI,EACrDsP,EAA4B9Q,EAC/B,GAASyL,EAAe,sBAAsBd,EAAM+F,EAAY,MAAOA,EAAY,QAAQ,CAC9F,EACMrK,EAAetG,EACnBuG,EACAuK,EACAH,EAAY,iBACZI,CACF,EACMC,EAAcH,GAAc,YAC5BI,EAAAxP,EAAqB,aACH,EAAAa,EAAA,IAAA,CAAI,SAAU,CAAE,MAAOqO,EAAY,MAAO,SAAUA,EAAY,SAAU,SAAUK,CAAY,EAAGL,EAAY,KAAK,EAC1I,CAACA,EAAY,SAAUA,EAAY,MAAOK,CAAW,CACvD,EACM,CAAE,oBAAmB,wBAAyBJ,EAKpD,OAJAzQ,OACE+Q,EAAkBD,CAAY,MACjBE,EAAqBF,CAAY,GAC7C,CAACC,EAAmBC,EAAsBF,CAAY,CAAC,GACnC,EAAA3O,EAAA,KAAA,CAAKzE,EAAAA,SAAW,CAAE,SAAU,EACjC,EAAAyE,EAAA,IAAA,CAAIlC,EAAU,KAAM,CAAE,GAAIuQ,EAAY,OAAQ,GAAGD,EAAe,IAAKpK,CAAa,CAAC,EACnGqK,EAAY,YAAcjL,EAAQ,WAAa,CAACA,EAAQ,sBAAwB,CAAC2B,EAAsB3B,EAAQ,KAAK,EAAAlE,EAAa,aAAakP,EAAc,SAAUhL,EAAQ,SAAS,EAAI,IAC7L,CAAE,CAAC,CACL,EAAG,gBAAgB,CACrB,EACI0L,GAAsB,sBACtBC,GAAsC5P,EAAM,WAE9Be,EAAO,SAA8B,EAAO,EAAc,CACxE,GAAM,CAAE,gBAAe,GAAG8O,GAAuB7N,EAEjD,OADoBkM,GAAqByB,GAAqBzN,CAC7C,CAAC,CAAC,YAA6B,EAAArB,EAAA,IAAA,CAAIlC,EAAU,KAAM,CAAE,cAAe,GAAM,GAAGkR,EAAoB,IAAK/K,CAAa,CAAC,EAAI,IAC3I,EAAG,qBAAqB,CAC1B,EACIgL,GAAwB,uBACxBjT,GAAuCmD,EAAM,WAA2Be,EAAO,SAA+B,EAAO,EAAc,CACrI,IAAMkJ,EAAiBzC,EAAwBsI,GAAuB9N,EAAM,aAAa,EACnFqL,EAAkBJ,GAAyB6C,GAAuB9N,EAAM,aAAa,EACrF,CAACgO,EAAaC,GAAAjQ,EAAwB,SAAS,EAAK,EACpD6E,EAAetG,EAAgBuG,EAAcuI,EAAgB,oBAAoB,EAevF,OAdA3O,MAAsB,CACpB,GAAIuL,EAAe,UAAYA,EAAe,aAAc,CAC1D,IAAIiG,EAAgB,UAAW,CAC7B,IAAMC,EAAevI,EAAS,UAAY,EAC1CqI,EAAeE,CAAY,CAC7B,EAEApP,EAAOmP,EAAe,cAAc,EACpC,IAAMtI,EAAWqC,EAAe,SAGhC,OAFAiG,EAAc,EACdtI,EAAS,iBAAiB,SAAUsI,CAAa,MACpCtI,EAAS,oBAAoB,SAAUsI,CAAa,CACnE,CACF,EAAG,CAACjG,EAAe,SAAUA,EAAe,YAAY,CAAC,EAClD+F,GAA8B,EAAAnP,EAAA,IAAA,CACnCuP,GACA,CACE,GAAGpO,EACH,IAAK6C,EACL,iBAAoB,CAClB,GAAM,CAAE,WAAU,gBAAiBoF,EAC/BrC,GAAYE,IACd,EAAS,WAAiCA,EAAa,aAE3D,CACF,CACF,EAAI,IACN,EAAG,sBAAsB,CAAC,EACtBuI,GAA0B,yBAC1BvT,GAAyCkD,EAAM,WAA2Be,EAAO,SAAiC,EAAO,EAAc,CACzI,IAAMkJ,EAAiBzC,EAAwB6I,GAAyBrO,EAAM,aAAa,EACrFqL,EAAkBJ,GAAyBoD,GAAyBrO,EAAM,aAAa,EACvF,CAACuO,EAAeC,GAAAxQ,EAA0B,SAAS,EAAK,EACxD6E,EAAetG,EAAgBuG,EAAcuI,EAAgB,oBAAoB,EAgBvF,OAfA3O,MAAsB,CACpB,GAAIuL,EAAe,UAAYA,EAAe,aAAc,CAC1D,IAAIiG,EAAgB,UAAW,CAC7B,IAAMO,EAAY7I,EAAS,aAAeA,EAAS,aAC7C8I,EAAiB,KAAK,KAAK9I,EAAS,SAAS,EAAI6I,EACvDD,EAAiBE,CAAc,CACjC,EAEA3P,EAAOmP,EAAe,cAAc,EACpC,IAAMtI,EAAWqC,EAAe,SAGhC,OAFAiG,EAAc,EACdtI,EAAS,iBAAiB,SAAUsI,CAAa,MACpCtI,EAAS,oBAAoB,SAAUsI,CAAa,CACnE,CACF,EAAG,CAACjG,EAAe,SAAUA,EAAe,YAAY,CAAC,EAClDsG,GAAgC,EAAA1P,EAAA,IAAA,CACrCuP,GACA,CACE,GAAGpO,EACH,IAAK6C,EACL,iBAAoB,CAClB,GAAM,CAAE,WAAU,gBAAiBoF,EAC/BrC,GAAYE,IACd,EAAS,WAAiCA,EAAa,aAE3D,CACF,CACF,EAAI,IACN,EAAG,wBAAwB,CAAC,EACxBsI,GAAyCpQ,EAAM,WAA2Be,EAAO,SAAiC,EAAO,EAAc,CACzI,GAAM,CAAE,gBAAe,eAAc,GAAG4P,GAAyB3O,EAC3DiI,EAAiBzC,EAAwB,qBAAsBtF,CAAa,EAC5E0O,EAAA5Q,EAA2B,OAAO,IAAI,EACtC+E,EAAW3D,GAAcc,CAAa,EACtC2O,EAAA7Q,EAA6B,gBAAkB,CAC/C4Q,EAAmB,UAAY,OACjC,OAAO,cAAcA,EAAmB,OAAO,EAC/C,EAAmB,QAAU,KAEjC,EAAG,CAAC,CAAC,EAQL,OAPA5Q,EAAM,kBACS6Q,EAAqB,EACjC,CAACA,CAAoB,CAAC,EACzBnS,MAAsB,CAEpBqG,EAD4B,CAAC,CAAC,KAAM,GAASO,EAAK,IAAI,UAAY,SAAS,aAClE,CAAC,EAAE,IAAI,SAAS,eAAe,CAAE,MAAO,SAAU,CAAC,CAC9D,EAAG,CAACP,CAAQ,CAAC,GACU,EAAAlE,EAAA,IAAA,CACrBlC,EAAU,IACV,CACE,cAAe,GACf,GAAGgS,EACH,IAAK7L,EACL,MAAO,CAAE,WAAY,EAAG,GAAG6L,EAAqB,KAAM,EACtD,cAAe1R,EAAqB0R,EAAqB,kBAAqB,CACxEC,EAAmB,UAAY,OACjC,EAAmB,QAAU,OAAO,YAAYE,EAAc,EAAE,EAEpE,CAAC,EACD,cAAe7R,EAAqB0R,EAAqB,kBAAqB,CAC5E1G,EAAe,cAAc,EACzB2G,EAAmB,UAAY,OACjC,EAAmB,QAAU,OAAO,YAAYE,EAAc,EAAE,EAEpE,CAAC,EACD,eAAgB7R,EAAqB0R,EAAqB,mBAAsB,CAC9EE,EAAqB,CACvB,CAAC,CACH,CACF,CACF,EAAG,wBAAwB,CAAC,EAiBxBE,GAAoB,oBACpBxM,GAAoCvE,EAAM,WAE5Be,EAAO,SAA4B,CAAE,gBAAe,GAAGiB,GAAS,EAAc,CAC5F,IAAMiC,EAAUvC,EAAiBqP,GAAmB7O,CAAa,EAC3D,CAAE,QAAO,gBAAe,WAAU,WAAU,OAAM,eAAc,QAAS+B,EACzE,CAAE,gBAAe,mBAAoBA,EACrC3D,EAAAN,EAAY,OAAO,IAAI,EACvB6E,EAAetG,EAAgBuG,EAAcxE,CAAG,EAChD0Q,EAAczQ,GAAS,GACvB0Q,EAAY5Q,EAAY2Q,CAAW,EACnCE,EAAsB,MAAM,KAAKC,CAAa,CAAC,CAAC,KACnD,IAAYvN,EAAO,MAAM,OAAS,MAAQ,EAC7C,EAgBA,OAfA5D,EAAM,cAAgB,CACpB,IAAMoR,EAAS9Q,EAAI,QACnB,GAAI,CAAC8Q,EAAQ,OACb,IAAMC,EAAc,OAAO,kBAAkB,UAKvCtO,EAJa,OAAO,yBACxBsO,EACA,OAEwB,CAAC,CAAC,IAC5B,GAAIJ,IAAcD,GAAejO,EAAU,CACzC,IAAM8C,EAAQ,IAAI,MAAM,SAAU,CAAE,QAAS,EAAK,CAAC,EACnD9C,EAAS,KAAKqO,EAAQJ,CAAW,EACjCI,EAAO,cAAcvL,CAAK,CAC5B,CACF,EAAG,CAACoL,EAAWD,CAAW,CAAC,GACJ,EAAAnQ,EAAA,KAAA,CACrBlC,EAAU,OACV,CACE,cAAe,GACf,WACA,SAAU,GACV,OACA,eACA,WACA,OACA,SAAW,GAAUsE,EAAc4C,EAAM,OAAO,KAAK,EACrD,GAAG7D,EACH,MAAO,CAAE,GAAGzC,EAAwB,GAAGyC,EAAM,KAAM,EACnD,IAAK6C,EACL,aAAcmM,EACd,SAAU,CACRpL,EAAsBrF,CAAK,GAAK,CAAC2Q,GAAsC,EAAArQ,EAAA,IAAA,CAAI,SAAU,CAAE,MAAO,EAAG,CAAC,EAAI,KACtG,MAAM,KAAKsQ,CAAa,CAC1B,CACF,EACAxN,CACF,CACF,EAAG,mBAAmB,CACxB,EACA,SAASO,GAAW,EAAO,CACzB,OAAO,OAAO3D,GAAU,UAC1B,CACAQ,EAAOmD,GAAY,YAAY,EAC/B,SAAS0B,EAAsB,EAAO,CACpC,OAAOrF,IAAU,IAAMA,IAAU,IAAK,EACxC,CACAQ,EAAO6E,EAAuB,uBAAuB,EACrD,SAASR,GAAmB,EAAgB,CAC1C,IAAMkM,EAAqB9S,EAAe+S,CAAc,EAClDtM,EAAAjF,EAAkB,OAAO,EAAE,EAC3BwR,EAAAxR,EAAiB,OAAO,CAAC,EACzBkF,EAAAlF,EAA8B,YACjC,GAAQ,CACP,IAAMyF,EAASR,EAAU,QAAUwM,EACnCH,EAAmB7L,CAAM,EACR1E,GAAQ,SAAS2Q,EAAa,EAAO,CACpD,EAAU,QAAUnR,EACpB,OAAO,aAAaiR,EAAS,OAAO,EAChCjR,IAAU,KAAI,EAAS,QAAU,OAAO,eAAiBmR,EAAa,EAAE,EAAG,GAAG,EACpF,GAAI,cAAc,CAAA,CAAGjM,CAAM,CAC7B,EACA,CAAC6L,CAAkB,CACrB,EACMnM,EAAAnF,EAAuB,gBAAkB,CAC7C,EAAU,QAAU,GACpB,OAAO,aAAawR,EAAS,OAAO,CACtC,EAAG,CAAC,CAAC,EAIL,OAHAxR,EAAM,kBACS,OAAO,aAAawR,EAAS,OAAO,EAChD,CAAC,CAAC,EACE,CAACvM,EAAWC,EAAuBC,CAAc,CAC1D,CACApE,EAAOqE,GAAoB,oBAAoB,EAC/C,SAASI,GAAa,EAAO,EAAQ,EAAa,CAEhD,IAAMmM,EADalM,EAAO,OAAS,GAAK,MAAM,KAAKA,CAAM,CAAC,CAAC,MAAO,GAASmM,IAASnM,EAAO,EAAE,EACvDA,EAAO,GAAKA,EAC5CoM,EAAmBC,EAAczG,EAAM,QAAQyG,CAAW,EAAI,GAChEC,EAAeC,GAAU3G,EAAO,KAAK,IAAIwG,EAAkB,CAAC,CAAC,EACtCF,EAAiB,SAAW,IAC/B,EAAeI,EAAa,OAAQ,GAAME,IAAMH,CAAW,GACnF,IAAMvM,EAAWwM,EAAa,KAC3B,GAASzM,EAAK,UAAU,YAAY,CAAC,CAAC,WAAWqM,EAAiB,YAAY,CAAC,CAClF,EACA,OAAOpM,IAAauM,EAAyB,IAAK,GAAhBvM,CACpC,CACAxE,EAAOyE,GAAc,cAAc,EACnC,SAASwM,GAAU,EAAO,EAAY,CACpC,OAAOE,EAAM,KAAK,EAAG,IAAUA,GAAOC,EAAaC,GAASF,EAAM,OAAO,CAC3E,CACAnR,EAAOiR,GAAW,WAAW,EC1pC7B,SAASK,GAAO,CAAE,GAAGrQ,GAA4D,CAC/E,OAAO,EAAAnB,EAAA,IAAA,CAAC9D,GAAD,CAAsB,YAAU,SAAS,GAAIiF,CAAQ,CAAA,CAC9D,CAMA,SAASsQ,GAAY,CAAE,GAAGtQ,GAA6D,CACrF,OAAO,EAAAnB,EAAA,IAAA,CAAC7D,GAAD,CAAuB,YAAU,eAAe,GAAIgF,CAAQ,CAAA,CACrE,CAEA,SAASuQ,GAAc,CACrB,YACA,OAAO,UACP,WACA,GAAGvQ,GAGF,CACD,OACE,EAAAnB,EAAA,KAAA,CAAC5D,GAAD,CACE,YAAU,iBACV,YAAWuV,EACX,UAAW9S,EACT,+yBACA+S,CACF,EACA,GAAIzQ,EAPN,SAAA,CASGoC,GACD,EAAAvD,EAAA,IAAA,CAAC3D,GAAD,CAAsB,QAAA,GACpB,UAAA,EAAA2D,EAAA,IAAA,CAAC1D,EAAD,CAAiB,UAAU,mBAAqB,CAAA,CAC5B,CAAA,CACC,GAE7B,CAEA,SAASuV,GAAc,CACrB,YACA,WACA,WAAW,eACX,QAAQ,SACR,GAAG1Q,GACoD,CACvD,OACE,EAAAnB,EAAA,IAAA,CAACzD,GAAD,CAAA,UACE,EAAAyD,EAAA,KAAA,CAACxD,GAAD,CACE,YAAU,iBACV,UAAWqC,EACT,gjBACA6J,IAAa,UACX,kIACFkJ,CACF,EACU,WACH,QACP,GAAIzQ,EAVN,SAAA,EAYE,EAAAnB,EAAA,IAAA,CAAC8R,GAAD,CAAuB,CAAA,GACvB,EAAA9R,EAAA,IAAA,CAACvD,GAAD,CACE,UAAWoC,EACT,MACA6J,IAAa,UACX,qGACJ,EAEC,UACuB,CAAA,GAC1B,EAAA1I,EAAA,IAAA,CAAC+R,GAAD,CAAyB,CAAA,CACF,CACH,CAAA,CAAA,CAAA,CAE5B,CAYA,SAASC,GAAW,CAAE,YAAW,WAAU,GAAG7Q,GAA4D,CACxG,OACE,EAAAnB,EAAA,KAAA,CAACtD,GAAD,CACE,YAAU,cACV,UAAWmC,EACT,4aACA+S,CACF,EACA,GAAIzQ,EANN,SAAA,EAQE,EAAAnB,EAAA,IAAA,CAAC,OAAD,CACE,YAAU,wBACV,UAAU,6DAEV,UAAA,EAAAA,EAAA,IAAA,CAACrD,GAAD,CAAA,UACE,EAAAqD,EAAA,IAAA,CAACpD,EAAD,CAAW,UAAU,QAAU,CAAA,CACF,CAAA,CAC3B,CAAA,GACN,EAAAoD,EAAA,IAAA,CAACnD,GAAD,CAA2B,UAAmC,CAAA,CAC1C,GAE1B,CAYA,SAASiV,GAAqB,CAC5B,YACA,GAAG3Q,GAC2D,CAC9D,OACE,EAAAnB,EAAA,IAAA,CAAClD,GAAD,CACE,YAAU,0BACV,UAAW+B,EAAG,uDAAwD+S,CAAS,EAC/E,GAAIzQ,EAEJ,UAAA,EAAAnB,EAAA,IAAA,CAACjD,GAAD,CAAe,UAAU,QAAU,CAAA,CACL,CAAA,CAEpC,CAEA,SAASgV,GAAuB,CAC9B,YACA,GAAG5Q,GAC6D,CAChE,OACE,EAAAnB,EAAA,IAAA,CAAChD,GAAD,CACE,YAAU,4BACV,UAAW6B,EAAG,uDAAwD+S,CAAS,EAC/E,GAAIzQ,EAEJ,UAAA,EAAAnB,EAAA,IAAA,CAAC1D,EAAD,CAAiB,UAAU,QAAU,CAAA,CACL,CAAA,CAEtC"}
|
|
1
|
+
{"version":3,"file":"select-DVrPV1b3.js","names":["__iconData","__defProp","__name","__defProp","__name","PopperPrimitive.Root","Select","Fragment2","SelectTrigger","PopperPrimitive.Anchor","SelectValue","PortalPrimitive","SelectContent","RemoveScroll","PopperPrimitive.Content","SelectItem","SelectScrollUpButton","SelectScrollDownButton","SelectPrimitive.Root","SelectPrimitive.Value","SelectPrimitive.Trigger","SelectPrimitive.Icon","ChevronDownIcon","SelectPrimitive.Portal","SelectPrimitive.Content","SelectPrimitive.Viewport","SelectPrimitive.Item","SelectPrimitive.ItemIndicator","CheckIcon","SelectPrimitive.ItemText","SelectPrimitive.ScrollUpButton","ChevronUpIcon","SelectPrimitive.ScrollDownButton","__toESM","require_react_dom","require_jsx_runtime","createLucideIcon","Content","Root2","Anchor","createPopperScope","FocusScope","useComposedRefs","useCallbackRef","useControllableState","useLayoutEffect2","Primitive","Portal","useId","createContextScope","ReactRemoveScroll","DismissableLayer","composeEventHandlers","useFocusGuards","hideOthers","Presence","createSlot","Check","VISUALLY_HIDDEN_STYLES","createCollection","useDirection","cn","__iconData$1","ChevronDown","__iconData","ChevronUp","import_react_dom","import_react","require_react","__defProp$2","__name$2","target","usePrevious","ref","value","__defProp$1","__name$1","clamp","min","max","import_jsx_runtime","__defProp","__name","OPEN_KEYS","SELECTION_KEYS","SELECT_NAME","Collection","useCollection","createCollectionScope","createSelectContext","createSelectScope","usePopperScope","SelectProviderImpl","useSelectContext","SelectNativeOptionsProvider","useSelectNativeOptionsContext","SelectProvider","openProp","valueProp","props","popperScope","__scopeSelect","trigger","setTrigger","valueNode","setValueNode","valueNodeHasChildren","setValueNodeHasChildren","direction","dir","open","setOpen","defaultOpen","onOpenChange","setValue","defaultValue","onValueChange","triggerPointerDownPosRef","initialValueRef","associatedForm","form","reset","isFormControl","nativeOptionsSet","setNativeOptionsSet","contentId","nativeSelectKey","option","handleNativeOptionAdd","prev","handleNativeOptionRemove","optionsSet","context","isFunction","internal_do_not_use_render","children","Select$1","providerProps","SelectBubbleInput","TRIGGER_NAME","SelectTrigger$1","triggerProps","isDisabled","disabled","composedRefs","forwardedRef","getItems","pointerTypeRef","searchRef","handleTypeaheadSearch","resetTypeahead","useTypeaheadSearch","enabledItems","item","nextItem","findNextItem","search","handleOpen","pointerEvent","shouldShowPlaceholder","event","isTypingAhead","VALUE_NAME","SelectValue$1","valueProps","hasChildren","onValueNodeHasChildrenChange","showPlaceholder","placeholder","SelectIcon","iconProps","PortalProvider","usePortalContext","SelectPortal","portalProps","CONTENT_NAME","SelectContent$1","portalContext","contentProps","fragment","setFragment","forceMount","present","SelectContentImpl","SelectContentFragment","SelectContentProvider","CONTENT_MARGIN","useSelectContentContext","Slot","content","setContent","viewport","setViewport","selectedItem","setSelectedItem","selectedItemText","setSelectedItemText","isPositioned","setIsPositioned","firstValidItemFoundRef","focusFirst","firstItem","restItems","lastItem","PREVIOUSLY_FOCUSED_ELEMENT","candidate","candidates","focusSelectedItem","pointerMoveDelta","handlePointerMove","handlePointerUp","close","itemRefCallback","isFirstValidItem","node","handleItemLeave","itemTextRefCallback","SelectPosition","position","SelectPopperPosition","SelectItemAlignedPosition","popperContentProps","onCloseAutoFocus","isModifierKey","candidateNodes","currentElement","currentIndex","popperProps","contentContext","contentWrapper","setContentWrapper","shouldExpandOnScrollRef","shouldRepositionRef","triggerRect","contentRect","valueNodeRect","itemTextRect","itemTextOffset","left","leftDelta","minContentWidth","contentWidth","rightEdge","clampedLeft","right","rightDelta","leftEdge","clampedRight","items","availableHeight","itemsHeight","contentStyles","contentBorderTopWidth","contentPaddingTop","contentBorderBottomWidth","contentPaddingBottom","fullContentHeight","minContentHeight","viewportStyles","viewportPaddingTop","viewportPaddingBottom","topEdgeToTriggerMiddle","triggerMiddleToBottomEdge","selectedItemHalfHeight","itemOffsetMiddle","contentTopToItemMiddle","itemMiddleToContentBottom","isLastItem","viewportOffsetBottom","height","isFirstItem","onPlaced","contentZIndex","setContentZIndex","handleScrollButtonChange","SelectViewportProvider","useSelectViewportContext","VIEWPORT_NAME","SelectViewport","viewportProps","viewportContext","prevScrollTopRef","scrolledBy","cssMinHeight","cssHeight","prevHeight","nextHeight","clampedNextHeight","heightDiff","SelectGroupContextProvider","useSelectGroupContext","ITEM_NAME","SelectItemContextProvider","useSelectItemContext","SelectItem$1","textValueProp","itemProps","isSelected","textValue","setTextValue","isFocused","setIsFocused","handleItemRefCallback","textId","handleSelect","prevTextValue","ITEM_TEXT_NAME","SelectItemText","itemTextProps","itemContext","nativeOptionsContext","itemTextNode","setItemTextNode","handleItemTextRefCallback","textContent","nativeOption","onNativeOptionAdd","onNativeOptionRemove","ITEM_INDICATOR_NAME","SelectItemIndicator","itemIndicatorProps","SCROLL_UP_BUTTON_NAME","SelectScrollUpButton$1","canScrollUp","setCanScrollUp","handleScroll2","canScrollUp2","SelectScrollButtonImpl","SCROLL_DOWN_BUTTON_NAME","SelectScrollDownButton$1","canScrollDown","setCanScrollDown","maxScroll","canScrollDown2","scrollIndicatorProps","autoScrollTimerRef","clearAutoScrollTimer","onAutoScroll","BUBBLE_INPUT_NAME","selectValue","prevValue","hasEmptyValueOption","nativeOptions","select","selectProto","handleSearchChange","onSearchChange","timerRef","key","updateSearch","normalizedSearch","char","currentItemIndex","currentItem","wrappedItems","wrapArray","v","array","startIndex","index","Select","SelectValue","SelectTrigger","size","className","SelectContent","SelectScrollUpButton","SelectScrollDownButton","SelectItem"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/chevron-down.mjs","../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/chevron-up.mjs","../../../../node_modules/.pnpm/@radix-ui+react-use-previous@1.1.4_@types+react@19.3.0_react@19.3.0/node_modules/@radix-ui/react-use-previous/dist/index.mjs","../../../../node_modules/.pnpm/@radix-ui+number@1.1.3/node_modules/@radix-ui/number/dist/index.mjs","../../../../node_modules/.pnpm/@radix-ui+react-select@2.3.7_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react@_c077d25a874f27141804d1923df5095a/node_modules/@radix-ui/react-select/dist/index.mjs","../../src/components/ui/select.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.49.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.mjs';\n\nconst __iconData = {\n name: \"chevron-down\",\n size: 24,\n node: [[\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]]\n};\n__iconData.node;\nconst ChevronDown = createLucideIcon(__iconData);\n\nexport { __iconData, ChevronDown as default };\n//# sourceMappingURL=chevron-down.mjs.map\n","/**\n * @license lucide-react v1.49.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.mjs';\n\nconst __iconData = {\n name: \"chevron-up\",\n size: 24,\n node: [[\"path\", { d: \"m18 15-6-6-6 6\", key: \"153udz\" }]]\n};\n__iconData.node;\nconst ChevronUp = createLucideIcon(__iconData);\n\nexport { __iconData, ChevronUp as default };\n//# sourceMappingURL=chevron-up.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// 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}\n__name(usePrevious, \"usePrevious\");\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\n__name(clamp, \"clamp\");\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\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 { Presence } from \"@radix-ui/react-presence\";\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 as Fragment2, 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 [SelectProviderImpl, useSelectContext] = createSelectContext(SELECT_NAME);\nvar [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);\nfunction SelectProvider(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 // @ts-expect-error internal render prop used by `Select` to compose its default parts\n internal_do_not_use_render\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 initialValueRef = React.useRef(value);\n React.useEffect(() => {\n const associatedForm = form ? trigger?.ownerDocument.getElementById(form) : trigger?.form;\n if (associatedForm instanceof HTMLFormElement) {\n const reset = /* @__PURE__ */ __name(() => setValue(initialValueRef.current), \"reset\");\n associatedForm.addEventListener(\"reset\", reset);\n return () => associatedForm.removeEventListener(\"reset\", reset);\n }\n }, [form, trigger, setValue]);\n const isFormControl = trigger ? !!form || !!trigger.closest(\"form\") : true;\n const [nativeOptionsSet, setNativeOptionsSet] = React.useState(/* @__PURE__ */ new Set());\n const contentId = useId();\n const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(\";\");\n const handleNativeOptionAdd = React.useCallback((option) => {\n setNativeOptionsSet((prev) => new Set(prev).add(option));\n }, []);\n const handleNativeOptionRemove = React.useCallback((option) => {\n setNativeOptionsSet((prev) => {\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, []);\n const context = {\n required,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId,\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled,\n name,\n autoComplete,\n form,\n nativeOptions: nativeOptionsSet,\n nativeSelectKey,\n isFormControl\n };\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(SelectProviderImpl, { scope: __scopeSelect, ...context, children: /* @__PURE__ */ jsx(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n SelectNativeOptionsProvider,\n {\n scope: __scopeSelect,\n onNativeOptionAdd: handleNativeOptionAdd,\n onNativeOptionRemove: handleNativeOptionRemove,\n children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children\n }\n ) }) }) });\n}\n__name(SelectProvider, \"SelectProvider\");\nvar Select = /* @__PURE__ */ __name((props) => {\n const { __scopeSelect, children, ...providerProps } = props;\n return /* @__PURE__ */ jsx(\n SelectProvider,\n {\n __scopeSelect,\n ...providerProps,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment2, { children: [\n children,\n isFormControl ? /* @__PURE__ */ jsx(\n SelectBubbleInput,\n {\n __scopeSelect\n }\n ) : null\n ] })\n }\n );\n}, \"Select\");\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectTrigger2(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 = /* @__PURE__ */ __name((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 }, \"handleOpen\");\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.open ? context.contentId : void 0,\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 }, \"SelectTrigger\")\n);\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectValue2(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 const showPlaceholder = shouldShowPlaceholder(context.value);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...valueProps,\n asChild: showPlaceholder ? false : valueProps.asChild,\n ref: composedRefs,\n style: { pointerEvents: \"none\" },\n children: /* @__PURE__ */ jsx(React.Fragment, { children: showPlaceholder ? placeholder : children }, showPlaceholder ? \"placeholder\" : \"value\")\n }\n );\n }, \"SelectValue\")\n);\nvar SelectIcon = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectIcon2(props, forwardedRef) {\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...iconProps, ref: forwardedRef, children: children || \"\\u25BC\" });\n }, \"SelectIcon\")\n);\nvar PORTAL_NAME = \"SelectPortal\";\nvar [PortalProvider, usePortalContext] = createSelectContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar SelectPortal = /* @__PURE__ */ __name((props) => {\n const { __scopeSelect, forceMount, ...portalProps } = props;\n return /* @__PURE__ */ jsx(PortalProvider, { scope: props.__scopeSelect, forceMount, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, ...portalProps }) });\n}, \"SelectPortal\");\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectContent2(props, forwardedRef) {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeSelect);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = React.useState();\n useLayoutEffect(() => {\n setFragment(new DocumentFragment());\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: ({ present }) => present ? /* @__PURE__ */ jsx(SelectContentImpl, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(SelectContentFragment, { ...contentProps, fragment }) });\n }, \"SelectContent\")\n);\nvar SelectContentFragment = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function SelectContentFragment2(props, forwardedRef) {\n const { __scopeSelect, children, fragment } = props;\n if (!fragment) return null;\n return ReactDOM.createPortal(\n /* @__PURE__ */ jsx(SelectContentProvider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\"div\", { ref: forwardedRef, children }) }) }),\n fragment\n );\n}, \"SelectContentFragment\"));\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar Slot = createSlot(\"SelectContent.RemoveScroll\");\nvar SelectContentImpl = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function SelectContentImpl2(props, forwardedRef) {\n const { __scopeSelect } = props;\n const {\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, setContent);\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 = /* @__PURE__ */ __name((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 }, \"handlePointerMove\");\n const handlePointerUp = /* @__PURE__ */ __name((event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!event.composedPath().includes(content)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n }, \"handlePointerUp\");\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 = /* @__PURE__ */ __name(() => onOpenChange(false), \"close\");\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 }, \"SelectContentImpl\")\n);\nvar SelectItemAlignedPosition = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function SelectItemAlignedPosition2(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, setContent);\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}, \"SelectItemAlignedPosition\"));\nvar SelectPopperPosition = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function SelectPopperPosition2(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}, \"SelectPopperPosition\"));\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectViewport2(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(Fragment2, { 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 }, \"SelectViewport\")\n);\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectGroup2(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 }, \"SelectGroup\")\n);\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectLabel2(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 }, \"SelectLabel\")\n);\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectItem2(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 handleItemRefCallback = useCallbackRef(\n (node) => contentContext.itemRefCallback?.(node, value, disabled)\n );\n const composedRefs = useComposedRefs(forwardedRef, handleItemRefCallback);\n const textId = useId();\n const pointerTypeRef = React.useRef(\"touch\");\n const handleSelect = /* @__PURE__ */ __name(() => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n }, \"handleSelect\");\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 if (disabled || event.target !== event.currentTarget) {\n return;\n }\n const isTypingAhead = contentContext.searchRef?.current !== \"\";\n if (isTypingAhead && event.key === \" \") {\n return;\n }\n if (SELECTION_KEYS.includes(event.key)) {\n handleSelect();\n }\n if (event.key === \" \") {\n event.preventDefault();\n }\n })\n }\n )\n }\n )\n }\n );\n }, \"SelectItem\")\n);\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectItemText2(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 handleItemTextRefCallback = useCallbackRef(\n (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled)\n );\n const composedRefs = useComposedRefs(\n forwardedRef,\n setItemTextNode,\n itemContext.onItemTextChange,\n handleItemTextRefCallback\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(Fragment2, { children: [\n /* @__PURE__ */ jsx(Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),\n itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren && !shouldShowPlaceholder(context.value) ? ReactDOM.createPortal(itemTextProps.children, context.valueNode) : null\n ] });\n }, \"SelectItemText\")\n);\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function SelectItemIndicator2(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 }, \"SelectItemIndicator\")\n);\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function SelectScrollUpButton2(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 __name(handleScroll2, \"handleScroll\");\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}, \"SelectScrollUpButton\"));\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function SelectScrollDownButton2(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 __name(handleScroll2, \"handleScroll\");\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}, \"SelectScrollDownButton\"));\nvar SelectScrollButtonImpl = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function SelectScrollButtonImpl2(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}, \"SelectScrollButtonImpl\"));\nvar SelectSeparator = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function SelectSeparator2(props, forwardedRef) {\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { \"aria-hidden\": true, ...separatorProps, ref: forwardedRef });\n }, \"SelectSeparator\")\n);\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SelectArrow2(props, forwardedRef) {\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return contentContext.position === \"popper\" ? /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;\n }, \"SelectArrow\")\n);\nvar BUBBLE_INPUT_NAME = \"SelectBubbleInput\";\nvar SelectBubbleInput = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function SelectBubbleInput2({ __scopeSelect, ...props }, forwardedRef) {\n const context = useSelectContext(BUBBLE_INPUT_NAME, __scopeSelect);\n const { value, onValueChange, required, disabled, name, autoComplete, form } = context;\n const { nativeOptions, nativeSelectKey } = context;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const selectValue = value ?? \"\";\n const prevValue = usePrevious(selectValue);\n const hasEmptyValueOption = Array.from(nativeOptions).some(\n (option) => (option.props.value ?? \"\") === \"\"\n );\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 !== selectValue && setValue) {\n const event = new Event(\"change\", { bubbles: true });\n setValue.call(select, selectValue);\n select.dispatchEvent(event);\n }\n }, [prevValue, selectValue]);\n return /* @__PURE__ */ jsxs(\n Primitive.select,\n {\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n disabled,\n form,\n onChange: (event) => onValueChange(event.target.value),\n ...props,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style },\n ref: composedRefs,\n defaultValue: selectValue,\n children: [\n shouldShowPlaceholder(value) && !hasEmptyValueOption ? /* @__PURE__ */ jsx(\"option\", { value: \"\" }) : null,\n Array.from(nativeOptions)\n ]\n },\n nativeSelectKey\n );\n }, \"SelectBubbleInput\")\n);\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n__name(isFunction, \"isFunction\");\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\n__name(shouldShowPlaceholder, \"shouldShowPlaceholder\");\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 (/* @__PURE__ */ __name((function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n }), \"updateSearch\"))(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}\n__name(useTypeaheadSearch, \"useTypeaheadSearch\");\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}\n__name(findNextItem, \"findNextItem\");\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\n__name(wrapArray, \"wrapArray\");\nexport {\n SelectArrow as Arrow,\n SelectContent as Content,\n SelectGroup as Group,\n SelectIcon as Icon,\n SelectItem as Item,\n SelectItemIndicator as ItemIndicator,\n SelectItemText as ItemText,\n SelectLabel as Label,\n SelectPortal as Portal,\n Select as Root,\n SelectScrollDownButton as ScrollDownButton,\n SelectScrollUpButton as 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 SelectSeparator as Separator,\n SelectTrigger as Trigger,\n SelectValue as Value,\n SelectViewport as Viewport,\n createSelectScope,\n SelectBubbleInput as unstable_BubbleInput,\n SelectProvider as unstable_Provider,\n SelectBubbleInput as unstable_SelectBubbleInput,\n SelectProvider as unstable_SelectProvider\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react';\nimport { Select as SelectPrimitive } from 'radix-ui';\nimport * as React from 'react';\nimport { cn } from '@/helpers/cn';\n\nfunction Select({ ...props }: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({ ...props }: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n size = 'default',\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"flex w-fit items-center justify-between gap-2 rounded-lg border border-input bg-card px-3 py-2 text-sm whitespace-nowrap text-foreground transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-10 data-[size=sm]:h-9 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/20 dark:hover:bg-input/30 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'item-aligned',\n align = 'center',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n 'relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg border bg-popover text-popover-foreground shadow-md 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95',\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 align={align}\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)] scroll-my-1',\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn('px-2 py-1.5 text-xs text-muted-foreground', className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({ className, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className,\n )}\n {...props}\n >\n <span\n data-slot=\"select-item-indicator\"\n className=\"absolute right-2 flex size-3.5 items-center justify-center\"\n >\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('pointer-events-none -mx-1 my-1 h-px bg-border', className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn('flex cursor-default items-center justify-center py-1', className)}\n {...props}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn('flex cursor-default items-center justify-center py-1', className)}\n {...props}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"ignoreList":[0,1,2,3,4],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-
|
|
2
|
-
//# sourceMappingURL=send-
|
|
1
|
+
import{t as e}from"./createLucideIcon-BOsNKleB.js";var t={name:`send`,size:24,node:[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]};t.node;var n=e(t);export{n as t};
|
|
2
|
+
//# sourceMappingURL=send-CzFdgUc_.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-
|
|
1
|
+
{"version":3,"file":"send-CzFdgUc_.js","names":["createLucideIcon","__iconData","Send"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/send.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.49.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.mjs';\n\nconst __iconData = {\n name: \"send\",\n size: 24,\n node: [\n [\n \"path\",\n {\n d: \"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z\",\n key: \"1ffxy3\"\n }\n ],\n [\"path\", { d: \"m21.854 2.147-10.94 10.939\", key: \"12cjpa\" }]\n ]\n};\n__iconData.node;\nconst Send = createLucideIcon(__iconData);\n\nexport { __iconData, Send as default };\n//# sourceMappingURL=send.mjs.map\n"],"ignoreList":[0],"mappings":"mDASA,IAAMC,EAAa,CACjB,KAAM,OACN,KAAM,GACN,KAAM,CACJ,CACE,OACA,CACE,EAAG,kIACH,IAAK,QACP,CACF,EACA,CAAC,OAAQ,CAAE,EAAG,6BAA8B,IAAK,QAAS,CAAC,CAC7D,CACF,EACAA,EAAW,KACX,IAAMC,EAAOF,EAAiBC,CAAU"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Bt as e,En as t,Jt as n,Wt as r,mt as i,qt as a,vt as o}from"./src-CMor9izq.js";import{g as s,tt as c}from"./auth-BFSvtV59.js";var l={locales:{},imageId:null,twitterHandle:null},u=e=>r.test(e),d=(e,t)=>{let n=n=>t.map(t=>e.locales[t]?.[n]).find(e=>e!==void 0),r=n(`siteName`),i=n(`titleTemplate`),a=n(`description`);return{...r===void 0?{}:{siteName:r},...i===void 0?{}:{titleTemplate:i},...a===void 0?{}:{description:a}}},f=(e,t)=>t!==void 0&&u(t)?t.replace(`%s`,()=>e):e,p={silent:!0},m={ensure:`/api/admin/components/builtin/seo/ensure`,siteSeo:`/api/admin/site/seo`},h=e=>{if(s(e,`SEO_COMPONENT_CONFLICT`))return e.details?.definition},g=()=>{let n=t();return a({mutationKey:[`seo`,`ensure`],meta:p,mutationFn:()=>i(()=>o.request(m.ensure,{method:`POST`})),onSuccess:()=>n.invalidateQueries({queryKey:e.schema.all})})},_=c({queryKey:e.siteSeo,queryFn:()=>o.request(m.siteSeo),meta:p}),v=()=>n(_),y=()=>{let{data:e}=n({..._,select:e=>e.seo});return e??l},b=()=>{let n=t();return a({mutationKey:[`seo`,`update`],meta:p,mutationFn:e=>i(()=>o.request(m.siteSeo,{method:`PUT`,body:e})),onSuccess:t=>n.setQueryData(e.siteSeo,t)})};export{y as a,u as c,v as i,d as l,_ as n,b as o,g as r,f as s,h as t};
|
|
2
|
+
//# sourceMappingURL=seo-Bd0sWQMo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seo-
|
|
1
|
+
{"version":3,"file":"seo-Bd0sWQMo.js","names":["queryKeys","useQueryClient","useQuery","SEO_TITLE_TEMPLATE_PATTERN","withCsrf","useMutation","apiClient","hasErrorCode","queryOptions","EMPTY_SEO_DEFAULTS","isValidTitleTemplate","template","seoDefaultsForLocale","pick","localeChain","defaults","code","key","value","siteName","titleTemplate","description","applyTitleTemplate","title","silent","SEO_PATHS","seoConflictOf","error","useEnsureSeoComponent","queryClient","siteSeoQueryOptions","useSiteSeo","useSiteSeoDefaults","siteSeo","data","useUpdateSiteSeo","input","saved"],"sources":["../../../../packages/schema/src/seo/locale.ts","../../src/api/seo.ts"],"sourcesContent":["import type { SeoDefaults, SeoLocaleDefaults } from './defaults.js';\nimport { SEO_TITLE_PLACEHOLDER, SEO_TITLE_TEMPLATE_PATTERN } from './ids.js';\n\n/** No defaults saved yet. */\nexport const EMPTY_SEO_DEFAULTS: SeoDefaults = { locales: {}, imageId: null, twitterHandle: null };\n\nexport const isValidTitleTemplate = (template: string): boolean => SEO_TITLE_TEMPLATE_PATTERN.test(template);\n\n/**\n * One locale's effective default texts: each key from the first locale of the chain that sets it (the\n * requested locale, then its fallbacks, then the default locale).\n */\nexport const seoDefaultsForLocale = (\n defaults: Pick<SeoDefaults, 'locales'>,\n localeChain: readonly string[],\n): SeoLocaleDefaults => {\n const pick = (key: keyof SeoLocaleDefaults) =>\n localeChain.map((code) => defaults.locales[code]?.[key]).find((value) => value !== undefined);\n const siteName = pick('siteName');\n const titleTemplate = pick('titleTemplate');\n const description = pick('description');\n return {\n ...(siteName !== undefined ? { siteName } : {}),\n ...(titleTemplate !== undefined ? { titleTemplate } : {}),\n ...(description !== undefined ? { description } : {}),\n };\n};\n\n/** Applies a title template (`%s` replaced once); an invalid template leaves the title as is. */\nexport const applyTitleTemplate = (title: string, template: string | undefined): string =>\n template !== undefined && isValidTitleTemplate(template)\n ? template.replace(SEO_TITLE_PLACEHOLDER, () => title)\n : title;\n","import { EMPTY_SEO_DEFAULTS, type SeoDefaults } from '@shapio/schema';\nimport { queryOptions, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport { apiClient } from './client';\nimport { withCsrf } from './csrf';\nimport { hasErrorCode } from './errors';\nimport { queryKeys } from './queryKeys';\n\nconst silent = { silent: true } as const;\n\n/** Admin routes of the SEO feature (plan seo-fields); the site is the request's (`Shapio-Site`). */\nexport const SEO_PATHS = {\n ensure: '/api/admin/components/builtin/seo/ensure',\n siteSeo: '/api/admin/site/seo',\n} as const;\n\n/** `POST …/builtin/seo/ensure`: the shared SEO component, created when it didn't exist yet. */\nexport type EnsuredSeoComponent = { definitionId: string; version: number; created: boolean };\n\n/** The site's SEO defaults and the site version a save must name (`expectedVersion`). */\nexport type SiteSeo = { version: number; seo: SeoDefaults };\n\nexport type UpdateSiteSeoInput = { expectedVersion: number; seo: SeoDefaults };\n\n/** The unrelated definition that already uses the `seo` API ID (409 `SEO_COMPONENT_CONFLICT`). */\nexport type SeoComponentConflict = { id: string; apiKey: string; label: string; scope: string };\n\nexport const SEO_COMPONENT_CONFLICT = 'SEO_COMPONENT_CONFLICT';\n\n/** The definition a `SEO_COMPONENT_CONFLICT` names, or undefined for any other error. */\nexport const seoConflictOf = (error: unknown): SeoComponentConflict | undefined => {\n if (!hasErrorCode(error, SEO_COMPONENT_CONFLICT)) {\n return undefined;\n }\n const details = (error as { details?: { definition?: SeoComponentConflict } }).details;\n return details?.definition;\n};\n\n/**\n * Creates the shared SEO component if it is missing (network `schema.create`); the schema changed, so\n * everything schema-derived is read again. Errors are the caller's to show (the conflict names a definition).\n */\nexport const useEnsureSeoComponent = () => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['seo', 'ensure'],\n meta: silent,\n mutationFn: () =>\n withCsrf(() => apiClient.request<EnsuredSeoComponent>(SEO_PATHS.ensure, { method: 'POST' })),\n onSuccess: () => queryClient.invalidateQueries({ queryKey: queryKeys.schema.all }),\n });\n};\n\nexport const siteSeoQueryOptions = queryOptions({\n queryKey: queryKeys.siteSeo,\n queryFn: () => apiClient.request<SiteSeo>(SEO_PATHS.siteSeo),\n meta: silent,\n});\n\n/** The current site's SEO defaults (`site.settings`). */\nexport const useSiteSeo = () => useQuery(siteSeoQueryOptions);\n\n/**\n * The site's SEO defaults for previews (the SEO field's search result). Someone who can't read them (no\n * `site.settings`) gets none: the preview then shows the entry's own values only.\n */\nexport const useSiteSeoDefaults = (): SeoDefaults => {\n const { data } = useQuery({ ...siteSeoQueryOptions, select: (siteSeo) => siteSeo.seo });\n return data ?? EMPTY_SEO_DEFAULTS;\n};\n\n/** Saves the site's SEO defaults; 409 when someone else saved since `expectedVersion`. */\nexport const useUpdateSiteSeo = () => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['seo', 'update'],\n meta: silent,\n mutationFn: (input: UpdateSiteSeoInput) =>\n withCsrf(() => apiClient.request<SiteSeo>(SEO_PATHS.siteSeo, { method: 'PUT', body: input })),\n onSuccess: (saved) => queryClient.setQueryData(queryKeys.siteSeo, saved),\n });\n};\n"],"mappings":"sIAIA,IAAaS,EAAkC,CAAE,QAAS,CAAC,EAAG,QAAS,KAAM,cAAe,IAAK,EAEpFC,EAAwB,GAA8BP,EAA2B,KAAKQ,CAAQ,EAM9FC,GACX,EACA,IACsB,CACtB,IAAMC,EAAQ,GACZC,EAAY,IAAK,GAASC,EAAS,QAAQC,EAAK,GAAGC,EAAI,CAAC,CAAC,KAAM,GAAUC,IAAU,IAAA,EAAS,EACxFC,EAAWN,EAAK,UAAU,EAC1BO,EAAgBP,EAAK,eAAe,EACpCQ,EAAcR,EAAK,aAAa,EACtC,MAAO,CACL,GAAIM,IAAa,IAAA,GAA2B,CAAC,EAAhB,CAAE,UAAS,EACxC,GAAIC,IAAkB,IAAA,GAAgC,CAAC,EAArB,CAAE,eAAc,EAClD,GAAIC,IAAgB,IAAA,GAA8B,CAAC,EAAnB,CAAE,aAAY,CAChD,CACF,EAGaC,GAAsB,EAAe,IAChDX,IAAa,IAAA,IAAaD,EAAqBC,CAAQ,EACnDA,EAAS,QAAA,SAAqCY,CAAK,EACnDA,ECzBAC,EAAS,CAAE,OAAQ,EAAK,EAGjBC,EAAY,CACvB,OAAQ,2CACR,QAAS,qBACX,EAgBaC,EAAiB,GAAqD,CACjF,GAAKnB,EAAaoB,EAAA,wBAA6B,EAI/C,OADiBA,EAA8D,SAC/D,UAClB,EAMaC,MAA8B,CACzC,IAAMC,EAAc5B,EAAe,EACnC,OAAOI,EAAY,CACjB,YAAa,CAAC,MAAO,QAAQ,EAC7B,KAAMmB,EACN,eACEpB,MAAeE,EAAU,QAA6BmB,EAAU,OAAQ,CAAE,OAAQ,MAAO,CAAC,CAAC,EAC7F,cAAiBI,EAAY,kBAAkB,CAAE,SAAU7B,EAAU,OAAO,GAAI,CAAC,CACnF,CAAC,CACH,EAEa8B,EAAsBtB,EAAa,CAC9C,SAAUR,EAAU,QACpB,YAAeM,EAAU,QAAiBmB,EAAU,OAAO,EAC3D,KAAMD,CACR,CAAC,EAGYO,MAAmB7B,EAAS4B,CAAmB,EAM/CE,MAAwC,CACnD,GAAM,CAAE,QAAS9B,EAAS,CAAE,GAAG4B,EAAqB,OAAS,GAAYG,EAAQ,GAAI,CAAC,EACtF,OAAOC,GAAQzB,CACjB,EAGa0B,MAAyB,CACpC,IAAMN,EAAc5B,EAAe,EACnC,OAAOI,EAAY,CACjB,YAAa,CAAC,MAAO,QAAQ,EAC7B,KAAMmB,EACN,WAAa,GACXpB,MAAeE,EAAU,QAAiBmB,EAAU,QAAS,CAAE,OAAQ,MAAO,KAAMW,CAAM,CAAC,CAAC,EAC9F,UAAY,GAAUP,EAAY,aAAa7B,EAAU,QAASqC,CAAK,CACzE,CAAC,CACH"}
|