@polderlabs/bizar 10.0.7 → 10.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/README.md +0 -2
  2. package/bizar-dash/dist/assets/{ActivityFeed-Da-JCrE6.js → ActivityFeed-JjmOY2AQ.js} +1 -1
  3. package/bizar-dash/dist/assets/{ActivityFeed-Da-JCrE6.js.map → ActivityFeed-JjmOY2AQ.js.map} +1 -1
  4. package/bizar-dash/dist/assets/{ActivityView-nIRsSETb.js → ActivityView-BIIMvGWo.js} +1 -1
  5. package/bizar-dash/dist/assets/{ActivityView-nIRsSETb.js.map → ActivityView-BIIMvGWo.js.map} +1 -1
  6. package/bizar-dash/dist/assets/{AdminView-DP1NMxmG.js → AdminView-DRidJtkq.js} +1 -1
  7. package/bizar-dash/dist/assets/{AdminView-DP1NMxmG.js.map → AdminView-DRidJtkq.js.map} +1 -1
  8. package/bizar-dash/dist/assets/{AgentActivity-lSPkOr-O.js → AgentActivity-79l4SBMC.js} +1 -1
  9. package/bizar-dash/dist/assets/{AgentActivity-lSPkOr-O.js.map → AgentActivity-79l4SBMC.js.map} +1 -1
  10. package/bizar-dash/dist/assets/{AgentsView-BIWGkz7w.js → AgentsView-0vT4uPSc.js} +1 -1
  11. package/bizar-dash/dist/assets/{AgentsView-BIWGkz7w.js.map → AgentsView-0vT4uPSc.js.map} +1 -1
  12. package/bizar-dash/dist/assets/{Alert-DN0UysMg.js → Alert-CG5q_s75.js} +1 -1
  13. package/bizar-dash/dist/assets/{Alert-DN0UysMg.js.map → Alert-CG5q_s75.js.map} +1 -1
  14. package/bizar-dash/dist/assets/ArtifactsView-DM8ZmpR9.js +21 -0
  15. package/bizar-dash/dist/assets/ArtifactsView-DM8ZmpR9.js.map +1 -0
  16. package/bizar-dash/dist/assets/{AuthView-DW5cs7ma.js → AuthView-BveN94MC.js} +1 -1
  17. package/bizar-dash/dist/assets/{AuthView-DW5cs7ma.js.map → AuthView-BveN94MC.js.map} +1 -1
  18. package/bizar-dash/dist/assets/{Avatar-DZPv9pvd.js → Avatar-ulUPIYTd.js} +1 -1
  19. package/bizar-dash/dist/assets/{Avatar-DZPv9pvd.js.map → Avatar-ulUPIYTd.js.map} +1 -1
  20. package/bizar-dash/dist/assets/{BackgroundJobsView-D8O-EyMD.js → BackgroundJobsView-BWErhqFo.js} +1 -1
  21. package/bizar-dash/dist/assets/{BackgroundJobsView-D8O-EyMD.js.map → BackgroundJobsView-BWErhqFo.js.map} +1 -1
  22. package/bizar-dash/dist/assets/{BackupView-uwXkhxOV.js → BackupView-CnBjzG9N.js} +1 -1
  23. package/bizar-dash/dist/assets/{BackupView-uwXkhxOV.js.map → BackupView-CnBjzG9N.js.map} +1 -1
  24. package/bizar-dash/dist/assets/{Card-Tyboihu7.js → Card-B0imhxMk.js} +1 -1
  25. package/bizar-dash/dist/assets/{Card-Tyboihu7.js.map → Card-B0imhxMk.js.map} +1 -1
  26. package/bizar-dash/dist/assets/{ChatView-DRBHzgay.js → ChatView-D6zGytzx.js} +1 -1
  27. package/bizar-dash/dist/assets/{ChatView-DRBHzgay.js.map → ChatView-D6zGytzx.js.map} +1 -1
  28. package/bizar-dash/dist/assets/{Chip-BrXIlR9w.js → Chip-wwZSGwLE.js} +1 -1
  29. package/bizar-dash/dist/assets/{Chip-BrXIlR9w.js.map → Chip-wwZSGwLE.js.map} +1 -1
  30. package/bizar-dash/dist/assets/{ClaudeSessionsView-Ck62jaOr.js → ClaudeSessionsView-DK1sOLhi.js} +1 -1
  31. package/bizar-dash/dist/assets/{ClaudeSessionsView-Ck62jaOr.js.map → ClaudeSessionsView-DK1sOLhi.js.map} +1 -1
  32. package/bizar-dash/dist/assets/{ClipboardView-DfND6xL6.js → ClipboardView-CZ2lYPr0.js} +1 -1
  33. package/bizar-dash/dist/assets/{ClipboardView-DfND6xL6.js.map → ClipboardView-CZ2lYPr0.js.map} +1 -1
  34. package/bizar-dash/dist/assets/{ConfigView-DjJmSrOJ.js → ConfigView-D-zT9eNA.js} +1 -1
  35. package/bizar-dash/dist/assets/{ConfigView-DjJmSrOJ.js.map → ConfigView-D-zT9eNA.js.map} +1 -1
  36. package/bizar-dash/dist/assets/{DiagnosticsView-CKgItf0J.js → DiagnosticsView-BocV68Lb.js} +1 -1
  37. package/bizar-dash/dist/assets/{DiagnosticsView-CKgItf0J.js.map → DiagnosticsView-BocV68Lb.js.map} +1 -1
  38. package/bizar-dash/dist/assets/{DialogsView-DHYF8dE1.js → DialogsView-BVjPI5x7.js} +1 -1
  39. package/bizar-dash/dist/assets/{DialogsView-DHYF8dE1.js.map → DialogsView-BVjPI5x7.js.map} +1 -1
  40. package/bizar-dash/dist/assets/{DoctorView-DDLHrSKk.js → DoctorView-84gJcZwM.js} +1 -1
  41. package/bizar-dash/dist/assets/{DoctorView-DDLHrSKk.js.map → DoctorView-84gJcZwM.js.map} +1 -1
  42. package/bizar-dash/dist/assets/{EmptyState-DZ2ouKwd.js → EmptyState-BjgVOrcO.js} +1 -1
  43. package/bizar-dash/dist/assets/{EmptyState-DZ2ouKwd.js.map → EmptyState-BjgVOrcO.js.map} +1 -1
  44. package/bizar-dash/dist/assets/{EnvVarsView-D1cx83mB.js → EnvVarsView-BJ2TEzF7.js} +1 -1
  45. package/bizar-dash/dist/assets/{EnvVarsView-D1cx83mB.js.map → EnvVarsView-BJ2TEzF7.js.map} +1 -1
  46. package/bizar-dash/dist/assets/{ErrorState-DwwJ2-Jq.js → ErrorState-BE3WBFqF.js} +1 -1
  47. package/bizar-dash/dist/assets/{ErrorState-DwwJ2-Jq.js.map → ErrorState-BE3WBFqF.js.map} +1 -1
  48. package/bizar-dash/dist/assets/{EvalView-C9aYixXW.js → EvalView-BJJ2P-kK.js} +1 -1
  49. package/bizar-dash/dist/assets/{EvalView-C9aYixXW.js.map → EvalView-BJJ2P-kK.js.map} +1 -1
  50. package/bizar-dash/dist/assets/{GoalsView-DZa_mGmh.js → GoalsView-pwROHApi.js} +1 -1
  51. package/bizar-dash/dist/assets/{GoalsView-DZa_mGmh.js.map → GoalsView-pwROHApi.js.map} +1 -1
  52. package/bizar-dash/dist/assets/{Grid-CiRyhAgR.js → Grid-qcvbhx6e.js} +1 -1
  53. package/bizar-dash/dist/assets/{Grid-CiRyhAgR.js.map → Grid-qcvbhx6e.js.map} +1 -1
  54. package/bizar-dash/dist/assets/{HeadroomView-CNc-TI7u.js → HeadroomView-D1UiTYbt.js} +1 -1
  55. package/bizar-dash/dist/assets/{HeadroomView-CNc-TI7u.js.map → HeadroomView-D1UiTYbt.js.map} +1 -1
  56. package/bizar-dash/dist/assets/{HistoryView-Dv7aPxJE.js → HistoryView-C7SSOLJA.js} +1 -1
  57. package/bizar-dash/dist/assets/{HistoryView-Dv7aPxJE.js.map → HistoryView-C7SSOLJA.js.map} +1 -1
  58. package/bizar-dash/dist/assets/{Input-BbFUDQnS.js → Input-Bgzxf_Hu.js} +1 -1
  59. package/bizar-dash/dist/assets/{Input-BbFUDQnS.js.map → Input-Bgzxf_Hu.js.map} +1 -1
  60. package/bizar-dash/dist/assets/{LibrariesView-DBQ83TNa.js → LibrariesView-CbFFksox.js} +1 -1
  61. package/bizar-dash/dist/assets/{LibrariesView-DBQ83TNa.js.map → LibrariesView-CbFFksox.js.map} +1 -1
  62. package/bizar-dash/dist/assets/{LightRAGView-JYpE5u9p.js → LightRAGView-BqDrJbRq.js} +1 -1
  63. package/bizar-dash/dist/assets/{LightRAGView-JYpE5u9p.js.map → LightRAGView-BqDrJbRq.js.map} +1 -1
  64. package/bizar-dash/dist/assets/{ListHeader-BGjm11Z0.js → ListHeader-TjPJrUfY.js} +1 -1
  65. package/bizar-dash/dist/assets/{ListHeader-BGjm11Z0.js.map → ListHeader-TjPJrUfY.js.map} +1 -1
  66. package/bizar-dash/dist/assets/{MemoryView-CnOP2MvM.js → MemoryView-BlTeHLhX.js} +1 -1
  67. package/bizar-dash/dist/assets/{MemoryView-CnOP2MvM.js.map → MemoryView-BlTeHLhX.js.map} +1 -1
  68. package/bizar-dash/dist/assets/{MiscView-BBcpUbZZ.js → MiscView-B8QY82Pm.js} +1 -1
  69. package/bizar-dash/dist/assets/{MiscView-BBcpUbZZ.js.map → MiscView-B8QY82Pm.js.map} +1 -1
  70. package/bizar-dash/dist/assets/{ModsView-CU4cAmIz.js → ModsView-CvW1OWts.js} +1 -1
  71. package/bizar-dash/dist/assets/{ModsView-CU4cAmIz.js.map → ModsView-CvW1OWts.js.map} +1 -1
  72. package/bizar-dash/dist/assets/{NotificationsView-BYffvthq.js → NotificationsView-CsBt5U7x.js} +1 -1
  73. package/bizar-dash/dist/assets/{NotificationsView-BYffvthq.js.map → NotificationsView-CsBt5U7x.js.map} +1 -1
  74. package/bizar-dash/dist/assets/{ObsidianView-D3bI0row.js → ObsidianView-BCTejEj2.js} +1 -1
  75. package/bizar-dash/dist/assets/{ObsidianView-D3bI0row.js.map → ObsidianView-BCTejEj2.js.map} +1 -1
  76. package/bizar-dash/dist/assets/{OverviewView-0tq8f-Y0.js → OverviewView-BsuPxwnB.js} +1 -1
  77. package/bizar-dash/dist/assets/{OverviewView-0tq8f-Y0.js.map → OverviewView-BsuPxwnB.js.map} +1 -1
  78. package/bizar-dash/dist/assets/{ProgressBar-B-h60LKA.js → ProgressBar-DlZTETEn.js} +1 -1
  79. package/bizar-dash/dist/assets/{ProgressBar-B-h60LKA.js.map → ProgressBar-DlZTETEn.js.map} +1 -1
  80. package/bizar-dash/dist/assets/{ProjectsView-DhX5lzHS.js → ProjectsView-Soxtmpet.js} +1 -1
  81. package/bizar-dash/dist/assets/{ProjectsView-DhX5lzHS.js.map → ProjectsView-Soxtmpet.js.map} +1 -1
  82. package/bizar-dash/dist/assets/{ProvidersView-CJMX7jm9.js → ProvidersView-DaCEV9pM.js} +1 -1
  83. package/bizar-dash/dist/assets/{ProvidersView-CJMX7jm9.js.map → ProvidersView-DaCEV9pM.js.map} +1 -1
  84. package/bizar-dash/dist/assets/{SchedulesView-CcwDQ9Nm.js → SchedulesView-DY2ByBj_.js} +1 -1
  85. package/bizar-dash/dist/assets/{SchedulesView-CcwDQ9Nm.js.map → SchedulesView-DY2ByBj_.js.map} +1 -1
  86. package/bizar-dash/dist/assets/{Select-Cw7Qtz2M.js → Select-Dbd88_n8.js} +1 -1
  87. package/bizar-dash/dist/assets/{Select-Cw7Qtz2M.js.map → Select-Dbd88_n8.js.map} +1 -1
  88. package/bizar-dash/dist/assets/{SettingsRow-DgsgbPSI.js → SettingsRow-CLMNd434.js} +1 -1
  89. package/bizar-dash/dist/assets/{SettingsRow-DgsgbPSI.js.map → SettingsRow-CLMNd434.js.map} +1 -1
  90. package/bizar-dash/dist/assets/{SettingsView-DTAFdKyK.js → SettingsView-b24oFq9x.js} +1 -1
  91. package/bizar-dash/dist/assets/{SettingsView-DTAFdKyK.js.map → SettingsView-b24oFq9x.js.map} +1 -1
  92. package/bizar-dash/dist/assets/{Sheet-DH-WNJ3Y.js → Sheet-DnDid58j.js} +1 -1
  93. package/bizar-dash/dist/assets/{Sheet-DH-WNJ3Y.js.map → Sheet-DnDid58j.js.map} +1 -1
  94. package/bizar-dash/dist/assets/{Slider-DXbJuQ7y.js → Slider-BJCvKI1I.js} +1 -1
  95. package/bizar-dash/dist/assets/{Slider-DXbJuQ7y.js.map → Slider-BJCvKI1I.js.map} +1 -1
  96. package/bizar-dash/dist/assets/{Sparkline-CYtAn82j.js → Sparkline-ktqQLdyb.js} +1 -1
  97. package/bizar-dash/dist/assets/{Sparkline-CYtAn82j.js.map → Sparkline-ktqQLdyb.js.map} +1 -1
  98. package/bizar-dash/dist/assets/{Switch-BItGrPqr.js → Switch-CwXfsDii.js} +1 -1
  99. package/bizar-dash/dist/assets/{Switch-BItGrPqr.js.map → Switch-CwXfsDii.js.map} +1 -1
  100. package/bizar-dash/dist/assets/{TasksView-i5tm6CkX.js → TasksView-BHmpzFCf.js} +1 -1
  101. package/bizar-dash/dist/assets/{TasksView-i5tm6CkX.js.map → TasksView-BHmpzFCf.js.map} +1 -1
  102. package/bizar-dash/dist/assets/{Textarea-qYDf3yds.js → Textarea-BzIAwSlp.js} +1 -1
  103. package/bizar-dash/dist/assets/{Textarea-qYDf3yds.js.map → Textarea-BzIAwSlp.js.map} +1 -1
  104. package/bizar-dash/dist/assets/{UpdateView-Xln-ej26.js → UpdateView-CSmX9NN0.js} +1 -1
  105. package/bizar-dash/dist/assets/{UpdateView-Xln-ej26.js.map → UpdateView-CSmX9NN0.js.map} +1 -1
  106. package/bizar-dash/dist/assets/{UsageView-BGuZSUZ6.js → UsageView-COyr_Gfi.js} +1 -1
  107. package/bizar-dash/dist/assets/{UsageView-BGuZSUZ6.js.map → UsageView-COyr_Gfi.js.map} +1 -1
  108. package/bizar-dash/dist/assets/{ViewHeader-BqIPVKuG.js → ViewHeader-BzYZ3m-e.js} +1 -1
  109. package/bizar-dash/dist/assets/{ViewHeader-BqIPVKuG.js.map → ViewHeader-BzYZ3m-e.js.map} +1 -1
  110. package/bizar-dash/dist/assets/{VoiceView-CWUOCQs_.js → VoiceView-D33_xG5t.js} +1 -1
  111. package/bizar-dash/dist/assets/{VoiceView-CWUOCQs_.js.map → VoiceView-D33_xG5t.js.map} +1 -1
  112. package/bizar-dash/dist/assets/{brain-fsBSDl2g.js → brain-CM-Vls8r.js} +1 -1
  113. package/bizar-dash/dist/assets/{brain-fsBSDl2g.js.map → brain-CM-Vls8r.js.map} +1 -1
  114. package/bizar-dash/dist/assets/{calendar-DsHTZoCU.js → calendar-C0lgZk69.js} +1 -1
  115. package/bizar-dash/dist/assets/{calendar-DsHTZoCU.js.map → calendar-C0lgZk69.js.map} +1 -1
  116. package/bizar-dash/dist/assets/{circle-CqSxqqeJ.js → circle-Bx_hQEBC.js} +1 -1
  117. package/bizar-dash/dist/assets/{circle-CqSxqqeJ.js.map → circle-Bx_hQEBC.js.map} +1 -1
  118. package/bizar-dash/dist/assets/{circle-alert-BsLl001l.js → circle-alert-DHvsqpw5.js} +1 -1
  119. package/bizar-dash/dist/assets/{circle-alert-BsLl001l.js.map → circle-alert-DHvsqpw5.js.map} +1 -1
  120. package/bizar-dash/dist/assets/{circle-check-rVKMQmZp.js → circle-check-Bx8wmXR9.js} +1 -1
  121. package/bizar-dash/dist/assets/{circle-check-rVKMQmZp.js.map → circle-check-Bx8wmXR9.js.map} +1 -1
  122. package/bizar-dash/dist/assets/{clock-OuficfgH.js → clock-CejGoecX.js} +1 -1
  123. package/bizar-dash/dist/assets/{clock-OuficfgH.js.map → clock-CejGoecX.js.map} +1 -1
  124. package/bizar-dash/dist/assets/{download-BdHlstUY.js → download-4cEUWue1.js} +1 -1
  125. package/bizar-dash/dist/assets/{download-BdHlstUY.js.map → download-4cEUWue1.js.map} +1 -1
  126. package/bizar-dash/dist/assets/{external-link-DA3_VGm-.js → external-link-0NqUhI4i.js} +1 -1
  127. package/bizar-dash/dist/assets/{external-link-DA3_VGm-.js.map → external-link-0NqUhI4i.js.map} +1 -1
  128. package/bizar-dash/dist/assets/{file-text-B-g8H227.js → file-text-yEMkrSoZ.js} +1 -1
  129. package/bizar-dash/dist/assets/{file-text-B-g8H227.js.map → file-text-yEMkrSoZ.js.map} +1 -1
  130. package/bizar-dash/dist/assets/{filter-D9B8s5CG.js → filter-BXt60zAS.js} +1 -1
  131. package/bizar-dash/dist/assets/{filter-D9B8s5CG.js.map → filter-BXt60zAS.js.map} +1 -1
  132. package/bizar-dash/dist/assets/{git-pull-request-ByH0YuVz.js → git-pull-request-BjG5lNtR.js} +1 -1
  133. package/bizar-dash/dist/assets/{git-pull-request-ByH0YuVz.js.map → git-pull-request-BjG5lNtR.js.map} +1 -1
  134. package/bizar-dash/dist/assets/{main-CdOm1Pj9.js → main-CokHAXWM.js} +2 -2
  135. package/bizar-dash/dist/assets/{main-CdOm1Pj9.js.map → main-CokHAXWM.js.map} +1 -1
  136. package/bizar-dash/dist/assets/{pause-C9hgd8wX.js → pause-CAmulU0F.js} +1 -1
  137. package/bizar-dash/dist/assets/{pause-C9hgd8wX.js.map → pause-CAmulU0F.js.map} +1 -1
  138. package/bizar-dash/dist/assets/{pencil-BanqaMw7.js → pencil-eq5IqBmU.js} +1 -1
  139. package/bizar-dash/dist/assets/{pencil-BanqaMw7.js.map → pencil-eq5IqBmU.js.map} +1 -1
  140. package/bizar-dash/dist/assets/{play-CawUZ02_.js → play-BoLrrcBA.js} +1 -1
  141. package/bizar-dash/dist/assets/{play-CawUZ02_.js.map → play-BoLrrcBA.js.map} +1 -1
  142. package/bizar-dash/dist/assets/{plug-Cmv0-T_e.js → plug-DBrVM9lK.js} +1 -1
  143. package/bizar-dash/dist/assets/{plug-Cmv0-T_e.js.map → plug-DBrVM9lK.js.map} +1 -1
  144. package/bizar-dash/dist/assets/{plus-M6LYiKX8.js → plus-DENm0hqV.js} +1 -1
  145. package/bizar-dash/dist/assets/{plus-M6LYiKX8.js.map → plus-DENm0hqV.js.map} +1 -1
  146. package/bizar-dash/dist/assets/{power-DP5x_SRF.js → power-DLjXF7zE.js} +1 -1
  147. package/bizar-dash/dist/assets/{power-DP5x_SRF.js.map → power-DLjXF7zE.js.map} +1 -1
  148. package/bizar-dash/dist/assets/{power-off-NOJRLAIs.js → power-off-D47cOnG_.js} +1 -1
  149. package/bizar-dash/dist/assets/{power-off-NOJRLAIs.js.map → power-off-D47cOnG_.js.map} +1 -1
  150. package/bizar-dash/dist/assets/{refresh-ccw-CHMprsm5.js → refresh-ccw-DNrXX9gB.js} +1 -1
  151. package/bizar-dash/dist/assets/{refresh-ccw-CHMprsm5.js.map → refresh-ccw-DNrXX9gB.js.map} +1 -1
  152. package/bizar-dash/dist/assets/{refresh-cw-1RBqDKgJ.js → refresh-cw-CoAHDpeS.js} +1 -1
  153. package/bizar-dash/dist/assets/{refresh-cw-1RBqDKgJ.js.map → refresh-cw-CoAHDpeS.js.map} +1 -1
  154. package/bizar-dash/dist/assets/{rotate-ccw-DJRekBbi.js → rotate-ccw-ObX5awaG.js} +1 -1
  155. package/bizar-dash/dist/assets/{rotate-ccw-DJRekBbi.js.map → rotate-ccw-ObX5awaG.js.map} +1 -1
  156. package/bizar-dash/dist/assets/{rotate-cw-DHooc0Tx.js → rotate-cw-xpPJw9LP.js} +1 -1
  157. package/bizar-dash/dist/assets/{rotate-cw-DHooc0Tx.js.map → rotate-cw-xpPJw9LP.js.map} +1 -1
  158. package/bizar-dash/dist/assets/{save-DQKCKyZK.js → save-D1iKiJJl.js} +1 -1
  159. package/bizar-dash/dist/assets/{save-DQKCKyZK.js.map → save-D1iKiJJl.js.map} +1 -1
  160. package/bizar-dash/dist/assets/{send-xgy3RAi7.js → send-BRcAhZUm.js} +1 -1
  161. package/bizar-dash/dist/assets/{send-xgy3RAi7.js.map → send-BRcAhZUm.js.map} +1 -1
  162. package/bizar-dash/dist/assets/{shield-alert-CWV2F5ab.js → shield-alert-C6vEcK-g.js} +1 -1
  163. package/bizar-dash/dist/assets/{shield-alert-CWV2F5ab.js.map → shield-alert-C6vEcK-g.js.map} +1 -1
  164. package/bizar-dash/dist/assets/{trash-2-CL4khSRv.js → trash-2-DZDjEnNh.js} +1 -1
  165. package/bizar-dash/dist/assets/{trash-2-CL4khSRv.js.map → trash-2-DZDjEnNh.js.map} +1 -1
  166. package/bizar-dash/dist/assets/{trending-up-CSJJhWTS.js → trending-up-DMj-AJVf.js} +1 -1
  167. package/bizar-dash/dist/assets/{trending-up-CSJJhWTS.js.map → trending-up-DMj-AJVf.js.map} +1 -1
  168. package/bizar-dash/dist/assets/{triangle-alert-BPLb7uLt.js → triangle-alert-_2xe_tl4.js} +1 -1
  169. package/bizar-dash/dist/assets/{triangle-alert-BPLb7uLt.js.map → triangle-alert-_2xe_tl4.js.map} +1 -1
  170. package/bizar-dash/dist/assets/{upload-Cww6MvFq.js → upload-DdDljAeV.js} +1 -1
  171. package/bizar-dash/dist/assets/{upload-Cww6MvFq.js.map → upload-DdDljAeV.js.map} +1 -1
  172. package/bizar-dash/dist/assets/{zap-DmhVUzRA.js → zap-mHsgh0FP.js} +1 -1
  173. package/bizar-dash/dist/assets/{zap-DmhVUzRA.js.map → zap-mHsgh0FP.js.map} +1 -1
  174. package/bizar-dash/dist/index.html +1 -1
  175. package/bizar-dash/src/server/api.mjs +13 -6
  176. package/bizar-dash/src/server/artifacts-store.mjs +120 -14
  177. package/bizar-dash/src/server/claude-artifacts.mjs +281 -0
  178. package/bizar-dash/src/server/diagnostics-store.mjs +5 -35
  179. package/bizar-dash/src/server/mod-security.mjs +1 -2
  180. package/bizar-dash/src/server/providers-store.mjs +1 -1
  181. package/bizar-dash/src/server/routes/_shared.mjs +0 -17
  182. package/bizar-dash/src/server/routes/artifacts.mjs +42 -6
  183. package/bizar-dash/src/server/routes/audit.mjs +78 -0
  184. package/bizar-dash/src/server/routes/decisions.mjs +78 -0
  185. package/bizar-dash/src/server/routes/model-router.mjs +158 -0
  186. package/bizar-dash/src/server/routes/model-router.test.mjs +104 -0
  187. package/bizar-dash/src/server/routes/sessions.mjs +80 -0
  188. package/bizar-dash/src/server/server.mjs +1 -27
  189. package/bizar-dash/src/server/sprint.test.mjs +163 -0
  190. package/bizar-dash/src/web/v8/views/Artifacts/ArtifactsView.tsx +232 -21
  191. package/bizar-dash/src/web/v8/views/Artifacts/ClaudeArtifactView.tsx +179 -0
  192. package/bizar-dash/tests/cli-bugfixes.test.mjs +1 -1
  193. package/bizar-dash/tests/cli-error-visibility.test.mjs +1 -1
  194. package/bizar-dash/tests/cli-refactor.test.mjs +0 -1
  195. package/bizar-dash/tests/diagnostics-store.test.mjs +0 -1
  196. package/cli/bin.mjs +1 -15
  197. package/cli/cli-commands-validation.test.mjs +1 -1
  198. package/cli/commands/lightrag.mjs +1 -1
  199. package/cli/commands/util.mjs +1 -1
  200. package/cli/copy.mjs +1 -47
  201. package/cli/doctor.mjs +3 -3
  202. package/cli/install.mjs +3 -37
  203. package/cli/service-controller.mjs +0 -192
  204. package/cli/service-env.mjs +2 -9
  205. package/cli/utils.mjs +0 -7
  206. package/package.json +1 -1
  207. package/packages/sdk/dist/agent/cron.d.ts +44 -0
  208. package/packages/sdk/dist/agent/cron.js +79 -0
  209. package/packages/sdk/dist/agent/heartbeat.d.ts +43 -0
  210. package/packages/sdk/dist/agent/heartbeat.js +116 -0
  211. package/packages/sdk/dist/index.d.ts +3 -0
  212. package/packages/sdk/dist/index.js +5 -0
  213. package/packages/sdk/dist/learning/decisions.d.ts +46 -0
  214. package/packages/sdk/dist/learning/decisions.js +132 -0
  215. package/packages/sdk/dist/learning/index.d.ts +8 -0
  216. package/packages/sdk/dist/learning/index.js +8 -0
  217. package/packages/sdk/dist/learning/instincts.d.ts +38 -0
  218. package/packages/sdk/dist/learning/instincts.js +139 -0
  219. package/packages/sdk/dist/mcp/server.js +119 -1
  220. package/packages/sdk/dist/router/agent-model-registry.d.ts +89 -0
  221. package/packages/sdk/dist/router/agent-model-registry.js +144 -0
  222. package/packages/sdk/dist/router/index.d.ts +1 -0
  223. package/packages/sdk/dist/router/index.js +1 -0
  224. package/packages/sdk/package.json +3 -2
  225. package/scripts/audit.mjs +388 -0
  226. package/scripts/audit.test.mjs +149 -0
  227. package/scripts/check-deps.mjs +0 -24
  228. package/scripts/eval-gate.mjs +134 -0
  229. package/scripts/eval-gate.test.mjs +138 -0
  230. package/scripts/feature-state-machine.mjs +178 -0
  231. package/scripts/feature-state-machine.test.mjs +135 -0
  232. package/scripts/spec-dedup.test.mjs +124 -0
  233. package/scripts/sprint.mjs +213 -0
  234. package/scripts/worktree-setup.sh +79 -0
  235. package/bizar-dash/dist/assets/ArtifactsView-CDIhPBAx.js +0 -6
  236. package/bizar-dash/dist/assets/ArtifactsView-CDIhPBAx.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Select-Cw7Qtz2M.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/chevron-up.js","../../../node_modules/@radix-ui/react-visually-hidden/dist/index.mjs","../../../node_modules/@radix-ui/react-select/dist/index.mjs","../../src/web/v8/ui/controls/Select.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronUp = createLucideIcon(\"ChevronUp\", [[\"path\", { d: \"m18 15-6-6-6 6\", key: \"153udz\" }]]);\n\nexport { ChevronUp as default };\n//# sourceMappingURL=chevron-up.js.map\n","// src/visually-hidden.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar VISUALLY_HIDDEN_STYLES = Object.freeze({\n // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n});\nvar NAME = \"VisuallyHidden\";\nvar VisuallyHidden = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...props,\n ref: forwardedRef,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style }\n }\n );\n }\n);\nVisuallyHidden.displayName = NAME;\nvar Root = VisuallyHidden;\nexport {\n Root,\n VISUALLY_HIDDEN_STYLES,\n VisuallyHidden\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/select.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { 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);\nvar PROVIDER_NAME = \"SelectProvider\";\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 = () => setValue(initialValueRef.current);\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}\nSelectProvider.displayName = PROVIDER_NAME;\nvar Select = (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};\nSelect.displayName = SELECT_NAME;\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, disabled = false, ...triggerProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);\n const getItems = useCollection(__scopeSelect);\n const pointerTypeRef = React.useRef(\"touch\");\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.value === context.value);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0) {\n context.onValueChange(nextItem.value);\n }\n });\n const handleOpen = (pointerEvent) => {\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n if (pointerEvent) {\n context.triggerPointerDownPosRef.current = {\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY)\n };\n }\n };\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.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 }\n);\nSelectTrigger.displayName = TRIGGER_NAME;\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, children, placeholder = \"\", ...valueProps } = props;\n const context = useSelectContext(VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n useLayoutEffect(() => {\n onValueNodeHasChildrenChange(hasChildren);\n }, [onValueNodeHasChildrenChange, hasChildren]);\n 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 }\n);\nSelectValue.displayName = VALUE_NAME;\nvar ICON_NAME = \"SelectIcon\";\nvar SelectIcon = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...iconProps, ref: forwardedRef, children: children || \"\\u25BC\" });\n }\n);\nSelectIcon.displayName = ICON_NAME;\nvar PORTAL_NAME = \"SelectPortal\";\nvar [PortalProvider, usePortalContext] = createSelectContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar SelectPortal = (props) => {\n const { __scopeSelect, forceMount, ...portalProps } = props;\n return /* @__PURE__ */ jsx(PortalProvider, { scope: props.__scopeSelect, forceMount, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, ...portalProps }) });\n};\nSelectPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = React.forwardRef(\n (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 }\n);\nSelectContent.displayName = CONTENT_NAME;\nvar SelectContentFragment = React.forwardRef((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});\nSelectContentFragment.displayName = \"SelectContentFragment\";\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar CONTENT_IMPL_NAME = \"SelectContentImpl\";\nvar Slot = createSlot(\"SelectContent.RemoveScroll\");\nvar SelectContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __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 = (event) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.current?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.current?.y ?? 0))\n };\n };\n const handlePointerUp = (event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!event.composedPath().includes(content)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, { capture: true, once: true });\n }\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, { capture: true });\n };\n }\n }, [content, onOpenChange, triggerPointerDownPosRef]);\n React.useEffect(() => {\n const close = () => onOpenChange(false);\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return () => {\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n };\n }, [onOpenChange]);\n const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.ref.current === document.activeElement);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem) {\n setTimeout(() => nextItem.ref.current?.focus());\n }\n });\n const itemRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n },\n [context.value]\n );\n const handleItemLeave = React.useCallback(() => content?.focus(), [content]);\n const itemTextRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItemText(node);\n }\n },\n [context.value]\n );\n const SelectPosition = position === \"popper\" ? SelectPopperPosition : SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return /* @__PURE__ */ jsx(\n SelectContentProvider,\n {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef,\n children: /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event) => {\n event.preventDefault();\n },\n onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, (event) => {\n context.trigger?.focus({ preventScroll: true });\n event.preventDefault();\n }),\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n SelectPosition,\n {\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event) => event.preventDefault(),\n ...contentProps,\n ...popperContentProps,\n onPlaced: () => setIsPositioned(true),\n ref: composedRefs,\n style: {\n // flex layout so we can place the scroll buttons properly\n display: \"flex\",\n flexDirection: \"column\",\n // reset the outline by default as the content MAY get focused\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if ([\"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const items = getItems().filter((item) => !item.disabled);\n let candidateNodes = items.map((item) => item.ref.current);\n if ([\"ArrowUp\", \"End\"].includes(event.key)) {\n candidateNodes = candidateNodes.slice().reverse();\n }\n if ([\"ArrowUp\", \"ArrowDown\"].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n event.preventDefault();\n }\n })\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nSelectContentImpl.displayName = CONTENT_IMPL_NAME;\nvar ITEM_ALIGNED_POSITION_NAME = \"SelectItemAlignedPosition\";\nvar SelectItemAlignedPosition = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onPlaced, ...popperProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, 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});\nSelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;\nvar POPPER_POSITION_NAME = \"SelectPopperPosition\";\nvar SelectPopperPosition = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeSelect,\n align = \"start\",\n collisionPadding = CONTENT_MARGIN,\n ...popperProps\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n return /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n ...popperScope,\n ...popperProps,\n ref: forwardedRef,\n align,\n collisionPadding,\n style: {\n // Ensure border-box for floating-ui calculations\n boxSizing: \"border-box\",\n ...popperProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nSelectPopperPosition.displayName = POPPER_POSITION_NAME;\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, nonce, ...viewportProps } = props;\n const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);\n const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);\n const composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = React.useRef(0);\n return /* @__PURE__ */ jsxs(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 }\n);\nSelectViewport.displayName = VIEWPORT_NAME;\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...groupProps } = props;\n const groupId = useId();\n return /* @__PURE__ */ jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", \"aria-labelledby\": groupId, ...groupProps, ref: forwardedRef }) });\n }\n);\nSelectGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...labelProps } = props;\n const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n return /* @__PURE__ */ jsx(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });\n }\n);\nSelectLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n value,\n disabled = false,\n textValue: textValueProp,\n ...itemProps\n } = props;\n const context = useSelectContext(ITEM_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = React.useState(textValueProp ?? \"\");\n const [isFocused, setIsFocused] = React.useState(false);\n const 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 = () => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n return /* @__PURE__ */ jsx(\n SelectItemContextProvider,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: React.useCallback((node) => {\n setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? \"\").trim());\n }, []),\n children: /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textValue,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1,\n ...itemProps,\n ref: composedRefs,\n onFocus: composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),\n onClick: composeEventHandlers(itemProps.onClick, () => {\n if (pointerTypeRef.current !== \"mouse\") handleSelect();\n }),\n onPointerUp: composeEventHandlers(itemProps.onPointerUp, () => {\n if (pointerTypeRef.current === \"mouse\") handleSelect();\n }),\n onPointerDown: composeEventHandlers(itemProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n }),\n onPointerMove: composeEventHandlers(itemProps.onPointerMove, (event) => {\n pointerTypeRef.current = event.pointerType;\n if (disabled) {\n contentContext.onItemLeave?.();\n } else if (pointerTypeRef.current === \"mouse\") {\n event.currentTarget.focus({ preventScroll: true });\n }\n }),\n onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, (event) => {\n if (event.currentTarget === document.activeElement) {\n contentContext.onItemLeave?.();\n }\n }),\n onKeyDown: composeEventHandlers(itemProps.onKeyDown, (event) => {\n 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 }\n);\nSelectItem.displayName = ITEM_NAME;\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, ...itemTextProps } = props;\n const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = React.useState(null);\n const 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 }\n);\nSelectItemText.displayName = ITEM_TEXT_NAME;\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...itemIndicatorProps } = props;\n const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...itemIndicatorProps, ref: forwardedRef }) : null;\n }\n);\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp, setCanScrollUp] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const canScrollUp2 = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollUp ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown, setCanScrollDown] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollDown ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nvar SelectScrollButtonImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;\n const contentContext = useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = React.useRef(null);\n const getItems = useCollection(__scopeSelect);\n const clearAutoScrollTimer = React.useCallback(() => {\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n React.useEffect(() => {\n return () => clearAutoScrollTimer();\n }, [clearAutoScrollTimer]);\n useLayoutEffect(() => {\n const activeItem = getItems().find((item) => item.ref.current === document.activeElement);\n activeItem?.ref.current?.scrollIntoView({ block: \"nearest\" });\n }, [getItems]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-hidden\": true,\n ...scrollIndicatorProps,\n ref: forwardedRef,\n style: { flexShrink: 0, ...scrollIndicatorProps.style },\n onPointerDown: composeEventHandlers(scrollIndicatorProps.onPointerDown, () => {\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {\n contentContext.onItemLeave?.();\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {\n clearAutoScrollTimer();\n })\n }\n );\n});\nvar SEPARATOR_NAME = \"SelectSeparator\";\nvar SelectSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { \"aria-hidden\": true, ...separatorProps, ref: forwardedRef });\n }\n);\nSelectSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return contentContext.position === \"popper\" ? /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;\n }\n);\nSelectArrow.displayName = ARROW_NAME;\nvar BUBBLE_INPUT_NAME = \"SelectBubbleInput\";\nvar SelectBubbleInput = React.forwardRef(\n ({ __scopeSelect, ...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 }\n);\nSelectBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\nfunction useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = useCallbackRef(onSearchChange);\n const searchRef = React.useRef(\"\");\n const timerRef = React.useRef(0);\n const handleTypeaheadSearch = React.useCallback(\n (key) => {\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n },\n [handleSearchChange]\n );\n const resetTypeahead = React.useCallback(() => {\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }, []);\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n return [searchRef, handleTypeaheadSearch, resetTypeahead];\n}\nfunction findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v) => v !== currentItem);\n const nextItem = wrappedItems.find(\n (item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\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","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport * as RxSelect from '@radix-ui/react-select';\nimport { Check, ChevronDown, ChevronUp } from 'lucide-react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Select — native-feeling dropdown.\n *\n * Built on Radix Select for a11y (keyboard navigation, type-ahead, ARIA).\n *\n * Use cases: settings pickers, kanban filter dropdowns, table column filters.\n * For autocomplete use Combobox (S3). For chips use MultiSelect (S3).\n */\n\nexport type SelectProps = ComponentPropsWithoutRef<typeof RxSelect.Root>;\n\nexport const Select = forwardRef<HTMLButtonElement, SelectProps>(function Select(props, ref) {\n const { children, ...rest } = props;\n return (\n <RxSelect.Root {...rest}>\n {children}\n {/* Trigger is rendered separately by the consumer via SelectTrigger. */}\n <span hidden>\n <RxSelect.Trigger ref={ref} />\n </span>\n </RxSelect.Root>\n );\n});\n\nexport interface SelectTriggerProps extends ComponentPropsWithoutRef<typeof RxSelect.Trigger> {\n placeholder?: string;\n size?: 'sm' | 'md';\n}\n\nexport const SelectTrigger = forwardRef<HTMLButtonElement, SelectTriggerProps>(function SelectTrigger(\n props,\n ref,\n) {\n const { className, placeholder, size = 'md', children, ...rest } = props;\n return (\n <RxSelect.Trigger\n ref={ref}\n className={cx('v8-select__trigger', className)}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 'var(--space-2)',\n minWidth: 120,\n height: size === 'sm' ? 28 : 32,\n padding: '0 var(--space-3)',\n background: 'var(--input-bg)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius-sm)',\n fontSize: 'var(--fs-13)',\n color: 'var(--fg)',\n cursor: 'pointer',\n }}\n {...rest}\n >\n <RxSelect.Value placeholder={placeholder} />\n <RxSelect.Icon>\n <ChevronDown size={14} aria-hidden=\"true\" style={{ color: 'var(--fg-muted)' }} />\n </RxSelect.Icon>\n {children}\n </RxSelect.Trigger>\n );\n});\n\nexport interface SelectContentProps extends ComponentPropsWithoutRef<typeof RxSelect.Content> {\n children: ReactNode;\n}\n\nexport const SelectContent = forwardRef<HTMLDivElement, SelectContentProps>(function SelectContent(\n props,\n ref,\n) {\n const { className, children, position = 'popper', ...rest } = props;\n return (\n <RxSelect.Portal>\n <RxSelect.Content\n ref={ref}\n position={position}\n sideOffset={4}\n className={cx('v8-select__content', className)}\n style={{\n background: 'var(--surface-popover)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n boxShadow: 'var(--shadow-3)',\n padding: 'var(--space-1)',\n minWidth: 'var(--radix-select-trigger-width)',\n maxHeight: 'var(--radix-select-content-available-height, 320px)',\n overflow: 'hidden',\n zIndex: 'var(--z-popover)',\n }}\n {...rest}\n >\n <RxSelect.ScrollUpButton\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 20,\n color: 'var(--fg-muted)',\n }}\n >\n <ChevronUp size={14} aria-hidden=\"true\" />\n </RxSelect.ScrollUpButton>\n <RxSelect.Viewport>{children}</RxSelect.Viewport>\n <RxSelect.ScrollDownButton\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 20,\n color: 'var(--fg-muted)',\n }}\n >\n <ChevronDown size={14} aria-hidden=\"true\" />\n </RxSelect.ScrollDownButton>\n </RxSelect.Content>\n </RxSelect.Portal>\n );\n});\n\nexport interface SelectItemProps extends ComponentPropsWithoutRef<typeof RxSelect.Item> {\n children: ReactNode;\n}\n\nexport const SelectItem = forwardRef<HTMLDivElement, SelectItemProps>(function SelectItem(props, ref) {\n const { className, children, ...rest } = props;\n return (\n <RxSelect.Item\n ref={ref}\n className={cx('v8-select__item', className)}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-2)',\n height: 28,\n padding: '0 var(--space-3) 0 var(--space-6)',\n borderRadius: 'var(--radius-sm)',\n fontSize: 'var(--fs-13)',\n color: 'var(--fg)',\n cursor: 'pointer',\n outline: 0,\n userSelect: 'none',\n position: 'relative',\n }}\n {...rest}\n >\n <RxSelect.ItemIndicator\n style={{\n position: 'absolute',\n left: 6,\n display: 'inline-flex',\n alignItems: 'center',\n color: 'var(--accent)',\n }}\n >\n <Check size={14} aria-hidden=\"true\" />\n </RxSelect.ItemIndicator>\n <RxSelect.ItemText>{children}</RxSelect.ItemText>\n </RxSelect.Item>\n );\n});\n\nexport const SelectGroup = RxSelect.Group;\nexport const SelectLabel = RxSelect.Label;\nexport const SelectSeparator = RxSelect.Separator;"],"names":["ChevronUp","createLucideIcon","VISUALLY_HIDDEN_STYLES","NAME","VisuallyHidden","React.forwardRef","props","forwardedRef","jsx","Primitive","Root","OPEN_KEYS","SELECTION_KEYS","SELECT_NAME","Collection","useCollection","createCollectionScope","createCollection","createSelectContext","createContextScope","createPopperScope","usePopperScope","SelectProviderImpl","useSelectContext","SelectNativeOptionsProvider","useSelectNativeOptionsContext","PROVIDER_NAME","SelectProvider","__scopeSelect","children","openProp","defaultOpen","onOpenChange","valueProp","defaultValue","onValueChange","dir","name","autoComplete","disabled","required","form","internal_do_not_use_render","popperScope","trigger","setTrigger","React.useState","valueNode","setValueNode","valueNodeHasChildren","setValueNodeHasChildren","direction","useDirection","open","setOpen","useControllableState","value","setValue","triggerPointerDownPosRef","React.useRef","initialValueRef","React.useEffect","associatedForm","reset","isFormControl","nativeOptionsSet","setNativeOptionsSet","contentId","useId","nativeSelectKey","option","handleNativeOptionAdd","React.useCallback","prev","handleNativeOptionRemove","optionsSet","context","PopperPrimitive.Root","isFunction","Select","providerProps","jsxs","Fragment2","SelectBubbleInput","TRIGGER_NAME","SelectTrigger","triggerProps","isDisabled","composedRefs","useComposedRefs","getItems","pointerTypeRef","searchRef","handleTypeaheadSearch","resetTypeahead","useTypeaheadSearch","search","enabledItems","item","currentItem","nextItem","findNextItem","handleOpen","pointerEvent","PopperPrimitive.Anchor","shouldShowPlaceholder","composeEventHandlers","event","target","isTypingAhead","VALUE_NAME","SelectValue","className","style","placeholder","valueProps","onValueNodeHasChildrenChange","hasChildren","useLayoutEffect","showPlaceholder","React.Fragment","ICON_NAME","SelectIcon","iconProps","PORTAL_NAME","PortalProvider","usePortalContext","SelectPortal","forceMount","portalProps","PortalPrimitive","CONTENT_NAME","SelectContent","portalContext","contentProps","fragment","setFragment","Presence","present","SelectContentImpl","SelectContentFragment","ReactDOM.createPortal","SelectContentProvider","CONTENT_MARGIN","useSelectContentContext","CONTENT_IMPL_NAME","Slot","createSlot","position","onCloseAutoFocus","onEscapeKeyDown","onPointerDownOutside","side","sideOffset","align","alignOffset","arrowPadding","collisionBoundary","collisionPadding","sticky","hideWhenDetached","avoidCollisions","content","setContent","viewport","setViewport","selectedItem","setSelectedItem","selectedItemText","setSelectedItemText","isPositioned","setIsPositioned","firstValidItemFoundRef","hideOthers","useFocusGuards","focusFirst","candidates","firstItem","restItems","lastItem","PREVIOUSLY_FOCUSED_ELEMENT","candidate","focusSelectedItem","pointerMoveDelta","handlePointerMove","_a","_b","handlePointerUp","close","itemRefCallback","node","isFirstValidItem","handleItemLeave","itemTextRefCallback","SelectPosition","SelectPopperPosition","SelectItemAlignedPosition","popperContentProps","RemoveScroll","FocusScope","DismissableLayer","isModifierKey","candidateNodes","currentElement","currentIndex","ITEM_ALIGNED_POSITION_NAME","onPlaced","popperProps","contentContext","contentWrapper","setContentWrapper","shouldExpandOnScrollRef","shouldRepositionRef","triggerRect","contentRect","valueNodeRect","itemTextRect","itemTextOffset","left","leftDelta","minContentWidth","contentWidth","rightEdge","clampedLeft","clamp","right","rightDelta","leftEdge","clampedRight","items","availableHeight","itemsHeight","contentStyles","contentBorderTopWidth","contentPaddingTop","contentBorderBottomWidth","contentPaddingBottom","fullContentHeight","minContentHeight","viewportStyles","viewportPaddingTop","viewportPaddingBottom","topEdgeToTriggerMiddle","triggerMiddleToBottomEdge","selectedItemHalfHeight","itemOffsetMiddle","contentTopToItemMiddle","itemMiddleToContentBottom","isLastItem","viewportOffsetBottom","clampedTriggerMiddleToBottomEdge","height","isFirstItem","contentZIndex","setContentZIndex","handleScrollButtonChange","SelectViewportProvider","POPPER_POSITION_NAME","PopperPrimitive.Content","useSelectViewportContext","VIEWPORT_NAME","SelectViewport","nonce","viewportProps","viewportContext","prevScrollTopRef","scrolledBy","cssMinHeight","cssHeight","prevHeight","nextHeight","clampedNextHeight","heightDiff","GROUP_NAME","SelectGroupContextProvider","useSelectGroupContext","SelectGroup","groupProps","groupId","LABEL_NAME","SelectLabel","labelProps","groupContext","ITEM_NAME","SelectItemContextProvider","useSelectItemContext","SelectItem","textValueProp","itemProps","isSelected","textValue","setTextValue","isFocused","setIsFocused","handleItemRefCallback","useCallbackRef","textId","handleSelect","prevTextValue","ITEM_TEXT_NAME","SelectItemText","itemTextProps","itemContext","nativeOptionsContext","itemTextNode","setItemTextNode","handleItemTextRefCallback","textContent","nativeOption","React.useMemo","onNativeOptionAdd","onNativeOptionRemove","ITEM_INDICATOR_NAME","SelectItemIndicator","itemIndicatorProps","SCROLL_UP_BUTTON_NAME","SelectScrollUpButton","canScrollUp","setCanScrollUp","handleScroll2","canScrollUp2","SelectScrollButtonImpl","SCROLL_DOWN_BUTTON_NAME","SelectScrollDownButton","canScrollDown","setCanScrollDown","maxScroll","canScrollDown2","onAutoScroll","scrollIndicatorProps","autoScrollTimerRef","clearAutoScrollTimer","activeItem","SEPARATOR_NAME","SelectSeparator","separatorProps","ARROW_NAME","SelectArrow","arrowProps","PopperPrimitive.Arrow","BUBBLE_INPUT_NAME","nativeOptions","ref","selectValue","prevValue","usePrevious","hasEmptyValueOption","select","selectProto","onSearchChange","handleSearchChange","timerRef","key","updateSearch","normalizedSearch","char","currentItemIndex","wrappedItems","wrapArray","v","array","startIndex","_","index","forwardRef","rest","RxSelect.Root","RxSelect.Trigger","size","cx","RxSelect.Value","RxSelect.Icon","ChevronDown","RxSelect.Portal","RxSelect.Content","RxSelect.ScrollUpButton","RxSelect.Viewport","RxSelect.ScrollDownButton","RxSelect.Item","RxSelect.ItemIndicator","Check","RxSelect.ItemText"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"Select-Dbd88_n8.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/chevron-up.js","../../../node_modules/@radix-ui/react-visually-hidden/dist/index.mjs","../../../node_modules/@radix-ui/react-select/dist/index.mjs","../../src/web/v8/ui/controls/Select.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronUp = createLucideIcon(\"ChevronUp\", [[\"path\", { d: \"m18 15-6-6-6 6\", key: \"153udz\" }]]);\n\nexport { ChevronUp as default };\n//# sourceMappingURL=chevron-up.js.map\n","// src/visually-hidden.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar VISUALLY_HIDDEN_STYLES = Object.freeze({\n // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n});\nvar NAME = \"VisuallyHidden\";\nvar VisuallyHidden = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...props,\n ref: forwardedRef,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style }\n }\n );\n }\n);\nVisuallyHidden.displayName = NAME;\nvar Root = VisuallyHidden;\nexport {\n Root,\n VISUALLY_HIDDEN_STYLES,\n VisuallyHidden\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/select.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { 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);\nvar PROVIDER_NAME = \"SelectProvider\";\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 = () => setValue(initialValueRef.current);\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}\nSelectProvider.displayName = PROVIDER_NAME;\nvar Select = (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};\nSelect.displayName = SELECT_NAME;\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, disabled = false, ...triggerProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);\n const getItems = useCollection(__scopeSelect);\n const pointerTypeRef = React.useRef(\"touch\");\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.value === context.value);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0) {\n context.onValueChange(nextItem.value);\n }\n });\n const handleOpen = (pointerEvent) => {\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n if (pointerEvent) {\n context.triggerPointerDownPosRef.current = {\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY)\n };\n }\n };\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.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 }\n);\nSelectTrigger.displayName = TRIGGER_NAME;\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, children, placeholder = \"\", ...valueProps } = props;\n const context = useSelectContext(VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n useLayoutEffect(() => {\n onValueNodeHasChildrenChange(hasChildren);\n }, [onValueNodeHasChildrenChange, hasChildren]);\n 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 }\n);\nSelectValue.displayName = VALUE_NAME;\nvar ICON_NAME = \"SelectIcon\";\nvar SelectIcon = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...iconProps, ref: forwardedRef, children: children || \"\\u25BC\" });\n }\n);\nSelectIcon.displayName = ICON_NAME;\nvar PORTAL_NAME = \"SelectPortal\";\nvar [PortalProvider, usePortalContext] = createSelectContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar SelectPortal = (props) => {\n const { __scopeSelect, forceMount, ...portalProps } = props;\n return /* @__PURE__ */ jsx(PortalProvider, { scope: props.__scopeSelect, forceMount, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, ...portalProps }) });\n};\nSelectPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = React.forwardRef(\n (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 }\n);\nSelectContent.displayName = CONTENT_NAME;\nvar SelectContentFragment = React.forwardRef((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});\nSelectContentFragment.displayName = \"SelectContentFragment\";\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar CONTENT_IMPL_NAME = \"SelectContentImpl\";\nvar Slot = createSlot(\"SelectContent.RemoveScroll\");\nvar SelectContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __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 = (event) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.current?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.current?.y ?? 0))\n };\n };\n const handlePointerUp = (event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!event.composedPath().includes(content)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, { capture: true, once: true });\n }\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, { capture: true });\n };\n }\n }, [content, onOpenChange, triggerPointerDownPosRef]);\n React.useEffect(() => {\n const close = () => onOpenChange(false);\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return () => {\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n };\n }, [onOpenChange]);\n const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.ref.current === document.activeElement);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem) {\n setTimeout(() => nextItem.ref.current?.focus());\n }\n });\n const itemRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n },\n [context.value]\n );\n const handleItemLeave = React.useCallback(() => content?.focus(), [content]);\n const itemTextRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItemText(node);\n }\n },\n [context.value]\n );\n const SelectPosition = position === \"popper\" ? SelectPopperPosition : SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return /* @__PURE__ */ jsx(\n SelectContentProvider,\n {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef,\n children: /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event) => {\n event.preventDefault();\n },\n onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, (event) => {\n context.trigger?.focus({ preventScroll: true });\n event.preventDefault();\n }),\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n SelectPosition,\n {\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event) => event.preventDefault(),\n ...contentProps,\n ...popperContentProps,\n onPlaced: () => setIsPositioned(true),\n ref: composedRefs,\n style: {\n // flex layout so we can place the scroll buttons properly\n display: \"flex\",\n flexDirection: \"column\",\n // reset the outline by default as the content MAY get focused\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if ([\"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const items = getItems().filter((item) => !item.disabled);\n let candidateNodes = items.map((item) => item.ref.current);\n if ([\"ArrowUp\", \"End\"].includes(event.key)) {\n candidateNodes = candidateNodes.slice().reverse();\n }\n if ([\"ArrowUp\", \"ArrowDown\"].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n event.preventDefault();\n }\n })\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nSelectContentImpl.displayName = CONTENT_IMPL_NAME;\nvar ITEM_ALIGNED_POSITION_NAME = \"SelectItemAlignedPosition\";\nvar SelectItemAlignedPosition = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onPlaced, ...popperProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, 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});\nSelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;\nvar POPPER_POSITION_NAME = \"SelectPopperPosition\";\nvar SelectPopperPosition = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeSelect,\n align = \"start\",\n collisionPadding = CONTENT_MARGIN,\n ...popperProps\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n return /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n ...popperScope,\n ...popperProps,\n ref: forwardedRef,\n align,\n collisionPadding,\n style: {\n // Ensure border-box for floating-ui calculations\n boxSizing: \"border-box\",\n ...popperProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nSelectPopperPosition.displayName = POPPER_POSITION_NAME;\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, nonce, ...viewportProps } = props;\n const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);\n const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);\n const composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = React.useRef(0);\n return /* @__PURE__ */ jsxs(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 }\n);\nSelectViewport.displayName = VIEWPORT_NAME;\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...groupProps } = props;\n const groupId = useId();\n return /* @__PURE__ */ jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", \"aria-labelledby\": groupId, ...groupProps, ref: forwardedRef }) });\n }\n);\nSelectGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...labelProps } = props;\n const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n return /* @__PURE__ */ jsx(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });\n }\n);\nSelectLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n value,\n disabled = false,\n textValue: textValueProp,\n ...itemProps\n } = props;\n const context = useSelectContext(ITEM_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = React.useState(textValueProp ?? \"\");\n const [isFocused, setIsFocused] = React.useState(false);\n const 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 = () => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n return /* @__PURE__ */ jsx(\n SelectItemContextProvider,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: React.useCallback((node) => {\n setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? \"\").trim());\n }, []),\n children: /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textValue,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1,\n ...itemProps,\n ref: composedRefs,\n onFocus: composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),\n onClick: composeEventHandlers(itemProps.onClick, () => {\n if (pointerTypeRef.current !== \"mouse\") handleSelect();\n }),\n onPointerUp: composeEventHandlers(itemProps.onPointerUp, () => {\n if (pointerTypeRef.current === \"mouse\") handleSelect();\n }),\n onPointerDown: composeEventHandlers(itemProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n }),\n onPointerMove: composeEventHandlers(itemProps.onPointerMove, (event) => {\n pointerTypeRef.current = event.pointerType;\n if (disabled) {\n contentContext.onItemLeave?.();\n } else if (pointerTypeRef.current === \"mouse\") {\n event.currentTarget.focus({ preventScroll: true });\n }\n }),\n onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, (event) => {\n if (event.currentTarget === document.activeElement) {\n contentContext.onItemLeave?.();\n }\n }),\n onKeyDown: composeEventHandlers(itemProps.onKeyDown, (event) => {\n 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 }\n);\nSelectItem.displayName = ITEM_NAME;\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, ...itemTextProps } = props;\n const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = React.useState(null);\n const 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 }\n);\nSelectItemText.displayName = ITEM_TEXT_NAME;\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...itemIndicatorProps } = props;\n const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...itemIndicatorProps, ref: forwardedRef }) : null;\n }\n);\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp, setCanScrollUp] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const canScrollUp2 = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollUp ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown, setCanScrollDown] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollDown ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nvar SelectScrollButtonImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;\n const contentContext = useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = React.useRef(null);\n const getItems = useCollection(__scopeSelect);\n const clearAutoScrollTimer = React.useCallback(() => {\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n React.useEffect(() => {\n return () => clearAutoScrollTimer();\n }, [clearAutoScrollTimer]);\n useLayoutEffect(() => {\n const activeItem = getItems().find((item) => item.ref.current === document.activeElement);\n activeItem?.ref.current?.scrollIntoView({ block: \"nearest\" });\n }, [getItems]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-hidden\": true,\n ...scrollIndicatorProps,\n ref: forwardedRef,\n style: { flexShrink: 0, ...scrollIndicatorProps.style },\n onPointerDown: composeEventHandlers(scrollIndicatorProps.onPointerDown, () => {\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {\n contentContext.onItemLeave?.();\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {\n clearAutoScrollTimer();\n })\n }\n );\n});\nvar SEPARATOR_NAME = \"SelectSeparator\";\nvar SelectSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { \"aria-hidden\": true, ...separatorProps, ref: forwardedRef });\n }\n);\nSelectSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return contentContext.position === \"popper\" ? /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;\n }\n);\nSelectArrow.displayName = ARROW_NAME;\nvar BUBBLE_INPUT_NAME = \"SelectBubbleInput\";\nvar SelectBubbleInput = React.forwardRef(\n ({ __scopeSelect, ...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 }\n);\nSelectBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\nfunction useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = useCallbackRef(onSearchChange);\n const searchRef = React.useRef(\"\");\n const timerRef = React.useRef(0);\n const handleTypeaheadSearch = React.useCallback(\n (key) => {\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n },\n [handleSearchChange]\n );\n const resetTypeahead = React.useCallback(() => {\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }, []);\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n return [searchRef, handleTypeaheadSearch, resetTypeahead];\n}\nfunction findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v) => v !== currentItem);\n const nextItem = wrappedItems.find(\n (item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\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","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport * as RxSelect from '@radix-ui/react-select';\nimport { Check, ChevronDown, ChevronUp } from 'lucide-react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Select — native-feeling dropdown.\n *\n * Built on Radix Select for a11y (keyboard navigation, type-ahead, ARIA).\n *\n * Use cases: settings pickers, kanban filter dropdowns, table column filters.\n * For autocomplete use Combobox (S3). For chips use MultiSelect (S3).\n */\n\nexport type SelectProps = ComponentPropsWithoutRef<typeof RxSelect.Root>;\n\nexport const Select = forwardRef<HTMLButtonElement, SelectProps>(function Select(props, ref) {\n const { children, ...rest } = props;\n return (\n <RxSelect.Root {...rest}>\n {children}\n {/* Trigger is rendered separately by the consumer via SelectTrigger. */}\n <span hidden>\n <RxSelect.Trigger ref={ref} />\n </span>\n </RxSelect.Root>\n );\n});\n\nexport interface SelectTriggerProps extends ComponentPropsWithoutRef<typeof RxSelect.Trigger> {\n placeholder?: string;\n size?: 'sm' | 'md';\n}\n\nexport const SelectTrigger = forwardRef<HTMLButtonElement, SelectTriggerProps>(function SelectTrigger(\n props,\n ref,\n) {\n const { className, placeholder, size = 'md', children, ...rest } = props;\n return (\n <RxSelect.Trigger\n ref={ref}\n className={cx('v8-select__trigger', className)}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 'var(--space-2)',\n minWidth: 120,\n height: size === 'sm' ? 28 : 32,\n padding: '0 var(--space-3)',\n background: 'var(--input-bg)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius-sm)',\n fontSize: 'var(--fs-13)',\n color: 'var(--fg)',\n cursor: 'pointer',\n }}\n {...rest}\n >\n <RxSelect.Value placeholder={placeholder} />\n <RxSelect.Icon>\n <ChevronDown size={14} aria-hidden=\"true\" style={{ color: 'var(--fg-muted)' }} />\n </RxSelect.Icon>\n {children}\n </RxSelect.Trigger>\n );\n});\n\nexport interface SelectContentProps extends ComponentPropsWithoutRef<typeof RxSelect.Content> {\n children: ReactNode;\n}\n\nexport const SelectContent = forwardRef<HTMLDivElement, SelectContentProps>(function SelectContent(\n props,\n ref,\n) {\n const { className, children, position = 'popper', ...rest } = props;\n return (\n <RxSelect.Portal>\n <RxSelect.Content\n ref={ref}\n position={position}\n sideOffset={4}\n className={cx('v8-select__content', className)}\n style={{\n background: 'var(--surface-popover)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n boxShadow: 'var(--shadow-3)',\n padding: 'var(--space-1)',\n minWidth: 'var(--radix-select-trigger-width)',\n maxHeight: 'var(--radix-select-content-available-height, 320px)',\n overflow: 'hidden',\n zIndex: 'var(--z-popover)',\n }}\n {...rest}\n >\n <RxSelect.ScrollUpButton\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 20,\n color: 'var(--fg-muted)',\n }}\n >\n <ChevronUp size={14} aria-hidden=\"true\" />\n </RxSelect.ScrollUpButton>\n <RxSelect.Viewport>{children}</RxSelect.Viewport>\n <RxSelect.ScrollDownButton\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 20,\n color: 'var(--fg-muted)',\n }}\n >\n <ChevronDown size={14} aria-hidden=\"true\" />\n </RxSelect.ScrollDownButton>\n </RxSelect.Content>\n </RxSelect.Portal>\n );\n});\n\nexport interface SelectItemProps extends ComponentPropsWithoutRef<typeof RxSelect.Item> {\n children: ReactNode;\n}\n\nexport const SelectItem = forwardRef<HTMLDivElement, SelectItemProps>(function SelectItem(props, ref) {\n const { className, children, ...rest } = props;\n return (\n <RxSelect.Item\n ref={ref}\n className={cx('v8-select__item', className)}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-2)',\n height: 28,\n padding: '0 var(--space-3) 0 var(--space-6)',\n borderRadius: 'var(--radius-sm)',\n fontSize: 'var(--fs-13)',\n color: 'var(--fg)',\n cursor: 'pointer',\n outline: 0,\n userSelect: 'none',\n position: 'relative',\n }}\n {...rest}\n >\n <RxSelect.ItemIndicator\n style={{\n position: 'absolute',\n left: 6,\n display: 'inline-flex',\n alignItems: 'center',\n color: 'var(--accent)',\n }}\n >\n <Check size={14} aria-hidden=\"true\" />\n </RxSelect.ItemIndicator>\n <RxSelect.ItemText>{children}</RxSelect.ItemText>\n </RxSelect.Item>\n );\n});\n\nexport const SelectGroup = RxSelect.Group;\nexport const SelectLabel = RxSelect.Label;\nexport const SelectSeparator = RxSelect.Separator;"],"names":["ChevronUp","createLucideIcon","VISUALLY_HIDDEN_STYLES","NAME","VisuallyHidden","React.forwardRef","props","forwardedRef","jsx","Primitive","Root","OPEN_KEYS","SELECTION_KEYS","SELECT_NAME","Collection","useCollection","createCollectionScope","createCollection","createSelectContext","createContextScope","createPopperScope","usePopperScope","SelectProviderImpl","useSelectContext","SelectNativeOptionsProvider","useSelectNativeOptionsContext","PROVIDER_NAME","SelectProvider","__scopeSelect","children","openProp","defaultOpen","onOpenChange","valueProp","defaultValue","onValueChange","dir","name","autoComplete","disabled","required","form","internal_do_not_use_render","popperScope","trigger","setTrigger","React.useState","valueNode","setValueNode","valueNodeHasChildren","setValueNodeHasChildren","direction","useDirection","open","setOpen","useControllableState","value","setValue","triggerPointerDownPosRef","React.useRef","initialValueRef","React.useEffect","associatedForm","reset","isFormControl","nativeOptionsSet","setNativeOptionsSet","contentId","useId","nativeSelectKey","option","handleNativeOptionAdd","React.useCallback","prev","handleNativeOptionRemove","optionsSet","context","PopperPrimitive.Root","isFunction","Select","providerProps","jsxs","Fragment2","SelectBubbleInput","TRIGGER_NAME","SelectTrigger","triggerProps","isDisabled","composedRefs","useComposedRefs","getItems","pointerTypeRef","searchRef","handleTypeaheadSearch","resetTypeahead","useTypeaheadSearch","search","enabledItems","item","currentItem","nextItem","findNextItem","handleOpen","pointerEvent","PopperPrimitive.Anchor","shouldShowPlaceholder","composeEventHandlers","event","target","isTypingAhead","VALUE_NAME","SelectValue","className","style","placeholder","valueProps","onValueNodeHasChildrenChange","hasChildren","useLayoutEffect","showPlaceholder","React.Fragment","ICON_NAME","SelectIcon","iconProps","PORTAL_NAME","PortalProvider","usePortalContext","SelectPortal","forceMount","portalProps","PortalPrimitive","CONTENT_NAME","SelectContent","portalContext","contentProps","fragment","setFragment","Presence","present","SelectContentImpl","SelectContentFragment","ReactDOM.createPortal","SelectContentProvider","CONTENT_MARGIN","useSelectContentContext","CONTENT_IMPL_NAME","Slot","createSlot","position","onCloseAutoFocus","onEscapeKeyDown","onPointerDownOutside","side","sideOffset","align","alignOffset","arrowPadding","collisionBoundary","collisionPadding","sticky","hideWhenDetached","avoidCollisions","content","setContent","viewport","setViewport","selectedItem","setSelectedItem","selectedItemText","setSelectedItemText","isPositioned","setIsPositioned","firstValidItemFoundRef","hideOthers","useFocusGuards","focusFirst","candidates","firstItem","restItems","lastItem","PREVIOUSLY_FOCUSED_ELEMENT","candidate","focusSelectedItem","pointerMoveDelta","handlePointerMove","_a","_b","handlePointerUp","close","itemRefCallback","node","isFirstValidItem","handleItemLeave","itemTextRefCallback","SelectPosition","SelectPopperPosition","SelectItemAlignedPosition","popperContentProps","RemoveScroll","FocusScope","DismissableLayer","isModifierKey","candidateNodes","currentElement","currentIndex","ITEM_ALIGNED_POSITION_NAME","onPlaced","popperProps","contentContext","contentWrapper","setContentWrapper","shouldExpandOnScrollRef","shouldRepositionRef","triggerRect","contentRect","valueNodeRect","itemTextRect","itemTextOffset","left","leftDelta","minContentWidth","contentWidth","rightEdge","clampedLeft","clamp","right","rightDelta","leftEdge","clampedRight","items","availableHeight","itemsHeight","contentStyles","contentBorderTopWidth","contentPaddingTop","contentBorderBottomWidth","contentPaddingBottom","fullContentHeight","minContentHeight","viewportStyles","viewportPaddingTop","viewportPaddingBottom","topEdgeToTriggerMiddle","triggerMiddleToBottomEdge","selectedItemHalfHeight","itemOffsetMiddle","contentTopToItemMiddle","itemMiddleToContentBottom","isLastItem","viewportOffsetBottom","clampedTriggerMiddleToBottomEdge","height","isFirstItem","contentZIndex","setContentZIndex","handleScrollButtonChange","SelectViewportProvider","POPPER_POSITION_NAME","PopperPrimitive.Content","useSelectViewportContext","VIEWPORT_NAME","SelectViewport","nonce","viewportProps","viewportContext","prevScrollTopRef","scrolledBy","cssMinHeight","cssHeight","prevHeight","nextHeight","clampedNextHeight","heightDiff","GROUP_NAME","SelectGroupContextProvider","useSelectGroupContext","SelectGroup","groupProps","groupId","LABEL_NAME","SelectLabel","labelProps","groupContext","ITEM_NAME","SelectItemContextProvider","useSelectItemContext","SelectItem","textValueProp","itemProps","isSelected","textValue","setTextValue","isFocused","setIsFocused","handleItemRefCallback","useCallbackRef","textId","handleSelect","prevTextValue","ITEM_TEXT_NAME","SelectItemText","itemTextProps","itemContext","nativeOptionsContext","itemTextNode","setItemTextNode","handleItemTextRefCallback","textContent","nativeOption","React.useMemo","onNativeOptionAdd","onNativeOptionRemove","ITEM_INDICATOR_NAME","SelectItemIndicator","itemIndicatorProps","SCROLL_UP_BUTTON_NAME","SelectScrollUpButton","canScrollUp","setCanScrollUp","handleScroll2","canScrollUp2","SelectScrollButtonImpl","SCROLL_DOWN_BUTTON_NAME","SelectScrollDownButton","canScrollDown","setCanScrollDown","maxScroll","canScrollDown2","onAutoScroll","scrollIndicatorProps","autoScrollTimerRef","clearAutoScrollTimer","activeItem","SEPARATOR_NAME","SelectSeparator","separatorProps","ARROW_NAME","SelectArrow","arrowProps","PopperPrimitive.Arrow","BUBBLE_INPUT_NAME","nativeOptions","ref","selectValue","prevValue","usePrevious","hasEmptyValueOption","select","selectProto","onSearchChange","handleSearchChange","timerRef","key","updateSearch","normalizedSearch","char","currentItemIndex","wrappedItems","wrapArray","v","array","startIndex","_","index","forwardRef","rest","RxSelect.Root","RxSelect.Trigger","size","cx","RxSelect.Value","RxSelect.Icon","ChevronDown","RxSelect.Portal","RxSelect.Content","RxSelect.ScrollUpButton","RxSelect.Viewport","RxSelect.ScrollDownButton","RxSelect.Item","RxSelect.ItemIndicator","Check","RxSelect.ItemText"],"mappings":"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","x_google_ignoreList":[0,1,2]}
@@ -1 +1 @@
1
- import{r as g,j as e}from"./cmdk-DVxytz9i.js";import{g as v}from"./main-CdOm1Pj9.js";const x=g.forwardRef(function(n,d){const{id:i,title:o,description:a,icon:t,children:s,headerActions:r,className:c,...l}=n;return e.jsxs("section",{ref:d,id:i,"aria-labelledby":`${i}-title`,className:v("v8-settings-section",c),style:{padding:"var(--space-5) var(--space-6)",background:"var(--surface-1)",border:"1px solid var(--border)",borderRadius:"var(--radius-lg)"},...l,children:[e.jsxs("header",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"var(--space-3)",marginBottom:"var(--space-4)"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:"var(--space-3)",minWidth:0},children:[t!==void 0&&e.jsx("span",{"aria-hidden":"true",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:28,height:28,borderRadius:"var(--radius-sm)",background:"color-mix(in oklch, var(--accent) 14%, transparent)",color:"var(--accent)",flexShrink:0},children:t}),e.jsxs("div",{style:{minWidth:0},children:[e.jsx("h2",{id:`${i}-title`,style:{fontSize:"var(--fs-15)",fontWeight:600,color:"var(--fg)",lineHeight:"var(--lh-snug)",margin:0},children:o}),a!==void 0&&e.jsx("p",{style:{fontSize:"var(--fs-13)",color:"var(--fg-muted)",margin:"4px 0 0 0",lineHeight:"var(--lh-snug)"},children:a})]})]}),r!==void 0&&e.jsx("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)",flexShrink:0},children:r})]}),e.jsx("div",{className:"v8-settings-section__body",children:s})]})}),m=g.forwardRef(function(n,d){const{id:i,label:o,description:a,control:t,disabled:s=!1,className:r,...c}=n,l=`${i}-label`;return e.jsxs("div",{ref:d,"data-disabled":s||void 0,"aria-disabled":s||void 0,className:v("v8-settings-row",r),style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"var(--space-4)",padding:"var(--space-3) 0",borderBottom:"1px solid var(--border)",opacity:s?.5:1},...c,children:[e.jsxs("div",{id:l,style:{flex:1,minWidth:0},children:[e.jsx("span",{style:{display:"block",fontSize:"var(--fs-13)",fontWeight:500,color:"var(--fg)",cursor:s?"not-allowed":"default",lineHeight:"var(--lh-snug)"},children:o}),a!==void 0&&e.jsx("p",{style:{fontSize:"var(--fs-12)",color:"var(--fg-muted)",margin:"4px 0 0 0",lineHeight:"var(--lh-snug)"},children:a})]}),e.jsx("div",{role:"group","aria-labelledby":l,style:{flexShrink:0,alignSelf:"center"},children:t})]})});export{x as S,m as a};
1
+ import{r as g,j as e}from"./cmdk-DVxytz9i.js";import{g as v}from"./main-CokHAXWM.js";const x=g.forwardRef(function(n,d){const{id:i,title:o,description:a,icon:t,children:s,headerActions:r,className:c,...l}=n;return e.jsxs("section",{ref:d,id:i,"aria-labelledby":`${i}-title`,className:v("v8-settings-section",c),style:{padding:"var(--space-5) var(--space-6)",background:"var(--surface-1)",border:"1px solid var(--border)",borderRadius:"var(--radius-lg)"},...l,children:[e.jsxs("header",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"var(--space-3)",marginBottom:"var(--space-4)"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:"var(--space-3)",minWidth:0},children:[t!==void 0&&e.jsx("span",{"aria-hidden":"true",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:28,height:28,borderRadius:"var(--radius-sm)",background:"color-mix(in oklch, var(--accent) 14%, transparent)",color:"var(--accent)",flexShrink:0},children:t}),e.jsxs("div",{style:{minWidth:0},children:[e.jsx("h2",{id:`${i}-title`,style:{fontSize:"var(--fs-15)",fontWeight:600,color:"var(--fg)",lineHeight:"var(--lh-snug)",margin:0},children:o}),a!==void 0&&e.jsx("p",{style:{fontSize:"var(--fs-13)",color:"var(--fg-muted)",margin:"4px 0 0 0",lineHeight:"var(--lh-snug)"},children:a})]})]}),r!==void 0&&e.jsx("div",{style:{display:"flex",alignItems:"center",gap:"var(--space-2)",flexShrink:0},children:r})]}),e.jsx("div",{className:"v8-settings-section__body",children:s})]})}),m=g.forwardRef(function(n,d){const{id:i,label:o,description:a,control:t,disabled:s=!1,className:r,...c}=n,l=`${i}-label`;return e.jsxs("div",{ref:d,"data-disabled":s||void 0,"aria-disabled":s||void 0,className:v("v8-settings-row",r),style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"var(--space-4)",padding:"var(--space-3) 0",borderBottom:"1px solid var(--border)",opacity:s?.5:1},...c,children:[e.jsxs("div",{id:l,style:{flex:1,minWidth:0},children:[e.jsx("span",{style:{display:"block",fontSize:"var(--fs-13)",fontWeight:500,color:"var(--fg)",cursor:s?"not-allowed":"default",lineHeight:"var(--lh-snug)"},children:o}),a!==void 0&&e.jsx("p",{style:{fontSize:"var(--fs-12)",color:"var(--fg-muted)",margin:"4px 0 0 0",lineHeight:"var(--lh-snug)"},children:a})]}),e.jsx("div",{role:"group","aria-labelledby":l,style:{flexShrink:0,alignSelf:"center"},children:t})]})});export{x as S,m as a};
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsRow-DgsgbPSI.js","sources":["../../src/web/v8/ui/settings/SettingsSection.tsx","../../src/web/v8/ui/settings/SettingsRow.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * SettingsSection — a titled, optionally-described section of the Settings\n * page.\n *\n * PLAN.md §Settings declares 16 sections; SettingsSection is the shell\n * they all use. The body is a free slot so each section composes its own\n * option rows (SettingsRow) and sub-sections.\n */\n\nexport interface SettingsSectionProps extends HTMLAttributes<HTMLElement> {\n id: string;\n title: string;\n /** One-sentence summary of what this section controls. */\n description?: string;\n /** Optional icon (lucide). */\n icon?: ReactNode;\n /** Section body — SettingsRow, sub-sections, etc. */\n children?: ReactNode;\n /** Right-aligned header slot (e.g. \"Restore defaults\" button). */\n headerActions?: ReactNode;\n}\n\nexport const SettingsSection = forwardRef<HTMLElement, SettingsSectionProps>(function SettingsSection(\n props,\n ref,\n) {\n const { id, title, description, icon, children, headerActions, className, ...rest } = props;\n return (\n <section\n ref={ref}\n id={id}\n aria-labelledby={`${id}-title`}\n className={cx('v8-settings-section', className)}\n style={{\n padding: 'var(--space-5) var(--space-6)',\n background: 'var(--surface-1)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius-lg)',\n }}\n {...rest}\n >\n <header\n style={{\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n gap: 'var(--space-3)',\n marginBottom: 'var(--space-4)',\n }}\n >\n <div style={{ display: 'flex', alignItems: 'flex-start', gap: 'var(--space-3)', minWidth: 0 }}>\n {icon !== undefined && (\n <span\n aria-hidden=\"true\"\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 28,\n height: 28,\n borderRadius: 'var(--radius-sm)',\n background: 'color-mix(in oklch, var(--accent) 14%, transparent)',\n color: 'var(--accent)',\n flexShrink: 0,\n }}\n >\n {icon}\n </span>\n )}\n <div style={{ minWidth: 0 }}>\n <h2\n id={`${id}-title`}\n style={{\n fontSize: 'var(--fs-15)',\n fontWeight: 600,\n color: 'var(--fg)',\n lineHeight: 'var(--lh-snug)',\n margin: 0,\n }}\n >\n {title}\n </h2>\n {description !== undefined && (\n <p\n style={{\n fontSize: 'var(--fs-13)',\n color: 'var(--fg-muted)',\n margin: '4px 0 0 0',\n lineHeight: 'var(--lh-snug)',\n }}\n >\n {description}\n </p>\n )}\n </div>\n </div>\n {headerActions !== undefined && (\n <div style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-2)', flexShrink: 0 }}>\n {headerActions}\n </div>\n )}\n </header>\n <div className=\"v8-settings-section__body\">{children}</div>\n </section>\n );\n});","import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * SettingsRow — one labelled option inside a SettingsSection.\n *\n * Three-column layout:\n * ┌─ label + description ──────────── control ─┐\n * The label column is required; the control slot\n * hosts the actual interactive (Switch, Select, Slider, custom button, etc.).\n */\n\nexport interface SettingsRowProps extends HTMLAttributes<HTMLDivElement> {\n id: string;\n /** The control label (left column). */\n label: ReactNode;\n /** Optional one-line description (left column, below label). */\n description?: ReactNode;\n /** Right column — the interactive control. */\n control: ReactNode;\n /** Mark the row as disabled (visual + aria). */\n disabled?: boolean;\n}\n\nexport const SettingsRow = forwardRef<HTMLDivElement, SettingsRowProps>(function SettingsRow(\n props,\n ref,\n) {\n const { id, label, description, control, disabled = false, className, ...rest } = props;\n // The label is announced via `aria-labelledby` rather than `<label\n // htmlFor>` because the control is generic — its DOM id is set by the\n // consumer (Switch, Select, custom input), and we'd otherwise need to\n // thread it through the props chain. `aria-labelledby` is the WAI-ARIA\n // sanctioned way to label a region without owning a native `<label>`.\n const labelId = `${id}-label`;\n return (\n <div\n ref={ref}\n data-disabled={disabled || undefined}\n aria-disabled={disabled || undefined}\n className={cx('v8-settings-row', className)}\n style={{\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n gap: 'var(--space-4)',\n padding: 'var(--space-3) 0',\n borderBottom: '1px solid var(--border)',\n opacity: disabled ? 0.5 : 1,\n }}\n {...rest}\n >\n <div id={labelId} style={{ flex: 1, minWidth: 0 }}>\n <span\n style={{\n display: 'block',\n fontSize: 'var(--fs-13)',\n fontWeight: 500,\n color: 'var(--fg)',\n cursor: disabled ? 'not-allowed' : 'default',\n lineHeight: 'var(--lh-snug)',\n }}\n >\n {label}\n </span>\n {description !== undefined && (\n <p\n style={{\n fontSize: 'var(--fs-12)',\n color: 'var(--fg-muted)',\n margin: '4px 0 0 0',\n lineHeight: 'var(--lh-snug)',\n }}\n >\n {description}\n </p>\n )}\n </div>\n <div\n role=\"group\"\n aria-labelledby={labelId}\n style={{ flexShrink: 0, alignSelf: 'center' }}\n >\n {control}\n </div>\n </div>\n );\n});"],"names":["SettingsSection","forwardRef","props","ref","id","title","description","icon","children","headerActions","className","rest","jsxs","cx","jsx","SettingsRow","label","control","disabled","labelId"],"mappings":"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"}
1
+ {"version":3,"file":"SettingsRow-CLMNd434.js","sources":["../../src/web/v8/ui/settings/SettingsSection.tsx","../../src/web/v8/ui/settings/SettingsRow.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * SettingsSection — a titled, optionally-described section of the Settings\n * page.\n *\n * PLAN.md §Settings declares 16 sections; SettingsSection is the shell\n * they all use. The body is a free slot so each section composes its own\n * option rows (SettingsRow) and sub-sections.\n */\n\nexport interface SettingsSectionProps extends HTMLAttributes<HTMLElement> {\n id: string;\n title: string;\n /** One-sentence summary of what this section controls. */\n description?: string;\n /** Optional icon (lucide). */\n icon?: ReactNode;\n /** Section body — SettingsRow, sub-sections, etc. */\n children?: ReactNode;\n /** Right-aligned header slot (e.g. \"Restore defaults\" button). */\n headerActions?: ReactNode;\n}\n\nexport const SettingsSection = forwardRef<HTMLElement, SettingsSectionProps>(function SettingsSection(\n props,\n ref,\n) {\n const { id, title, description, icon, children, headerActions, className, ...rest } = props;\n return (\n <section\n ref={ref}\n id={id}\n aria-labelledby={`${id}-title`}\n className={cx('v8-settings-section', className)}\n style={{\n padding: 'var(--space-5) var(--space-6)',\n background: 'var(--surface-1)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius-lg)',\n }}\n {...rest}\n >\n <header\n style={{\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n gap: 'var(--space-3)',\n marginBottom: 'var(--space-4)',\n }}\n >\n <div style={{ display: 'flex', alignItems: 'flex-start', gap: 'var(--space-3)', minWidth: 0 }}>\n {icon !== undefined && (\n <span\n aria-hidden=\"true\"\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 28,\n height: 28,\n borderRadius: 'var(--radius-sm)',\n background: 'color-mix(in oklch, var(--accent) 14%, transparent)',\n color: 'var(--accent)',\n flexShrink: 0,\n }}\n >\n {icon}\n </span>\n )}\n <div style={{ minWidth: 0 }}>\n <h2\n id={`${id}-title`}\n style={{\n fontSize: 'var(--fs-15)',\n fontWeight: 600,\n color: 'var(--fg)',\n lineHeight: 'var(--lh-snug)',\n margin: 0,\n }}\n >\n {title}\n </h2>\n {description !== undefined && (\n <p\n style={{\n fontSize: 'var(--fs-13)',\n color: 'var(--fg-muted)',\n margin: '4px 0 0 0',\n lineHeight: 'var(--lh-snug)',\n }}\n >\n {description}\n </p>\n )}\n </div>\n </div>\n {headerActions !== undefined && (\n <div style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-2)', flexShrink: 0 }}>\n {headerActions}\n </div>\n )}\n </header>\n <div className=\"v8-settings-section__body\">{children}</div>\n </section>\n );\n});","import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * SettingsRow — one labelled option inside a SettingsSection.\n *\n * Three-column layout:\n * ┌─ label + description ──────────── control ─┐\n * The label column is required; the control slot\n * hosts the actual interactive (Switch, Select, Slider, custom button, etc.).\n */\n\nexport interface SettingsRowProps extends HTMLAttributes<HTMLDivElement> {\n id: string;\n /** The control label (left column). */\n label: ReactNode;\n /** Optional one-line description (left column, below label). */\n description?: ReactNode;\n /** Right column — the interactive control. */\n control: ReactNode;\n /** Mark the row as disabled (visual + aria). */\n disabled?: boolean;\n}\n\nexport const SettingsRow = forwardRef<HTMLDivElement, SettingsRowProps>(function SettingsRow(\n props,\n ref,\n) {\n const { id, label, description, control, disabled = false, className, ...rest } = props;\n // The label is announced via `aria-labelledby` rather than `<label\n // htmlFor>` because the control is generic — its DOM id is set by the\n // consumer (Switch, Select, custom input), and we'd otherwise need to\n // thread it through the props chain. `aria-labelledby` is the WAI-ARIA\n // sanctioned way to label a region without owning a native `<label>`.\n const labelId = `${id}-label`;\n return (\n <div\n ref={ref}\n data-disabled={disabled || undefined}\n aria-disabled={disabled || undefined}\n className={cx('v8-settings-row', className)}\n style={{\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n gap: 'var(--space-4)',\n padding: 'var(--space-3) 0',\n borderBottom: '1px solid var(--border)',\n opacity: disabled ? 0.5 : 1,\n }}\n {...rest}\n >\n <div id={labelId} style={{ flex: 1, minWidth: 0 }}>\n <span\n style={{\n display: 'block',\n fontSize: 'var(--fs-13)',\n fontWeight: 500,\n color: 'var(--fg)',\n cursor: disabled ? 'not-allowed' : 'default',\n lineHeight: 'var(--lh-snug)',\n }}\n >\n {label}\n </span>\n {description !== undefined && (\n <p\n style={{\n fontSize: 'var(--fs-12)',\n color: 'var(--fg-muted)',\n margin: '4px 0 0 0',\n lineHeight: 'var(--lh-snug)',\n }}\n >\n {description}\n </p>\n )}\n </div>\n <div\n role=\"group\"\n aria-labelledby={labelId}\n style={{ flexShrink: 0, alignSelf: 'center' }}\n >\n {control}\n </div>\n </div>\n );\n});"],"names":["SettingsSection","forwardRef","props","ref","id","title","description","icon","children","headerActions","className","rest","jsxs","cx","jsx","SettingsRow","label","control","disabled","labelId"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{j as e,r as g}from"./cmdk-DVxytz9i.js";import{c as H,g as ze,t as Pe,v as Re,u as M,k as E,w as re,x as de,y as ce,D as he,j as ue,z as pe,W as ge,A as me,E as xe,b as ye,G as fe,S as B,I as u,d as b,B as oe,i as I,F as O,h as De}from"./main-CdOm1Pj9.js";import{G as Me}from"./Grid-CiRyhAgR.js";import{S as s}from"./Switch-BItGrPqr.js";import{S as F}from"./Slider-DXbJuQ7y.js";import{I as S}from"./Input-BbFUDQnS.js";import{T as Fe}from"./Textarea-qYDf3yds.js";import{S as d,a as i}from"./SettingsRow-DgsgbPSI.js";import{P as ve}from"./plug-Cmv0-T_e.js";import{B as je}from"./brain-fsBSDl2g.js";import{R as se}from"./rotate-cw-DHooc0Tx.js";import{P as Be}from"./plus-M6LYiKX8.js";import{T as Ee}from"./trash-2-CL4khSRv.js";import"./index-CASP1n-5.js";import"./index-C4Vq_2LM.js";/**
1
+ import{j as e,r as g}from"./cmdk-DVxytz9i.js";import{c as H,g as ze,t as Pe,v as Re,u as M,k as E,w as re,x as de,y as ce,D as he,j as ue,z as pe,W as ge,A as me,E as xe,b as ye,G as fe,S as B,I as u,d as b,B as oe,i as I,F as O,h as De}from"./main-CokHAXWM.js";import{G as Me}from"./Grid-qcvbhx6e.js";import{S as s}from"./Switch-CwXfsDii.js";import{S as F}from"./Slider-BJCvKI1I.js";import{I as S}from"./Input-Bgzxf_Hu.js";import{T as Fe}from"./Textarea-BzIAwSlp.js";import{S as d,a as i}from"./SettingsRow-CLMNd434.js";import{P as ve}from"./plug-DBrVM9lK.js";import{B as je}from"./brain-CM-Vls8r.js";import{R as se}from"./rotate-cw-xpPJw9LP.js";import{P as Be}from"./plus-DENm0hqV.js";import{T as Ee}from"./trash-2-DZDjEnNh.js";import"./index-CASP1n-5.js";import"./index-C4Vq_2LM.js";/**
2
2
  * @license lucide-react v0.460.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.