@marimo-team/islands 0.25.3-dev20 → 0.25.3-dev201

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 (688) hide show
  1. package/dist/{ConnectedDataExplorerComponent-CNMliVzw.js → ConnectedDataExplorerComponent-BsWiIPFk.js} +22 -20
  2. package/dist/{ErrorBoundary-DAPIRYqd.js → ErrorBoundary-JYAf40sB.js} +19 -19
  3. package/dist/{abnfDiagram-VCTEODGH-D-Ez91gV.js → abnfDiagram-VCTEODGH-I2x4Yu25.js} +2 -2
  4. package/dist/any-language-editor-BVFHDDQ3.js +75 -0
  5. package/dist/{architectureDiagram-5GKGNRK7-CTpcNtO8.js → architectureDiagram-5GKGNRK7-1bSQMKzK.js} +1 -1
  6. package/dist/{arrays-CN1djC4k.js → arrays-DoQ-AILx.js} +15 -27
  7. package/dist/assets/__vite-browser-external-BCJsx8QS.js +1 -0
  8. package/dist/assets/worker-DodjWT_Z.js +113 -0
  9. package/dist/{button-CvjkwdSk.js → button-BQRdqQi1.js} +199 -192
  10. package/dist/{capabilities-CQ5IjhzL.js → capabilities-C2QUNRXi.js} +2 -2
  11. package/dist/{chat-ui-DaHynk8g.js → chat-ui-DXDoSuS4.js} +370 -369
  12. package/dist/{check-EDwSwP89.js → check-C9Mp9eCK.js} +1 -1
  13. package/dist/{chunk-IMKFNOWR-DGxi-zeo.js → chunk-IMKFNOWR-fsCGAJ9G.js} +1 -1
  14. package/dist/{chunk-SHT3W25Y-CV9J3rAB.js → chunk-SHT3W25Y-D2STW4hj.js} +1 -1
  15. package/dist/{chunk-SVP7TREG-BL-9Fqgg.js → chunk-SVP7TREG-CiY7cQG-.js} +1 -1
  16. package/dist/{chunk-TICWLB2K-Cu_XMjDM.js → chunk-TICWLB2K-C_t5RBp9.js} +1 -1
  17. package/dist/{chunk-YOKDWASO-DPZk8vhS.js → chunk-YOKDWASO-DKplTrBY.js} +20 -20
  18. package/dist/{classDiagram-ZZMXUADV-BXXV13Hq.js → classDiagram-ZZMXUADV-B2JvZAP4.js} +2 -2
  19. package/dist/{classDiagram-v2-VYDZK3BY-B7FXJ1Cp.js → classDiagram-v2-VYDZK3BY-L8VsZG5A.js} +2 -2
  20. package/dist/code-visibility-BKyYMfr_.js +134 -0
  21. package/dist/{common-DsUPhkD6.js → common-BCY25vum.js} +6040 -5865
  22. package/dist/{copy-icon-Ft7t9bqz.js → copy-icon-De584pZ4.js} +3 -3
  23. package/dist/{cynefinDiagram-5FMLGOSQ-CH96rwba.js → cynefinDiagram-5FMLGOSQ-DdllC264.js} +1 -1
  24. package/dist/{dagre-GXQ25YYZ-BD3PmpFY.js → dagre-GXQ25YYZ-BaWHw4_f.js} +1 -1
  25. package/dist/{data-grid-overlay-editor-D7UuVsgB.js → data-grid-overlay-editor-gQmJxgU-.js} +5 -5
  26. package/dist/{data-grid-types-BH_r7g7l.js → data-grid-types-0PJ-9N5n.js} +1 -1
  27. package/dist/{diagram-S7CK7UJ4-BsSJJldB.js → diagram-S7CK7UJ4-pFt-tUDe.js} +1 -1
  28. package/dist/{diagram-UQ7AKVKN-muQtNZc4.js → diagram-UQ7AKVKN-DqGJiBp4.js} +1 -1
  29. package/dist/{diagram-VX7I27RA-CdhuZAqR.js → diagram-VX7I27RA-Dr-yzMjf.js} +1 -1
  30. package/dist/{diagram-Z3DM3KII-BD8mXjOj.js → diagram-Z3DM3KII-8xzJzv-w.js} +1 -1
  31. package/dist/{dialog-CEBFZNyc.js → dialog-DVRfQuhD.js} +25 -25
  32. package/dist/{dist-F8Ep36rk.js → dist-B1M0bGO3.js} +1 -1
  33. package/dist/{dist-D6d86eNJ.js → dist-BA13RJj5.js} +1 -1
  34. package/dist/{dist-Bvs24R_E.js → dist-BJtmSgcE.js} +48 -48
  35. package/dist/{dist-CN_BeG2I.js → dist-Ba2VIn1K.js} +53 -53
  36. package/dist/{dist-PXYI_yuP.js → dist-Bj4bmwUm.js} +12 -12
  37. package/dist/{dist-DoE4XJBC.js → dist-BmS-ZGjl.js} +8626 -8626
  38. package/dist/{dist-BorMD-uX.js → dist-Bzogh7CW.js} +87 -87
  39. package/dist/{dist-CN8zI-XC.js → dist-CThPVKaP.js} +1385 -1382
  40. package/dist/{dist-DiDibOYr.js → dist-CTi5FTiV.js} +87 -87
  41. package/dist/{dist-diIx5qJW.js → dist-Ck_C32ye.js} +2 -2
  42. package/dist/{dist-BLfKmR-l.js → dist-D1fnFp1J.js} +1 -1
  43. package/dist/{dist-OR1OnN-y.js → dist-D3x9__Fu.js} +46 -46
  44. package/dist/{dist-BMQf5zIS.js → dist-D7mrh5sO.js} +36 -36
  45. package/dist/{dist-CSJ0MDRw.js → dist-D9Q3xjiP.js} +1 -1
  46. package/dist/{dist-BuaRHxOc.js → dist-DP60Ubh8.js} +2 -2
  47. package/dist/{dist-CSbh1PNP.js → dist-DTv9KkpW.js} +12 -12
  48. package/dist/{dist-D-wwqlzJ.js → dist-DVVwOfrD.js} +109 -109
  49. package/dist/{dist-C8fAKSH1.js → dist-DYXM73-k.js} +36 -36
  50. package/dist/{dist-DBtSl3sf.js → dist-DjeybPOb.js} +1 -1
  51. package/dist/{dist-CrSP_H1M.js → dist-DtGn9N4h.js} +197 -197
  52. package/dist/{dist-CLdpGQVr.js → dist-KN80qWCP.js} +2 -2
  53. package/dist/{dist-DpBpA_n1.js → dist-Lm-D-Vr6.js} +3 -3
  54. package/dist/{dist-Cg7gzw-a.js → dist-O0qFpEJh.js} +56 -56
  55. package/dist/{dist-CkTTIdBe.js → dist-OUle2RT7.js} +207 -207
  56. package/dist/{dist-BK4Oj99o.js → dist-T5rh6JvL.js} +1 -1
  57. package/dist/{dropdown-menu-CP_qCYHC.js → dropdown-menu-NlnsmNA6.js} +1481 -1433
  58. package/dist/{ebnfDiagram-PWID7BFC-BIN1sweE.js → ebnfDiagram-PWID7BFC-Br04Wy-E.js} +2 -2
  59. package/dist/{erDiagram-RLTQ6QDP-Ctp5cfoN.js → erDiagram-RLTQ6QDP-D5-XVgvv.js} +1 -1
  60. package/dist/{error-banner-D-WCIiMt.js → error-banner-DxJ3s8YO.js} +86 -86
  61. package/dist/{error-entries-Bv6bZPF3.js → error-entries-C2Ux0Fjt.js} +8404 -9095
  62. package/dist/{esm-D2gTsXEV.js → esm-Bbw_Njjx.js} +575 -575
  63. package/dist/{esm-AMFssoNp.js → esm-mDQNEFe_.js} +354 -354
  64. package/dist/feedback-button-BKgw9MHY.js +374 -0
  65. package/dist/{flowDiagram-HODETNUW-3EfLrlFb.js → flowDiagram-HODETNUW-CVl2kREF.js} +2 -2
  66. package/dist/{formats-27CW_UP4.js → formats-BCYthwyc.js} +3 -3
  67. package/dist/{ganttDiagram-EL5Y4UJY-BQT16JSc.js → ganttDiagram-EL5Y4UJY-Dh_4cBJZ.js} +2 -2
  68. package/dist/{glide-data-editor-KvS90MGh.js → glide-data-editor-CzS51bb2.js} +370 -368
  69. package/dist/{glide-utils-DJyqh0EM.js → glide-utils-D98laidb.js} +16 -16
  70. package/dist/{globals-yruoELTW.js → globals-DQ4tv_a-.js} +3 -3
  71. package/dist/{highlighted-body-KPVGNVTW-zwjq21tf.js → highlighted-body-KPVGNVTW-3Ziwfz-V.js} +2 -2
  72. package/dist/{html-to-image-Bf8QMGi4.js → html-to-image-CkH7vdBZ.js} +477 -380
  73. package/dist/{infoDiagram-27XIBGKW-DipQoHxl.js → infoDiagram-27XIBGKW-BJ4vNcZE.js} +1 -1
  74. package/dist/{ishikawaDiagram-5VMMS53U-DgFMjSGz.js → ishikawaDiagram-5VMMS53U-B_Jy1Dsm.js} +1 -1
  75. package/dist/{kanban-definition-UXKFOSKX-w1ACVjgl.js → kanban-definition-UXKFOSKX-C6MkS9vw.js} +1 -1
  76. package/dist/{label-BDKF3Afc.js → label-Qvw1E97W.js} +3 -3
  77. package/dist/{linear-Cnaq3Tfb.js → linear-DWERh7eI.js} +121 -73
  78. package/dist/{loader-BQOfjTIJ.js → loader-DOVB0Syl.js} +12 -12
  79. package/dist/main.js +9706 -7709
  80. package/dist/{mermaid-CHo49Yv-.js → mermaid-Bh918qrq.js} +52 -52
  81. package/dist/mermaid-HWGCJPDP-Du3-HPQA.js +2 -0
  82. package/dist/{mindmap-definition-YA3MSWOX-CrT0KSfX.js → mindmap-definition-YA3MSWOX-BP3ZTuir.js} +1 -1
  83. package/dist/{number-overlay-editor-R2i0FdxV.js → number-overlay-editor-B3ZE3-6d.js} +3 -3
  84. package/dist/{objects-CzUgoMIF.js → objects-DCmMvZtn.js} +1 -3
  85. package/dist/{once-BtE-wKRL.js → once-NnpX_HnX.js} +1 -1
  86. package/dist/{pegDiagram-XKGWAZYB-BqvywNJA.js → pegDiagram-XKGWAZYB-nNGOQtnt.js} +2 -2
  87. package/dist/{pieDiagram-E7YTZNPT-BfxJ_XCc.js → pieDiagram-E7YTZNPT-CpRz5BZz.js} +1 -1
  88. package/dist/precisionRound-DhAzeRcm.js +49 -0
  89. package/dist/{process-output-BZg56CCb.js → process-output-OujAtFW4.js} +5 -5
  90. package/dist/{quadrantDiagram-AXDQQJYC-Ccw0xMjN.js → quadrantDiagram-AXDQQJYC-Blrm7V7_.js} +1 -1
  91. package/dist/{railroadDiagram-O6MQD6OU-8vFLVTPu.js → railroadDiagram-O6MQD6OU-BqOEN4I0.js} +2 -2
  92. package/dist/{react-vega-BED0DjiB.js → react-vega-C4T9Rb_w.js} +12284 -12270
  93. package/dist/{requirementDiagram-BXWQKSXE-a_MxGvxe.js → requirementDiagram-BXWQKSXE-CEfg6vu9.js} +1 -1
  94. package/dist/{reveal-component-C42-YBfQ.js → reveal-component-DXa9FXf6.js} +733 -710
  95. package/dist/{select-BButFi-d.js → select-2KOiReNY.js} +536 -457
  96. package/dist/{sequenceDiagram-WJ2MYXX4-CXFMnxGh.js → sequenceDiagram-WJ2MYXX4-IOmpQcOi.js} +1 -1
  97. package/dist/{spec-BwarBpUJ.js → spec-Dkp64vVQ.js} +41 -11
  98. package/dist/{stateDiagram-D77RDMKH-DQeA_CwI.js → stateDiagram-D77RDMKH-tgU-EY9_.js} +2 -2
  99. package/dist/{stateDiagram-v2-MP3YSRHH-BxxQucm1.js → stateDiagram-v2-MP3YSRHH-BofhG6q1.js} +2 -2
  100. package/dist/style.css +1 -1
  101. package/dist/{swimlanes-42K2YHIH-Do6L-cYg.js → swimlanes-42K2YHIH-DW4vWDBd.js} +1 -1
  102. package/dist/{swimlanesDiagram-VR7AAH4N-DUzPvSVU.js → swimlanesDiagram-VR7AAH4N-BJcrqUJr.js} +2 -2
  103. package/dist/{swiper-component-DKntyn8p.js → swiper-component-BVfnhbnt.js} +2 -2
  104. package/dist/{time-BieKwdYS.js → time-BaMbJs4z.js} +18 -18
  105. package/dist/{timeline-definition-24CTP7MA-D3c46WM5.js → timeline-definition-24CTP7MA-D_QU3NGs.js} +1 -1
  106. package/dist/{toDate-UtiwmnH2.js → toDate-BNDEXbfV.js} +44 -43
  107. package/dist/{toast-B9UMEi8u.js → toast-B5t9o6s_.js} +219 -201
  108. package/dist/{tooltip-BO1REbqs.js → tooltip-s4zZxwKe.js} +325 -301
  109. package/dist/{use-restore-focus-BEM7sFWl.js → use-restore-focus-BgDTd2tc.js} +1482 -1433
  110. package/dist/{useAsyncData-Deh5kszT.js → useAsyncData-ASDni9vH.js} +15 -14
  111. package/dist/{useDateFormatter-D8XruNGG.js → useDateFormatter-D3Tkfzej.js} +2 -2
  112. package/dist/{useDeepCompareMemoize-DXwzRINI.js → useDeepCompareMemoize-B1Ogyf53.js} +1 -1
  113. package/dist/{useIframeCapabilities-DBETvvPl.js → useIframeCapabilities-6a_yDNXp.js} +1 -1
  114. package/dist/{useLifecycle-j7D9uD1o.js → useLifecycle-Bfpa2m7k.js} +28 -25
  115. package/dist/{useTheme-CRnjkku0.js → useTheme-5TwyOh3B.js} +522 -314
  116. package/dist/{vega-component-BeF9dfyO.js → vega-component-BHS9UOtC.js} +158 -158
  117. package/dist/{vega-embed-container-BNHE18G9.js → vega-embed-container--LYZqguO.js} +2 -2
  118. package/dist/{vega-loader.browser-DNST6uVf.js → vega-loader.browser-B9Pz0EGP.js} +298 -507
  119. package/dist/{vennDiagram-4TSXK5OY-BSZD8JcZ.js → vennDiagram-4TSXK5OY-YFYsNIAh.js} +1 -1
  120. package/dist/{wardleyDiagram-VM6X3IG4-48cUWkfA.js → wardleyDiagram-VM6X3IG4-i_n8mAWC.js} +1 -1
  121. package/dist/{xychartDiagram-S5SC5T6Z-CswYgYeu.js → xychartDiagram-S5SC5T6Z-BYGN95wW.js} +2 -2
  122. package/package.json +16 -16
  123. package/src/__mocks__/document.tsx +63 -0
  124. package/src/__mocks__/notebook.ts +3 -4
  125. package/src/__mocks__/partial.ts +26 -0
  126. package/src/__mocks__/requests.ts +0 -3
  127. package/src/__tests__/main.test.tsx +24 -1
  128. package/src/__tests__/module-entry.test.ts +44 -0
  129. package/src/__tests__/mount.test.ts +1 -21
  130. package/src/__tests__/{host-imports.test.ts → replica-imports.test.ts} +12 -11
  131. package/src/components/ai/__tests__/ai-model-dropdown.test.tsx +63 -0
  132. package/src/components/ai/ai-model-dropdown.tsx +11 -6
  133. package/src/components/app-config/ai-config.tsx +7 -2
  134. package/src/components/app-config/app-config-form.tsx +5 -9
  135. package/src/components/app-config/user-config-form.tsx +35 -0
  136. package/src/components/chat/__tests__/message-queue.test.tsx +17 -0
  137. package/src/components/chat/__tests__/notebook-access-selector.test.tsx +64 -0
  138. package/src/components/chat/acp/__tests__/session-tabs.test.tsx +43 -0
  139. package/src/components/chat/acp/__tests__/state.test.ts +2 -2
  140. package/src/components/chat/acp/blocks.tsx +3 -2
  141. package/src/components/chat/acp/session-tabs.tsx +8 -3
  142. package/src/components/chat/chat-components.tsx +2 -0
  143. package/src/components/chat/chat-panel.tsx +20 -101
  144. package/src/components/chat/chat-utils.ts +4 -8
  145. package/src/components/chat/notebook-access-selector.stories.tsx +22 -0
  146. package/src/components/chat/notebook-access-selector.tsx +100 -0
  147. package/src/components/data-table/TableBottomBar.tsx +4 -1
  148. package/src/components/data-table/TableTopBar.tsx +2 -0
  149. package/src/components/data-table/__tests__/chart-spec-model.test.ts +195 -195
  150. package/src/components/data-table/__tests__/column-explorer.test.tsx +27 -1
  151. package/src/components/data-table/__tests__/columns.test.tsx +105 -0
  152. package/src/components/data-table/__tests__/context-menu-interaction.test.tsx +130 -0
  153. package/src/components/data-table/__tests__/data-table.test.tsx +1 -0
  154. package/src/components/data-table/__tests__/date-popover.test.tsx +72 -0
  155. package/src/components/data-table/__tests__/export-actions.test.tsx +105 -0
  156. package/src/components/data-table/__tests__/keyboard-selection.test.tsx +188 -0
  157. package/src/components/data-table/__tests__/pagination.test.tsx +28 -1
  158. package/src/components/data-table/__tests__/search-highlight.test.tsx +109 -0
  159. package/src/components/data-table/__tests__/url-detector.test.tsx +74 -0
  160. package/src/components/data-table/cell-selection/feature.ts +2 -2
  161. package/src/components/data-table/cell-selection/types.ts +2 -2
  162. package/src/components/data-table/charts/__tests__/chart-panel.test.tsx +74 -1
  163. package/src/components/data-table/charts/__tests__/spec-snapshot.test.ts +20 -20
  164. package/src/components/data-table/charts/__tests__/spec.test.ts +78 -52
  165. package/src/components/data-table/charts/__tests__/storage.test.ts +4 -1
  166. package/src/components/data-table/charts/chart-spec/spec.ts +68 -43
  167. package/src/components/data-table/charts/charts.tsx +40 -30
  168. package/src/components/data-table/charts/storage.ts +16 -5
  169. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +1 -1
  170. package/src/components/data-table/column-summary/chart-spec-model.tsx +23 -16
  171. package/src/components/data-table/column-summary/column-summary.tsx +2 -4
  172. package/src/components/data-table/column-visibility-dropdown.tsx +8 -13
  173. package/src/components/data-table/columns.tsx +45 -46
  174. package/src/components/data-table/context-menu.tsx +36 -20
  175. package/src/components/data-table/data-table.tsx +17 -1
  176. package/src/components/data-table/date-popover.tsx +6 -4
  177. package/src/components/data-table/export-actions.tsx +76 -48
  178. package/src/components/data-table/pagination.tsx +44 -33
  179. package/src/components/data-table/range-focus/atoms.ts +4 -6
  180. package/src/components/data-table/range-focus/use-cell-range-selection.ts +65 -38
  181. package/src/components/data-table/range-focus/use-scroll-into-view.ts +21 -2
  182. package/src/components/data-table/renderers.tsx +16 -7
  183. package/src/components/data-table/row-viewer-panel/__tests__/row-viewer.test.tsx +24 -1
  184. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +4 -4
  185. package/src/components/data-table/search-highlight.tsx +79 -0
  186. package/src/components/data-table/types.ts +1 -0
  187. package/src/components/data-table/url-detector.tsx +49 -9
  188. package/src/components/datasources/__tests__/column-actions.test.tsx +97 -0
  189. package/src/components/datasources/__tests__/column-preview.test.tsx +96 -5
  190. package/src/components/datasources/__tests__/datasources-interactions.test.tsx +181 -0
  191. package/src/components/datasources/__tests__/table-list.test.tsx +118 -0
  192. package/src/components/datasources/__tests__/utils.test.ts +57 -6
  193. package/src/components/datasources/column-preview.tsx +17 -12
  194. package/src/components/datasources/datasources.tsx +56 -43
  195. package/src/components/datasources/utils.ts +32 -23
  196. package/src/components/debugger/debugger-code.tsx +5 -0
  197. package/src/components/dependency-graph/custom-node.tsx +1 -1
  198. package/src/components/dependency-graph/dependency-graph-tree.tsx +8 -8
  199. package/src/components/dependency-graph/elements.ts +24 -21
  200. package/src/components/dependency-graph/minimap-content.tsx +13 -19
  201. package/src/components/dependency-graph/panels.tsx +4 -2
  202. package/src/components/dependency-graph/utils/__tests__/layout.test.ts +18 -11
  203. package/src/components/editor/SortableCell.tsx +1 -3
  204. package/src/components/editor/__tests__/Output.test.tsx +50 -32
  205. package/src/{core/attachments/__tests__/toast.test.tsx → components/editor/__tests__/agent-toast.test.tsx} +1 -1
  206. package/src/components/editor/__tests__/data-attributes.test.tsx +28 -14
  207. package/src/components/editor/__tests__/dynamic-favicon.test.tsx +111 -18
  208. package/src/components/editor/__tests__/output-persistence.test.tsx +6 -2
  209. package/src/components/editor/__tests__/package-alert.test.tsx +22 -1
  210. package/src/components/editor/actions/__tests__/name-cell-input.test.tsx +69 -0
  211. package/src/components/editor/actions/__tests__/pair-with-agent-modal.test.tsx +34 -8
  212. package/src/components/editor/actions/__tests__/pair-with-agent.test.tsx +2 -6
  213. package/src/components/editor/actions/name-cell-input.tsx +4 -3
  214. package/src/components/editor/actions/pair-with-agent-commands.ts +2 -2
  215. package/src/components/editor/actions/pair-with-agent-modal.tsx +19 -16
  216. package/src/components/editor/actions/useCellActionButton.tsx +26 -31
  217. package/src/components/editor/actions/useConfigActions.tsx +3 -4
  218. package/src/components/editor/actions/useNotebookActions.tsx +19 -23
  219. package/src/components/editor/actions/useRestartKernel.tsx +1 -1
  220. package/src/components/editor/actions/useSetCodeVisibility.ts +11 -12
  221. package/src/components/editor/actions/useSetOutputsExpanded.ts +14 -19
  222. package/src/components/editor/ai/add-cell-with-ai.tsx +3 -3
  223. package/src/components/editor/ai/ai-completion-editor.tsx +1 -0
  224. package/src/components/editor/alerts/__tests__/connection-notice.test.tsx +1 -1
  225. package/src/components/editor/alerts/connection-notice.tsx +1 -1
  226. package/src/components/editor/alerts/startup-logs-alert.tsx +1 -0
  227. package/src/components/editor/alerts/stdin-blocking-alert.tsx +1 -1
  228. package/src/components/editor/app-container.tsx +1 -1
  229. package/src/components/editor/boundary/__tests__/ErrorBoundary.test.tsx +1 -1
  230. package/src/components/editor/cell/CreateCellButton.tsx +15 -21
  231. package/src/components/editor/cell/DeleteButton.tsx +3 -2
  232. package/src/components/editor/cell/RunButton.tsx +2 -2
  233. package/src/components/editor/cell/StagedAICell.tsx +10 -2
  234. package/src/components/editor/cell/StopButton.tsx +2 -2
  235. package/src/components/editor/cell/__tests__/StagedAICell.test.tsx +3 -1
  236. package/src/components/editor/cell/__tests__/useShouldShowInterrupt.test.ts +39 -0
  237. package/src/components/editor/cell/cell-actions.tsx +12 -1
  238. package/src/components/editor/cell/code/__tests__/language-toggle.test.tsx +54 -0
  239. package/src/components/editor/cell/code/cell-editor.tsx +36 -43
  240. package/src/components/editor/cell/code/language-toggle.tsx +8 -7
  241. package/src/components/editor/cell/collapse.tsx +11 -4
  242. package/src/components/editor/cell/useAddCell.ts +4 -8
  243. package/src/components/editor/cell/useDeleteCell.tsx +10 -36
  244. package/src/components/editor/cell/useRunCells.ts +2 -5
  245. package/src/components/editor/cell/useShouldShowInterrupt.ts +2 -12
  246. package/src/components/editor/cell/useSplitCell.tsx +10 -6
  247. package/src/components/editor/chrome/components/__tests__/feedback-button.test.tsx +1 -1
  248. package/src/components/editor/chrome/components/feedback-button.tsx +2 -8
  249. package/src/components/editor/chrome/panels/__tests__/packages-panel.test.tsx +31 -2
  250. package/src/components/editor/chrome/panels/__tests__/runtime-details.test.tsx +1 -1
  251. package/src/components/editor/chrome/panels/__tests__/sandbox-recovery.test.tsx +1 -1
  252. package/src/components/editor/chrome/panels/cache-panel.tsx +1 -0
  253. package/src/components/editor/chrome/panels/dependency-graph-panel.tsx +1 -1
  254. package/src/components/editor/chrome/panels/logs-panel.tsx +2 -1
  255. package/src/components/editor/chrome/panels/outline/__tests__/outline-keyboard.test.tsx +84 -0
  256. package/src/components/editor/chrome/panels/outline/floating-outline.tsx +39 -14
  257. package/src/components/editor/chrome/panels/outline/useActiveOutline.tsx +3 -2
  258. package/src/components/editor/chrome/panels/packages-panel.tsx +4 -7
  259. package/src/components/editor/chrome/panels/secrets-panel.tsx +1 -0
  260. package/src/components/editor/chrome/panels/session-panel.tsx +1 -1
  261. package/src/components/editor/chrome/panels/snippets-panel.tsx +10 -12
  262. package/src/components/editor/chrome/panels/variable-panel.tsx +1 -5
  263. package/src/components/editor/chrome/wrapper/__tests__/attachment-status.test.tsx +9 -18
  264. package/src/components/editor/chrome/wrapper/__tests__/document-sync-status.test.tsx +92 -0
  265. package/src/components/editor/chrome/wrapper/__tests__/pending-ai-cells.test.tsx +61 -2
  266. package/src/components/editor/chrome/wrapper/footer-items/attachment-status.tsx +4 -4
  267. package/src/components/editor/chrome/wrapper/footer-items/backend-status.tsx +1 -1
  268. package/src/components/editor/chrome/wrapper/footer-items/document-sync-status.tsx +54 -0
  269. package/src/components/editor/chrome/wrapper/footer-items/lsp-status.tsx +1 -1
  270. package/src/components/editor/chrome/wrapper/footer-items/machine-stats.tsx +1 -1
  271. package/src/components/editor/chrome/wrapper/footer-items/runtime-settings.tsx +1 -7
  272. package/src/components/editor/chrome/wrapper/footer.tsx +2 -0
  273. package/src/components/editor/chrome/wrapper/minimap-state.ts +1 -1
  274. package/src/components/editor/chrome/wrapper/pending-ai-cells.tsx +12 -2
  275. package/src/components/editor/chrome/wrapper/storage.ts +1 -1
  276. package/src/components/editor/columns/__tests__/cell-column.test.tsx +1 -1
  277. package/src/components/editor/columns/cell-column.tsx +1 -1
  278. package/src/components/editor/columns/sortable-column.tsx +2 -2
  279. package/src/components/editor/connections/components.tsx +5 -10
  280. package/src/components/editor/controls/Controls.tsx +4 -4
  281. package/src/components/editor/controls/__tests__/command-palette.test.tsx +53 -0
  282. package/src/components/editor/controls/__tests__/keyboard-shortcuts.test.tsx +61 -0
  283. package/src/components/editor/controls/__tests__/notebook-menu-dropdown.test.tsx +10 -4
  284. package/src/components/editor/controls/command-palette.tsx +22 -10
  285. package/src/components/editor/controls/keyboard-shortcuts.tsx +14 -5
  286. package/src/components/editor/documentation.css +34 -11
  287. package/src/components/editor/dynamic-favicon.tsx +21 -40
  288. package/src/components/editor/errors/__tests__/send-error-report-button.test.tsx +17 -29
  289. package/src/components/editor/errors/auto-fix.tsx +4 -8
  290. package/src/components/editor/errors/send-error-report-button.tsx +3 -6
  291. package/src/components/editor/file-tree/__tests__/file-explorer-interactions.test.tsx +6 -0
  292. package/src/components/editor/file-tree/__tests__/file-explorer-navigation.test.tsx +47 -0
  293. package/src/components/editor/file-tree/__tests__/use-file-search.test.tsx +91 -0
  294. package/src/components/editor/file-tree/file-explorer.tsx +48 -15
  295. package/src/components/editor/file-tree/file-name-input.tsx +1 -0
  296. package/src/components/editor/file-tree/file-viewer.tsx +4 -2
  297. package/src/components/editor/file-tree/use-file-search.ts +35 -21
  298. package/src/components/editor/header/__tests__/status.test.tsx +5 -3
  299. package/src/components/editor/header/app-header.tsx +1 -1
  300. package/src/components/editor/header/status.tsx +40 -20
  301. package/src/components/editor/links/__tests__/cell-link.test.tsx +148 -0
  302. package/src/components/editor/links/cell-link-list.tsx +1 -1
  303. package/src/components/editor/links/cell-link.tsx +17 -7
  304. package/src/components/editor/navigation/__tests__/clipboard.test.ts +60 -38
  305. package/src/components/editor/navigation/__tests__/navigation.test.ts +108 -85
  306. package/src/components/editor/navigation/__tests__/selection.test.ts +43 -21
  307. package/src/components/editor/navigation/clipboard.ts +17 -14
  308. package/src/components/editor/navigation/focus-utils.ts +23 -4
  309. package/src/components/editor/navigation/multi-cell-action-toolbar.tsx +17 -33
  310. package/src/components/editor/navigation/navigation.ts +71 -70
  311. package/src/components/editor/navigation/selection.ts +30 -29
  312. package/src/components/editor/notebook-banner.tsx +1 -0
  313. package/src/components/editor/notebook-cell.tsx +29 -31
  314. package/src/components/editor/output/MarimoErrorOutput.tsx +2 -1
  315. package/src/components/editor/output/MarimoTracebackOutput.tsx +19 -17
  316. package/src/components/editor/output/Outputs.css +8 -0
  317. package/src/components/editor/output/__tests__/traceback.test.tsx +27 -1
  318. package/src/components/editor/output/ansi-reduce.ts +33 -20
  319. package/src/components/editor/output/console/ConsoleOutput.tsx +19 -25
  320. package/src/components/editor/output/console/__tests__/ConsoleOutput.test.tsx +125 -69
  321. package/src/components/editor/package-alert.tsx +14 -7
  322. package/src/components/editor/renderers/cell-array.tsx +22 -33
  323. package/src/components/editor/renderers/grid-layout/grid-layout.tsx +12 -6
  324. package/src/components/editor/renderers/slides-layout/__tests__/plugin.test.ts +0 -1
  325. package/src/components/editor/renderers/slides-layout/slides-layout.tsx +1 -1
  326. package/src/components/editor/renderers/vertical-layout/__tests__/useFocusFirstEditor.test.ts +4 -4
  327. package/src/components/editor/renderers/vertical-layout/sidebar/toggle.tsx +7 -1
  328. package/src/components/editor/renderers/vertical-layout/useFocusFirstEditor.ts +1 -1
  329. package/src/components/editor/renderers/vertical-layout/vertical-layout.tsx +1 -1
  330. package/src/components/editor/stdin-blocking-alert.tsx +1 -1
  331. package/src/components/home/components.tsx +17 -31
  332. package/src/components/icons/__tests__/large-spinner.test.tsx +39 -0
  333. package/src/components/icons/large-spinner.tsx +3 -14
  334. package/src/components/icons/spinner.tsx +1 -1
  335. package/src/components/markdown/markdown-renderer.tsx +4 -8
  336. package/src/components/mcp/mcp-status-indicator.tsx +1 -1
  337. package/src/components/pages/__tests__/home-page.test.tsx +116 -0
  338. package/src/components/pages/edit-page.tsx +19 -17
  339. package/src/components/pages/home-page.tsx +164 -91
  340. package/src/components/scratchpad/scratchpad.test.tsx +97 -0
  341. package/src/components/scratchpad/scratchpad.tsx +20 -11
  342. package/src/components/slides/__tests__/minimap-actions.test.tsx +22 -29
  343. package/src/components/slides/__tests__/minimap.test.ts +38 -19
  344. package/src/components/slides/__tests__/slide-scroll-hint.test.tsx +37 -0
  345. package/src/components/slides/minimap.tsx +17 -12
  346. package/src/components/slides/reveal-component.tsx +58 -26
  347. package/src/components/slides/reveal-slides.css +5 -4
  348. package/src/components/slides/slide-cell-view.tsx +4 -5
  349. package/src/components/slides/slide-form.tsx +1 -0
  350. package/src/components/slides/slide-scroll-hint.tsx +3 -1
  351. package/src/components/sort/SortableCellsProvider.tsx +8 -25
  352. package/src/components/tracing/tracing-keyboard.test.tsx +85 -0
  353. package/src/components/tracing/tracing.tsx +46 -42
  354. package/src/components/ui/__tests__/draggable-popover.test.tsx +24 -0
  355. package/src/components/ui/__tests__/range-slider.test.tsx +165 -0
  356. package/src/components/ui/alert-dialog.tsx +1 -1
  357. package/src/components/ui/draggable-popover.tsx +24 -2
  358. package/src/components/ui/range-slider.tsx +22 -9
  359. package/src/core/MarimoApp.tsx +1 -1
  360. package/src/core/ai/__tests__/staged-cells.test.ts +27 -26
  361. package/src/core/ai/context/providers/__tests__/cell-output.test.ts +8 -12
  362. package/src/core/ai/context/providers/cell-output.ts +2 -2
  363. package/src/core/ai/context/providers/datasource.ts +6 -2
  364. package/src/core/ai/staged-cells.ts +15 -18
  365. package/src/core/ai/tools/__tests__/edit-notebook-tool.test.ts +40 -88
  366. package/src/core/ai/tools/__tests__/registry.test.ts +17 -0
  367. package/src/core/ai/tools/base.ts +18 -15
  368. package/src/core/ai/tools/edit-notebook-tool.ts +86 -80
  369. package/src/core/ai/tools/registry.ts +13 -10
  370. package/src/core/ai/tools/sample-tool.ts +6 -7
  371. package/src/core/cells/__tests__/__snapshots__/cells.test.ts.snap +4 -37
  372. package/src/core/cells/__tests__/actions.test.ts +624 -35
  373. package/src/core/cells/__tests__/add-missing-import.test.ts +7 -8
  374. package/src/core/cells/__tests__/arrange.test.ts +432 -0
  375. package/src/core/cells/__tests__/cell.test.ts +39 -0
  376. package/src/core/cells/__tests__/cells.test.ts +218 -2491
  377. package/src/core/cells/__tests__/collapseConsoleOutputs.test.ts +54 -0
  378. package/src/core/cells/__tests__/document.test.ts +341 -0
  379. package/src/core/cells/__tests__/editor.test.ts +57 -0
  380. package/src/core/cells/__tests__/flush-document.test.ts +40 -0
  381. package/src/core/cells/__tests__/harness.ts +106 -0
  382. package/src/core/cells/__tests__/layout.test.ts +177 -0
  383. package/src/core/cells/__tests__/notebook-outline.test.ts +120 -0
  384. package/src/core/cells/__tests__/outputs.test.tsx +71 -53
  385. package/src/core/cells/__tests__/session.test.ts +445 -211
  386. package/src/core/cells/__tests__/utils.test.ts +9 -108
  387. package/src/core/cells/__tests__/with-document-save.test.ts +67 -0
  388. package/src/core/cells/actions.ts +636 -6
  389. package/src/core/cells/add-missing-import.ts +47 -43
  390. package/src/core/cells/arrange.ts +529 -0
  391. package/src/core/cells/cell.ts +14 -3
  392. package/src/core/cells/cells.ts +120 -1337
  393. package/src/core/cells/columns.ts +38 -0
  394. package/src/core/cells/document.ts +289 -0
  395. package/src/core/cells/edit.ts +30 -0
  396. package/src/core/cells/editor.ts +82 -0
  397. package/src/core/cells/layout.ts +221 -0
  398. package/src/core/cells/outputs.ts +12 -28
  399. package/src/core/cells/pending-delete-service.ts +3 -7
  400. package/src/core/cells/session.ts +76 -53
  401. package/src/core/cells/types.ts +22 -6
  402. package/src/core/cells/utils.ts +10 -8
  403. package/src/core/codemirror/__tests__/setup.test.ts +29 -29
  404. package/src/core/codemirror/ai/__tests__/resources.test.ts +117 -0
  405. package/src/core/codemirror/ai/resources.ts +1 -1
  406. package/src/core/codemirror/cells/__tests__/extensions.test.ts +42 -1
  407. package/src/core/codemirror/cells/extensions.ts +27 -9
  408. package/src/core/codemirror/cells/state.ts +1 -1
  409. package/src/core/codemirror/copilot/__tests__/getCodes.test.ts +6 -7
  410. package/src/core/codemirror/copilot/getCodes.ts +2 -2
  411. package/src/core/codemirror/format.ts +6 -5
  412. package/src/core/codemirror/keymaps/vim.ts +4 -8
  413. package/src/core/codemirror/language/__tests__/sql.test.ts +22 -20
  414. package/src/core/codemirror/language/__tests__/utils.test.ts +187 -15
  415. package/src/core/codemirror/language/cell-code.ts +114 -0
  416. package/src/core/codemirror/language/extension.ts +52 -35
  417. package/src/core/codemirror/language/languages/markdown.ts +8 -6
  418. package/src/core/codemirror/language/languages/python.ts +16 -10
  419. package/src/core/codemirror/language/languages/sql/sql.ts +16 -24
  420. package/src/core/codemirror/language/panel/panel.tsx +1 -0
  421. package/src/core/codemirror/language/types.ts +7 -7
  422. package/src/core/codemirror/language/utils.ts +9 -39
  423. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +1 -2
  424. package/src/core/codemirror/lsp/notebook-lsp.ts +6 -5
  425. package/src/core/codemirror/lsp/utils.ts +1 -1
  426. package/src/core/codemirror/readonly/__tests__/extension.test.ts +1 -1
  427. package/src/core/codemirror/readonly/extension.ts +2 -2
  428. package/src/core/codemirror/rtc/extension.ts +24 -13
  429. package/src/core/codemirror/rtc/loro/awareness.ts +34 -19
  430. package/src/core/codemirror/rtc/loro/sync.ts +1 -0
  431. package/src/core/codemirror/utils.ts +1 -0
  432. package/src/core/config/__tests__/app-config.test.ts +64 -0
  433. package/src/core/config/__tests__/config-schema.test.ts +13 -6
  434. package/src/core/config/config-schema.ts +13 -3
  435. package/src/core/config/config.ts +26 -12
  436. package/src/core/datasets/__tests__/data-source-discovery.test.ts +5 -5
  437. package/src/core/datasets/data-source-discovery.ts +4 -6
  438. package/src/core/documentation/doc-lookup.ts +1 -1
  439. package/src/core/edit-app.tsx +21 -28
  440. package/src/core/errors/error-entries.ts +4 -1
  441. package/src/core/export/hooks.ts +1 -1
  442. package/src/core/export/layout.ts +2 -2
  443. package/src/core/hotkeys/actions.ts +2 -4
  444. package/src/core/islands/__tests__/bootstrap.test.ts +69 -43
  445. package/src/core/islands/__tests__/bridge.test.ts +72 -25
  446. package/src/core/islands/bootstrap.ts +46 -54
  447. package/src/core/islands/bridge.ts +74 -23
  448. package/src/core/islands/components/__tests__/IslandControls.test.tsx +7 -5
  449. package/src/core/islands/components/web-components.tsx +1 -1
  450. package/src/core/islands/worker/__tests__/controller.test.ts +62 -4
  451. package/src/core/islands/worker/controller.ts +4 -10
  452. package/src/core/islands/worker/worker.tsx +33 -33
  453. package/src/core/kernel/__tests__/RuntimeState.test.ts +1 -1
  454. package/src/core/kernel/__tests__/handlers.test.ts +7 -153
  455. package/src/core/kernel/handlers.ts +19 -72
  456. package/src/core/meta/__tests__/code-visibility.test.tsx +78 -70
  457. package/src/core/meta/code-visibility.ts +18 -9
  458. package/src/core/network/__tests__/connection.test.ts +1 -1
  459. package/src/core/network/__tests__/requests-lazy.test.ts +1 -3
  460. package/src/core/network/connection-notice.ts +1 -1
  461. package/src/core/network/connection.ts +1 -1
  462. package/src/core/network/requests-lazy.ts +1 -4
  463. package/src/core/network/requests-network.ts +0 -25
  464. package/src/core/network/requests-static.ts +0 -3
  465. package/src/core/network/requests-toasting.tsx +0 -3
  466. package/src/core/network/types.ts +0 -12
  467. package/src/core/network/useConnectionNotice.ts +8 -2
  468. package/src/core/notebook/__tests__/operations.test.ts +51 -0
  469. package/src/core/notebook/attachments.ts +38 -0
  470. package/src/core/notebook/document/__tests__/codemirror.test.ts +586 -0
  471. package/src/core/notebook/document/__tests__/draft.test.ts +363 -0
  472. package/src/core/notebook/document/__tests__/fixtures.ts +92 -0
  473. package/src/core/notebook/document/__tests__/hold.test.ts +88 -0
  474. package/src/core/notebook/document/__tests__/hooks.test.tsx +391 -0
  475. package/src/core/notebook/document/__tests__/lifecycle-scenarios.test.ts +61 -0
  476. package/src/core/notebook/document/__tests__/model.test.ts +247 -0
  477. package/src/core/notebook/document/__tests__/protocol-fixtures.ts +38 -0
  478. package/src/core/notebook/document/__tests__/recovery-scenarios.test.ts +230 -0
  479. package/src/core/notebook/document/__tests__/scenario-fixture.ts +43 -0
  480. package/src/core/notebook/document/__tests__/scenarios.test.ts +205 -0
  481. package/src/core/notebook/document/__tests__/state.test.ts +459 -0
  482. package/src/core/notebook/document/__tests__/submission.test.ts +203 -0
  483. package/src/core/notebook/document/__tests__/test-host.test.ts +92 -0
  484. package/src/core/notebook/document/__tests__/test-host.ts +247 -0
  485. package/src/core/notebook/document/__tests__/test-notebook.ts +149 -0
  486. package/src/core/notebook/document/__tests__/user.ts +61 -0
  487. package/src/core/notebook/document/codemirror.ts +216 -0
  488. package/src/core/notebook/document/draft.ts +502 -0
  489. package/src/core/notebook/document/hooks.tsx +118 -0
  490. package/src/core/notebook/document/index.ts +24 -0
  491. package/src/core/notebook/document/model.ts +105 -0
  492. package/src/core/notebook/document/select.ts +41 -0
  493. package/src/core/notebook/document/state.ts +378 -0
  494. package/src/core/notebook/document/sync.ts +418 -0
  495. package/src/core/notebook/index.ts +19 -0
  496. package/src/core/notebook/operations.ts +30 -0
  497. package/src/core/notebook/replica/AGENTS.md +11 -0
  498. package/src/core/notebook/replica/__tests__/attachments.test.ts +56 -0
  499. package/src/core/{host → notebook/replica}/__tests__/document.test.ts +18 -16
  500. package/src/core/notebook/replica/__tests__/fixtures.ts +79 -0
  501. package/src/core/notebook/replica/__tests__/replica.test.ts +550 -0
  502. package/src/core/notebook/replica/backend.ts +19 -0
  503. package/src/core/notebook/replica/connection.ts +42 -0
  504. package/src/core/notebook/replica/index.ts +13 -0
  505. package/src/core/notebook/replica/replica.ts +286 -0
  506. package/src/core/notebook/replica/resources/attachments.ts +22 -0
  507. package/src/core/{host → notebook/replica}/resources/document.ts +4 -4
  508. package/src/core/packages/__tests__/useSandboxController.test.tsx +1 -1
  509. package/src/core/packages/useSandboxController.ts +1 -1
  510. package/src/core/run-app.tsx +48 -51
  511. package/src/core/runtime/__tests__/adapter.test.ts +1 -1
  512. package/src/core/runtime/__tests__/createWsUrl.test.ts +77 -7
  513. package/src/core/runtime/__tests__/runtime.test.ts +32 -58
  514. package/src/core/runtime/adapter.ts +1 -1
  515. package/src/core/runtime/config.ts +2 -2
  516. package/src/core/runtime/runtime.ts +38 -42
  517. package/src/core/runtime/types.ts +0 -2
  518. package/src/core/saving/__tests__/state.test.ts +111 -0
  519. package/src/core/saving/__tests__/useAutoSave.test.tsx +67 -0
  520. package/src/core/saving/filename.ts +1 -1
  521. package/src/core/saving/save-component.tsx +28 -36
  522. package/src/core/saving/state.ts +38 -39
  523. package/src/core/saving/useAutoSave.ts +17 -53
  524. package/src/core/session/__tests__/backend.test.ts +236 -0
  525. package/src/core/session/__tests__/useNotebookReplica.hook.test.tsx +184 -0
  526. package/src/core/session/__tests__/useNotebookSession.hook.test.tsx +663 -0
  527. package/src/core/session/active-notebook.ts +22 -0
  528. package/src/core/session/backend.ts +123 -0
  529. package/src/core/session/embedded.ts +7 -0
  530. package/src/core/{websocket → session}/types.ts +2 -2
  531. package/src/core/session/useNotebookReplica.ts +74 -0
  532. package/src/core/{websocket → session}/useNotebookSession.tsx +77 -72
  533. package/src/core/state/__tests__/jotai.test.tsx +108 -0
  534. package/src/core/state/jotai.ts +1 -1
  535. package/src/core/static/__tests__/files.test.ts +38 -10
  536. package/src/core/static/files.ts +2 -0
  537. package/src/core/{websocket → transports}/__tests__/connection-state.test.ts +1 -13
  538. package/src/core/transports/__tests__/server.test.ts +408 -0
  539. package/src/core/transports/__tests__/static.test.ts +306 -0
  540. package/src/core/transports/__tests__/wasm.test.ts +166 -0
  541. package/src/core/{websocket → transports}/connection-state.ts +9 -16
  542. package/src/core/transports/server.ts +152 -0
  543. package/src/core/transports/static.ts +166 -0
  544. package/src/core/transports/wasm.ts +97 -0
  545. package/src/core/wasm/__tests__/bridge.test.ts +214 -50
  546. package/src/core/wasm/__tests__/worker.test.ts +187 -0
  547. package/src/core/wasm/bridge.ts +75 -69
  548. package/src/core/wasm/rpc.ts +15 -3
  549. package/src/core/wasm/store.ts +3 -3
  550. package/src/core/wasm/worker/bootstrap.ts +55 -51
  551. package/src/core/wasm/worker/getMarimoWheel.ts +1 -1
  552. package/src/core/wasm/worker/save-worker.ts +9 -10
  553. package/src/core/wasm/worker/types.ts +29 -18
  554. package/src/core/wasm/worker/worker.ts +88 -44
  555. package/src/css/globals.css +66 -22
  556. package/src/hooks/__tests__/useAsyncData.test.tsx +148 -0
  557. package/src/hooks/__tests__/useDebounce.test.tsx +51 -0
  558. package/src/hooks/__tests__/useDeepCompareMemoize.test.tsx +39 -0
  559. package/src/hooks/__tests__/useDelayElapsed.test.tsx +28 -0
  560. package/src/hooks/__tests__/useInternalStateWithSync.test.tsx +20 -0
  561. package/src/hooks/__tests__/useScript.test.tsx +77 -0
  562. package/src/hooks/__tests__/useStateForKey.test.tsx +257 -0
  563. package/src/hooks/useAsyncData.ts +3 -3
  564. package/src/hooks/useDataSourceDiscovery.ts +6 -4
  565. package/src/hooks/useDebounce.ts +6 -10
  566. package/src/hooks/useDeepCompareMemoize.ts +1 -1
  567. package/src/hooks/useDelayElapsed.ts +14 -10
  568. package/src/hooks/useElapsedTime.ts +3 -3
  569. package/src/hooks/useEventListener.ts +1 -2
  570. package/src/hooks/useInputHistory.ts +4 -7
  571. package/src/hooks/useInternalStateWithSync.ts +6 -6
  572. package/src/hooks/useResizeObserver.ts +4 -7
  573. package/src/hooks/useScript.ts +67 -70
  574. package/src/hooks/useStateForKey.ts +93 -0
  575. package/src/mount.tsx +20 -15
  576. package/src/plugins/__tests__/plugin-object-schemas.test.ts +104 -0
  577. package/src/plugins/core/registerReactComponent.tsx +1 -1
  578. package/src/plugins/impl/CodeEditorPlugin.tsx +1 -1
  579. package/src/plugins/impl/DataEditorPlugin.tsx +1 -1
  580. package/src/plugins/impl/DataTablePlugin.tsx +69 -37
  581. package/src/plugins/impl/DropdownPlugin.tsx +2 -6
  582. package/src/plugins/impl/FileBrowserPlugin.tsx +4 -16
  583. package/src/plugins/impl/FormPlugin.tsx +1 -1
  584. package/src/plugins/impl/RangeSliderPlugin.tsx +16 -2
  585. package/src/plugins/impl/RefreshPlugin.tsx +1 -0
  586. package/src/plugins/impl/SliderPlugin.tsx +6 -8
  587. package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +387 -1
  588. package/src/plugins/impl/__tests__/FileBrowserPlugin.test.tsx +45 -0
  589. package/src/plugins/impl/__tests__/RangeSliderPlugin.test.tsx +109 -0
  590. package/src/plugins/impl/__tests__/SliderPlugin.test.tsx +24 -3
  591. package/src/plugins/impl/anywidget/__tests__/registry.test.ts +153 -0
  592. package/src/plugins/impl/anywidget/__tests__/widget-binding.test.ts +241 -2
  593. package/src/plugins/impl/anywidget/model.ts +3 -1
  594. package/src/plugins/impl/anywidget/registry.ts +18 -14
  595. package/src/plugins/impl/anywidget/runtime.ts +21 -9
  596. package/src/plugins/impl/anywidget/widget-binding.ts +160 -82
  597. package/src/plugins/impl/chat/__tests__/chat-prompts.test.tsx +93 -0
  598. package/src/plugins/impl/chat/chat-ui.tsx +14 -11
  599. package/src/plugins/impl/code/any-language-editor.tsx +2 -2
  600. package/src/plugins/impl/data-editor/glide-data-editor.tsx +8 -5
  601. package/src/plugins/impl/data-editor/glide-utils.ts +3 -1
  602. package/src/plugins/impl/data-explorer/ConnectedDataExplorerComponent.tsx +1 -1
  603. package/src/plugins/impl/data-explorer/components/column-summary.tsx +4 -2
  604. package/src/plugins/impl/data-explorer/state/reducer.ts +1 -1
  605. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +1 -2
  606. package/src/plugins/impl/data-frames/__tests__/sidebar.test.tsx +160 -0
  607. package/src/plugins/impl/data-frames/forms/__tests__/__snapshots__/form.test.tsx.snap +66 -66
  608. package/src/plugins/impl/data-frames/panel.tsx +43 -16
  609. package/src/plugins/impl/mpl-interactive/MplInteractivePlugin.tsx +5 -3
  610. package/src/plugins/impl/panel/PanelPlugin.tsx +16 -17
  611. package/src/plugins/impl/panel/__tests__/utils.test.ts +39 -1
  612. package/src/plugins/impl/panel/utils.ts +17 -0
  613. package/src/plugins/impl/plotly/PlotlyPlugin.tsx +2 -5
  614. package/src/plugins/impl/plotly/selection.ts +25 -19
  615. package/src/plugins/impl/vega/VegaPlugin.tsx +2 -3
  616. package/src/plugins/impl/vega/make-selectable.ts +4 -7
  617. package/src/plugins/layout/RoutesPlugin.tsx +1 -1
  618. package/src/stories/__tests__/editor-story.test.tsx +33 -0
  619. package/src/stories/button.stories.tsx +1 -0
  620. package/src/stories/cell.stories.tsx +2 -5
  621. package/src/stories/data-table.stories.tsx +31 -0
  622. package/src/stories/editor.stories.tsx +24 -17
  623. package/src/stories/form-wrapper.stories.tsx +2 -2
  624. package/src/stories/layout/vertical/one-column.stories.tsx +2 -5
  625. package/src/stories/runtime-story.tsx +23 -17
  626. package/src/stories/select.stories.tsx +2 -2
  627. package/src/stories/switchable-multi-select.stories.tsx +1 -1
  628. package/src/utils/__tests__/arrays.test.ts +35 -0
  629. package/src/utils/__tests__/batch-requests.test.ts +3 -3
  630. package/src/utils/__tests__/{createReducer.test.ts → createReducer.test.tsx} +29 -0
  631. package/src/utils/__tests__/numbers.test.ts +105 -1
  632. package/src/utils/__tests__/objects.test.ts +21 -0
  633. package/src/utils/arrays.ts +11 -2
  634. package/src/utils/blob.ts +1 -1
  635. package/src/utils/createReducer.ts +53 -26
  636. package/src/utils/maps.ts +0 -3
  637. package/src/utils/numbers.ts +79 -18
  638. package/src/utils/objects.ts +4 -9
  639. package/src/utils/once.ts +19 -19
  640. package/src/utils/tracer.ts +9 -5
  641. package/src/utils/zod-utils.ts +1 -3
  642. package/dist/any-language-editor-DZ_YTVus.js +0 -76
  643. package/dist/assets/__vite-browser-external-BXYkiFsk.js +0 -1
  644. package/dist/assets/worker-HPY9fbhz.js +0 -114
  645. package/dist/code-visibility-DkCqn-PO.js +0 -138
  646. package/dist/feedback-button-wnAMXOGA.js +0 -379
  647. package/dist/mermaid-HWGCJPDP-ByCsZnYF.js +0 -2
  648. package/dist/precisionRound-DMIVQrt2.js +0 -97
  649. package/src/components/editor/navigation/__tests__/state.test.ts +0 -81
  650. package/src/components/editor/navigation/state.ts +0 -65
  651. package/src/core/ai/tools/__tests__/run-cells-tool.test.ts +0 -656
  652. package/src/core/ai/tools/run-cells-tool.ts +0 -303
  653. package/src/core/attachments/state.ts +0 -21
  654. package/src/core/cells/__tests__/apply-transaction.test.ts +0 -991
  655. package/src/core/cells/__tests__/document-changes.test.ts +0 -1140
  656. package/src/core/cells/__tests__/document-roundtrip.test.ts +0 -392
  657. package/src/core/cells/document-changes.ts +0 -944
  658. package/src/core/host/AGENTS.md +0 -11
  659. package/src/core/host/__tests__/events.test.ts +0 -46
  660. package/src/core/host/__tests__/fixtures.ts +0 -39
  661. package/src/core/host/__tests__/notebook-client.test.ts +0 -303
  662. package/src/core/host/__tests__/protocol.test.ts +0 -214
  663. package/src/core/host/__tests__/stream.test.ts +0 -211
  664. package/src/core/host/connection.ts +0 -81
  665. package/src/core/host/events.ts +0 -60
  666. package/src/core/host/notebook-client.ts +0 -272
  667. package/src/core/host/protocol.ts +0 -1943
  668. package/src/core/host/resources/resource.ts +0 -59
  669. package/src/core/host/stream.ts +0 -213
  670. package/src/core/state/__tests__/jotai.test.ts +0 -25
  671. package/src/core/wasm/worker/message-buffer.ts +0 -33
  672. package/src/core/websocket/__tests__/createConnectionTransport.test.ts +0 -49
  673. package/src/core/websocket/__tests__/useNotebookClient.hook.test.tsx +0 -140
  674. package/src/core/websocket/__tests__/useNotebookSession.hook.test.tsx +0 -883
  675. package/src/core/websocket/transports/__tests__/basic.test.ts +0 -275
  676. package/src/core/websocket/transports/__tests__/sse.test.ts +0 -335
  677. package/src/core/websocket/transports/__tests__/transport.test.ts +0 -308
  678. package/src/core/websocket/transports/__tests__/ws.test.ts +0 -125
  679. package/src/core/websocket/transports/basic.ts +0 -102
  680. package/src/core/websocket/transports/create.ts +0 -31
  681. package/src/core/websocket/transports/sse.ts +0 -308
  682. package/src/core/websocket/transports/transport.ts +0 -50
  683. package/src/core/websocket/transports/ws.ts +0 -98
  684. package/src/core/websocket/useNotebookClient.ts +0 -80
  685. package/src/utils/__tests__/id-tree.test.ts +0 -2145
  686. package/src/utils/id-tree.tsx +0 -1134
  687. /package/src/{core/attachments/toast.ts → components/editor/agent-toast.ts} +0 -0
  688. /package/src/core/{websocket → session}/connection-utils.ts +0 -0
@@ -1,37 +1,37 @@
1
1
  import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
2
- import { g as t, h as n, m as r, p as i, r as a, u as o } from "./button-CvjkwdSk.js";
2
+ import { g as t, h as n, m as r, p as i, r as a, u as o } from "./button-BQRdqQi1.js";
3
3
  import { t as s } from "./react-sHtZdjeP.js";
4
4
  import { t as c } from "./compiler-runtime-CldRdSsv.js";
5
- import { c as l, h as u, l as d, p as f, s as p, u as m } from "./tooltip-BO1REbqs.js";
6
- import { t as h } from "./check-EDwSwP89.js";
5
+ import { c as l, f as u, l as d, m as f, s as p, u as m } from "./tooltip-s4zZxwKe.js";
6
+ import { t as h } from "./check-C9Mp9eCK.js";
7
7
  import { t as g } from "./react-dom-DUmH0GXv.js";
8
8
  import { t as _ } from "./jsx-runtime-3BD1kT0s.js";
9
- import { Ct as v, Q as y, St as b, X as x, Y as S, _t as C, bt as ee, ct as te, dt as w, ft as T, ht as E, lt as D, pt as O, vt as k, wt as A, xt as j, yt as ne } from "./use-restore-focus-BEM7sFWl.js";
10
- import { t as M } from "./invariant-DLmrl-hA.js";
11
- var N = u("chevron-down", [["path", {
9
+ import { $ as v, Ct as y, Dt as b, Et as x, Ot as S, Q as C, St as w, Tt as T, bt as E, dt as ee, ft as D, gt as te, ht as O, kt as k, mt as ne, tt as re, wt as ie } from "./use-restore-focus-BgDTd2tc.js";
10
+ import { t as A } from "./invariant-DLmrl-hA.js";
11
+ var j = f("chevron-down", [["path", {
12
12
  d: "m6 9 6 6 6-6",
13
13
  key: "qrunsl"
14
- }]]), P = u("chevron-up", [["path", {
14
+ }]]), M = f("chevron-up", [["path", {
15
15
  d: "m18 15-6-6-6 6",
16
16
  key: "153udz"
17
- }]]), F = u("x", [["path", {
17
+ }]]), N = f("x", [["path", {
18
18
  d: "M18 6 6 18",
19
19
  key: "1bl5f8"
20
20
  }], ["path", {
21
21
  d: "m6 6 12 12",
22
22
  key: "d8bk6v"
23
- }]]), I = /* @__PURE__ */ e(g(), 1), L = /* @__PURE__ */ e(s(), 1), R = _(), z = Object.defineProperty, B = (e, t) => z(e, "name", {
23
+ }]]), P = /* @__PURE__ */ e(g(), 1), F = /* @__PURE__ */ e(s(), 1), I = _(), L = Object.defineProperty, R = (e, t) => L(e, "name", {
24
24
  value: t,
25
25
  configurable: !0
26
26
  });
27
27
  // @__NO_SIDE_EFFECTS__
28
- function V(e) {
29
- let t = e + "CollectionProvider", [n, r] = v(t), [a, s] = n(t, {
28
+ function z(e) {
29
+ let t = e + "CollectionProvider", [n, r] = S(t), [a, s] = n(t, {
30
30
  collectionRef: { current: null },
31
31
  itemMap: /* @__PURE__ */ new Map()
32
- }), c = /* @__PURE__ */ B((e) => {
33
- let { scope: t, children: n } = e, r = L.useRef(null), i = L.useRef(/* @__PURE__ */ new Map()).current;
34
- return /* @__PURE__ */ (0, R.jsx)(a, {
32
+ }), c = /* @__PURE__ */ R((e) => {
33
+ let { scope: t, children: n } = e, r = F.useRef(null), i = F.useRef(/* @__PURE__ */ new Map()).current;
34
+ return /* @__PURE__ */ (0, I.jsx)(a, {
35
35
  scope: t,
36
36
  itemMap: i,
37
37
  collectionRef: r,
@@ -39,20 +39,20 @@ function V(e) {
39
39
  });
40
40
  }, "CollectionProvider");
41
41
  c.displayName = t;
42
- let l = e + "CollectionSlot", u = o(l), d = L.forwardRef((e, t) => {
42
+ let l = e + "CollectionSlot", u = o(l), d = F.forwardRef((e, t) => {
43
43
  let { scope: n, children: r } = e, a = s(l, n), o = i(t, a.collectionRef);
44
- return /* @__PURE__ */ (0, R.jsx)(u, {
44
+ return /* @__PURE__ */ (0, I.jsx)(u, {
45
45
  ref: o,
46
46
  children: r
47
47
  });
48
48
  });
49
49
  d.displayName = l;
50
- let f = e + "CollectionItemSlot", p = "data-radix-collection-item", m = o(f), h = L.forwardRef((e, t) => {
51
- let { scope: n, children: r, ...a } = e, o = L.useRef(null), c = i(t, o), l = s(f, n);
52
- return L.useEffect(() => (l.itemMap.set(o, {
50
+ let f = e + "CollectionItemSlot", p = "data-radix-collection-item", m = o(f), h = F.forwardRef((e, t) => {
51
+ let { scope: n, children: r, ...a } = e, o = F.useRef(null), c = i(t, o), l = s(f, n);
52
+ return F.useEffect(() => (l.itemMap.set(o, {
53
53
  ref: o,
54
54
  ...a
55
- }), () => void l.itemMap.delete(o))), /* @__PURE__ */ (0, R.jsx)(m, {
55
+ }), () => void l.itemMap.delete(o))), /* @__PURE__ */ (0, I.jsx)(m, {
56
56
  [p]: "",
57
57
  ref: c,
58
58
  children: r
@@ -61,14 +61,14 @@ function V(e) {
61
61
  h.displayName = f;
62
62
  function g(t) {
63
63
  let n = s(e + "CollectionConsumer", t);
64
- return L.useCallback(() => {
64
+ return F.useCallback(() => {
65
65
  let e = n.collectionRef.current;
66
66
  if (!e) return [];
67
67
  let t = Array.from(e.querySelectorAll(`[${p}]`));
68
68
  return Array.from(n.itemMap.values()).sort((e, n) => t.indexOf(e.ref.current) - t.indexOf(n.ref.current));
69
69
  }, [n.collectionRef, n.itemMap]);
70
70
  }
71
- return B(g, "useCollection"), [
71
+ return R(g, "useCollection"), [
72
72
  {
73
73
  Provider: c,
74
74
  Slot: d,
@@ -78,32 +78,26 @@ function V(e) {
78
78
  r
79
79
  ];
80
80
  }
81
- B(V, "createCollection");
82
- var re = /* @__PURE__ */ new WeakMap(), H = class e extends Map {
81
+ R(z, "createCollection");
82
+ var B = /* @__PURE__ */ new WeakMap(), V = class e extends Map {
83
83
  static {
84
- B(this, "OrderedDict");
84
+ R(this, "OrderedDict");
85
85
  }
86
86
  #e;
87
87
  constructor(e) {
88
- super(e), this.#e = [...super.keys()], re.set(this, !0);
88
+ super(e), this.#e = [...super.keys()], B.set(this, !0);
89
89
  }
90
90
  set(e, t) {
91
- return re.get(this) && (this.has(e) ? this.#e[this.#e.indexOf(e)] = e : this.#e.push(e)), super.set(e, t), this;
91
+ return B.get(this) && !this.has(e) && this.#e.push(e), super.set(e, t), this;
92
92
  }
93
93
  insert(e, t, n) {
94
- let r = this.has(t), i = this.#e.length, a = W(e), o = a >= 0 ? a : i + a, s = o < 0 || o >= i ? -1 : o;
95
- if (s === this.size || r && s === this.size - 1 || s === -1) return this.set(t, n), this;
96
- let c = this.size + +!r;
97
- a < 0 && o++;
98
- let l = [...this.#e], u, d = !1;
99
- for (let e = o; e < c; e++) if (o === e) {
100
- let i = l[e];
101
- l[e] === t && (i = l[e + 1]), r && this.delete(t), u = this.get(i), this.set(t, n);
102
- } else {
103
- !d && l[e - 1] === t && (d = !0);
104
- let n = l[d ? e : e - 1], r = u;
105
- u = this.get(n), this.delete(n), this.set(n, r);
106
- }
94
+ let r = this.has(t), i = r ? this.size : this.size + 1, a = U(e), o = a >= 0 ? Math.min(a, i - 1) : Math.max(i + a, 0);
95
+ if (r ? this.#e.indexOf(t) === o : o === this.size) return this.set(t, n), this;
96
+ let s = this.#e.filter((e) => e !== t);
97
+ s.splice(o, 0, t);
98
+ let c = s.map((e) => [e, e === t ? n : this.get(e)]);
99
+ this.clear();
100
+ for (let [e, t] of c) this.set(e, t);
107
101
  return this;
108
102
  }
109
103
  with(t, n, r) {
@@ -116,7 +110,9 @@ var re = /* @__PURE__ */ new WeakMap(), H = class e extends Map {
116
110
  }
117
111
  setBefore(e, t, n) {
118
112
  let r = this.#e.indexOf(e);
119
- return r === -1 ? this : this.insert(r, t, n);
113
+ if (r === -1) return this;
114
+ let i = this.#e.indexOf(t), a = i !== -1 && i < r ? r - 1 : r;
115
+ return this.insert(a, t, n);
120
116
  }
121
117
  after(e) {
122
118
  let t = this.#e.indexOf(e);
@@ -124,7 +120,9 @@ var re = /* @__PURE__ */ new WeakMap(), H = class e extends Map {
124
120
  }
125
121
  setAfter(e, t, n) {
126
122
  let r = this.#e.indexOf(e);
127
- return r === -1 ? this : this.insert(r + 1, t, n);
123
+ if (r === -1) return this;
124
+ let i = this.#e.indexOf(t), a = i !== -1 && i <= r ? r : r + 1;
125
+ return this.insert(a, t, n);
128
126
  }
129
127
  first() {
130
128
  return this.entryAt(0);
@@ -144,18 +142,18 @@ var re = /* @__PURE__ */ new WeakMap(), H = class e extends Map {
144
142
  return t !== void 0 && this.delete(t);
145
143
  }
146
144
  at(e) {
147
- let t = U(this.#e, e);
145
+ let t = H(this.#e, e);
148
146
  if (t !== void 0) return this.get(t);
149
147
  }
150
148
  entryAt(e) {
151
- let t = U(this.#e, e);
149
+ let t = H(this.#e, e);
152
150
  if (t !== void 0) return [t, this.get(t)];
153
151
  }
154
152
  indexOf(e) {
155
153
  return this.#e.indexOf(e);
156
154
  }
157
155
  keyAt(e) {
158
- return U(this.#e, e);
156
+ return H(this.#e, e);
159
157
  }
160
158
  from(e, t) {
161
159
  let n = this.indexOf(e);
@@ -211,29 +209,41 @@ var re = /* @__PURE__ */ new WeakMap(), H = class e extends Map {
211
209
  return new e(r);
212
210
  }
213
211
  reduce(...e) {
214
- let [t, n] = e, r = 0, i = n ?? this.at(0);
215
- for (let n of this) i = r === 0 && e.length === 1 ? n : Reflect.apply(t, this, [
212
+ let [t, n] = e, r = e.length > 1;
213
+ if (!r && this.size === 0) throw TypeError("Reduce of empty OrderedDict with no initial value");
214
+ let i = 0, a = n;
215
+ for (let e of this) a = i === 0 && !r ? e : Reflect.apply(t, this, [
216
+ a,
217
+ e,
216
218
  i,
217
- n,
218
- r,
219
219
  this
220
- ]), r++;
221
- return i;
220
+ ]), i++;
221
+ return a;
222
222
  }
223
223
  reduceRight(...e) {
224
- let [t, n] = e, r = n ?? this.at(-1);
225
- for (let n = this.size - 1; n >= 0; n--) {
226
- let i = this.at(n);
227
- r = n === this.size - 1 && e.length === 1 ? i : Reflect.apply(t, this, [
228
- r,
224
+ let [t, n] = e, r = e.length > 1;
225
+ if (!r && this.size === 0) throw TypeError("Reduce of empty OrderedDict with no initial value");
226
+ let i = n;
227
+ for (let e = this.size - 1; e >= 0; e--) {
228
+ let n = this.entryAt(e);
229
+ i = e === this.size - 1 && !r ? n : Reflect.apply(t, this, [
229
230
  i,
230
231
  n,
232
+ e,
231
233
  this
232
234
  ]);
233
235
  }
234
- return r;
236
+ return i;
237
+ }
238
+ sort(e) {
239
+ if (typeof e != "function") throw TypeError("OrderedDict.sort requires a compare function");
240
+ let t = [...this.entries()].sort(e);
241
+ this.clear();
242
+ for (let [e, n] of t) this.set(e, n);
243
+ return this;
235
244
  }
236
245
  toSorted(t) {
246
+ if (typeof t != "function") throw TypeError("OrderedDict.toSorted requires a compare function");
237
247
  let n = [...this.entries()].sort(t);
238
248
  return new e(n);
239
249
  }
@@ -250,13 +260,8 @@ var re = /* @__PURE__ */ new WeakMap(), H = class e extends Map {
250
260
  return n.splice(...t), new e(n);
251
261
  }
252
262
  slice(t, n) {
253
- let r = new e(), i = this.size - 1;
254
- if (t === void 0) return r;
255
- t < 0 && (t += this.size), n !== void 0 && n > 0 && (i = n - 1);
256
- for (let e = t; e <= i; e++) {
257
- let t = this.keyAt(e), n = this.get(t);
258
- r.set(t, n);
259
- }
263
+ let r = new e();
264
+ for (let e of this.#e.slice(t, n)) r.set(e, this.get(e));
260
265
  return r;
261
266
  }
262
267
  every(e, t) {
@@ -284,118 +289,153 @@ var re = /* @__PURE__ */ new WeakMap(), H = class e extends Map {
284
289
  return !1;
285
290
  }
286
291
  };
287
- function U(e, t) {
292
+ function H(e, t) {
288
293
  if ("at" in Array.prototype) return Array.prototype.at.call(e, t);
289
- let n = ie(e, t);
294
+ let n = ae(e, t);
290
295
  return n === -1 ? void 0 : e[n];
291
296
  }
292
- B(U, "at");
293
- function ie(e, t) {
294
- let n = e.length, r = W(t), i = r >= 0 ? r : n + r;
297
+ R(H, "at");
298
+ function ae(e, t) {
299
+ let n = e.length, r = U(t), i = r >= 0 ? r : n + r;
295
300
  return i < 0 || i >= n ? -1 : i;
296
301
  }
297
- B(ie, "toSafeIndex");
298
- function W(e) {
302
+ R(ae, "toSafeIndex");
303
+ function U(e) {
299
304
  return e !== e || e === 0 ? 0 : Math.trunc(e);
300
305
  }
301
- B(W, "toSafeInteger");
306
+ R(U, "toSafeInteger");
302
307
  // @__NO_SIDE_EFFECTS__
303
- function ae(e) {
304
- let t = e + "CollectionProvider", [n, r] = v(t), [a, s] = n(t, {
305
- collectionElement: null,
306
- collectionRef: { current: null },
307
- collectionRefObject: { current: null },
308
- itemMap: new H(),
309
- setItemMap: /* @__PURE__ */ B(() => void 0, "setItemMap")
310
- }), c = /* @__PURE__ */ B(({ state: e, ...t }) => e ? /* @__PURE__ */ (0, R.jsx)(u, {
308
+ function oe(e) {
309
+ let t = e + "CollectionProvider", [n, r] = S(t), [a, s] = n(t);
310
+ a.displayName = e + "CollectionStableContextProvider";
311
+ let [c, l] = n(t);
312
+ c.displayName = e + "CollectionStatefulContextProvider";
313
+ let u = /* @__PURE__ */ R(({ state: e, ...t }) => e ? /* @__PURE__ */ (0, I.jsx)(f, {
311
314
  ...t,
312
315
  state: e
313
- }) : /* @__PURE__ */ (0, R.jsx)(l, { ...t }), "CollectionProvider");
314
- c.displayName = t;
315
- let l = /* @__PURE__ */ B((e) => {
316
- let t = _();
317
- return /* @__PURE__ */ (0, R.jsx)(u, {
316
+ }) : /* @__PURE__ */ (0, I.jsx)(d, { ...t }), "CollectionProvider");
317
+ u.displayName = t;
318
+ let d = /* @__PURE__ */ R((e) => {
319
+ let t = y();
320
+ return /* @__PURE__ */ (0, I.jsx)(f, {
318
321
  ...e,
319
322
  state: t
320
323
  });
321
324
  }, "CollectionInit");
322
- l.displayName = t + "Init";
323
- let u = /* @__PURE__ */ B((e) => {
324
- let { scope: t, children: n, state: r } = e, o = L.useRef(null), [s, c] = L.useState(null), l = i(o, c), [u, d] = r;
325
- return L.useEffect(() => {
325
+ d.displayName = e + "CollectionInit";
326
+ let f = /* @__PURE__ */ R((e) => {
327
+ let { scope: t, children: n, state: r } = e, o = F.useRef(null), [s, l] = F.useState(null), u = i(o, l), [d, f] = r, p = F.useRef(new V()), m = F.useCallback(() => {
328
+ let e = p.current;
329
+ return ce(e) || e.sort(le), e;
330
+ }, []);
331
+ return F.useEffect(() => {
326
332
  if (!s) return;
327
- let e = le(() => {});
333
+ let e = ue(() => {
334
+ f((e) => {
335
+ let t = e.toSorted(le);
336
+ return t.some(([t], n) => e.keyAt(n) !== t) ? t : e;
337
+ });
338
+ });
328
339
  return e.observe(s, {
329
340
  childList: !0,
330
341
  subtree: !0
331
342
  }), () => {
332
343
  e.disconnect();
333
344
  };
334
- }, [s]), /* @__PURE__ */ (0, R.jsx)(a, {
345
+ }, [s, f]), /* @__PURE__ */ (0, I.jsx)(a, {
335
346
  scope: t,
336
- itemMap: u,
337
- setItemMap: d,
338
- collectionRef: l,
339
- collectionRefObject: o,
340
- collectionElement: s,
341
- children: n
347
+ collectionElementRef: u,
348
+ collectionElementRefObject: o,
349
+ getCollection: m,
350
+ setCollection: f,
351
+ registryRef: p,
352
+ children: /* @__PURE__ */ (0, I.jsx)(c, {
353
+ scope: t,
354
+ collectionElement: s,
355
+ collection: d,
356
+ children: n
357
+ })
342
358
  });
343
359
  }, "CollectionProviderImpl");
344
- u.displayName = t + "Impl";
345
- let d = e + "CollectionSlot", f = o(d), p = L.forwardRef((e, t) => {
346
- let { scope: n, children: r } = e, a = s(d, n), o = i(t, a.collectionRef);
347
- return /* @__PURE__ */ (0, R.jsx)(f, {
360
+ f.displayName = e + "CollectionProviderImpl";
361
+ let p = e + "CollectionSlot", m = o(p), h = F.forwardRef((e, t) => {
362
+ let { scope: n, children: r } = e, a = s(p, n), o = i(t, a.collectionElementRef);
363
+ return /* @__PURE__ */ (0, I.jsx)(m, {
348
364
  ref: o,
349
365
  children: r
350
366
  });
351
367
  });
352
- p.displayName = d;
353
- let m = e + "CollectionItemSlot", h = o(m), g = L.forwardRef((e, t) => {
354
- let { scope: n, children: r, ...a } = e, o = L.useRef(null), [c, l] = L.useState(null), u = i(t, o, l), { setItemMap: d } = s(m, n), f = L.useRef(a);
355
- oe(f.current, a) || (f.current = a);
356
- let p = f.current;
357
- return L.useEffect(() => {
358
- let e = p;
359
- return d((t) => c ? t.has(c) ? t.set(c, {
360
- ...e,
361
- element: c
362
- }).toSorted(ce) : (t.set(c, {
363
- ...e,
364
- element: c
365
- }), t.toSorted(ce)) : t), () => {
366
- d((e) => !c || !e.has(c) ? e : (e.delete(c), new H(e)));
367
- };
368
- }, [
369
- c,
370
- p,
371
- d
372
- ]), /* @__PURE__ */ (0, R.jsx)(h, {
368
+ h.displayName = p;
369
+ let g = e + "CollectionItemSlot", _ = o(g), v = F.forwardRef((e, t) => {
370
+ let { scope: n, children: r, ...a } = e, o = F.useRef(null), { setCollection: c, registryRef: l } = s(g, n), u = F.useRef(a);
371
+ se(u.current, a) || (u.current = a);
372
+ let d = u.current, f = F.useCallback((e) => {
373
+ let t = l.current;
374
+ e ? t.set(e, {
375
+ ...u.current,
376
+ element: e
377
+ }) : o.current && t.delete(o.current);
378
+ }, [l]), p = i(t, f, o);
379
+ b(() => {
380
+ let e = o.current, t = l.current;
381
+ e && t.has(e) && t.set(e, {
382
+ ...d,
383
+ element: e
384
+ });
385
+ }, [d, l]);
386
+ let m = F.useRef(null);
387
+ return F.useEffect(() => {
388
+ let e = o.current, t = m.current;
389
+ (t?.element ?? null) === e && (!e || t?.itemData === d) || (m.current = e ? {
390
+ element: e,
391
+ itemData: d
392
+ } : null, c((n) => {
393
+ let r = new V(n);
394
+ return t && t.element !== e && r.delete(t.element), e && r.set(e, {
395
+ ...d,
396
+ element: e
397
+ }), r.sort(le);
398
+ }));
399
+ }), F.useEffect(() => () => {
400
+ let e = m.current;
401
+ m.current = null, e && c((t) => {
402
+ if (!t.has(e.element)) return t;
403
+ let n = new V(t);
404
+ return n.delete(e.element), n;
405
+ });
406
+ }, [c]), /* @__PURE__ */ (0, I.jsx)(_, {
373
407
  "data-radix-collection-item": "",
374
- ref: u,
408
+ ref: p,
375
409
  children: r
376
410
  });
377
411
  });
378
- g.displayName = m;
379
- function _() {
380
- return L.useState(new H());
412
+ v.displayName = g;
413
+ function y() {
414
+ return F.useState(new V());
415
+ }
416
+ R(y, "useInitCollection");
417
+ function x(t) {
418
+ let { collection: n } = l(e + "CollectionConsumer", t);
419
+ return n;
381
420
  }
382
- B(_, "useInitCollection");
383
- function y(t) {
384
- let { itemMap: n } = s(e + "CollectionConsumer", t);
421
+ R(x, "useCollection");
422
+ function C(t) {
423
+ let { getCollection: n } = s(e + "CollectionConsumer", t);
385
424
  return n;
386
425
  }
387
- return B(y, "useCollection"), [{
388
- Provider: c,
389
- Slot: p,
390
- ItemSlot: g
426
+ return R(C, "useGetCollection"), [{
427
+ Provider: u,
428
+ Slot: h,
429
+ ItemSlot: v
391
430
  }, {
392
431
  createCollectionScope: r,
393
- useCollection: y,
394
- useInitCollection: _
432
+ useCollection: x,
433
+ useGetCollection: C,
434
+ useInitCollection: y
395
435
  }];
396
436
  }
397
- B(ae, "createCollection");
398
- function oe(e, t) {
437
+ R(oe, "createCollection");
438
+ function se(e, t) {
399
439
  if (e === t) return !0;
400
440
  if (typeof e != "object" || typeof t != "object" || e == null || t == null) return !1;
401
441
  let n = Object.keys(e), r = Object.keys(t);
@@ -403,16 +443,28 @@ function oe(e, t) {
403
443
  for (let r of n) if (!Object.prototype.hasOwnProperty.call(t, r) || e[r] !== t[r]) return !1;
404
444
  return !0;
405
445
  }
406
- B(oe, "shallowEqual");
407
- function se(e, t) {
446
+ R(se, "shallowEqual");
447
+ function W(e, t) {
408
448
  return !!(t.compareDocumentPosition(e) & Node.DOCUMENT_POSITION_PRECEDING);
409
449
  }
410
- B(se, "isElementPreceding");
411
- function ce(e, t) {
412
- return !e[1].element || !t[1].element ? 0 : se(e[1].element, t[1].element) ? -1 : 1;
450
+ R(W, "isElementPreceding");
451
+ function ce(e) {
452
+ let t;
453
+ for (let n of e.keys()) {
454
+ if (t) {
455
+ let e = t.compareDocumentPosition(n);
456
+ if (!(e & Node.DOCUMENT_POSITION_DISCONNECTED) && e & Node.DOCUMENT_POSITION_PRECEDING) return !1;
457
+ }
458
+ t = n;
459
+ }
460
+ return !0;
461
+ }
462
+ R(ce, "isInDocumentOrder");
463
+ function le(e, t) {
464
+ return !e[1].element || !t[1].element ? 0 : W(e[1].element, t[1].element) ? -1 : 1;
413
465
  }
414
- B(ce, "sortByDocumentPosition");
415
- function le(e) {
466
+ R(le, "sortByDocumentPosition");
467
+ function ue(e) {
416
468
  return new MutationObserver((t) => {
417
469
  for (let n of t) if (n.type === "childList") {
418
470
  e();
@@ -420,145 +472,148 @@ function le(e) {
420
472
  }
421
473
  });
422
474
  }
423
- B(le, "getChildListObserver");
424
- //#endregion
425
- //#region ../node_modules/.pnpm/@radix-ui+react-direction@1.1.4_@types+react@19.3.0_react@19.3.0/node_modules/@radix-ui/react-direction/dist/index.mjs
426
- var ue = Object.defineProperty, de = (e, t) => ue(e, "name", {
427
- value: t,
428
- configurable: !0
429
- }), fe = L.createContext(void 0);
430
- function pe(e) {
431
- let t = L.useContext(fe);
432
- return e || t || "ltr";
433
- }
434
- de(pe, "useDirection");
475
+ R(ue, "getChildListObserver");
435
476
  //#endregion
436
- //#region ../node_modules/.pnpm/@radix-ui+react-use-previous@1.1.4_@types+react@19.3.0_react@19.3.0/node_modules/@radix-ui/react-use-previous/dist/index.mjs
437
- var me = Object.defineProperty, he = (e, t) => me(e, "name", {
477
+ //#region ../node_modules/.pnpm/@radix-ui+react-direction@1.2.0_@types+react@19.3.0_react@19.3.0/node_modules/@radix-ui/react-direction/dist/index.mjs
478
+ var de = Object.defineProperty, fe = (e, t) => de(e, "name", {
438
479
  value: t,
439
480
  configurable: !0
440
- });
441
- function ge(e) {
442
- let t = L.useRef({
443
- value: e,
444
- previous: e
445
- });
446
- return L.useMemo(() => (t.current.value !== e && (t.current.previous = t.current.value, t.current.value = e), t.current.previous), [e]);
481
+ }), pe = {
482
+ LTR: "ltr",
483
+ RTL: "rtl"
484
+ }, me = F.createContext(void 0);
485
+ function he(e) {
486
+ let t = F.useContext(me);
487
+ return e || t || pe.LTR;
447
488
  }
448
- he(ge, "usePrevious");
489
+ fe(he, "useDirection");
449
490
  //#endregion
450
491
  //#region ../node_modules/.pnpm/@radix-ui+number@1.1.3/node_modules/@radix-ui/number/dist/index.mjs
451
- var _e = Object.defineProperty, ve = (e, t) => _e(e, "name", {
492
+ var ge = Object.defineProperty, _e = (e, t) => ge(e, "name", {
452
493
  value: t,
453
494
  configurable: !0
454
495
  });
455
- function ye(e, [t, n]) {
496
+ function ve(e, [t, n]) {
456
497
  return Math.min(n, Math.max(t, e));
457
498
  }
458
- ve(ye, "clamp");
499
+ _e(ve, "clamp");
459
500
  //#endregion
460
- //#region ../node_modules/.pnpm/@radix-ui+react-select@2.3.7_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react@_c077d25a874f27141804d1923df5095a/node_modules/@radix-ui/react-select/dist/index.mjs
461
- var be = Object.defineProperty, G = (e, t) => be(e, "name", {
501
+ //#region ../node_modules/.pnpm/@radix-ui+react-select@2.4.1_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react@_41875abfe3e9c9a7ec650dda663f0eb9/node_modules/@radix-ui/react-select/dist/index.mjs
502
+ var ye = Object.defineProperty, G = (e, t) => ye(e, "name", {
462
503
  value: t,
463
504
  configurable: !0
464
- }), xe = [
505
+ }), be = {
506
+ ItemAligned: "item-aligned",
507
+ Popper: "popper"
508
+ }, xe = {
509
+ LTR: "ltr",
510
+ RTL: "rtl"
511
+ }, Se = [
465
512
  " ",
466
513
  "Enter",
467
514
  "ArrowUp",
468
515
  "ArrowDown"
469
- ], Se = [" ", "Enter"], K = "Select", [Ce, we, Te] = /* @__PURE__ */ V(K), [q, Ee] = v(K, [Te, m]), De = m(), [Oe, J] = q(K), [ke, Ae] = q(K);
470
- function je(e) {
471
- let { __scopeSelect: t, children: n, open: r, defaultOpen: i, onOpenChange: a, value: o, defaultValue: s, onValueChange: c, dir: l, name: u, autoComplete: f, disabled: p, required: m, form: h, internal_do_not_use_render: g } = e, _ = De(t), [v, y] = L.useState(null), [b, x] = L.useState(null), [S, C] = L.useState(!1), te = pe(l), [w, T] = ee({
516
+ ], Ce = [" ", "Enter"], K = "Select", [we, Te, Ee] = /* @__PURE__ */ z(K), [q, De] = S(K, [Ee, m]), Oe = m(), [ke, J] = q(K), [Ae, je] = q(K);
517
+ function Me(e) {
518
+ let { __scopeSelect: t, children: n, open: r, defaultOpen: i, onOpenChange: a, value: o, defaultValue: s, onValueChange: c, dir: l, name: u, autoComplete: d, disabled: f, required: m, form: h, internal_do_not_use_render: g } = e, _ = Oe(t), [v, b] = F.useState(null), [x, S] = F.useState(null), [C, w] = F.useState(!1), E = he(l), [ee, D] = T({
472
519
  prop: r,
473
520
  defaultProp: i ?? !1,
474
521
  onChange: a,
475
522
  caller: K
476
- }), [E, D] = ee({
523
+ }), [te, O] = T({
477
524
  prop: o,
478
525
  defaultProp: s,
479
526
  onChange: c,
480
527
  caller: K
481
- }), O = L.useRef(null), A = L.useRef(E);
482
- L.useEffect(() => {
528
+ }), k = F.useRef(null), ne = F.useRef(!1), [re, ie] = F.useState(null), A = /* @__PURE__ */ G((e) => {
529
+ ie({
530
+ value: e,
531
+ hasConsumerStoppedPropagation: ne.current
532
+ }), O(e);
533
+ }, "handleUserSelect"), j = F.useRef(te);
534
+ F.useEffect(() => {
483
535
  let e = h ? v?.ownerDocument.getElementById(h) : v?.form;
484
536
  if (e instanceof HTMLFormElement) {
485
- let t = /* @__PURE__ */ G(() => D(A.current), "reset");
537
+ let t = /* @__PURE__ */ G(() => O(j.current), "reset");
486
538
  return e.addEventListener("reset", t), () => e.removeEventListener("reset", t);
487
539
  }
488
540
  }, [
489
541
  h,
490
542
  v,
491
- D
543
+ O
492
544
  ]);
493
- let j = !v || !!h || !!v.closest("form"), [ne, M] = L.useState(/* @__PURE__ */ new Set()), N = k(), P = Array.from(ne).map((e) => e.props.value).join(";"), F = L.useCallback((e) => {
494
- M((t) => new Set(t).add(e));
495
- }, []), I = L.useCallback((e) => {
496
- M((t) => {
545
+ let M = !v || !!h || !!v.closest("form"), [N, P] = F.useState(/* @__PURE__ */ new Set()), L = y(), R = Array.from(N).map((e) => e.props.value).join(";"), z = F.useCallback((e) => {
546
+ P((t) => new Set(t).add(e));
547
+ }, []), B = F.useCallback((e) => {
548
+ P((t) => {
497
549
  let n = new Set(t);
498
550
  return n.delete(e), n;
499
551
  });
500
- }, []), z = {
552
+ }, []), V = {
501
553
  required: m,
502
554
  trigger: v,
503
- onTriggerChange: y,
504
- valueNode: b,
505
- onValueNodeChange: x,
506
- valueNodeHasChildren: S,
507
- onValueNodeHasChildrenChange: C,
508
- contentId: N,
509
- value: E,
510
- onValueChange: D,
511
- open: w,
512
- onOpenChange: T,
513
- dir: te,
514
- triggerPointerDownPosRef: O,
515
- disabled: p,
555
+ onTriggerChange: b,
556
+ valueNode: x,
557
+ onValueNodeChange: S,
558
+ valueNodeHasChildren: C,
559
+ onValueNodeHasChildrenChange: w,
560
+ contentId: L,
561
+ value: te,
562
+ onValueChange: O,
563
+ hasConsumerStoppedPropagationRef: ne,
564
+ userSelection: re,
565
+ onUserSelect: A,
566
+ open: ee,
567
+ onOpenChange: D,
568
+ dir: E,
569
+ triggerPointerDownPosRef: k,
570
+ disabled: f,
516
571
  name: u,
517
- autoComplete: f,
572
+ autoComplete: d,
518
573
  form: h,
519
- nativeOptions: ne,
520
- nativeSelectKey: P,
521
- isFormControl: j
574
+ nativeOptions: N,
575
+ nativeSelectKey: R,
576
+ isFormControl: M
522
577
  };
523
- return /* @__PURE__ */ (0, R.jsx)(d, {
578
+ return /* @__PURE__ */ (0, I.jsx)(p, {
524
579
  ..._,
525
- children: /* @__PURE__ */ (0, R.jsx)(Oe, {
580
+ children: /* @__PURE__ */ (0, I.jsx)(ke, {
526
581
  scope: t,
527
- ...z,
528
- children: /* @__PURE__ */ (0, R.jsx)(Ce.Provider, {
582
+ ...V,
583
+ children: /* @__PURE__ */ (0, I.jsx)(we.Provider, {
529
584
  scope: t,
530
- children: /* @__PURE__ */ (0, R.jsx)(ke, {
585
+ children: /* @__PURE__ */ (0, I.jsx)(Ae, {
531
586
  scope: t,
532
- onNativeOptionAdd: F,
533
- onNativeOptionRemove: I,
534
- children: yt(g) ? g(z) : n
587
+ onNativeOptionAdd: z,
588
+ onNativeOptionRemove: B,
589
+ children: bt(g) ? g(V) : n
535
590
  })
536
591
  })
537
592
  })
538
593
  });
539
594
  }
540
- G(je, "SelectProvider");
541
- var Me = /* @__PURE__ */ G((e) => {
595
+ G(Me, "SelectProvider");
596
+ var Ne = /* @__PURE__ */ G((e) => {
542
597
  let { __scopeSelect: t, children: n, ...r } = e;
543
- return /* @__PURE__ */ (0, R.jsx)(je, {
598
+ return /* @__PURE__ */ (0, I.jsx)(Me, {
544
599
  __scopeSelect: t,
545
600
  ...r,
546
- internal_do_not_use_render: ({ isFormControl: e }) => /* @__PURE__ */ (0, R.jsxs)(R.Fragment, { children: [n, e ? /* @__PURE__ */ (0, R.jsx)(vt, { __scopeSelect: t }) : null] })
601
+ internal_do_not_use_render: ({ isFormControl: e }) => /* @__PURE__ */ (0, I.jsxs)(I.Fragment, { children: [n, e ? /* @__PURE__ */ (0, I.jsx)(yt, { __scopeSelect: t }) : null] })
547
602
  });
548
- }, "Select"), Ne = "SelectTrigger", Pe = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function(e, t) {
549
- let { __scopeSelect: n, disabled: r = !1, ...a } = e, o = De(n), s = J(Ne, n), c = s.disabled || r, l = i(t, s.onTriggerChange), u = we(n), d = L.useRef("touch"), [f, m, h] = bt((e) => {
550
- let t = u().filter((e) => !e.disabled), n = xt(t, e, t.find((e) => e.value === s.value));
551
- n !== void 0 && s.onValueChange(n.value);
603
+ }, "Select"), Pe = "SelectTrigger", Fe = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function(e, t) {
604
+ let { __scopeSelect: n, disabled: r = !1, ...a } = e, o = Oe(n), s = J(Pe, n), c = s.disabled || r, u = i(t, s.onTriggerChange), d = Te(n), f = F.useRef("touch"), [p, m, h] = xt((e) => {
605
+ let t = d().filter((e) => !e.disabled), n = St(t, e, t.find((e) => e.value === s.value));
606
+ n !== void 0 && s.onUserSelect(n.value);
552
607
  }), g = /* @__PURE__ */ G((e) => {
553
608
  c || (s.onOpenChange(!0), h()), e && (s.triggerPointerDownPosRef.current = {
554
609
  x: Math.round(e.pageX),
555
610
  y: Math.round(e.pageY)
556
611
  });
557
612
  }, "handleOpen");
558
- return /* @__PURE__ */ (0, R.jsx)(p, {
613
+ return /* @__PURE__ */ (0, I.jsx)(l, {
559
614
  asChild: !0,
560
615
  ...o,
561
- children: /* @__PURE__ */ (0, R.jsx)(A.button, {
616
+ children: /* @__PURE__ */ (0, I.jsx)(k.button, {
562
617
  type: "button",
563
618
  role: "combobox",
564
619
  "aria-controls": s.open ? s.contentId : void 0,
@@ -571,97 +626,97 @@ var Me = /* @__PURE__ */ G((e) => {
571
626
  "data-disabled": c ? "" : void 0,
572
627
  "data-placeholder": Q(s.value) ? "" : void 0,
573
628
  ...a,
574
- ref: l,
575
- onClick: b(a.onClick, (e) => {
576
- e.currentTarget.focus(), d.current !== "mouse" && g(e);
629
+ ref: u,
630
+ onClick: x(a.onClick, (e) => {
631
+ e.currentTarget.focus(), f.current !== "mouse" && g(e);
577
632
  }),
578
- onPointerDown: b(a.onPointerDown, (e) => {
579
- d.current = e.pointerType;
633
+ onPointerDown: x(a.onPointerDown, (e) => {
634
+ f.current = e.pointerType;
580
635
  let t = e.target;
581
636
  t.hasPointerCapture(e.pointerId) && t.releasePointerCapture(e.pointerId), e.button === 0 && e.ctrlKey === !1 && e.pointerType === "mouse" && (g(e), e.preventDefault());
582
637
  }),
583
- onKeyDown: b(a.onKeyDown, (e) => {
584
- let t = f.current !== "";
585
- !(e.ctrlKey || e.altKey || e.metaKey) && e.key.length === 1 && m(e.key), !(t && e.key === " ") && xe.includes(e.key) && (g(), e.preventDefault());
638
+ onKeyDown: x(a.onKeyDown, (e) => {
639
+ let t = p.current !== "";
640
+ !(e.ctrlKey || e.altKey || e.metaKey) && e.key.length === 1 && (s.hasConsumerStoppedPropagationRef.current = e.isPropagationStopped(), m(e.key)), !(t && e.key === " ") && Se.includes(e.key) && (g(), e.preventDefault());
586
641
  })
587
642
  })
588
643
  });
589
- }, "SelectTrigger")), Fe = "SelectValue", Ie = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function(e, t) {
590
- let { __scopeSelect: n, className: r, style: a, children: o, placeholder: s = "", ...c } = e, l = J(Fe, n), { onValueNodeHasChildrenChange: u } = l, d = o !== void 0, f = i(t, l.onValueNodeChange);
591
- j(() => {
644
+ }, "SelectTrigger")), Ie = "SelectValue", Le = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function(e, t) {
645
+ let { __scopeSelect: n, className: r, style: a, children: o, placeholder: s = "", ...c } = e, l = J(Ie, n), { onValueNodeHasChildrenChange: u } = l, d = o !== void 0, f = i(t, l.onValueNodeChange);
646
+ b(() => {
592
647
  u(d);
593
648
  }, [u, d]);
594
649
  let p = Q(l.value);
595
- return /* @__PURE__ */ (0, R.jsx)(A.span, {
650
+ return /* @__PURE__ */ (0, I.jsx)(k.span, {
596
651
  ...c,
597
652
  asChild: !p && c.asChild,
598
653
  ref: f,
599
654
  style: { pointerEvents: "none" },
600
- children: /* @__PURE__ */ (0, R.jsx)(L.Fragment, { children: p ? s : o }, p ? "placeholder" : "value")
655
+ children: /* @__PURE__ */ (0, I.jsx)(F.Fragment, { children: p ? s : o }, p ? "placeholder" : "value")
601
656
  });
602
- }, "SelectValue")), Le = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function(e, t) {
657
+ }, "SelectValue")), Re = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function(e, t) {
603
658
  let { __scopeSelect: n, children: r, ...i } = e;
604
- return /* @__PURE__ */ (0, R.jsx)(A.span, {
659
+ return /* @__PURE__ */ (0, I.jsx)(k.span, {
605
660
  "aria-hidden": !0,
606
661
  ...i,
607
662
  ref: t,
608
663
  children: r || "▼"
609
664
  });
610
- }, "SelectIcon")), [Re, ze] = q("SelectPortal", { forceMount: void 0 }), Be = /* @__PURE__ */ G((e) => {
665
+ }, "SelectIcon")), [ze, Be] = q("SelectPortal", { forceMount: void 0 }), Ve = /* @__PURE__ */ G((e) => {
611
666
  let { __scopeSelect: t, forceMount: n, ...r } = e;
612
- return /* @__PURE__ */ (0, R.jsx)(Re, {
667
+ return /* @__PURE__ */ (0, I.jsx)(ze, {
613
668
  scope: e.__scopeSelect,
614
669
  forceMount: n,
615
- children: /* @__PURE__ */ (0, R.jsx)(T, {
670
+ children: /* @__PURE__ */ (0, I.jsx)(O, {
616
671
  asChild: !0,
617
672
  ...r
618
673
  })
619
674
  });
620
- }, "SelectPortal"), Y = "SelectContent", Ve = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function(e, t) {
621
- let n = ze(Y, e.__scopeSelect), { forceMount: r = n.forceMount, ...i } = e, a = J(Y, e.__scopeSelect), [o, s] = L.useState();
622
- return j(() => {
675
+ }, "SelectPortal"), Y = "SelectContent", He = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function(e, t) {
676
+ let n = Be(Y, e.__scopeSelect), { forceMount: r = n.forceMount, ...i } = e, a = J(Y, e.__scopeSelect), [o, s] = F.useState();
677
+ return b(() => {
623
678
  s(new DocumentFragment());
624
- }, []), /* @__PURE__ */ (0, R.jsx)(ne, {
679
+ }, []), /* @__PURE__ */ (0, I.jsx)(ie, {
625
680
  present: r || a.open,
626
- children: ({ present: e }) => e ? /* @__PURE__ */ (0, R.jsx)(Ge, {
681
+ children: ({ present: e }) => e ? /* @__PURE__ */ (0, I.jsx)(Ke, {
627
682
  ...i,
628
683
  ref: t
629
- }) : /* @__PURE__ */ (0, R.jsx)(He, {
684
+ }) : /* @__PURE__ */ (0, I.jsx)(Ue, {
630
685
  ...i,
631
686
  fragment: o
632
687
  })
633
688
  });
634
- }, "SelectContent")), He = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function(e, t) {
689
+ }, "SelectContent")), Ue = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function(e, t) {
635
690
  let { __scopeSelect: n, children: r, fragment: i } = e;
636
- return i ? I.createPortal(/* @__PURE__ */ (0, R.jsx)(Ue, {
691
+ return i ? P.createPortal(/* @__PURE__ */ (0, I.jsx)(We, {
637
692
  scope: n,
638
- children: /* @__PURE__ */ (0, R.jsx)(Ce.Slot, {
693
+ children: /* @__PURE__ */ (0, I.jsx)(we.Slot, {
639
694
  scope: n,
640
- children: /* @__PURE__ */ (0, R.jsx)("div", {
695
+ children: /* @__PURE__ */ (0, I.jsx)("div", {
641
696
  ref: t,
642
697
  children: r
643
698
  })
644
699
  })
645
700
  }), i) : null;
646
- }, "SelectContentFragment")), X = 10, [Ue, Z] = q(Y), We = o("SelectContent.RemoveScroll"), Ge = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function(e, t) {
647
- let { __scopeSelect: n } = e, { position: r = "item-aligned", onCloseAutoFocus: a, onEscapeKeyDown: o, onPointerDownOutside: s, side: c, sideOffset: l, align: u, alignOffset: d, arrowPadding: f, collisionBoundary: p, collisionPadding: m, sticky: h, hideWhenDetached: g, avoidCollisions: _, ...v } = e, y = J(Y, n), [x, S] = L.useState(null), [C, ee] = L.useState(null), T = i(t, S), [k, A] = L.useState(null), [j, ne] = L.useState(null), M = we(n), [N, P] = L.useState(!1), F = L.useRef(!1);
648
- L.useEffect(() => {
649
- if (x) return te(x);
650
- }, [x]), w();
651
- let I = L.useCallback((e) => {
652
- let [t, ...n] = M().map((e) => e.ref.current), [r] = n.slice(-1), i = document.activeElement;
701
+ }, "SelectContentFragment")), X = 10, [We, Z] = q(Y), Ge = o("SelectContent.RemoveScroll"), Ke = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function(e, t) {
702
+ let { __scopeSelect: n } = e, { position: r = be.ItemAligned, onCloseAutoFocus: a, onEscapeKeyDown: o, onPointerDownOutside: s, side: c, sideOffset: l, align: u, alignOffset: d, arrowPadding: f, collisionBoundary: p, collisionPadding: m, sticky: h, hideWhenDetached: g, avoidCollisions: _, ...v } = e, y = J(Y, n), [b, S] = F.useState(null), [C, w] = F.useState(null), T = i(t, S), [O, k] = F.useState(null), [re, ie] = F.useState(null), A = Te(n), [j, M] = F.useState(!1), N = F.useRef(!1), P = F.useRef(!1), L = F.useRef(!1);
703
+ F.useEffect(() => {
704
+ if (b) return ee(b);
705
+ }, [b]), ne();
706
+ let R = F.useCallback((e) => {
707
+ let [t, ...n] = A().map((e) => e.ref.current), [r] = n.slice(-1), i = document.activeElement;
653
708
  for (let n of e) if (n === i || (n?.scrollIntoView({ block: "nearest" }), n === t && C && (C.scrollTop = 0), n === r && C && (C.scrollTop = C.scrollHeight), n?.focus(), document.activeElement !== i)) return;
654
- }, [M, C]), z = L.useCallback(() => I([k, x]), [
655
- I,
656
- k,
657
- x
709
+ }, [A, C]), z = F.useCallback(() => R([O, b]), [
710
+ R,
711
+ O,
712
+ b
658
713
  ]);
659
- L.useEffect(() => {
660
- N && z();
661
- }, [N, z]);
714
+ F.useEffect(() => {
715
+ j && z();
716
+ }, [j, z]);
662
717
  let { onOpenChange: B, triggerPointerDownPosRef: V } = y;
663
- L.useEffect(() => {
664
- if (x) {
718
+ F.useEffect(() => {
719
+ if (b) {
665
720
  let e = {
666
721
  x: 0,
667
722
  y: 0
@@ -671,7 +726,7 @@ var Me = /* @__PURE__ */ G((e) => {
671
726
  y: Math.abs(Math.round(t.pageY) - (V.current?.y ?? 0))
672
727
  };
673
728
  }, "handlePointerMove"), n = /* @__PURE__ */ G((n) => {
674
- e.x <= 10 && e.y <= 10 ? n.preventDefault() : n.composedPath().includes(x) || B(!1), document.removeEventListener("pointermove", t), V.current = null;
729
+ e.x <= 10 && e.y <= 10 ? n.preventDefault() : n.composedPath().includes(b) || B(!1), document.removeEventListener("pointermove", t), V.current = null;
675
730
  }, "handlePointerUp");
676
731
  return V.current !== null && (document.addEventListener("pointermove", t), document.addEventListener("pointerup", n, {
677
732
  capture: !0,
@@ -681,25 +736,30 @@ var Me = /* @__PURE__ */ G((e) => {
681
736
  };
682
737
  }
683
738
  }, [
684
- x,
739
+ b,
685
740
  B,
686
741
  V
687
- ]), L.useEffect(() => {
742
+ ]), F.useEffect(() => {
688
743
  let e = /* @__PURE__ */ G(() => B(!1), "close");
689
744
  return window.addEventListener("blur", e), window.addEventListener("resize", e), () => {
690
745
  window.removeEventListener("blur", e), window.removeEventListener("resize", e);
691
746
  };
692
747
  }, [B]);
693
- let [re, H] = bt((e) => {
694
- let t = M().filter((e) => !e.disabled), n = xt(t, e, t.find((e) => e.ref.current === document.activeElement));
748
+ let [H, ae] = xt((e) => {
749
+ let t = A().filter((e) => !e.disabled), n = St(t, e, t.find((e) => e.ref.current === document.activeElement));
695
750
  n && setTimeout(() => n.ref.current?.focus());
696
- }), U = L.useCallback((e, t, n) => {
697
- let r = !F.current && !n;
698
- (y.value !== void 0 && y.value === t || r) && (A(e), r && (F.current = !0));
699
- }, [y.value]), ie = L.useCallback(() => x?.focus(), [x]), W = L.useCallback((e, t, n) => {
700
- let r = !F.current && !n;
701
- (y.value !== void 0 && y.value === t || r) && ne(e);
702
- }, [y.value]), ae = r === "popper" ? qe : Ke, oe = ae === qe ? {
751
+ }), U = F.useCallback((e, t, n) => {
752
+ let r = !P.current;
753
+ r && (P.current = !0);
754
+ let i = !N.current && !n;
755
+ y.value !== void 0 && y.value === t || i ? (k(e), i && (N.current = !0)) : r && k(e);
756
+ }, [y.value]), oe = F.useCallback(() => b?.focus(), [b]), se = F.useCallback((e, t, n) => {
757
+ if (!e) return;
758
+ let r = !L.current;
759
+ r && (L.current = !0);
760
+ let i = !N.current && !n;
761
+ (y.value !== void 0 && y.value === t || i || r) && ie(e);
762
+ }, [y.value]), W = r === be.Popper ? Je : qe, ce = W === Je ? {
703
763
  side: c,
704
764
  sideOffset: l,
705
765
  align: u,
@@ -711,48 +771,48 @@ var Me = /* @__PURE__ */ G((e) => {
711
771
  hideWhenDetached: g,
712
772
  avoidCollisions: _
713
773
  } : {};
714
- return /* @__PURE__ */ (0, R.jsx)(Ue, {
774
+ return /* @__PURE__ */ (0, I.jsx)(We, {
715
775
  scope: n,
716
- content: x,
776
+ content: b,
717
777
  viewport: C,
718
- onViewportChange: ee,
778
+ onViewportChange: w,
719
779
  itemRefCallback: U,
720
- selectedItem: k,
721
- onItemLeave: ie,
722
- itemTextRefCallback: W,
780
+ selectedItem: O,
781
+ onItemLeave: oe,
782
+ itemTextRefCallback: se,
723
783
  focusSelectedItem: z,
724
- selectedItemText: j,
784
+ selectedItemText: re,
725
785
  position: r,
726
- isPositioned: N,
727
- searchRef: re,
728
- children: /* @__PURE__ */ (0, R.jsx)(D, {
729
- as: We,
786
+ isPositioned: j,
787
+ searchRef: H,
788
+ children: /* @__PURE__ */ (0, I.jsx)(D, {
789
+ as: Ge,
730
790
  allowPinchZoom: !0,
731
- children: /* @__PURE__ */ (0, R.jsx)(O, {
791
+ children: /* @__PURE__ */ (0, I.jsx)(te, {
732
792
  asChild: !0,
733
793
  trapped: y.open,
734
794
  onMountAutoFocus: (e) => {
735
795
  e.preventDefault();
736
796
  },
737
- onUnmountAutoFocus: b(a, (e) => {
797
+ onUnmountAutoFocus: x(a, (e) => {
738
798
  y.trigger?.focus({ preventScroll: !0 }), e.preventDefault();
739
799
  }),
740
- children: /* @__PURE__ */ (0, R.jsx)(E, {
800
+ children: /* @__PURE__ */ (0, I.jsx)(E, {
741
801
  asChild: !0,
742
802
  disableOutsidePointerEvents: !0,
743
803
  onEscapeKeyDown: o,
744
804
  onPointerDownOutside: s,
745
805
  onFocusOutside: (e) => e.preventDefault(),
746
806
  onDismiss: () => y.onOpenChange(!1),
747
- children: /* @__PURE__ */ (0, R.jsx)(ae, {
807
+ children: /* @__PURE__ */ (0, I.jsx)(W, {
748
808
  role: "listbox",
749
809
  id: y.contentId,
750
810
  "data-state": y.open ? "open" : "closed",
751
811
  dir: y.dir,
752
812
  onContextMenu: (e) => e.preventDefault(),
753
813
  ...v,
754
- ...oe,
755
- onPlaced: () => P(!0),
814
+ ...ce,
815
+ onPlaced: () => M(!0),
756
816
  ref: T,
757
817
  style: {
758
818
  display: "flex",
@@ -760,20 +820,20 @@ var Me = /* @__PURE__ */ G((e) => {
760
820
  outline: "none",
761
821
  ...v.style
762
822
  },
763
- onKeyDown: b(v.onKeyDown, (e) => {
823
+ onKeyDown: x(v.onKeyDown, (e) => {
764
824
  let t = e.ctrlKey || e.altKey || e.metaKey;
765
- if (e.key === "Tab" && e.preventDefault(), !t && e.key.length === 1 && H(e.key), [
825
+ if (e.key === "Tab" && e.preventDefault(), !t && e.key.length === 1 && ae(e.key), [
766
826
  "ArrowUp",
767
827
  "ArrowDown",
768
828
  "Home",
769
829
  "End"
770
830
  ].includes(e.key)) {
771
- let t = M().filter((e) => !e.disabled).map((e) => e.ref.current);
831
+ let t = A().filter((e) => !e.disabled).map((e) => e.ref.current);
772
832
  if (["ArrowUp", "End"].includes(e.key) && (t = t.slice().reverse()), ["ArrowUp", "ArrowDown"].includes(e.key)) {
773
833
  let n = e.target, r = t.indexOf(n);
774
834
  t = t.slice(r + 1);
775
835
  }
776
- setTimeout(() => I(t)), e.preventDefault();
836
+ setTimeout(() => R(t)), e.preventDefault();
777
837
  }
778
838
  })
779
839
  })
@@ -781,28 +841,28 @@ var Me = /* @__PURE__ */ G((e) => {
781
841
  })
782
842
  })
783
843
  });
784
- }, "SelectContentImpl")), Ke = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function(e, t) {
785
- let { __scopeSelect: n, onPlaced: r, ...a } = e, o = J(Y, n), s = Z(Y, n), [c, l] = L.useState(null), [u, d] = L.useState(null), f = i(t, d), p = we(n), m = L.useRef(!1), h = L.useRef(!0), { viewport: g, selectedItem: _, selectedItemText: v, focusSelectedItem: y } = s, b = L.useCallback(() => {
844
+ }, "SelectContentImpl")), qe = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function(e, t) {
845
+ let { __scopeSelect: n, onPlaced: r, ...a } = e, o = J(Y, n), s = Z(Y, n), [c, l] = F.useState(null), [u, d] = F.useState(null), f = i(t, d), p = Te(n), m = F.useRef(!1), h = F.useRef(!0), { viewport: g, selectedItem: _, selectedItemText: v, focusSelectedItem: y } = s, x = F.useCallback(() => {
786
846
  if (o.trigger && o.valueNode && c && u && g && _ && v) {
787
847
  let e = o.trigger.getBoundingClientRect(), t = u.getBoundingClientRect(), n = o.valueNode.getBoundingClientRect(), i = v.getBoundingClientRect();
788
- if (o.dir !== "rtl") {
789
- let r = i.left - t.left, a = n.left - r, o = e.left - a, s = e.width + o, l = Math.max(s, t.width), u = window.innerWidth - X, d = ye(a, [X, Math.max(X, u - l)]);
848
+ if (o.dir !== xe.RTL) {
849
+ let r = i.left - t.left, a = n.left - r, o = e.left - a, s = e.width + o, l = Math.max(s, t.width), u = window.innerWidth - X, d = ve(a, [X, Math.max(X, u - l)]);
790
850
  c.style.minWidth = s + "px", c.style.left = d + "px";
791
851
  } else {
792
- let r = t.right - i.right, a = window.innerWidth - n.right - r, o = window.innerWidth - e.right - a, s = e.width + o, l = Math.max(s, t.width), u = window.innerWidth - X, d = ye(a, [X, Math.max(X, u - l)]);
852
+ let r = t.right - i.right, a = window.innerWidth - n.right - r, o = window.innerWidth - e.right - a, s = e.width + o, l = Math.max(s, t.width), u = window.innerWidth - X, d = ve(a, [X, Math.max(X, u - l)]);
793
853
  c.style.minWidth = s + "px", c.style.right = d + "px";
794
854
  }
795
- let a = p(), s = window.innerHeight - X * 2, l = g.scrollHeight, d = window.getComputedStyle(u), f = parseInt(d.borderTopWidth, 10), h = parseInt(d.paddingTop, 10), y = parseInt(d.borderBottomWidth, 10), b = parseInt(d.paddingBottom, 10), x = f + h + l + b + y, S = Math.min(_.offsetHeight * 5, x), C = window.getComputedStyle(g), ee = parseInt(C.paddingTop, 10), te = parseInt(C.paddingBottom, 10), w = e.top + e.height / 2 - X, T = s - w, E = _.offsetHeight / 2, D = _.offsetTop + E, O = f + h + D, k = x - O;
796
- if (O <= w) {
855
+ let a = p(), s = window.innerHeight - X * 2, l = g.scrollHeight, d = window.getComputedStyle(u), f = parseInt(d.borderTopWidth, 10), h = parseInt(d.paddingTop, 10), y = parseInt(d.borderBottomWidth, 10), b = parseInt(d.paddingBottom, 10), x = f + h + l + b + y, S = Math.min(_.offsetHeight * 5, x), C = window.getComputedStyle(g), w = parseInt(C.paddingTop, 10), T = parseInt(C.paddingBottom, 10), E = e.top + e.height / 2 - X, ee = s - E, D = _.offsetHeight / 2, te = _.offsetTop + D, O = f + h + te, k = x - O;
856
+ if (O <= E) {
797
857
  let e = a.length > 0 && _ === a[a.length - 1].ref.current;
798
858
  c.style.bottom = "0px";
799
- let t = u.clientHeight - g.offsetTop - g.offsetHeight, n = O + Math.max(T, E + (e ? te : 0) + t + y);
859
+ let t = u.clientHeight - g.offsetTop - g.offsetHeight, n = O + Math.max(ee, D + (e ? T : 0) + t + y);
800
860
  c.style.height = n + "px";
801
861
  } else {
802
862
  let e = a.length > 0 && _ === a[0].ref.current;
803
863
  c.style.top = "0px";
804
- let t = Math.max(w, f + g.offsetTop + (e ? ee : 0) + E) + k;
805
- c.style.height = t + "px", g.scrollTop = O - w + g.offsetTop;
864
+ let t = Math.max(E, f + g.offsetTop + (e ? w : 0) + D) + k;
865
+ c.style.height = t + "px", g.scrollTop = O - E + g.offsetTop;
806
866
  }
807
867
  c.style.margin = `${X}px 0`, c.style.minHeight = S + "px", c.style.maxHeight = s + "px", r?.(), requestAnimationFrame(() => m.current = !0);
808
868
  }
@@ -818,28 +878,28 @@ var Me = /* @__PURE__ */ G((e) => {
818
878
  o.dir,
819
879
  r
820
880
  ]);
821
- j(() => b(), [b]);
822
- let [x, S] = L.useState();
823
- j(() => {
824
- u && S(window.getComputedStyle(u).zIndex);
881
+ b(() => x(), [x]);
882
+ let [S, C] = F.useState();
883
+ b(() => {
884
+ u && C(window.getComputedStyle(u).zIndex);
825
885
  }, [u]);
826
- let C = L.useCallback((e) => {
827
- e && h.current === !0 && (b(), y?.(), h.current = !1);
828
- }, [b, y]);
829
- return /* @__PURE__ */ (0, R.jsx)(Je, {
886
+ let w = F.useCallback((e) => {
887
+ e && h.current === !0 && (x(), y?.(), h.current = !1);
888
+ }, [x, y]);
889
+ return /* @__PURE__ */ (0, I.jsx)(Ye, {
830
890
  scope: n,
831
891
  contentWrapper: c,
832
892
  shouldExpandOnScrollRef: m,
833
- onScrollButtonChange: C,
834
- children: /* @__PURE__ */ (0, R.jsx)("div", {
893
+ onScrollButtonChange: w,
894
+ children: /* @__PURE__ */ (0, I.jsx)("div", {
835
895
  ref: l,
836
896
  style: {
837
897
  display: "flex",
838
898
  flexDirection: "column",
839
899
  position: "fixed",
840
- zIndex: x
900
+ zIndex: S
841
901
  },
842
- children: /* @__PURE__ */ (0, R.jsx)(A.div, {
902
+ children: /* @__PURE__ */ (0, I.jsx)(k.div, {
843
903
  ...a,
844
904
  ref: f,
845
905
  style: {
@@ -850,9 +910,9 @@ var Me = /* @__PURE__ */ G((e) => {
850
910
  })
851
911
  })
852
912
  });
853
- }, "SelectItemAlignedPosition")), qe = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function(e, t) {
854
- let { __scopeSelect: n, align: r = "start", collisionPadding: i = X, ...a } = e, o = De(n);
855
- return /* @__PURE__ */ (0, R.jsx)(l, {
913
+ }, "SelectItemAlignedPosition")), Je = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function(e, t) {
914
+ let { __scopeSelect: n, align: r = "start", collisionPadding: i = X, ...a } = e, o = Oe(n);
915
+ return /* @__PURE__ */ (0, I.jsx)(d, {
856
916
  ...o,
857
917
  ...a,
858
918
  ref: t,
@@ -868,14 +928,14 @@ var Me = /* @__PURE__ */ G((e) => {
868
928
  "--radix-select-trigger-height": "var(--radix-popper-anchor-height)"
869
929
  }
870
930
  });
871
- }, "SelectPopperPosition")), [Je, Ye] = q(Y, {}), Xe = "SelectViewport", Ze = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function(e, t) {
872
- let { __scopeSelect: n, nonce: r, ...a } = e, o = Z(Xe, n), s = Ye(Xe, n), c = i(t, o.onViewportChange), l = L.useRef(0);
873
- return /* @__PURE__ */ (0, R.jsxs)(R.Fragment, { children: [/* @__PURE__ */ (0, R.jsx)("style", {
931
+ }, "SelectPopperPosition")), [Ye, Xe] = q(Y, {}), Ze = "SelectViewport", Qe = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function(e, t) {
932
+ let { __scopeSelect: n, nonce: r, ...a } = e, o = Z(Ze, n), s = Xe(Ze, n), c = i(t, o.onViewportChange), l = F.useRef(0);
933
+ return /* @__PURE__ */ (0, I.jsxs)(I.Fragment, { children: [/* @__PURE__ */ (0, I.jsx)("style", {
874
934
  dangerouslySetInnerHTML: { __html: "[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}" },
875
935
  nonce: r
876
- }), /* @__PURE__ */ (0, R.jsx)(Ce.Slot, {
936
+ }), /* @__PURE__ */ (0, I.jsx)(we.Slot, {
877
937
  scope: n,
878
- children: /* @__PURE__ */ (0, R.jsx)(A.div, {
938
+ children: /* @__PURE__ */ (0, I.jsx)(k.div, {
879
939
  "data-radix-select-viewport": "",
880
940
  role: "presentation",
881
941
  ...a,
@@ -886,7 +946,7 @@ var Me = /* @__PURE__ */ G((e) => {
886
946
  overflow: "hidden auto",
887
947
  ...a.style
888
948
  },
889
- onScroll: b(a.onScroll, (e) => {
949
+ onScroll: x(a.onScroll, (e) => {
890
950
  let t = e.currentTarget, { contentWrapper: n, shouldExpandOnScrollRef: r } = s;
891
951
  if (r?.current && n) {
892
952
  let e = Math.abs(l.current - t.scrollTop);
@@ -902,44 +962,45 @@ var Me = /* @__PURE__ */ G((e) => {
902
962
  })
903
963
  })
904
964
  })] });
905
- }, "SelectViewport")), [Qe, $e] = q("SelectGroup"), et = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function(e, t) {
906
- let { __scopeSelect: n, ...r } = e, i = k();
907
- return /* @__PURE__ */ (0, R.jsx)(Qe, {
965
+ }, "SelectViewport")), [$e, et] = q("SelectGroup"), tt = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function(e, t) {
966
+ let { __scopeSelect: n, ...r } = e, i = y();
967
+ return /* @__PURE__ */ (0, I.jsx)($e, {
908
968
  scope: n,
909
969
  id: i,
910
- children: /* @__PURE__ */ (0, R.jsx)(A.div, {
970
+ children: /* @__PURE__ */ (0, I.jsx)(k.div, {
911
971
  role: "group",
912
972
  "aria-labelledby": i,
913
973
  ...r,
914
974
  ref: t
915
975
  })
916
976
  });
917
- }, "SelectGroup")), tt = "SelectLabel", nt = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function(e, t) {
918
- let { __scopeSelect: n, ...r } = e, i = $e(tt, n);
919
- return /* @__PURE__ */ (0, R.jsx)(A.div, {
977
+ }, "SelectGroup")), nt = "SelectLabel", rt = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function(e, t) {
978
+ let { __scopeSelect: n, ...r } = e, i = et(nt, n);
979
+ return /* @__PURE__ */ (0, I.jsx)(k.div, {
920
980
  id: i.id,
921
981
  ...r,
922
982
  ref: t
923
983
  });
924
- }, "SelectLabel")), rt = "SelectItem", [it, at] = q(rt), ot = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function(e, t) {
925
- let { __scopeSelect: n, value: r, disabled: a = !1, textValue: o, ...s } = e, c = J(rt, n), l = Z(rt, n), u = c.value === r, [d, f] = L.useState(o ?? ""), [p, m] = L.useState(!1), h = C((e) => l.itemRefCallback?.(e, r, a)), g = i(t, h), _ = k(), v = L.useRef("touch"), y = /* @__PURE__ */ G(() => {
926
- a || (c.onValueChange(r), c.onOpenChange(!1));
927
- }, "handleSelect");
928
- return /* @__PURE__ */ (0, R.jsx)(it, {
984
+ }, "SelectLabel")), it = "SelectItem", [at, ot] = q(it), st = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function(e, t) {
985
+ let { __scopeSelect: n, value: r, disabled: a = !1, textValue: o, ...s } = e, c = J(it, n), l = Z(it, n), u = c.value === r, [d, f] = F.useState(o ?? ""), [p, m] = F.useState(!1), h = w((e) => l.itemRefCallback?.(e, r, a)), g = i(t, h), _ = y(), v = F.useRef("touch");
986
+ function b(e) {
987
+ c.hasConsumerStoppedPropagationRef.current = e.isPropagationStopped(), c.onUserSelect(r), c.onOpenChange(!1);
988
+ }
989
+ return G(b, "handleSelect"), /* @__PURE__ */ (0, I.jsx)(at, {
929
990
  scope: n,
930
991
  value: r,
931
992
  disabled: a,
932
993
  textId: _,
933
994
  isSelected: u,
934
- onItemTextChange: L.useCallback((e) => {
995
+ onItemTextChange: F.useCallback((e) => {
935
996
  f((t) => t || (e?.textContent ?? "").trim());
936
997
  }, []),
937
- children: /* @__PURE__ */ (0, R.jsx)(Ce.ItemSlot, {
998
+ children: /* @__PURE__ */ (0, I.jsx)(we.ItemSlot, {
938
999
  scope: n,
939
1000
  value: r,
940
1001
  disabled: a,
941
1002
  textValue: d,
942
- children: /* @__PURE__ */ (0, R.jsx)(A.div, {
1003
+ children: /* @__PURE__ */ (0, I.jsx)(k.div, {
943
1004
  role: "option",
944
1005
  "aria-labelledby": _,
945
1006
  "data-highlighted": p ? "" : void 0,
@@ -950,31 +1011,31 @@ var Me = /* @__PURE__ */ G((e) => {
950
1011
  tabIndex: a ? void 0 : -1,
951
1012
  ...s,
952
1013
  ref: g,
953
- onFocus: b(s.onFocus, () => m(!0)),
954
- onBlur: b(s.onBlur, () => m(!1)),
955
- onClick: b(s.onClick, () => {
956
- v.current !== "mouse" && y();
1014
+ onFocus: x(s.onFocus, () => m(!0)),
1015
+ onBlur: x(s.onBlur, () => m(!1)),
1016
+ onClick: x(s.onClick, (e) => {
1017
+ a || v.current !== "mouse" && b(e);
957
1018
  }),
958
- onPointerUp: b(s.onPointerUp, () => {
959
- v.current === "mouse" && y();
1019
+ onPointerUp: x(s.onPointerUp, (e) => {
1020
+ a || v.current === "mouse" && b(e);
960
1021
  }),
961
- onPointerDown: b(s.onPointerDown, (e) => {
1022
+ onPointerDown: x(s.onPointerDown, (e) => {
962
1023
  v.current = e.pointerType;
963
1024
  }),
964
- onPointerMove: b(s.onPointerMove, (e) => {
1025
+ onPointerMove: x(s.onPointerMove, (e) => {
965
1026
  v.current = e.pointerType, a ? l.onItemLeave?.() : v.current === "mouse" && e.currentTarget.focus({ preventScroll: !0 });
966
1027
  }),
967
- onPointerLeave: b(s.onPointerLeave, (e) => {
1028
+ onPointerLeave: x(s.onPointerLeave, (e) => {
968
1029
  e.currentTarget === document.activeElement && l.onItemLeave?.();
969
1030
  }),
970
- onKeyDown: b(s.onKeyDown, (e) => {
971
- a || e.target !== e.currentTarget || (l.searchRef?.current === "" || e.key !== " ") && (Se.includes(e.key) && y(), e.key === " " && e.preventDefault());
1031
+ onKeyDown: x(s.onKeyDown, (e) => {
1032
+ a || e.target !== e.currentTarget || (l.searchRef?.current === "" || e.key !== " ") && (Ce.includes(e.key) && b(e), e.key === " " && e.preventDefault());
972
1033
  })
973
1034
  })
974
1035
  })
975
1036
  });
976
- }, "SelectItem")), st = "SelectItemText", ct = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function(e, t) {
977
- let { __scopeSelect: n, className: r, style: a, ...o } = e, s = J(st, n), c = Z(st, n), l = at(st, n), u = Ae(st, n), [d, f] = L.useState(null), p = C((e) => c.itemTextRefCallback?.(e, l.value, l.disabled)), m = i(t, f, l.onItemTextChange, p), h = d?.textContent, g = L.useMemo(() => /* @__PURE__ */ (0, R.jsx)("option", {
1037
+ }, "SelectItem")), ct = "SelectItemText", lt = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function(e, t) {
1038
+ let { __scopeSelect: n, className: r, style: a, ...o } = e, s = J(ct, n), c = Z(ct, n), l = ot(ct, n), u = je(ct, n), [d, f] = F.useState(null), p = w((e) => c.itemTextRefCallback?.(e, l.value, l.disabled)), m = i(t, f, l.onItemTextChange, p), h = d?.textContent, g = F.useMemo(() => /* @__PURE__ */ (0, I.jsx)("option", {
978
1039
  value: l.value,
979
1040
  disabled: l.disabled,
980
1041
  children: h
@@ -983,25 +1044,25 @@ var Me = /* @__PURE__ */ G((e) => {
983
1044
  l.value,
984
1045
  h
985
1046
  ]), { onNativeOptionAdd: _, onNativeOptionRemove: v } = u;
986
- return j(() => (_(g), () => v(g)), [
1047
+ return b(() => (_(g), () => v(g)), [
987
1048
  _,
988
1049
  v,
989
1050
  g
990
- ]), /* @__PURE__ */ (0, R.jsxs)(R.Fragment, { children: [/* @__PURE__ */ (0, R.jsx)(A.span, {
1051
+ ]), /* @__PURE__ */ (0, I.jsxs)(I.Fragment, { children: [/* @__PURE__ */ (0, I.jsx)(k.span, {
991
1052
  id: l.textId,
992
1053
  ...o,
993
1054
  ref: m
994
- }), l.isSelected && s.valueNode && !s.valueNodeHasChildren && !Q(s.value) ? I.createPortal(o.children, s.valueNode) : null] });
995
- }, "SelectItemText")), lt = "SelectItemIndicator", ut = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function(e, t) {
1055
+ }), l.isSelected && s.valueNode && !s.valueNodeHasChildren && !Q(s.value) ? P.createPortal(o.children, s.valueNode) : null] });
1056
+ }, "SelectItemText")), ut = "SelectItemIndicator", dt = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function(e, t) {
996
1057
  let { __scopeSelect: n, ...r } = e;
997
- return at(lt, n).isSelected ? /* @__PURE__ */ (0, R.jsx)(A.span, {
1058
+ return ot(ut, n).isSelected ? /* @__PURE__ */ (0, I.jsx)(k.span, {
998
1059
  "aria-hidden": !0,
999
1060
  ...r,
1000
1061
  ref: t
1001
1062
  }) : null;
1002
- }, "SelectItemIndicator")), dt = "SelectScrollUpButton", ft = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function(e, t) {
1003
- let n = Z(dt, e.__scopeSelect), r = Ye(dt, e.__scopeSelect), [a, o] = L.useState(!1), s = i(t, r.onScrollButtonChange);
1004
- return j(() => {
1063
+ }, "SelectItemIndicator")), ft = "SelectScrollUpButton", pt = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function(e, t) {
1064
+ let n = Z(ft, e.__scopeSelect), r = Xe(ft, e.__scopeSelect), [a, o] = F.useState(!1), s = i(t, r.onScrollButtonChange);
1065
+ return b(() => {
1005
1066
  if (n.viewport && n.isPositioned) {
1006
1067
  let e = function() {
1007
1068
  let e = t.scrollTop > 0;
@@ -1011,7 +1072,7 @@ var Me = /* @__PURE__ */ G((e) => {
1011
1072
  let t = n.viewport;
1012
1073
  return e(), t.addEventListener("scroll", e), () => t.removeEventListener("scroll", e);
1013
1074
  }
1014
- }, [n.viewport, n.isPositioned]), a ? /* @__PURE__ */ (0, R.jsx)(ht, {
1075
+ }, [n.viewport, n.isPositioned]), a ? /* @__PURE__ */ (0, I.jsx)(gt, {
1015
1076
  ...e,
1016
1077
  ref: s,
1017
1078
  onAutoScroll: () => {
@@ -1019,9 +1080,9 @@ var Me = /* @__PURE__ */ G((e) => {
1019
1080
  e && t && (e.scrollTop -= t.offsetHeight);
1020
1081
  }
1021
1082
  }) : null;
1022
- }, "SelectScrollUpButton")), pt = "SelectScrollDownButton", mt = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function(e, t) {
1023
- let n = Z(pt, e.__scopeSelect), r = Ye(pt, e.__scopeSelect), [a, o] = L.useState(!1), s = i(t, r.onScrollButtonChange);
1024
- return j(() => {
1083
+ }, "SelectScrollUpButton")), mt = "SelectScrollDownButton", ht = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function(e, t) {
1084
+ let n = Z(mt, e.__scopeSelect), r = Xe(mt, e.__scopeSelect), [a, o] = F.useState(!1), s = i(t, r.onScrollButtonChange);
1085
+ return b(() => {
1025
1086
  if (n.viewport && n.isPositioned) {
1026
1087
  let e = function() {
1027
1088
  let e = t.scrollHeight - t.clientHeight, n = Math.ceil(t.scrollTop) < e;
@@ -1031,7 +1092,7 @@ var Me = /* @__PURE__ */ G((e) => {
1031
1092
  let t = n.viewport;
1032
1093
  return e(), t.addEventListener("scroll", e), () => t.removeEventListener("scroll", e);
1033
1094
  }
1034
- }, [n.viewport, n.isPositioned]), a ? /* @__PURE__ */ (0, R.jsx)(ht, {
1095
+ }, [n.viewport, n.isPositioned]), a ? /* @__PURE__ */ (0, I.jsx)(gt, {
1035
1096
  ...e,
1036
1097
  ref: s,
1037
1098
  onAutoScroll: () => {
@@ -1039,13 +1100,13 @@ var Me = /* @__PURE__ */ G((e) => {
1039
1100
  e && t && (e.scrollTop += t.offsetHeight);
1040
1101
  }
1041
1102
  }) : null;
1042
- }, "SelectScrollDownButton")), ht = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function(e, t) {
1043
- let { __scopeSelect: n, onAutoScroll: r, ...i } = e, a = Z("SelectScrollButton", n), o = L.useRef(null), s = we(n), c = L.useCallback(() => {
1103
+ }, "SelectScrollDownButton")), gt = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function(e, t) {
1104
+ let { __scopeSelect: n, onAutoScroll: r, ...i } = e, a = Z("SelectScrollButton", n), o = F.useRef(null), s = Te(n), c = F.useCallback(() => {
1044
1105
  o.current !== null && (window.clearInterval(o.current), o.current = null);
1045
1106
  }, []);
1046
- return L.useEffect(() => () => c(), [c]), j(() => {
1107
+ return F.useEffect(() => () => c(), [c]), b(() => {
1047
1108
  s().find((e) => e.ref.current === document.activeElement)?.ref.current?.scrollIntoView({ block: "nearest" });
1048
- }, [s]), /* @__PURE__ */ (0, R.jsx)(A.div, {
1109
+ }, [s]), /* @__PURE__ */ (0, I.jsx)(k.div, {
1049
1110
  "aria-hidden": !0,
1050
1111
  ...i,
1051
1112
  ref: t,
@@ -1053,107 +1114,125 @@ var Me = /* @__PURE__ */ G((e) => {
1053
1114
  flexShrink: 0,
1054
1115
  ...i.style
1055
1116
  },
1056
- onPointerDown: b(i.onPointerDown, () => {
1117
+ onPointerDown: x(i.onPointerDown, () => {
1057
1118
  o.current === null && (o.current = window.setInterval(r, 50));
1058
1119
  }),
1059
- onPointerMove: b(i.onPointerMove, () => {
1120
+ onPointerMove: x(i.onPointerMove, () => {
1060
1121
  a.onItemLeave?.(), o.current === null && (o.current = window.setInterval(r, 50));
1061
1122
  }),
1062
- onPointerLeave: b(i.onPointerLeave, () => {
1123
+ onPointerLeave: x(i.onPointerLeave, () => {
1063
1124
  c();
1064
1125
  })
1065
1126
  });
1066
- }, "SelectScrollButtonImpl")), gt = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function(e, t) {
1127
+ }, "SelectScrollButtonImpl")), _t = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function(e, t) {
1067
1128
  let { __scopeSelect: n, ...r } = e;
1068
- return /* @__PURE__ */ (0, R.jsx)(A.div, {
1129
+ return /* @__PURE__ */ (0, I.jsx)(k.div, {
1069
1130
  "aria-hidden": !0,
1070
1131
  ...r,
1071
1132
  ref: t
1072
1133
  });
1073
- }, "SelectSeparator")), _t = "SelectBubbleInput", vt = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ G(function({ __scopeSelect: e, ...t }, n) {
1074
- let r = J(_t, e), { value: a, onValueChange: o, required: s, disabled: c, name: l, autoComplete: u, form: d } = r, { nativeOptions: p, nativeSelectKey: m } = r, h = L.useRef(null), g = i(n, h), _ = a ?? "", v = ge(_), y = Array.from(p).some((e) => (e.props.value ?? "") === "");
1075
- return L.useEffect(() => {
1076
- let e = h.current;
1134
+ }, "SelectSeparator")), vt = "SelectBubbleInput", yt = /* @__PURE__ */ F.forwardRef(/* @__PURE__ */ G(function({ __scopeSelect: e, ...t }, n) {
1135
+ let r = J(vt, e), { value: a, onValueChange: o, required: s, disabled: c, name: l, autoComplete: d, form: f, userSelection: p } = r, { nativeOptions: m, nativeSelectKey: h } = r, g = F.useRef(null), _ = i(n, g), v = a ?? "", y = F.useRef(v), b = F.useRef(p), x = F.useRef(!1), S = Array.from(m).some((e) => (e.props.value ?? "") === "");
1136
+ return F.useEffect(() => {
1137
+ let e = g.current;
1077
1138
  if (!e) return;
1078
- let t = window.HTMLSelectElement.prototype, n = Object.getOwnPropertyDescriptor(t, "value").set;
1079
- if (v !== _ && n) {
1080
- let t = new Event("change", { bubbles: !0 });
1081
- n.call(e, _), e.dispatchEvent(t);
1139
+ let t = window.HTMLSelectElement.prototype, n = Object.getOwnPropertyDescriptor(t, "value").set, r = p !== null && p !== b.current;
1140
+ b.current = p;
1141
+ let i = y.current !== v;
1142
+ y.current = v;
1143
+ let a = r && i;
1144
+ if (r && !i && p.value !== v && !p.hasConsumerStoppedPropagation && n) {
1145
+ x.current = !0;
1146
+ try {
1147
+ n.call(e, p.value), e.dispatchEvent(new Event("change", { bubbles: !0 }));
1148
+ } finally {
1149
+ x.current = !1, n.call(e, v);
1150
+ }
1151
+ return;
1152
+ }
1153
+ let o = a && !p.hasConsumerStoppedPropagation;
1154
+ if (i && n) {
1155
+ let t = new Event("change", { bubbles: o });
1156
+ n.call(e, v), e.dispatchEvent(t);
1082
1157
  }
1083
- }, [v, _]), /* @__PURE__ */ (0, R.jsxs)(A.select, {
1158
+ }, [v, p]), /* @__PURE__ */ (0, I.jsxs)(k.select, {
1084
1159
  "aria-hidden": !0,
1085
1160
  required: s,
1086
1161
  tabIndex: -1,
1087
1162
  name: l,
1088
- autoComplete: u,
1163
+ autoComplete: d,
1089
1164
  disabled: c,
1090
- form: d,
1091
- onChange: (e) => o(e.target.value),
1165
+ form: f,
1166
+ onChange: (e) => {
1167
+ x.current || o(e.target.value);
1168
+ },
1092
1169
  ...t,
1093
1170
  style: {
1094
- ...f,
1171
+ ...u,
1095
1172
  ...t.style
1096
1173
  },
1097
- ref: g,
1098
- defaultValue: _,
1099
- children: [Q(a) && !y ? /* @__PURE__ */ (0, R.jsx)("option", { value: "" }) : null, Array.from(p)]
1100
- }, m);
1174
+ ref: _,
1175
+ defaultValue: v,
1176
+ children: [Q(a) && !S ? /* @__PURE__ */ (0, I.jsx)("option", { value: "" }) : null, Array.from(m)]
1177
+ }, h);
1101
1178
  }, "SelectBubbleInput"));
1102
- function yt(e) {
1179
+ function bt(e) {
1103
1180
  return typeof e == "function";
1104
1181
  }
1105
- G(yt, "isFunction");
1182
+ G(bt, "isFunction");
1106
1183
  function Q(e) {
1107
1184
  return e === "" || e === void 0;
1108
1185
  }
1109
1186
  G(Q, "shouldShowPlaceholder");
1110
- function bt(e) {
1111
- let t = C(e), n = L.useRef(""), r = L.useRef(0), i = L.useCallback((e) => {
1187
+ function xt(e) {
1188
+ let t = w(e), n = F.useRef(""), r = F.useRef(0), i = F.useCallback((e) => {
1112
1189
  let i = n.current + e;
1113
- t(i), (/* @__PURE__ */ G((function e(t) {
1114
- n.current = t, window.clearTimeout(r.current), t !== "" && (r.current = window.setTimeout(() => e(""), 1e3));
1115
- }), "updateSearch"))(i);
1116
- }, [t]), a = L.useCallback(() => {
1190
+ t(i);
1191
+ function a(e) {
1192
+ n.current = e, window.clearTimeout(r.current), e !== "" && (r.current = window.setTimeout(() => a(""), 1e3));
1193
+ }
1194
+ G(a, "updateSearch"), a(i);
1195
+ }, [t]), a = F.useCallback(() => {
1117
1196
  n.current = "", window.clearTimeout(r.current);
1118
1197
  }, []);
1119
- return L.useEffect(() => () => window.clearTimeout(r.current), []), [
1198
+ return F.useEffect(() => () => window.clearTimeout(r.current), []), [
1120
1199
  n,
1121
1200
  i,
1122
1201
  a
1123
1202
  ];
1124
1203
  }
1125
- G(bt, "useTypeaheadSearch");
1126
- function xt(e, t, n) {
1127
- let r = t.length > 1 && Array.from(t).every((e) => e === t[0]) ? t[0] : t, i = n ? e.indexOf(n) : -1, a = St(e, Math.max(i, 0));
1204
+ G(xt, "useTypeaheadSearch");
1205
+ function St(e, t, n) {
1206
+ let r = t.length > 1 && Array.from(t).every((e) => e === t[0]) ? t[0] : t, i = n ? e.indexOf(n) : -1, a = Ct(e, Math.max(i, 0));
1128
1207
  r.length === 1 && (a = a.filter((e) => e !== n));
1129
1208
  let o = a.find((e) => e.textValue.toLowerCase().startsWith(r.toLowerCase()));
1130
1209
  return o === n ? void 0 : o;
1131
1210
  }
1132
- G(xt, "findNextItem");
1133
- function St(e, t) {
1211
+ G(St, "findNextItem");
1212
+ function Ct(e, t) {
1134
1213
  return e.map((n, r) => e[(t + r) % e.length]);
1135
1214
  }
1136
- G(St, "wrapArray");
1215
+ G(Ct, "wrapArray");
1137
1216
  //#endregion
1138
1217
  //#region src/utils/assertNever.ts
1139
- function Ct(e) {
1140
- M(!1, `Unexpected object: ${e}`);
1141
- }
1142
1218
  function wt(e) {
1219
+ A(!1, `Unexpected object: ${e}`);
1220
+ }
1221
+ function Tt(e) {
1143
1222
  return t.warn(`Unexpected object: ${JSON.stringify(e)}`), e;
1144
1223
  }
1145
1224
  //#endregion
1146
1225
  //#region src/utils/strings.ts
1147
- function Tt(e) {
1226
+ function Et(e) {
1148
1227
  return e ? e.charAt(0).toUpperCase() + e.slice(1) : "";
1149
1228
  }
1150
- function Et(e) {
1229
+ function Dt(e) {
1151
1230
  if (!e) return "";
1152
1231
  if (typeof e != "string") throw t.error(e), TypeError(`Expected string, got ${typeof e}`);
1153
- return /[A-Za-z]/.test(e) ? e.replaceAll(/([\da-z])([A-Z])/g, "$1 $2").replaceAll(/([A-Z]+)([A-Z][a-z])/g, "$1 $2").replaceAll(/[\s_-]+/g, " ").trim().split(" ").map(Tt).join(" ") : e;
1232
+ return /[A-Za-z]/.test(e) ? e.replaceAll(/([\da-z])([A-Z])/g, "$1 $2").replaceAll(/([A-Z]+)([A-Z][a-z])/g, "$1 $2").replaceAll(/[\s_-]+/g, " ").trim().split(" ").map(Et).join(" ") : e;
1154
1233
  }
1155
- var Dt = {
1156
- startCase: Et,
1234
+ var Ot = {
1235
+ startCase: Dt,
1157
1236
  htmlEscape: (e) => e && e.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll("\"", "&quot;").replaceAll("'", "&#039;").replaceAll("\n", " "),
1158
1237
  withTrailingSlash(e) {
1159
1238
  return e.endsWith("/") ? e : `${e}/`;
@@ -1172,7 +1251,7 @@ var Dt = {
1172
1251
  return String(e);
1173
1252
  }
1174
1253
  }
1175
- }, $ = c(), Ot = a("z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md forced-color-adjust-none forced-colors:border-[CanvasText] forced-colors:bg-[Canvas] forced-colors:text-[CanvasText]", { variants: { subcontent: { true: "shadow-lg" } } }), kt = a("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground forced-color-adjust-none forced-colors:data-[highlighted]:bg-[Highlight] forced-colors:data-[highlighted]:text-[HighlightText] forced-colors:data-[state=open]:bg-[Highlight] forced-colors:data-[state=open]:text-[HighlightText]", { variants: { inset: { true: "pl-8" } } }), At = "data-disabled:pointer-events-none data-disabled:opacity-50 forced-colors:data-disabled:text-[GrayText]", jt = a(n("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground forced-color-adjust-none forced-colors:data-[highlighted]:bg-[Highlight] forced-colors:data-[highlighted]:text-[HighlightText]", At), { variants: {} }), Mt = a("absolute left-2 flex h-3.5 w-3.5 items-center justify-center", { variants: {} }), Nt = a("px-2 py-1.5 text-sm font-semibold", { variants: { inset: { true: "pl-8" } } }), Pt = a(n("menu-item relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden forced-color-adjust-none forced-colors:data-[highlighted]:bg-[Highlight] forced-colors:data-[highlighted]:text-[HighlightText] forced-colors:aria-selected:bg-[Highlight] forced-colors:aria-selected:text-[HighlightText]", At), {
1254
+ }, $ = c(), kt = a("z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md forced-color-adjust-none forced-colors:border-[CanvasText] forced-colors:bg-[Canvas] forced-colors:text-[CanvasText]", { variants: { subcontent: { true: "shadow-lg" } } }), At = a("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground forced-color-adjust-none forced-colors:data-[highlighted]:bg-[Highlight] forced-colors:data-[highlighted]:text-[HighlightText] forced-colors:data-[state=open]:bg-[Highlight] forced-colors:data-[state=open]:text-[HighlightText]", { variants: { inset: { true: "pl-8" } } }), jt = "data-disabled:pointer-events-none data-disabled:opacity-50 forced-colors:data-disabled:text-[GrayText]", Mt = a(n("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground forced-color-adjust-none forced-colors:data-[highlighted]:bg-[Highlight] forced-colors:data-[highlighted]:text-[HighlightText]", jt), { variants: {} }), Nt = a("absolute left-2 flex h-3.5 w-3.5 items-center justify-center", { variants: {} }), Pt = a("px-2 py-1.5 text-sm font-semibold", { variants: { inset: { true: "pl-8" } } }), Ft = a(n("menu-item relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden forced-color-adjust-none forced-colors:data-[highlighted]:bg-[Highlight] forced-colors:data-[highlighted]:text-[HighlightText] forced-colors:aria-selected:bg-[Highlight] forced-colors:aria-selected:text-[HighlightText]", jt), {
1176
1255
  variants: {
1177
1256
  inset: { true: "pl-8" },
1178
1257
  variant: {
@@ -1184,35 +1263,35 @@ var Dt = {
1184
1263
  }
1185
1264
  },
1186
1265
  defaultVariants: { variant: "default" }
1187
- }), Ft = a("-mx-1 my-1 h-px bg-border last:hidden", { variants: {} }), It = (e) => {
1266
+ }), It = a("-mx-1 my-1 h-px bg-border last:hidden", { variants: {} }), Lt = (e) => {
1188
1267
  let t = (0, $.c)(8), r, i;
1189
1268
  t[0] === e ? (r = t[1], i = t[2]) : ({className: r, ...i} = e, t[0] = e, t[1] = r, t[2] = i);
1190
1269
  let a;
1191
1270
  t[3] === r ? a = t[4] : (a = n("ml-auto text-xs tracking-widest opacity-60", r), t[3] = r, t[4] = a);
1192
1271
  let o;
1193
- return t[5] !== i || t[6] !== a ? (o = /* @__PURE__ */ (0, R.jsx)("span", {
1272
+ return t[5] !== i || t[6] !== a ? (o = /* @__PURE__ */ (0, I.jsx)("span", {
1194
1273
  className: a,
1195
1274
  ...i
1196
1275
  }), t[5] = i, t[6] = a, t[7] = o) : o = t[7], o;
1197
1276
  };
1198
- It.displayName = "MenuShortcut";
1277
+ Lt.displayName = "MenuShortcut";
1199
1278
  //#endregion
1200
1279
  //#region src/components/ui/native-select.tsx
1201
- var Lt = a("flex h-6 w-fit mb-1 items-center justify-between rounded-sm bg-background px-2 text-sm font-prose ring-offset-background placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 cursor-pointer forced-color-adjust-none forced-colors:bg-[ButtonFace] forced-colors:text-[ButtonText] forced-colors:disabled:text-[GrayText]", {
1280
+ var Rt = a("flex h-6 w-fit mb-1 items-center justify-between rounded-sm bg-background px-2 text-sm font-prose ring-offset-background placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 cursor-pointer forced-color-adjust-none forced-colors:bg-[ButtonFace] forced-colors:text-[ButtonText] forced-colors:disabled:text-[GrayText]", {
1202
1281
  variants: { variant: {
1203
1282
  default: "shadow-xs-solid border border-input hover:shadow-sm-solid focus-visible:border-primary focus-visible:shadow-md-solid disabled:hover:shadow-xs-solid forced-colors:border-[ButtonText] forced-colors:disabled:border-[GrayText]",
1204
1283
  ghost: "opacity-70 hover:opacity-100 focus:opacity-100"
1205
1284
  } },
1206
1285
  defaultVariants: { variant: "default" }
1207
- }), Rt = L.forwardRef((e, t) => {
1286
+ }), zt = F.forwardRef((e, t) => {
1208
1287
  let i = (0, $.c)(12), a, o, s;
1209
1288
  i[0] === e ? (a = i[1], o = i[2], s = i[3]) : ({className: o, children: a, ...s} = e, i[0] = e, i[1] = a, i[2] = o, i[3] = s);
1210
1289
  let c;
1211
1290
  i[4] === Symbol.for("react.memo_cache_sentinel") ? (c = r.stopPropagation(), i[4] = c) : c = i[4];
1212
1291
  let l;
1213
- i[5] === o ? l = i[6] : (l = n(Lt({}), o), i[5] = o, i[6] = l);
1292
+ i[5] === o ? l = i[6] : (l = n(Rt({}), o), i[5] = o, i[6] = l);
1214
1293
  let u;
1215
- return i[7] !== a || i[8] !== s || i[9] !== t || i[10] !== l ? (u = /* @__PURE__ */ (0, R.jsx)("select", {
1294
+ return i[7] !== a || i[8] !== s || i[9] !== t || i[10] !== l ? (u = /* @__PURE__ */ (0, I.jsx)("select", {
1216
1295
  ref: t,
1217
1296
  onClick: c,
1218
1297
  className: l,
@@ -1220,59 +1299,59 @@ var Lt = a("flex h-6 w-fit mb-1 items-center justify-between rounded-sm bg-backg
1220
1299
  children: a
1221
1300
  }), i[7] = a, i[8] = s, i[9] = t, i[10] = l, i[11] = u) : u = i[11], u;
1222
1301
  });
1223
- Rt.displayName = "NativeSelect";
1302
+ zt.displayName = "NativeSelect";
1224
1303
  //#endregion
1225
1304
  //#region src/components/ui/select.tsx
1226
- var zt = Me, Bt = et, Vt = S(Be), Ht = Ie, Ut = L.forwardRef((e, t) => {
1305
+ var Bt = Ne, Vt = tt, Ht = C(Ve), Ut = Le, Wt = F.forwardRef((e, t) => {
1227
1306
  let r = (0, $.c)(21), i, a, o, s, c, l;
1228
1307
  r[0] === e ? (i = r[1], a = r[2], o = r[3], s = r[4], c = r[5], l = r[6]) : ({className: a, children: i, onClear: o, variant: l, hideChevron: c, ...s} = e, r[0] = e, r[1] = i, r[2] = a, r[3] = o, r[4] = s, r[5] = c, r[6] = l);
1229
1308
  let u = c !== void 0 && c, d;
1230
- r[7] !== a || r[8] !== l ? (d = n(Lt({ variant: l }), "mb-0", a), r[7] = a, r[8] = l, r[9] = d) : d = r[9];
1309
+ r[7] !== a || r[8] !== l ? (d = n(Rt({ variant: l }), "mb-0", a), r[7] = a, r[8] = l, r[9] = d) : d = r[9];
1231
1310
  let f;
1232
- r[10] !== u || r[11] !== o ? (f = o ? /* @__PURE__ */ (0, R.jsx)("span", {
1311
+ r[10] !== u || r[11] !== o ? (f = o ? /* @__PURE__ */ (0, I.jsx)("span", {
1233
1312
  onPointerDown: (e) => {
1234
1313
  e.preventDefault(), e.stopPropagation(), o();
1235
1314
  },
1236
- children: /* @__PURE__ */ (0, R.jsx)(F, { className: "h-4 w-4 opacity-50 hover:opacity-90" })
1237
- }) : !u && /* @__PURE__ */ (0, R.jsx)(N, { className: "h-4 w-4 opacity-50" }), r[10] = u, r[11] = o, r[12] = f) : f = r[12];
1315
+ children: /* @__PURE__ */ (0, I.jsx)(N, { className: "h-4 w-4 opacity-50 hover:opacity-90" })
1316
+ }) : !u && /* @__PURE__ */ (0, I.jsx)(j, { className: "h-4 w-4 opacity-50" }), r[10] = u, r[11] = o, r[12] = f) : f = r[12];
1238
1317
  let p;
1239
- r[13] === f ? p = r[14] : (p = /* @__PURE__ */ (0, R.jsx)(Le, {
1318
+ r[13] === f ? p = r[14] : (p = /* @__PURE__ */ (0, I.jsx)(Re, {
1240
1319
  asChild: !0,
1241
1320
  children: f
1242
1321
  }), r[13] = f, r[14] = p);
1243
1322
  let m;
1244
- return r[15] !== i || r[16] !== s || r[17] !== t || r[18] !== d || r[19] !== p ? (m = /* @__PURE__ */ (0, R.jsxs)(Pe, {
1323
+ return r[15] !== i || r[16] !== s || r[17] !== t || r[18] !== d || r[19] !== p ? (m = /* @__PURE__ */ (0, I.jsxs)(Fe, {
1245
1324
  ref: t,
1246
1325
  className: d,
1247
1326
  ...s,
1248
1327
  children: [i, p]
1249
1328
  }), r[15] = i, r[16] = s, r[17] = t, r[18] = d, r[19] = p, r[20] = m) : m = r[20], m;
1250
1329
  });
1251
- Ut.displayName = Pe.displayName;
1252
- var Wt = x(Ve), Gt = L.forwardRef((e, t) => {
1330
+ Wt.displayName = Fe.displayName;
1331
+ var Gt = v(He), Kt = F.forwardRef((e, t) => {
1253
1332
  let r = (0, $.c)(21), i, a, o, s;
1254
1333
  r[0] === e ? (i = r[1], a = r[2], o = r[3], s = r[4]) : ({className: a, children: i, position: s, ...o} = e, r[0] = e, r[1] = i, r[2] = a, r[3] = o, r[4] = s);
1255
1334
  let c = s === void 0 ? "popper" : s, l = c === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", u;
1256
1335
  r[5] !== a || r[6] !== l ? (u = n("max-h-[300px] relative z-50 min-w-32 overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", l, a), r[5] = a, r[6] = l, r[7] = u) : u = r[7];
1257
1336
  let d;
1258
- r[8] === Symbol.for("react.memo_cache_sentinel") ? (d = /* @__PURE__ */ (0, R.jsx)(ft, {
1337
+ r[8] === Symbol.for("react.memo_cache_sentinel") ? (d = /* @__PURE__ */ (0, I.jsx)(pt, {
1259
1338
  className: "flex items-center justify-center h-[20px] bg-background text-muted-foreground cursor-default",
1260
- children: /* @__PURE__ */ (0, R.jsx)(P, { className: "h-4 w-4" })
1339
+ children: /* @__PURE__ */ (0, I.jsx)(M, { className: "h-4 w-4" })
1261
1340
  }), r[8] = d) : d = r[8];
1262
1341
  let f = c === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width)", p;
1263
1342
  r[9] === f ? p = r[10] : (p = n("p-1", f), r[9] = f, r[10] = p);
1264
1343
  let m;
1265
- r[11] !== i || r[12] !== p ? (m = /* @__PURE__ */ (0, R.jsx)(Ze, {
1344
+ r[11] !== i || r[12] !== p ? (m = /* @__PURE__ */ (0, I.jsx)(Qe, {
1266
1345
  className: p,
1267
1346
  children: i
1268
1347
  }), r[11] = i, r[12] = p, r[13] = m) : m = r[13];
1269
1348
  let h;
1270
- r[14] === Symbol.for("react.memo_cache_sentinel") ? (h = /* @__PURE__ */ (0, R.jsx)(mt, {
1349
+ r[14] === Symbol.for("react.memo_cache_sentinel") ? (h = /* @__PURE__ */ (0, I.jsx)(ht, {
1271
1350
  className: "flex items-center justify-center h-[20px] bg-background text-muted-foreground cursor-default",
1272
- children: /* @__PURE__ */ (0, R.jsx)(N, { className: "h-4 w-4 opacity-50" })
1351
+ children: /* @__PURE__ */ (0, I.jsx)(j, { className: "h-4 w-4 opacity-50" })
1273
1352
  }), r[14] = h) : h = r[14];
1274
1353
  let g;
1275
- return r[15] !== c || r[16] !== o || r[17] !== t || r[18] !== u || r[19] !== m ? (g = /* @__PURE__ */ (0, R.jsx)(Vt, { children: /* @__PURE__ */ (0, R.jsx)(y, { children: /* @__PURE__ */ (0, R.jsxs)(Wt, {
1354
+ return r[15] !== c || r[16] !== o || r[17] !== t || r[18] !== u || r[19] !== m ? (g = /* @__PURE__ */ (0, I.jsx)(Ht, { children: /* @__PURE__ */ (0, I.jsx)(re, { children: /* @__PURE__ */ (0, I.jsxs)(Gt, {
1276
1355
  ref: t,
1277
1356
  className: u,
1278
1357
  position: c,
@@ -1284,38 +1363,38 @@ var Wt = x(Ve), Gt = L.forwardRef((e, t) => {
1284
1363
  ]
1285
1364
  }) }) }), r[15] = c, r[16] = o, r[17] = t, r[18] = u, r[19] = m, r[20] = g) : g = r[20], g;
1286
1365
  });
1287
- Gt.displayName = Ve.displayName;
1288
- var Kt = L.forwardRef((e, t) => {
1366
+ Kt.displayName = He.displayName;
1367
+ var qt = F.forwardRef((e, t) => {
1289
1368
  let r = (0, $.c)(9), i, a;
1290
1369
  r[0] === e ? (i = r[1], a = r[2]) : ({className: i, ...a} = e, r[0] = e, r[1] = i, r[2] = a);
1291
1370
  let o;
1292
1371
  r[3] === i ? o = r[4] : (o = n("px-2 py-1.5 text-sm font-semibold", i), r[3] = i, r[4] = o);
1293
1372
  let s;
1294
- return r[5] !== a || r[6] !== t || r[7] !== o ? (s = /* @__PURE__ */ (0, R.jsx)(nt, {
1373
+ return r[5] !== a || r[6] !== t || r[7] !== o ? (s = /* @__PURE__ */ (0, I.jsx)(rt, {
1295
1374
  ref: t,
1296
1375
  className: o,
1297
1376
  ...a
1298
1377
  }), r[5] = a, r[6] = t, r[7] = o, r[8] = s) : s = r[8], s;
1299
1378
  });
1300
- Kt.displayName = nt.displayName;
1301
- var qt = L.forwardRef((e, t) => {
1379
+ qt.displayName = rt.displayName;
1380
+ var Jt = F.forwardRef((e, t) => {
1302
1381
  let r = (0, $.c)(17), i, a, o, s;
1303
1382
  r[0] === e ? (i = r[1], a = r[2], o = r[3], s = r[4]) : ({className: a, children: i, subtitle: s, ...o} = e, r[0] = e, r[1] = i, r[2] = a, r[3] = o, r[4] = s);
1304
1383
  let c;
1305
- r[5] === a ? c = r[6] : (c = n("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-hidden data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground forced-colors:data-[highlighted]:bg-[Highlight] forced-colors:data-[highlighted]:text-[HighlightText]", At, a), r[5] = a, r[6] = c);
1384
+ r[5] === a ? c = r[6] : (c = n("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-hidden data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground forced-colors:data-[highlighted]:bg-[Highlight] forced-colors:data-[highlighted]:text-[HighlightText]", jt, a), r[5] = a, r[6] = c);
1306
1385
  let l;
1307
- r[7] === Symbol.for("react.memo_cache_sentinel") ? (l = /* @__PURE__ */ (0, R.jsx)("span", {
1386
+ r[7] === Symbol.for("react.memo_cache_sentinel") ? (l = /* @__PURE__ */ (0, I.jsx)("span", {
1308
1387
  className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center",
1309
- children: /* @__PURE__ */ (0, R.jsx)(ut, { children: /* @__PURE__ */ (0, R.jsx)(h, { className: "h-3 w-3" }) })
1388
+ children: /* @__PURE__ */ (0, I.jsx)(dt, { children: /* @__PURE__ */ (0, I.jsx)(h, { className: "h-3 w-3" }) })
1310
1389
  }), r[7] = l) : l = r[7];
1311
1390
  let u = typeof i != "string" || void 0, d;
1312
- r[8] !== i || r[9] !== u ? (d = /* @__PURE__ */ (0, R.jsx)(ct, {
1391
+ r[8] !== i || r[9] !== u ? (d = /* @__PURE__ */ (0, I.jsx)(lt, {
1313
1392
  asChild: u,
1314
1393
  className: "flex w-full flex-1",
1315
1394
  children: i
1316
1395
  }), r[8] = i, r[9] = u, r[10] = d) : d = r[10];
1317
1396
  let f;
1318
- return r[11] !== o || r[12] !== t || r[13] !== s || r[14] !== c || r[15] !== d ? (f = /* @__PURE__ */ (0, R.jsxs)(ot, {
1397
+ return r[11] !== o || r[12] !== t || r[13] !== s || r[14] !== c || r[15] !== d ? (f = /* @__PURE__ */ (0, I.jsxs)(st, {
1319
1398
  ref: t,
1320
1399
  className: c,
1321
1400
  ...o,
@@ -1326,19 +1405,19 @@ var qt = L.forwardRef((e, t) => {
1326
1405
  ]
1327
1406
  }), r[11] = o, r[12] = t, r[13] = s, r[14] = c, r[15] = d, r[16] = f) : f = r[16], f;
1328
1407
  });
1329
- qt.displayName = ot.displayName;
1330
- var Jt = L.forwardRef((e, t) => {
1408
+ Jt.displayName = st.displayName;
1409
+ var Yt = F.forwardRef((e, t) => {
1331
1410
  let r = (0, $.c)(9), i, a;
1332
1411
  r[0] === e ? (i = r[1], a = r[2]) : ({className: i, ...a} = e, r[0] = e, r[1] = i, r[2] = a);
1333
1412
  let o;
1334
1413
  r[3] === i ? o = r[4] : (o = n("-mx-1 my-1 h-px bg-muted", i), r[3] = i, r[4] = o);
1335
1414
  let s;
1336
- return r[5] !== a || r[6] !== t || r[7] !== o ? (s = /* @__PURE__ */ (0, R.jsx)(gt, {
1415
+ return r[5] !== a || r[6] !== t || r[7] !== o ? (s = /* @__PURE__ */ (0, I.jsx)(_t, {
1337
1416
  ref: t,
1338
1417
  className: o,
1339
1418
  ...a
1340
1419
  }), r[5] = a, r[6] = t, r[7] = o, r[8] = s) : s = r[8], s;
1341
1420
  });
1342
- Jt.displayName = gt.displayName;
1421
+ Yt.displayName = _t.displayName;
1343
1422
  //#endregion
1344
- export { F as A, wt as C, ge as D, ye as E, N as M, pe as O, Ct as S, Pe as T, Nt as _, Kt as a, Dt as b, Ht as c, At as d, It as f, Pt as g, jt as h, qt as i, P as j, V as k, Rt as l, Mt as m, Gt as n, Jt as o, Ot as p, Bt as r, Ut as s, zt as t, Lt as u, Ft as v, Le as w, Tt as x, kt as y };
1423
+ export { N as A, Tt as C, he as D, ve as E, j as M, z as O, wt as S, Fe as T, Pt as _, qt as a, Ot as b, Ut as c, jt as d, Lt as f, Ft as g, Mt as h, Jt as i, M as j, oe as k, zt as l, Nt as m, Kt as n, Yt as o, kt as p, Vt as r, Wt as s, Bt as t, Rt as u, It as v, Re as w, Et as x, At as y };