@marimo-team/islands 0.25.3-dev24 → 0.25.3-dev244

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 (757) hide show
  1. package/dist/{ConnectedDataExplorerComponent-DfG3PRaJ.js → ConnectedDataExplorerComponent-BBihxHrr.js} +120 -116
  2. package/dist/{ErrorBoundary-LHjDFqXG.js → ErrorBoundary-DKniGLW9.js} +16 -16
  3. package/dist/_baseSet-BfI5FjBM.js +328 -0
  4. package/dist/{abnfDiagram-VCTEODGH-B3w-XWX8.js → abnfDiagram-VCTEODGH-DBcJVxYP.js} +2 -2
  5. package/dist/any-language-editor-jGaR0EAo.js +75 -0
  6. package/dist/{architectureDiagram-5GKGNRK7-C18U9A6k.js → architectureDiagram-5GKGNRK7-BcHZXF4S.js} +1 -1
  7. package/dist/{arrays-CN1djC4k.js → arrays-DoQ-AILx.js} +15 -27
  8. package/dist/assets/__vite-browser-external-BKBpimif.js +1 -0
  9. package/dist/assets/worker-CgoMtD-_.js +113 -0
  10. package/dist/{blockDiagram-I7D4REHJ-Cg25UrxT.js → blockDiagram-I7D4REHJ-Dkhe6_PP.js} +1 -1
  11. package/dist/{button-CvjkwdSk.js → button-B6RjDKJx.js} +227 -217
  12. package/dist/{capabilities-CQ5IjhzL.js → capabilities-CkVzWJEX.js} +2 -2
  13. package/dist/{chat-ui-w8SVynkn.js → chat-ui-DgaVxFrc.js} +1309 -1307
  14. package/dist/{check-BMKBBrdc.js → check-Z_vtI3OL.js} +1 -1
  15. package/dist/{chunk-IMKFNOWR-CrS5bzqW.js → chunk-IMKFNOWR-CTZlwBAA.js} +1 -1
  16. package/dist/{chunk-SHT3W25Y-StpvPvUG.js → chunk-SHT3W25Y-53g_RZHm.js} +1 -1
  17. package/dist/{chunk-SVP7TREG-CBXjbYZC.js → chunk-SVP7TREG-P6abNGV_.js} +1 -1
  18. package/dist/{chunk-TICWLB2K-Dp6bIb-q.js → chunk-TICWLB2K-BTJJqkyF.js} +1 -1
  19. package/dist/{chunk-YOKDWASO-DPZk8vhS.js → chunk-YOKDWASO-DKplTrBY.js} +20 -20
  20. package/dist/{classDiagram-ZZMXUADV-BFYuxV5g.js → classDiagram-ZZMXUADV-BUGqOrTm.js} +2 -2
  21. package/dist/{classDiagram-v2-VYDZK3BY-D_tjXVMl.js → classDiagram-v2-VYDZK3BY-CXpQvO-s.js} +2 -2
  22. package/dist/code-visibility-CIUgREo9.js +134 -0
  23. package/dist/{common-1pRFQo1N.js → common-DzCPFBsv.js} +9917 -9686
  24. package/dist/config-DbjzjwxX.js +636 -0
  25. package/dist/{copy-icon-BgUO8jsi.js → copy-icon-CG57cxwb.js} +3 -3
  26. package/dist/createReducer-DePYJ0F3.js +63 -0
  27. package/dist/{cynefinDiagram-5FMLGOSQ-DSgYrHB2.js → cynefinDiagram-5FMLGOSQ-DOcnl8wW.js} +1 -1
  28. package/dist/{dagre-GXQ25YYZ-GYlruCBf.js → dagre-GXQ25YYZ-CuHR9QfG.js} +3 -3
  29. package/dist/{dagre-BGSfXNEb.js → dagre-mqiMAsFY.js} +531 -680
  30. package/dist/{data-grid-overlay-editor-UR0x91Ij.js → data-grid-overlay-editor-PstJqwhX.js} +5 -5
  31. package/dist/{data-grid-types-BH_r7g7l.js → data-grid-types-0PJ-9N5n.js} +1 -1
  32. package/dist/{debounce-C3jyATpc.js → debounce-DrhhziJv.js} +2 -2
  33. package/dist/{diagram-S7CK7UJ4-DRu5LX5_.js → diagram-S7CK7UJ4-BPiG4kso.js} +1 -1
  34. package/dist/{diagram-UQ7AKVKN-DD7uiejP.js → diagram-UQ7AKVKN-_piBOvOC.js} +1 -1
  35. package/dist/{diagram-VX7I27RA-ByH9KAJJ.js → diagram-VX7I27RA-DCzVeJ8M.js} +1 -1
  36. package/dist/{diagram-Z3DM3KII-BsQHPRke.js → diagram-Z3DM3KII-D64CF1jQ.js} +1 -1
  37. package/dist/{dialog-Cc479ZEH.js → dialog-DsZ49mmU.js} +26 -26
  38. package/dist/{dist-Bvs24R_E.js → dist-11T5wq3_.js} +31 -30
  39. package/dist/{dist-F8Ep36rk.js → dist-17ugwGZc.js} +59 -58
  40. package/dist/{dist-BMQf5zIS.js → dist-7cRjf--y.js} +123 -122
  41. package/dist/{dist-diIx5qJW.js → dist-B8pkfkzc.js} +31 -30
  42. package/dist/{dist-CN_BeG2I.js → dist-B9UoM_wq.js} +58 -57
  43. package/dist/{dist-CLdpGQVr.js → dist-BGuMTs1i.js} +118 -117
  44. package/dist/{dist-BK4Oj99o.js → dist-BHW11fni.js} +18 -17
  45. package/dist/dist-BLY4m1Wi.js +850 -0
  46. package/dist/{dist-PXYI_yuP.js → dist-BNlcVoxs.js} +24 -23
  47. package/dist/{dist-D6d86eNJ.js → dist-BQYe5Bju.js} +47 -46
  48. package/dist/{dist-CkTTIdBe.js → dist-BX1mn8na.js} +337 -337
  49. package/dist/{dist-DiDibOYr.js → dist-Bh0PTKUW.js} +151 -150
  50. package/dist/{dist-CSJ0MDRw.js → dist-CKaXK92p.js} +56 -55
  51. package/dist/{dist-C8fAKSH1.js → dist-CLhwfhpJ.js} +53 -52
  52. package/dist/{dist-DoE4XJBC.js → dist-CYeqK4Xw.js} +9801 -10649
  53. package/dist/{dist-BLfKmR-l.js → dist-Cxlp3WH6.js} +16 -15
  54. package/dist/{dist-D-wwqlzJ.js → dist-DSJPGj42.js} +158 -157
  55. package/dist/{dist-BorMD-uX.js → dist-DU9ICsWZ.js} +75 -74
  56. package/dist/{dist-DBtSl3sf.js → dist-DWv0ALBi.js} +47 -46
  57. package/dist/{dist-OR1OnN-y.js → dist-DiBpWEsB.js} +31 -30
  58. package/dist/{dist-CrSP_H1M.js → dist-DiLFTlnl.js} +242 -242
  59. package/dist/{dist-DpBpA_n1.js → dist-Lm-D-Vr6.js} +3 -3
  60. package/dist/{dist-CSbh1PNP.js → dist-cVDV5IuI.js} +23 -22
  61. package/dist/{dist-BuaRHxOc.js → dist-fRfaOoq8.js} +44 -43
  62. package/dist/{dist-Cg7gzw-a.js → dist-gTTI-9Px.js} +78 -77
  63. package/dist/dropdown-menu-BRiE7Vnp.js +6083 -0
  64. package/dist/{ebnfDiagram-PWID7BFC-CQRK5_eT.js → ebnfDiagram-PWID7BFC-BapQPML-.js} +2 -2
  65. package/dist/{erDiagram-RLTQ6QDP-BKtWrDVh.js → erDiagram-RLTQ6QDP-CNQvC2_Q.js} +1 -1
  66. package/dist/{error-banner-CFPHFw4h.js → error-banner-IsonnvA0.js} +84 -83
  67. package/dist/error-entries-CRPfxMqm.js +2505 -0
  68. package/dist/{esm-D2gTsXEV.js → esm-BgKjMvWw.js} +530 -529
  69. package/dist/{esm-AMFssoNp.js → esm-CHjVSexr.js} +328 -329
  70. package/dist/feedback-button-C0iLkz-H.js +374 -0
  71. package/dist/{flowDiagram-HODETNUW-1IN-ih2E.js → flowDiagram-HODETNUW-BBt6S6oe.js} +2 -2
  72. package/dist/{formats-X4mMQWzX.js → formats-BK4VefeF.js} +6 -6
  73. package/dist/{ganttDiagram-EL5Y4UJY-BQT16JSc.js → ganttDiagram-EL5Y4UJY-Dh_4cBJZ.js} +2 -2
  74. package/dist/{glide-data-editor-DPjObn47.js → glide-data-editor-8CBjuK8C.js} +417 -415
  75. package/dist/{glide-utils-DM9zBO4W.js → glide-utils-CQddGpa-.js} +16 -16
  76. package/dist/{globals-DOHFyDcV.js → globals-M9WsksQz.js} +3 -3
  77. package/dist/{graphlib-BmY_CCV9.js → graphlib-nlwT3Wvy.js} +177 -220
  78. package/dist/hasIn-C20JsQ2m.js +28 -0
  79. package/dist/{highlighted-body-KPVGNVTW-zwjq21tf.js → highlighted-body-KPVGNVTW-3Ziwfz-V.js} +2 -2
  80. package/dist/{error-entries-Damuuclv.js → html-to-image-Gx4q3ZoD.js} +26911 -26769
  81. package/dist/{infoDiagram-27XIBGKW-CkB-zr4p.js → infoDiagram-27XIBGKW-Hd8Ifz82.js} +1 -1
  82. package/dist/isArrayLikeObject-B-HXCsex.js +626 -0
  83. package/dist/isEmpty-CdX7MTE1.js +14 -0
  84. package/dist/{ishikawaDiagram-5VMMS53U-wlyLjBmM.js → ishikawaDiagram-5VMMS53U-CP7hnHWx.js} +1 -1
  85. package/dist/{kanban-definition-UXKFOSKX-C2usY0i-.js → kanban-definition-UXKFOSKX-CX91sa9b.js} +1 -1
  86. package/dist/{linear-Cnaq3Tfb.js → linear-DWERh7eI.js} +121 -73
  87. package/dist/{loader-BQOfjTIJ.js → loader-BisjOLiW.js} +12 -12
  88. package/dist/main.js +10234 -8104
  89. package/dist/{mermaid-BA-Z6wGL.js → mermaid-Djb3Ni9t.js} +54 -54
  90. package/dist/mermaid-HWGCJPDP-Du3-HPQA.js +2 -0
  91. package/dist/{mindmap-definition-YA3MSWOX-nKOWS8RR.js → mindmap-definition-YA3MSWOX-DgCNo07O.js} +1 -1
  92. package/dist/{now-jM8-M7IR.js → now-BKZCLE5P.js} +12 -13
  93. package/dist/{number-overlay-editor-B3cSnrr6.js → number-overlay-editor-uvNY9IUz.js} +3 -3
  94. package/dist/{dist-CN8zI-XC.js → objectWithoutPropertiesLoose-ai5NUqGa.js} +262 -240
  95. package/dist/{objects-CzUgoMIF.js → objects-DCmMvZtn.js} +1 -3
  96. package/dist/{once-BtE-wKRL.js → once-NnpX_HnX.js} +1 -1
  97. package/dist/{pegDiagram-XKGWAZYB-Dac9EIKD.js → pegDiagram-XKGWAZYB-SGJhnIKo.js} +2 -2
  98. package/dist/pick-tCszMUbm.js +35 -0
  99. package/dist/{pieDiagram-E7YTZNPT-B7S-DsW_.js → pieDiagram-E7YTZNPT-1stXIWCQ.js} +1 -1
  100. package/dist/precisionRound-DhAzeRcm.js +49 -0
  101. package/dist/{process-output-CTPTtxXB.js → process-output-D2ISIyIs.js} +4 -4
  102. package/dist/{quadrantDiagram-AXDQQJYC-Ccw0xMjN.js → quadrantDiagram-AXDQQJYC-Blrm7V7_.js} +1 -1
  103. package/dist/{railroadDiagram-O6MQD6OU-Cfa5Q-hr.js → railroadDiagram-O6MQD6OU-DY1mojzB.js} +2 -2
  104. package/dist/{react-vega-BED0DjiB.js → react-vega-C4T9Rb_w.js} +12284 -12270
  105. package/dist/{requirementDiagram-BXWQKSXE-d8zXCJIk.js → requirementDiagram-BXWQKSXE-gHzhUp0D.js} +1 -1
  106. package/dist/{reveal-component-CFFzSsPX.js → reveal-component-GMnfGiUU.js} +430 -407
  107. package/dist/schemas-CdscWNy_.js +4747 -0
  108. package/dist/select-BSxlITBo.js +1200 -0
  109. package/dist/{sequenceDiagram-WJ2MYXX4-b6pei3lJ.js → sequenceDiagram-WJ2MYXX4-rjPtD9fB.js} +1 -1
  110. package/dist/{spec-BJzgmvVa.js → spec-Dq8RNplp.js} +41 -11
  111. package/dist/{stateDiagram-D77RDMKH-Be-xSpaZ.js → stateDiagram-D77RDMKH-DMNxjUxV.js} +4 -4
  112. package/dist/{stateDiagram-v2-MP3YSRHH-5Y-FxesJ.js → stateDiagram-v2-MP3YSRHH-CumAaqGo.js} +2 -2
  113. package/dist/static-state-BldGd99T.js +72 -0
  114. package/dist/strings-BGW-fXVJ.js +507 -0
  115. package/dist/style.css +1 -1
  116. package/dist/{swimlanes-42K2YHIH-nRRl4NU0.js → swimlanes-42K2YHIH-BU14_Tej.js} +1 -1
  117. package/dist/{swimlanesDiagram-VR7AAH4N-BS79510V.js → swimlanesDiagram-VR7AAH4N-CieAnPqJ.js} +2 -2
  118. package/dist/{swiper-component-DKntyn8p.js → swiper-component-Dir1o8ml.js} +2 -2
  119. package/dist/{time-BieKwdYS.js → time-BaMbJs4z.js} +18 -18
  120. package/dist/{timeline-definition-24CTP7MA-Cfzf8WPf.js → timeline-definition-24CTP7MA-CrVj4E1K.js} +1 -1
  121. package/dist/toast-BWIPi3aF.js +491 -0
  122. package/dist/{tooltip-CtBZ5q8p.js → tooltip-C3UnvsRe.js} +329 -305
  123. package/dist/use-restore-focus-BWO0z1lo.js +1672 -0
  124. package/dist/{useAsyncData-BD534XmW.js → useAsyncData-DsZMvNXn.js} +15 -14
  125. package/dist/{useDateFormatter-DkajGwwd.js → useDateFormatter-ChB4eyim.js} +2 -2
  126. package/dist/{useDeepCompareMemoize-C72_RNsu.js → useDeepCompareMemoize-KMBBux8C.js} +1 -1
  127. package/dist/{useIframeCapabilities-DBETvvPl.js → useIframeCapabilities-cMNQ80CK.js} +1 -1
  128. package/dist/useLifecycle-BquH9ET-.js +112 -0
  129. package/dist/useTheme-DgOLVISn.js +337 -0
  130. package/dist/utils-DXkj82sK.js +813 -0
  131. package/dist/{vega-component-DfcYgj-Y.js → vega-component-Bwg_Kuh-.js} +171 -170
  132. package/dist/{vega-embed-container-BNHE18G9.js → vega-embed-container--LYZqguO.js} +2 -2
  133. package/dist/{vega-loader.browser-DNST6uVf.js → vega-loader.browser-B9Pz0EGP.js} +298 -507
  134. package/dist/{vennDiagram-4TSXK5OY-CeY6Z1xZ.js → vennDiagram-4TSXK5OY-ZLxQ8yhm.js} +1 -1
  135. package/dist/{wardleyDiagram-VM6X3IG4-Cxs9NtVi.js → wardleyDiagram-VM6X3IG4-D88pcLY1.js} +1 -1
  136. package/dist/{xychartDiagram-S5SC5T6Z-DNWbvPK7.js → xychartDiagram-S5SC5T6Z-_13d4g8g.js} +2 -2
  137. package/package.json +16 -20
  138. package/src/__mocks__/document.tsx +63 -0
  139. package/src/__mocks__/notebook.ts +3 -4
  140. package/src/__mocks__/partial.ts +26 -0
  141. package/src/__mocks__/requests.ts +1 -4
  142. package/src/__tests__/main.test.tsx +24 -1
  143. package/src/__tests__/module-entry.test.ts +44 -0
  144. package/src/__tests__/mount.test.ts +1 -21
  145. package/src/__tests__/{host-imports.test.ts → replica-imports.test.ts} +12 -11
  146. package/src/components/ai/__tests__/ai-model-dropdown.test.tsx +63 -0
  147. package/src/components/ai/ai-model-dropdown.tsx +11 -6
  148. package/src/components/app-config/ai-config.tsx +155 -149
  149. package/src/components/app-config/app-config-button.tsx +6 -5
  150. package/src/components/app-config/app-config-form.tsx +5 -9
  151. package/src/components/app-config/common.tsx +7 -9
  152. package/src/components/app-config/data-form.tsx +112 -113
  153. package/src/components/app-config/mcp-config.tsx +30 -53
  154. package/src/components/app-config/user-config-form.css +91 -0
  155. package/src/components/app-config/user-config-form.tsx +266 -349
  156. package/src/components/chat/__tests__/message-queue.test.tsx +17 -0
  157. package/src/components/chat/__tests__/notebook-access-selector.test.tsx +64 -0
  158. package/src/components/chat/acp/__tests__/session-tabs.test.tsx +43 -0
  159. package/src/components/chat/acp/__tests__/state.test.ts +2 -2
  160. package/src/components/chat/acp/blocks.tsx +3 -2
  161. package/src/components/chat/acp/session-tabs.tsx +8 -3
  162. package/src/components/chat/capabilities-popover.tsx +1 -5
  163. package/src/components/chat/chat-components.tsx +2 -0
  164. package/src/components/chat/chat-panel.tsx +23 -104
  165. package/src/components/chat/chat-utils.ts +4 -8
  166. package/src/components/chat/notebook-access-selector.stories.tsx +22 -0
  167. package/src/components/chat/notebook-access-selector.tsx +100 -0
  168. package/src/components/data-table/TableBottomBar.tsx +4 -1
  169. package/src/components/data-table/TableTopBar.tsx +2 -0
  170. package/src/components/data-table/__tests__/chart-spec-model.test.ts +195 -195
  171. package/src/components/data-table/__tests__/column-explorer.test.tsx +27 -1
  172. package/src/components/data-table/__tests__/columns.test.tsx +105 -0
  173. package/src/components/data-table/__tests__/context-menu-interaction.test.tsx +130 -0
  174. package/src/components/data-table/__tests__/data-table.test.tsx +1 -0
  175. package/src/components/data-table/__tests__/date-popover.test.tsx +72 -0
  176. package/src/components/data-table/__tests__/export-actions.test.tsx +105 -0
  177. package/src/components/data-table/__tests__/keyboard-selection.test.tsx +188 -0
  178. package/src/components/data-table/__tests__/pagination.test.tsx +28 -1
  179. package/src/components/data-table/__tests__/search-highlight.test.tsx +109 -0
  180. package/src/components/data-table/__tests__/url-detector.test.tsx +74 -0
  181. package/src/components/data-table/cell-selection/feature.ts +2 -2
  182. package/src/components/data-table/cell-selection/types.ts +2 -2
  183. package/src/components/data-table/charts/__tests__/chart-panel.test.tsx +74 -1
  184. package/src/components/data-table/charts/__tests__/spec-snapshot.test.ts +20 -20
  185. package/src/components/data-table/charts/__tests__/spec.test.ts +78 -52
  186. package/src/components/data-table/charts/__tests__/storage.test.ts +4 -1
  187. package/src/components/data-table/charts/chart-spec/spec.ts +68 -43
  188. package/src/components/data-table/charts/charts.tsx +40 -30
  189. package/src/components/data-table/charts/storage.ts +16 -5
  190. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +1 -1
  191. package/src/components/data-table/column-summary/chart-spec-model.tsx +23 -16
  192. package/src/components/data-table/column-summary/column-summary.tsx +2 -4
  193. package/src/components/data-table/column-visibility-dropdown.tsx +8 -13
  194. package/src/components/data-table/columns.tsx +45 -46
  195. package/src/components/data-table/context-menu.tsx +36 -20
  196. package/src/components/data-table/data-table.tsx +17 -1
  197. package/src/components/data-table/date-popover.tsx +6 -4
  198. package/src/components/data-table/export-actions.tsx +76 -48
  199. package/src/components/data-table/pagination.tsx +44 -33
  200. package/src/components/data-table/range-focus/atoms.ts +4 -6
  201. package/src/components/data-table/range-focus/use-cell-range-selection.ts +65 -38
  202. package/src/components/data-table/range-focus/use-scroll-into-view.ts +21 -2
  203. package/src/components/data-table/renderers.tsx +16 -7
  204. package/src/components/data-table/row-viewer-panel/__tests__/row-viewer.test.tsx +24 -1
  205. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +4 -4
  206. package/src/components/data-table/search-highlight.tsx +79 -0
  207. package/src/components/data-table/types.ts +1 -0
  208. package/src/components/data-table/url-detector.tsx +49 -9
  209. package/src/components/datasources/__tests__/column-actions.test.tsx +97 -0
  210. package/src/components/datasources/__tests__/column-preview.test.tsx +96 -5
  211. package/src/components/datasources/__tests__/datasources-interactions.test.tsx +181 -0
  212. package/src/components/datasources/__tests__/table-list.test.tsx +118 -0
  213. package/src/components/datasources/__tests__/utils.test.ts +57 -6
  214. package/src/components/datasources/column-preview.tsx +17 -12
  215. package/src/components/datasources/datasources.tsx +56 -43
  216. package/src/components/datasources/utils.ts +32 -23
  217. package/src/components/debugger/debugger-code.tsx +5 -0
  218. package/src/components/dependency-graph/custom-node.tsx +1 -1
  219. package/src/components/dependency-graph/dependency-graph-tree.tsx +8 -8
  220. package/src/components/dependency-graph/elements.ts +24 -21
  221. package/src/components/dependency-graph/minimap-content.tsx +13 -19
  222. package/src/components/dependency-graph/panels.tsx +4 -2
  223. package/src/components/dependency-graph/utils/__tests__/layout.test.ts +18 -11
  224. package/src/components/editor/SortableCell.tsx +1 -3
  225. package/src/components/editor/__tests__/Output.test.tsx +50 -32
  226. package/src/{core/attachments/__tests__/toast.test.tsx → components/editor/__tests__/agent-toast.test.tsx} +1 -1
  227. package/src/components/editor/__tests__/data-attributes.test.tsx +28 -14
  228. package/src/components/editor/__tests__/dynamic-favicon.test.tsx +111 -18
  229. package/src/components/editor/__tests__/output-persistence.test.tsx +6 -2
  230. package/src/components/editor/__tests__/package-alert.test.tsx +22 -1
  231. package/src/components/editor/actions/__tests__/name-cell-input.test.tsx +69 -0
  232. package/src/components/editor/actions/__tests__/pair-with-agent-commands.test.ts +3 -3
  233. package/src/components/editor/actions/__tests__/pair-with-agent-modal.test.tsx +40 -10
  234. package/src/components/editor/actions/__tests__/pair-with-agent.test.tsx +6 -10
  235. package/src/components/editor/actions/__tests__/useCellActionButton.test.tsx +113 -0
  236. package/src/components/editor/actions/name-cell-input.tsx +4 -3
  237. package/src/components/editor/actions/pair-with-agent-commands.ts +10 -6
  238. package/src/components/editor/actions/pair-with-agent-modal.tsx +24 -21
  239. package/src/components/editor/actions/pair-with-agent.tsx +15 -10
  240. package/src/components/editor/actions/useCellActionButton.tsx +36 -31
  241. package/src/components/editor/actions/useConfigActions.tsx +3 -4
  242. package/src/components/editor/actions/useNotebookActions.tsx +25 -29
  243. package/src/components/editor/actions/useRestartKernel.tsx +1 -1
  244. package/src/components/editor/actions/useSetCodeVisibility.ts +11 -12
  245. package/src/components/editor/actions/useSetOutputsExpanded.ts +14 -19
  246. package/src/components/editor/ai/add-cell-with-ai.tsx +3 -3
  247. package/src/components/editor/ai/ai-completion-editor.tsx +1 -0
  248. package/src/components/editor/alerts/__tests__/connection-notice.test.tsx +1 -1
  249. package/src/components/editor/alerts/connection-notice.tsx +1 -1
  250. package/src/components/editor/alerts/startup-logs-alert.tsx +1 -0
  251. package/src/components/editor/alerts/stdin-blocking-alert.tsx +1 -1
  252. package/src/components/editor/app-container.tsx +1 -1
  253. package/src/components/editor/boundary/__tests__/ErrorBoundary.test.tsx +1 -1
  254. package/src/components/editor/cell/CreateCellButton.tsx +15 -21
  255. package/src/components/editor/cell/DeleteButton.tsx +3 -2
  256. package/src/components/editor/cell/RunButton.tsx +2 -2
  257. package/src/components/editor/cell/StagedAICell.tsx +10 -2
  258. package/src/components/editor/cell/StopButton.tsx +2 -2
  259. package/src/components/editor/cell/__tests__/StagedAICell.test.tsx +4 -2
  260. package/src/components/editor/cell/__tests__/useShouldShowInterrupt.test.ts +39 -0
  261. package/src/components/editor/cell/cell-actions.tsx +12 -1
  262. package/src/components/editor/cell/code/__tests__/language-toggle.test.tsx +54 -0
  263. package/src/components/editor/cell/code/cell-editor.tsx +46 -165
  264. package/src/components/editor/cell/code/language-toggle.tsx +8 -7
  265. package/src/components/editor/cell/collapse.tsx +11 -4
  266. package/src/components/editor/cell/useAddCell.ts +4 -8
  267. package/src/components/editor/cell/useDeleteCell.tsx +10 -36
  268. package/src/components/editor/cell/useRunCells.ts +2 -5
  269. package/src/components/editor/cell/useShouldShowInterrupt.ts +2 -12
  270. package/src/components/editor/cell/useSplitCell.tsx +10 -6
  271. package/src/components/editor/chrome/components/__tests__/feedback-button.test.tsx +1 -1
  272. package/src/components/editor/chrome/components/feedback-button.tsx +2 -8
  273. package/src/components/editor/chrome/panels/__tests__/packages-panel.test.tsx +31 -2
  274. package/src/components/editor/chrome/panels/__tests__/runtime-details.test.tsx +1 -1
  275. package/src/components/editor/chrome/panels/__tests__/sandbox-recovery.test.tsx +1 -1
  276. package/src/components/editor/chrome/panels/cache-panel.tsx +1 -0
  277. package/src/components/editor/chrome/panels/dependency-graph-panel.tsx +1 -1
  278. package/src/components/editor/chrome/panels/logs-panel.tsx +2 -1
  279. package/src/components/editor/chrome/panels/outline/__tests__/outline-keyboard.test.tsx +84 -0
  280. package/src/components/editor/chrome/panels/outline/floating-outline.tsx +39 -14
  281. package/src/components/editor/chrome/panels/outline/useActiveOutline.tsx +3 -2
  282. package/src/components/editor/chrome/panels/packages-panel.tsx +4 -7
  283. package/src/components/editor/chrome/panels/secrets-panel.tsx +1 -0
  284. package/src/components/editor/chrome/panels/session-panel.tsx +1 -1
  285. package/src/components/editor/chrome/panels/snippets-panel.tsx +10 -12
  286. package/src/components/editor/chrome/panels/variable-panel.tsx +1 -5
  287. package/src/components/editor/chrome/wrapper/__tests__/attachment-status.test.tsx +6 -9
  288. package/src/components/editor/chrome/wrapper/__tests__/document-sync-status.test.tsx +92 -0
  289. package/src/components/editor/chrome/wrapper/__tests__/pending-ai-cells.test.tsx +62 -3
  290. package/src/components/editor/chrome/wrapper/footer-items/attachment-status.tsx +4 -4
  291. package/src/components/editor/chrome/wrapper/footer-items/backend-status.tsx +1 -1
  292. package/src/components/editor/chrome/wrapper/footer-items/document-sync-status.tsx +54 -0
  293. package/src/components/editor/chrome/wrapper/footer-items/lsp-status.tsx +1 -1
  294. package/src/components/editor/chrome/wrapper/footer-items/machine-stats.tsx +1 -1
  295. package/src/components/editor/chrome/wrapper/footer-items/runtime-settings.tsx +1 -7
  296. package/src/components/editor/chrome/wrapper/footer.tsx +2 -2
  297. package/src/components/editor/chrome/wrapper/minimap-state.ts +1 -1
  298. package/src/components/editor/chrome/wrapper/pending-ai-cells.tsx +12 -2
  299. package/src/components/editor/chrome/wrapper/storage.ts +1 -1
  300. package/src/components/editor/columns/__tests__/cell-column.test.tsx +1 -1
  301. package/src/components/editor/columns/cell-column.tsx +1 -1
  302. package/src/components/editor/columns/sortable-column.tsx +2 -2
  303. package/src/components/editor/connections/components.tsx +5 -10
  304. package/src/components/editor/controls/Controls.tsx +4 -4
  305. package/src/components/editor/controls/__tests__/command-palette.test.tsx +53 -0
  306. package/src/components/editor/controls/__tests__/keyboard-shortcuts.test.tsx +61 -0
  307. package/src/components/editor/controls/__tests__/notebook-menu-dropdown.test.tsx +10 -4
  308. package/src/components/editor/controls/command-palette.tsx +22 -10
  309. package/src/components/editor/controls/keyboard-shortcuts.tsx +14 -5
  310. package/src/components/editor/documentation.css +34 -11
  311. package/src/components/editor/dynamic-favicon.tsx +21 -40
  312. package/src/components/editor/errors/__tests__/send-error-report-button.test.tsx +25 -20
  313. package/src/components/editor/errors/auto-fix.tsx +4 -8
  314. package/src/components/editor/errors/send-error-report-button.tsx +3 -6
  315. package/src/components/editor/file-tree/__tests__/file-explorer-interactions.test.tsx +6 -0
  316. package/src/components/editor/file-tree/__tests__/file-explorer-navigation.test.tsx +47 -0
  317. package/src/components/editor/file-tree/__tests__/use-file-search.test.tsx +91 -0
  318. package/src/components/editor/file-tree/file-explorer.tsx +48 -15
  319. package/src/components/editor/file-tree/file-name-input.tsx +1 -0
  320. package/src/components/editor/file-tree/file-viewer.tsx +4 -2
  321. package/src/components/editor/file-tree/use-file-search.ts +35 -21
  322. package/src/components/editor/header/__tests__/filename-form.test.tsx +1 -4
  323. package/src/components/editor/header/__tests__/status.test.tsx +5 -3
  324. package/src/components/editor/header/app-header.tsx +1 -1
  325. package/src/components/editor/header/filename-form.tsx +1 -1
  326. package/src/components/editor/header/status.tsx +40 -20
  327. package/src/components/editor/links/__tests__/cell-link.test.tsx +148 -0
  328. package/src/components/editor/links/cell-link-list.tsx +1 -1
  329. package/src/components/editor/links/cell-link.tsx +17 -7
  330. package/src/components/editor/navigation/__tests__/clipboard.test.ts +60 -38
  331. package/src/components/editor/navigation/__tests__/navigation.test.ts +108 -85
  332. package/src/components/editor/navigation/__tests__/selection.test.ts +43 -21
  333. package/src/components/editor/navigation/clipboard.ts +17 -14
  334. package/src/components/editor/navigation/focus-utils.ts +23 -4
  335. package/src/components/editor/navigation/multi-cell-action-toolbar.tsx +17 -33
  336. package/src/components/editor/navigation/navigation.ts +71 -70
  337. package/src/components/editor/navigation/selection.ts +30 -29
  338. package/src/components/editor/notebook-banner.tsx +1 -0
  339. package/src/components/editor/notebook-cell.tsx +29 -32
  340. package/src/components/editor/output/MarimoErrorOutput.tsx +2 -1
  341. package/src/components/editor/output/MarimoTracebackOutput.tsx +19 -17
  342. package/src/components/editor/output/Outputs.css +8 -0
  343. package/src/components/editor/output/VideoOutput.tsx +6 -0
  344. package/src/components/editor/output/__tests__/VideoOutput.test.tsx +131 -0
  345. package/src/components/editor/output/__tests__/traceback.test.tsx +27 -1
  346. package/src/components/editor/output/ansi-reduce.ts +33 -20
  347. package/src/components/editor/output/console/ConsoleOutput.tsx +19 -25
  348. package/src/components/editor/output/console/__tests__/ConsoleOutput.test.tsx +125 -69
  349. package/src/components/editor/package-alert.tsx +14 -7
  350. package/src/components/editor/renderers/cell-array.tsx +22 -33
  351. package/src/components/editor/renderers/grid-layout/grid-layout.tsx +12 -6
  352. package/src/components/editor/renderers/slides-layout/__tests__/plugin.test.ts +0 -1
  353. package/src/components/editor/renderers/slides-layout/slides-layout.tsx +1 -1
  354. package/src/components/editor/renderers/vertical-layout/__tests__/useFocusFirstEditor.test.ts +4 -4
  355. package/src/components/editor/renderers/vertical-layout/sidebar/toggle.tsx +7 -1
  356. package/src/components/editor/renderers/vertical-layout/useFocusFirstEditor.ts +1 -1
  357. package/src/components/editor/renderers/vertical-layout/vertical-layout.tsx +1 -1
  358. package/src/components/editor/stdin-blocking-alert.tsx +1 -1
  359. package/src/components/home/components.tsx +17 -31
  360. package/src/components/icons/__tests__/large-spinner.test.tsx +39 -0
  361. package/src/components/icons/large-spinner.tsx +3 -14
  362. package/src/components/icons/spinner.tsx +1 -1
  363. package/src/components/markdown/markdown-renderer.tsx +4 -8
  364. package/src/components/mcp/mcp-status-indicator.tsx +1 -1
  365. package/src/components/pages/__tests__/home-page.test.tsx +116 -0
  366. package/src/components/pages/edit-page.tsx +19 -17
  367. package/src/components/pages/home-page.tsx +164 -91
  368. package/src/components/scratchpad/scratchpad.test.tsx +89 -0
  369. package/src/components/scratchpad/scratchpad.tsx +43 -32
  370. package/src/components/scratchpad/state.ts +7 -0
  371. package/src/components/slides/__tests__/minimap-actions.test.tsx +22 -29
  372. package/src/components/slides/__tests__/minimap.test.ts +38 -19
  373. package/src/components/slides/__tests__/slide-scroll-hint.test.tsx +37 -0
  374. package/src/components/slides/minimap.tsx +17 -12
  375. package/src/components/slides/reveal-component.tsx +58 -26
  376. package/src/components/slides/reveal-slides.css +5 -4
  377. package/src/components/slides/slide-cell-view.tsx +4 -5
  378. package/src/components/slides/slide-form.tsx +1 -0
  379. package/src/components/slides/slide-scroll-hint.tsx +3 -1
  380. package/src/components/sort/SortableCellsProvider.tsx +8 -25
  381. package/src/components/tracing/tracing-keyboard.test.tsx +85 -0
  382. package/src/components/tracing/tracing.tsx +46 -42
  383. package/src/components/ui/__tests__/draggable-popover.test.tsx +24 -0
  384. package/src/components/ui/__tests__/fullscreen.test.tsx +44 -2
  385. package/src/components/ui/__tests__/range-slider.test.tsx +165 -0
  386. package/src/components/ui/alert-dialog.tsx +1 -1
  387. package/src/components/ui/draggable-popover.tsx +24 -2
  388. package/src/components/ui/fullscreen.tsx +25 -1
  389. package/src/components/ui/range-slider.tsx +22 -9
  390. package/src/core/MarimoApp.tsx +3 -1
  391. package/src/core/ai/__tests__/staged-cells.test.ts +32 -33
  392. package/src/core/ai/context/providers/__tests__/cell-output.test.ts +8 -12
  393. package/src/core/ai/context/providers/cell-output.ts +2 -2
  394. package/src/core/ai/context/providers/datasource.ts +6 -2
  395. package/src/core/ai/staged-cells.ts +18 -19
  396. package/src/core/ai/tools/__tests__/edit-notebook-tool.test.ts +40 -88
  397. package/src/core/ai/tools/__tests__/registry.test.ts +17 -0
  398. package/src/core/ai/tools/base.ts +18 -15
  399. package/src/core/ai/tools/edit-notebook-tool.ts +86 -80
  400. package/src/core/ai/tools/registry.ts +13 -10
  401. package/src/core/ai/tools/sample-tool.ts +6 -7
  402. package/src/core/cells/__tests__/__snapshots__/cells.test.ts.snap +4 -37
  403. package/src/core/cells/__tests__/actions.test.ts +624 -35
  404. package/src/core/cells/__tests__/add-missing-import.test.ts +7 -8
  405. package/src/core/cells/__tests__/arrange.test.ts +432 -0
  406. package/src/core/cells/__tests__/cell.test.ts +39 -0
  407. package/src/core/cells/__tests__/cells.test.ts +251 -2540
  408. package/src/core/cells/__tests__/collapseConsoleOutputs.test.ts +54 -0
  409. package/src/core/cells/__tests__/document.test.ts +164 -0
  410. package/src/core/cells/__tests__/editor.test.ts +57 -0
  411. package/src/core/cells/__tests__/flush-document.test.ts +40 -0
  412. package/src/core/cells/__tests__/harness.ts +106 -0
  413. package/src/core/cells/__tests__/layout.test.ts +177 -0
  414. package/src/core/cells/__tests__/notebook-outline.test.ts +122 -0
  415. package/src/core/cells/__tests__/outputs.test.tsx +71 -53
  416. package/src/core/cells/__tests__/session.test.ts +445 -211
  417. package/src/core/cells/__tests__/utils.test.ts +9 -108
  418. package/src/core/cells/actions.ts +675 -6
  419. package/src/core/cells/add-missing-import.ts +47 -43
  420. package/src/core/cells/arrange.ts +529 -0
  421. package/src/core/cells/cell.ts +14 -3
  422. package/src/core/cells/cells.ts +126 -1363
  423. package/src/core/cells/columns.ts +38 -0
  424. package/src/core/cells/document.ts +178 -0
  425. package/src/core/cells/edit.ts +30 -0
  426. package/src/core/cells/editor.ts +82 -0
  427. package/src/core/cells/layout.ts +221 -0
  428. package/src/core/cells/outputs.ts +12 -28
  429. package/src/core/cells/pending-delete-service.ts +3 -7
  430. package/src/core/cells/session.ts +76 -53
  431. package/src/core/cells/types.ts +22 -6
  432. package/src/core/cells/utils.ts +10 -8
  433. package/src/core/codemirror/__tests__/format.test.ts +0 -34
  434. package/src/core/codemirror/__tests__/setup.test.ts +29 -29
  435. package/src/core/codemirror/ai/__tests__/resources.test.ts +117 -0
  436. package/src/core/codemirror/ai/resources.ts +1 -1
  437. package/src/core/codemirror/cells/__tests__/extensions.test.ts +2 -6
  438. package/src/core/codemirror/cells/extensions.ts +30 -28
  439. package/src/core/codemirror/cells/state.ts +1 -6
  440. package/src/core/codemirror/copilot/__tests__/getCodes.test.ts +6 -7
  441. package/src/core/codemirror/copilot/getCodes.ts +2 -2
  442. package/src/core/codemirror/format.ts +6 -23
  443. package/src/core/codemirror/keymaps/vim.ts +4 -8
  444. package/src/core/codemirror/language/__tests__/sql.test.ts +22 -20
  445. package/src/core/codemirror/language/__tests__/utils.test.ts +187 -15
  446. package/src/core/codemirror/language/cell-code.ts +114 -0
  447. package/src/core/codemirror/language/extension.ts +52 -35
  448. package/src/core/codemirror/language/languages/markdown.ts +8 -6
  449. package/src/core/codemirror/language/languages/python.ts +16 -10
  450. package/src/core/codemirror/language/languages/sql/sql.ts +16 -24
  451. package/src/core/codemirror/language/panel/panel.tsx +1 -0
  452. package/src/core/codemirror/language/types.ts +7 -7
  453. package/src/core/codemirror/language/utils.ts +9 -39
  454. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +1 -2
  455. package/src/core/codemirror/lsp/notebook-lsp.ts +6 -5
  456. package/src/core/codemirror/lsp/utils.ts +1 -1
  457. package/src/core/codemirror/misc/__tests__/paste.test.ts +3 -1
  458. package/src/core/codemirror/misc/paste.ts +1 -1
  459. package/src/core/codemirror/readonly/__tests__/extension.test.ts +1 -1
  460. package/src/core/codemirror/readonly/extension.ts +2 -2
  461. package/src/core/codemirror/utils.ts +1 -0
  462. package/src/core/config/__tests__/app-config.test.ts +64 -0
  463. package/src/core/config/__tests__/config-schema.test.ts +56 -6
  464. package/src/core/config/config-schema.ts +17 -4
  465. package/src/core/config/config.ts +65 -20
  466. package/src/core/config/feature-flag.tsx +0 -2
  467. package/src/core/datasets/__tests__/data-source-discovery.test.ts +5 -5
  468. package/src/core/datasets/data-source-discovery.ts +4 -6
  469. package/src/core/documentation/doc-lookup.ts +1 -1
  470. package/src/core/edit-app.tsx +21 -28
  471. package/src/core/errors/error-entries.ts +4 -1
  472. package/src/core/export/hooks.ts +1 -1
  473. package/src/core/export/layout.ts +2 -2
  474. package/src/core/hotkeys/actions.ts +2 -4
  475. package/src/core/islands/__tests__/bootstrap.test.ts +69 -17
  476. package/src/core/islands/__tests__/bridge.test.ts +85 -27
  477. package/src/core/islands/bootstrap.ts +46 -53
  478. package/src/core/islands/bridge.ts +84 -25
  479. package/src/core/islands/components/__tests__/IslandControls.test.tsx +7 -5
  480. package/src/core/islands/components/web-components.tsx +1 -1
  481. package/src/core/islands/worker/__tests__/controller.test.ts +62 -4
  482. package/src/core/islands/worker/controller.ts +4 -10
  483. package/src/core/islands/worker/worker.tsx +33 -33
  484. package/src/core/kernel/__tests__/RuntimeState.test.ts +1 -1
  485. package/src/core/kernel/__tests__/handlers.test.ts +7 -153
  486. package/src/core/kernel/handlers.ts +19 -72
  487. package/src/core/meta/__tests__/code-visibility.test.tsx +78 -70
  488. package/src/core/meta/code-visibility.ts +18 -9
  489. package/src/core/network/__tests__/connection.test.ts +1 -1
  490. package/src/core/network/__tests__/requests-lazy.test.ts +1 -3
  491. package/src/core/network/connection-notice.ts +1 -1
  492. package/src/core/network/connection.ts +1 -1
  493. package/src/core/network/requests-lazy.ts +2 -5
  494. package/src/core/network/requests-network.ts +5 -31
  495. package/src/core/network/requests-static.ts +1 -4
  496. package/src/core/network/requests-toasting.tsx +1 -4
  497. package/src/core/network/types.ts +6 -14
  498. package/src/core/network/useConnectionNotice.ts +8 -2
  499. package/src/core/notebook/__tests__/operations.test.ts +51 -0
  500. package/src/core/notebook/attachments.ts +38 -0
  501. package/src/core/notebook/document/__tests__/codemirror.test.ts +758 -0
  502. package/src/core/notebook/document/__tests__/draft.test.ts +363 -0
  503. package/src/core/notebook/document/__tests__/fixtures.ts +92 -0
  504. package/src/core/notebook/document/__tests__/hooks.test.tsx +391 -0
  505. package/src/core/notebook/document/__tests__/lifecycle-scenarios.test.ts +61 -0
  506. package/src/core/notebook/document/__tests__/model.test.ts +247 -0
  507. package/src/core/notebook/document/__tests__/protocol-fixtures.ts +38 -0
  508. package/src/core/notebook/document/__tests__/recovery-scenarios.test.ts +230 -0
  509. package/src/core/notebook/document/__tests__/scenario-fixture.ts +43 -0
  510. package/src/core/notebook/document/__tests__/scenarios.test.ts +205 -0
  511. package/src/core/notebook/document/__tests__/state.test.ts +459 -0
  512. package/src/core/notebook/document/__tests__/submission.test.ts +203 -0
  513. package/src/core/notebook/document/__tests__/test-host.test.ts +92 -0
  514. package/src/core/notebook/document/__tests__/test-host.ts +247 -0
  515. package/src/core/notebook/document/__tests__/test-notebook.ts +149 -0
  516. package/src/core/notebook/document/__tests__/user.ts +61 -0
  517. package/src/core/notebook/document/codemirror.ts +216 -0
  518. package/src/core/notebook/document/draft.ts +502 -0
  519. package/src/core/notebook/document/hooks.tsx +118 -0
  520. package/src/core/notebook/document/index.ts +24 -0
  521. package/src/core/notebook/document/model.ts +102 -0
  522. package/src/core/notebook/document/select.ts +41 -0
  523. package/src/core/notebook/document/state.ts +378 -0
  524. package/src/core/notebook/document/sync.ts +369 -0
  525. package/src/core/notebook/index.ts +19 -0
  526. package/src/core/notebook/operations.ts +30 -0
  527. package/src/core/notebook/replica/AGENTS.md +11 -0
  528. package/src/core/{host → notebook/replica}/__tests__/attachments.test.ts +9 -10
  529. package/src/core/{host → notebook/replica}/__tests__/document.test.ts +18 -16
  530. package/src/core/notebook/replica/__tests__/executions.test.ts +201 -0
  531. package/src/core/notebook/replica/__tests__/fixtures.ts +79 -0
  532. package/src/core/notebook/replica/__tests__/replica.test.ts +559 -0
  533. package/src/core/notebook/replica/__tests__/results.test.ts +193 -0
  534. package/src/core/notebook/replica/__tests__/runtime.test.ts +78 -0
  535. package/src/core/notebook/replica/backend.ts +19 -0
  536. package/src/core/notebook/replica/connection.ts +42 -0
  537. package/src/core/notebook/replica/index.ts +20 -0
  538. package/src/core/notebook/replica/replica.ts +336 -0
  539. package/src/core/{host → notebook/replica}/resources/attachments.ts +6 -3
  540. package/src/core/{host → notebook/replica}/resources/document.ts +3 -3
  541. package/src/core/notebook/replica/resources/executions.ts +157 -0
  542. package/src/core/notebook/replica/resources/results.ts +48 -0
  543. package/src/core/notebook/replica/resources/runtime.ts +14 -0
  544. package/src/core/packages/__tests__/useSandboxController.test.tsx +1 -1
  545. package/src/core/packages/useSandboxController.ts +1 -1
  546. package/src/core/run-app.tsx +48 -51
  547. package/src/core/runtime/__tests__/adapter.test.ts +1 -1
  548. package/src/core/runtime/__tests__/createWsUrl.test.ts +77 -7
  549. package/src/core/runtime/__tests__/runtime.test.ts +32 -74
  550. package/src/core/runtime/adapter.ts +1 -1
  551. package/src/core/runtime/config.ts +2 -2
  552. package/src/core/runtime/runtime.ts +33 -46
  553. package/src/core/runtime/types.ts +0 -2
  554. package/src/core/saving/__tests__/document.test.tsx +123 -0
  555. package/src/core/saving/__tests__/state.test.ts +111 -0
  556. package/src/core/saving/__tests__/useAutoSave.test.tsx +67 -0
  557. package/src/core/saving/document.ts +33 -0
  558. package/src/core/saving/filename.ts +1 -1
  559. package/src/core/saving/save-component.tsx +39 -60
  560. package/src/core/saving/state.ts +38 -39
  561. package/src/core/saving/useAutoSave.ts +17 -53
  562. package/src/core/session/__tests__/backend.test.ts +236 -0
  563. package/src/core/session/__tests__/useNotebookReplica.hook.test.tsx +184 -0
  564. package/src/core/{websocket → session}/__tests__/useNotebookSession.hook.test.tsx +213 -262
  565. package/src/core/session/active-notebook.ts +28 -0
  566. package/src/core/session/backend.ts +123 -0
  567. package/src/core/session/embedded.ts +7 -0
  568. package/src/core/{websocket → session}/types.ts +2 -2
  569. package/src/core/session/useNotebookReplica.ts +74 -0
  570. package/src/core/{websocket → session}/useNotebookSession.tsx +77 -64
  571. package/src/core/state/__tests__/jotai.test.tsx +108 -0
  572. package/src/core/state/jotai.ts +1 -1
  573. package/src/core/static/__tests__/files.test.ts +38 -10
  574. package/src/core/static/files.ts +2 -0
  575. package/src/core/{websocket → transports}/__tests__/connection-state.test.ts +1 -13
  576. package/src/core/transports/__tests__/server.test.ts +408 -0
  577. package/src/core/transports/__tests__/static.test.ts +306 -0
  578. package/src/core/transports/__tests__/wasm.test.ts +166 -0
  579. package/src/core/{websocket → transports}/connection-state.ts +9 -16
  580. package/src/core/transports/server.ts +152 -0
  581. package/src/core/transports/static.ts +166 -0
  582. package/src/core/transports/wasm.ts +97 -0
  583. package/src/core/vscode/__tests__/vscode-bindings.test.ts +125 -0
  584. package/src/core/vscode/vscode-bindings.ts +14 -2
  585. package/src/core/wasm/__tests__/bridge.test.ts +105 -65
  586. package/src/core/wasm/__tests__/worker.test.ts +187 -0
  587. package/src/core/wasm/bridge.ts +69 -72
  588. package/src/core/wasm/rpc.ts +15 -3
  589. package/src/core/wasm/store.ts +3 -3
  590. package/src/core/wasm/worker/bootstrap.ts +55 -51
  591. package/src/core/wasm/worker/getMarimoWheel.ts +1 -1
  592. package/src/core/wasm/worker/save-worker.ts +9 -10
  593. package/src/core/wasm/worker/types.ts +29 -18
  594. package/src/core/wasm/worker/worker.ts +89 -45
  595. package/src/css/app/codemirror.css +1 -1
  596. package/src/css/common.css +1 -1
  597. package/src/css/globals.css +66 -22
  598. package/src/hooks/__tests__/useAsyncData.test.tsx +148 -0
  599. package/src/hooks/__tests__/useDebounce.test.tsx +51 -0
  600. package/src/hooks/__tests__/useDeepCompareMemoize.test.tsx +39 -0
  601. package/src/hooks/__tests__/useDelayElapsed.test.tsx +28 -0
  602. package/src/hooks/__tests__/useInternalStateWithSync.test.tsx +20 -0
  603. package/src/hooks/__tests__/useScript.test.tsx +77 -0
  604. package/src/hooks/__tests__/useStateForKey.test.tsx +257 -0
  605. package/src/hooks/useAsyncData.ts +3 -3
  606. package/src/hooks/useDataSourceDiscovery.ts +6 -4
  607. package/src/hooks/useDebounce.ts +6 -10
  608. package/src/hooks/useDeepCompareMemoize.ts +1 -1
  609. package/src/hooks/useDelayElapsed.ts +14 -10
  610. package/src/hooks/useElapsedTime.ts +3 -3
  611. package/src/hooks/useEventListener.ts +1 -2
  612. package/src/hooks/useInputHistory.ts +4 -7
  613. package/src/hooks/useInternalStateWithSync.ts +6 -6
  614. package/src/hooks/useResizeObserver.ts +4 -7
  615. package/src/hooks/useScript.ts +67 -70
  616. package/src/hooks/useStateForKey.ts +93 -0
  617. package/src/mount.tsx +20 -15
  618. package/src/plugins/__tests__/plugin-object-schemas.test.ts +104 -0
  619. package/src/plugins/core/registerReactComponent.tsx +1 -1
  620. package/src/plugins/impl/CodeEditorPlugin.tsx +1 -1
  621. package/src/plugins/impl/DataEditorPlugin.tsx +1 -1
  622. package/src/plugins/impl/DataTablePlugin.tsx +69 -37
  623. package/src/plugins/impl/DropdownPlugin.tsx +2 -6
  624. package/src/plugins/impl/FileBrowserPlugin.tsx +4 -16
  625. package/src/plugins/impl/FormPlugin.tsx +1 -1
  626. package/src/plugins/impl/RangeSliderPlugin.tsx +16 -2
  627. package/src/plugins/impl/RefreshPlugin.tsx +1 -0
  628. package/src/plugins/impl/SliderPlugin.tsx +6 -8
  629. package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +387 -1
  630. package/src/plugins/impl/__tests__/FileBrowserPlugin.test.tsx +45 -0
  631. package/src/plugins/impl/__tests__/RangeSliderPlugin.test.tsx +109 -0
  632. package/src/plugins/impl/__tests__/SliderPlugin.test.tsx +24 -3
  633. package/src/plugins/impl/anywidget/__tests__/registry.test.ts +153 -0
  634. package/src/plugins/impl/anywidget/__tests__/widget-binding.test.ts +241 -2
  635. package/src/plugins/impl/anywidget/model.ts +3 -1
  636. package/src/plugins/impl/anywidget/registry.ts +18 -14
  637. package/src/plugins/impl/anywidget/runtime.ts +21 -9
  638. package/src/plugins/impl/anywidget/widget-binding.ts +160 -82
  639. package/src/plugins/impl/chat/__tests__/chat-prompts.test.tsx +93 -0
  640. package/src/plugins/impl/chat/chat-ui.tsx +14 -11
  641. package/src/plugins/impl/code/any-language-editor.tsx +2 -2
  642. package/src/plugins/impl/data-editor/glide-data-editor.tsx +8 -5
  643. package/src/plugins/impl/data-editor/glide-utils.ts +3 -1
  644. package/src/plugins/impl/data-explorer/ConnectedDataExplorerComponent.tsx +1 -1
  645. package/src/plugins/impl/data-explorer/components/column-summary.tsx +4 -2
  646. package/src/plugins/impl/data-explorer/state/reducer.ts +1 -1
  647. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +1 -2
  648. package/src/plugins/impl/data-frames/__tests__/sidebar.test.tsx +160 -0
  649. package/src/plugins/impl/data-frames/forms/__tests__/__snapshots__/form.test.tsx.snap +66 -66
  650. package/src/plugins/impl/data-frames/panel.tsx +44 -16
  651. package/src/plugins/impl/mpl-interactive/MplInteractivePlugin.tsx +5 -3
  652. package/src/plugins/impl/panel/PanelPlugin.tsx +16 -17
  653. package/src/plugins/impl/panel/__tests__/utils.test.ts +39 -1
  654. package/src/plugins/impl/panel/utils.ts +17 -0
  655. package/src/plugins/impl/plotly/PlotlyPlugin.tsx +2 -5
  656. package/src/plugins/impl/plotly/selection.ts +25 -19
  657. package/src/plugins/impl/vega/VegaPlugin.tsx +2 -3
  658. package/src/plugins/impl/vega/make-selectable.ts +4 -7
  659. package/src/plugins/layout/DownloadPlugin.tsx +7 -11
  660. package/src/plugins/layout/RoutesPlugin.tsx +1 -1
  661. package/src/plugins/layout/__test__/DownloadPlugin.test.tsx +196 -0
  662. package/src/stories/__tests__/editor-story.test.tsx +33 -0
  663. package/src/stories/button.stories.tsx +1 -0
  664. package/src/stories/cell.stories.tsx +2 -5
  665. package/src/stories/data-table.stories.tsx +31 -0
  666. package/src/stories/editor.stories.tsx +24 -17
  667. package/src/stories/form-wrapper.stories.tsx +2 -2
  668. package/src/stories/layout/vertical/one-column.stories.tsx +28 -23
  669. package/src/stories/runtime-story.tsx +23 -17
  670. package/src/stories/select.stories.tsx +2 -2
  671. package/src/stories/switchable-multi-select.stories.tsx +1 -1
  672. package/src/utils/__tests__/arrays.test.ts +35 -0
  673. package/src/utils/__tests__/batch-requests.test.ts +3 -3
  674. package/src/utils/__tests__/{createReducer.test.ts → createReducer.test.tsx} +29 -0
  675. package/src/utils/__tests__/download.test.tsx +62 -9
  676. package/src/utils/__tests__/numbers.test.ts +105 -1
  677. package/src/utils/__tests__/objects.test.ts +21 -0
  678. package/src/utils/arrays.ts +11 -2
  679. package/src/utils/blob.ts +1 -1
  680. package/src/utils/createReducer.ts +53 -26
  681. package/src/utils/download.ts +55 -3
  682. package/src/utils/maps.ts +0 -3
  683. package/src/utils/numbers.ts +79 -18
  684. package/src/utils/objects.ts +4 -9
  685. package/src/utils/tracer.ts +9 -5
  686. package/src/utils/zod-utils.ts +1 -3
  687. package/dist/_baseMerge-BiGRwuqv.js +0 -165
  688. package/dist/any-language-editor-D4q-IFcM.js +0 -76
  689. package/dist/assets/__vite-browser-external-BXYkiFsk.js +0 -1
  690. package/dist/assets/worker-HPY9fbhz.js +0 -114
  691. package/dist/code-visibility-HTfE7PV1.js +0 -138
  692. package/dist/dropdown-menu-DHP9P4VE.js +0 -4678
  693. package/dist/feedback-button-BL7Ed1J3.js +0 -379
  694. package/dist/hasIn-o2Us0uVx.js +0 -132
  695. package/dist/html-to-image-BdA59IUD.js +0 -3251
  696. package/dist/isArrayLikeObject-BZl-15ir.js +0 -450
  697. package/dist/isEmpty-BSZ1LaUo.js +0 -35
  698. package/dist/isSymbol-kQcfYbNX.js +0 -8
  699. package/dist/label-DoysmLMW.js +0 -281
  700. package/dist/mermaid-HWGCJPDP-ByCsZnYF.js +0 -2
  701. package/dist/objectWithoutPropertiesLoose-BRDcTsfB.js +0 -23
  702. package/dist/pick-CJeoxYOS.js +0 -51
  703. package/dist/precisionRound-DMIVQrt2.js +0 -97
  704. package/dist/select-DemoKT4G.js +0 -1344
  705. package/dist/toDate-B5mIgxwZ.js +0 -1185
  706. package/dist/toast-PkdZraM8.js +0 -1830
  707. package/dist/use-restore-focus-CKjfFjLM.js +0 -6369
  708. package/dist/useLifecycle-BGWzTwHK.js +0 -169
  709. package/dist/useTheme-BhQvec43.js +0 -904
  710. package/src/components/editor/cell/code/__tests__/rtc-editor-config.test.ts +0 -50
  711. package/src/components/editor/chrome/wrapper/footer-items/rtc-status.tsx +0 -65
  712. package/src/components/editor/navigation/__tests__/state.test.ts +0 -81
  713. package/src/components/editor/navigation/state.ts +0 -65
  714. package/src/core/ai/tools/__tests__/run-cells-tool.test.ts +0 -656
  715. package/src/core/ai/tools/run-cells-tool.ts +0 -303
  716. package/src/core/attachments/state.ts +0 -18
  717. package/src/core/cells/__tests__/apply-transaction.test.ts +0 -991
  718. package/src/core/cells/__tests__/document-changes.test.ts +0 -1140
  719. package/src/core/cells/__tests__/document-roundtrip.test.ts +0 -392
  720. package/src/core/cells/document-changes.ts +0 -944
  721. package/src/core/codemirror/rtc/extension.ts +0 -453
  722. package/src/core/codemirror/rtc/loro/__tests__/sync.test.ts +0 -52
  723. package/src/core/codemirror/rtc/loro/awareness.ts +0 -531
  724. package/src/core/codemirror/rtc/loro/colors.ts +0 -38
  725. package/src/core/codemirror/rtc/loro/sync.ts +0 -168
  726. package/src/core/host/AGENTS.md +0 -11
  727. package/src/core/host/__tests__/events.test.ts +0 -46
  728. package/src/core/host/__tests__/fixtures.ts +0 -39
  729. package/src/core/host/__tests__/notebook-client.test.ts +0 -433
  730. package/src/core/host/__tests__/protocol.test.ts +0 -214
  731. package/src/core/host/__tests__/stream.test.ts +0 -209
  732. package/src/core/host/connection.ts +0 -81
  733. package/src/core/host/events.ts +0 -61
  734. package/src/core/host/notebook-client.ts +0 -290
  735. package/src/core/host/protocol.ts +0 -1943
  736. package/src/core/host/resources/resource.ts +0 -47
  737. package/src/core/host/stream.ts +0 -211
  738. package/src/core/rtc/state.ts +0 -34
  739. package/src/core/state/__tests__/jotai.test.ts +0 -25
  740. package/src/core/wasm/worker/message-buffer.ts +0 -33
  741. package/src/core/websocket/__tests__/createConnectionTransport.test.ts +0 -49
  742. package/src/core/websocket/__tests__/useNotebookClient.hook.test.tsx +0 -170
  743. package/src/core/websocket/state.ts +0 -7
  744. package/src/core/websocket/transports/__tests__/basic.test.ts +0 -275
  745. package/src/core/websocket/transports/__tests__/sse.test.ts +0 -335
  746. package/src/core/websocket/transports/__tests__/transport.test.ts +0 -308
  747. package/src/core/websocket/transports/__tests__/ws.test.ts +0 -125
  748. package/src/core/websocket/transports/basic.ts +0 -102
  749. package/src/core/websocket/transports/create.ts +0 -31
  750. package/src/core/websocket/transports/sse.ts +0 -308
  751. package/src/core/websocket/transports/transport.ts +0 -50
  752. package/src/core/websocket/transports/ws.ts +0 -98
  753. package/src/core/websocket/useNotebookClient.ts +0 -88
  754. package/src/utils/__tests__/id-tree.test.ts +0 -2145
  755. package/src/utils/id-tree.tsx +0 -1134
  756. /package/src/{core/attachments/toast.ts → components/editor/agent-toast.ts} +0 -0
  757. /package/src/core/{websocket → session}/connection-utils.ts +0 -0
@@ -3,7 +3,7 @@ import { t } from "./react-sHtZdjeP.js";
3
3
  import { t as n } from "./compiler-runtime-CldRdSsv.js";
4
4
  import { t as r } from "./clsx-CoeGtWvn.js";
5
5
  import { t as i } from "./jsx-runtime-3BD1kT0s.js";
6
- import { t as a } from "./objects-CzUgoMIF.js";
6
+ import { t as a } from "./objects-DCmMvZtn.js";
7
7
  //#region src/utils/functions.ts
8
8
  var o = {
9
9
  NOOP: () => {},
@@ -61,11 +61,11 @@ function d() {
61
61
  return typeof window < "u" && window.Logger || l;
62
62
  }
63
63
  var f = d(), p = /* @__PURE__ */ e(t(), 1), m = n(), h = "-", g = (e) => {
64
- let t = b(e), { conflictingClassGroups: n, conflictingClassGroupModifiers: r } = e;
64
+ let t = y(e), { conflictingClassGroups: n, conflictingClassGroupModifiers: r } = e;
65
65
  return {
66
66
  getClassGroupId: (e) => {
67
67
  let n = e.split(h);
68
- return n[0] === "" && n.length !== 1 && n.shift(), _(n, t) || y(e);
68
+ return n[0] === "" && n.length !== 1 && n.shift(), _(n, t) || ee(e);
69
69
  },
70
70
  getConflictingClassGroupIds: (e, t) => {
71
71
  let i = n[e] || [];
@@ -79,29 +79,29 @@ var f = d(), p = /* @__PURE__ */ e(t(), 1), m = n(), h = "-", g = (e) => {
79
79
  if (t.validators.length === 0) return;
80
80
  let a = e.join(h);
81
81
  return t.validators.find(({ validator: e }) => e(a))?.classGroupId;
82
- }, v = /^\[(.+)\]$/, y = (e) => {
82
+ }, v = /^\[(.+)\]$/, ee = (e) => {
83
83
  if (v.test(e)) {
84
84
  let t = v.exec(e)[1], n = t?.substring(0, t.indexOf(":"));
85
85
  if (n) return "arbitrary.." + n;
86
86
  }
87
- }, b = (e) => {
87
+ }, y = (e) => {
88
88
  let { theme: t, prefix: n } = e, r = {
89
89
  nextPart: /* @__PURE__ */ new Map(),
90
90
  validators: []
91
91
  };
92
- return C(Object.entries(e.classGroups), n).forEach(([e, n]) => {
93
- x(n, r, e, t);
92
+ return ne(Object.entries(e.classGroups), n).forEach(([e, n]) => {
93
+ b(n, r, e, t);
94
94
  }), r;
95
- }, x = (e, t, n, r) => {
95
+ }, b = (e, t, n, r) => {
96
96
  e.forEach((e) => {
97
97
  if (typeof e == "string") {
98
- let r = e === "" ? t : S(t, e);
98
+ let r = e === "" ? t : x(t, e);
99
99
  r.classGroupId = n;
100
100
  return;
101
101
  }
102
102
  if (typeof e == "function") {
103
- if (ee(e)) {
104
- x(e(r), t, n, r);
103
+ if (te(e)) {
104
+ b(e(r), t, n, r);
105
105
  return;
106
106
  }
107
107
  t.validators.push({
@@ -111,10 +111,10 @@ var f = d(), p = /* @__PURE__ */ e(t(), 1), m = n(), h = "-", g = (e) => {
111
111
  return;
112
112
  }
113
113
  Object.entries(e).forEach(([e, i]) => {
114
- x(i, S(t, e), n, r);
114
+ b(i, x(t, e), n, r);
115
115
  });
116
116
  });
117
- }, S = (e, t) => {
117
+ }, x = (e, t) => {
118
118
  let n = e;
119
119
  return t.split(h).forEach((e) => {
120
120
  n.nextPart.has(e) || n.nextPart.set(e, {
@@ -122,7 +122,7 @@ var f = d(), p = /* @__PURE__ */ e(t(), 1), m = n(), h = "-", g = (e) => {
122
122
  validators: []
123
123
  }), n = n.nextPart.get(e);
124
124
  }), n;
125
- }, ee = (e) => e.isThemeGetter, C = (e, t) => t ? e.map(([e, n]) => [e, n.map((e) => typeof e == "string" ? t + e : typeof e == "object" ? Object.fromEntries(Object.entries(e).map(([e, n]) => [t + e, n])) : e)]) : e, w = (e) => {
125
+ }, te = (e) => e.isThemeGetter, ne = (e, t) => t ? e.map(([e, n]) => [e, n.map((e) => typeof e == "string" ? t + e : typeof e == "object" ? Object.fromEntries(Object.entries(e).map(([e, n]) => [t + e, n])) : e)]) : e, S = (e) => {
126
126
  if (e < 1) return {
127
127
  get: () => void 0,
128
128
  set: () => {}
@@ -140,7 +140,7 @@ var f = d(), p = /* @__PURE__ */ e(t(), 1), m = n(), h = "-", g = (e) => {
140
140
  n.has(e) ? n.set(e, t) : i(e, t);
141
141
  }
142
142
  };
143
- }, T = "!", E = (e) => {
143
+ }, C = "!", w = (e) => {
144
144
  let { separator: t, experimentalParseClassName: n } = e, r = t.length === 1, i = t[0], a = t.length, o = (e) => {
145
145
  let n = [], o = 0, s = 0, c;
146
146
  for (let l = 0; l < e.length; l++) {
@@ -157,7 +157,7 @@ var f = d(), p = /* @__PURE__ */ e(t(), 1), m = n(), h = "-", g = (e) => {
157
157
  }
158
158
  u === "[" ? o++ : u === "]" && o--;
159
159
  }
160
- let l = n.length === 0 ? e : e.substring(s), u = l.startsWith(T);
160
+ let l = n.length === 0 ? e : e.substring(s), u = l.startsWith(C);
161
161
  return {
162
162
  modifiers: n,
163
163
  hasImportantModifier: u,
@@ -169,18 +169,18 @@ var f = d(), p = /* @__PURE__ */ e(t(), 1), m = n(), h = "-", g = (e) => {
169
169
  className: e,
170
170
  parseClassName: o
171
171
  }) : o;
172
- }, D = (e) => {
172
+ }, T = (e) => {
173
173
  if (e.length <= 1) return e;
174
174
  let t = [], n = [];
175
175
  return e.forEach((e) => {
176
176
  e[0] === "[" ? (t.push(...n.sort(), e), n = []) : n.push(e);
177
177
  }), t.push(...n.sort()), t;
178
- }, te = (e) => ({
179
- cache: w(e.cacheSize),
180
- parseClassName: E(e),
178
+ }, re = (e) => ({
179
+ cache: S(e.cacheSize),
180
+ parseClassName: w(e),
181
181
  ...g(e)
182
- }), O = /\s+/, ne = (e, t) => {
183
- let { parseClassName: n, getClassGroupId: r, getConflictingClassGroupIds: i } = t, a = [], o = e.trim().split(O), s = "";
182
+ }), E = /\s+/, D = (e, t) => {
183
+ let { parseClassName: n, getClassGroupId: r, getConflictingClassGroupIds: i } = t, a = [], o = e.trim().split(E), s = "";
184
184
  for (let e = o.length - 1; e >= 0; --e) {
185
185
  let t = o[e], { modifiers: c, hasImportantModifier: l, baseClassName: u, maybePostfixModifierPosition: d } = n(t), f = !!d, p = r(f ? u.substring(0, d) : u);
186
186
  if (!p) {
@@ -194,7 +194,7 @@ var f = d(), p = /* @__PURE__ */ e(t(), 1), m = n(), h = "-", g = (e) => {
194
194
  }
195
195
  f = !1;
196
196
  }
197
- let m = D(c).join(":"), h = l ? m + T : m, g = h + p;
197
+ let m = T(c).join(":"), h = l ? m + C : m, g = h + p;
198
198
  if (a.includes(g)) continue;
199
199
  a.push(g);
200
200
  let _ = i(p, f);
@@ -206,70 +206,70 @@ var f = d(), p = /* @__PURE__ */ e(t(), 1), m = n(), h = "-", g = (e) => {
206
206
  }
207
207
  return s;
208
208
  };
209
- function k() {
209
+ function O() {
210
210
  let e = 0, t, n, r = "";
211
- for (; e < arguments.length;) (t = arguments[e++]) && (n = A(t)) && (r && (r += " "), r += n);
211
+ for (; e < arguments.length;) (t = arguments[e++]) && (n = k(t)) && (r && (r += " "), r += n);
212
212
  return r;
213
213
  }
214
- var A = (e) => {
214
+ var k = (e) => {
215
215
  if (typeof e == "string") return e;
216
216
  let t, n = "";
217
- for (let r = 0; r < e.length; r++) e[r] && (t = A(e[r])) && (n && (n += " "), n += t);
217
+ for (let r = 0; r < e.length; r++) e[r] && (t = k(e[r])) && (n && (n += " "), n += t);
218
218
  return n;
219
219
  };
220
- function j(e, ...t) {
220
+ function A(e, ...t) {
221
221
  let n, r, i, a = o;
222
222
  function o(o) {
223
- return n = te(t.reduce((e, t) => t(e), e())), r = n.cache.get, i = n.cache.set, a = s, s(o);
223
+ return n = re(t.reduce((e, t) => t(e), e())), r = n.cache.get, i = n.cache.set, a = s, s(o);
224
224
  }
225
225
  function s(e) {
226
226
  let t = r(e);
227
227
  if (t) return t;
228
- let a = ne(e, n);
228
+ let a = D(e, n);
229
229
  return i(e, a), a;
230
230
  }
231
231
  return function() {
232
- return a(k.apply(null, arguments));
232
+ return a(O.apply(null, arguments));
233
233
  };
234
234
  }
235
- var M = (e) => {
235
+ var j = (e) => {
236
236
  let t = (t) => t[e] || [];
237
237
  return t.isThemeGetter = !0, t;
238
- }, N = /^\[(?:([a-z-]+):)?(.+)\]$/i, P = /^\d+\/\d+$/, F = /*#__PURE__*/ new Set([
238
+ }, M = /^\[(?:([a-z-]+):)?(.+)\]$/i, N = /^\d+\/\d+$/, P = /*#__PURE__*/ new Set([
239
239
  "px",
240
240
  "full",
241
241
  "screen"
242
- ]), re = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, ie = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, ae = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/, oe = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, se = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, I = (e) => R(e) || F.has(e) || P.test(e), L = (e) => U(e, "length", ge), R = (e) => !!e && !Number.isNaN(Number(e)), ce = (e) => U(e, "number", R), z = (e) => !!e && Number.isInteger(Number(e)), le = (e) => e.endsWith("%") && R(e.slice(0, -1)), B = (e) => N.test(e), V = (e) => re.test(e), ue = /*#__PURE__*/ new Set([
242
+ ]), ie = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, ae = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, oe = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/, se = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, ce = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, F = (e) => L(e) || P.has(e) || N.test(e), I = (e) => U(e, "length", ge), L = (e) => !!e && !Number.isNaN(Number(e)), R = (e) => U(e, "number", L), z = (e) => !!e && Number.isInteger(Number(e)), le = (e) => e.endsWith("%") && L(e.slice(0, -1)), B = (e) => M.test(e), V = (e) => ie.test(e), ue = /*#__PURE__*/ new Set([
243
243
  "length",
244
244
  "size",
245
245
  "percentage"
246
246
  ]), de = (e) => U(e, ue, _e), fe = (e) => U(e, "position", _e), pe = /*#__PURE__*/ new Set(["image", "url"]), me = (e) => U(e, pe, ye), he = (e) => U(e, "", ve), H = () => !0, U = (e, t, n) => {
247
- let r = N.exec(e);
247
+ let r = M.exec(e);
248
248
  return r ? r[1] ? typeof t == "string" ? r[1] === t : t.has(r[1]) : n(r[2]) : !1;
249
- }, ge = (e) => ie.test(e) && !ae.test(e), _e = () => !1, ve = (e) => oe.test(e), ye = (e) => se.test(e), be = /*#__PURE__*/ j(() => {
250
- let e = M("colors"), t = M("spacing"), n = M("blur"), r = M("brightness"), i = M("borderColor"), a = M("borderRadius"), o = M("borderSpacing"), s = M("borderWidth"), c = M("contrast"), l = M("grayscale"), u = M("hueRotate"), d = M("invert"), f = M("gap"), p = M("gradientColorStops"), m = M("gradientColorStopPositions"), h = M("inset"), g = M("margin"), _ = M("opacity"), v = M("padding"), y = M("saturate"), b = M("scale"), x = M("sepia"), S = M("skew"), ee = M("space"), C = M("translate"), w = () => [
249
+ }, ge = (e) => ae.test(e) && !oe.test(e), _e = () => !1, ve = (e) => se.test(e), ye = (e) => ce.test(e), be = /*#__PURE__*/ A(() => {
250
+ let e = j("colors"), t = j("spacing"), n = j("blur"), r = j("brightness"), i = j("borderColor"), a = j("borderRadius"), o = j("borderSpacing"), s = j("borderWidth"), c = j("contrast"), l = j("grayscale"), u = j("hueRotate"), d = j("invert"), f = j("gap"), p = j("gradientColorStops"), m = j("gradientColorStopPositions"), h = j("inset"), g = j("margin"), _ = j("opacity"), v = j("padding"), ee = j("saturate"), y = j("scale"), b = j("sepia"), x = j("skew"), te = j("space"), ne = j("translate"), S = () => [
251
251
  "auto",
252
252
  "contain",
253
253
  "none"
254
- ], T = () => [
254
+ ], C = () => [
255
255
  "auto",
256
256
  "hidden",
257
257
  "clip",
258
258
  "visible",
259
259
  "scroll"
260
- ], E = () => [
260
+ ], w = () => [
261
261
  "auto",
262
262
  B,
263
263
  t
264
- ], D = () => [B, t], te = () => [
264
+ ], T = () => [B, t], re = () => [
265
265
  "",
266
- I,
267
- L
268
- ], O = () => [
266
+ F,
267
+ I
268
+ ], E = () => [
269
269
  "auto",
270
- R,
270
+ L,
271
271
  B
272
- ], ne = () => [
272
+ ], D = () => [
273
273
  "bottom",
274
274
  "center",
275
275
  "left",
@@ -279,13 +279,13 @@ var M = (e) => {
279
279
  "right-bottom",
280
280
  "right-top",
281
281
  "top"
282
- ], k = () => [
282
+ ], O = () => [
283
283
  "solid",
284
284
  "dashed",
285
285
  "dotted",
286
286
  "double",
287
287
  "none"
288
- ], A = () => [
288
+ ], k = () => [
289
289
  "normal",
290
290
  "multiply",
291
291
  "screen",
@@ -302,7 +302,7 @@ var M = (e) => {
302
302
  "saturation",
303
303
  "color",
304
304
  "luminosity"
305
- ], j = () => [
305
+ ], A = () => [
306
306
  "start",
307
307
  "end",
308
308
  "center",
@@ -310,11 +310,11 @@ var M = (e) => {
310
310
  "around",
311
311
  "evenly",
312
312
  "stretch"
313
- ], N = () => [
313
+ ], M = () => [
314
314
  "",
315
315
  "0",
316
316
  B
317
- ], P = () => [
317
+ ], N = () => [
318
318
  "auto",
319
319
  "avoid",
320
320
  "all",
@@ -323,20 +323,20 @@ var M = (e) => {
323
323
  "left",
324
324
  "right",
325
325
  "column"
326
- ], F = () => [R, B];
326
+ ], P = () => [L, B];
327
327
  return {
328
328
  cacheSize: 500,
329
329
  separator: ":",
330
330
  theme: {
331
331
  colors: [H],
332
- spacing: [I, L],
332
+ spacing: [F, I],
333
333
  blur: [
334
334
  "none",
335
335
  "",
336
336
  V,
337
337
  B
338
338
  ],
339
- brightness: F(),
339
+ brightness: P(),
340
340
  borderColor: [e],
341
341
  borderRadius: [
342
342
  "none",
@@ -345,25 +345,25 @@ var M = (e) => {
345
345
  V,
346
346
  B
347
347
  ],
348
- borderSpacing: D(),
349
- borderWidth: te(),
350
- contrast: F(),
351
- grayscale: N(),
352
- hueRotate: F(),
353
- invert: N(),
354
- gap: D(),
348
+ borderSpacing: T(),
349
+ borderWidth: re(),
350
+ contrast: P(),
351
+ grayscale: M(),
352
+ hueRotate: P(),
353
+ invert: M(),
354
+ gap: T(),
355
355
  gradientColorStops: [e],
356
- gradientColorStopPositions: [le, L],
357
- inset: E(),
358
- margin: E(),
359
- opacity: F(),
360
- padding: D(),
361
- saturate: F(),
362
- scale: F(),
363
- sepia: N(),
364
- skew: F(),
365
- space: D(),
366
- translate: D()
356
+ gradientColorStopPositions: [le, I],
357
+ inset: w(),
358
+ margin: w(),
359
+ opacity: P(),
360
+ padding: T(),
361
+ saturate: P(),
362
+ scale: P(),
363
+ sepia: M(),
364
+ skew: P(),
365
+ space: T(),
366
+ translate: T()
367
367
  },
368
368
  classGroups: {
369
369
  aspect: [{ aspect: [
@@ -374,8 +374,8 @@ var M = (e) => {
374
374
  ] }],
375
375
  container: ["container"],
376
376
  columns: [{ columns: [V] }],
377
- "break-after": [{ "break-after": P() }],
378
- "break-before": [{ "break-before": P() }],
377
+ "break-after": [{ "break-after": N() }],
378
+ "break-before": [{ "break-before": N() }],
379
379
  "break-inside": [{ "break-inside": [
380
380
  "auto",
381
381
  "avoid",
@@ -430,13 +430,13 @@ var M = (e) => {
430
430
  "none",
431
431
  "scale-down"
432
432
  ] }],
433
- "object-position": [{ object: [...ne(), B] }],
434
- overflow: [{ overflow: T() }],
435
- "overflow-x": [{ "overflow-x": T() }],
436
- "overflow-y": [{ "overflow-y": T() }],
437
- overscroll: [{ overscroll: w() }],
438
- "overscroll-x": [{ "overscroll-x": w() }],
439
- "overscroll-y": [{ "overscroll-y": w() }],
433
+ "object-position": [{ object: [...D(), B] }],
434
+ overflow: [{ overflow: C() }],
435
+ "overflow-x": [{ "overflow-x": C() }],
436
+ "overflow-y": [{ "overflow-y": C() }],
437
+ overscroll: [{ overscroll: S() }],
438
+ "overscroll-x": [{ "overscroll-x": S() }],
439
+ "overscroll-y": [{ "overscroll-y": S() }],
440
440
  position: [
441
441
  "static",
442
442
  "fixed",
@@ -463,7 +463,7 @@ var M = (e) => {
463
463
  z,
464
464
  B
465
465
  ] }],
466
- basis: [{ basis: E() }],
466
+ basis: [{ basis: w() }],
467
467
  "flex-direction": [{ flex: [
468
468
  "row",
469
469
  "row-reverse",
@@ -482,8 +482,8 @@ var M = (e) => {
482
482
  "none",
483
483
  B
484
484
  ] }],
485
- grow: [{ grow: N() }],
486
- shrink: [{ shrink: N() }],
485
+ grow: [{ grow: M() }],
486
+ shrink: [{ shrink: M() }],
487
487
  order: [{ order: [
488
488
  "first",
489
489
  "last",
@@ -501,16 +501,16 @@ var M = (e) => {
501
501
  ] },
502
502
  B
503
503
  ] }],
504
- "col-start": [{ "col-start": O() }],
505
- "col-end": [{ "col-end": O() }],
504
+ "col-start": [{ "col-start": E() }],
505
+ "col-end": [{ "col-end": E() }],
506
506
  "grid-rows": [{ "grid-rows": [H] }],
507
507
  "row-start-end": [{ row: [
508
508
  "auto",
509
509
  { span: [z, B] },
510
510
  B
511
511
  ] }],
512
- "row-start": [{ "row-start": O() }],
513
- "row-end": [{ "row-end": O() }],
512
+ "row-start": [{ "row-start": E() }],
513
+ "row-end": [{ "row-end": E() }],
514
514
  "grid-flow": [{ "grid-flow": [
515
515
  "row",
516
516
  "col",
@@ -535,7 +535,7 @@ var M = (e) => {
535
535
  gap: [{ gap: [f] }],
536
536
  "gap-x": [{ "gap-x": [f] }],
537
537
  "gap-y": [{ "gap-y": [f] }],
538
- "justify-content": [{ justify: ["normal", ...j()] }],
538
+ "justify-content": [{ justify: ["normal", ...A()] }],
539
539
  "justify-items": [{ "justify-items": [
540
540
  "start",
541
541
  "end",
@@ -551,7 +551,7 @@ var M = (e) => {
551
551
  ] }],
552
552
  "align-content": [{ content: [
553
553
  "normal",
554
- ...j(),
554
+ ...A(),
555
555
  "baseline"
556
556
  ] }],
557
557
  "align-items": [{ items: [
@@ -569,7 +569,7 @@ var M = (e) => {
569
569
  "stretch",
570
570
  "baseline"
571
571
  ] }],
572
- "place-content": [{ "place-content": [...j(), "baseline"] }],
572
+ "place-content": [{ "place-content": [...A(), "baseline"] }],
573
573
  "place-items": [{ "place-items": [
574
574
  "start",
575
575
  "end",
@@ -602,9 +602,9 @@ var M = (e) => {
602
602
  mr: [{ mr: [g] }],
603
603
  mb: [{ mb: [g] }],
604
604
  ml: [{ ml: [g] }],
605
- "space-x": [{ "space-x": [ee] }],
605
+ "space-x": [{ "space-x": [te] }],
606
606
  "space-x-reverse": ["space-x-reverse"],
607
- "space-y": [{ "space-y": [ee] }],
607
+ "space-y": [{ "space-y": [te] }],
608
608
  "space-y-reverse": ["space-y-reverse"],
609
609
  w: [{ w: [
610
610
  "auto",
@@ -678,7 +678,7 @@ var M = (e) => {
678
678
  "font-size": [{ text: [
679
679
  "base",
680
680
  V,
681
- L
681
+ I
682
682
  ] }],
683
683
  "font-smoothing": ["antialiased", "subpixel-antialiased"],
684
684
  "font-style": ["italic", "not-italic"],
@@ -692,7 +692,7 @@ var M = (e) => {
692
692
  "bold",
693
693
  "extrabold",
694
694
  "black",
695
- ce
695
+ R
696
696
  ] }],
697
697
  "font-family": [{ font: [H] }],
698
698
  "fvn-normal": ["normal-nums"],
@@ -712,8 +712,8 @@ var M = (e) => {
712
712
  ] }],
713
713
  "line-clamp": [{ "line-clamp": [
714
714
  "none",
715
- R,
716
- ce
715
+ L,
716
+ R
717
717
  ] }],
718
718
  leading: [{ leading: [
719
719
  "none",
@@ -722,7 +722,7 @@ var M = (e) => {
722
722
  "normal",
723
723
  "relaxed",
724
724
  "loose",
725
- I,
725
+ F,
726
726
  B
727
727
  ] }],
728
728
  "list-image": [{ "list-image": ["none", B] }],
@@ -751,16 +751,16 @@ var M = (e) => {
751
751
  "line-through",
752
752
  "no-underline"
753
753
  ],
754
- "text-decoration-style": [{ decoration: [...k(), "wavy"] }],
754
+ "text-decoration-style": [{ decoration: [...O(), "wavy"] }],
755
755
  "text-decoration-thickness": [{ decoration: [
756
756
  "auto",
757
757
  "from-font",
758
- I,
759
- L
758
+ F,
759
+ I
760
760
  ] }],
761
761
  "underline-offset": [{ "underline-offset": [
762
762
  "auto",
763
- I,
763
+ F,
764
764
  B
765
765
  ] }],
766
766
  "text-decoration-color": [{ decoration: [e] }],
@@ -781,7 +781,7 @@ var M = (e) => {
781
781
  "balance",
782
782
  "pretty"
783
783
  ] }],
784
- indent: [{ indent: D() }],
784
+ indent: [{ indent: T() }],
785
785
  "vertical-align": [{ align: [
786
786
  "baseline",
787
787
  "top",
@@ -830,7 +830,7 @@ var M = (e) => {
830
830
  "padding",
831
831
  "content"
832
832
  ] }],
833
- "bg-position": [{ bg: [...ne(), fe] }],
833
+ "bg-position": [{ bg: [...D(), fe] }],
834
834
  "bg-repeat": [{ bg: ["no-repeat", { repeat: [
835
835
  "",
836
836
  "x",
@@ -890,13 +890,13 @@ var M = (e) => {
890
890
  "border-w-b": [{ "border-b": [s] }],
891
891
  "border-w-l": [{ "border-l": [s] }],
892
892
  "border-opacity": [{ "border-opacity": [_] }],
893
- "border-style": [{ border: [...k(), "hidden"] }],
893
+ "border-style": [{ border: [...O(), "hidden"] }],
894
894
  "divide-x": [{ "divide-x": [s] }],
895
895
  "divide-x-reverse": ["divide-x-reverse"],
896
896
  "divide-y": [{ "divide-y": [s] }],
897
897
  "divide-y-reverse": ["divide-y-reverse"],
898
898
  "divide-opacity": [{ "divide-opacity": [_] }],
899
- "divide-style": [{ divide: k() }],
899
+ "divide-style": [{ divide: O() }],
900
900
  "border-color": [{ border: [i] }],
901
901
  "border-color-x": [{ "border-x": [i] }],
902
902
  "border-color-y": [{ "border-y": [i] }],
@@ -907,15 +907,15 @@ var M = (e) => {
907
907
  "border-color-b": [{ "border-b": [i] }],
908
908
  "border-color-l": [{ "border-l": [i] }],
909
909
  "divide-color": [{ divide: [i] }],
910
- "outline-style": [{ outline: ["", ...k()] }],
911
- "outline-offset": [{ "outline-offset": [I, B] }],
912
- "outline-w": [{ outline: [I, L] }],
910
+ "outline-style": [{ outline: ["", ...O()] }],
911
+ "outline-offset": [{ "outline-offset": [F, B] }],
912
+ "outline-w": [{ outline: [F, I] }],
913
913
  "outline-color": [{ outline: [e] }],
914
- "ring-w": [{ ring: te() }],
914
+ "ring-w": [{ ring: re() }],
915
915
  "ring-w-inset": ["ring-inset"],
916
916
  "ring-color": [{ ring: [e] }],
917
917
  "ring-opacity": [{ "ring-opacity": [_] }],
918
- "ring-offset-w": [{ "ring-offset": [I, L] }],
918
+ "ring-offset-w": [{ "ring-offset": [F, I] }],
919
919
  "ring-offset-color": [{ "ring-offset": [e] }],
920
920
  shadow: [{ shadow: [
921
921
  "",
@@ -927,11 +927,11 @@ var M = (e) => {
927
927
  "shadow-color": [{ shadow: [H] }],
928
928
  opacity: [{ opacity: [_] }],
929
929
  "mix-blend": [{ "mix-blend": [
930
- ...A(),
930
+ ...k(),
931
931
  "plus-lighter",
932
932
  "plus-darker"
933
933
  ] }],
934
- "bg-blend": [{ "bg-blend": A() }],
934
+ "bg-blend": [{ "bg-blend": k() }],
935
935
  filter: [{ filter: ["", "none"] }],
936
936
  blur: [{ blur: [n] }],
937
937
  brightness: [{ brightness: [r] }],
@@ -945,8 +945,8 @@ var M = (e) => {
945
945
  grayscale: [{ grayscale: [l] }],
946
946
  "hue-rotate": [{ "hue-rotate": [u] }],
947
947
  invert: [{ invert: [d] }],
948
- saturate: [{ saturate: [y] }],
949
- sepia: [{ sepia: [x] }],
948
+ saturate: [{ saturate: [ee] }],
949
+ sepia: [{ sepia: [b] }],
950
950
  "backdrop-filter": [{ "backdrop-filter": ["", "none"] }],
951
951
  "backdrop-blur": [{ "backdrop-blur": [n] }],
952
952
  "backdrop-brightness": [{ "backdrop-brightness": [r] }],
@@ -955,8 +955,8 @@ var M = (e) => {
955
955
  "backdrop-hue-rotate": [{ "backdrop-hue-rotate": [u] }],
956
956
  "backdrop-invert": [{ "backdrop-invert": [d] }],
957
957
  "backdrop-opacity": [{ "backdrop-opacity": [_] }],
958
- "backdrop-saturate": [{ "backdrop-saturate": [y] }],
959
- "backdrop-sepia": [{ "backdrop-sepia": [x] }],
958
+ "backdrop-saturate": [{ "backdrop-saturate": [ee] }],
959
+ "backdrop-sepia": [{ "backdrop-sepia": [b] }],
960
960
  "border-collapse": [{ border: ["collapse", "separate"] }],
961
961
  "border-spacing": [{ "border-spacing": [o] }],
962
962
  "border-spacing-x": [{ "border-spacing-x": [o] }],
@@ -973,7 +973,7 @@ var M = (e) => {
973
973
  "transform",
974
974
  B
975
975
  ] }],
976
- duration: [{ duration: F() }],
976
+ duration: [{ duration: P() }],
977
977
  ease: [{ ease: [
978
978
  "linear",
979
979
  "in",
@@ -981,7 +981,7 @@ var M = (e) => {
981
981
  "in-out",
982
982
  B
983
983
  ] }],
984
- delay: [{ delay: F() }],
984
+ delay: [{ delay: P() }],
985
985
  animate: [{ animate: [
986
986
  "none",
987
987
  "spin",
@@ -995,14 +995,14 @@ var M = (e) => {
995
995
  "gpu",
996
996
  "none"
997
997
  ] }],
998
- scale: [{ scale: [b] }],
999
- "scale-x": [{ "scale-x": [b] }],
1000
- "scale-y": [{ "scale-y": [b] }],
998
+ scale: [{ scale: [y] }],
999
+ "scale-x": [{ "scale-x": [y] }],
1000
+ "scale-y": [{ "scale-y": [y] }],
1001
1001
  rotate: [{ rotate: [z, B] }],
1002
- "translate-x": [{ "translate-x": [C] }],
1003
- "translate-y": [{ "translate-y": [C] }],
1004
- "skew-x": [{ "skew-x": [S] }],
1005
- "skew-y": [{ "skew-y": [S] }],
1002
+ "translate-x": [{ "translate-x": [ne] }],
1003
+ "translate-y": [{ "translate-y": [ne] }],
1004
+ "skew-x": [{ "skew-x": [x] }],
1005
+ "skew-y": [{ "skew-y": [x] }],
1006
1006
  "transform-origin": [{ origin: [
1007
1007
  "center",
1008
1008
  "top",
@@ -1065,24 +1065,24 @@ var M = (e) => {
1065
1065
  ""
1066
1066
  ] }],
1067
1067
  "scroll-behavior": [{ scroll: ["auto", "smooth"] }],
1068
- "scroll-m": [{ "scroll-m": D() }],
1069
- "scroll-mx": [{ "scroll-mx": D() }],
1070
- "scroll-my": [{ "scroll-my": D() }],
1071
- "scroll-ms": [{ "scroll-ms": D() }],
1072
- "scroll-me": [{ "scroll-me": D() }],
1073
- "scroll-mt": [{ "scroll-mt": D() }],
1074
- "scroll-mr": [{ "scroll-mr": D() }],
1075
- "scroll-mb": [{ "scroll-mb": D() }],
1076
- "scroll-ml": [{ "scroll-ml": D() }],
1077
- "scroll-p": [{ "scroll-p": D() }],
1078
- "scroll-px": [{ "scroll-px": D() }],
1079
- "scroll-py": [{ "scroll-py": D() }],
1080
- "scroll-ps": [{ "scroll-ps": D() }],
1081
- "scroll-pe": [{ "scroll-pe": D() }],
1082
- "scroll-pt": [{ "scroll-pt": D() }],
1083
- "scroll-pr": [{ "scroll-pr": D() }],
1084
- "scroll-pb": [{ "scroll-pb": D() }],
1085
- "scroll-pl": [{ "scroll-pl": D() }],
1068
+ "scroll-m": [{ "scroll-m": T() }],
1069
+ "scroll-mx": [{ "scroll-mx": T() }],
1070
+ "scroll-my": [{ "scroll-my": T() }],
1071
+ "scroll-ms": [{ "scroll-ms": T() }],
1072
+ "scroll-me": [{ "scroll-me": T() }],
1073
+ "scroll-mt": [{ "scroll-mt": T() }],
1074
+ "scroll-mr": [{ "scroll-mr": T() }],
1075
+ "scroll-mb": [{ "scroll-mb": T() }],
1076
+ "scroll-ml": [{ "scroll-ml": T() }],
1077
+ "scroll-p": [{ "scroll-p": T() }],
1078
+ "scroll-px": [{ "scroll-px": T() }],
1079
+ "scroll-py": [{ "scroll-py": T() }],
1080
+ "scroll-ps": [{ "scroll-ps": T() }],
1081
+ "scroll-pe": [{ "scroll-pe": T() }],
1082
+ "scroll-pt": [{ "scroll-pt": T() }],
1083
+ "scroll-pr": [{ "scroll-pr": T() }],
1084
+ "scroll-pb": [{ "scroll-pb": T() }],
1085
+ "scroll-pl": [{ "scroll-pl": T() }],
1086
1086
  "snap-align": [{ snap: [
1087
1087
  "start",
1088
1088
  "end",
@@ -1128,9 +1128,9 @@ var M = (e) => {
1128
1128
  ] }],
1129
1129
  fill: [{ fill: [e, "none"] }],
1130
1130
  "stroke-w": [{ stroke: [
1131
+ F,
1131
1132
  I,
1132
- L,
1133
- ce
1133
+ R
1134
1134
  ] }],
1135
1135
  stroke: [{ stroke: [e, "none"] }],
1136
1136
  sr: ["sr-only", "not-sr-only"],
@@ -1335,7 +1335,7 @@ function Y(...e) {
1335
1335
  }
1336
1336
  K(Y, "useComposedRefs");
1337
1337
  //#endregion
1338
- //#region ../node_modules/.pnpm/@radix-ui+react-slot@1.3.3_@types+react@19.3.0_react@19.3.0/node_modules/@radix-ui/react-slot/dist/index.mjs
1338
+ //#region ../node_modules/.pnpm/@radix-ui+react-slot@1.5.0_@types+react@19.3.0_react@19.3.0/node_modules/@radix-ui/react-slot/dist/index.mjs
1339
1339
  var Se = Object.defineProperty, X = (e, t) => Se(e, "name", {
1340
1340
  value: t,
1341
1341
  configurable: !0
@@ -1344,16 +1344,17 @@ var Se = Object.defineProperty, X = (e, t) => Se(e, "name", {
1344
1344
  function Ce(e) {
1345
1345
  let t = p.forwardRef((t, n) => {
1346
1346
  let { children: r, ...i } = t, a = null, o = !1, s = [];
1347
- Me(r) && typeof Z == "function" && (r = Z(r._payload)), p.Children.forEach(r, (e) => {
1347
+ r = Pe(r), p.Children.forEach(r, (e) => {
1348
1348
  if (Ae(e)) {
1349
1349
  o = !0;
1350
1350
  let t = e, n = "child" in t.props ? t.props.child : t.props.children;
1351
- Me(n) && typeof Z == "function" && (n = Z(n._payload)), a = De(t, n), s.push(a?.props?.children);
1351
+ for (; Me(n) && typeof Z == "function";) n = Z(n._payload);
1352
+ a = De(t, n), s.push(a?.props?.children);
1352
1353
  } else s.push(e);
1353
1354
  }), a ? a = p.cloneElement(a, void 0, s) : !o && p.Children.count(r) === 1 && p.isValidElement(r) && (a = r);
1354
1355
  let c = a ? ke(a) : void 0, l = Y(n, c);
1355
1356
  if (!a) {
1356
- if (r || r === 0) throw Error(o ? Fe(e) : Pe(e));
1357
+ if (r || r === 0) throw Error(o ? Le(e) : Ie(e));
1357
1358
  return r;
1358
1359
  }
1359
1360
  let u = Oe(i, a.props ?? {});
@@ -1369,13 +1370,7 @@ function Ee(e) {
1369
1370
  return t.displayName = `${e}.Slottable`, t.__radixId = Te, t;
1370
1371
  }
1371
1372
  X(Ee, "createSlottable");
1372
- var De = /* @__PURE__ */ X((e, t) => {
1373
- if ("child" in e.props) {
1374
- let t = e.props.child;
1375
- return p.isValidElement(t) ? p.cloneElement(t, void 0, e.props.children(t.props.children)) : null;
1376
- }
1377
- return p.isValidElement(t) ? t : null;
1378
- }, "getSlottableElementFromSlottable");
1373
+ var De = /* @__PURE__ */ X((e, t) => "child" in e.props ? p.isValidElement(t) ? p.cloneElement(t, void 0, e.props.children(t.props.children)) : null : p.isValidElement(t) ? t : null, "getSlottableElementFromSlottable");
1379
1374
  function Oe(e, t) {
1380
1375
  let n = { ...t };
1381
1376
  for (let r in t) {
@@ -1386,7 +1381,7 @@ function Oe(e, t) {
1386
1381
  } : i && (n[r] = i) : r === "style" ? n[r] = {
1387
1382
  ...i,
1388
1383
  ...a
1389
- } : r === "className" && (n[r] = [i, a].filter(Boolean).join(" "));
1384
+ } : r === "className" ? n[r] = [i, a].filter(Boolean).join(" ") : r === "aria-describedby" && (n[r] = Fe(a, i));
1390
1385
  }
1391
1386
  return {
1392
1387
  ...e,
@@ -1412,20 +1407,32 @@ function Ne(e) {
1412
1407
  return typeof e == "object" && !!e && "then" in e;
1413
1408
  }
1414
1409
  X(Ne, "isPromiseLike");
1415
- var Pe = /* @__PURE__ */ X((e) => `${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`, "createSlotError"), Fe = /* @__PURE__ */ X((e) => `${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`, "createSlottableError"), Z = p.use;
1410
+ function Pe(e) {
1411
+ let t = e;
1412
+ for (; Me(t) && typeof Z == "function";) t = Z(t._payload);
1413
+ return t;
1414
+ }
1415
+ X(Pe, "useUnwrappedLazy");
1416
+ function Fe(...e) {
1417
+ let t = /* @__PURE__ */ new Set();
1418
+ for (let n of e) if (typeof n == "string") for (let e of String(n).trim().split(/\s+/)) e && t.add(e);
1419
+ return t.size > 0 ? Array.from(t).join(" ") : void 0;
1420
+ }
1421
+ X(Fe, "concatAriaDescribedby");
1422
+ var Ie = /* @__PURE__ */ X((e) => `${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`, "createSlotError"), Le = /* @__PURE__ */ X((e) => `${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`, "createSlottableError"), Z = p.use;
1416
1423
  //#endregion
1417
1424
  //#region src/hooks/useEventListener.ts
1418
- function Ie(e) {
1425
+ function Re(e) {
1419
1426
  return typeof e == "object" && !!e && !("addEventListener" in e) && "current" in e;
1420
1427
  }
1421
- function Le(e, t, n, r) {
1428
+ function ze(e, t, n, r) {
1422
1429
  let i = (0, m.c)(8), a = (0, p.useRef)(n), o, s;
1423
1430
  i[0] === n ? (o = i[1], s = i[2]) : (o = () => {
1424
1431
  a.current = n;
1425
1432
  }, s = [n], i[0] = n, i[1] = o, i[2] = s), (0, p.useEffect)(o, s);
1426
1433
  let c, l;
1427
1434
  i[3] !== r || i[4] !== e || i[5] !== t ? (c = () => {
1428
- let n = Ie(e) ? e.current : e;
1435
+ let n = Re(e) ? e.current : e;
1429
1436
  if (!n) return;
1430
1437
  let i = (e) => a.current(e);
1431
1438
  return n.addEventListener(t, i, r), () => {
@@ -1438,18 +1445,49 @@ function Le(e, t, n, r) {
1438
1445
  ], i[3] = r, i[4] = e, i[5] = t, i[6] = c, i[7] = l) : (c = i[6], l = i[7]), (0, p.useEffect)(c, l);
1439
1446
  }
1440
1447
  //#endregion
1448
+ //#region ../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs
1449
+ var Be = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, Ve = r, He = (e, t) => (n) => {
1450
+ if (t?.variants == null) return Ve(e, n?.class, n?.className);
1451
+ let { variants: r, defaultVariants: i } = t, a = Object.keys(r).map((e) => {
1452
+ let t = n?.[e], a = i?.[e];
1453
+ if (t === null) return null;
1454
+ let o = Be(t) || Be(a);
1455
+ return r[e][o];
1456
+ }), o = n && Object.entries(n).reduce((e, t) => {
1457
+ let [n, r] = t;
1458
+ return r === void 0 || (e[n] = r), e;
1459
+ }, {});
1460
+ return Ve(e, a, t?.compoundVariants?.reduce((e, t) => {
1461
+ let { class: n, className: r, ...a } = t;
1462
+ return Object.entries(a).every((e) => {
1463
+ let [t, n] = e;
1464
+ return Array.isArray(n) ? n.includes({
1465
+ ...i,
1466
+ ...o
1467
+ }[t]) : {
1468
+ ...i,
1469
+ ...o
1470
+ }[t] === n;
1471
+ }) ? [
1472
+ ...e,
1473
+ n,
1474
+ r
1475
+ ] : e;
1476
+ }, []), n?.class, n?.className);
1477
+ };
1478
+ //#endregion
1441
1479
  //#region src/core/hotkeys/shortcuts.ts
1442
- function Re() {
1480
+ function Ue() {
1443
1481
  if (typeof window > "u") return f.warn("isPlatformMac() called without window"), !1;
1444
1482
  let e = window.navigator.userAgentData ? window.navigator.userAgentData.platform : window.navigator.platform;
1445
1483
  return /mac/i.test(e);
1446
1484
  }
1447
- function ze() {
1485
+ function We() {
1448
1486
  if (typeof window > "u") return f.warn("isPlatformWindows() called without window"), !1;
1449
1487
  let e = window.navigator.userAgentData ? window.navigator.userAgentData.platform : window.navigator.platform;
1450
1488
  return /win/i.test(e);
1451
1489
  }
1452
- function Be(e, t) {
1490
+ function Ge(e, t) {
1453
1491
  let n = !0;
1454
1492
  for (let r of e) {
1455
1493
  switch (r) {
@@ -1477,7 +1515,7 @@ function Be(e, t) {
1477
1515
  }
1478
1516
  return e.includes("shift") || (n &&= !t.shiftKey), !e.includes("ctrl") && !e.includes("mod") && (n &&= !t.ctrlKey), !e.includes("meta") && !e.includes("mod") && (n &&= !t.metaKey), e.includes("alt") || (n &&= !t.altKey), n;
1479
1517
  }
1480
- function Ve(e) {
1518
+ function Ke(e) {
1481
1519
  return {
1482
1520
  control: "ctrl",
1483
1521
  command: "mod",
@@ -1486,17 +1524,17 @@ function Ve(e) {
1486
1524
  return: "enter"
1487
1525
  }[e.toLowerCase()] || e.toLowerCase();
1488
1526
  }
1489
- function He(e) {
1527
+ function qe(e) {
1490
1528
  if (e === Q || e === "") return () => !1;
1491
- let t = e.includes("+") ? "+" : "-", n = e.split(t).map(Ve);
1492
- return (e) => Be(n, e);
1529
+ let t = e.includes("+") ? "+" : "-", n = e.split(t).map(Ke);
1530
+ return (e) => Ge(n, e);
1493
1531
  }
1494
- function Ue() {
1495
- return Re() ? "mac" : ze() ? "windows" : "linux";
1532
+ function Je() {
1533
+ return Ue() ? "mac" : We() ? "windows" : "linux";
1496
1534
  }
1497
1535
  //#endregion
1498
1536
  //#region src/core/hotkeys/hotkeys.ts
1499
- var Q = Symbol("NOT_SET"), We = {
1537
+ var Q = Symbol("NOT_SET"), Ye = {
1500
1538
  "cell.focusUp": {
1501
1539
  name: "Go to previous cell",
1502
1540
  group: "Navigation",
@@ -1927,15 +1965,15 @@ var Q = Symbol("NOT_SET"), We = {
1927
1965
  group: "Command",
1928
1966
  key: "v"
1929
1967
  }
1930
- }, Ge = class e {
1968
+ }, Xe = class e {
1931
1969
  mod;
1932
1970
  platform;
1933
1971
  static create(t) {
1934
- return new e(We, { platform: t });
1972
+ return new e(Ye, { platform: t });
1935
1973
  }
1936
1974
  hotkeys;
1937
1975
  constructor(e, t = {}) {
1938
- this.hotkeys = e, this.platform = t.platform ?? Ue(), this.mod = this.platform === "mac" ? "Cmd" : "Ctrl";
1976
+ this.hotkeys = e, this.platform = t.platform ?? Je(), this.mod = this.platform === "mac" ? "Cmd" : "Ctrl";
1939
1977
  }
1940
1978
  iterate() {
1941
1979
  return a.keys(this.hotkeys);
@@ -1965,55 +2003,27 @@ var Q = Symbol("NOT_SET"), We = {
1965
2003
  getHotkeyGroups() {
1966
2004
  return a.groupBy(a.entries(this.hotkeys), ([, e]) => e.group, ([e]) => e);
1967
2005
  }
1968
- }, Ke = class extends Ge {
2006
+ }, Ze = class extends Xe {
1969
2007
  overrides;
1970
2008
  constructor(e, t = {}) {
1971
- super(We, t), this.overrides = e;
2009
+ super(Ye, t), this.overrides = e;
1972
2010
  }
1973
2011
  getHotkey(e) {
1974
2012
  let t = super.getHotkey(e), n = this.overrides[e];
1975
2013
  return {
1976
2014
  name: t.name,
1977
- key: n ? Je(n) : t.key,
2015
+ key: n ? $e(n) : t.key,
1978
2016
  additionalKeywords: t.additionalKeywords
1979
2017
  };
1980
2018
  }
1981
- }, qe = /^(cmd|ctrl|alt|shift|meta|mod)$/i;
1982
- function Je(e) {
2019
+ }, Qe = /^(cmd|ctrl|alt|shift|meta|mod)$/i;
2020
+ function $e(e) {
1983
2021
  let t = e.split("-"), n = t[t.length - 1];
1984
- return n.length > 1 && !qe.test(n) && (t[t.length - 1] = n.charAt(0).toUpperCase() + n.slice(1)), t.join("-");
2022
+ return n.length > 1 && !Qe.test(n) && (t[t.length - 1] = n.charAt(0).toUpperCase() + n.slice(1)), t.join("-");
1985
2023
  }
1986
2024
  //#endregion
1987
- //#region ../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs
1988
- var Ye = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, Xe = r, Ze = (e, t) => (n) => {
1989
- if (t?.variants == null) return Xe(e, n?.class, n?.className);
1990
- let { variants: r, defaultVariants: i } = t, a = Object.keys(r).map((e) => {
1991
- let t = n?.[e], a = i?.[e];
1992
- if (t === null) return null;
1993
- let o = Ye(t) || Ye(a);
1994
- return r[e][o];
1995
- }), o = n && Object.entries(n).reduce((e, t) => {
1996
- let [n, r] = t;
1997
- return r === void 0 || (e[n] = r), e;
1998
- }, {});
1999
- return Xe(e, a, t?.compoundVariants?.reduce((e, t) => {
2000
- let { class: n, className: r, ...a } = t;
2001
- return Object.entries(a).every((e) => {
2002
- let [t, n] = e;
2003
- return Array.isArray(n) ? n.includes({
2004
- ...i,
2005
- ...o
2006
- }[t]) : {
2007
- ...i,
2008
- ...o
2009
- }[t] === n;
2010
- }) ? [
2011
- ...e,
2012
- n,
2013
- r
2014
- ] : e;
2015
- }, []), n?.class, n?.className);
2016
- }, Qe = i(), $ = "active:shadow-none", $e = Ze(W("disabled:opacity-50 disabled:pointer-events-none", "inline-flex items-center justify-center rounded-md text-sm font-medium focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background", "forced-color-adjust-none forced-colors:border-[ButtonText] forced-colors:bg-[ButtonFace] forced-colors:text-[ButtonText] forced-colors:hover:bg-[Highlight] forced-colors:hover:text-[HighlightText] forced-colors:disabled:border-[GrayText] forced-colors:disabled:text-[GrayText]"), {
2025
+ //#region src/components/ui/button.tsx
2026
+ var et = i(), $ = "active:shadow-none", tt = He(W("disabled:opacity-50 disabled:pointer-events-none", "inline-flex items-center justify-center rounded-md text-sm font-medium focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background", "forced-color-adjust-none forced-colors:border-[ButtonText] forced-colors:bg-[ButtonFace] forced-colors:text-[ButtonText] forced-colors:hover:bg-[Highlight] forced-colors:hover:text-[HighlightText] forced-colors:disabled:border-[GrayText] forced-colors:disabled:text-[GrayText]"), {
2017
2027
  variants: {
2018
2028
  variant: {
2019
2029
  default: W("bg-primary text-primary-foreground hover:bg-primary/90 shadow-xs border border-primary", $),
@@ -2042,29 +2052,29 @@ var Ye = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, Xe = r, Ze =
2042
2052
  variant: "default",
2043
2053
  size: "sm"
2044
2054
  }
2045
- }), et = p.forwardRef((e, t) => {
2055
+ }), nt = p.forwardRef((e, t) => {
2046
2056
  let n = (0, m.c)(19), r, i, a, o, s, c;
2047
2057
  n[0] === e ? (r = n[1], i = n[2], a = n[3], o = n[4], s = n[5], c = n[6]) : ({className: r, variant: c, size: o, asChild: s, keyboardShortcut: i, ...a} = e, n[0] = e, n[1] = r, n[2] = i, n[3] = a, n[4] = o, n[5] = s, n[6] = c);
2048
2058
  let l = s !== void 0 && s, u = p.useRef(null), d;
2049
2059
  n[7] === Symbol.for("react.memo_cache_sentinel") ? (d = () => u.current, n[7] = d) : d = n[7], p.useImperativeHandle(t, d);
2050
2060
  let f;
2051
2061
  n[8] === i ? f = n[9] : (f = (e) => {
2052
- !i || e.defaultPrevented || G.shouldIgnoreKeyboardEvent(e) || He(i)(e) && (e.preventDefault(), e.stopPropagation(), u?.current && !u.current.disabled && u.current.click());
2053
- }, n[8] = i, n[9] = f), Le(document, "keydown", f);
2062
+ !i || e.defaultPrevented || G.shouldIgnoreKeyboardEvent(e) || qe(i)(e) && (e.preventDefault(), e.stopPropagation(), u?.current && !u.current.disabled && u.current.click());
2063
+ }, n[8] = i, n[9] = f), ze(document, "keydown", f);
2054
2064
  let h = l ? we : "button", g;
2055
- n[10] !== r || n[11] !== a.disabled || n[12] !== o || n[13] !== c ? (g = W($e({
2065
+ n[10] !== r || n[11] !== a.disabled || n[12] !== o || n[13] !== c ? (g = W(tt({
2056
2066
  variant: c,
2057
2067
  size: o,
2058
2068
  className: r,
2059
2069
  disabled: a.disabled
2060
2070
  }), r), n[10] = r, n[11] = a.disabled, n[12] = o, n[13] = c, n[14] = g) : g = n[14];
2061
2071
  let _;
2062
- return n[15] !== h || n[16] !== a || n[17] !== g ? (_ = /* @__PURE__ */ (0, Qe.jsx)(h, {
2072
+ return n[15] !== h || n[16] !== a || n[17] !== g ? (_ = /* @__PURE__ */ (0, et.jsx)(h, {
2063
2073
  className: g,
2064
2074
  ref: u,
2065
2075
  ...a
2066
2076
  }), n[15] = h, n[16] = a, n[17] = g, n[18] = _) : _ = n[18], _;
2067
2077
  });
2068
- et.displayName = "Button";
2078
+ nt.displayName = "Button";
2069
2079
  //#endregion
2070
- export { o as _, Ke as a, Le as c, Ee as d, J as f, f as g, W as h, Q as i, we as l, G as m, $e as n, Re as o, Y as p, Ze as r, Ue as s, et as t, Ce as u, s as v };
2080
+ export { o as _, Ue as a, ze as c, Ee as d, J as f, f as g, W as h, Ze as i, we as l, G as m, tt as n, Je as o, Y as p, Q as r, He as s, nt as t, Ce as u, s as v };