@polderlabs/bizar 10.2.0 → 10.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -8
- package/bizar-dash/CONTROL_SURFACES.md +0 -1
- package/bizar-dash/dist/assets/{ActivityFeed-JjmOY2AQ.js → ActivityFeed-xXiUCZLB.js} +1 -1
- package/bizar-dash/dist/assets/{ActivityFeed-JjmOY2AQ.js.map → ActivityFeed-xXiUCZLB.js.map} +1 -1
- package/bizar-dash/dist/assets/{ActivityView-BIIMvGWo.js → ActivityView-nOYhCp3h.js} +1 -1
- package/bizar-dash/dist/assets/{ActivityView-BIIMvGWo.js.map → ActivityView-nOYhCp3h.js.map} +1 -1
- package/bizar-dash/dist/assets/{AdminView-DRidJtkq.js → AdminView-Coi4V3sq.js} +1 -1
- package/bizar-dash/dist/assets/{AdminView-DRidJtkq.js.map → AdminView-Coi4V3sq.js.map} +1 -1
- package/bizar-dash/dist/assets/{AgentActivity-79l4SBMC.js → AgentActivity-nEri4lbx.js} +1 -1
- package/bizar-dash/dist/assets/{AgentActivity-79l4SBMC.js.map → AgentActivity-nEri4lbx.js.map} +1 -1
- package/bizar-dash/dist/assets/{AgentsView-0vT4uPSc.js → AgentsView-ByiIJ0ej.js} +3 -3
- package/bizar-dash/dist/assets/{AgentsView-0vT4uPSc.js.map → AgentsView-ByiIJ0ej.js.map} +1 -1
- package/bizar-dash/dist/assets/{Alert-CG5q_s75.js → Alert-Dg_Vwxh5.js} +1 -1
- package/bizar-dash/dist/assets/{Alert-CG5q_s75.js.map → Alert-Dg_Vwxh5.js.map} +1 -1
- package/bizar-dash/dist/assets/{ArtifactsView-DM8ZmpR9.js → ArtifactsView-CGclRNnz.js} +1 -1
- package/bizar-dash/dist/assets/{ArtifactsView-DM8ZmpR9.js.map → ArtifactsView-CGclRNnz.js.map} +1 -1
- package/bizar-dash/dist/assets/{AuthView-BveN94MC.js → AuthView-utVm6M3D.js} +1 -1
- package/bizar-dash/dist/assets/{AuthView-BveN94MC.js.map → AuthView-utVm6M3D.js.map} +1 -1
- package/bizar-dash/dist/assets/{Avatar-ulUPIYTd.js → Avatar-CXDZdKy4.js} +1 -1
- package/bizar-dash/dist/assets/{Avatar-ulUPIYTd.js.map → Avatar-CXDZdKy4.js.map} +1 -1
- package/bizar-dash/dist/assets/{BackgroundJobsView-BWErhqFo.js → BackgroundJobsView-j603pz6o.js} +1 -1
- package/bizar-dash/dist/assets/{BackgroundJobsView-BWErhqFo.js.map → BackgroundJobsView-j603pz6o.js.map} +1 -1
- package/bizar-dash/dist/assets/{BackupView-CnBjzG9N.js → BackupView-DgvnntTE.js} +1 -1
- package/bizar-dash/dist/assets/{BackupView-CnBjzG9N.js.map → BackupView-DgvnntTE.js.map} +1 -1
- package/bizar-dash/dist/assets/{Card-B0imhxMk.js → Card-D9019JOD.js} +1 -1
- package/bizar-dash/dist/assets/{Card-B0imhxMk.js.map → Card-D9019JOD.js.map} +1 -1
- package/bizar-dash/dist/assets/{ChatView-D6zGytzx.js → ChatView-C0cTgj5d.js} +1 -1
- package/bizar-dash/dist/assets/{ChatView-D6zGytzx.js.map → ChatView-C0cTgj5d.js.map} +1 -1
- package/bizar-dash/dist/assets/{Chip-wwZSGwLE.js → Chip-DQtalZ4y.js} +1 -1
- package/bizar-dash/dist/assets/{Chip-wwZSGwLE.js.map → Chip-DQtalZ4y.js.map} +1 -1
- package/bizar-dash/dist/assets/{ClaudeSessionsView-DK1sOLhi.js → ClaudeSessionsView-H3Bqjo6b.js} +1 -1
- package/bizar-dash/dist/assets/{ClaudeSessionsView-DK1sOLhi.js.map → ClaudeSessionsView-H3Bqjo6b.js.map} +1 -1
- package/bizar-dash/dist/assets/{ClipboardView-CZ2lYPr0.js → ClipboardView-BAguaKbx.js} +1 -1
- package/bizar-dash/dist/assets/{ClipboardView-CZ2lYPr0.js.map → ClipboardView-BAguaKbx.js.map} +1 -1
- package/bizar-dash/dist/assets/{ConfigView-D-zT9eNA.js → ConfigView-DWHJgoe8.js} +1 -1
- package/bizar-dash/dist/assets/{ConfigView-D-zT9eNA.js.map → ConfigView-DWHJgoe8.js.map} +1 -1
- package/bizar-dash/dist/assets/{DiagnosticsView-BocV68Lb.js → DiagnosticsView-oCT624hk.js} +1 -1
- package/bizar-dash/dist/assets/{DiagnosticsView-BocV68Lb.js.map → DiagnosticsView-oCT624hk.js.map} +1 -1
- package/bizar-dash/dist/assets/{DialogsView-BVjPI5x7.js → DialogsView-CqHNals_.js} +1 -1
- package/bizar-dash/dist/assets/{DialogsView-BVjPI5x7.js.map → DialogsView-CqHNals_.js.map} +1 -1
- package/bizar-dash/dist/assets/{DoctorView-84gJcZwM.js → DoctorView-6kfQq_Mx.js} +1 -1
- package/bizar-dash/dist/assets/{DoctorView-84gJcZwM.js.map → DoctorView-6kfQq_Mx.js.map} +1 -1
- package/bizar-dash/dist/assets/{EmptyState-BjgVOrcO.js → EmptyState-DLmtBX_6.js} +1 -1
- package/bizar-dash/dist/assets/{EmptyState-BjgVOrcO.js.map → EmptyState-DLmtBX_6.js.map} +1 -1
- package/bizar-dash/dist/assets/{EnvVarsView-BJ2TEzF7.js → EnvVarsView-DySOXlP1.js} +2 -2
- package/bizar-dash/dist/assets/{EnvVarsView-BJ2TEzF7.js.map → EnvVarsView-DySOXlP1.js.map} +1 -1
- package/bizar-dash/dist/assets/{ErrorState-BE3WBFqF.js → ErrorState-Bump8diE.js} +1 -1
- package/bizar-dash/dist/assets/{ErrorState-BE3WBFqF.js.map → ErrorState-Bump8diE.js.map} +1 -1
- package/bizar-dash/dist/assets/{EvalView-BJJ2P-kK.js → EvalView-FnZ5d93z.js} +1 -1
- package/bizar-dash/dist/assets/{EvalView-BJJ2P-kK.js.map → EvalView-FnZ5d93z.js.map} +1 -1
- package/bizar-dash/dist/assets/{GoalsView-pwROHApi.js → GoalsView-C4m1WnVv.js} +1 -1
- package/bizar-dash/dist/assets/{GoalsView-pwROHApi.js.map → GoalsView-C4m1WnVv.js.map} +1 -1
- package/bizar-dash/dist/assets/{Grid-qcvbhx6e.js → Grid-dEnoGGws.js} +1 -1
- package/bizar-dash/dist/assets/{Grid-qcvbhx6e.js.map → Grid-dEnoGGws.js.map} +1 -1
- package/bizar-dash/dist/assets/{HistoryView-C7SSOLJA.js → HistoryView-xdRybjZ2.js} +1 -1
- package/bizar-dash/dist/assets/{HistoryView-C7SSOLJA.js.map → HistoryView-xdRybjZ2.js.map} +1 -1
- package/bizar-dash/dist/assets/{Input-Bgzxf_Hu.js → Input-BSa3lh_-.js} +1 -1
- package/bizar-dash/dist/assets/{Input-Bgzxf_Hu.js.map → Input-BSa3lh_-.js.map} +1 -1
- package/bizar-dash/dist/assets/{LibrariesView-CbFFksox.js → LibrariesView-1zR04Eci.js} +1 -1
- package/bizar-dash/dist/assets/{LibrariesView-CbFFksox.js.map → LibrariesView-1zR04Eci.js.map} +1 -1
- package/bizar-dash/dist/assets/{LightRAGView-BqDrJbRq.js → LightRAGView-PubmA9oL.js} +1 -1
- package/bizar-dash/dist/assets/{LightRAGView-BqDrJbRq.js.map → LightRAGView-PubmA9oL.js.map} +1 -1
- package/bizar-dash/dist/assets/{ListHeader-TjPJrUfY.js → ListHeader-Ak9WJd39.js} +1 -1
- package/bizar-dash/dist/assets/{ListHeader-TjPJrUfY.js.map → ListHeader-Ak9WJd39.js.map} +1 -1
- package/bizar-dash/dist/assets/{MemoryView-BlTeHLhX.js → MemoryView-DBGpuETw.js} +1 -1
- package/bizar-dash/dist/assets/{MemoryView-BlTeHLhX.js.map → MemoryView-DBGpuETw.js.map} +1 -1
- package/bizar-dash/dist/assets/MiscView-DufqBHkX.js +1 -0
- package/bizar-dash/dist/assets/{MiscView-B8QY82Pm.js.map → MiscView-DufqBHkX.js.map} +1 -1
- package/bizar-dash/dist/assets/{ModsView-CvW1OWts.js → ModsView-DcX6eVU2.js} +2 -2
- package/bizar-dash/dist/assets/{ModsView-CvW1OWts.js.map → ModsView-DcX6eVU2.js.map} +1 -1
- package/bizar-dash/dist/assets/{NotificationsView-CsBt5U7x.js → NotificationsView-B8IhHRQC.js} +1 -1
- package/bizar-dash/dist/assets/{NotificationsView-CsBt5U7x.js.map → NotificationsView-B8IhHRQC.js.map} +1 -1
- package/bizar-dash/dist/assets/ObsidianView-DEuk65zS.js +1 -0
- package/bizar-dash/dist/assets/{ObsidianView-BCTejEj2.js.map → ObsidianView-DEuk65zS.js.map} +1 -1
- package/bizar-dash/dist/assets/{OverviewView-BsuPxwnB.js → OverviewView-CTI2spTd.js} +1 -1
- package/bizar-dash/dist/assets/{OverviewView-BsuPxwnB.js.map → OverviewView-CTI2spTd.js.map} +1 -1
- package/bizar-dash/dist/assets/{ProgressBar-DlZTETEn.js → ProgressBar-D3lkz42E.js} +1 -1
- package/bizar-dash/dist/assets/{ProgressBar-DlZTETEn.js.map → ProgressBar-D3lkz42E.js.map} +1 -1
- package/bizar-dash/dist/assets/{ProjectsView-Soxtmpet.js → ProjectsView-Du0LzE7A.js} +1 -1
- package/bizar-dash/dist/assets/{ProjectsView-Soxtmpet.js.map → ProjectsView-Du0LzE7A.js.map} +1 -1
- package/bizar-dash/dist/assets/{ProvidersView-DaCEV9pM.js → ProvidersView-5bCgXwBo.js} +1 -1
- package/bizar-dash/dist/assets/{ProvidersView-DaCEV9pM.js.map → ProvidersView-5bCgXwBo.js.map} +1 -1
- package/bizar-dash/dist/assets/{SchedulesView-DY2ByBj_.js → SchedulesView-DFHdIz5P.js} +1 -1
- package/bizar-dash/dist/assets/{SchedulesView-DY2ByBj_.js.map → SchedulesView-DFHdIz5P.js.map} +1 -1
- package/bizar-dash/dist/assets/{Select-Dbd88_n8.js → Select-C8EJj4NM.js} +1 -1
- package/bizar-dash/dist/assets/{Select-Dbd88_n8.js.map → Select-C8EJj4NM.js.map} +1 -1
- package/bizar-dash/dist/assets/{SettingsRow-CLMNd434.js → SettingsRow-BdOOmYMD.js} +1 -1
- package/bizar-dash/dist/assets/{SettingsRow-CLMNd434.js.map → SettingsRow-BdOOmYMD.js.map} +1 -1
- package/bizar-dash/dist/assets/{SettingsView-b24oFq9x.js → SettingsView-CqwQ6Knv.js} +1 -1
- package/bizar-dash/dist/assets/{SettingsView-b24oFq9x.js.map → SettingsView-CqwQ6Knv.js.map} +1 -1
- package/bizar-dash/dist/assets/{Sheet-DnDid58j.js → Sheet-Cztsvgse.js} +1 -1
- package/bizar-dash/dist/assets/{Sheet-DnDid58j.js.map → Sheet-Cztsvgse.js.map} +1 -1
- package/bizar-dash/dist/assets/{Slider-BJCvKI1I.js → Slider-BexNfF6K.js} +1 -1
- package/bizar-dash/dist/assets/{Slider-BJCvKI1I.js.map → Slider-BexNfF6K.js.map} +1 -1
- package/bizar-dash/dist/assets/{Sparkline-ktqQLdyb.js → Sparkline-CLZBtvsN.js} +1 -1
- package/bizar-dash/dist/assets/{Sparkline-ktqQLdyb.js.map → Sparkline-CLZBtvsN.js.map} +1 -1
- package/bizar-dash/dist/assets/{Switch-CwXfsDii.js → Switch-B1tiRwNK.js} +1 -1
- package/bizar-dash/dist/assets/{Switch-CwXfsDii.js.map → Switch-B1tiRwNK.js.map} +1 -1
- package/bizar-dash/dist/assets/{TasksView-BHmpzFCf.js → TasksView-CT0fPlos.js} +1 -1
- package/bizar-dash/dist/assets/{TasksView-BHmpzFCf.js.map → TasksView-CT0fPlos.js.map} +1 -1
- package/bizar-dash/dist/assets/{Textarea-BzIAwSlp.js → Textarea-D_TPpVMy.js} +1 -1
- package/bizar-dash/dist/assets/{Textarea-BzIAwSlp.js.map → Textarea-D_TPpVMy.js.map} +1 -1
- package/bizar-dash/dist/assets/{UpdateView-CSmX9NN0.js → UpdateView-tD2q2OhW.js} +1 -1
- package/bizar-dash/dist/assets/{UpdateView-CSmX9NN0.js.map → UpdateView-tD2q2OhW.js.map} +1 -1
- package/bizar-dash/dist/assets/{UsageView-COyr_Gfi.js → UsageView-B4BuAFKA.js} +1 -1
- package/bizar-dash/dist/assets/{UsageView-COyr_Gfi.js.map → UsageView-B4BuAFKA.js.map} +1 -1
- package/bizar-dash/dist/assets/{ViewHeader-BzYZ3m-e.js → ViewHeader-V_SzbUpw.js} +1 -1
- package/bizar-dash/dist/assets/{ViewHeader-BzYZ3m-e.js.map → ViewHeader-V_SzbUpw.js.map} +1 -1
- package/bizar-dash/dist/assets/{VoiceView-D33_xG5t.js → VoiceView-D3vb5OM2.js} +1 -1
- package/bizar-dash/dist/assets/{VoiceView-D33_xG5t.js.map → VoiceView-D3vb5OM2.js.map} +1 -1
- package/bizar-dash/dist/assets/{brain-CM-Vls8r.js → brain-BmfWcitQ.js} +1 -1
- package/bizar-dash/dist/assets/{brain-CM-Vls8r.js.map → brain-BmfWcitQ.js.map} +1 -1
- package/bizar-dash/dist/assets/{calendar-C0lgZk69.js → calendar-VntJUzFB.js} +1 -1
- package/bizar-dash/dist/assets/{calendar-C0lgZk69.js.map → calendar-VntJUzFB.js.map} +1 -1
- package/bizar-dash/dist/assets/{circle-Bx_hQEBC.js → circle-KrQQySeK.js} +1 -1
- package/bizar-dash/dist/assets/{circle-Bx_hQEBC.js.map → circle-KrQQySeK.js.map} +1 -1
- package/bizar-dash/dist/assets/{circle-alert-DHvsqpw5.js → circle-alert-CQ9MLygI.js} +1 -1
- package/bizar-dash/dist/assets/{circle-alert-DHvsqpw5.js.map → circle-alert-CQ9MLygI.js.map} +1 -1
- package/bizar-dash/dist/assets/{circle-check-Bx8wmXR9.js → circle-check-COtVgsWw.js} +1 -1
- package/bizar-dash/dist/assets/{circle-check-Bx8wmXR9.js.map → circle-check-COtVgsWw.js.map} +1 -1
- package/bizar-dash/dist/assets/{clock-CejGoecX.js → clock-C0GlM4qp.js} +1 -1
- package/bizar-dash/dist/assets/{clock-CejGoecX.js.map → clock-C0GlM4qp.js.map} +1 -1
- package/bizar-dash/dist/assets/{download-4cEUWue1.js → download-CW4DmtRe.js} +1 -1
- package/bizar-dash/dist/assets/{download-4cEUWue1.js.map → download-CW4DmtRe.js.map} +1 -1
- package/bizar-dash/dist/assets/{external-link-0NqUhI4i.js → external-link-CAOnh_DH.js} +1 -1
- package/bizar-dash/dist/assets/{external-link-0NqUhI4i.js.map → external-link-CAOnh_DH.js.map} +1 -1
- package/bizar-dash/dist/assets/{file-text-yEMkrSoZ.js → file-text-CS1jB_oV.js} +1 -1
- package/bizar-dash/dist/assets/{file-text-yEMkrSoZ.js.map → file-text-CS1jB_oV.js.map} +1 -1
- package/bizar-dash/dist/assets/{filter-BXt60zAS.js → filter-DyQbml3L.js} +1 -1
- package/bizar-dash/dist/assets/{filter-BXt60zAS.js.map → filter-DyQbml3L.js.map} +1 -1
- package/bizar-dash/dist/assets/{git-pull-request-BjG5lNtR.js → git-pull-request-Co6gYfba.js} +1 -1
- package/bizar-dash/dist/assets/{git-pull-request-BjG5lNtR.js.map → git-pull-request-Co6gYfba.js.map} +1 -1
- package/bizar-dash/dist/assets/{main-CokHAXWM.js → main-CyAIirBB.js} +28 -33
- package/bizar-dash/dist/assets/main-CyAIirBB.js.map +1 -0
- package/bizar-dash/dist/assets/network-CDn43Gsj.js +6 -0
- package/bizar-dash/dist/assets/network-CDn43Gsj.js.map +1 -0
- package/bizar-dash/dist/assets/{pause-CAmulU0F.js → pause-CKYjSTGX.js} +1 -1
- package/bizar-dash/dist/assets/{pause-CAmulU0F.js.map → pause-CKYjSTGX.js.map} +1 -1
- package/bizar-dash/dist/assets/{pencil-eq5IqBmU.js → pencil-BUJ2DpWs.js} +1 -1
- package/bizar-dash/dist/assets/{pencil-eq5IqBmU.js.map → pencil-BUJ2DpWs.js.map} +1 -1
- package/bizar-dash/dist/assets/{play-BoLrrcBA.js → play-CGxZWqtW.js} +1 -1
- package/bizar-dash/dist/assets/{play-BoLrrcBA.js.map → play-CGxZWqtW.js.map} +1 -1
- package/bizar-dash/dist/assets/{plug-DBrVM9lK.js → plug-CQYGgGSy.js} +1 -1
- package/bizar-dash/dist/assets/{plug-DBrVM9lK.js.map → plug-CQYGgGSy.js.map} +1 -1
- package/bizar-dash/dist/assets/{plus-DENm0hqV.js → plus-fFxt-8z5.js} +1 -1
- package/bizar-dash/dist/assets/{plus-DENm0hqV.js.map → plus-fFxt-8z5.js.map} +1 -1
- package/bizar-dash/dist/assets/{power-DLjXF7zE.js → power-Cjgy2KsI.js} +1 -1
- package/bizar-dash/dist/assets/{power-DLjXF7zE.js.map → power-Cjgy2KsI.js.map} +1 -1
- package/bizar-dash/dist/assets/{power-off-D47cOnG_.js → power-off-B81hLRah.js} +1 -1
- package/bizar-dash/dist/assets/{power-off-D47cOnG_.js.map → power-off-B81hLRah.js.map} +1 -1
- package/bizar-dash/dist/assets/{refresh-ccw-DNrXX9gB.js → refresh-ccw-BCXx86xp.js} +1 -1
- package/bizar-dash/dist/assets/{refresh-ccw-DNrXX9gB.js.map → refresh-ccw-BCXx86xp.js.map} +1 -1
- package/bizar-dash/dist/assets/{refresh-cw-CoAHDpeS.js → refresh-cw-COTg1nZo.js} +1 -1
- package/bizar-dash/dist/assets/{refresh-cw-CoAHDpeS.js.map → refresh-cw-COTg1nZo.js.map} +1 -1
- package/bizar-dash/dist/assets/{rotate-ccw-ObX5awaG.js → rotate-ccw-BZrEVc0Z.js} +1 -1
- package/bizar-dash/dist/assets/{rotate-ccw-ObX5awaG.js.map → rotate-ccw-BZrEVc0Z.js.map} +1 -1
- package/bizar-dash/dist/assets/{rotate-cw-xpPJw9LP.js → rotate-cw-CsTtaLV2.js} +1 -1
- package/bizar-dash/dist/assets/{rotate-cw-xpPJw9LP.js.map → rotate-cw-CsTtaLV2.js.map} +1 -1
- package/bizar-dash/dist/assets/{save-D1iKiJJl.js → save-DtMTge1F.js} +1 -1
- package/bizar-dash/dist/assets/{save-D1iKiJJl.js.map → save-DtMTge1F.js.map} +1 -1
- package/bizar-dash/dist/assets/{send-BRcAhZUm.js → send-DyBhyk8t.js} +1 -1
- package/bizar-dash/dist/assets/{send-BRcAhZUm.js.map → send-DyBhyk8t.js.map} +1 -1
- package/bizar-dash/dist/assets/{shield-alert-C6vEcK-g.js → shield-alert-BPGJlRF8.js} +1 -1
- package/bizar-dash/dist/assets/{shield-alert-C6vEcK-g.js.map → shield-alert-BPGJlRF8.js.map} +1 -1
- package/bizar-dash/dist/assets/{trash-2-DZDjEnNh.js → trash-2-2NsyTU8c.js} +1 -1
- package/bizar-dash/dist/assets/{trash-2-DZDjEnNh.js.map → trash-2-2NsyTU8c.js.map} +1 -1
- package/bizar-dash/dist/assets/{trending-up-DMj-AJVf.js → trending-up-BXwP23VK.js} +1 -1
- package/bizar-dash/dist/assets/{trending-up-DMj-AJVf.js.map → trending-up-BXwP23VK.js.map} +1 -1
- package/bizar-dash/dist/assets/{triangle-alert-_2xe_tl4.js → triangle-alert-DFmQ_RXN.js} +1 -1
- package/bizar-dash/dist/assets/{triangle-alert-_2xe_tl4.js.map → triangle-alert-DFmQ_RXN.js.map} +1 -1
- package/bizar-dash/dist/assets/{upload-DdDljAeV.js → upload-Cj-HYRYV.js} +1 -1
- package/bizar-dash/dist/assets/{upload-DdDljAeV.js.map → upload-Cj-HYRYV.js.map} +1 -1
- package/bizar-dash/dist/assets/{zap-mHsgh0FP.js → zap-BaOiybcl.js} +1 -1
- package/bizar-dash/dist/assets/{zap-mHsgh0FP.js.map → zap-BaOiybcl.js.map} +1 -1
- package/bizar-dash/dist/index.html +1 -1
- package/bizar-dash/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
- package/bizar-dash/src/server/routes/update.mjs +48 -21
- package/bizar-dash/src/web/v8/App.tsx +0 -4
- package/bizar-dash/src/web/v8/__tests__/new-views.test.tsx +0 -17
- package/bizar-dash/src/web/v8/shell/Sidebar.tsx +0 -1
- package/bizar-dash/src/web/v8/views/Router.tsx +0 -5
- package/bizar-dash/tests/_update-test-helpers.mjs +13 -0
- package/bizar-dash/tests/update-check.test.mjs +18 -13
- package/bizar-dash/tests/update-packages.test.mjs +154 -0
- package/bizar-dash/tests/update-run.test.mjs +17 -80
- package/cli/banner.mjs +1 -1
- package/cli/bin.mjs +8 -1
- package/cli/bootstrap.mjs +1 -1
- package/cli/commands/claude-cmd.mjs +1 -1
- package/cli/commands/deploy/docker.mjs +0 -3
- package/cli/install/banner.mjs +67 -0
- package/cli/install/banner.test.mjs +39 -0
- package/cli/install/index.mjs +32 -0
- package/cli/install/index.test.mjs +61 -0
- package/cli/install/paths.mjs +80 -0
- package/cli/install/paths.test.mjs +77 -0
- package/cli/install/plugin.mjs +161 -0
- package/cli/install/postinstall.mjs +111 -0
- package/cli/install.mjs +13 -600
- package/cli/migrate.mjs +157 -0
- package/cli/migrate.test.mjs +85 -0
- package/cli/provision.mjs +615 -1918
- package/cli/provision.test.mjs +1 -1
- package/cli/service-controller.test.mjs +0 -1
- package/cli/service-env.mjs +0 -1
- package/cli/utils.mjs +0 -1
- package/install.sh +54 -466
- package/package.json +1 -1
- package/packages/sdk/package.json +1 -1
- package/scripts/install-curl.sh +17 -0
- package/bizar-dash/dist/assets/HeadroomView-D1UiTYbt.js +0 -11
- package/bizar-dash/dist/assets/HeadroomView-D1UiTYbt.js.map +0 -1
- package/bizar-dash/dist/assets/MiscView-B8QY82Pm.js +0 -1
- package/bizar-dash/dist/assets/ObsidianView-BCTejEj2.js +0 -1
- package/bizar-dash/dist/assets/main-CokHAXWM.js.map +0 -1
- package/bizar-dash/skills/headroom/SKILL.md +0 -94
- package/bizar-dash/src/server/headroom.mjs +0 -649
- package/bizar-dash/src/server/routes/headroom.mjs +0 -126
- package/bizar-dash/src/web/v8/views/Headroom/HeadroomView.tsx +0 -201
- package/bizar-dash/tests/graphify-mod-spawn.node.test.mjs +0 -90
- package/bizar-dash/tests/headroom-install.test.mjs +0 -173
- package/bizar-dash/tests/headroom-settings.test.mjs +0 -126
- package/bizar-dash/tests/headroom-status.test.mjs +0 -117
- package/bizar-dash/tests/v7-archive/mobile-overview.test.tsx +0 -214
- package/bizar-dash/tests/v7-archive/mobile-settings.test.tsx +0 -181
- package/bizar-dash/tests/v7-archive/navigation/CommandPalette.test.tsx +0 -105
- package/bizar-dash/tests/v7-archive/settings-nav.test.tsx +0 -128
- package/bizar-dash/tests/v7-archive/views/Overview.test.tsx +0 -413
- package/cli/commands/headroom.mjs +0 -204
- package/cli/provision-claude.mjs +0 -1176
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider-BJCvKI1I.js","sources":["../../../node_modules/@radix-ui/react-slider/dist/index.mjs","../../src/web/v8/ui/controls/Slider.tsx"],"sourcesContent":["\"use client\";\n\n// src/slider.tsx\nimport * as React from \"react\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar PAGE_KEYS = [\"PageUp\", \"PageDown\"];\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar BACK_KEYS = {\n \"from-left\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-right\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowRight\"],\n \"from-bottom\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-top\": [\"Home\", \"PageDown\", \"ArrowUp\", \"ArrowLeft\"]\n};\nvar SLIDER_NAME = \"Slider\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SLIDER_NAME);\nvar [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope\n]);\nvar [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME);\nvar Slider = React.forwardRef(\n (props, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = \"horizontal\",\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {\n },\n onValueCommit = () => {\n },\n inverted = false,\n form,\n ...sliderProps\n } = props;\n const thumbRefs = React.useRef(/* @__PURE__ */ new Set());\n const valueIndexToChangeRef = React.useRef(0);\n const isKeyboardInteractionRef = React.useRef(false);\n const isHorizontal = orientation === \"horizontal\";\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n const [control, setControl] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value2) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus({\n preventScroll: true,\n focusVisible: isKeyboardInteractionRef.current\n });\n isKeyboardInteractionRef.current = false;\n onValueChange(value2);\n }\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n const initialValuesRef = React.useRef(values);\n React.useEffect(() => {\n const associatedForm = form ? control?.ownerDocument.getElementById(form) : control?.closest(\"form\");\n if (associatedForm instanceof HTMLFormElement) {\n const reset = () => setValues(initialValuesRef.current);\n associatedForm.addEventListener(\"reset\", reset);\n return () => associatedForm.removeEventListener(\"reset\", reset);\n }\n }, [control, form, setValues]);\n function handleSlideStart(value2) {\n const closestIndex = getClosestValueIndex(values, value2);\n updateValues(value2, closestIndex);\n }\n function handleSlideMove(value2) {\n updateValues(value2, valueIndexToChangeRef.current);\n }\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n function updateValues(value2, atIndex, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value2 - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else {\n return prevValues;\n }\n });\n }\n return /* @__PURE__ */ jsx(\n SliderProvider,\n {\n scope: props.__scopeSlider,\n name,\n disabled,\n min,\n max,\n valueIndexToChangeRef,\n thumbs: thumbRefs.current,\n values,\n orientation,\n form,\n children: /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n SliderOrientation,\n {\n \"aria-disabled\": disabled,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...sliderProps,\n ref: composedRefs,\n onPointerDown: composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) {\n valuesBeforeSlideStartRef.current = values;\n isKeyboardInteractionRef.current = false;\n }\n }),\n min,\n max,\n inverted,\n onSlideStart: disabled ? void 0 : handleSlideStart,\n onSlideMove: disabled ? void 0 : handleSlideMove,\n onSlideEnd: disabled ? void 0 : handleSlideEnd,\n onHomeKeyDown: () => {\n if (!disabled) {\n isKeyboardInteractionRef.current = true;\n updateValues(min, 0, { commit: true });\n }\n },\n onEndKeyDown: () => {\n if (!disabled) {\n isKeyboardInteractionRef.current = true;\n updateValues(max, values.length - 1, { commit: true });\n }\n },\n onStepKeyDown: ({ event, direction: stepDirection }) => {\n if (!disabled) {\n isKeyboardInteractionRef.current = true;\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || event.shiftKey && ARROW_KEYS.includes(event.key);\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value2 = values[atIndex];\n const nextValue = getNextStepValue(value2, {\n min,\n step,\n direction: stepDirection,\n multiplier\n });\n updateValues(nextValue, atIndex, { commit: true });\n }\n }\n }\n ) }) })\n }\n );\n }\n);\nSlider.displayName = SLIDER_NAME;\nvar [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {\n startEdge: \"left\",\n endEdge: \"right\",\n size: \"width\",\n direction: 1\n});\nvar SliderHorizontal = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n dir,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, setSlider);\n const rectRef = React.useRef(void 0);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || slider.getBoundingClientRect();\n const input = [0, rect.width];\n const output = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromLeft ? \"left\" : \"right\",\n endEdge: isSlidingFromLeft ? \"right\" : \"left\",\n direction: isSlidingFromLeft ? 1 : -1,\n size: \"width\",\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n dir: direction,\n \"data-orientation\": \"horizontal\",\n ...sliderProps,\n ref: composedRefs,\n style: {\n ...sliderProps.style,\n \"--radix-slider-thumb-transform\": \"translateX(-50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromLeft ? \"from-left\" : \"from-right\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderVertical = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const sliderRef = React.useRef(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef(void 0);\n const isSlidingFromBottom = !inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || sliderRef.current.getBoundingClientRect();\n const input = [0, rect.height];\n const output = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromBottom ? \"bottom\" : \"top\",\n endEdge: isSlidingFromBottom ? \"top\" : \"bottom\",\n size: \"height\",\n direction: isSlidingFromBottom ? 1 : -1,\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n \"data-orientation\": \"vertical\",\n ...sliderProps,\n ref,\n style: {\n ...sliderProps.style,\n \"--radix-slider-thumb-transform\": \"translateY(50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromBottom ? \"from-bottom\" : \"from-top\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...sliderProps,\n ref: forwardedRef,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Home\") {\n onHomeKeyDown(event);\n event.preventDefault();\n } else if (event.key === \"End\") {\n onEndKeyDown(event);\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n event.preventDefault();\n }\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target;\n target.setPointerCapture(event.pointerId);\n event.preventDefault();\n if (context.thumbs.has(target)) {\n target.focus({ preventScroll: true, focusVisible: false });\n } else {\n onSlideStart(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })\n }\n );\n }\n);\nvar TRACK_NAME = \"SliderTrack\";\nvar SliderTrack = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-disabled\": context.disabled ? \"\" : void 0,\n \"data-orientation\": context.orientation,\n ...trackProps,\n ref: forwardedRef\n }\n );\n }\n);\nSliderTrack.displayName = TRACK_NAME;\nvar RANGE_NAME = \"SliderRange\";\nvar SliderRange = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map(\n (value) => convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...rangeProps,\n ref: composedRefs,\n style: {\n ...props.style,\n [orientation.startEdge]: offsetStart + \"%\",\n [orientation.endEdge]: offsetEnd + \"%\"\n }\n }\n );\n }\n);\nSliderRange.displayName = RANGE_NAME;\nvar THUMB_NAME = \"SliderThumb\";\nvar [SliderThumbContextProvider, useSliderThumbContext] = createSliderContext(THUMB_NAME);\nvar THUMB_PROVIDER_NAME = \"SliderThumbProvider\";\nfunction SliderThumbProvider(props) {\n const {\n __scopeSlider,\n name,\n children,\n // @ts-expect-error internal render prop\n internal_do_not_use_render\n } = props;\n const context = useSliderContext(THUMB_PROVIDER_NAME, __scopeSlider);\n const getItems = useCollection(__scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const index = React.useMemo(\n () => thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1,\n [getItems, thumb]\n );\n const size = useSize(thumb);\n const isFormControl = thumb ? !!context.form || !!thumb.closest(\"form\") : true;\n const value = context.values[index];\n const resolvedName = name ?? (context.name ? context.name + (context.values.length > 1 ? \"[]\" : \"\") : void 0);\n const percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max);\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n const thumbContext = {\n value,\n name: resolvedName,\n form: context.form,\n isFormControl,\n index,\n thumb,\n onThumbChange: setThumb,\n percent,\n size\n };\n return /* @__PURE__ */ jsx(SliderThumbContextProvider, { scope: __scopeSlider, ...thumbContext, children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(thumbContext) : children });\n}\nSliderThumbProvider.displayName = THUMB_PROVIDER_NAME;\nvar THUMB_TRIGGER_NAME = \"SliderThumbTrigger\";\nvar SliderThumbTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...thumbProps } = props;\n const context = useSliderContext(THUMB_TRIGGER_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_TRIGGER_NAME, __scopeSlider);\n const { index, value, percent, size, onThumbChange } = useSliderThumbContext(\n THUMB_TRIGGER_NAME,\n __scopeSlider\n );\n const composedRefs = useComposedRefs(forwardedRef, onThumbChange);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction) : 0;\n return /* @__PURE__ */ jsx(\n \"span\",\n {\n style: {\n transform: \"var(--radix-slider-thumb-transform)\",\n position: \"absolute\",\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`\n },\n children: /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: __scopeSlider, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n role: \"slider\",\n \"aria-label\": props[\"aria-label\"] || label,\n \"aria-valuemin\": context.min,\n \"aria-valuenow\": value,\n \"aria-valuemax\": context.max,\n \"aria-orientation\": context.orientation,\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n tabIndex: context.disabled ? void 0 : 0,\n ...thumbProps,\n ref: composedRefs,\n style: value === void 0 ? { display: \"none\" } : props.style,\n onFocus: composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })\n }\n ) })\n }\n );\n }\n);\nSliderThumbTrigger.displayName = THUMB_TRIGGER_NAME;\nvar SliderThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, name, ...thumbProps } = props;\n return /* @__PURE__ */ jsx(\n SliderThumbProvider,\n {\n __scopeSlider,\n name,\n internal_do_not_use_render: ({ index, isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n SliderThumbTrigger,\n {\n ...thumbProps,\n ref: forwardedRef,\n __scopeSlider\n }\n ),\n isFormControl ? /* @__PURE__ */ jsx(\n SliderBubbleInput,\n {\n __scopeSlider\n },\n index\n ) : null\n ] })\n }\n );\n }\n);\nSliderThumb.displayName = THUMB_NAME;\nvar BUBBLE_INPUT_NAME = \"SliderBubbleInput\";\nvar SliderBubbleInput = React.forwardRef(\n ({ __scopeSlider, ...props }, forwardedRef) => {\n const { value, name, form } = useSliderThumbContext(BUBBLE_INPUT_NAME, __scopeSlider);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"value\");\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"input\", { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n style: { display: \"none\" },\n name,\n form,\n ...props,\n ref: composedRefs,\n defaultValue: value\n }\n );\n }\n);\nSliderBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getNextSortedValues(prevValues = [], nextValue, atIndex) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\nfunction convertValueToPercentage(value, min, max) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\nfunction getLabel(index, totalValues) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return [\"Minimum\", \"Maximum\"][index];\n } else {\n return void 0;\n }\n}\nfunction getClosestValueIndex(values, nextValue) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\nfunction getThumbInBoundsOffset(width, left, direction) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\nfunction getStepsBetweenValues(values) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\nfunction hasMinStepsBetweenValues(values, minStepsBetweenValues) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction getDecimalCount(value) {\n if (!Number.isFinite(value)) return 0;\n const str = value.toString();\n if (str.includes(\"e\")) {\n const [coefficient, exponent] = str.split(\"e\");\n const decimalPart2 = coefficient.split(\".\")[1] || \"\";\n const exponentNum = Number(exponent);\n return Math.max(0, decimalPart2.length - exponentNum);\n }\n const decimalPart = str.split(\".\")[1];\n return decimalPart ? decimalPart.length : 0;\n}\nfunction roundValue(value, decimalCount) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\nfunction getNextStepValue(value, {\n min,\n step,\n direction,\n multiplier\n}) {\n const decimalCount = getDecimalCount(step);\n const stepsFromMin = (value - min) / step;\n const nearestSteps = Math.round(stepsFromMin);\n const isAligned = roundValue(nearestSteps * step + min, decimalCount) === roundValue(value, decimalCount);\n let nextSteps;\n if (isAligned) {\n nextSteps = nearestSteps + multiplier * direction;\n } else if (direction > 0) {\n nextSteps = Math.ceil(stepsFromMin);\n } else {\n nextSteps = Math.floor(stepsFromMin);\n }\n return roundValue(nextSteps * step + min, decimalCount);\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nexport {\n SliderRange as Range,\n Slider as Root,\n Slider,\n SliderRange,\n SliderThumb,\n SliderTrack,\n SliderThumb as Thumb,\n SliderTrack as Track,\n createSliderScope,\n SliderBubbleInput as unstable_BubbleInput,\n SliderBubbleInput as unstable_SliderBubbleInput,\n SliderThumbProvider as unstable_SliderThumbProvider,\n SliderThumbTrigger as unstable_SliderThumbTrigger,\n SliderThumbProvider as unstable_ThumbProvider,\n SliderThumbTrigger as unstable_ThumbTrigger\n};\n//# sourceMappingURL=index.mjs.map\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport * as RxSlider from '@radix-ui/react-slider';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Slider — single or range numeric input.\n *\n * Built on Radix Slider for keyboard arrow + home/end handling.\n */\nexport type SliderProps = ComponentPropsWithoutRef<typeof RxSlider.Root>;\n\nexport const Slider = forwardRef<HTMLSpanElement, SliderProps>(function Slider(props, ref) {\n const { className, ...rest } = props;\n return (\n <RxSlider.Root\n ref={ref}\n className={cx('v8-slider', className)}\n style={{\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n userSelect: 'none',\n touchAction: 'none',\n width: '100%',\n height: 20,\n }}\n {...rest}\n >\n <RxSlider.Track\n style={{\n background: 'var(--surface-2)',\n position: 'relative',\n flexGrow: 1,\n borderRadius: 'var(--radius-pill)',\n height: 4,\n }}\n >\n <RxSlider.Range\n style={{\n position: 'absolute',\n background: 'var(--accent)',\n borderRadius: 'var(--radius-pill)',\n height: '100%',\n }}\n />\n </RxSlider.Track>\n {(Array.isArray(props.value ?? props.defaultValue)\n ? (props.value ?? props.defaultValue ?? [])\n : [props.value ?? props.defaultValue ?? 0]\n ).map((_, i) => (\n <RxSlider.Thumb\n key={i}\n aria-label={props['aria-label'] ?? `Thumb ${i + 1}`}\n style={{\n display: 'block',\n width: 14,\n height: 14,\n background: 'var(--fg)',\n border: '2px solid var(--accent)',\n borderRadius: 'var(--radius-pill)',\n cursor: 'grab',\n boxShadow: 'var(--shadow-1)',\n }}\n />\n ))}\n </RxSlider.Root>\n );\n});"],"names":["PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createCollection","createSliderContext","createContextScope","SliderProvider","useSliderContext","Slider","React.forwardRef","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","onValueCommit","inverted","form","sliderProps","thumbRefs","React.useRef","valueIndexToChangeRef","isKeyboardInteractionRef","SliderOrientation","SliderHorizontal","SliderVertical","control","setControl","React.useState","composedRefs","useComposedRefs","values","setValues","useControllableState","value2","_a","valuesBeforeSlideStartRef","initialValuesRef","React.useEffect","associatedForm","reset","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","handleSlideEnd","prevValue","atIndex","commit","decimalCount","getDecimalCount","snapToStep","roundValue","nextValue","clamp","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","hasChanged","jsx","composeEventHandlers","event","stepDirection","multiplier","getNextStepValue","SliderOrientationProvider","useSliderOrientationContext","dir","onSlideStart","onSlideMove","onSlideEnd","onStepKeyDown","slider","setSlider","rectRef","direction","useDirection","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","input","linearScale","SliderImpl","isBackKey","sliderRef","ref","isSlidingFromBottom","__scopeSlider","onHomeKeyDown","onEndKeyDown","context","Primitive","target","TRACK_NAME","SliderTrack","trackProps","RANGE_NAME","SliderRange","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","SliderThumbContextProvider","useSliderThumbContext","THUMB_PROVIDER_NAME","SliderThumbProvider","children","internal_do_not_use_render","getItems","thumb","setThumb","index","React.useMemo","item","size","useSize","isFormControl","resolvedName","percent","thumbContext","isFunction","THUMB_TRIGGER_NAME","SliderThumbTrigger","thumbProps","onThumbChange","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","SliderThumb","jsxs","Fragment","SliderBubbleInput","BUBBLE_INPUT_NAME","usePrevious","inputProto","setValue","a","b","percentage","totalValues","distances","closestDistance","width","left","halfWidth","offset","getStepsBetweenValues","minStepsBetweenValues","stepsBetweenValues","output","ratio","str","coefficient","exponent","decimalPart2","exponentNum","decimalPart","rounder","stepsFromMin","nearestSteps","isAligned","nextSteps","forwardRef","className","rest","RxSlider.Root","cx","RxSlider.Track","RxSlider.Range","_","i","RxSlider.Thumb"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"Slider-BexNfF6K.js","sources":["../../../node_modules/@radix-ui/react-slider/dist/index.mjs","../../src/web/v8/ui/controls/Slider.tsx"],"sourcesContent":["\"use client\";\n\n// src/slider.tsx\nimport * as React from \"react\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar PAGE_KEYS = [\"PageUp\", \"PageDown\"];\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar BACK_KEYS = {\n \"from-left\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-right\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowRight\"],\n \"from-bottom\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-top\": [\"Home\", \"PageDown\", \"ArrowUp\", \"ArrowLeft\"]\n};\nvar SLIDER_NAME = \"Slider\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SLIDER_NAME);\nvar [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope\n]);\nvar [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME);\nvar Slider = React.forwardRef(\n (props, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = \"horizontal\",\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {\n },\n onValueCommit = () => {\n },\n inverted = false,\n form,\n ...sliderProps\n } = props;\n const thumbRefs = React.useRef(/* @__PURE__ */ new Set());\n const valueIndexToChangeRef = React.useRef(0);\n const isKeyboardInteractionRef = React.useRef(false);\n const isHorizontal = orientation === \"horizontal\";\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n const [control, setControl] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value2) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus({\n preventScroll: true,\n focusVisible: isKeyboardInteractionRef.current\n });\n isKeyboardInteractionRef.current = false;\n onValueChange(value2);\n }\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n const initialValuesRef = React.useRef(values);\n React.useEffect(() => {\n const associatedForm = form ? control?.ownerDocument.getElementById(form) : control?.closest(\"form\");\n if (associatedForm instanceof HTMLFormElement) {\n const reset = () => setValues(initialValuesRef.current);\n associatedForm.addEventListener(\"reset\", reset);\n return () => associatedForm.removeEventListener(\"reset\", reset);\n }\n }, [control, form, setValues]);\n function handleSlideStart(value2) {\n const closestIndex = getClosestValueIndex(values, value2);\n updateValues(value2, closestIndex);\n }\n function handleSlideMove(value2) {\n updateValues(value2, valueIndexToChangeRef.current);\n }\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n function updateValues(value2, atIndex, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value2 - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else {\n return prevValues;\n }\n });\n }\n return /* @__PURE__ */ jsx(\n SliderProvider,\n {\n scope: props.__scopeSlider,\n name,\n disabled,\n min,\n max,\n valueIndexToChangeRef,\n thumbs: thumbRefs.current,\n values,\n orientation,\n form,\n children: /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n SliderOrientation,\n {\n \"aria-disabled\": disabled,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...sliderProps,\n ref: composedRefs,\n onPointerDown: composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) {\n valuesBeforeSlideStartRef.current = values;\n isKeyboardInteractionRef.current = false;\n }\n }),\n min,\n max,\n inverted,\n onSlideStart: disabled ? void 0 : handleSlideStart,\n onSlideMove: disabled ? void 0 : handleSlideMove,\n onSlideEnd: disabled ? void 0 : handleSlideEnd,\n onHomeKeyDown: () => {\n if (!disabled) {\n isKeyboardInteractionRef.current = true;\n updateValues(min, 0, { commit: true });\n }\n },\n onEndKeyDown: () => {\n if (!disabled) {\n isKeyboardInteractionRef.current = true;\n updateValues(max, values.length - 1, { commit: true });\n }\n },\n onStepKeyDown: ({ event, direction: stepDirection }) => {\n if (!disabled) {\n isKeyboardInteractionRef.current = true;\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || event.shiftKey && ARROW_KEYS.includes(event.key);\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value2 = values[atIndex];\n const nextValue = getNextStepValue(value2, {\n min,\n step,\n direction: stepDirection,\n multiplier\n });\n updateValues(nextValue, atIndex, { commit: true });\n }\n }\n }\n ) }) })\n }\n );\n }\n);\nSlider.displayName = SLIDER_NAME;\nvar [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {\n startEdge: \"left\",\n endEdge: \"right\",\n size: \"width\",\n direction: 1\n});\nvar SliderHorizontal = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n dir,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, setSlider);\n const rectRef = React.useRef(void 0);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || slider.getBoundingClientRect();\n const input = [0, rect.width];\n const output = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromLeft ? \"left\" : \"right\",\n endEdge: isSlidingFromLeft ? \"right\" : \"left\",\n direction: isSlidingFromLeft ? 1 : -1,\n size: \"width\",\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n dir: direction,\n \"data-orientation\": \"horizontal\",\n ...sliderProps,\n ref: composedRefs,\n style: {\n ...sliderProps.style,\n \"--radix-slider-thumb-transform\": \"translateX(-50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromLeft ? \"from-left\" : \"from-right\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderVertical = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const sliderRef = React.useRef(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef(void 0);\n const isSlidingFromBottom = !inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || sliderRef.current.getBoundingClientRect();\n const input = [0, rect.height];\n const output = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromBottom ? \"bottom\" : \"top\",\n endEdge: isSlidingFromBottom ? \"top\" : \"bottom\",\n size: \"height\",\n direction: isSlidingFromBottom ? 1 : -1,\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n \"data-orientation\": \"vertical\",\n ...sliderProps,\n ref,\n style: {\n ...sliderProps.style,\n \"--radix-slider-thumb-transform\": \"translateY(50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromBottom ? \"from-bottom\" : \"from-top\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...sliderProps,\n ref: forwardedRef,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Home\") {\n onHomeKeyDown(event);\n event.preventDefault();\n } else if (event.key === \"End\") {\n onEndKeyDown(event);\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n event.preventDefault();\n }\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target;\n target.setPointerCapture(event.pointerId);\n event.preventDefault();\n if (context.thumbs.has(target)) {\n target.focus({ preventScroll: true, focusVisible: false });\n } else {\n onSlideStart(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })\n }\n );\n }\n);\nvar TRACK_NAME = \"SliderTrack\";\nvar SliderTrack = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-disabled\": context.disabled ? \"\" : void 0,\n \"data-orientation\": context.orientation,\n ...trackProps,\n ref: forwardedRef\n }\n );\n }\n);\nSliderTrack.displayName = TRACK_NAME;\nvar RANGE_NAME = \"SliderRange\";\nvar SliderRange = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map(\n (value) => convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...rangeProps,\n ref: composedRefs,\n style: {\n ...props.style,\n [orientation.startEdge]: offsetStart + \"%\",\n [orientation.endEdge]: offsetEnd + \"%\"\n }\n }\n );\n }\n);\nSliderRange.displayName = RANGE_NAME;\nvar THUMB_NAME = \"SliderThumb\";\nvar [SliderThumbContextProvider, useSliderThumbContext] = createSliderContext(THUMB_NAME);\nvar THUMB_PROVIDER_NAME = \"SliderThumbProvider\";\nfunction SliderThumbProvider(props) {\n const {\n __scopeSlider,\n name,\n children,\n // @ts-expect-error internal render prop\n internal_do_not_use_render\n } = props;\n const context = useSliderContext(THUMB_PROVIDER_NAME, __scopeSlider);\n const getItems = useCollection(__scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const index = React.useMemo(\n () => thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1,\n [getItems, thumb]\n );\n const size = useSize(thumb);\n const isFormControl = thumb ? !!context.form || !!thumb.closest(\"form\") : true;\n const value = context.values[index];\n const resolvedName = name ?? (context.name ? context.name + (context.values.length > 1 ? \"[]\" : \"\") : void 0);\n const percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max);\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n const thumbContext = {\n value,\n name: resolvedName,\n form: context.form,\n isFormControl,\n index,\n thumb,\n onThumbChange: setThumb,\n percent,\n size\n };\n return /* @__PURE__ */ jsx(SliderThumbContextProvider, { scope: __scopeSlider, ...thumbContext, children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(thumbContext) : children });\n}\nSliderThumbProvider.displayName = THUMB_PROVIDER_NAME;\nvar THUMB_TRIGGER_NAME = \"SliderThumbTrigger\";\nvar SliderThumbTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...thumbProps } = props;\n const context = useSliderContext(THUMB_TRIGGER_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_TRIGGER_NAME, __scopeSlider);\n const { index, value, percent, size, onThumbChange } = useSliderThumbContext(\n THUMB_TRIGGER_NAME,\n __scopeSlider\n );\n const composedRefs = useComposedRefs(forwardedRef, onThumbChange);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction) : 0;\n return /* @__PURE__ */ jsx(\n \"span\",\n {\n style: {\n transform: \"var(--radix-slider-thumb-transform)\",\n position: \"absolute\",\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`\n },\n children: /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: __scopeSlider, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n role: \"slider\",\n \"aria-label\": props[\"aria-label\"] || label,\n \"aria-valuemin\": context.min,\n \"aria-valuenow\": value,\n \"aria-valuemax\": context.max,\n \"aria-orientation\": context.orientation,\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n tabIndex: context.disabled ? void 0 : 0,\n ...thumbProps,\n ref: composedRefs,\n style: value === void 0 ? { display: \"none\" } : props.style,\n onFocus: composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })\n }\n ) })\n }\n );\n }\n);\nSliderThumbTrigger.displayName = THUMB_TRIGGER_NAME;\nvar SliderThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, name, ...thumbProps } = props;\n return /* @__PURE__ */ jsx(\n SliderThumbProvider,\n {\n __scopeSlider,\n name,\n internal_do_not_use_render: ({ index, isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n SliderThumbTrigger,\n {\n ...thumbProps,\n ref: forwardedRef,\n __scopeSlider\n }\n ),\n isFormControl ? /* @__PURE__ */ jsx(\n SliderBubbleInput,\n {\n __scopeSlider\n },\n index\n ) : null\n ] })\n }\n );\n }\n);\nSliderThumb.displayName = THUMB_NAME;\nvar BUBBLE_INPUT_NAME = \"SliderBubbleInput\";\nvar SliderBubbleInput = React.forwardRef(\n ({ __scopeSlider, ...props }, forwardedRef) => {\n const { value, name, form } = useSliderThumbContext(BUBBLE_INPUT_NAME, __scopeSlider);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"value\");\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"input\", { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n style: { display: \"none\" },\n name,\n form,\n ...props,\n ref: composedRefs,\n defaultValue: value\n }\n );\n }\n);\nSliderBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getNextSortedValues(prevValues = [], nextValue, atIndex) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\nfunction convertValueToPercentage(value, min, max) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\nfunction getLabel(index, totalValues) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return [\"Minimum\", \"Maximum\"][index];\n } else {\n return void 0;\n }\n}\nfunction getClosestValueIndex(values, nextValue) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\nfunction getThumbInBoundsOffset(width, left, direction) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\nfunction getStepsBetweenValues(values) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\nfunction hasMinStepsBetweenValues(values, minStepsBetweenValues) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction getDecimalCount(value) {\n if (!Number.isFinite(value)) return 0;\n const str = value.toString();\n if (str.includes(\"e\")) {\n const [coefficient, exponent] = str.split(\"e\");\n const decimalPart2 = coefficient.split(\".\")[1] || \"\";\n const exponentNum = Number(exponent);\n return Math.max(0, decimalPart2.length - exponentNum);\n }\n const decimalPart = str.split(\".\")[1];\n return decimalPart ? decimalPart.length : 0;\n}\nfunction roundValue(value, decimalCount) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\nfunction getNextStepValue(value, {\n min,\n step,\n direction,\n multiplier\n}) {\n const decimalCount = getDecimalCount(step);\n const stepsFromMin = (value - min) / step;\n const nearestSteps = Math.round(stepsFromMin);\n const isAligned = roundValue(nearestSteps * step + min, decimalCount) === roundValue(value, decimalCount);\n let nextSteps;\n if (isAligned) {\n nextSteps = nearestSteps + multiplier * direction;\n } else if (direction > 0) {\n nextSteps = Math.ceil(stepsFromMin);\n } else {\n nextSteps = Math.floor(stepsFromMin);\n }\n return roundValue(nextSteps * step + min, decimalCount);\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nexport {\n SliderRange as Range,\n Slider as Root,\n Slider,\n SliderRange,\n SliderThumb,\n SliderTrack,\n SliderThumb as Thumb,\n SliderTrack as Track,\n createSliderScope,\n SliderBubbleInput as unstable_BubbleInput,\n SliderBubbleInput as unstable_SliderBubbleInput,\n SliderThumbProvider as unstable_SliderThumbProvider,\n SliderThumbTrigger as unstable_SliderThumbTrigger,\n SliderThumbProvider as unstable_ThumbProvider,\n SliderThumbTrigger as unstable_ThumbTrigger\n};\n//# sourceMappingURL=index.mjs.map\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport * as RxSlider from '@radix-ui/react-slider';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Slider — single or range numeric input.\n *\n * Built on Radix Slider for keyboard arrow + home/end handling.\n */\nexport type SliderProps = ComponentPropsWithoutRef<typeof RxSlider.Root>;\n\nexport const Slider = forwardRef<HTMLSpanElement, SliderProps>(function Slider(props, ref) {\n const { className, ...rest } = props;\n return (\n <RxSlider.Root\n ref={ref}\n className={cx('v8-slider', className)}\n style={{\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n userSelect: 'none',\n touchAction: 'none',\n width: '100%',\n height: 20,\n }}\n {...rest}\n >\n <RxSlider.Track\n style={{\n background: 'var(--surface-2)',\n position: 'relative',\n flexGrow: 1,\n borderRadius: 'var(--radius-pill)',\n height: 4,\n }}\n >\n <RxSlider.Range\n style={{\n position: 'absolute',\n background: 'var(--accent)',\n borderRadius: 'var(--radius-pill)',\n height: '100%',\n }}\n />\n </RxSlider.Track>\n {(Array.isArray(props.value ?? props.defaultValue)\n ? (props.value ?? props.defaultValue ?? [])\n : [props.value ?? props.defaultValue ?? 0]\n ).map((_, i) => (\n <RxSlider.Thumb\n key={i}\n aria-label={props['aria-label'] ?? `Thumb ${i + 1}`}\n style={{\n display: 'block',\n width: 14,\n height: 14,\n background: 'var(--fg)',\n border: '2px solid var(--accent)',\n borderRadius: 'var(--radius-pill)',\n cursor: 'grab',\n boxShadow: 'var(--shadow-1)',\n }}\n />\n ))}\n </RxSlider.Root>\n );\n});"],"names":["PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createCollection","createSliderContext","createContextScope","SliderProvider","useSliderContext","Slider","React.forwardRef","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","onValueCommit","inverted","form","sliderProps","thumbRefs","React.useRef","valueIndexToChangeRef","isKeyboardInteractionRef","SliderOrientation","SliderHorizontal","SliderVertical","control","setControl","React.useState","composedRefs","useComposedRefs","values","setValues","useControllableState","value2","_a","valuesBeforeSlideStartRef","initialValuesRef","React.useEffect","associatedForm","reset","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","handleSlideEnd","prevValue","atIndex","commit","decimalCount","getDecimalCount","snapToStep","roundValue","nextValue","clamp","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","hasChanged","jsx","composeEventHandlers","event","stepDirection","multiplier","getNextStepValue","SliderOrientationProvider","useSliderOrientationContext","dir","onSlideStart","onSlideMove","onSlideEnd","onStepKeyDown","slider","setSlider","rectRef","direction","useDirection","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","input","linearScale","SliderImpl","isBackKey","sliderRef","ref","isSlidingFromBottom","__scopeSlider","onHomeKeyDown","onEndKeyDown","context","Primitive","target","TRACK_NAME","SliderTrack","trackProps","RANGE_NAME","SliderRange","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","SliderThumbContextProvider","useSliderThumbContext","THUMB_PROVIDER_NAME","SliderThumbProvider","children","internal_do_not_use_render","getItems","thumb","setThumb","index","React.useMemo","item","size","useSize","isFormControl","resolvedName","percent","thumbContext","isFunction","THUMB_TRIGGER_NAME","SliderThumbTrigger","thumbProps","onThumbChange","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","SliderThumb","jsxs","Fragment","SliderBubbleInput","BUBBLE_INPUT_NAME","usePrevious","inputProto","setValue","a","b","percentage","totalValues","distances","closestDistance","width","left","halfWidth","offset","getStepsBetweenValues","minStepsBetweenValues","stepsBetweenValues","output","ratio","str","coefficient","exponent","decimalPart2","exponentNum","decimalPart","rounder","stepsFromMin","nearestSteps","isAligned","nextSteps","forwardRef","className","rest","RxSlider.Root","cx","RxSlider.Track","RxSlider.Range","_","i","RxSlider.Thumb"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as S,j as a}from"./cmdk-DVxytz9i.js";import{g as j}from"./main-
|
|
1
|
+
import{r as S,j as a}from"./cmdk-DVxytz9i.js";import{g as j}from"./main-CyAIirBB.js";const W=S.forwardRef(function(v,d){var f,g;const{data:s,width:o=120,height:e=32,stroke:h="var(--accent)",fill:y,area:p=!0,goal:x,className:m,style:k,...$}=v;if(s.length<2)return a.jsx("svg",{ref:d,width:o,height:e,viewBox:`0 0 ${o} ${e}`,className:j("v8-sparkline",m),style:k,"aria-hidden":"true",...$});const n=Math.min(...s),l=Math.max(...s)-n||1,t=2,F=(o-t*2)/(s.length-1),r=s.map((i,c)=>{const M=t+F*c,N=t+(e-t*2)*(1-(i-n)/l);return{x:M,y:N}}),u=r.map((i,c)=>`${c===0?"M":"L"}${i.x.toFixed(1)},${i.y.toFixed(1)}`).join(" "),L=p?`${u} L${((f=r[r.length-1])==null?void 0:f.x.toFixed(1))??"0"},${(e-t).toFixed(1)} L${((g=r[0])==null?void 0:g.x.toFixed(1))??"0"},${(e-t).toFixed(1)} Z`:"",w=y??`color-mix(in oklch, ${h} 14%, transparent)`;return a.jsxs("svg",{ref:d,width:o,height:e,viewBox:`0 0 ${o} ${e}`,className:j("v8-sparkline",m),style:k,"aria-hidden":"true",...$,children:[p===!0&&a.jsx("path",{d:L,fill:w,stroke:"none"}),a.jsx("path",{d:u,fill:"none",stroke:h,strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"}),x!==void 0&&a.jsx("line",{x1:t,x2:o-t,y1:t+(e-t*2)*(1-(x-n)/l),y2:t+(e-t*2)*(1-(x-n)/l),stroke:"var(--fg-subtle)",strokeWidth:1,strokeDasharray:"2 2"})]})});export{W as S};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sparkline-
|
|
1
|
+
{"version":3,"file":"Sparkline-CLZBtvsN.js","sources":["../../src/web/v8/ui/data/Sparkline.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from 'react';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Sparkline — tiny inline line chart.\n *\n * Pure SVG so it composes inside StatTile, Table cells, Card headers\n * without bringing in a chart library dependency.\n */\nexport interface SparklineProps extends Omit<HTMLAttributes<SVGSVGElement>, 'children'> {\n data: readonly number[];\n width?: number;\n height?: number;\n /** Stroke color (defaults to --accent). */\n stroke?: string;\n /** Optional fill color (defaults to a 14% mix of stroke). */\n fill?: string;\n /** Show the area under the line. */\n area?: boolean;\n /** Goal/expected value rendered as a dashed horizontal line. */\n goal?: number;\n}\n\nexport const Sparkline = forwardRef<SVGSVGElement, SparklineProps>(function Sparkline(props, ref) {\n const {\n data,\n width = 120,\n height = 32,\n stroke = 'var(--accent)',\n fill,\n area = true,\n goal,\n className,\n style,\n ...rest\n } = props;\n\n if (data.length < 2) {\n return (\n <svg\n ref={ref}\n width={width}\n height={height}\n viewBox={`0 0 ${width} ${height}`}\n className={cx('v8-sparkline', className)}\n style={style}\n aria-hidden=\"true\"\n {...rest}\n />\n );\n }\n\n const min = Math.min(...data);\n const max = Math.max(...data);\n const range = max - min || 1;\n const pad = 2;\n const stepX = (width - pad * 2) / (data.length - 1);\n\n const points = data.map((v, i) => {\n const x = pad + stepX * i;\n const y = pad + (height - pad * 2) * (1 - (v - min) / range);\n return { x, y };\n });\n\n const linePath = points.map((p, i) => `${i === 0 ? 'M' : 'L'}${p.x.toFixed(1)},${p.y.toFixed(1)}`).join(' ');\n const areaPath = area\n ? `${linePath} L${points[points.length - 1]?.x.toFixed(1) ?? '0'},${(height - pad).toFixed(1)} L${points[0]?.x.toFixed(1) ?? '0'},${(height - pad).toFixed(1)} Z`\n : '';\n\n const fillColor = fill ?? `color-mix(in oklch, ${stroke} 14%, transparent)`;\n\n return (\n <svg\n ref={ref}\n width={width}\n height={height}\n viewBox={`0 0 ${width} ${height}`}\n className={cx('v8-sparkline', className)}\n style={style}\n aria-hidden=\"true\"\n {...rest}\n >\n {area === true && <path d={areaPath} fill={fillColor} stroke=\"none\" />}\n <path d={linePath} fill=\"none\" stroke={stroke} strokeWidth={1.5} strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n {goal !== undefined && (\n <line\n x1={pad}\n x2={width - pad}\n y1={pad + (height - pad * 2) * (1 - (goal - min) / range)}\n y2={pad + (height - pad * 2) * (1 - (goal - min) / range)}\n stroke=\"var(--fg-subtle)\"\n strokeWidth={1}\n strokeDasharray=\"2 2\"\n />\n )}\n </svg>\n );\n});"],"names":["Sparkline","forwardRef","props","ref","data","width","height","stroke","fill","area","goal","className","style","rest","jsx","cx","min","range","pad","stepX","points","v","i","x","y","linePath","p","areaPath","_a","_b","fillColor","jsxs"],"mappings":"qFAuBO,MAAMA,EAAYC,EAAAA,WAA0C,SAAmBC,EAAOC,EAAK,SAChG,KAAM,CACJ,KAAAC,EACA,MAAAC,EAAQ,IACR,OAAAC,EAAS,GACT,OAAAC,EAAS,gBACT,KAAAC,EACA,KAAAC,EAAO,GACP,KAAAC,EACA,UAAAC,EACA,MAAAC,EACA,GAAGC,CAAA,EACDX,EAEJ,GAAIE,EAAK,OAAS,EAChB,OACEU,EAAAA,IAAC,MAAA,CACC,IAAAX,EACA,MAAAE,EACA,OAAAC,EACA,QAAS,OAAOD,CAAK,IAAIC,CAAM,GAC/B,UAAWS,EAAG,eAAgBJ,CAAS,EACvC,MAAAC,EACA,cAAY,OACX,GAAGC,CAAA,CAAA,EAKV,MAAMG,EAAM,KAAK,IAAI,GAAGZ,CAAI,EAEtBa,EADM,KAAK,IAAI,GAAGb,CAAI,EACRY,GAAO,EACrBE,EAAM,EACNC,GAASd,EAAQa,EAAM,IAAMd,EAAK,OAAS,GAE3CgB,EAAShB,EAAK,IAAI,CAACiB,EAAGC,IAAM,CAChC,MAAMC,EAAIL,EAAMC,EAAQG,EAClBE,EAAIN,GAAOZ,EAASY,EAAM,IAAM,GAAKG,EAAIL,GAAOC,GACtD,MAAO,CAAE,EAAAM,EAAG,EAAAC,CAAA,CACd,CAAC,EAEKC,EAAWL,EAAO,IAAI,CAACM,EAAGJ,IAAM,GAAGA,IAAM,EAAI,IAAM,GAAG,GAAGI,EAAE,EAAE,QAAQ,CAAC,CAAC,IAAIA,EAAE,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,KAAK,GAAG,EACrGC,EAAWlB,EACb,GAAGgB,CAAQ,OAAKG,EAAAR,EAAOA,EAAO,OAAS,CAAC,IAAxB,YAAAQ,EAA2B,EAAE,QAAQ,KAAM,GAAG,KAAKtB,EAASY,GAAK,QAAQ,CAAC,CAAC,OAAKW,EAAAT,EAAO,CAAC,IAAR,YAAAS,EAAW,EAAE,QAAQ,KAAM,GAAG,KAAKvB,EAASY,GAAK,QAAQ,CAAC,CAAC,KAC3J,GAEEY,EAAYtB,GAAQ,uBAAuBD,CAAM,qBAEvD,OACEwB,EAAAA,KAAC,MAAA,CACC,IAAA5B,EACA,MAAAE,EACA,OAAAC,EACA,QAAS,OAAOD,CAAK,IAAIC,CAAM,GAC/B,UAAWS,EAAG,eAAgBJ,CAAS,EACvC,MAAAC,EACA,cAAY,OACX,GAAGC,EAEH,SAAA,CAAAJ,IAAS,UAAS,OAAA,CAAK,EAAGkB,EAAU,KAAMG,EAAW,OAAO,MAAA,CAAO,EACpEhB,EAAAA,IAAC,OAAA,CAAK,EAAGW,EAAU,KAAK,OAAO,OAAAlB,EAAgB,YAAa,IAAK,cAAc,QAAQ,eAAe,OAAA,CAAQ,EAC7GG,IAAS,QACRI,EAAAA,IAAC,OAAA,CACC,GAAII,EACJ,GAAIb,EAAQa,EACZ,GAAIA,GAAOZ,EAASY,EAAM,IAAM,GAAKR,EAAOM,GAAOC,GACnD,GAAIC,GAAOZ,EAASY,EAAM,IAAM,GAAKR,EAAOM,GAAOC,GACnD,OAAO,mBACP,YAAa,EACb,gBAAgB,KAAA,CAAA,CAClB,CAAA,CAAA,CAIR,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as n,j as a,P as R,m as L,b as y,i as A,c as U}from"./cmdk-DVxytz9i.js";import{u as X}from"./index-CASP1n-5.js";import{m as z,g as D}from"./main-
|
|
1
|
+
import{r as n,j as a,P as R,m as L,b as y,i as A,c as U}from"./cmdk-DVxytz9i.js";import{u as X}from"./index-CASP1n-5.js";import{m as z,g as D}from"./main-CyAIirBB.js";var C="Switch",[G]=U(C),[O,E]=G(C);function W(t){const{__scopeSwitch:s,checked:r,children:c,defaultChecked:e,disabled:o,form:h,name:f,onCheckedChange:l,required:m,value:b="on",internal_do_not_use_render:i}=t,[p,w]=L({prop:r,defaultProp:e??!1,onChange:l,caller:C}),[v,k]=n.useState(null),[S,d]=n.useState(null),u=n.useRef(!1),g=v?!!h||!!v.closest("form"):!0,x={checked:p,setChecked:w,disabled:o,control:v,setControl:k,name:f,form:h,value:b,hasConsumerStoppedPropagationRef:u,required:m,defaultChecked:e,isFormControl:g,bubbleInput:S,setBubbleInput:d};return a.jsx(O,{scope:s,...x,children:$(i)?i(x):c})}var P="SwitchTrigger",j=n.forwardRef(({__scopeSwitch:t,onClick:s,...r},c)=>{const{control:e,form:o,value:h,disabled:f,checked:l,required:m,setControl:b,setChecked:i,hasConsumerStoppedPropagationRef:p,isFormControl:w,bubbleInput:v}=E(P,t),k=y(c,b),S=n.useRef(l);return n.useEffect(()=>{const d=o?e==null?void 0:e.ownerDocument.getElementById(o):e==null?void 0:e.form;if(d instanceof HTMLFormElement){const u=()=>i(S.current);return d.addEventListener("reset",u),()=>d.removeEventListener("reset",u)}},[e,o,i]),a.jsx(R.button,{type:"button",role:"switch","aria-checked":l,"aria-required":m,"data-state":F(l),"data-disabled":f?"":void 0,disabled:f,value:h,...r,ref:k,onClick:A(s,d=>{i(u=>!u),v&&w&&(p.current=d.isPropagationStopped(),p.current||d.stopPropagation())})})});j.displayName=P;var I=n.forwardRef((t,s)=>{const{__scopeSwitch:r,name:c,checked:e,defaultChecked:o,required:h,disabled:f,value:l,onCheckedChange:m,form:b,...i}=t;return a.jsx(W,{__scopeSwitch:r,checked:e,defaultChecked:o,disabled:f,required:h,onCheckedChange:m,name:c,form:b,value:l,internal_do_not_use_render:({isFormControl:p})=>a.jsxs(a.Fragment,{children:[a.jsx(j,{...i,ref:s,__scopeSwitch:r}),p&&a.jsx(M,{__scopeSwitch:r})]})})});I.displayName=C;var N="SwitchThumb",T=n.forwardRef((t,s)=>{const{__scopeSwitch:r,...c}=t,e=E(N,r);return a.jsx(R.span,{"data-state":F(e.checked),"data-disabled":e.disabled?"":void 0,...c,ref:s})});T.displayName=N;var B="SwitchBubbleInput",M=n.forwardRef(({__scopeSwitch:t,...s},r)=>{const{control:c,hasConsumerStoppedPropagationRef:e,checked:o,defaultChecked:h,required:f,disabled:l,name:m,value:b,form:i,bubbleInput:p,setBubbleInput:w}=E(B,t),v=y(r,w),k=X(o),S=z(c);n.useEffect(()=>{const u=p;if(!u)return;const g=window.HTMLInputElement.prototype,_=Object.getOwnPropertyDescriptor(g,"checked").set,q=!e.current;if(k!==o&&_){const H=new Event("click",{bubbles:q});_.call(u,o),u.dispatchEvent(H)}},[p,k,o,e]);const d=n.useRef(o);return a.jsx(R.input,{type:"checkbox","aria-hidden":!0,defaultChecked:h??d.current,required:f,disabled:l,name:m,value:b,form:i,...s,tabIndex:-1,ref:v,style:{...s.style,...S,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});M.displayName=B;function $(t){return typeof t=="function"}function F(t){return t?"checked":"unchecked"}const V=n.forwardRef(function(s,r){const{className:c,...e}=s;return a.jsxs(I,{ref:r,className:D("v8-switch",c),style:{width:32,height:18,background:"var(--surface-2)",borderRadius:"var(--radius-pill)",position:"relative",border:"1px solid var(--border)",cursor:"pointer",transition:"background var(--motion-fast) var(--ease-out)"},...e,children:[a.jsx(T,{style:{display:"block",width:12,height:12,background:"var(--fg)",borderRadius:"var(--radius-pill)",transform:"translateX(2px)",transition:"transform var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-out)",willChange:"transform"}}),a.jsx("style",{children:`
|
|
2
2
|
.v8-switch[data-state='checked'] {
|
|
3
3
|
background: var(--accent);
|
|
4
4
|
border-color: var(--accent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Switch-CwXfsDii.js","sources":["../../../node_modules/@radix-ui/react-switch/dist/index.mjs","../../src/web/v8/ui/controls/Switch.tsx"],"sourcesContent":["\"use client\";\n\n// src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProviderImpl, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nfunction SwitchProvider(props) {\n const {\n __scopeSwitch,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = \"on\",\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME\n });\n const [control, setControl] = React.useState(null);\n const [bubbleInput, setBubbleInput] = React.useState(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = control ? !!form || !!control.closest(\"form\") : (\n // We set this to true by default so that events bubble to forms without JS (SSR)\n true\n );\n const context = {\n checked,\n setChecked,\n disabled,\n control,\n setControl,\n name,\n form,\n value,\n hasConsumerStoppedPropagationRef,\n required,\n defaultChecked,\n isFormControl,\n bubbleInput,\n setBubbleInput\n };\n return /* @__PURE__ */ jsx(SwitchProviderImpl, { scope: __scopeSwitch, ...context, children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children });\n}\nvar TRIGGER_NAME = \"SwitchTrigger\";\nvar SwitchTrigger = React.forwardRef(\n ({ __scopeSwitch, onClick, ...switchProps }, forwardedRef) => {\n const {\n control,\n form,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n isFormControl,\n bubbleInput\n } = useSwitchContext(TRIGGER_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const associatedForm = form ? control?.ownerDocument.getElementById(form) : control?.form;\n if (associatedForm instanceof HTMLFormElement) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n associatedForm.addEventListener(\"reset\", reset);\n return () => associatedForm.removeEventListener(\"reset\", reset);\n }\n }, [control, form, setChecked]);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(onClick, (event) => {\n setChecked((prevChecked) => !prevChecked);\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }\n);\nSwitchTrigger.displayName = TRIGGER_NAME;\nvar Switch = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n return /* @__PURE__ */ jsx(\n SwitchProvider,\n {\n __scopeSwitch,\n checked,\n defaultChecked,\n disabled,\n required,\n onCheckedChange,\n name,\n form,\n value,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n SwitchTrigger,\n {\n ...switchProps,\n ref: forwardedRef,\n __scopeSwitch\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n SwitchBubbleInput,\n {\n __scopeSwitch\n }\n )\n ] })\n }\n );\n }\n);\nSwitch.displayName = SWITCH_NAME;\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }\n);\nSwitchThumb.displayName = THUMB_NAME;\nvar BUBBLE_INPUT_NAME = \"SwitchBubbleInput\";\nvar SwitchBubbleInput = React.forwardRef(\n ({ __scopeSwitch, ...props }, forwardedRef) => {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput\n } = useSwitchContext(BUBBLE_INPUT_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n const bubbles = !hasConsumerStoppedPropagationRef.current;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);\n const defaultCheckedRef = React.useRef(checked);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n required,\n disabled,\n name,\n value,\n form,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: \"translateX(-100%)\"\n }\n }\n );\n }\n);\nSwitchBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\nexport {\n Switch as Root,\n Switch,\n SwitchThumb,\n SwitchThumb as Thumb,\n createSwitchScope,\n SwitchBubbleInput as unstable_BubbleInput,\n SwitchProvider as unstable_Provider,\n SwitchBubbleInput as unstable_SwitchBubbleInput,\n SwitchProvider as unstable_SwitchProvider,\n SwitchTrigger as unstable_SwitchTrigger,\n SwitchTrigger as unstable_Trigger\n};\n//# sourceMappingURL=index.mjs.map\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport * as RxSwitch from '@radix-ui/react-switch';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Switch — boolean toggle (vs Checkbox which selects).\n *\n * Use for: enable/disable settings, on/off toggles.\n * Built on Radix Switch for a11y.\n */\n\nexport type SwitchProps = ComponentPropsWithoutRef<typeof RxSwitch.Root>;\n\nexport const Switch = forwardRef<HTMLButtonElement, SwitchProps>(function Switch(props, ref) {\n const { className, ...rest } = props;\n return (\n <RxSwitch.Root\n ref={ref}\n className={cx('v8-switch', className)}\n style={{\n width: 32,\n height: 18,\n background: 'var(--surface-2)',\n borderRadius: 'var(--radius-pill)',\n position: 'relative',\n border: '1px solid var(--border)',\n cursor: 'pointer',\n transition: 'background var(--motion-fast) var(--ease-out)',\n }}\n {...rest}\n >\n <RxSwitch.Thumb\n style={{\n display: 'block',\n width: 12,\n height: 12,\n background: 'var(--fg)',\n borderRadius: 'var(--radius-pill)',\n transform: 'translateX(2px)',\n transition: 'transform var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-out)',\n willChange: 'transform',\n }}\n />\n <style>{`\n .v8-switch[data-state='checked'] {\n background: var(--accent);\n border-color: var(--accent);\n }\n .v8-switch[data-state='checked'] > span {\n transform: translateX(16px);\n background: var(--fg-on-accent);\n }\n `}</style>\n </RxSwitch.Root>\n );\n});"],"names":["SWITCH_NAME","createSwitchContext","createContextScope","SwitchProviderImpl","useSwitchContext","SwitchProvider","props","__scopeSwitch","checkedProp","children","defaultChecked","disabled","form","name","onCheckedChange","required","value","internal_do_not_use_render","checked","setChecked","useControllableState","control","setControl","React.useState","bubbleInput","setBubbleInput","hasConsumerStoppedPropagationRef","React.useRef","isFormControl","context","jsx","isFunction","TRIGGER_NAME","SwitchTrigger","React.forwardRef","onClick","switchProps","forwardedRef","composedRefs","useComposedRefs","initialCheckedStateRef","React.useEffect","associatedForm","reset","Primitive","getState","composeEventHandlers","event","prevChecked","Switch","jsxs","Fragment","SwitchBubbleInput","THUMB_NAME","SwitchThumb","thumbProps","BUBBLE_INPUT_NAME","usePrevious","controlSize","useSize","input","inputProto","bubbles","defaultCheckedRef","forwardRef","ref","className","rest","RxSwitch.Root","cx","RxSwitch.Thumb"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"Switch-B1tiRwNK.js","sources":["../../../node_modules/@radix-ui/react-switch/dist/index.mjs","../../src/web/v8/ui/controls/Switch.tsx"],"sourcesContent":["\"use client\";\n\n// src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProviderImpl, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nfunction SwitchProvider(props) {\n const {\n __scopeSwitch,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = \"on\",\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME\n });\n const [control, setControl] = React.useState(null);\n const [bubbleInput, setBubbleInput] = React.useState(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = control ? !!form || !!control.closest(\"form\") : (\n // We set this to true by default so that events bubble to forms without JS (SSR)\n true\n );\n const context = {\n checked,\n setChecked,\n disabled,\n control,\n setControl,\n name,\n form,\n value,\n hasConsumerStoppedPropagationRef,\n required,\n defaultChecked,\n isFormControl,\n bubbleInput,\n setBubbleInput\n };\n return /* @__PURE__ */ jsx(SwitchProviderImpl, { scope: __scopeSwitch, ...context, children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children });\n}\nvar TRIGGER_NAME = \"SwitchTrigger\";\nvar SwitchTrigger = React.forwardRef(\n ({ __scopeSwitch, onClick, ...switchProps }, forwardedRef) => {\n const {\n control,\n form,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n isFormControl,\n bubbleInput\n } = useSwitchContext(TRIGGER_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const associatedForm = form ? control?.ownerDocument.getElementById(form) : control?.form;\n if (associatedForm instanceof HTMLFormElement) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n associatedForm.addEventListener(\"reset\", reset);\n return () => associatedForm.removeEventListener(\"reset\", reset);\n }\n }, [control, form, setChecked]);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(onClick, (event) => {\n setChecked((prevChecked) => !prevChecked);\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }\n);\nSwitchTrigger.displayName = TRIGGER_NAME;\nvar Switch = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n return /* @__PURE__ */ jsx(\n SwitchProvider,\n {\n __scopeSwitch,\n checked,\n defaultChecked,\n disabled,\n required,\n onCheckedChange,\n name,\n form,\n value,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n SwitchTrigger,\n {\n ...switchProps,\n ref: forwardedRef,\n __scopeSwitch\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n SwitchBubbleInput,\n {\n __scopeSwitch\n }\n )\n ] })\n }\n );\n }\n);\nSwitch.displayName = SWITCH_NAME;\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }\n);\nSwitchThumb.displayName = THUMB_NAME;\nvar BUBBLE_INPUT_NAME = \"SwitchBubbleInput\";\nvar SwitchBubbleInput = React.forwardRef(\n ({ __scopeSwitch, ...props }, forwardedRef) => {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput\n } = useSwitchContext(BUBBLE_INPUT_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n const bubbles = !hasConsumerStoppedPropagationRef.current;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);\n const defaultCheckedRef = React.useRef(checked);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n required,\n disabled,\n name,\n value,\n form,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: \"translateX(-100%)\"\n }\n }\n );\n }\n);\nSwitchBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\nexport {\n Switch as Root,\n Switch,\n SwitchThumb,\n SwitchThumb as Thumb,\n createSwitchScope,\n SwitchBubbleInput as unstable_BubbleInput,\n SwitchProvider as unstable_Provider,\n SwitchBubbleInput as unstable_SwitchBubbleInput,\n SwitchProvider as unstable_SwitchProvider,\n SwitchTrigger as unstable_SwitchTrigger,\n SwitchTrigger as unstable_Trigger\n};\n//# sourceMappingURL=index.mjs.map\n","import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport * as RxSwitch from '@radix-ui/react-switch';\nimport { cx } from '../utils/cx.js';\n\n/**\n * Switch — boolean toggle (vs Checkbox which selects).\n *\n * Use for: enable/disable settings, on/off toggles.\n * Built on Radix Switch for a11y.\n */\n\nexport type SwitchProps = ComponentPropsWithoutRef<typeof RxSwitch.Root>;\n\nexport const Switch = forwardRef<HTMLButtonElement, SwitchProps>(function Switch(props, ref) {\n const { className, ...rest } = props;\n return (\n <RxSwitch.Root\n ref={ref}\n className={cx('v8-switch', className)}\n style={{\n width: 32,\n height: 18,\n background: 'var(--surface-2)',\n borderRadius: 'var(--radius-pill)',\n position: 'relative',\n border: '1px solid var(--border)',\n cursor: 'pointer',\n transition: 'background var(--motion-fast) var(--ease-out)',\n }}\n {...rest}\n >\n <RxSwitch.Thumb\n style={{\n display: 'block',\n width: 12,\n height: 12,\n background: 'var(--fg)',\n borderRadius: 'var(--radius-pill)',\n transform: 'translateX(2px)',\n transition: 'transform var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-out)',\n willChange: 'transform',\n }}\n />\n <style>{`\n .v8-switch[data-state='checked'] {\n background: var(--accent);\n border-color: var(--accent);\n }\n .v8-switch[data-state='checked'] > span {\n transform: translateX(16px);\n background: var(--fg-on-accent);\n }\n `}</style>\n </RxSwitch.Root>\n );\n});"],"names":["SWITCH_NAME","createSwitchContext","createContextScope","SwitchProviderImpl","useSwitchContext","SwitchProvider","props","__scopeSwitch","checkedProp","children","defaultChecked","disabled","form","name","onCheckedChange","required","value","internal_do_not_use_render","checked","setChecked","useControllableState","control","setControl","React.useState","bubbleInput","setBubbleInput","hasConsumerStoppedPropagationRef","React.useRef","isFormControl","context","jsx","isFunction","TRIGGER_NAME","SwitchTrigger","React.forwardRef","onClick","switchProps","forwardedRef","composedRefs","useComposedRefs","initialCheckedStateRef","React.useEffect","associatedForm","reset","Primitive","getState","composeEventHandlers","event","prevChecked","Switch","jsxs","Fragment","SwitchBubbleInput","THUMB_NAME","SwitchThumb","thumbProps","BUBBLE_INPUT_NAME","usePrevious","controlSize","useSize","input","inputProto","bubbles","defaultCheckedRef","forwardRef","ref","className","rest","RxSwitch.Root","cx","RxSwitch.Thumb"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r,j as e}from"./cmdk-DVxytz9i.js";import{c as ge,d as A,e as me,X as re,f as pe,g as fe,S as f,I as U,B as J,h as ee,i as N,u as ve,a as G,F as ke}from"./main-
|
|
1
|
+
import{r,j as e}from"./cmdk-DVxytz9i.js";import{c as ge,d as A,e as me,X as re,f as pe,g as fe,S as f,I as U,B as J,h as ee,i as N,u as ve,a as G,F as ke}from"./main-CyAIirBB.js";import{V as xe}from"./ViewHeader-V_SzbUpw.js";import{I as ye,K as be,a as je,u as Se,b as Ce}from"./AgentActivity-nEri4lbx.js";import"./Grid-dEnoGGws.js";import{I as K}from"./Input-BSa3lh_-.js";import{T as te}from"./Textarea-D_TPpVMy.js";import"./Switch-B1tiRwNK.js";import{S as ne,a as ie,b as oe,c as le}from"./Select-C8EJj4NM.js";import"./Slider-BexNfF6K.js";import"./Alert-Dg_Vwxh5.js";import"./Avatar-CXDZdKy4.js";import"./EmptyState-DLmtBX_6.js";import{S as ce,a as ue}from"./Sheet-Cztsvgse.js";import"./Card-D9019JOD.js";import"./Chip-DQtalZ4y.js";import"./ActivityFeed-xXiUCZLB.js";import"./Sparkline-CLZBtvsN.js";import{T as he}from"./trash-2-2NsyTU8c.js";import{F as we}from"./filter-DyQbml3L.js";import{P as ae}from"./plus-fFxt-8z5.js";import"./ProgressBar-D3lkz42E.js";import"./SettingsRow-BdOOmYMD.js";import"./MessageBubble-5vUAquDx.js";import"./dnd-kit-DrHErSkw.js";import"./calendar-VntJUzFB.js";import"./index-CASP1n-5.js";import"./index-C4Vq_2LM.js";import"./circle-alert-CQ9MLygI.js";import"./triangle-alert-DFmQ_RXN.js";import"./circle-check-COtVgsWw.js";import"./trending-up-BXwP23VK.js";/**
|
|
2
2
|
* @license lucide-react v0.460.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|