@marimo-team/islands 0.25.3-dev27 → 0.25.3-dev271

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (847) hide show
  1. package/dist/{ConnectedDataExplorerComponent-DfG3PRaJ.js → ConnectedDataExplorerComponent-eLHPh6uu.js} +120 -116
  2. package/dist/{ErrorBoundary-DKAio_E4.js → ErrorBoundary-VLVnXoqP.js} +66 -71
  3. package/dist/_baseSet-BfI5FjBM.js +328 -0
  4. package/dist/{abnfDiagram-VCTEODGH-B3w-XWX8.js → abnfDiagram-VCTEODGH-hqd0IBtX.js} +2 -2
  5. package/dist/any-language-editor-DnG26QXh.js +75 -0
  6. package/dist/{architectureDiagram-5GKGNRK7-C18U9A6k.js → architectureDiagram-5GKGNRK7-BzLAFcc0.js} +1 -1
  7. package/dist/{arrays-CN1djC4k.js → arrays-DoQ-AILx.js} +15 -27
  8. package/dist/assertNever-DIU3JJbt.js +507 -0
  9. package/dist/assets/__vite-browser-external-BKBpimif.js +1 -0
  10. package/dist/assets/worker-CgoMtD-_.js +113 -0
  11. package/dist/{blockDiagram-I7D4REHJ-Cg25UrxT.js → blockDiagram-I7D4REHJ-Dkhe6_PP.js} +1 -1
  12. package/dist/{button-CvjkwdSk.js → button-0-RqY1DW.js} +229 -218
  13. package/dist/{capabilities-CQ5IjhzL.js → capabilities-B6yy_CBN.js} +2 -2
  14. package/dist/{chat-ui-DDJuqS87.js → chat-ui-BWIkve2R.js} +2071 -1780
  15. package/dist/{check-BMKBBrdc.js → check-gUSZbRsl.js} +1 -1
  16. package/dist/{chunk-IMKFNOWR-CrS5bzqW.js → chunk-IMKFNOWR-DOeVvuyE.js} +1 -1
  17. package/dist/{chunk-SHT3W25Y-StpvPvUG.js → chunk-SHT3W25Y-DZoFI8wR.js} +1 -1
  18. package/dist/{chunk-SVP7TREG-CBXjbYZC.js → chunk-SVP7TREG-CWu86PSW.js} +1 -1
  19. package/dist/{chunk-TICWLB2K-Dp6bIb-q.js → chunk-TICWLB2K-BrM0GoP3.js} +1 -1
  20. package/dist/{chunk-YOKDWASO-DPZk8vhS.js → chunk-YOKDWASO-DKplTrBY.js} +20 -20
  21. package/dist/{classDiagram-ZZMXUADV-BFYuxV5g.js → classDiagram-ZZMXUADV-DYi4V2bB.js} +2 -2
  22. package/dist/{classDiagram-v2-VYDZK3BY-D_tjXVMl.js → classDiagram-v2-VYDZK3BY-tN7FIk-m.js} +2 -2
  23. package/dist/{code-visibility-CFvLbCZJ.js → code-visibility-Dv4bHkOd.js} +43 -50
  24. package/dist/{common-1HUDUr7W.js → common-KrCVlCIg.js} +10277 -9719
  25. package/dist/config-BsPruWMR.js +636 -0
  26. package/dist/{copy-icon-BgUO8jsi.js → copy-icon-C2I8sw4h.js} +3 -3
  27. package/dist/createReducer-DdtT_7ji.js +67 -0
  28. package/dist/{cynefinDiagram-5FMLGOSQ-DSgYrHB2.js → cynefinDiagram-5FMLGOSQ-D5nCnDc-.js} +1 -1
  29. package/dist/{dagre-GXQ25YYZ-GYlruCBf.js → dagre-GXQ25YYZ-BHkd7f_i.js} +3 -3
  30. package/dist/{dagre-BGSfXNEb.js → dagre-mqiMAsFY.js} +531 -680
  31. package/dist/{data-grid-overlay-editor-ZxoN8gVB.js → data-grid-overlay-editor-BnCDQaMh.js} +5 -5
  32. package/dist/{data-grid-types-BH_r7g7l.js → data-grid-types-0PJ-9N5n.js} +1 -1
  33. package/dist/{debounce-C3jyATpc.js → debounce-DrhhziJv.js} +2 -2
  34. package/dist/{diagram-S7CK7UJ4-DRu5LX5_.js → diagram-S7CK7UJ4-D1ALppT2.js} +1 -1
  35. package/dist/{diagram-UQ7AKVKN-DD7uiejP.js → diagram-UQ7AKVKN-DLv0b83L.js} +1 -1
  36. package/dist/{diagram-VX7I27RA-ByH9KAJJ.js → diagram-VX7I27RA-7XJ7J6qg.js} +1 -1
  37. package/dist/{diagram-Z3DM3KII-BsQHPRke.js → diagram-Z3DM3KII-7M7zbHp_.js} +1 -1
  38. package/dist/{dialog-Cc479ZEH.js → dialog-DzCj1qQv.js} +26 -26
  39. package/dist/{dist-Bvs24R_E.js → dist-11T5wq3_.js} +31 -30
  40. package/dist/{dist-F8Ep36rk.js → dist-17ugwGZc.js} +59 -58
  41. package/dist/{dist-BMQf5zIS.js → dist-7cRjf--y.js} +123 -122
  42. package/dist/{dist-diIx5qJW.js → dist-B8pkfkzc.js} +31 -30
  43. package/dist/{dist-CN_BeG2I.js → dist-B9UoM_wq.js} +58 -57
  44. package/dist/{dist-CLdpGQVr.js → dist-BGuMTs1i.js} +118 -117
  45. package/dist/{dist-BK4Oj99o.js → dist-BHW11fni.js} +18 -17
  46. package/dist/dist-BLY4m1Wi.js +850 -0
  47. package/dist/{dist-PXYI_yuP.js → dist-BNlcVoxs.js} +24 -23
  48. package/dist/{dist-D6d86eNJ.js → dist-BQYe5Bju.js} +47 -46
  49. package/dist/{dist-CkTTIdBe.js → dist-BX1mn8na.js} +337 -337
  50. package/dist/{dist-DiDibOYr.js → dist-Bh0PTKUW.js} +151 -150
  51. package/dist/{dist-CSJ0MDRw.js → dist-CKaXK92p.js} +56 -55
  52. package/dist/{dist-C8fAKSH1.js → dist-CLhwfhpJ.js} +53 -52
  53. package/dist/{dist-DoE4XJBC.js → dist-CYeqK4Xw.js} +9801 -10649
  54. package/dist/{dist-BLfKmR-l.js → dist-Cxlp3WH6.js} +16 -15
  55. package/dist/{dist-D-wwqlzJ.js → dist-DSJPGj42.js} +158 -157
  56. package/dist/{dist-BorMD-uX.js → dist-DU9ICsWZ.js} +75 -74
  57. package/dist/{dist-DBtSl3sf.js → dist-DWv0ALBi.js} +47 -46
  58. package/dist/{dist-OR1OnN-y.js → dist-DiBpWEsB.js} +31 -30
  59. package/dist/{dist-CrSP_H1M.js → dist-DiLFTlnl.js} +242 -242
  60. package/dist/{dist-DpBpA_n1.js → dist-Lm-D-Vr6.js} +3 -3
  61. package/dist/{dist-CN8zI-XC.js → dist-X9CsotJl.js} +239 -239
  62. package/dist/{dist-CSbh1PNP.js → dist-cVDV5IuI.js} +23 -22
  63. package/dist/{dist-BuaRHxOc.js → dist-fRfaOoq8.js} +44 -43
  64. package/dist/{dist-Cg7gzw-a.js → dist-gTTI-9Px.js} +78 -77
  65. package/dist/dropdown-menu-CdXE15an.js +6089 -0
  66. package/dist/{ebnfDiagram-PWID7BFC-CQRK5_eT.js → ebnfDiagram-PWID7BFC-DHH1qlmV.js} +2 -2
  67. package/dist/{erDiagram-RLTQ6QDP-BKtWrDVh.js → erDiagram-RLTQ6QDP-fI_0dGef.js} +1 -1
  68. package/dist/{error-banner-CFPHFw4h.js → error-banner-DPc9eIw5.js} +87 -86
  69. package/dist/error-entries-CxN-Nq3V.js +2573 -0
  70. package/dist/{esm-AMFssoNp.js → esm-BDqqT86j.js} +329 -329
  71. package/dist/{esm-D2gTsXEV.js → esm-BgKjMvWw.js} +530 -529
  72. package/dist/feedback-button-7UVo7ro6.js +374 -0
  73. package/dist/{flowDiagram-HODETNUW-1IN-ih2E.js → flowDiagram-HODETNUW-Brg9MA6i.js} +2 -2
  74. package/dist/{formats-Buu00Z2q.js → formats-DbSvAPY-.js} +6 -6
  75. package/dist/{ganttDiagram-EL5Y4UJY-BQT16JSc.js → ganttDiagram-EL5Y4UJY-Dh_4cBJZ.js} +2 -2
  76. package/dist/{glide-data-editor-BBgCAPbk.js → glide-data-editor-DTtBwgEa.js} +6676 -2890
  77. package/dist/{glide-utils-DM9zBO4W.js → glide-utils-BSw3SSHF.js} +84 -45
  78. package/dist/{globals-DhH_o2tF.js → globals-CedpcDTN.js} +3 -3
  79. package/dist/{graphlib-BmY_CCV9.js → graphlib-nlwT3Wvy.js} +177 -220
  80. package/dist/hasIn-C20JsQ2m.js +28 -0
  81. package/dist/{highlighted-body-KPVGNVTW-zwjq21tf.js → highlighted-body-KPVGNVTW-3Ziwfz-V.js} +2 -2
  82. package/dist/{error-entries-Cz3yNs7w.js → html-to-image-Bc2AvXHG.js} +26695 -26850
  83. package/dist/{infoDiagram-27XIBGKW-CkB-zr4p.js → infoDiagram-27XIBGKW-E9e403YT.js} +1 -1
  84. package/dist/isArrayLikeObject-B-HXCsex.js +626 -0
  85. package/dist/isEmpty-CdX7MTE1.js +14 -0
  86. package/dist/{ishikawaDiagram-5VMMS53U-wlyLjBmM.js → ishikawaDiagram-5VMMS53U-C-RlYDRo.js} +1 -1
  87. package/dist/{kanban-definition-UXKFOSKX-C2usY0i-.js → kanban-definition-UXKFOSKX-CLFl_uqK.js} +1 -1
  88. package/dist/{linear-Cnaq3Tfb.js → linear-DWERh7eI.js} +121 -73
  89. package/dist/{loader-BQOfjTIJ.js → loader-BVEtQ4F3.js} +12 -12
  90. package/dist/main.js +10420 -8311
  91. package/dist/mermaid-HWGCJPDP-Du3-HPQA.js +2 -0
  92. package/dist/{mermaid-BA-Z6wGL.js → mermaid-rd09e1JL.js} +54 -54
  93. package/dist/{mindmap-definition-YA3MSWOX-nKOWS8RR.js → mindmap-definition-YA3MSWOX-BQ8TWtyB.js} +1 -1
  94. package/dist/{now-jM8-M7IR.js → now-BKZCLE5P.js} +12 -13
  95. package/dist/{number-overlay-editor-CvLhxHLb.js → number-overlay-editor-D_avDRZT.js} +3 -3
  96. package/dist/{objects-CzUgoMIF.js → objects-DCmMvZtn.js} +1 -3
  97. package/dist/{once-BtE-wKRL.js → once-NnpX_HnX.js} +1 -1
  98. package/dist/{pegDiagram-XKGWAZYB-Dac9EIKD.js → pegDiagram-XKGWAZYB-CN8UHFPi.js} +2 -2
  99. package/dist/pencil-DcT8AE0h.js +10 -0
  100. package/dist/pick-tCszMUbm.js +35 -0
  101. package/dist/{pieDiagram-E7YTZNPT-B7S-DsW_.js → pieDiagram-E7YTZNPT-DGuJ0EBd.js} +1 -1
  102. package/dist/precisionRound-DhAzeRcm.js +49 -0
  103. package/dist/{process-output-B-KBO95p.js → process-output-qecD7Dk8.js} +4 -4
  104. package/dist/{quadrantDiagram-AXDQQJYC-Ccw0xMjN.js → quadrantDiagram-AXDQQJYC-Blrm7V7_.js} +1 -1
  105. package/dist/{railroadDiagram-O6MQD6OU-Cfa5Q-hr.js → railroadDiagram-O6MQD6OU-BPDA8wy8.js} +2 -2
  106. package/dist/{react-vega-BED0DjiB.js → react-vega-C4T9Rb_w.js} +12284 -12270
  107. package/dist/{requirementDiagram-BXWQKSXE-d8zXCJIk.js → requirementDiagram-BXWQKSXE-ChzLGbGW.js} +1 -1
  108. package/dist/{reveal-component-C9BavSsS.js → reveal-component-cJ717FaI.js} +1131 -1108
  109. package/dist/schemas-CdscWNy_.js +4747 -0
  110. package/dist/select-OxgozOC8.js +1200 -0
  111. package/dist/{sequenceDiagram-WJ2MYXX4-b6pei3lJ.js → sequenceDiagram-WJ2MYXX4-DFX-bE6O.js} +1 -1
  112. package/dist/{spec-BJzgmvVa.js → spec-oJn0RhpQ.js} +41 -11
  113. package/dist/{stateDiagram-D77RDMKH-Be-xSpaZ.js → stateDiagram-D77RDMKH-BR7cI3wK.js} +4 -4
  114. package/dist/{stateDiagram-v2-MP3YSRHH-5Y-FxesJ.js → stateDiagram-v2-MP3YSRHH-oGqB5UDI.js} +2 -2
  115. package/dist/static-state-CuV6Pc3a.js +72 -0
  116. package/dist/style.css +1 -1
  117. package/dist/{swimlanes-42K2YHIH-nRRl4NU0.js → swimlanes-42K2YHIH-DwSZl1yC.js} +1 -1
  118. package/dist/{swimlanesDiagram-VR7AAH4N-BS79510V.js → swimlanesDiagram-VR7AAH4N-BHlcd-Ri.js} +2 -2
  119. package/dist/{swiper-component-DKntyn8p.js → swiper-component-Dvj-goaD.js} +2 -2
  120. package/dist/{time-BieKwdYS.js → time-BaMbJs4z.js} +18 -18
  121. package/dist/{timeline-definition-24CTP7MA-Cfzf8WPf.js → timeline-definition-24CTP7MA-DMmP-G2O.js} +1 -1
  122. package/dist/toast-DbBHmxmB.js +491 -0
  123. package/dist/{tooltip-CtBZ5q8p.js → tooltip-BfcDQd2j.js} +329 -305
  124. package/dist/use-restore-focus-CmflVLWJ.js +1672 -0
  125. package/dist/{useAsyncData-BD534XmW.js → useAsyncData-BYIAoMqn.js} +15 -14
  126. package/dist/{useDateFormatter-DkajGwwd.js → useDateFormatter-ButWkdcK.js} +2 -2
  127. package/dist/{useDeepCompareMemoize-C72_RNsu.js → useDeepCompareMemoize-Bz0c5GN6.js} +1 -1
  128. package/dist/{useIframeCapabilities-DBETvvPl.js → useIframeCapabilities-BIolGsF1.js} +1 -1
  129. package/dist/useLifecycle-JjxCC7Vu.js +112 -0
  130. package/dist/useTheme-DPLobSFs.js +339 -0
  131. package/dist/utils-EBklsC5R.js +813 -0
  132. package/dist/{vega-component-nB1kV6sb.js → vega-component-rxIxAAh9.js} +171 -170
  133. package/dist/{vega-embed-container-BNHE18G9.js → vega-embed-container--LYZqguO.js} +2 -2
  134. package/dist/{vega-loader.browser-DNST6uVf.js → vega-loader.browser-B9Pz0EGP.js} +298 -507
  135. package/dist/{vennDiagram-4TSXK5OY-CeY6Z1xZ.js → vennDiagram-4TSXK5OY-Db8GtH1G.js} +1 -1
  136. package/dist/{wardleyDiagram-VM6X3IG4-Cxs9NtVi.js → wardleyDiagram-VM6X3IG4-DmIiC3FU.js} +1 -1
  137. package/dist/{xychartDiagram-S5SC5T6Z-DNWbvPK7.js → xychartDiagram-S5SC5T6Z-DS9OPrNq.js} +2 -2
  138. package/package.json +17 -20
  139. package/src/__mocks__/document.tsx +63 -0
  140. package/src/__mocks__/executions.ts +195 -0
  141. package/src/__mocks__/notebook.ts +3 -5
  142. package/src/__mocks__/partial.ts +26 -0
  143. package/src/__mocks__/requests.ts +1 -4
  144. package/src/__tests__/CellStatus.test.tsx +19 -20
  145. package/src/__tests__/fixtures/pair-config.ts +1 -1
  146. package/src/__tests__/main.test.tsx +24 -1
  147. package/src/__tests__/module-entry.test.ts +44 -0
  148. package/src/__tests__/mount.test.ts +1 -21
  149. package/src/__tests__/{host-imports.test.ts → replica-imports.test.ts} +12 -11
  150. package/src/components/ai/__tests__/ai-model-dropdown.test.tsx +63 -0
  151. package/src/components/ai/ai-model-dropdown.tsx +11 -6
  152. package/src/components/app-config/__tests__/state.test.tsx +50 -0
  153. package/src/components/app-config/ai-config.tsx +156 -150
  154. package/src/components/app-config/app-config-button.tsx +6 -5
  155. package/src/components/app-config/app-config-form.tsx +5 -9
  156. package/src/components/app-config/common.tsx +7 -9
  157. package/src/components/app-config/data-form.tsx +112 -113
  158. package/src/components/app-config/mcp-config.tsx +30 -53
  159. package/src/components/app-config/user-config-form.css +91 -0
  160. package/src/components/app-config/user-config-form.tsx +266 -349
  161. package/src/components/chat/__tests__/capabilities-popover.test.tsx +0 -1
  162. package/src/components/chat/__tests__/chat-display.test.tsx +196 -0
  163. package/src/components/chat/__tests__/chat-markdown.test.tsx +43 -0
  164. package/src/components/chat/__tests__/chat-utils.test.ts +93 -1
  165. package/src/components/chat/__tests__/message-queue.test.tsx +17 -0
  166. package/src/components/chat/__tests__/notebook-access-selector.test.tsx +64 -0
  167. package/src/components/chat/__tests__/turn-timing.test.ts +84 -0
  168. package/src/components/chat/__tests__/use-assistant-turn.test.ts +95 -0
  169. package/src/components/chat/__tests__/user-message.test.tsx +27 -0
  170. package/src/components/chat/acp/__tests__/agent-panel-initialization.test.tsx +1 -1
  171. package/src/components/chat/acp/__tests__/agent-panel.test.tsx +22 -17
  172. package/src/components/chat/acp/__tests__/session-tabs.test.tsx +43 -0
  173. package/src/components/chat/acp/__tests__/state.test.ts +2 -2
  174. package/src/components/chat/acp/agent-panel.tsx +6 -3
  175. package/src/components/chat/acp/blocks.tsx +13 -12
  176. package/src/components/chat/acp/common.tsx +4 -5
  177. package/src/components/chat/acp/model-selector.tsx +1 -1
  178. package/src/components/chat/acp/session-tabs.tsx +8 -3
  179. package/src/components/chat/agent-activity.tsx +132 -0
  180. package/src/components/chat/capabilities-popover.tsx +2 -11
  181. package/src/components/chat/chat-components.tsx +9 -4
  182. package/src/components/chat/chat-display.tsx +131 -57
  183. package/src/components/chat/chat-history-popover.tsx +6 -1
  184. package/src/components/chat/chat-markdown.tsx +15 -0
  185. package/src/components/chat/chat-panel.tsx +216 -294
  186. package/src/components/chat/chat-typography.css +108 -0
  187. package/src/components/chat/chat-utils.ts +24 -35
  188. package/src/components/chat/notebook-access-selector.stories.tsx +22 -0
  189. package/src/components/chat/notebook-access-selector.tsx +100 -0
  190. package/src/components/chat/tool-call/__tests__/tool-labels.test.ts +76 -0
  191. package/src/components/chat/tool-call/__tests__/tool-step.test.tsx +57 -0
  192. package/src/components/chat/tool-call/shared.ts +6 -0
  193. package/src/components/chat/tool-call/tool-call-view.tsx +22 -76
  194. package/src/components/chat/tool-call/tool-labels.ts +172 -0
  195. package/src/components/chat/tool-call/tool-result.tsx +1 -1
  196. package/src/components/chat/tool-call/tool-step.tsx +145 -0
  197. package/src/components/chat/turn-timing.ts +73 -0
  198. package/src/components/chat/use-assistant-turn.ts +65 -0
  199. package/src/components/chat/use-chat-generation.ts +20 -0
  200. package/src/components/chat/user-message.tsx +145 -0
  201. package/src/components/data-table/TableBottomBar.tsx +4 -1
  202. package/src/components/data-table/TableTopBar.tsx +2 -0
  203. package/src/components/data-table/__tests__/chart-spec-model.test.ts +195 -195
  204. package/src/components/data-table/__tests__/column-explorer.test.tsx +27 -1
  205. package/src/components/data-table/__tests__/columns.test.tsx +105 -0
  206. package/src/components/data-table/__tests__/context-menu-interaction.test.tsx +130 -0
  207. package/src/components/data-table/__tests__/data-table.test.tsx +1 -0
  208. package/src/components/data-table/__tests__/date-popover.test.tsx +72 -0
  209. package/src/components/data-table/__tests__/export-actions.test.tsx +105 -0
  210. package/src/components/data-table/__tests__/keyboard-selection.test.tsx +188 -0
  211. package/src/components/data-table/__tests__/pagination.test.tsx +28 -1
  212. package/src/components/data-table/__tests__/search-highlight.test.tsx +109 -0
  213. package/src/components/data-table/__tests__/url-detector.test.tsx +74 -0
  214. package/src/components/data-table/cell-selection/feature.ts +2 -2
  215. package/src/components/data-table/cell-selection/types.ts +2 -2
  216. package/src/components/data-table/charts/__tests__/chart-panel.test.tsx +74 -1
  217. package/src/components/data-table/charts/__tests__/spec-snapshot.test.ts +20 -20
  218. package/src/components/data-table/charts/__tests__/spec.test.ts +78 -52
  219. package/src/components/data-table/charts/__tests__/storage.test.ts +4 -1
  220. package/src/components/data-table/charts/chart-spec/spec.ts +68 -43
  221. package/src/components/data-table/charts/charts.tsx +40 -30
  222. package/src/components/data-table/charts/storage.ts +16 -5
  223. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +1 -1
  224. package/src/components/data-table/column-formatting/types.ts +1 -2
  225. package/src/components/data-table/column-summary/chart-spec-model.tsx +23 -16
  226. package/src/components/data-table/column-summary/column-summary.tsx +2 -4
  227. package/src/components/data-table/column-visibility-dropdown.tsx +8 -13
  228. package/src/components/data-table/columns.tsx +45 -46
  229. package/src/components/data-table/context-menu.tsx +36 -20
  230. package/src/components/data-table/data-table.tsx +17 -1
  231. package/src/components/data-table/date-popover.tsx +6 -4
  232. package/src/components/data-table/export-actions.tsx +76 -48
  233. package/src/components/data-table/pagination.tsx +44 -33
  234. package/src/components/data-table/range-focus/atoms.ts +4 -6
  235. package/src/components/data-table/range-focus/use-cell-range-selection.ts +65 -38
  236. package/src/components/data-table/range-focus/use-scroll-into-view.ts +21 -2
  237. package/src/components/data-table/renderers.tsx +16 -7
  238. package/src/components/data-table/row-viewer-panel/__tests__/row-viewer.test.tsx +24 -1
  239. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +4 -4
  240. package/src/components/data-table/search-highlight.tsx +79 -0
  241. package/src/components/data-table/types.ts +1 -0
  242. package/src/components/data-table/url-detector.tsx +49 -9
  243. package/src/components/datasources/__tests__/column-actions.test.tsx +97 -0
  244. package/src/components/datasources/__tests__/column-preview.test.tsx +96 -5
  245. package/src/components/datasources/__tests__/datasources-interactions.test.tsx +181 -0
  246. package/src/components/datasources/__tests__/table-list.test.tsx +118 -0
  247. package/src/components/datasources/__tests__/utils.test.ts +57 -6
  248. package/src/components/datasources/column-preview.tsx +17 -12
  249. package/src/components/datasources/datasources.tsx +56 -43
  250. package/src/components/datasources/utils.ts +32 -23
  251. package/src/components/debugger/debugger-code.tsx +5 -0
  252. package/src/components/dependency-graph/custom-node.tsx +1 -1
  253. package/src/components/dependency-graph/dependency-graph-tree.tsx +8 -8
  254. package/src/components/dependency-graph/elements.ts +24 -21
  255. package/src/components/dependency-graph/minimap-content.tsx +15 -20
  256. package/src/components/dependency-graph/panels.tsx +4 -2
  257. package/src/components/dependency-graph/utils/__tests__/layout.test.ts +18 -11
  258. package/src/components/editor/SortableCell.tsx +1 -3
  259. package/src/components/editor/__tests__/Output.test.tsx +50 -32
  260. package/src/{core/attachments/__tests__/toast.test.tsx → components/editor/__tests__/agent-toast.test.tsx} +1 -1
  261. package/src/components/editor/__tests__/data-attributes.test.tsx +28 -21
  262. package/src/components/editor/__tests__/dynamic-favicon.test.tsx +111 -18
  263. package/src/components/editor/__tests__/output-persistence.test.tsx +8 -4
  264. package/src/components/editor/__tests__/package-alert.test.tsx +22 -1
  265. package/src/components/editor/actions/__tests__/name-cell-input.test.tsx +69 -0
  266. package/src/components/editor/actions/__tests__/pair-with-agent-commands.test.ts +21 -40
  267. package/src/components/editor/actions/__tests__/pair-with-agent-modal.test.tsx +41 -14
  268. package/src/components/editor/actions/__tests__/pair-with-agent.test.tsx +6 -24
  269. package/src/components/editor/actions/__tests__/useCellActionButton.test.tsx +131 -0
  270. package/src/components/editor/actions/name-cell-input.tsx +4 -3
  271. package/src/components/editor/actions/pair-with-agent-commands.ts +10 -7
  272. package/src/components/editor/actions/pair-with-agent-modal.tsx +29 -30
  273. package/src/components/editor/actions/pair-with-agent.tsx +16 -39
  274. package/src/components/editor/actions/useCellActionButton.tsx +47 -35
  275. package/src/components/editor/actions/useConfigActions.tsx +3 -4
  276. package/src/components/editor/actions/useNotebookActions.tsx +25 -29
  277. package/src/components/editor/actions/useRestartKernel.tsx +1 -1
  278. package/src/components/editor/actions/useSetCodeVisibility.ts +11 -12
  279. package/src/components/editor/actions/useSetOutputsExpanded.ts +14 -19
  280. package/src/components/editor/ai/ai-completion-editor.tsx +2 -1
  281. package/src/components/editor/ai/completion-handlers.tsx +0 -37
  282. package/src/components/editor/ai/prompt-input.tsx +189 -0
  283. package/src/components/editor/alerts/__tests__/connection-notice.test.tsx +1 -1
  284. package/src/components/editor/alerts/connection-notice.tsx +1 -1
  285. package/src/components/editor/alerts/startup-logs-alert.tsx +1 -0
  286. package/src/components/editor/alerts/stdin-blocking-alert.tsx +4 -2
  287. package/src/components/editor/app-container.tsx +1 -1
  288. package/src/components/editor/boundary/__tests__/ErrorBoundary.test.tsx +1 -1
  289. package/src/components/editor/cell/CellStatus.tsx +23 -19
  290. package/src/components/editor/cell/CreateCellButton.tsx +15 -21
  291. package/src/components/editor/cell/DeleteButton.tsx +3 -2
  292. package/src/components/editor/cell/RunButton.tsx +18 -8
  293. package/src/components/editor/cell/StagedAICell.tsx +52 -137
  294. package/src/components/editor/cell/StopButton.tsx +2 -2
  295. package/src/components/editor/cell/__tests__/useRunCells.test.ts +45 -0
  296. package/src/components/editor/cell/__tests__/useShouldShowInterrupt.test.ts +39 -0
  297. package/src/components/editor/cell/cell-actions.tsx +12 -1
  298. package/src/components/editor/cell/cell-context-menu.tsx +4 -1
  299. package/src/components/editor/cell/code/__tests__/language-toggle.test.tsx +54 -0
  300. package/src/components/editor/cell/code/cell-editor.tsx +65 -169
  301. package/src/components/editor/cell/code/language-toggle.tsx +8 -7
  302. package/src/components/editor/cell/collapse.tsx +15 -4
  303. package/src/components/editor/cell/useAddCell.ts +4 -8
  304. package/src/components/editor/cell/useDeleteCell.tsx +10 -36
  305. package/src/components/editor/cell/useRunCells.ts +20 -8
  306. package/src/components/editor/cell/useShouldShowInterrupt.ts +2 -12
  307. package/src/components/editor/cell/useSplitCell.tsx +10 -6
  308. package/src/components/editor/chrome/components/__tests__/feedback-button.test.tsx +1 -1
  309. package/src/components/editor/chrome/components/feedback-button.tsx +2 -8
  310. package/src/components/editor/chrome/panels/__tests__/packages-panel.test.tsx +31 -2
  311. package/src/components/editor/chrome/panels/__tests__/runtime-details.test.tsx +1 -1
  312. package/src/components/editor/chrome/panels/__tests__/sandbox-recovery.test.tsx +1 -1
  313. package/src/components/editor/chrome/panels/cache-panel.tsx +1 -0
  314. package/src/components/editor/chrome/panels/dependency-graph-panel.tsx +1 -1
  315. package/src/components/editor/chrome/panels/logs-panel.tsx +2 -1
  316. package/src/components/editor/chrome/panels/outline/__tests__/outline-keyboard.test.tsx +84 -0
  317. package/src/components/editor/chrome/panels/outline/floating-outline.tsx +39 -14
  318. package/src/components/editor/chrome/panels/outline/useActiveOutline.tsx +3 -2
  319. package/src/components/editor/chrome/panels/packages-panel.tsx +4 -7
  320. package/src/components/editor/chrome/panels/panel-header.tsx +13 -0
  321. package/src/components/editor/chrome/panels/secrets-panel.tsx +1 -0
  322. package/src/components/editor/chrome/panels/session-panel.tsx +1 -1
  323. package/src/components/editor/chrome/panels/snippets-panel.tsx +10 -12
  324. package/src/components/editor/chrome/panels/variable-panel.tsx +1 -5
  325. package/src/components/editor/chrome/types.ts +1 -1
  326. package/src/components/editor/chrome/wrapper/__tests__/attachment-status.test.tsx +7 -9
  327. package/src/components/editor/chrome/wrapper/__tests__/document-sync-status.test.tsx +92 -0
  328. package/src/components/editor/chrome/wrapper/__tests__/pending-ai-cells.test.tsx +265 -37
  329. package/src/components/editor/chrome/wrapper/__tests__/useAskAiAboutCell.test.tsx +58 -0
  330. package/src/components/editor/chrome/wrapper/app-chrome.tsx +91 -74
  331. package/src/components/editor/chrome/wrapper/footer-items/attachment-status.tsx +4 -4
  332. package/src/components/editor/chrome/wrapper/footer-items/backend-status.tsx +1 -1
  333. package/src/components/editor/chrome/wrapper/footer-items/document-sync-status.tsx +54 -0
  334. package/src/components/editor/chrome/wrapper/footer-items/lsp-status.tsx +1 -1
  335. package/src/components/editor/chrome/wrapper/footer-items/machine-stats.tsx +1 -1
  336. package/src/components/editor/chrome/wrapper/footer-items/runtime-settings.tsx +1 -7
  337. package/src/components/editor/chrome/wrapper/footer.tsx +2 -2
  338. package/src/components/editor/chrome/wrapper/minimap-state.ts +1 -1
  339. package/src/components/editor/chrome/wrapper/pending-ai-cells.tsx +143 -72
  340. package/src/components/editor/chrome/wrapper/pending-ai-changes-badge.tsx +25 -0
  341. package/src/components/editor/chrome/wrapper/sidebar.tsx +8 -4
  342. package/src/components/editor/chrome/wrapper/storage.ts +1 -1
  343. package/src/components/editor/chrome/wrapper/useAskAiAboutCell.ts +36 -0
  344. package/src/components/editor/columns/__tests__/cell-column.test.tsx +1 -1
  345. package/src/components/editor/columns/cell-column.tsx +1 -1
  346. package/src/components/editor/columns/sortable-column.tsx +2 -2
  347. package/src/components/editor/connections/components.tsx +5 -10
  348. package/src/components/editor/controls/Controls.tsx +4 -4
  349. package/src/components/editor/controls/__tests__/command-palette.test.tsx +53 -0
  350. package/src/components/editor/controls/__tests__/keyboard-shortcuts.test.tsx +61 -0
  351. package/src/components/editor/controls/__tests__/notebook-menu-dropdown.test.tsx +10 -4
  352. package/src/components/editor/controls/command-palette.tsx +22 -10
  353. package/src/components/editor/controls/keyboard-shortcuts.tsx +14 -5
  354. package/src/components/editor/documentation.css +34 -11
  355. package/src/components/editor/dynamic-favicon.tsx +21 -40
  356. package/src/components/editor/errors/__tests__/send-error-report-button.test.tsx +25 -20
  357. package/src/components/editor/errors/auto-fix.tsx +4 -8
  358. package/src/components/editor/errors/send-error-report-button.tsx +3 -6
  359. package/src/components/editor/file-tree/__tests__/file-explorer-interactions.test.tsx +6 -0
  360. package/src/components/editor/file-tree/__tests__/file-explorer-navigation.test.tsx +47 -0
  361. package/src/components/editor/file-tree/__tests__/use-file-search.test.tsx +91 -0
  362. package/src/components/editor/file-tree/file-explorer.tsx +48 -15
  363. package/src/components/editor/file-tree/file-name-input.tsx +1 -0
  364. package/src/components/editor/file-tree/file-viewer.tsx +4 -2
  365. package/src/components/editor/file-tree/use-file-search.ts +35 -21
  366. package/src/components/editor/header/__tests__/filename-form.test.tsx +1 -4
  367. package/src/components/editor/header/__tests__/status.test.tsx +5 -3
  368. package/src/components/editor/header/app-header.tsx +1 -1
  369. package/src/components/editor/header/filename-form.tsx +1 -1
  370. package/src/components/editor/header/status.tsx +44 -22
  371. package/src/components/editor/links/__tests__/cell-link.test.tsx +148 -0
  372. package/src/components/editor/links/cell-link-list.tsx +1 -1
  373. package/src/components/editor/links/cell-link.tsx +21 -11
  374. package/src/components/editor/navigation/__tests__/clipboard.test.ts +60 -38
  375. package/src/components/editor/navigation/__tests__/navigation.test.ts +108 -85
  376. package/src/components/editor/navigation/__tests__/selection.test.ts +43 -21
  377. package/src/components/editor/navigation/clipboard.ts +17 -14
  378. package/src/components/editor/navigation/focus-utils.ts +23 -4
  379. package/src/components/editor/navigation/multi-cell-action-toolbar.tsx +17 -33
  380. package/src/components/editor/navigation/navigation.ts +74 -72
  381. package/src/components/editor/navigation/selection.ts +30 -29
  382. package/src/components/editor/notebook-banner.tsx +1 -0
  383. package/src/components/editor/notebook-cell.tsx +114 -126
  384. package/src/components/editor/output/MarimoErrorOutput.tsx +2 -1
  385. package/src/components/editor/output/MarimoTracebackOutput.tsx +19 -17
  386. package/src/components/editor/output/Outputs.css +8 -0
  387. package/src/components/editor/output/VideoOutput.tsx +6 -0
  388. package/src/components/editor/output/__tests__/VideoOutput.test.tsx +131 -0
  389. package/src/components/editor/output/__tests__/traceback.test.tsx +27 -1
  390. package/src/components/editor/output/ansi-reduce.ts +33 -20
  391. package/src/components/editor/output/console/ConsoleOutput.tsx +19 -25
  392. package/src/components/editor/output/console/__tests__/ConsoleOutput.test.tsx +125 -69
  393. package/src/components/editor/package-alert.tsx +14 -7
  394. package/src/components/editor/renderers/__tests__/add-cell-buttons.test.tsx +18 -0
  395. package/src/components/editor/renderers/cell-array.tsx +32 -100
  396. package/src/components/editor/renderers/grid-layout/__tests__/grid-layout.test.tsx +75 -0
  397. package/src/components/editor/renderers/grid-layout/grid-layout.tsx +34 -22
  398. package/src/components/editor/renderers/slides-layout/__tests__/plugin.test.ts +0 -2
  399. package/src/components/editor/renderers/slides-layout/slides-layout.tsx +1 -1
  400. package/src/components/editor/renderers/vertical-layout/__tests__/useFocusFirstEditor.test.ts +4 -4
  401. package/src/components/editor/renderers/vertical-layout/sidebar/toggle.tsx +7 -1
  402. package/src/components/editor/renderers/vertical-layout/useFocusFirstEditor.ts +1 -1
  403. package/src/components/editor/renderers/vertical-layout/vertical-layout.tsx +13 -34
  404. package/src/components/editor/stdin-blocking-alert.tsx +4 -2
  405. package/src/components/home/components.tsx +17 -31
  406. package/src/components/icons/__tests__/large-spinner.test.tsx +39 -0
  407. package/src/components/icons/large-spinner.tsx +3 -14
  408. package/src/components/icons/spinner.tsx +1 -1
  409. package/src/components/markdown/markdown-renderer.tsx +39 -28
  410. package/src/components/mcp/mcp-status-indicator.tsx +18 -14
  411. package/src/components/pages/__tests__/home-page.test.tsx +116 -0
  412. package/src/components/pages/edit-page.tsx +19 -17
  413. package/src/components/pages/home-page.tsx +164 -91
  414. package/src/components/scratchpad/scratchpad.test.tsx +89 -0
  415. package/src/components/scratchpad/scratchpad.tsx +47 -33
  416. package/src/components/scratchpad/state.ts +7 -0
  417. package/src/components/slides/__tests__/minimap-actions.test.tsx +22 -29
  418. package/src/components/slides/__tests__/minimap.test.ts +38 -19
  419. package/src/components/slides/__tests__/slide-scroll-hint.test.tsx +37 -0
  420. package/src/components/slides/minimap.tsx +21 -14
  421. package/src/components/slides/reveal-component.tsx +72 -36
  422. package/src/components/slides/reveal-slides.css +5 -4
  423. package/src/components/slides/slide-cell-view.tsx +32 -29
  424. package/src/components/slides/slide-form.tsx +1 -0
  425. package/src/components/slides/slide-scroll-hint.tsx +3 -1
  426. package/src/components/slides/slide.tsx +3 -4
  427. package/src/components/sort/SortableCellsProvider.tsx +8 -25
  428. package/src/components/tracing/tracing-keyboard.test.tsx +85 -0
  429. package/src/components/tracing/tracing.tsx +46 -42
  430. package/src/components/ui/__tests__/draggable-popover.test.tsx +24 -0
  431. package/src/components/ui/__tests__/fullscreen.test.tsx +44 -2
  432. package/src/components/ui/__tests__/range-slider.test.tsx +165 -0
  433. package/src/components/ui/alert-dialog.tsx +1 -1
  434. package/src/components/ui/draggable-popover.tsx +24 -2
  435. package/src/components/ui/fullscreen.tsx +25 -1
  436. package/src/components/ui/range-slider.tsx +22 -9
  437. package/src/components/ui/toast.tsx +1 -1
  438. package/src/core/MarimoApp.tsx +3 -1
  439. package/src/core/ai/__tests__/staged-cells.test.ts +89 -608
  440. package/src/core/ai/context/context.ts +2 -0
  441. package/src/core/ai/context/providers/__tests__/cell-output.test.ts +8 -12
  442. package/src/core/ai/context/providers/__tests__/cell.test.ts +49 -0
  443. package/src/core/ai/context/providers/cell-output.ts +2 -2
  444. package/src/core/ai/context/providers/cell.ts +54 -0
  445. package/src/core/ai/context/providers/datasource.ts +6 -2
  446. package/src/core/ai/staged-cells.ts +56 -323
  447. package/src/core/ai/state.ts +3 -0
  448. package/src/core/ai/tools/__tests__/edit-notebook-tool.test.ts +40 -88
  449. package/src/core/ai/tools/__tests__/registry.test.ts +17 -0
  450. package/src/core/ai/tools/base.ts +18 -15
  451. package/src/core/ai/tools/edit-notebook-tool.ts +86 -80
  452. package/src/core/ai/tools/registry.ts +13 -10
  453. package/src/core/ai/tools/sample-tool.ts +6 -7
  454. package/src/core/cells/__tests__/__snapshots__/cells.test.ts.snap +4 -426
  455. package/src/core/cells/__tests__/actions.test.ts +624 -35
  456. package/src/core/cells/__tests__/add-missing-import.test.ts +7 -8
  457. package/src/core/cells/__tests__/arrange.test.ts +432 -0
  458. package/src/core/cells/__tests__/cell.test.ts +85 -151
  459. package/src/core/cells/__tests__/cells.test.ts +269 -2667
  460. package/src/core/cells/__tests__/collapseConsoleOutputs.test.ts +54 -0
  461. package/src/core/cells/__tests__/document.test.ts +164 -0
  462. package/src/core/cells/__tests__/editor.test.ts +57 -0
  463. package/src/core/cells/__tests__/flush-document.test.ts +40 -0
  464. package/src/core/cells/__tests__/harness.ts +106 -0
  465. package/src/core/cells/__tests__/layout.test.ts +177 -0
  466. package/src/core/cells/__tests__/notebook-outline.test.ts +122 -0
  467. package/src/core/cells/__tests__/outputs.test.tsx +71 -53
  468. package/src/core/cells/__tests__/pending-delete-service.test.tsx +11 -20
  469. package/src/core/cells/__tests__/session.test.ts +445 -211
  470. package/src/core/cells/__tests__/utils.test.ts +76 -347
  471. package/src/core/cells/actions.ts +678 -6
  472. package/src/core/cells/add-missing-import.ts +47 -43
  473. package/src/core/cells/arrange.ts +529 -0
  474. package/src/core/cells/cell.ts +45 -136
  475. package/src/core/cells/cells.ts +133 -1385
  476. package/src/core/cells/columns.ts +38 -0
  477. package/src/core/cells/document.ts +178 -0
  478. package/src/core/cells/edit.ts +30 -0
  479. package/src/core/cells/editor.ts +82 -0
  480. package/src/core/cells/focus.ts +27 -6
  481. package/src/core/cells/layout.ts +221 -0
  482. package/src/core/cells/outputs.ts +12 -28
  483. package/src/core/cells/pending-delete-service.ts +8 -14
  484. package/src/core/cells/scrollCellIntoView.ts +6 -0
  485. package/src/core/cells/session.ts +76 -53
  486. package/src/core/cells/types.ts +34 -41
  487. package/src/core/cells/utils.ts +46 -75
  488. package/src/core/codemirror/__tests__/format.test.ts +0 -34
  489. package/src/core/codemirror/__tests__/setup.test.ts +61 -29
  490. package/src/core/codemirror/ai/__tests__/resources.test.ts +117 -0
  491. package/src/core/codemirror/ai/resources.ts +1 -1
  492. package/src/core/codemirror/cells/__tests__/extensions.test.ts +2 -6
  493. package/src/core/codemirror/cells/extensions.ts +30 -28
  494. package/src/core/codemirror/cells/state.ts +2 -6
  495. package/src/core/codemirror/cm.ts +5 -1
  496. package/src/core/codemirror/config/types.ts +1 -1
  497. package/src/core/codemirror/copilot/__tests__/getCodes.test.ts +6 -7
  498. package/src/core/codemirror/copilot/getCodes.ts +2 -2
  499. package/src/core/codemirror/format.ts +6 -23
  500. package/src/core/codemirror/keymaps/vim.ts +4 -8
  501. package/src/core/codemirror/language/__tests__/sql.test.ts +22 -20
  502. package/src/core/codemirror/language/__tests__/utils.test.ts +187 -15
  503. package/src/core/codemirror/language/cell-code.ts +114 -0
  504. package/src/core/codemirror/language/extension.ts +52 -35
  505. package/src/core/codemirror/language/languages/markdown.ts +8 -6
  506. package/src/core/codemirror/language/languages/python.ts +19 -13
  507. package/src/core/codemirror/language/languages/sql/sql.ts +16 -24
  508. package/src/core/codemirror/language/panel/panel.tsx +1 -0
  509. package/src/core/codemirror/language/types.ts +7 -7
  510. package/src/core/codemirror/language/utils.ts +9 -39
  511. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +1 -2
  512. package/src/core/codemirror/lsp/notebook-lsp.ts +6 -5
  513. package/src/core/codemirror/lsp/utils.ts +1 -1
  514. package/src/core/codemirror/misc/__tests__/paste.test.ts +3 -1
  515. package/src/core/codemirror/misc/paste.ts +1 -1
  516. package/src/core/codemirror/placeholder/__tests__/extensions.test.ts +75 -0
  517. package/src/core/codemirror/placeholder/extensions.ts +80 -19
  518. package/src/core/codemirror/readonly/__tests__/extension.test.ts +1 -1
  519. package/src/core/codemirror/readonly/extension.ts +2 -2
  520. package/src/core/codemirror/utils.ts +1 -0
  521. package/src/core/config/__tests__/app-config.test.ts +64 -0
  522. package/src/core/config/__tests__/config-schema.test.ts +56 -6
  523. package/src/core/config/config-schema.ts +17 -4
  524. package/src/core/config/config.ts +65 -20
  525. package/src/core/config/feature-flag.tsx +0 -2
  526. package/src/core/datasets/__tests__/data-source-discovery.test.ts +5 -5
  527. package/src/core/datasets/data-source-discovery.ts +4 -6
  528. package/src/core/documentation/doc-lookup.ts +1 -1
  529. package/src/core/edit-app.tsx +22 -28
  530. package/src/core/errors/error-entries.ts +4 -1
  531. package/src/core/executions/__tests__/atoms.test.ts +99 -0
  532. package/src/core/executions/__tests__/select.test.ts +268 -0
  533. package/src/core/executions/atoms.ts +206 -0
  534. package/src/core/executions/hooks.ts +31 -0
  535. package/src/core/executions/index.ts +31 -0
  536. package/src/core/executions/select.ts +175 -0
  537. package/src/core/export/__tests__/hooks.test.ts +0 -5
  538. package/src/core/export/hooks.ts +1 -1
  539. package/src/core/export/layout.ts +2 -2
  540. package/src/core/hotkeys/actions.ts +2 -4
  541. package/src/core/hotkeys/hotkeys.ts +2 -1
  542. package/src/core/islands/__tests__/bootstrap.test.ts +69 -17
  543. package/src/core/islands/__tests__/bridge.test.ts +85 -27
  544. package/src/core/islands/bootstrap.ts +50 -54
  545. package/src/core/islands/bridge.ts +84 -25
  546. package/src/core/islands/components/__tests__/IslandControls.test.tsx +7 -5
  547. package/src/core/islands/components/output-wrapper.tsx +5 -5
  548. package/src/core/islands/components/web-components.tsx +1 -1
  549. package/src/core/islands/worker/__tests__/controller.test.ts +62 -4
  550. package/src/core/islands/worker/controller.ts +4 -10
  551. package/src/core/islands/worker/worker.tsx +33 -33
  552. package/src/core/kernel/__tests__/RuntimeState.test.ts +1 -1
  553. package/src/core/kernel/__tests__/handlers.test.ts +7 -153
  554. package/src/core/kernel/handlers.ts +17 -79
  555. package/src/core/kernel/state.ts +0 -15
  556. package/src/core/lifecycle/render-policy.ts +12 -26
  557. package/src/core/meta/__tests__/code-visibility.test.tsx +78 -70
  558. package/src/core/meta/code-visibility.ts +18 -9
  559. package/src/core/network/__tests__/connection.test.ts +1 -1
  560. package/src/core/network/__tests__/requests-lazy.test.ts +6 -8
  561. package/src/core/network/connection-notice.ts +1 -1
  562. package/src/core/network/connection.ts +1 -1
  563. package/src/core/network/requests-lazy.ts +5 -8
  564. package/src/core/network/requests-network.ts +5 -31
  565. package/src/core/network/requests-static.ts +1 -4
  566. package/src/core/network/requests-toasting.tsx +1 -4
  567. package/src/core/network/types.ts +6 -14
  568. package/src/core/network/useConnectionNotice.ts +8 -2
  569. package/src/core/notebook/__tests__/operations.test.ts +51 -0
  570. package/src/core/notebook/attachments.ts +38 -0
  571. package/src/core/notebook/document/__tests__/codemirror.test.ts +759 -0
  572. package/src/core/notebook/document/__tests__/draft.test.ts +363 -0
  573. package/src/core/notebook/document/__tests__/fixtures.ts +92 -0
  574. package/src/core/notebook/document/__tests__/hooks.test.tsx +391 -0
  575. package/src/core/notebook/document/__tests__/lifecycle-scenarios.test.ts +61 -0
  576. package/src/core/notebook/document/__tests__/model.test.ts +247 -0
  577. package/src/core/notebook/document/__tests__/protocol-fixtures.ts +38 -0
  578. package/src/core/notebook/document/__tests__/recovery-scenarios.test.ts +230 -0
  579. package/src/core/notebook/document/__tests__/scenario-fixture.ts +43 -0
  580. package/src/core/notebook/document/__tests__/scenarios.test.ts +205 -0
  581. package/src/core/notebook/document/__tests__/state.test.ts +459 -0
  582. package/src/core/notebook/document/__tests__/submission.test.ts +203 -0
  583. package/src/core/notebook/document/__tests__/test-host.test.ts +92 -0
  584. package/src/core/notebook/document/__tests__/test-host.ts +247 -0
  585. package/src/core/notebook/document/__tests__/test-notebook.ts +149 -0
  586. package/src/core/notebook/document/__tests__/user.ts +61 -0
  587. package/src/core/notebook/document/codemirror.ts +216 -0
  588. package/src/core/notebook/document/draft.ts +502 -0
  589. package/src/core/notebook/document/hooks.tsx +118 -0
  590. package/src/core/notebook/document/index.ts +24 -0
  591. package/src/core/notebook/document/model.ts +102 -0
  592. package/src/core/notebook/document/select.ts +41 -0
  593. package/src/core/notebook/document/state.ts +378 -0
  594. package/src/core/notebook/document/sync.ts +369 -0
  595. package/src/core/notebook/index.ts +19 -0
  596. package/src/core/notebook/operations.ts +30 -0
  597. package/src/core/notebook/replica/AGENTS.md +11 -0
  598. package/src/core/{host → notebook/replica}/__tests__/attachments.test.ts +9 -10
  599. package/src/core/{host → notebook/replica}/__tests__/document.test.ts +18 -16
  600. package/src/core/notebook/replica/__tests__/executions.test.ts +200 -0
  601. package/src/core/notebook/replica/__tests__/fixtures.ts +79 -0
  602. package/src/core/notebook/replica/__tests__/replica.test.ts +559 -0
  603. package/src/core/notebook/replica/__tests__/results.test.ts +193 -0
  604. package/src/core/notebook/replica/__tests__/runtime.test.ts +78 -0
  605. package/src/core/notebook/replica/backend.ts +19 -0
  606. package/src/core/notebook/replica/connection.ts +42 -0
  607. package/src/core/notebook/replica/index.ts +20 -0
  608. package/src/core/notebook/replica/replica.ts +336 -0
  609. package/src/core/{host → notebook/replica}/resources/attachments.ts +6 -3
  610. package/src/core/{host → notebook/replica}/resources/document.ts +3 -3
  611. package/src/core/notebook/replica/resources/executions.ts +157 -0
  612. package/src/core/notebook/replica/resources/results.ts +48 -0
  613. package/src/core/notebook/replica/resources/runtime.ts +14 -0
  614. package/src/core/packages/__tests__/useSandboxController.test.tsx +1 -1
  615. package/src/core/packages/useSandboxController.ts +1 -1
  616. package/src/core/run-app.tsx +49 -51
  617. package/src/core/runtime/__tests__/adapter.test.ts +4 -4
  618. package/src/core/runtime/__tests__/createWsUrl.test.ts +77 -7
  619. package/src/core/runtime/__tests__/runtime.test.ts +32 -74
  620. package/src/core/runtime/adapter.ts +5 -5
  621. package/src/core/runtime/config.ts +2 -2
  622. package/src/core/runtime/runtime.ts +33 -46
  623. package/src/core/runtime/types.ts +0 -2
  624. package/src/core/saving/__tests__/document.test.tsx +123 -0
  625. package/src/core/saving/__tests__/state.test.ts +111 -0
  626. package/src/core/saving/__tests__/useAutoSave.test.tsx +67 -0
  627. package/src/core/saving/document.ts +33 -0
  628. package/src/core/saving/filename.ts +1 -1
  629. package/src/core/saving/save-component.tsx +39 -60
  630. package/src/core/saving/state.ts +38 -39
  631. package/src/core/saving/useAutoSave.ts +17 -53
  632. package/src/core/session/__tests__/backend.test.ts +236 -0
  633. package/src/core/session/__tests__/useNotebookReplica.hook.test.tsx +186 -0
  634. package/src/core/{websocket → session}/__tests__/useNotebookSession.hook.test.tsx +247 -262
  635. package/src/core/session/active-notebook.ts +28 -0
  636. package/src/core/session/backend.ts +123 -0
  637. package/src/core/session/embedded.ts +7 -0
  638. package/src/core/{websocket → session}/types.ts +2 -2
  639. package/src/core/session/useNotebookReplica.ts +74 -0
  640. package/src/core/{websocket → session}/useNotebookSession.tsx +85 -67
  641. package/src/core/state/__tests__/jotai.test.tsx +108 -0
  642. package/src/core/state/jotai.ts +1 -1
  643. package/src/core/static/__tests__/files.test.ts +38 -10
  644. package/src/core/static/files.ts +2 -0
  645. package/src/core/{websocket → transports}/__tests__/connection-state.test.ts +1 -13
  646. package/src/core/transports/__tests__/server.test.ts +408 -0
  647. package/src/core/transports/__tests__/static.test.ts +306 -0
  648. package/src/core/transports/__tests__/wasm.test.ts +166 -0
  649. package/src/core/{websocket → transports}/connection-state.ts +9 -16
  650. package/src/core/transports/server.ts +152 -0
  651. package/src/core/transports/static.ts +166 -0
  652. package/src/core/transports/wasm.ts +97 -0
  653. package/src/core/vscode/__tests__/vscode-bindings.test.ts +125 -0
  654. package/src/core/vscode/vscode-bindings.ts +14 -2
  655. package/src/core/wasm/__tests__/bridge.test.ts +210 -64
  656. package/src/core/wasm/__tests__/worker.test.ts +188 -0
  657. package/src/core/wasm/bridge.ts +120 -73
  658. package/src/core/wasm/rpc.ts +15 -3
  659. package/src/core/wasm/store.ts +3 -3
  660. package/src/core/wasm/worker/bootstrap.ts +55 -51
  661. package/src/core/wasm/worker/getMarimoWheel.ts +1 -1
  662. package/src/core/wasm/worker/save-worker.ts +9 -10
  663. package/src/core/wasm/worker/types.ts +30 -18
  664. package/src/core/wasm/worker/worker.ts +118 -72
  665. package/src/css/app/Cell.css +7 -36
  666. package/src/css/app/codemirror.css +1 -1
  667. package/src/css/common.css +1 -1
  668. package/src/css/globals.css +66 -22
  669. package/src/hooks/__tests__/useAsyncData.test.tsx +148 -0
  670. package/src/hooks/__tests__/useDebounce.test.tsx +51 -0
  671. package/src/hooks/__tests__/useDeepCompareMemoize.test.tsx +39 -0
  672. package/src/hooks/__tests__/useDelayElapsed.test.tsx +28 -0
  673. package/src/hooks/__tests__/useInternalStateWithSync.test.tsx +20 -0
  674. package/src/hooks/__tests__/useScript.test.tsx +77 -0
  675. package/src/hooks/__tests__/useStateForKey.test.tsx +257 -0
  676. package/src/hooks/useAsyncData.ts +3 -3
  677. package/src/hooks/useDataSourceDiscovery.ts +6 -4
  678. package/src/hooks/useDebounce.ts +6 -10
  679. package/src/hooks/useDeepCompareMemoize.ts +1 -1
  680. package/src/hooks/useDelayElapsed.ts +14 -10
  681. package/src/hooks/useElapsedTime.ts +3 -3
  682. package/src/hooks/useEventListener.ts +1 -2
  683. package/src/hooks/useInputHistory.ts +4 -7
  684. package/src/hooks/useInternalStateWithSync.ts +6 -6
  685. package/src/hooks/useResizeObserver.ts +4 -7
  686. package/src/hooks/useScript.ts +67 -70
  687. package/src/hooks/useStateForKey.ts +93 -0
  688. package/src/mount.tsx +20 -15
  689. package/src/plugins/__tests__/plugin-object-schemas.test.ts +104 -0
  690. package/src/plugins/core/RenderHTML.tsx +3 -5
  691. package/src/plugins/core/__test__/RenderHTML-copy.test.tsx +60 -0
  692. package/src/plugins/core/registerReactComponent.tsx +5 -14
  693. package/src/plugins/impl/CodeEditorPlugin.tsx +1 -1
  694. package/src/plugins/impl/DataEditorPlugin.tsx +34 -9
  695. package/src/plugins/impl/DataTablePlugin.tsx +69 -37
  696. package/src/plugins/impl/DropdownPlugin.tsx +2 -6
  697. package/src/plugins/impl/FileBrowserPlugin.tsx +4 -16
  698. package/src/plugins/impl/FormPlugin.tsx +1 -1
  699. package/src/plugins/impl/RangeSliderPlugin.tsx +16 -2
  700. package/src/plugins/impl/RefreshPlugin.tsx +1 -0
  701. package/src/plugins/impl/SliderPlugin.tsx +6 -8
  702. package/src/plugins/impl/__tests__/DataEditorPlugin.test.ts +93 -4
  703. package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +387 -1
  704. package/src/plugins/impl/__tests__/FileBrowserPlugin.test.tsx +45 -0
  705. package/src/plugins/impl/__tests__/RangeSliderPlugin.test.tsx +109 -0
  706. package/src/plugins/impl/__tests__/SliderPlugin.test.tsx +24 -3
  707. package/src/plugins/impl/anywidget/__tests__/registry.test.ts +153 -0
  708. package/src/plugins/impl/anywidget/__tests__/widget-binding.test.ts +241 -2
  709. package/src/plugins/impl/anywidget/model.ts +3 -1
  710. package/src/plugins/impl/anywidget/registry.ts +18 -14
  711. package/src/plugins/impl/anywidget/runtime.ts +21 -9
  712. package/src/plugins/impl/anywidget/widget-binding.ts +160 -82
  713. package/src/plugins/impl/chat/__tests__/chat-prompts.test.tsx +93 -0
  714. package/src/plugins/impl/chat/chat-ui.tsx +17 -15
  715. package/src/plugins/impl/code/any-language-editor.tsx +2 -2
  716. package/src/plugins/impl/common/error-banner.tsx +5 -3
  717. package/src/plugins/impl/data-editor/__tests__/column-types.test.ts +37 -0
  718. package/src/plugins/impl/data-editor/__tests__/editor-state.test.ts +52 -1
  719. package/src/plugins/impl/data-editor/__tests__/glide-data-editor.test.tsx +113 -1
  720. package/src/plugins/impl/data-editor/__tests__/glide-utils.test.ts +116 -0
  721. package/src/plugins/impl/data-editor/column-types.ts +52 -0
  722. package/src/plugins/impl/data-editor/editor-state.ts +18 -2
  723. package/src/plugins/impl/data-editor/glide-data-editor.tsx +73 -12
  724. package/src/plugins/impl/data-editor/glide-utils.ts +33 -10
  725. package/src/plugins/impl/data-editor/types.ts +7 -0
  726. package/src/plugins/impl/data-explorer/ConnectedDataExplorerComponent.tsx +1 -1
  727. package/src/plugins/impl/data-explorer/components/column-summary.tsx +4 -2
  728. package/src/plugins/impl/data-explorer/state/reducer.ts +1 -1
  729. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +1 -2
  730. package/src/plugins/impl/data-frames/__tests__/sidebar.test.tsx +160 -0
  731. package/src/plugins/impl/data-frames/forms/__tests__/__snapshots__/form.test.tsx.snap +66 -66
  732. package/src/plugins/impl/data-frames/panel.tsx +44 -16
  733. package/src/plugins/impl/mpl-interactive/MplInteractivePlugin.tsx +5 -3
  734. package/src/plugins/impl/panel/PanelPlugin.tsx +16 -17
  735. package/src/plugins/impl/panel/__tests__/utils.test.ts +39 -1
  736. package/src/plugins/impl/panel/utils.ts +17 -0
  737. package/src/plugins/impl/plotly/PlotlyPlugin.tsx +2 -5
  738. package/src/plugins/impl/plotly/selection.ts +25 -19
  739. package/src/plugins/impl/vega/VegaPlugin.tsx +2 -3
  740. package/src/plugins/impl/vega/make-selectable.ts +4 -7
  741. package/src/plugins/layout/DownloadPlugin.tsx +7 -11
  742. package/src/plugins/layout/RoutesPlugin.tsx +1 -1
  743. package/src/plugins/layout/__test__/DownloadPlugin.test.tsx +205 -0
  744. package/src/stories/__tests__/editor-story.test.tsx +33 -0
  745. package/src/stories/button.stories.tsx +1 -0
  746. package/src/stories/cell-status.stories.tsx +17 -10
  747. package/src/stories/cell.stories.tsx +2 -36
  748. package/src/stories/data-table.stories.tsx +31 -0
  749. package/src/stories/editor.stories.tsx +24 -17
  750. package/src/stories/form-wrapper.stories.tsx +2 -2
  751. package/src/stories/layout/vertical/one-column.stories.tsx +28 -32
  752. package/src/stories/runtime-story.tsx +23 -17
  753. package/src/stories/select.stories.tsx +2 -2
  754. package/src/stories/switchable-multi-select.stories.tsx +1 -1
  755. package/src/utils/__tests__/arrays.test.ts +35 -0
  756. package/src/utils/__tests__/batch-requests.test.ts +3 -3
  757. package/src/utils/__tests__/{createReducer.test.ts → createReducer.test.tsx} +127 -1
  758. package/src/utils/__tests__/download.test.tsx +183 -23
  759. package/src/utils/__tests__/numbers.test.ts +105 -1
  760. package/src/utils/__tests__/objects.test.ts +21 -0
  761. package/src/utils/arrays.ts +11 -2
  762. package/src/utils/blob.ts +1 -1
  763. package/src/utils/createReducer.ts +115 -79
  764. package/src/utils/download.ts +67 -6
  765. package/src/utils/maps.ts +0 -3
  766. package/src/utils/numbers.ts +79 -18
  767. package/src/utils/objects.ts +4 -9
  768. package/src/utils/time.ts +10 -0
  769. package/src/utils/tracer.ts +9 -5
  770. package/src/utils/zod-utils.ts +1 -3
  771. package/dist/_baseMerge-BiGRwuqv.js +0 -165
  772. package/dist/any-language-editor-D4q-IFcM.js +0 -76
  773. package/dist/assets/__vite-browser-external-BXYkiFsk.js +0 -1
  774. package/dist/assets/worker-HPY9fbhz.js +0 -114
  775. package/dist/dropdown-menu-DHP9P4VE.js +0 -4678
  776. package/dist/feedback-button-B2JRVQRd.js +0 -379
  777. package/dist/hasIn-o2Us0uVx.js +0 -132
  778. package/dist/html-to-image-DWTzN7q3.js +0 -3251
  779. package/dist/isArrayLikeObject-BZl-15ir.js +0 -450
  780. package/dist/isEmpty-BSZ1LaUo.js +0 -35
  781. package/dist/isSymbol-kQcfYbNX.js +0 -8
  782. package/dist/label-DoysmLMW.js +0 -281
  783. package/dist/mermaid-HWGCJPDP-ByCsZnYF.js +0 -2
  784. package/dist/pick-CJeoxYOS.js +0 -51
  785. package/dist/precisionRound-DMIVQrt2.js +0 -97
  786. package/dist/select-DemoKT4G.js +0 -1344
  787. package/dist/toDate-CJWU9dyl.js +0 -1185
  788. package/dist/toast-PkdZraM8.js +0 -1830
  789. package/dist/use-restore-focus-CKjfFjLM.js +0 -6369
  790. package/dist/useLifecycle-BGWzTwHK.js +0 -169
  791. package/dist/useTheme-BhQvec43.js +0 -904
  792. package/src/components/chat/reasoning-accordion.tsx +0 -61
  793. package/src/components/chat/tool-call/tool-error-card.tsx +0 -81
  794. package/src/components/chat/tool-call/tool-history-row.tsx +0 -174
  795. package/src/components/editor/ai/__tests__/staged-cell-submission.test.ts +0 -106
  796. package/src/components/editor/ai/add-cell-with-ai.tsx +0 -506
  797. package/src/components/editor/ai/staged-cell-submission.ts +0 -46
  798. package/src/components/editor/cell/__tests__/StagedAICell.test.tsx +0 -64
  799. package/src/components/editor/cell/code/__tests__/rtc-editor-config.test.ts +0 -50
  800. package/src/components/editor/chrome/wrapper/footer-items/rtc-status.tsx +0 -65
  801. package/src/components/editor/navigation/__tests__/state.test.ts +0 -81
  802. package/src/components/editor/navigation/state.ts +0 -65
  803. package/src/components/icons/loading-ellipsis.tsx +0 -46
  804. package/src/core/ai/tools/__tests__/run-cells-tool.test.ts +0 -656
  805. package/src/core/ai/tools/run-cells-tool.ts +0 -303
  806. package/src/core/attachments/state.ts +0 -18
  807. package/src/core/cells/__tests__/apply-transaction.test.ts +0 -991
  808. package/src/core/cells/__tests__/document-changes.test.ts +0 -1140
  809. package/src/core/cells/__tests__/document-roundtrip.test.ts +0 -392
  810. package/src/core/cells/document-changes.ts +0 -944
  811. package/src/core/codemirror/rtc/extension.ts +0 -453
  812. package/src/core/codemirror/rtc/loro/__tests__/sync.test.ts +0 -52
  813. package/src/core/codemirror/rtc/loro/awareness.ts +0 -531
  814. package/src/core/codemirror/rtc/loro/colors.ts +0 -38
  815. package/src/core/codemirror/rtc/loro/sync.ts +0 -168
  816. package/src/core/host/AGENTS.md +0 -11
  817. package/src/core/host/__tests__/events.test.ts +0 -46
  818. package/src/core/host/__tests__/fixtures.ts +0 -39
  819. package/src/core/host/__tests__/notebook-client.test.ts +0 -433
  820. package/src/core/host/__tests__/protocol.test.ts +0 -214
  821. package/src/core/host/__tests__/stream.test.ts +0 -209
  822. package/src/core/host/connection.ts +0 -81
  823. package/src/core/host/events.ts +0 -61
  824. package/src/core/host/notebook-client.ts +0 -290
  825. package/src/core/host/protocol.ts +0 -1945
  826. package/src/core/host/resources/resource.ts +0 -47
  827. package/src/core/host/stream.ts +0 -211
  828. package/src/core/rtc/state.ts +0 -34
  829. package/src/core/state/__tests__/jotai.test.ts +0 -25
  830. package/src/core/wasm/worker/message-buffer.ts +0 -33
  831. package/src/core/websocket/__tests__/createConnectionTransport.test.ts +0 -49
  832. package/src/core/websocket/__tests__/useNotebookClient.hook.test.tsx +0 -170
  833. package/src/core/websocket/state.ts +0 -7
  834. package/src/core/websocket/transports/__tests__/basic.test.ts +0 -275
  835. package/src/core/websocket/transports/__tests__/sse.test.ts +0 -335
  836. package/src/core/websocket/transports/__tests__/transport.test.ts +0 -308
  837. package/src/core/websocket/transports/__tests__/ws.test.ts +0 -125
  838. package/src/core/websocket/transports/basic.ts +0 -102
  839. package/src/core/websocket/transports/create.ts +0 -31
  840. package/src/core/websocket/transports/sse.ts +0 -308
  841. package/src/core/websocket/transports/transport.ts +0 -50
  842. package/src/core/websocket/transports/ws.ts +0 -98
  843. package/src/core/websocket/useNotebookClient.ts +0 -88
  844. package/src/utils/__tests__/id-tree.test.ts +0 -2145
  845. package/src/utils/id-tree.tsx +0 -1134
  846. /package/src/{core/attachments/toast.ts → components/editor/agent-toast.ts} +0 -0
  847. /package/src/core/{websocket → session}/connection-utils.ts +0 -0
@@ -0,0 +1,1200 @@
1
+ import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
2
+ import { h as t, m as n, p as r, s as i, u as a } from "./button-0-RqY1DW.js";
3
+ import { t as o } from "./react-sHtZdjeP.js";
4
+ import { t as s } from "./compiler-runtime-CldRdSsv.js";
5
+ import { c, h as l, l as u, p as d, s as f, u as p } from "./tooltip-BfcDQd2j.js";
6
+ import { t as m } from "./check-gUSZbRsl.js";
7
+ import { a as h, s as g } from "./assertNever-DIU3JJbt.js";
8
+ import { t as _ } from "./react-dom-DUmH0GXv.js";
9
+ import { t as v } from "./jsx-runtime-3BD1kT0s.js";
10
+ import { A as y, C as b, D as x, F as S, I as C, M as w, N as T, P as E, S as ee, a as D, c as O, j as k, k as A, o as j, v as te, x as ne, y as re } from "./use-restore-focus-CmflVLWJ.js";
11
+ var M = l("chevron-down", [["path", {
12
+ d: "m6 9 6 6 6-6",
13
+ key: "qrunsl"
14
+ }]]), ie = l("chevron-up", [["path", {
15
+ d: "m18 15-6-6-6 6",
16
+ key: "153udz"
17
+ }]]), N = /* @__PURE__ */ e(_(), 1), P = /* @__PURE__ */ e(o(), 1), F = v(), I = Object.defineProperty, ae = (e, t) => I(e, "name", {
18
+ value: t,
19
+ configurable: !0
20
+ }), L = {
21
+ LTR: "ltr",
22
+ RTL: "rtl"
23
+ }, R = P.createContext(void 0);
24
+ function z(e) {
25
+ let t = P.useContext(R);
26
+ return e || t || L.LTR;
27
+ }
28
+ ae(z, "useDirection");
29
+ //#endregion
30
+ //#region ../node_modules/.pnpm/@radix-ui+react-label@2.1.17_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react@_099847eca268dc359e5086947d5ece66/node_modules/@radix-ui/react-label/dist/index.mjs
31
+ var B = Object.defineProperty, V = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ ((e, t) => B(e, "name", {
32
+ value: t,
33
+ configurable: !0
34
+ }))(function(e, t) {
35
+ return /* @__PURE__ */ (0, F.jsx)(C.label, {
36
+ ...e,
37
+ ref: t,
38
+ onMouseDown: (t) => {
39
+ t.target.closest("button, input, select, textarea") || (e.onMouseDown?.(t), !t.defaultPrevented && t.detail > 1 && t.preventDefault());
40
+ }
41
+ });
42
+ }, "Label")), oe = Object.defineProperty, se = (e, t) => oe(e, "name", {
43
+ value: t,
44
+ configurable: !0
45
+ });
46
+ function H(e, [t, n]) {
47
+ return Math.min(n, Math.max(t, e));
48
+ }
49
+ se(H, "clamp");
50
+ //#endregion
51
+ //#region ../node_modules/.pnpm/@radix-ui+react-select@2.4.1_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react@_41875abfe3e9c9a7ec650dda663f0eb9/node_modules/@radix-ui/react-select/dist/index.mjs
52
+ var ce = Object.defineProperty, U = (e, t) => ce(e, "name", {
53
+ value: t,
54
+ configurable: !0
55
+ }), le = {
56
+ ItemAligned: "item-aligned",
57
+ Popper: "popper"
58
+ }, ue = {
59
+ LTR: "ltr",
60
+ RTL: "rtl"
61
+ }, de = [
62
+ " ",
63
+ "Enter",
64
+ "ArrowUp",
65
+ "ArrowDown"
66
+ ], fe = [" ", "Enter"], W = "Select", [G, pe, me] = h(W), [K, he] = S(W, [me, p]), ge = p(), [_e, q] = K(W), [ve, ye] = K(W);
67
+ function be(e) {
68
+ let { __scopeSelect: t, children: n, open: r, defaultOpen: i, onOpenChange: a, value: o, defaultValue: s, onValueChange: c, dir: l, name: u, autoComplete: d, disabled: p, required: m, form: h, internal_do_not_use_render: g } = e, _ = ge(t), [v, b] = P.useState(null), [x, S] = P.useState(null), [C, T] = P.useState(!1), E = z(l), [ee, D] = w({
69
+ prop: r,
70
+ defaultProp: i ?? !1,
71
+ onChange: a,
72
+ caller: W
73
+ }), [O, k] = w({
74
+ prop: o,
75
+ defaultProp: s,
76
+ onChange: c,
77
+ caller: W
78
+ }), A = P.useRef(null), j = P.useRef(!1), [te, ne] = P.useState(null), re = /* @__PURE__ */ U((e) => {
79
+ ne({
80
+ value: e,
81
+ hasConsumerStoppedPropagation: j.current
82
+ }), k(e);
83
+ }, "handleUserSelect"), M = P.useRef(O);
84
+ P.useEffect(() => {
85
+ let e = h ? v?.ownerDocument.getElementById(h) : v?.form;
86
+ if (e instanceof HTMLFormElement) {
87
+ let t = /* @__PURE__ */ U(() => k(M.current), "reset");
88
+ return e.addEventListener("reset", t), () => e.removeEventListener("reset", t);
89
+ }
90
+ }, [
91
+ h,
92
+ v,
93
+ k
94
+ ]);
95
+ let ie = !v || !!h || !!v.closest("form"), [N, I] = P.useState(/* @__PURE__ */ new Set()), ae = y(), L = Array.from(N).map((e) => e.props.value).join(";"), R = P.useCallback((e) => {
96
+ I((t) => new Set(t).add(e));
97
+ }, []), B = P.useCallback((e) => {
98
+ I((t) => {
99
+ let n = new Set(t);
100
+ return n.delete(e), n;
101
+ });
102
+ }, []), V = {
103
+ required: m,
104
+ trigger: v,
105
+ onTriggerChange: b,
106
+ valueNode: x,
107
+ onValueNodeChange: S,
108
+ valueNodeHasChildren: C,
109
+ onValueNodeHasChildrenChange: T,
110
+ contentId: ae,
111
+ value: O,
112
+ onValueChange: k,
113
+ hasConsumerStoppedPropagationRef: j,
114
+ userSelection: te,
115
+ onUserSelect: re,
116
+ open: ee,
117
+ onOpenChange: D,
118
+ dir: E,
119
+ triggerPointerDownPosRef: A,
120
+ disabled: p,
121
+ name: u,
122
+ autoComplete: d,
123
+ form: h,
124
+ nativeOptions: N,
125
+ nativeSelectKey: L,
126
+ isFormControl: ie
127
+ };
128
+ return /* @__PURE__ */ (0, F.jsx)(f, {
129
+ ..._,
130
+ children: /* @__PURE__ */ (0, F.jsx)(_e, {
131
+ scope: t,
132
+ ...V,
133
+ children: /* @__PURE__ */ (0, F.jsx)(G.Provider, {
134
+ scope: t,
135
+ children: /* @__PURE__ */ (0, F.jsx)(ve, {
136
+ scope: t,
137
+ onNativeOptionAdd: R,
138
+ onNativeOptionRemove: B,
139
+ children: ct(g) ? g(V) : n
140
+ })
141
+ })
142
+ })
143
+ });
144
+ }
145
+ U(be, "SelectProvider");
146
+ var xe = /* @__PURE__ */ U((e) => {
147
+ let { __scopeSelect: t, children: n, ...r } = e;
148
+ return /* @__PURE__ */ (0, F.jsx)(be, {
149
+ __scopeSelect: t,
150
+ ...r,
151
+ internal_do_not_use_render: ({ isFormControl: e }) => /* @__PURE__ */ (0, F.jsxs)(F.Fragment, { children: [n, e ? /* @__PURE__ */ (0, F.jsx)(st, { __scopeSelect: t }) : null] })
152
+ });
153
+ }, "Select"), Se = "SelectTrigger", Ce = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function(e, t) {
154
+ let { __scopeSelect: n, disabled: i = !1, ...a } = e, o = ge(n), s = q(Se, n), l = s.disabled || i, u = r(t, s.onTriggerChange), d = pe(n), f = P.useRef("touch"), [p, m, h] = lt((e) => {
155
+ let t = d().filter((e) => !e.disabled), n = ut(t, e, t.find((e) => e.value === s.value));
156
+ n !== void 0 && s.onUserSelect(n.value);
157
+ }), g = /* @__PURE__ */ U((e) => {
158
+ l || (s.onOpenChange(!0), h()), e && (s.triggerPointerDownPosRef.current = {
159
+ x: Math.round(e.pageX),
160
+ y: Math.round(e.pageY)
161
+ });
162
+ }, "handleOpen");
163
+ return /* @__PURE__ */ (0, F.jsx)(c, {
164
+ asChild: !0,
165
+ ...o,
166
+ children: /* @__PURE__ */ (0, F.jsx)(C.button, {
167
+ type: "button",
168
+ role: "combobox",
169
+ "aria-controls": s.open ? s.contentId : void 0,
170
+ "aria-expanded": s.open,
171
+ "aria-required": s.required,
172
+ "aria-autocomplete": "none",
173
+ dir: s.dir,
174
+ "data-state": s.open ? "open" : "closed",
175
+ disabled: l,
176
+ "data-disabled": l ? "" : void 0,
177
+ "data-placeholder": Z(s.value) ? "" : void 0,
178
+ ...a,
179
+ ref: u,
180
+ onClick: T(a.onClick, (e) => {
181
+ e.currentTarget.focus(), f.current !== "mouse" && g(e);
182
+ }),
183
+ onPointerDown: T(a.onPointerDown, (e) => {
184
+ f.current = e.pointerType;
185
+ let t = e.target;
186
+ t.hasPointerCapture(e.pointerId) && t.releasePointerCapture(e.pointerId), e.button === 0 && e.ctrlKey === !1 && e.pointerType === "mouse" && (g(e), e.preventDefault());
187
+ }),
188
+ onKeyDown: T(a.onKeyDown, (e) => {
189
+ let t = p.current !== "";
190
+ !(e.ctrlKey || e.altKey || e.metaKey) && e.key.length === 1 && (s.hasConsumerStoppedPropagationRef.current = e.isPropagationStopped(), m(e.key)), !(t && e.key === " ") && de.includes(e.key) && (g(), e.preventDefault());
191
+ })
192
+ })
193
+ });
194
+ }, "SelectTrigger")), we = "SelectValue", Te = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function(e, t) {
195
+ let { __scopeSelect: n, className: i, style: a, children: o, placeholder: s = "", ...c } = e, l = q(we, n), { onValueNodeHasChildrenChange: u } = l, d = o !== void 0, f = r(t, l.onValueNodeChange);
196
+ E(() => {
197
+ u(d);
198
+ }, [u, d]);
199
+ let p = Z(l.value);
200
+ return /* @__PURE__ */ (0, F.jsx)(C.span, {
201
+ ...c,
202
+ asChild: !p && c.asChild,
203
+ ref: f,
204
+ style: { pointerEvents: "none" },
205
+ children: /* @__PURE__ */ (0, F.jsx)(P.Fragment, { children: p ? s : o }, p ? "placeholder" : "value")
206
+ });
207
+ }, "SelectValue")), Ee = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function(e, t) {
208
+ let { __scopeSelect: n, children: r, ...i } = e;
209
+ return /* @__PURE__ */ (0, F.jsx)(C.span, {
210
+ "aria-hidden": !0,
211
+ ...i,
212
+ ref: t,
213
+ children: r || "▼"
214
+ });
215
+ }, "SelectIcon")), [De, Oe] = K("SelectPortal", { forceMount: void 0 }), ke = /* @__PURE__ */ U((e) => {
216
+ let { __scopeSelect: t, forceMount: n, ...r } = e;
217
+ return /* @__PURE__ */ (0, F.jsx)(De, {
218
+ scope: e.__scopeSelect,
219
+ forceMount: n,
220
+ children: /* @__PURE__ */ (0, F.jsx)(ee, {
221
+ asChild: !0,
222
+ ...r
223
+ })
224
+ });
225
+ }, "SelectPortal"), J = "SelectContent", Ae = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function(e, t) {
226
+ let n = Oe(J, e.__scopeSelect), { forceMount: r = n.forceMount, ...i } = e, a = q(J, e.__scopeSelect), [o, s] = P.useState();
227
+ return E(() => {
228
+ s(new DocumentFragment());
229
+ }, []), /* @__PURE__ */ (0, F.jsx)(k, {
230
+ present: r || a.open,
231
+ children: ({ present: e }) => e ? /* @__PURE__ */ (0, F.jsx)(Pe, {
232
+ ...i,
233
+ ref: t
234
+ }) : /* @__PURE__ */ (0, F.jsx)(je, {
235
+ ...i,
236
+ fragment: o
237
+ })
238
+ });
239
+ }, "SelectContent")), je = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function(e, t) {
240
+ let { __scopeSelect: n, children: r, fragment: i } = e;
241
+ return i ? N.createPortal(/* @__PURE__ */ (0, F.jsx)(Me, {
242
+ scope: n,
243
+ children: /* @__PURE__ */ (0, F.jsx)(G.Slot, {
244
+ scope: n,
245
+ children: /* @__PURE__ */ (0, F.jsx)("div", {
246
+ ref: t,
247
+ children: r
248
+ })
249
+ })
250
+ }), i) : null;
251
+ }, "SelectContentFragment")), Y = 10, [Me, X] = K(J), Ne = a("SelectContent.RemoveScroll"), Pe = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function(e, t) {
252
+ let { __scopeSelect: n } = e, { position: i = le.ItemAligned, onCloseAutoFocus: a, onEscapeKeyDown: o, onPointerDownOutside: s, side: c, sideOffset: l, align: u, alignOffset: d, arrowPadding: f, collisionBoundary: p, collisionPadding: m, sticky: h, hideWhenDetached: g, avoidCollisions: _, ...v } = e, y = q(J, n), [S, C] = P.useState(null), [w, E] = P.useState(null), ee = r(t, C), [D, O] = P.useState(null), [k, A] = P.useState(null), j = pe(n), [M, ie] = P.useState(!1), N = P.useRef(!1), I = P.useRef(!1), ae = P.useRef(!1);
253
+ P.useEffect(() => {
254
+ if (S) return te(S);
255
+ }, [S]), ne();
256
+ let L = P.useCallback((e) => {
257
+ let [t, ...n] = j().map((e) => e.ref.current), [r] = n.slice(-1), i = document.activeElement;
258
+ for (let n of e) if (n === i || (n?.scrollIntoView({ block: "nearest" }), n === t && w && (w.scrollTop = 0), n === r && w && (w.scrollTop = w.scrollHeight), n?.focus(), document.activeElement !== i)) return;
259
+ }, [j, w]), R = P.useCallback(() => L([D, S]), [
260
+ L,
261
+ D,
262
+ S
263
+ ]);
264
+ P.useEffect(() => {
265
+ M && R();
266
+ }, [M, R]);
267
+ let { onOpenChange: z, triggerPointerDownPosRef: B } = y;
268
+ P.useEffect(() => {
269
+ if (S) {
270
+ let e = {
271
+ x: 0,
272
+ y: 0
273
+ }, t = /* @__PURE__ */ U((t) => {
274
+ e = {
275
+ x: Math.abs(Math.round(t.pageX) - (B.current?.x ?? 0)),
276
+ y: Math.abs(Math.round(t.pageY) - (B.current?.y ?? 0))
277
+ };
278
+ }, "handlePointerMove"), n = /* @__PURE__ */ U((n) => {
279
+ e.x <= 10 && e.y <= 10 ? n.preventDefault() : n.composedPath().includes(S) || z(!1), document.removeEventListener("pointermove", t), B.current = null;
280
+ }, "handlePointerUp");
281
+ return B.current !== null && (document.addEventListener("pointermove", t), document.addEventListener("pointerup", n, {
282
+ capture: !0,
283
+ once: !0
284
+ })), () => {
285
+ document.removeEventListener("pointermove", t), document.removeEventListener("pointerup", n, { capture: !0 });
286
+ };
287
+ }
288
+ }, [
289
+ S,
290
+ z,
291
+ B
292
+ ]), P.useEffect(() => {
293
+ let e = /* @__PURE__ */ U(() => z(!1), "close");
294
+ return window.addEventListener("blur", e), window.addEventListener("resize", e), () => {
295
+ window.removeEventListener("blur", e), window.removeEventListener("resize", e);
296
+ };
297
+ }, [z]);
298
+ let [V, oe] = lt((e) => {
299
+ let t = j().filter((e) => !e.disabled), n = ut(t, e, t.find((e) => e.ref.current === document.activeElement));
300
+ n && setTimeout(() => n.ref.current?.focus());
301
+ }), se = P.useCallback((e, t, n) => {
302
+ let r = !I.current;
303
+ r && (I.current = !0);
304
+ let i = !N.current && !n;
305
+ y.value !== void 0 && y.value === t || i ? (O(e), i && (N.current = !0)) : r && O(e);
306
+ }, [y.value]), H = P.useCallback(() => S?.focus(), [S]), ce = P.useCallback((e, t, n) => {
307
+ if (!e) return;
308
+ let r = !ae.current;
309
+ r && (ae.current = !0);
310
+ let i = !N.current && !n;
311
+ (y.value !== void 0 && y.value === t || i || r) && A(e);
312
+ }, [y.value]), ue = i === le.Popper ? Ie : Fe, de = ue === Ie ? {
313
+ side: c,
314
+ sideOffset: l,
315
+ align: u,
316
+ alignOffset: d,
317
+ arrowPadding: f,
318
+ collisionBoundary: p,
319
+ collisionPadding: m,
320
+ sticky: h,
321
+ hideWhenDetached: g,
322
+ avoidCollisions: _
323
+ } : {};
324
+ return /* @__PURE__ */ (0, F.jsx)(Me, {
325
+ scope: n,
326
+ content: S,
327
+ viewport: w,
328
+ onViewportChange: E,
329
+ itemRefCallback: se,
330
+ selectedItem: D,
331
+ onItemLeave: H,
332
+ itemTextRefCallback: ce,
333
+ focusSelectedItem: R,
334
+ selectedItemText: k,
335
+ position: i,
336
+ isPositioned: M,
337
+ searchRef: V,
338
+ children: /* @__PURE__ */ (0, F.jsx)(re, {
339
+ as: Ne,
340
+ allowPinchZoom: !0,
341
+ children: /* @__PURE__ */ (0, F.jsx)(b, {
342
+ asChild: !0,
343
+ trapped: y.open,
344
+ onMountAutoFocus: (e) => {
345
+ e.preventDefault();
346
+ },
347
+ onUnmountAutoFocus: T(a, (e) => {
348
+ y.trigger?.focus({ preventScroll: !0 }), e.preventDefault();
349
+ }),
350
+ children: /* @__PURE__ */ (0, F.jsx)(x, {
351
+ asChild: !0,
352
+ disableOutsidePointerEvents: !0,
353
+ onEscapeKeyDown: o,
354
+ onPointerDownOutside: s,
355
+ onFocusOutside: (e) => e.preventDefault(),
356
+ onDismiss: () => y.onOpenChange(!1),
357
+ children: /* @__PURE__ */ (0, F.jsx)(ue, {
358
+ role: "listbox",
359
+ id: y.contentId,
360
+ "data-state": y.open ? "open" : "closed",
361
+ dir: y.dir,
362
+ onContextMenu: (e) => e.preventDefault(),
363
+ ...v,
364
+ ...de,
365
+ onPlaced: () => ie(!0),
366
+ ref: ee,
367
+ style: {
368
+ display: "flex",
369
+ flexDirection: "column",
370
+ outline: "none",
371
+ ...v.style
372
+ },
373
+ onKeyDown: T(v.onKeyDown, (e) => {
374
+ let t = e.ctrlKey || e.altKey || e.metaKey;
375
+ if (e.key === "Tab" && e.preventDefault(), !t && e.key.length === 1 && oe(e.key), [
376
+ "ArrowUp",
377
+ "ArrowDown",
378
+ "Home",
379
+ "End"
380
+ ].includes(e.key)) {
381
+ let t = j().filter((e) => !e.disabled).map((e) => e.ref.current);
382
+ if (["ArrowUp", "End"].includes(e.key) && (t = t.slice().reverse()), ["ArrowUp", "ArrowDown"].includes(e.key)) {
383
+ let n = e.target, r = t.indexOf(n);
384
+ t = t.slice(r + 1);
385
+ }
386
+ setTimeout(() => L(t)), e.preventDefault();
387
+ }
388
+ })
389
+ })
390
+ })
391
+ })
392
+ })
393
+ });
394
+ }, "SelectContentImpl")), Fe = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function(e, t) {
395
+ let { __scopeSelect: n, onPlaced: i, ...a } = e, o = q(J, n), s = X(J, n), [c, l] = P.useState(null), [u, d] = P.useState(null), f = r(t, d), p = pe(n), m = P.useRef(!1), h = P.useRef(!0), { viewport: g, selectedItem: _, selectedItemText: v, focusSelectedItem: y } = s, b = P.useCallback(() => {
396
+ if (o.trigger && o.valueNode && c && u && g && _ && v) {
397
+ let e = o.trigger.getBoundingClientRect(), t = u.getBoundingClientRect(), n = o.valueNode.getBoundingClientRect(), r = v.getBoundingClientRect();
398
+ if (o.dir !== ue.RTL) {
399
+ let i = r.left - t.left, a = n.left - i, o = e.left - a, s = e.width + o, l = Math.max(s, t.width), u = window.innerWidth - Y, d = H(a, [Y, Math.max(Y, u - l)]);
400
+ c.style.minWidth = s + "px", c.style.left = d + "px";
401
+ } else {
402
+ let i = t.right - r.right, a = window.innerWidth - n.right - i, o = window.innerWidth - e.right - a, s = e.width + o, l = Math.max(s, t.width), u = window.innerWidth - Y, d = H(a, [Y, Math.max(Y, u - l)]);
403
+ c.style.minWidth = s + "px", c.style.right = d + "px";
404
+ }
405
+ let a = p(), s = window.innerHeight - Y * 2, l = g.scrollHeight, d = window.getComputedStyle(u), f = parseInt(d.borderTopWidth, 10), h = parseInt(d.paddingTop, 10), y = parseInt(d.borderBottomWidth, 10), b = parseInt(d.paddingBottom, 10), x = f + h + l + b + y, S = Math.min(_.offsetHeight * 5, x), C = window.getComputedStyle(g), w = parseInt(C.paddingTop, 10), T = parseInt(C.paddingBottom, 10), E = e.top + e.height / 2 - Y, ee = s - E, D = _.offsetHeight / 2, O = _.offsetTop + D, k = f + h + O, A = x - k;
406
+ if (k <= E) {
407
+ let e = a.length > 0 && _ === a[a.length - 1].ref.current;
408
+ c.style.bottom = "0px";
409
+ let t = u.clientHeight - g.offsetTop - g.offsetHeight, n = k + Math.max(ee, D + (e ? T : 0) + t + y);
410
+ c.style.height = n + "px";
411
+ } else {
412
+ let e = a.length > 0 && _ === a[0].ref.current;
413
+ c.style.top = "0px";
414
+ let t = Math.max(E, f + g.offsetTop + (e ? w : 0) + D) + A;
415
+ c.style.height = t + "px", g.scrollTop = k - E + g.offsetTop;
416
+ }
417
+ c.style.margin = `${Y}px 0`, c.style.minHeight = S + "px", c.style.maxHeight = s + "px", i?.(), requestAnimationFrame(() => m.current = !0);
418
+ }
419
+ }, [
420
+ p,
421
+ o.trigger,
422
+ o.valueNode,
423
+ c,
424
+ u,
425
+ g,
426
+ _,
427
+ v,
428
+ o.dir,
429
+ i
430
+ ]);
431
+ E(() => b(), [b]);
432
+ let [x, S] = P.useState();
433
+ E(() => {
434
+ u && S(window.getComputedStyle(u).zIndex);
435
+ }, [u]);
436
+ let w = P.useCallback((e) => {
437
+ e && h.current === !0 && (b(), y?.(), h.current = !1);
438
+ }, [b, y]);
439
+ return /* @__PURE__ */ (0, F.jsx)(Le, {
440
+ scope: n,
441
+ contentWrapper: c,
442
+ shouldExpandOnScrollRef: m,
443
+ onScrollButtonChange: w,
444
+ children: /* @__PURE__ */ (0, F.jsx)("div", {
445
+ ref: l,
446
+ style: {
447
+ display: "flex",
448
+ flexDirection: "column",
449
+ position: "fixed",
450
+ zIndex: x
451
+ },
452
+ children: /* @__PURE__ */ (0, F.jsx)(C.div, {
453
+ ...a,
454
+ ref: f,
455
+ style: {
456
+ boxSizing: "border-box",
457
+ maxHeight: "100%",
458
+ ...a.style
459
+ }
460
+ })
461
+ })
462
+ });
463
+ }, "SelectItemAlignedPosition")), Ie = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function(e, t) {
464
+ let { __scopeSelect: n, align: r = "start", collisionPadding: i = Y, ...a } = e, o = ge(n);
465
+ return /* @__PURE__ */ (0, F.jsx)(u, {
466
+ ...o,
467
+ ...a,
468
+ ref: t,
469
+ align: r,
470
+ collisionPadding: i,
471
+ style: {
472
+ boxSizing: "border-box",
473
+ ...a.style,
474
+ "--radix-select-content-transform-origin": "var(--radix-popper-transform-origin)",
475
+ "--radix-select-content-available-width": "var(--radix-popper-available-width)",
476
+ "--radix-select-content-available-height": "var(--radix-popper-available-height)",
477
+ "--radix-select-trigger-width": "var(--radix-popper-anchor-width)",
478
+ "--radix-select-trigger-height": "var(--radix-popper-anchor-height)"
479
+ }
480
+ });
481
+ }, "SelectPopperPosition")), [Le, Re] = K(J, {}), ze = "SelectViewport", Be = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function(e, t) {
482
+ let { __scopeSelect: n, nonce: i, ...a } = e, o = X(ze, n), s = Re(ze, n), c = r(t, o.onViewportChange), l = P.useRef(0);
483
+ return /* @__PURE__ */ (0, F.jsxs)(F.Fragment, { children: [/* @__PURE__ */ (0, F.jsx)("style", {
484
+ dangerouslySetInnerHTML: { __html: "[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}" },
485
+ nonce: i
486
+ }), /* @__PURE__ */ (0, F.jsx)(G.Slot, {
487
+ scope: n,
488
+ children: /* @__PURE__ */ (0, F.jsx)(C.div, {
489
+ "data-radix-select-viewport": "",
490
+ role: "presentation",
491
+ ...a,
492
+ ref: c,
493
+ style: {
494
+ position: "relative",
495
+ flex: 1,
496
+ overflow: "hidden auto",
497
+ ...a.style
498
+ },
499
+ onScroll: T(a.onScroll, (e) => {
500
+ let t = e.currentTarget, { contentWrapper: n, shouldExpandOnScrollRef: r } = s;
501
+ if (r?.current && n) {
502
+ let e = Math.abs(l.current - t.scrollTop);
503
+ if (e > 0) {
504
+ let r = window.innerHeight - Y * 2, i = parseFloat(n.style.minHeight), a = parseFloat(n.style.height), o = Math.max(i, a);
505
+ if (o < r) {
506
+ let i = o + e, a = Math.min(r, i), s = i - a;
507
+ n.style.height = a + "px", n.style.bottom === "0px" && (t.scrollTop = s > 0 ? s : 0, n.style.justifyContent = "flex-end");
508
+ }
509
+ }
510
+ }
511
+ l.current = t.scrollTop;
512
+ })
513
+ })
514
+ })] });
515
+ }, "SelectViewport")), [Ve, He] = K("SelectGroup"), Ue = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function(e, t) {
516
+ let { __scopeSelect: n, ...r } = e, i = y();
517
+ return /* @__PURE__ */ (0, F.jsx)(Ve, {
518
+ scope: n,
519
+ id: i,
520
+ children: /* @__PURE__ */ (0, F.jsx)(C.div, {
521
+ role: "group",
522
+ "aria-labelledby": i,
523
+ ...r,
524
+ ref: t
525
+ })
526
+ });
527
+ }, "SelectGroup")), We = "SelectLabel", Ge = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function(e, t) {
528
+ let { __scopeSelect: n, ...r } = e, i = He(We, n);
529
+ return /* @__PURE__ */ (0, F.jsx)(C.div, {
530
+ id: i.id,
531
+ ...r,
532
+ ref: t
533
+ });
534
+ }, "SelectLabel")), Ke = "SelectItem", [qe, Je] = K(Ke), Ye = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function(e, t) {
535
+ let { __scopeSelect: n, value: i, disabled: a = !1, textValue: o, ...s } = e, c = q(Ke, n), l = X(Ke, n), u = c.value === i, [d, f] = P.useState(o ?? ""), [p, m] = P.useState(!1), h = A((e) => l.itemRefCallback?.(e, i, a)), g = r(t, h), _ = y(), v = P.useRef("touch");
536
+ function b(e) {
537
+ c.hasConsumerStoppedPropagationRef.current = e.isPropagationStopped(), c.onUserSelect(i), c.onOpenChange(!1);
538
+ }
539
+ return U(b, "handleSelect"), /* @__PURE__ */ (0, F.jsx)(qe, {
540
+ scope: n,
541
+ value: i,
542
+ disabled: a,
543
+ textId: _,
544
+ isSelected: u,
545
+ onItemTextChange: P.useCallback((e) => {
546
+ f((t) => t || (e?.textContent ?? "").trim());
547
+ }, []),
548
+ children: /* @__PURE__ */ (0, F.jsx)(G.ItemSlot, {
549
+ scope: n,
550
+ value: i,
551
+ disabled: a,
552
+ textValue: d,
553
+ children: /* @__PURE__ */ (0, F.jsx)(C.div, {
554
+ role: "option",
555
+ "aria-labelledby": _,
556
+ "data-highlighted": p ? "" : void 0,
557
+ "aria-selected": u && p,
558
+ "data-state": u ? "checked" : "unchecked",
559
+ "aria-disabled": a || void 0,
560
+ "data-disabled": a ? "" : void 0,
561
+ tabIndex: a ? void 0 : -1,
562
+ ...s,
563
+ ref: g,
564
+ onFocus: T(s.onFocus, () => m(!0)),
565
+ onBlur: T(s.onBlur, () => m(!1)),
566
+ onClick: T(s.onClick, (e) => {
567
+ a || v.current !== "mouse" && b(e);
568
+ }),
569
+ onPointerUp: T(s.onPointerUp, (e) => {
570
+ a || v.current === "mouse" && b(e);
571
+ }),
572
+ onPointerDown: T(s.onPointerDown, (e) => {
573
+ v.current = e.pointerType;
574
+ }),
575
+ onPointerMove: T(s.onPointerMove, (e) => {
576
+ v.current = e.pointerType, a ? l.onItemLeave?.() : v.current === "mouse" && e.currentTarget.focus({ preventScroll: !0 });
577
+ }),
578
+ onPointerLeave: T(s.onPointerLeave, (e) => {
579
+ e.currentTarget === document.activeElement && l.onItemLeave?.();
580
+ }),
581
+ onKeyDown: T(s.onKeyDown, (e) => {
582
+ a || e.target !== e.currentTarget || (l.searchRef?.current === "" || e.key !== " ") && (fe.includes(e.key) && b(e), e.key === " " && e.preventDefault());
583
+ })
584
+ })
585
+ })
586
+ });
587
+ }, "SelectItem")), Xe = "SelectItemText", Ze = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function(e, t) {
588
+ let { __scopeSelect: n, className: i, style: a, ...o } = e, s = q(Xe, n), c = X(Xe, n), l = Je(Xe, n), u = ye(Xe, n), [d, f] = P.useState(null), p = A((e) => c.itemTextRefCallback?.(e, l.value, l.disabled)), m = r(t, f, l.onItemTextChange, p), h = d?.textContent, g = P.useMemo(() => /* @__PURE__ */ (0, F.jsx)("option", {
589
+ value: l.value,
590
+ disabled: l.disabled,
591
+ children: h
592
+ }, l.value), [
593
+ l.disabled,
594
+ l.value,
595
+ h
596
+ ]), { onNativeOptionAdd: _, onNativeOptionRemove: v } = u;
597
+ return E(() => (_(g), () => v(g)), [
598
+ _,
599
+ v,
600
+ g
601
+ ]), /* @__PURE__ */ (0, F.jsxs)(F.Fragment, { children: [/* @__PURE__ */ (0, F.jsx)(C.span, {
602
+ id: l.textId,
603
+ ...o,
604
+ ref: m
605
+ }), l.isSelected && s.valueNode && !s.valueNodeHasChildren && !Z(s.value) ? N.createPortal(o.children, s.valueNode) : null] });
606
+ }, "SelectItemText")), Qe = "SelectItemIndicator", $e = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function(e, t) {
607
+ let { __scopeSelect: n, ...r } = e;
608
+ return Je(Qe, n).isSelected ? /* @__PURE__ */ (0, F.jsx)(C.span, {
609
+ "aria-hidden": !0,
610
+ ...r,
611
+ ref: t
612
+ }) : null;
613
+ }, "SelectItemIndicator")), et = "SelectScrollUpButton", tt = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function(e, t) {
614
+ let n = X(et, e.__scopeSelect), i = Re(et, e.__scopeSelect), [a, o] = P.useState(!1), s = r(t, i.onScrollButtonChange);
615
+ return E(() => {
616
+ if (n.viewport && n.isPositioned) {
617
+ let e = function() {
618
+ let e = t.scrollTop > 0;
619
+ o(e);
620
+ };
621
+ U(e, "handleScroll");
622
+ let t = n.viewport;
623
+ return e(), t.addEventListener("scroll", e), () => t.removeEventListener("scroll", e);
624
+ }
625
+ }, [n.viewport, n.isPositioned]), a ? /* @__PURE__ */ (0, F.jsx)(it, {
626
+ ...e,
627
+ ref: s,
628
+ onAutoScroll: () => {
629
+ let { viewport: e, selectedItem: t } = n;
630
+ e && t && (e.scrollTop -= t.offsetHeight);
631
+ }
632
+ }) : null;
633
+ }, "SelectScrollUpButton")), nt = "SelectScrollDownButton", rt = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function(e, t) {
634
+ let n = X(nt, e.__scopeSelect), i = Re(nt, e.__scopeSelect), [a, o] = P.useState(!1), s = r(t, i.onScrollButtonChange);
635
+ return E(() => {
636
+ if (n.viewport && n.isPositioned) {
637
+ let e = function() {
638
+ let e = t.scrollHeight - t.clientHeight, n = Math.ceil(t.scrollTop) < e;
639
+ o(n);
640
+ };
641
+ U(e, "handleScroll");
642
+ let t = n.viewport;
643
+ return e(), t.addEventListener("scroll", e), () => t.removeEventListener("scroll", e);
644
+ }
645
+ }, [n.viewport, n.isPositioned]), a ? /* @__PURE__ */ (0, F.jsx)(it, {
646
+ ...e,
647
+ ref: s,
648
+ onAutoScroll: () => {
649
+ let { viewport: e, selectedItem: t } = n;
650
+ e && t && (e.scrollTop += t.offsetHeight);
651
+ }
652
+ }) : null;
653
+ }, "SelectScrollDownButton")), it = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function(e, t) {
654
+ let { __scopeSelect: n, onAutoScroll: r, ...i } = e, a = X("SelectScrollButton", n), o = P.useRef(null), s = pe(n), c = P.useCallback(() => {
655
+ o.current !== null && (window.clearInterval(o.current), o.current = null);
656
+ }, []);
657
+ return P.useEffect(() => () => c(), [c]), E(() => {
658
+ s().find((e) => e.ref.current === document.activeElement)?.ref.current?.scrollIntoView({ block: "nearest" });
659
+ }, [s]), /* @__PURE__ */ (0, F.jsx)(C.div, {
660
+ "aria-hidden": !0,
661
+ ...i,
662
+ ref: t,
663
+ style: {
664
+ flexShrink: 0,
665
+ ...i.style
666
+ },
667
+ onPointerDown: T(i.onPointerDown, () => {
668
+ o.current === null && (o.current = window.setInterval(r, 50));
669
+ }),
670
+ onPointerMove: T(i.onPointerMove, () => {
671
+ a.onItemLeave?.(), o.current === null && (o.current = window.setInterval(r, 50));
672
+ }),
673
+ onPointerLeave: T(i.onPointerLeave, () => {
674
+ c();
675
+ })
676
+ });
677
+ }, "SelectScrollButtonImpl")), at = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function(e, t) {
678
+ let { __scopeSelect: n, ...r } = e;
679
+ return /* @__PURE__ */ (0, F.jsx)(C.div, {
680
+ "aria-hidden": !0,
681
+ ...r,
682
+ ref: t
683
+ });
684
+ }, "SelectSeparator")), ot = "SelectBubbleInput", st = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ U(function({ __scopeSelect: e, ...t }, n) {
685
+ let i = q(ot, e), { value: a, onValueChange: o, required: s, disabled: c, name: l, autoComplete: u, form: f, userSelection: p } = i, { nativeOptions: m, nativeSelectKey: h } = i, g = P.useRef(null), _ = r(n, g), v = a ?? "", y = P.useRef(v), b = P.useRef(p), x = P.useRef(!1), S = Array.from(m).some((e) => (e.props.value ?? "") === "");
686
+ return P.useEffect(() => {
687
+ let e = g.current;
688
+ if (!e) return;
689
+ let t = window.HTMLSelectElement.prototype, n = Object.getOwnPropertyDescriptor(t, "value").set, r = p !== null && p !== b.current;
690
+ b.current = p;
691
+ let i = y.current !== v;
692
+ y.current = v;
693
+ let a = r && i;
694
+ if (r && !i && p.value !== v && !p.hasConsumerStoppedPropagation && n) {
695
+ x.current = !0;
696
+ try {
697
+ n.call(e, p.value), e.dispatchEvent(new Event("change", { bubbles: !0 }));
698
+ } finally {
699
+ x.current = !1, n.call(e, v);
700
+ }
701
+ return;
702
+ }
703
+ let o = a && !p.hasConsumerStoppedPropagation;
704
+ if (i && n) {
705
+ let t = new Event("change", { bubbles: o });
706
+ n.call(e, v), e.dispatchEvent(t);
707
+ }
708
+ }, [v, p]), /* @__PURE__ */ (0, F.jsxs)(C.select, {
709
+ "aria-hidden": !0,
710
+ required: s,
711
+ tabIndex: -1,
712
+ name: l,
713
+ autoComplete: u,
714
+ disabled: c,
715
+ form: f,
716
+ onChange: (e) => {
717
+ x.current || o(e.target.value);
718
+ },
719
+ ...t,
720
+ style: {
721
+ ...d,
722
+ ...t.style
723
+ },
724
+ ref: _,
725
+ defaultValue: v,
726
+ children: [Z(a) && !S ? /* @__PURE__ */ (0, F.jsx)("option", { value: "" }) : null, Array.from(m)]
727
+ }, h);
728
+ }, "SelectBubbleInput"));
729
+ function ct(e) {
730
+ return typeof e == "function";
731
+ }
732
+ U(ct, "isFunction");
733
+ function Z(e) {
734
+ return e === "" || e === void 0;
735
+ }
736
+ U(Z, "shouldShowPlaceholder");
737
+ function lt(e) {
738
+ let t = A(e), n = P.useRef(""), r = P.useRef(0), i = P.useCallback((e) => {
739
+ let i = n.current + e;
740
+ t(i);
741
+ function a(e) {
742
+ n.current = e, window.clearTimeout(r.current), e !== "" && (r.current = window.setTimeout(() => a(""), 1e3));
743
+ }
744
+ U(a, "updateSearch"), a(i);
745
+ }, [t]), a = P.useCallback(() => {
746
+ n.current = "", window.clearTimeout(r.current);
747
+ }, []);
748
+ return P.useEffect(() => () => window.clearTimeout(r.current), []), [
749
+ n,
750
+ i,
751
+ a
752
+ ];
753
+ }
754
+ U(lt, "useTypeaheadSearch");
755
+ function ut(e, t, n) {
756
+ let r = t.length > 1 && Array.from(t).every((e) => e === t[0]) ? t[0] : t, i = n ? e.indexOf(n) : -1, a = dt(e, Math.max(i, 0));
757
+ r.length === 1 && (a = a.filter((e) => e !== n));
758
+ let o = a.find((e) => e.textValue.toLowerCase().startsWith(r.toLowerCase()));
759
+ return o === n ? void 0 : o;
760
+ }
761
+ U(ut, "findNextItem");
762
+ function dt(e, t) {
763
+ return e.map((n, r) => e[(t + r) % e.length]);
764
+ }
765
+ U(dt, "wrapArray");
766
+ //#endregion
767
+ //#region ../node_modules/.pnpm/react-aria@3.52.1_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/react-aria/dist/private/ssr/SSRProvider.mjs
768
+ var ft = {
769
+ prefix: String(Math.round(Math.random() * 1e10)),
770
+ current: 0
771
+ }, pt = /*#__PURE__*/ P.createContext(ft), mt = /*#__PURE__*/ P.createContext(!1);
772
+ typeof window < "u" && window.document && window.document.createElement;
773
+ var ht = /* @__PURE__ */ new WeakMap();
774
+ function gt(e = !1) {
775
+ let t = (0, P.useContext)(pt), n = (0, P.useRef)(null);
776
+ if (n.current === null && !e) {
777
+ let e = P.default.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED?.ReactCurrentOwner?.current;
778
+ if (e) {
779
+ let n = ht.get(e);
780
+ n == null ? ht.set(e, {
781
+ id: t.current,
782
+ state: e.memoizedState
783
+ }) : e.memoizedState !== n.state && (t.current = n.id, ht.delete(e));
784
+ }
785
+ n.current = ++t.current;
786
+ }
787
+ return n.current;
788
+ }
789
+ function _t(e) {
790
+ let t = (0, P.useContext)(pt), n = gt(!!e), r = `react-aria${t.prefix}`;
791
+ return e || `${r}-${n}`;
792
+ }
793
+ function vt(e) {
794
+ let t = P.useId(), [n] = (0, P.useState)(Ct()), r = n ? "react-aria" : `react-aria${ft.prefix}`;
795
+ return e || `${r}-${t}`;
796
+ }
797
+ var yt = typeof P.useId == "function" ? vt : _t;
798
+ function bt() {
799
+ return !1;
800
+ }
801
+ function xt() {
802
+ return !0;
803
+ }
804
+ function St(e) {
805
+ return () => {};
806
+ }
807
+ function Ct() {
808
+ return typeof P.useSyncExternalStore == "function" ? P.useSyncExternalStore(St, bt, xt) : (0, P.useContext)(mt);
809
+ }
810
+ //#endregion
811
+ //#region ../node_modules/.pnpm/react-aria@3.52.1_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/react-aria/dist/private/i18n/utils.mjs
812
+ var wt = /* @__PURE__ */ new Set([
813
+ "Arab",
814
+ "Syrc",
815
+ "Samr",
816
+ "Mand",
817
+ "Thaa",
818
+ "Mend",
819
+ "Nkoo",
820
+ "Adlm",
821
+ "Rohg",
822
+ "Hebr"
823
+ ]), Tt = /* @__PURE__ */ new Set([
824
+ "ae",
825
+ "ar",
826
+ "arc",
827
+ "bcc",
828
+ "bqi",
829
+ "ckb",
830
+ "dv",
831
+ "fa",
832
+ "glk",
833
+ "he",
834
+ "ku",
835
+ "mzn",
836
+ "nqo",
837
+ "pnb",
838
+ "ps",
839
+ "sd",
840
+ "ug",
841
+ "ur",
842
+ "yi"
843
+ ]);
844
+ function Et(e) {
845
+ if (Intl.Locale) {
846
+ let t = new Intl.Locale(e).maximize(), n = typeof t.getTextInfo == "function" ? t.getTextInfo() : t.textInfo;
847
+ if (n) return n.direction === "rtl";
848
+ if (t.script) return wt.has(t.script);
849
+ }
850
+ let t = e.split("-")[0];
851
+ return Tt.has(t);
852
+ }
853
+ //#endregion
854
+ //#region ../node_modules/.pnpm/react-aria@3.52.1_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/react-aria/dist/private/i18n/useDefaultLocale.mjs
855
+ var Dt = Symbol.for("react-aria.i18n.locale");
856
+ function Ot() {
857
+ let e = typeof window < "u" && window[Dt] || typeof navigator < "u" && (navigator.language || navigator.userLanguage) || "en-US";
858
+ try {
859
+ Intl.DateTimeFormat.supportedLocalesOf([e]);
860
+ } catch {
861
+ e = "en-US";
862
+ }
863
+ return {
864
+ locale: e,
865
+ direction: Et(e) ? "rtl" : "ltr"
866
+ };
867
+ }
868
+ var kt = Ot(), Q = /* @__PURE__ */ new Set();
869
+ function At() {
870
+ kt = Ot();
871
+ for (let e of Q) e(kt);
872
+ }
873
+ function jt() {
874
+ let e = Ct(), [t, n] = (0, P.useState)(kt);
875
+ return (0, P.useEffect)(() => (Q.size === 0 && window.addEventListener("languagechange", At), Q.add(n), () => {
876
+ Q.delete(n), Q.size === 0 && window.removeEventListener("languagechange", At);
877
+ }), []), e ? {
878
+ locale: typeof window < "u" && window[Dt] || "en-US",
879
+ direction: "ltr"
880
+ } : t;
881
+ }
882
+ //#endregion
883
+ //#region ../node_modules/.pnpm/react-aria@3.52.1_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/react-aria/dist/private/i18n/I18nProvider.mjs
884
+ var Mt = /*#__PURE__*/ P.createContext(null);
885
+ function Nt(e) {
886
+ let { locale: t, children: n } = e, r = P.useMemo(() => ({
887
+ locale: t,
888
+ direction: Et(t) ? "rtl" : "ltr"
889
+ }), [t]);
890
+ return /*#__PURE__*/ P.createElement(Mt.Provider, { value: r }, n);
891
+ }
892
+ function Pt(e) {
893
+ let { children: t } = e, n = jt();
894
+ return /*#__PURE__*/ P.createElement(Mt.Provider, { value: n }, t);
895
+ }
896
+ function Ft(e) {
897
+ let { locale: t, children: n } = e;
898
+ return t ? /*#__PURE__*/ P.createElement(Nt, {
899
+ locale: t,
900
+ children: n
901
+ }) : /*#__PURE__*/ P.createElement(Pt, { children: n });
902
+ }
903
+ function It() {
904
+ let e = jt();
905
+ return (0, P.useContext)(Mt) || e;
906
+ }
907
+ //#endregion
908
+ //#region ../node_modules/.pnpm/@internationalized+number@3.6.8/node_modules/@internationalized/number/dist/private/NumberFormatter.mjs
909
+ var Lt = /* @__PURE__ */ new Map(), Rt = !1;
910
+ try {
911
+ Rt = new Intl.NumberFormat("de-DE", { signDisplay: "exceptZero" }).resolvedOptions().signDisplay === "exceptZero";
912
+ } catch {}
913
+ var zt = !1;
914
+ try {
915
+ zt = new Intl.NumberFormat("de-DE", {
916
+ style: "unit",
917
+ unit: "degree"
918
+ }).resolvedOptions().style === "unit";
919
+ } catch {}
920
+ var Bt = { degree: { narrow: {
921
+ default: "°",
922
+ "ja-JP": " 度",
923
+ "zh-TW": "度",
924
+ "sl-SI": " °"
925
+ } } }, Vt = class {
926
+ constructor(e, t = {}) {
927
+ this.numberFormatter = Ht(e, t), this.options = t;
928
+ }
929
+ format(e) {
930
+ let t = "";
931
+ if (t = !Rt && this.options.signDisplay != null ? Ut(this.numberFormatter, this.options.signDisplay, e) : this.numberFormatter.format(e), this.options.style === "unit" && !zt) {
932
+ let { unit: e, unitDisplay: n = "short", locale: r } = this.resolvedOptions();
933
+ if (!e) return t;
934
+ let i = Bt[e]?.[n];
935
+ t += i[r] || i.default;
936
+ }
937
+ return t;
938
+ }
939
+ formatToParts(e) {
940
+ return this.numberFormatter.formatToParts(e);
941
+ }
942
+ formatRange(e, t) {
943
+ if (typeof this.numberFormatter.formatRange == "function") return this.numberFormatter.formatRange(e, t);
944
+ if (t < e) throw RangeError("End date must be >= start date");
945
+ return `${this.format(e)} \u{2013} ${this.format(t)}`;
946
+ }
947
+ formatRangeToParts(e, t) {
948
+ if (typeof this.numberFormatter.formatRangeToParts == "function") return this.numberFormatter.formatRangeToParts(e, t);
949
+ if (t < e) throw RangeError("End date must be >= start date");
950
+ let n = this.numberFormatter.formatToParts(e), r = this.numberFormatter.formatToParts(t);
951
+ return [
952
+ ...n.map((e) => ({
953
+ ...e,
954
+ source: "startRange"
955
+ })),
956
+ {
957
+ type: "literal",
958
+ value: " – ",
959
+ source: "shared"
960
+ },
961
+ ...r.map((e) => ({
962
+ ...e,
963
+ source: "endRange"
964
+ }))
965
+ ];
966
+ }
967
+ resolvedOptions() {
968
+ let e = this.numberFormatter.resolvedOptions();
969
+ return !Rt && this.options.signDisplay != null && (e = {
970
+ ...e,
971
+ signDisplay: this.options.signDisplay
972
+ }), !zt && this.options.style === "unit" && (e = {
973
+ ...e,
974
+ style: "unit",
975
+ unit: this.options.unit,
976
+ unitDisplay: this.options.unitDisplay
977
+ }), e;
978
+ }
979
+ };
980
+ function Ht(e, t = {}) {
981
+ let { numberingSystem: n } = t;
982
+ if (n && e.includes("-nu-") && (e.includes("-u-") || (e += "-u-"), e += `-nu-${n}`), t.style === "unit" && !zt) {
983
+ let { unit: e, unitDisplay: n = "short" } = t;
984
+ if (!e) throw Error("unit option must be provided with style: \"unit\"");
985
+ if (!Bt[e]?.[n]) throw Error(`Unsupported unit ${e} with unitDisplay = ${n}`);
986
+ t = {
987
+ ...t,
988
+ style: "decimal"
989
+ };
990
+ }
991
+ let r = e + (t ? Object.entries(t).sort((e, t) => e[0] < t[0] ? -1 : 1).join() : "");
992
+ if (Lt.has(r)) return Lt.get(r);
993
+ let i = new Intl.NumberFormat(e, t);
994
+ return Lt.set(r, i), i;
995
+ }
996
+ function Ut(e, t, n) {
997
+ if (t === "auto") return e.format(n);
998
+ if (t === "never") return e.format(Math.abs(n));
999
+ {
1000
+ let r = !1;
1001
+ if (t === "always" ? r = n > 0 || Object.is(n, 0) : t === "exceptZero" && (Object.is(n, -0) || Object.is(n, 0) ? n = Math.abs(n) : r = n > 0), r) {
1002
+ let t = e.format(-n), r = e.format(n), i = t.replace(r, "").replace(/\u200e|\u061C/, "");
1003
+ return [...i].length !== 1 && console.warn("@react-aria/i18n polyfill for NumberFormat signDisplay: Unsupported case"), t.replace(r, "!!!").replace(i, "+").replace("!!!", r);
1004
+ }
1005
+ return e.format(n);
1006
+ }
1007
+ }
1008
+ //#endregion
1009
+ //#region ../node_modules/.pnpm/react-aria@3.52.1_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/react-aria/dist/private/i18n/useNumberFormatter.mjs
1010
+ function Wt(e = {}) {
1011
+ let { locale: t } = It();
1012
+ return (0, P.useMemo)(() => new Vt(t, e), [t, e]);
1013
+ }
1014
+ //#endregion
1015
+ //#region src/components/ui/menu-items.tsx
1016
+ var $ = s(), Gt = i("z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md forced-color-adjust-none forced-colors:border-[CanvasText] forced-colors:bg-[Canvas] forced-colors:text-[CanvasText]", { variants: { subcontent: { true: "shadow-lg" } } }), Kt = i("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground forced-color-adjust-none forced-colors:data-[highlighted]:bg-[Highlight] forced-colors:data-[highlighted]:text-[HighlightText] forced-colors:data-[state=open]:bg-[Highlight] forced-colors:data-[state=open]:text-[HighlightText]", { variants: { inset: { true: "pl-8" } } }), qt = "data-disabled:pointer-events-none data-disabled:opacity-50 forced-colors:data-disabled:text-[GrayText]", Jt = i(t("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground forced-color-adjust-none forced-colors:data-[highlighted]:bg-[Highlight] forced-colors:data-[highlighted]:text-[HighlightText]", qt), { variants: {} }), Yt = i("absolute left-2 flex h-3.5 w-3.5 items-center justify-center", { variants: {} }), Xt = i("px-2 py-1.5 text-sm font-semibold", { variants: { inset: { true: "pl-8" } } }), Zt = i(t("menu-item relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden forced-color-adjust-none forced-colors:data-[highlighted]:bg-[Highlight] forced-colors:data-[highlighted]:text-[HighlightText] forced-colors:aria-selected:bg-[Highlight] forced-colors:aria-selected:text-[HighlightText]", qt), {
1017
+ variants: {
1018
+ inset: { true: "pl-8" },
1019
+ variant: {
1020
+ default: "data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground aria-selected:bg-accent aria-selected:text-accent-foreground",
1021
+ danger: "data-[highlighted]:bg-(--red-5) data-[highlighted]:text-(--red-12) aria-selected:bg-(--red-5) aria-selected:text-(--red-12)",
1022
+ muted: "data-[highlighted]:bg-muted/70 data-[highlighted]:text-muted-foreground aria-selected:bg-muted/70 aria-selected:text-muted-foreground",
1023
+ success: "data-[highlighted]:bg-(--grass-3) data-[highlighted]:text-(--grass-11) aria-selected:bg-(--grass-3) aria-selected:text-(--grass-11)",
1024
+ disabled: "text-muted-foreground"
1025
+ }
1026
+ },
1027
+ defaultVariants: { variant: "default" }
1028
+ }), Qt = i("-mx-1 my-1 h-px bg-border last:hidden", { variants: {} }), $t = (e) => {
1029
+ let n = (0, $.c)(8), r, i;
1030
+ n[0] === e ? (r = n[1], i = n[2]) : ({className: r, ...i} = e, n[0] = e, n[1] = r, n[2] = i);
1031
+ let a;
1032
+ n[3] === r ? a = n[4] : (a = t("ml-auto text-xs tracking-widest opacity-60", r), n[3] = r, n[4] = a);
1033
+ let o;
1034
+ return n[5] !== i || n[6] !== a ? (o = /* @__PURE__ */ (0, F.jsx)("span", {
1035
+ className: a,
1036
+ ...i
1037
+ }), n[5] = i, n[6] = a, n[7] = o) : o = n[7], o;
1038
+ };
1039
+ $t.displayName = "MenuShortcut";
1040
+ //#endregion
1041
+ //#region src/components/ui/label.tsx
1042
+ var en = i("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"), tn = P.forwardRef((e, n) => {
1043
+ let r = (0, $.c)(9), i, a;
1044
+ r[0] === e ? (i = r[1], a = r[2]) : ({className: i, ...a} = e, r[0] = e, r[1] = i, r[2] = a);
1045
+ let o;
1046
+ r[3] === i ? o = r[4] : (o = t(en(), i), r[3] = i, r[4] = o);
1047
+ let s;
1048
+ return r[5] !== a || r[6] !== n || r[7] !== o ? (s = /* @__PURE__ */ (0, F.jsx)(V, {
1049
+ ref: n,
1050
+ className: o,
1051
+ ...a
1052
+ }), r[5] = a, r[6] = n, r[7] = o, r[8] = s) : s = r[8], s;
1053
+ });
1054
+ tn.displayName = V.displayName;
1055
+ //#endregion
1056
+ //#region src/components/ui/native-select.tsx
1057
+ var nn = i("flex h-6 w-fit mb-1 items-center justify-between rounded-sm bg-background px-2 text-sm font-prose ring-offset-background placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 cursor-pointer forced-color-adjust-none forced-colors:bg-[ButtonFace] forced-colors:text-[ButtonText] forced-colors:disabled:text-[GrayText]", {
1058
+ variants: { variant: {
1059
+ default: "shadow-xs-solid border border-input hover:shadow-sm-solid focus-visible:border-primary focus-visible:shadow-md-solid disabled:hover:shadow-xs-solid forced-colors:border-[ButtonText] forced-colors:disabled:border-[GrayText]",
1060
+ ghost: "opacity-70 hover:opacity-100 focus:opacity-100"
1061
+ } },
1062
+ defaultVariants: { variant: "default" }
1063
+ }), rn = P.forwardRef((e, r) => {
1064
+ let i = (0, $.c)(12), a, o, s;
1065
+ i[0] === e ? (a = i[1], o = i[2], s = i[3]) : ({className: o, children: a, ...s} = e, i[0] = e, i[1] = a, i[2] = o, i[3] = s);
1066
+ let c;
1067
+ i[4] === Symbol.for("react.memo_cache_sentinel") ? (c = n.stopPropagation(), i[4] = c) : c = i[4];
1068
+ let l;
1069
+ i[5] === o ? l = i[6] : (l = t(nn({}), o), i[5] = o, i[6] = l);
1070
+ let u;
1071
+ return i[7] !== a || i[8] !== s || i[9] !== r || i[10] !== l ? (u = /* @__PURE__ */ (0, F.jsx)("select", {
1072
+ ref: r,
1073
+ onClick: c,
1074
+ className: l,
1075
+ ...s,
1076
+ children: a
1077
+ }), i[7] = a, i[8] = s, i[9] = r, i[10] = l, i[11] = u) : u = i[11], u;
1078
+ });
1079
+ rn.displayName = "NativeSelect";
1080
+ //#endregion
1081
+ //#region src/components/ui/select.tsx
1082
+ var an = xe, on = Ue, sn = D(ke), cn = Te, ln = P.forwardRef((e, n) => {
1083
+ let r = (0, $.c)(21), i, a, o, s, c, l;
1084
+ r[0] === e ? (i = r[1], a = r[2], o = r[3], s = r[4], c = r[5], l = r[6]) : ({className: a, children: i, onClear: o, variant: l, hideChevron: c, ...s} = e, r[0] = e, r[1] = i, r[2] = a, r[3] = o, r[4] = s, r[5] = c, r[6] = l);
1085
+ let u = c !== void 0 && c, d;
1086
+ r[7] !== a || r[8] !== l ? (d = t(nn({ variant: l }), "mb-0", a), r[7] = a, r[8] = l, r[9] = d) : d = r[9];
1087
+ let f;
1088
+ r[10] !== u || r[11] !== o ? (f = o ? /* @__PURE__ */ (0, F.jsx)("span", {
1089
+ onPointerDown: (e) => {
1090
+ e.preventDefault(), e.stopPropagation(), o();
1091
+ },
1092
+ children: /* @__PURE__ */ (0, F.jsx)(g, { className: "h-4 w-4 opacity-50 hover:opacity-90" })
1093
+ }) : !u && /* @__PURE__ */ (0, F.jsx)(M, { className: "h-4 w-4 opacity-50" }), r[10] = u, r[11] = o, r[12] = f) : f = r[12];
1094
+ let p;
1095
+ r[13] === f ? p = r[14] : (p = /* @__PURE__ */ (0, F.jsx)(Ee, {
1096
+ asChild: !0,
1097
+ children: f
1098
+ }), r[13] = f, r[14] = p);
1099
+ let m;
1100
+ return r[15] !== i || r[16] !== s || r[17] !== n || r[18] !== d || r[19] !== p ? (m = /* @__PURE__ */ (0, F.jsxs)(Ce, {
1101
+ ref: n,
1102
+ className: d,
1103
+ ...s,
1104
+ children: [i, p]
1105
+ }), r[15] = i, r[16] = s, r[17] = n, r[18] = d, r[19] = p, r[20] = m) : m = r[20], m;
1106
+ });
1107
+ ln.displayName = Ce.displayName;
1108
+ var un = j(Ae), dn = P.forwardRef((e, n) => {
1109
+ let r = (0, $.c)(21), i, a, o, s;
1110
+ r[0] === e ? (i = r[1], a = r[2], o = r[3], s = r[4]) : ({className: a, children: i, position: s, ...o} = e, r[0] = e, r[1] = i, r[2] = a, r[3] = o, r[4] = s);
1111
+ let c = s === void 0 ? "popper" : s, l = c === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", u;
1112
+ r[5] !== a || r[6] !== l ? (u = t("max-h-[300px] relative z-50 min-w-32 overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", l, a), r[5] = a, r[6] = l, r[7] = u) : u = r[7];
1113
+ let d;
1114
+ r[8] === Symbol.for("react.memo_cache_sentinel") ? (d = /* @__PURE__ */ (0, F.jsx)(tt, {
1115
+ className: "flex items-center justify-center h-[20px] bg-background text-muted-foreground cursor-default",
1116
+ children: /* @__PURE__ */ (0, F.jsx)(ie, { className: "h-4 w-4" })
1117
+ }), r[8] = d) : d = r[8];
1118
+ let f = c === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width)", p;
1119
+ r[9] === f ? p = r[10] : (p = t("p-1", f), r[9] = f, r[10] = p);
1120
+ let m;
1121
+ r[11] !== i || r[12] !== p ? (m = /* @__PURE__ */ (0, F.jsx)(Be, {
1122
+ className: p,
1123
+ children: i
1124
+ }), r[11] = i, r[12] = p, r[13] = m) : m = r[13];
1125
+ let h;
1126
+ r[14] === Symbol.for("react.memo_cache_sentinel") ? (h = /* @__PURE__ */ (0, F.jsx)(rt, {
1127
+ className: "flex items-center justify-center h-[20px] bg-background text-muted-foreground cursor-default",
1128
+ children: /* @__PURE__ */ (0, F.jsx)(M, { className: "h-4 w-4 opacity-50" })
1129
+ }), r[14] = h) : h = r[14];
1130
+ let g;
1131
+ return r[15] !== c || r[16] !== o || r[17] !== n || r[18] !== u || r[19] !== m ? (g = /* @__PURE__ */ (0, F.jsx)(sn, { children: /* @__PURE__ */ (0, F.jsx)(O, { children: /* @__PURE__ */ (0, F.jsxs)(un, {
1132
+ ref: n,
1133
+ className: u,
1134
+ position: c,
1135
+ ...o,
1136
+ children: [
1137
+ d,
1138
+ m,
1139
+ h
1140
+ ]
1141
+ }) }) }), r[15] = c, r[16] = o, r[17] = n, r[18] = u, r[19] = m, r[20] = g) : g = r[20], g;
1142
+ });
1143
+ dn.displayName = Ae.displayName;
1144
+ var fn = P.forwardRef((e, n) => {
1145
+ let r = (0, $.c)(9), i, a;
1146
+ r[0] === e ? (i = r[1], a = r[2]) : ({className: i, ...a} = e, r[0] = e, r[1] = i, r[2] = a);
1147
+ let o;
1148
+ r[3] === i ? o = r[4] : (o = t("px-2 py-1.5 text-sm font-semibold", i), r[3] = i, r[4] = o);
1149
+ let s;
1150
+ return r[5] !== a || r[6] !== n || r[7] !== o ? (s = /* @__PURE__ */ (0, F.jsx)(Ge, {
1151
+ ref: n,
1152
+ className: o,
1153
+ ...a
1154
+ }), r[5] = a, r[6] = n, r[7] = o, r[8] = s) : s = r[8], s;
1155
+ });
1156
+ fn.displayName = Ge.displayName;
1157
+ var pn = P.forwardRef((e, n) => {
1158
+ let r = (0, $.c)(17), i, a, o, s;
1159
+ r[0] === e ? (i = r[1], a = r[2], o = r[3], s = r[4]) : ({className: a, children: i, subtitle: s, ...o} = e, r[0] = e, r[1] = i, r[2] = a, r[3] = o, r[4] = s);
1160
+ let c;
1161
+ r[5] === a ? c = r[6] : (c = t("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-hidden data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground forced-colors:data-[highlighted]:bg-[Highlight] forced-colors:data-[highlighted]:text-[HighlightText]", qt, a), r[5] = a, r[6] = c);
1162
+ let l;
1163
+ r[7] === Symbol.for("react.memo_cache_sentinel") ? (l = /* @__PURE__ */ (0, F.jsx)("span", {
1164
+ className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center",
1165
+ children: /* @__PURE__ */ (0, F.jsx)($e, { children: /* @__PURE__ */ (0, F.jsx)(m, { className: "h-3 w-3" }) })
1166
+ }), r[7] = l) : l = r[7];
1167
+ let u = typeof i != "string" || void 0, d;
1168
+ r[8] !== i || r[9] !== u ? (d = /* @__PURE__ */ (0, F.jsx)(Ze, {
1169
+ asChild: u,
1170
+ className: "flex w-full flex-1",
1171
+ children: i
1172
+ }), r[8] = i, r[9] = u, r[10] = d) : d = r[10];
1173
+ let f;
1174
+ return r[11] !== o || r[12] !== n || r[13] !== s || r[14] !== c || r[15] !== d ? (f = /* @__PURE__ */ (0, F.jsxs)(Ye, {
1175
+ ref: n,
1176
+ className: c,
1177
+ ...o,
1178
+ children: [
1179
+ l,
1180
+ d,
1181
+ s
1182
+ ]
1183
+ }), r[11] = o, r[12] = n, r[13] = s, r[14] = c, r[15] = d, r[16] = f) : f = r[16], f;
1184
+ });
1185
+ pn.displayName = Ye.displayName;
1186
+ var mn = P.forwardRef((e, n) => {
1187
+ let r = (0, $.c)(9), i, a;
1188
+ r[0] === e ? (i = r[1], a = r[2]) : ({className: i, ...a} = e, r[0] = e, r[1] = i, r[2] = a);
1189
+ let o;
1190
+ r[3] === i ? o = r[4] : (o = t("-mx-1 my-1 h-px bg-muted", i), r[3] = i, r[4] = o);
1191
+ let s;
1192
+ return r[5] !== a || r[6] !== n || r[7] !== o ? (s = /* @__PURE__ */ (0, F.jsx)(at, {
1193
+ ref: n,
1194
+ className: o,
1195
+ ...a
1196
+ }), r[5] = a, r[6] = n, r[7] = o, r[8] = s) : s = r[8], s;
1197
+ });
1198
+ mn.displayName = at.displayName;
1199
+ //#endregion
1200
+ export { z as A, It as C, Ee as D, yt as E, M, Ce as O, Vt as S, Ct as T, Zt as _, fn as a, Kt as b, cn as c, tn as d, qt as f, Jt as g, Yt as h, pn as i, ie as j, H as k, rn as l, Gt as m, dn as n, mn as o, $t as p, on as r, ln as s, an as t, nn as u, Xt as v, Ft as w, Wt as x, Qt as y };