@marimo-team/islands 0.25.3-dev21 → 0.25.3-dev211

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 (717) hide show
  1. package/dist/{ConnectedDataExplorerComponent-DfG3PRaJ.js → ConnectedDataExplorerComponent-D6RHJV8D.js} +120 -116
  2. package/dist/{ErrorBoundary-ttSr7_91.js → ErrorBoundary-BpGAot_X.js} +16 -16
  3. package/dist/{abnfDiagram-VCTEODGH-B3w-XWX8.js → abnfDiagram-VCTEODGH-0q7Lbmii.js} +2 -2
  4. package/dist/any-language-editor-jGaR0EAo.js +75 -0
  5. package/dist/{architectureDiagram-5GKGNRK7-C18U9A6k.js → architectureDiagram-5GKGNRK7-1PydKPmE.js} +1 -1
  6. package/dist/{arrays-CN1djC4k.js → arrays-DoQ-AILx.js} +15 -27
  7. package/dist/assets/__vite-browser-external-CBRgnYY0.js +1 -0
  8. package/dist/assets/worker-DiPNP__U.js +113 -0
  9. package/dist/{button-CvjkwdSk.js → button-B6RjDKJx.js} +227 -217
  10. package/dist/{capabilities-CQ5IjhzL.js → capabilities-CkVzWJEX.js} +2 -2
  11. package/dist/{chat-ui-w8SVynkn.js → chat-ui-B5pH_aXk.js} +1277 -1275
  12. package/dist/{check-BMKBBrdc.js → check-Z_vtI3OL.js} +1 -1
  13. package/dist/{chunk-IMKFNOWR-CrS5bzqW.js → chunk-IMKFNOWR-DEzZZ1Zc.js} +1 -1
  14. package/dist/{chunk-SHT3W25Y-StpvPvUG.js → chunk-SHT3W25Y-CuHj-hnn.js} +1 -1
  15. package/dist/{chunk-SVP7TREG-CBXjbYZC.js → chunk-SVP7TREG-BPiZK2bA.js} +1 -1
  16. package/dist/{chunk-TICWLB2K-Dp6bIb-q.js → chunk-TICWLB2K-DF6XcIjM.js} +1 -1
  17. package/dist/{chunk-YOKDWASO-DPZk8vhS.js → chunk-YOKDWASO-DKplTrBY.js} +20 -20
  18. package/dist/{classDiagram-ZZMXUADV-BFYuxV5g.js → classDiagram-ZZMXUADV-CMdR-cP4.js} +2 -2
  19. package/dist/{classDiagram-v2-VYDZK3BY-D_tjXVMl.js → classDiagram-v2-VYDZK3BY-DRvc3_7Y.js} +2 -2
  20. package/dist/code-visibility-B5trOyTh.js +134 -0
  21. package/dist/{common-CeebhhhO.js → common-BiM3Xm_d.js} +9837 -9658
  22. package/dist/config-DbjzjwxX.js +636 -0
  23. package/dist/{copy-icon-BgUO8jsi.js → copy-icon-CG57cxwb.js} +3 -3
  24. package/dist/createReducer-DePYJ0F3.js +63 -0
  25. package/dist/{cynefinDiagram-5FMLGOSQ-DSgYrHB2.js → cynefinDiagram-5FMLGOSQ-BkBjEY9l.js} +1 -1
  26. package/dist/{dagre-GXQ25YYZ-GYlruCBf.js → dagre-GXQ25YYZ-D-HEaW4I.js} +1 -1
  27. package/dist/{data-grid-overlay-editor-vxQ4E6k1.js → data-grid-overlay-editor-GxGkM-Al.js} +5 -5
  28. package/dist/{data-grid-types-BH_r7g7l.js → data-grid-types-0PJ-9N5n.js} +1 -1
  29. package/dist/{diagram-S7CK7UJ4-DRu5LX5_.js → diagram-S7CK7UJ4-Bn-oF-rB.js} +1 -1
  30. package/dist/{diagram-UQ7AKVKN-DD7uiejP.js → diagram-UQ7AKVKN-BpzzXWBj.js} +1 -1
  31. package/dist/{diagram-VX7I27RA-ByH9KAJJ.js → diagram-VX7I27RA-COOtvfBP.js} +1 -1
  32. package/dist/{diagram-Z3DM3KII-BsQHPRke.js → diagram-Z3DM3KII-K5cXvbrl.js} +1 -1
  33. package/dist/{dialog-Cc479ZEH.js → dialog-DsZ49mmU.js} +26 -26
  34. package/dist/{dist-Bvs24R_E.js → dist-11T5wq3_.js} +31 -30
  35. package/dist/{dist-F8Ep36rk.js → dist-17ugwGZc.js} +59 -58
  36. package/dist/{dist-BMQf5zIS.js → dist-7cRjf--y.js} +123 -122
  37. package/dist/{dist-diIx5qJW.js → dist-B8pkfkzc.js} +31 -30
  38. package/dist/{dist-CN_BeG2I.js → dist-B9UoM_wq.js} +58 -57
  39. package/dist/{dist-CLdpGQVr.js → dist-BGuMTs1i.js} +118 -117
  40. package/dist/{dist-BK4Oj99o.js → dist-BHW11fni.js} +18 -17
  41. package/dist/dist-BLY4m1Wi.js +850 -0
  42. package/dist/{dist-PXYI_yuP.js → dist-BNlcVoxs.js} +24 -23
  43. package/dist/{dist-D6d86eNJ.js → dist-BQYe5Bju.js} +47 -46
  44. package/dist/{dist-CkTTIdBe.js → dist-BX1mn8na.js} +337 -337
  45. package/dist/{dist-DiDibOYr.js → dist-Bh0PTKUW.js} +151 -150
  46. package/dist/{dist-CSJ0MDRw.js → dist-CKaXK92p.js} +56 -55
  47. package/dist/{dist-C8fAKSH1.js → dist-CLhwfhpJ.js} +53 -52
  48. package/dist/{dist-DoE4XJBC.js → dist-CYeqK4Xw.js} +9801 -10649
  49. package/dist/{dist-BLfKmR-l.js → dist-Cxlp3WH6.js} +16 -15
  50. package/dist/{dist-D-wwqlzJ.js → dist-DSJPGj42.js} +158 -157
  51. package/dist/{dist-BorMD-uX.js → dist-DU9ICsWZ.js} +75 -74
  52. package/dist/{dist-DBtSl3sf.js → dist-DWv0ALBi.js} +47 -46
  53. package/dist/{dist-OR1OnN-y.js → dist-DiBpWEsB.js} +31 -30
  54. package/dist/{dist-CrSP_H1M.js → dist-DiLFTlnl.js} +242 -242
  55. package/dist/{dist-DpBpA_n1.js → dist-Lm-D-Vr6.js} +3 -3
  56. package/dist/{dist-CSbh1PNP.js → dist-cVDV5IuI.js} +23 -22
  57. package/dist/{dist-BuaRHxOc.js → dist-fRfaOoq8.js} +44 -43
  58. package/dist/{dist-Cg7gzw-a.js → dist-gTTI-9Px.js} +78 -77
  59. package/dist/dropdown-menu-CSNdPSnS.js +6083 -0
  60. package/dist/{ebnfDiagram-PWID7BFC-CQRK5_eT.js → ebnfDiagram-PWID7BFC-BI1ZmjVm.js} +2 -2
  61. package/dist/{erDiagram-RLTQ6QDP-BKtWrDVh.js → erDiagram-RLTQ6QDP-BtWjj9xy.js} +1 -1
  62. package/dist/{error-banner-CFPHFw4h.js → error-banner-IsonnvA0.js} +84 -83
  63. package/dist/error-entries-CRPfxMqm.js +2505 -0
  64. package/dist/{esm-D2gTsXEV.js → esm-BgKjMvWw.js} +530 -529
  65. package/dist/{esm-AMFssoNp.js → esm-CHjVSexr.js} +328 -329
  66. package/dist/feedback-button-CAxVqhvl.js +374 -0
  67. package/dist/{flowDiagram-HODETNUW-1IN-ih2E.js → flowDiagram-HODETNUW-DQvZh96A.js} +2 -2
  68. package/dist/{formats-X4mMQWzX.js → formats-BK4VefeF.js} +6 -6
  69. package/dist/{ganttDiagram-EL5Y4UJY-BQT16JSc.js → ganttDiagram-EL5Y4UJY-Dh_4cBJZ.js} +2 -2
  70. package/dist/{glide-data-editor-CSYHMRDu.js → glide-data-editor-CBX2wLtn.js} +417 -415
  71. package/dist/{glide-utils-DM9zBO4W.js → glide-utils-CQddGpa-.js} +16 -16
  72. package/dist/{globals-Fpiwkv4D.js → globals-DuCA4LSq.js} +3 -3
  73. package/dist/{highlighted-body-KPVGNVTW-zwjq21tf.js → highlighted-body-KPVGNVTW-3Ziwfz-V.js} +2 -2
  74. package/dist/{error-entries-Damuuclv.js → html-to-image-CgAnxFi8.js} +26911 -26769
  75. package/dist/{infoDiagram-27XIBGKW-CkB-zr4p.js → infoDiagram-27XIBGKW-BdAObnc_.js} +1 -1
  76. package/dist/{ishikawaDiagram-5VMMS53U-wlyLjBmM.js → ishikawaDiagram-5VMMS53U-DP-jE8dw.js} +1 -1
  77. package/dist/{kanban-definition-UXKFOSKX-C2usY0i-.js → kanban-definition-UXKFOSKX-BkMgPjfm.js} +1 -1
  78. package/dist/{linear-Cnaq3Tfb.js → linear-DWERh7eI.js} +121 -73
  79. package/dist/{loader-BQOfjTIJ.js → loader-BisjOLiW.js} +12 -12
  80. package/dist/main.js +10128 -8127
  81. package/dist/{mermaid-BA-Z6wGL.js → mermaid-B-OFqheA.js} +52 -52
  82. package/dist/mermaid-HWGCJPDP-Du3-HPQA.js +2 -0
  83. package/dist/{mindmap-definition-YA3MSWOX-nKOWS8RR.js → mindmap-definition-YA3MSWOX-Du7toAZX.js} +1 -1
  84. package/dist/{number-overlay-editor-BOjqsq7D.js → number-overlay-editor-KvS7Rgw9.js} +3 -3
  85. package/dist/{dist-CN8zI-XC.js → objectWithoutPropertiesLoose-ai5NUqGa.js} +262 -240
  86. package/dist/{objects-CzUgoMIF.js → objects-DCmMvZtn.js} +1 -3
  87. package/dist/{once-BtE-wKRL.js → once-NnpX_HnX.js} +1 -1
  88. package/dist/{pegDiagram-XKGWAZYB-Dac9EIKD.js → pegDiagram-XKGWAZYB-CX_729j0.js} +2 -2
  89. package/dist/{pieDiagram-E7YTZNPT-B7S-DsW_.js → pieDiagram-E7YTZNPT-dtTFJcVI.js} +1 -1
  90. package/dist/precisionRound-DhAzeRcm.js +49 -0
  91. package/dist/{process-output-CTPTtxXB.js → process-output-Bmev5azU.js} +4 -4
  92. package/dist/{quadrantDiagram-AXDQQJYC-Ccw0xMjN.js → quadrantDiagram-AXDQQJYC-Blrm7V7_.js} +1 -1
  93. package/dist/{railroadDiagram-O6MQD6OU-Cfa5Q-hr.js → railroadDiagram-O6MQD6OU-Dsc2Cf4c.js} +2 -2
  94. package/dist/{react-vega-BED0DjiB.js → react-vega-C4T9Rb_w.js} +12284 -12270
  95. package/dist/{requirementDiagram-BXWQKSXE-d8zXCJIk.js → requirementDiagram-BXWQKSXE-D3g0c60I.js} +1 -1
  96. package/dist/{reveal-component-Brpo7CP8.js → reveal-component-CqBvRKJz.js} +426 -403
  97. package/dist/schemas-CdscWNy_.js +4747 -0
  98. package/dist/select-BSxlITBo.js +1200 -0
  99. package/dist/{sequenceDiagram-WJ2MYXX4-b6pei3lJ.js → sequenceDiagram-WJ2MYXX4-w1pWbIpk.js} +1 -1
  100. package/dist/{spec-BJzgmvVa.js → spec-Dq8RNplp.js} +41 -11
  101. package/dist/{stateDiagram-D77RDMKH-Be-xSpaZ.js → stateDiagram-D77RDMKH-BCv7kP4H.js} +2 -2
  102. package/dist/{stateDiagram-v2-MP3YSRHH-5Y-FxesJ.js → stateDiagram-v2-MP3YSRHH-D1cTOt0x.js} +2 -2
  103. package/dist/static-state-BldGd99T.js +72 -0
  104. package/dist/strings-BGW-fXVJ.js +507 -0
  105. package/dist/style.css +1 -1
  106. package/dist/{swimlanes-42K2YHIH-nRRl4NU0.js → swimlanes-42K2YHIH-DNO6jDnd.js} +1 -1
  107. package/dist/{swimlanesDiagram-VR7AAH4N-BS79510V.js → swimlanesDiagram-VR7AAH4N-CkSWsxYJ.js} +2 -2
  108. package/dist/{swiper-component-DKntyn8p.js → swiper-component-Dir1o8ml.js} +2 -2
  109. package/dist/{time-BieKwdYS.js → time-BaMbJs4z.js} +18 -18
  110. package/dist/{timeline-definition-24CTP7MA-Cfzf8WPf.js → timeline-definition-24CTP7MA-DQvqGFM9.js} +1 -1
  111. package/dist/toast-BWIPi3aF.js +491 -0
  112. package/dist/{tooltip-CtBZ5q8p.js → tooltip-C3UnvsRe.js} +329 -305
  113. package/dist/use-restore-focus-BWO0z1lo.js +1672 -0
  114. package/dist/{useAsyncData-BD534XmW.js → useAsyncData-DsZMvNXn.js} +15 -14
  115. package/dist/{useDateFormatter-DkajGwwd.js → useDateFormatter-ChB4eyim.js} +2 -2
  116. package/dist/{useDeepCompareMemoize-C72_RNsu.js → useDeepCompareMemoize-KMBBux8C.js} +1 -1
  117. package/dist/{useIframeCapabilities-DBETvvPl.js → useIframeCapabilities-cMNQ80CK.js} +1 -1
  118. package/dist/useLifecycle-BquH9ET-.js +112 -0
  119. package/dist/useTheme-B9C1JIy9.js +307 -0
  120. package/dist/utils-DXkj82sK.js +813 -0
  121. package/dist/{vega-component-DfcYgj-Y.js → vega-component-9NOEITbg.js} +170 -169
  122. package/dist/{vega-embed-container-BNHE18G9.js → vega-embed-container--LYZqguO.js} +2 -2
  123. package/dist/{vega-loader.browser-DNST6uVf.js → vega-loader.browser-B9Pz0EGP.js} +298 -507
  124. package/dist/{vennDiagram-4TSXK5OY-CeY6Z1xZ.js → vennDiagram-4TSXK5OY-BfzXp4SH.js} +1 -1
  125. package/dist/{wardleyDiagram-VM6X3IG4-Cxs9NtVi.js → wardleyDiagram-VM6X3IG4-CiqEE8eq.js} +1 -1
  126. package/dist/{xychartDiagram-S5SC5T6Z-DNWbvPK7.js → xychartDiagram-S5SC5T6Z-BTIHCVOI.js} +2 -2
  127. package/package.json +16 -20
  128. package/src/__mocks__/document.tsx +63 -0
  129. package/src/__mocks__/notebook.ts +3 -4
  130. package/src/__mocks__/partial.ts +26 -0
  131. package/src/__mocks__/requests.ts +1 -4
  132. package/src/__tests__/main.test.tsx +24 -1
  133. package/src/__tests__/module-entry.test.ts +44 -0
  134. package/src/__tests__/mount.test.ts +1 -21
  135. package/src/__tests__/{host-imports.test.ts → replica-imports.test.ts} +12 -11
  136. package/src/components/ai/__tests__/ai-model-dropdown.test.tsx +63 -0
  137. package/src/components/ai/ai-model-dropdown.tsx +11 -6
  138. package/src/components/app-config/ai-config.tsx +7 -2
  139. package/src/components/app-config/app-config-form.tsx +5 -9
  140. package/src/components/app-config/user-config-form.tsx +35 -56
  141. package/src/components/chat/__tests__/message-queue.test.tsx +17 -0
  142. package/src/components/chat/__tests__/notebook-access-selector.test.tsx +64 -0
  143. package/src/components/chat/acp/__tests__/session-tabs.test.tsx +43 -0
  144. package/src/components/chat/acp/__tests__/state.test.ts +2 -2
  145. package/src/components/chat/acp/blocks.tsx +3 -2
  146. package/src/components/chat/acp/session-tabs.tsx +8 -3
  147. package/src/components/chat/chat-components.tsx +2 -0
  148. package/src/components/chat/chat-panel.tsx +20 -101
  149. package/src/components/chat/chat-utils.ts +4 -8
  150. package/src/components/chat/notebook-access-selector.stories.tsx +22 -0
  151. package/src/components/chat/notebook-access-selector.tsx +100 -0
  152. package/src/components/data-table/TableBottomBar.tsx +4 -1
  153. package/src/components/data-table/TableTopBar.tsx +2 -0
  154. package/src/components/data-table/__tests__/chart-spec-model.test.ts +195 -195
  155. package/src/components/data-table/__tests__/column-explorer.test.tsx +27 -1
  156. package/src/components/data-table/__tests__/columns.test.tsx +105 -0
  157. package/src/components/data-table/__tests__/context-menu-interaction.test.tsx +130 -0
  158. package/src/components/data-table/__tests__/data-table.test.tsx +1 -0
  159. package/src/components/data-table/__tests__/date-popover.test.tsx +72 -0
  160. package/src/components/data-table/__tests__/export-actions.test.tsx +105 -0
  161. package/src/components/data-table/__tests__/keyboard-selection.test.tsx +188 -0
  162. package/src/components/data-table/__tests__/pagination.test.tsx +28 -1
  163. package/src/components/data-table/__tests__/search-highlight.test.tsx +109 -0
  164. package/src/components/data-table/__tests__/url-detector.test.tsx +74 -0
  165. package/src/components/data-table/cell-selection/feature.ts +2 -2
  166. package/src/components/data-table/cell-selection/types.ts +2 -2
  167. package/src/components/data-table/charts/__tests__/chart-panel.test.tsx +74 -1
  168. package/src/components/data-table/charts/__tests__/spec-snapshot.test.ts +20 -20
  169. package/src/components/data-table/charts/__tests__/spec.test.ts +78 -52
  170. package/src/components/data-table/charts/__tests__/storage.test.ts +4 -1
  171. package/src/components/data-table/charts/chart-spec/spec.ts +68 -43
  172. package/src/components/data-table/charts/charts.tsx +40 -30
  173. package/src/components/data-table/charts/storage.ts +16 -5
  174. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +1 -1
  175. package/src/components/data-table/column-summary/chart-spec-model.tsx +23 -16
  176. package/src/components/data-table/column-summary/column-summary.tsx +2 -4
  177. package/src/components/data-table/column-visibility-dropdown.tsx +8 -13
  178. package/src/components/data-table/columns.tsx +45 -46
  179. package/src/components/data-table/context-menu.tsx +36 -20
  180. package/src/components/data-table/data-table.tsx +17 -1
  181. package/src/components/data-table/date-popover.tsx +6 -4
  182. package/src/components/data-table/export-actions.tsx +76 -48
  183. package/src/components/data-table/pagination.tsx +44 -33
  184. package/src/components/data-table/range-focus/atoms.ts +4 -6
  185. package/src/components/data-table/range-focus/use-cell-range-selection.ts +65 -38
  186. package/src/components/data-table/range-focus/use-scroll-into-view.ts +21 -2
  187. package/src/components/data-table/renderers.tsx +16 -7
  188. package/src/components/data-table/row-viewer-panel/__tests__/row-viewer.test.tsx +24 -1
  189. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +4 -4
  190. package/src/components/data-table/search-highlight.tsx +79 -0
  191. package/src/components/data-table/types.ts +1 -0
  192. package/src/components/data-table/url-detector.tsx +49 -9
  193. package/src/components/datasources/__tests__/column-actions.test.tsx +97 -0
  194. package/src/components/datasources/__tests__/column-preview.test.tsx +96 -5
  195. package/src/components/datasources/__tests__/datasources-interactions.test.tsx +181 -0
  196. package/src/components/datasources/__tests__/table-list.test.tsx +118 -0
  197. package/src/components/datasources/__tests__/utils.test.ts +57 -6
  198. package/src/components/datasources/column-preview.tsx +17 -12
  199. package/src/components/datasources/datasources.tsx +56 -43
  200. package/src/components/datasources/utils.ts +32 -23
  201. package/src/components/debugger/debugger-code.tsx +5 -0
  202. package/src/components/dependency-graph/custom-node.tsx +1 -1
  203. package/src/components/dependency-graph/dependency-graph-tree.tsx +8 -8
  204. package/src/components/dependency-graph/elements.ts +24 -21
  205. package/src/components/dependency-graph/minimap-content.tsx +13 -19
  206. package/src/components/dependency-graph/panels.tsx +4 -2
  207. package/src/components/dependency-graph/utils/__tests__/layout.test.ts +18 -11
  208. package/src/components/editor/SortableCell.tsx +1 -3
  209. package/src/components/editor/__tests__/Output.test.tsx +50 -32
  210. package/src/{core/attachments/__tests__/toast.test.tsx → components/editor/__tests__/agent-toast.test.tsx} +1 -1
  211. package/src/components/editor/__tests__/data-attributes.test.tsx +28 -14
  212. package/src/components/editor/__tests__/dynamic-favicon.test.tsx +111 -18
  213. package/src/components/editor/__tests__/output-persistence.test.tsx +6 -2
  214. package/src/components/editor/__tests__/package-alert.test.tsx +22 -1
  215. package/src/components/editor/actions/__tests__/name-cell-input.test.tsx +69 -0
  216. package/src/components/editor/actions/__tests__/pair-with-agent-modal.test.tsx +34 -8
  217. package/src/components/editor/actions/__tests__/pair-with-agent.test.tsx +2 -6
  218. package/src/components/editor/actions/__tests__/useCellActionButton.test.tsx +113 -0
  219. package/src/components/editor/actions/name-cell-input.tsx +4 -3
  220. package/src/components/editor/actions/pair-with-agent-commands.ts +2 -2
  221. package/src/components/editor/actions/pair-with-agent-modal.tsx +19 -16
  222. package/src/components/editor/actions/useCellActionButton.tsx +36 -31
  223. package/src/components/editor/actions/useConfigActions.tsx +3 -4
  224. package/src/components/editor/actions/useNotebookActions.tsx +19 -23
  225. package/src/components/editor/actions/useRestartKernel.tsx +1 -1
  226. package/src/components/editor/actions/useSetCodeVisibility.ts +11 -12
  227. package/src/components/editor/actions/useSetOutputsExpanded.ts +14 -19
  228. package/src/components/editor/ai/add-cell-with-ai.tsx +3 -3
  229. package/src/components/editor/ai/ai-completion-editor.tsx +1 -0
  230. package/src/components/editor/alerts/__tests__/connection-notice.test.tsx +1 -1
  231. package/src/components/editor/alerts/connection-notice.tsx +1 -1
  232. package/src/components/editor/alerts/startup-logs-alert.tsx +1 -0
  233. package/src/components/editor/alerts/stdin-blocking-alert.tsx +1 -1
  234. package/src/components/editor/app-container.tsx +1 -1
  235. package/src/components/editor/boundary/__tests__/ErrorBoundary.test.tsx +1 -1
  236. package/src/components/editor/cell/CreateCellButton.tsx +15 -21
  237. package/src/components/editor/cell/DeleteButton.tsx +3 -2
  238. package/src/components/editor/cell/RunButton.tsx +2 -2
  239. package/src/components/editor/cell/StagedAICell.tsx +10 -2
  240. package/src/components/editor/cell/StopButton.tsx +2 -2
  241. package/src/components/editor/cell/__tests__/StagedAICell.test.tsx +4 -2
  242. package/src/components/editor/cell/__tests__/useShouldShowInterrupt.test.ts +39 -0
  243. package/src/components/editor/cell/cell-actions.tsx +12 -1
  244. package/src/components/editor/cell/code/__tests__/language-toggle.test.tsx +54 -0
  245. package/src/components/editor/cell/code/cell-editor.tsx +46 -165
  246. package/src/components/editor/cell/code/language-toggle.tsx +8 -7
  247. package/src/components/editor/cell/collapse.tsx +11 -4
  248. package/src/components/editor/cell/useAddCell.ts +4 -8
  249. package/src/components/editor/cell/useDeleteCell.tsx +10 -36
  250. package/src/components/editor/cell/useRunCells.ts +2 -5
  251. package/src/components/editor/cell/useShouldShowInterrupt.ts +2 -12
  252. package/src/components/editor/cell/useSplitCell.tsx +10 -6
  253. package/src/components/editor/chrome/components/__tests__/feedback-button.test.tsx +1 -1
  254. package/src/components/editor/chrome/components/feedback-button.tsx +2 -8
  255. package/src/components/editor/chrome/panels/__tests__/packages-panel.test.tsx +31 -2
  256. package/src/components/editor/chrome/panels/__tests__/runtime-details.test.tsx +1 -1
  257. package/src/components/editor/chrome/panels/__tests__/sandbox-recovery.test.tsx +1 -1
  258. package/src/components/editor/chrome/panels/cache-panel.tsx +1 -0
  259. package/src/components/editor/chrome/panels/dependency-graph-panel.tsx +1 -1
  260. package/src/components/editor/chrome/panels/logs-panel.tsx +2 -1
  261. package/src/components/editor/chrome/panels/outline/__tests__/outline-keyboard.test.tsx +84 -0
  262. package/src/components/editor/chrome/panels/outline/floating-outline.tsx +39 -14
  263. package/src/components/editor/chrome/panels/outline/useActiveOutline.tsx +3 -2
  264. package/src/components/editor/chrome/panels/packages-panel.tsx +4 -7
  265. package/src/components/editor/chrome/panels/secrets-panel.tsx +1 -0
  266. package/src/components/editor/chrome/panels/session-panel.tsx +1 -1
  267. package/src/components/editor/chrome/panels/snippets-panel.tsx +10 -12
  268. package/src/components/editor/chrome/panels/variable-panel.tsx +1 -5
  269. package/src/components/editor/chrome/wrapper/__tests__/attachment-status.test.tsx +6 -9
  270. package/src/components/editor/chrome/wrapper/__tests__/document-sync-status.test.tsx +92 -0
  271. package/src/components/editor/chrome/wrapper/__tests__/pending-ai-cells.test.tsx +62 -3
  272. package/src/components/editor/chrome/wrapper/footer-items/attachment-status.tsx +4 -4
  273. package/src/components/editor/chrome/wrapper/footer-items/backend-status.tsx +1 -1
  274. package/src/components/editor/chrome/wrapper/footer-items/document-sync-status.tsx +54 -0
  275. package/src/components/editor/chrome/wrapper/footer-items/lsp-status.tsx +1 -1
  276. package/src/components/editor/chrome/wrapper/footer-items/machine-stats.tsx +1 -1
  277. package/src/components/editor/chrome/wrapper/footer-items/runtime-settings.tsx +1 -7
  278. package/src/components/editor/chrome/wrapper/footer.tsx +2 -2
  279. package/src/components/editor/chrome/wrapper/minimap-state.ts +1 -1
  280. package/src/components/editor/chrome/wrapper/pending-ai-cells.tsx +12 -2
  281. package/src/components/editor/chrome/wrapper/storage.ts +1 -1
  282. package/src/components/editor/columns/__tests__/cell-column.test.tsx +1 -1
  283. package/src/components/editor/columns/cell-column.tsx +1 -1
  284. package/src/components/editor/columns/sortable-column.tsx +2 -2
  285. package/src/components/editor/connections/components.tsx +5 -10
  286. package/src/components/editor/controls/Controls.tsx +4 -4
  287. package/src/components/editor/controls/__tests__/command-palette.test.tsx +53 -0
  288. package/src/components/editor/controls/__tests__/keyboard-shortcuts.test.tsx +61 -0
  289. package/src/components/editor/controls/__tests__/notebook-menu-dropdown.test.tsx +10 -4
  290. package/src/components/editor/controls/command-palette.tsx +22 -10
  291. package/src/components/editor/controls/keyboard-shortcuts.tsx +14 -5
  292. package/src/components/editor/documentation.css +34 -11
  293. package/src/components/editor/dynamic-favicon.tsx +21 -40
  294. package/src/components/editor/errors/__tests__/send-error-report-button.test.tsx +25 -20
  295. package/src/components/editor/errors/auto-fix.tsx +4 -8
  296. package/src/components/editor/errors/send-error-report-button.tsx +3 -6
  297. package/src/components/editor/file-tree/__tests__/file-explorer-interactions.test.tsx +6 -0
  298. package/src/components/editor/file-tree/__tests__/file-explorer-navigation.test.tsx +47 -0
  299. package/src/components/editor/file-tree/__tests__/use-file-search.test.tsx +91 -0
  300. package/src/components/editor/file-tree/file-explorer.tsx +48 -15
  301. package/src/components/editor/file-tree/file-name-input.tsx +1 -0
  302. package/src/components/editor/file-tree/file-viewer.tsx +4 -2
  303. package/src/components/editor/file-tree/use-file-search.ts +35 -21
  304. package/src/components/editor/header/__tests__/filename-form.test.tsx +1 -4
  305. package/src/components/editor/header/__tests__/status.test.tsx +5 -3
  306. package/src/components/editor/header/app-header.tsx +1 -1
  307. package/src/components/editor/header/filename-form.tsx +1 -1
  308. package/src/components/editor/header/status.tsx +40 -20
  309. package/src/components/editor/links/__tests__/cell-link.test.tsx +148 -0
  310. package/src/components/editor/links/cell-link-list.tsx +1 -1
  311. package/src/components/editor/links/cell-link.tsx +17 -7
  312. package/src/components/editor/navigation/__tests__/clipboard.test.ts +60 -38
  313. package/src/components/editor/navigation/__tests__/navigation.test.ts +108 -85
  314. package/src/components/editor/navigation/__tests__/selection.test.ts +43 -21
  315. package/src/components/editor/navigation/clipboard.ts +17 -14
  316. package/src/components/editor/navigation/focus-utils.ts +23 -4
  317. package/src/components/editor/navigation/multi-cell-action-toolbar.tsx +17 -33
  318. package/src/components/editor/navigation/navigation.ts +71 -70
  319. package/src/components/editor/navigation/selection.ts +30 -29
  320. package/src/components/editor/notebook-banner.tsx +1 -0
  321. package/src/components/editor/notebook-cell.tsx +29 -32
  322. package/src/components/editor/output/MarimoErrorOutput.tsx +2 -1
  323. package/src/components/editor/output/MarimoTracebackOutput.tsx +19 -17
  324. package/src/components/editor/output/Outputs.css +8 -0
  325. package/src/components/editor/output/__tests__/traceback.test.tsx +27 -1
  326. package/src/components/editor/output/ansi-reduce.ts +33 -20
  327. package/src/components/editor/output/console/ConsoleOutput.tsx +19 -25
  328. package/src/components/editor/output/console/__tests__/ConsoleOutput.test.tsx +125 -69
  329. package/src/components/editor/package-alert.tsx +14 -7
  330. package/src/components/editor/renderers/cell-array.tsx +22 -33
  331. package/src/components/editor/renderers/grid-layout/grid-layout.tsx +12 -6
  332. package/src/components/editor/renderers/slides-layout/__tests__/plugin.test.ts +0 -1
  333. package/src/components/editor/renderers/slides-layout/slides-layout.tsx +1 -1
  334. package/src/components/editor/renderers/vertical-layout/__tests__/useFocusFirstEditor.test.ts +4 -4
  335. package/src/components/editor/renderers/vertical-layout/sidebar/toggle.tsx +7 -1
  336. package/src/components/editor/renderers/vertical-layout/useFocusFirstEditor.ts +1 -1
  337. package/src/components/editor/renderers/vertical-layout/vertical-layout.tsx +1 -1
  338. package/src/components/editor/stdin-blocking-alert.tsx +1 -1
  339. package/src/components/home/components.tsx +17 -31
  340. package/src/components/icons/__tests__/large-spinner.test.tsx +39 -0
  341. package/src/components/icons/large-spinner.tsx +3 -14
  342. package/src/components/icons/spinner.tsx +1 -1
  343. package/src/components/markdown/markdown-renderer.tsx +4 -8
  344. package/src/components/mcp/mcp-status-indicator.tsx +1 -1
  345. package/src/components/pages/__tests__/home-page.test.tsx +116 -0
  346. package/src/components/pages/edit-page.tsx +19 -17
  347. package/src/components/pages/home-page.tsx +164 -91
  348. package/src/components/scratchpad/scratchpad.test.tsx +89 -0
  349. package/src/components/scratchpad/scratchpad.tsx +43 -32
  350. package/src/components/scratchpad/state.ts +7 -0
  351. package/src/components/slides/__tests__/minimap-actions.test.tsx +22 -29
  352. package/src/components/slides/__tests__/minimap.test.ts +38 -19
  353. package/src/components/slides/__tests__/slide-scroll-hint.test.tsx +37 -0
  354. package/src/components/slides/minimap.tsx +17 -12
  355. package/src/components/slides/reveal-component.tsx +58 -26
  356. package/src/components/slides/reveal-slides.css +5 -4
  357. package/src/components/slides/slide-cell-view.tsx +4 -5
  358. package/src/components/slides/slide-form.tsx +1 -0
  359. package/src/components/slides/slide-scroll-hint.tsx +3 -1
  360. package/src/components/sort/SortableCellsProvider.tsx +8 -25
  361. package/src/components/tracing/tracing-keyboard.test.tsx +85 -0
  362. package/src/components/tracing/tracing.tsx +46 -42
  363. package/src/components/ui/__tests__/draggable-popover.test.tsx +24 -0
  364. package/src/components/ui/__tests__/range-slider.test.tsx +165 -0
  365. package/src/components/ui/alert-dialog.tsx +1 -1
  366. package/src/components/ui/draggable-popover.tsx +24 -2
  367. package/src/components/ui/range-slider.tsx +22 -9
  368. package/src/core/MarimoApp.tsx +1 -1
  369. package/src/core/ai/__tests__/staged-cells.test.ts +32 -33
  370. package/src/core/ai/context/providers/__tests__/cell-output.test.ts +8 -12
  371. package/src/core/ai/context/providers/cell-output.ts +2 -2
  372. package/src/core/ai/context/providers/datasource.ts +6 -2
  373. package/src/core/ai/staged-cells.ts +18 -19
  374. package/src/core/ai/tools/__tests__/edit-notebook-tool.test.ts +40 -88
  375. package/src/core/ai/tools/__tests__/registry.test.ts +17 -0
  376. package/src/core/ai/tools/base.ts +18 -15
  377. package/src/core/ai/tools/edit-notebook-tool.ts +86 -80
  378. package/src/core/ai/tools/registry.ts +13 -10
  379. package/src/core/ai/tools/sample-tool.ts +6 -7
  380. package/src/core/cells/__tests__/__snapshots__/cells.test.ts.snap +4 -37
  381. package/src/core/cells/__tests__/actions.test.ts +624 -35
  382. package/src/core/cells/__tests__/add-missing-import.test.ts +7 -8
  383. package/src/core/cells/__tests__/arrange.test.ts +432 -0
  384. package/src/core/cells/__tests__/cell.test.ts +39 -0
  385. package/src/core/cells/__tests__/cells.test.ts +251 -2540
  386. package/src/core/cells/__tests__/collapseConsoleOutputs.test.ts +54 -0
  387. package/src/core/cells/__tests__/document.test.ts +164 -0
  388. package/src/core/cells/__tests__/editor.test.ts +57 -0
  389. package/src/core/cells/__tests__/flush-document.test.ts +40 -0
  390. package/src/core/cells/__tests__/harness.ts +106 -0
  391. package/src/core/cells/__tests__/layout.test.ts +177 -0
  392. package/src/core/cells/__tests__/notebook-outline.test.ts +122 -0
  393. package/src/core/cells/__tests__/outputs.test.tsx +71 -53
  394. package/src/core/cells/__tests__/session.test.ts +445 -211
  395. package/src/core/cells/__tests__/utils.test.ts +9 -108
  396. package/src/core/cells/actions.ts +675 -6
  397. package/src/core/cells/add-missing-import.ts +47 -43
  398. package/src/core/cells/arrange.ts +529 -0
  399. package/src/core/cells/cell.ts +14 -3
  400. package/src/core/cells/cells.ts +126 -1363
  401. package/src/core/cells/columns.ts +38 -0
  402. package/src/core/cells/document.ts +178 -0
  403. package/src/core/cells/edit.ts +30 -0
  404. package/src/core/cells/editor.ts +82 -0
  405. package/src/core/cells/layout.ts +221 -0
  406. package/src/core/cells/outputs.ts +12 -28
  407. package/src/core/cells/pending-delete-service.ts +3 -7
  408. package/src/core/cells/session.ts +76 -53
  409. package/src/core/cells/types.ts +22 -6
  410. package/src/core/cells/utils.ts +10 -8
  411. package/src/core/codemirror/__tests__/format.test.ts +0 -34
  412. package/src/core/codemirror/__tests__/setup.test.ts +29 -29
  413. package/src/core/codemirror/ai/__tests__/resources.test.ts +117 -0
  414. package/src/core/codemirror/ai/resources.ts +1 -1
  415. package/src/core/codemirror/cells/__tests__/extensions.test.ts +2 -6
  416. package/src/core/codemirror/cells/extensions.ts +30 -28
  417. package/src/core/codemirror/cells/state.ts +1 -6
  418. package/src/core/codemirror/copilot/__tests__/getCodes.test.ts +6 -7
  419. package/src/core/codemirror/copilot/getCodes.ts +2 -2
  420. package/src/core/codemirror/format.ts +6 -23
  421. package/src/core/codemirror/keymaps/vim.ts +4 -8
  422. package/src/core/codemirror/language/__tests__/sql.test.ts +22 -20
  423. package/src/core/codemirror/language/__tests__/utils.test.ts +187 -15
  424. package/src/core/codemirror/language/cell-code.ts +114 -0
  425. package/src/core/codemirror/language/extension.ts +52 -35
  426. package/src/core/codemirror/language/languages/markdown.ts +8 -6
  427. package/src/core/codemirror/language/languages/python.ts +16 -10
  428. package/src/core/codemirror/language/languages/sql/sql.ts +16 -24
  429. package/src/core/codemirror/language/panel/panel.tsx +1 -0
  430. package/src/core/codemirror/language/types.ts +7 -7
  431. package/src/core/codemirror/language/utils.ts +9 -39
  432. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +1 -2
  433. package/src/core/codemirror/lsp/notebook-lsp.ts +6 -5
  434. package/src/core/codemirror/lsp/utils.ts +1 -1
  435. package/src/core/codemirror/misc/__tests__/paste.test.ts +3 -1
  436. package/src/core/codemirror/misc/paste.ts +1 -1
  437. package/src/core/codemirror/readonly/__tests__/extension.test.ts +1 -1
  438. package/src/core/codemirror/readonly/extension.ts +2 -2
  439. package/src/core/codemirror/utils.ts +1 -0
  440. package/src/core/config/__tests__/app-config.test.ts +64 -0
  441. package/src/core/config/__tests__/config-schema.test.ts +13 -6
  442. package/src/core/config/config-schema.ts +13 -4
  443. package/src/core/config/config.ts +26 -12
  444. package/src/core/config/feature-flag.tsx +0 -2
  445. package/src/core/datasets/__tests__/data-source-discovery.test.ts +5 -5
  446. package/src/core/datasets/data-source-discovery.ts +4 -6
  447. package/src/core/documentation/doc-lookup.ts +1 -1
  448. package/src/core/edit-app.tsx +21 -28
  449. package/src/core/errors/error-entries.ts +4 -1
  450. package/src/core/export/hooks.ts +1 -1
  451. package/src/core/export/layout.ts +2 -2
  452. package/src/core/hotkeys/actions.ts +2 -4
  453. package/src/core/islands/__tests__/bootstrap.test.ts +69 -17
  454. package/src/core/islands/__tests__/bridge.test.ts +72 -25
  455. package/src/core/islands/bootstrap.ts +46 -53
  456. package/src/core/islands/bridge.ts +75 -24
  457. package/src/core/islands/components/__tests__/IslandControls.test.tsx +7 -5
  458. package/src/core/islands/components/web-components.tsx +1 -1
  459. package/src/core/islands/worker/__tests__/controller.test.ts +62 -4
  460. package/src/core/islands/worker/controller.ts +4 -10
  461. package/src/core/islands/worker/worker.tsx +33 -33
  462. package/src/core/kernel/__tests__/RuntimeState.test.ts +1 -1
  463. package/src/core/kernel/__tests__/handlers.test.ts +7 -153
  464. package/src/core/kernel/handlers.ts +19 -72
  465. package/src/core/meta/__tests__/code-visibility.test.tsx +78 -70
  466. package/src/core/meta/code-visibility.ts +18 -9
  467. package/src/core/network/__tests__/connection.test.ts +1 -1
  468. package/src/core/network/__tests__/requests-lazy.test.ts +1 -3
  469. package/src/core/network/connection-notice.ts +1 -1
  470. package/src/core/network/connection.ts +1 -1
  471. package/src/core/network/requests-lazy.ts +2 -5
  472. package/src/core/network/requests-network.ts +5 -31
  473. package/src/core/network/requests-static.ts +1 -4
  474. package/src/core/network/requests-toasting.tsx +1 -4
  475. package/src/core/network/types.ts +6 -14
  476. package/src/core/network/useConnectionNotice.ts +8 -2
  477. package/src/core/notebook/__tests__/operations.test.ts +51 -0
  478. package/src/core/notebook/attachments.ts +38 -0
  479. package/src/core/notebook/document/__tests__/codemirror.test.ts +758 -0
  480. package/src/core/notebook/document/__tests__/draft.test.ts +363 -0
  481. package/src/core/notebook/document/__tests__/fixtures.ts +92 -0
  482. package/src/core/notebook/document/__tests__/hooks.test.tsx +391 -0
  483. package/src/core/notebook/document/__tests__/lifecycle-scenarios.test.ts +61 -0
  484. package/src/core/notebook/document/__tests__/model.test.ts +247 -0
  485. package/src/core/notebook/document/__tests__/protocol-fixtures.ts +38 -0
  486. package/src/core/notebook/document/__tests__/recovery-scenarios.test.ts +230 -0
  487. package/src/core/notebook/document/__tests__/scenario-fixture.ts +43 -0
  488. package/src/core/notebook/document/__tests__/scenarios.test.ts +205 -0
  489. package/src/core/notebook/document/__tests__/state.test.ts +459 -0
  490. package/src/core/notebook/document/__tests__/submission.test.ts +203 -0
  491. package/src/core/notebook/document/__tests__/test-host.test.ts +92 -0
  492. package/src/core/notebook/document/__tests__/test-host.ts +247 -0
  493. package/src/core/notebook/document/__tests__/test-notebook.ts +149 -0
  494. package/src/core/notebook/document/__tests__/user.ts +61 -0
  495. package/src/core/notebook/document/codemirror.ts +216 -0
  496. package/src/core/notebook/document/draft.ts +502 -0
  497. package/src/core/notebook/document/hooks.tsx +118 -0
  498. package/src/core/notebook/document/index.ts +24 -0
  499. package/src/core/notebook/document/model.ts +102 -0
  500. package/src/core/notebook/document/select.ts +41 -0
  501. package/src/core/notebook/document/state.ts +378 -0
  502. package/src/core/notebook/document/sync.ts +369 -0
  503. package/src/core/notebook/index.ts +19 -0
  504. package/src/core/notebook/operations.ts +30 -0
  505. package/src/core/notebook/replica/AGENTS.md +11 -0
  506. package/src/core/{host → notebook/replica}/__tests__/attachments.test.ts +9 -10
  507. package/src/core/{host → notebook/replica}/__tests__/document.test.ts +18 -16
  508. package/src/core/notebook/replica/__tests__/fixtures.ts +79 -0
  509. package/src/core/notebook/replica/__tests__/replica.test.ts +550 -0
  510. package/src/core/notebook/replica/backend.ts +19 -0
  511. package/src/core/notebook/replica/connection.ts +42 -0
  512. package/src/core/notebook/replica/index.ts +13 -0
  513. package/src/core/notebook/replica/replica.ts +286 -0
  514. package/src/core/{host → notebook/replica}/resources/attachments.ts +6 -3
  515. package/src/core/{host → notebook/replica}/resources/document.ts +4 -4
  516. package/src/core/packages/__tests__/useSandboxController.test.tsx +1 -1
  517. package/src/core/packages/useSandboxController.ts +1 -1
  518. package/src/core/run-app.tsx +48 -51
  519. package/src/core/runtime/__tests__/adapter.test.ts +1 -1
  520. package/src/core/runtime/__tests__/createWsUrl.test.ts +77 -7
  521. package/src/core/runtime/__tests__/runtime.test.ts +32 -74
  522. package/src/core/runtime/adapter.ts +1 -1
  523. package/src/core/runtime/config.ts +2 -2
  524. package/src/core/runtime/runtime.ts +33 -46
  525. package/src/core/runtime/types.ts +0 -2
  526. package/src/core/saving/__tests__/document.test.tsx +123 -0
  527. package/src/core/saving/__tests__/state.test.ts +111 -0
  528. package/src/core/saving/__tests__/useAutoSave.test.tsx +67 -0
  529. package/src/core/saving/document.ts +33 -0
  530. package/src/core/saving/filename.ts +1 -1
  531. package/src/core/saving/save-component.tsx +39 -60
  532. package/src/core/saving/state.ts +38 -39
  533. package/src/core/saving/useAutoSave.ts +17 -53
  534. package/src/core/session/__tests__/backend.test.ts +236 -0
  535. package/src/core/session/__tests__/useNotebookReplica.hook.test.tsx +184 -0
  536. package/src/core/{websocket → session}/__tests__/useNotebookSession.hook.test.tsx +213 -262
  537. package/src/core/session/active-notebook.ts +28 -0
  538. package/src/core/session/backend.ts +123 -0
  539. package/src/core/session/embedded.ts +7 -0
  540. package/src/core/{websocket → session}/types.ts +2 -2
  541. package/src/core/session/useNotebookReplica.ts +74 -0
  542. package/src/core/{websocket → session}/useNotebookSession.tsx +77 -64
  543. package/src/core/state/__tests__/jotai.test.tsx +108 -0
  544. package/src/core/state/jotai.ts +1 -1
  545. package/src/core/static/__tests__/files.test.ts +38 -10
  546. package/src/core/static/files.ts +2 -0
  547. package/src/core/{websocket → transports}/__tests__/connection-state.test.ts +1 -13
  548. package/src/core/transports/__tests__/server.test.ts +408 -0
  549. package/src/core/transports/__tests__/static.test.ts +306 -0
  550. package/src/core/transports/__tests__/wasm.test.ts +166 -0
  551. package/src/core/{websocket → transports}/connection-state.ts +9 -16
  552. package/src/core/transports/server.ts +152 -0
  553. package/src/core/transports/static.ts +166 -0
  554. package/src/core/transports/wasm.ts +97 -0
  555. package/src/core/wasm/__tests__/bridge.test.ts +105 -65
  556. package/src/core/wasm/__tests__/worker.test.ts +187 -0
  557. package/src/core/wasm/bridge.ts +60 -71
  558. package/src/core/wasm/rpc.ts +15 -3
  559. package/src/core/wasm/store.ts +3 -3
  560. package/src/core/wasm/worker/bootstrap.ts +55 -51
  561. package/src/core/wasm/worker/getMarimoWheel.ts +1 -1
  562. package/src/core/wasm/worker/save-worker.ts +9 -10
  563. package/src/core/wasm/worker/types.ts +29 -18
  564. package/src/core/wasm/worker/worker.ts +89 -45
  565. package/src/css/app/codemirror.css +1 -1
  566. package/src/css/globals.css +66 -22
  567. package/src/hooks/__tests__/useAsyncData.test.tsx +148 -0
  568. package/src/hooks/__tests__/useDebounce.test.tsx +51 -0
  569. package/src/hooks/__tests__/useDeepCompareMemoize.test.tsx +39 -0
  570. package/src/hooks/__tests__/useDelayElapsed.test.tsx +28 -0
  571. package/src/hooks/__tests__/useInternalStateWithSync.test.tsx +20 -0
  572. package/src/hooks/__tests__/useScript.test.tsx +77 -0
  573. package/src/hooks/__tests__/useStateForKey.test.tsx +257 -0
  574. package/src/hooks/useAsyncData.ts +3 -3
  575. package/src/hooks/useDataSourceDiscovery.ts +6 -4
  576. package/src/hooks/useDebounce.ts +6 -10
  577. package/src/hooks/useDeepCompareMemoize.ts +1 -1
  578. package/src/hooks/useDelayElapsed.ts +14 -10
  579. package/src/hooks/useElapsedTime.ts +3 -3
  580. package/src/hooks/useEventListener.ts +1 -2
  581. package/src/hooks/useInputHistory.ts +4 -7
  582. package/src/hooks/useInternalStateWithSync.ts +6 -6
  583. package/src/hooks/useResizeObserver.ts +4 -7
  584. package/src/hooks/useScript.ts +67 -70
  585. package/src/hooks/useStateForKey.ts +93 -0
  586. package/src/mount.tsx +20 -15
  587. package/src/plugins/__tests__/plugin-object-schemas.test.ts +104 -0
  588. package/src/plugins/core/registerReactComponent.tsx +1 -1
  589. package/src/plugins/impl/CodeEditorPlugin.tsx +1 -1
  590. package/src/plugins/impl/DataEditorPlugin.tsx +1 -1
  591. package/src/plugins/impl/DataTablePlugin.tsx +69 -37
  592. package/src/plugins/impl/DropdownPlugin.tsx +2 -6
  593. package/src/plugins/impl/FileBrowserPlugin.tsx +4 -16
  594. package/src/plugins/impl/FormPlugin.tsx +1 -1
  595. package/src/plugins/impl/RangeSliderPlugin.tsx +16 -2
  596. package/src/plugins/impl/RefreshPlugin.tsx +1 -0
  597. package/src/plugins/impl/SliderPlugin.tsx +6 -8
  598. package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +387 -1
  599. package/src/plugins/impl/__tests__/FileBrowserPlugin.test.tsx +45 -0
  600. package/src/plugins/impl/__tests__/RangeSliderPlugin.test.tsx +109 -0
  601. package/src/plugins/impl/__tests__/SliderPlugin.test.tsx +24 -3
  602. package/src/plugins/impl/anywidget/__tests__/registry.test.ts +153 -0
  603. package/src/plugins/impl/anywidget/__tests__/widget-binding.test.ts +241 -2
  604. package/src/plugins/impl/anywidget/model.ts +3 -1
  605. package/src/plugins/impl/anywidget/registry.ts +18 -14
  606. package/src/plugins/impl/anywidget/runtime.ts +21 -9
  607. package/src/plugins/impl/anywidget/widget-binding.ts +160 -82
  608. package/src/plugins/impl/chat/__tests__/chat-prompts.test.tsx +93 -0
  609. package/src/plugins/impl/chat/chat-ui.tsx +14 -11
  610. package/src/plugins/impl/code/any-language-editor.tsx +2 -2
  611. package/src/plugins/impl/data-editor/glide-data-editor.tsx +8 -5
  612. package/src/plugins/impl/data-editor/glide-utils.ts +3 -1
  613. package/src/plugins/impl/data-explorer/ConnectedDataExplorerComponent.tsx +1 -1
  614. package/src/plugins/impl/data-explorer/components/column-summary.tsx +4 -2
  615. package/src/plugins/impl/data-explorer/state/reducer.ts +1 -1
  616. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +1 -2
  617. package/src/plugins/impl/data-frames/__tests__/sidebar.test.tsx +160 -0
  618. package/src/plugins/impl/data-frames/forms/__tests__/__snapshots__/form.test.tsx.snap +66 -66
  619. package/src/plugins/impl/data-frames/panel.tsx +43 -16
  620. package/src/plugins/impl/mpl-interactive/MplInteractivePlugin.tsx +5 -3
  621. package/src/plugins/impl/panel/PanelPlugin.tsx +16 -17
  622. package/src/plugins/impl/panel/__tests__/utils.test.ts +39 -1
  623. package/src/plugins/impl/panel/utils.ts +17 -0
  624. package/src/plugins/impl/plotly/PlotlyPlugin.tsx +2 -5
  625. package/src/plugins/impl/plotly/selection.ts +25 -19
  626. package/src/plugins/impl/vega/VegaPlugin.tsx +2 -3
  627. package/src/plugins/impl/vega/make-selectable.ts +4 -7
  628. package/src/plugins/layout/RoutesPlugin.tsx +1 -1
  629. package/src/stories/__tests__/editor-story.test.tsx +33 -0
  630. package/src/stories/button.stories.tsx +1 -0
  631. package/src/stories/cell.stories.tsx +2 -5
  632. package/src/stories/data-table.stories.tsx +31 -0
  633. package/src/stories/editor.stories.tsx +24 -17
  634. package/src/stories/form-wrapper.stories.tsx +2 -2
  635. package/src/stories/layout/vertical/one-column.stories.tsx +28 -23
  636. package/src/stories/runtime-story.tsx +23 -17
  637. package/src/stories/select.stories.tsx +2 -2
  638. package/src/stories/switchable-multi-select.stories.tsx +1 -1
  639. package/src/utils/__tests__/arrays.test.ts +35 -0
  640. package/src/utils/__tests__/batch-requests.test.ts +3 -3
  641. package/src/utils/__tests__/{createReducer.test.ts → createReducer.test.tsx} +29 -0
  642. package/src/utils/__tests__/numbers.test.ts +105 -1
  643. package/src/utils/__tests__/objects.test.ts +21 -0
  644. package/src/utils/arrays.ts +11 -2
  645. package/src/utils/blob.ts +1 -1
  646. package/src/utils/createReducer.ts +53 -26
  647. package/src/utils/maps.ts +0 -3
  648. package/src/utils/numbers.ts +79 -18
  649. package/src/utils/objects.ts +4 -9
  650. package/src/utils/once.ts +19 -19
  651. package/src/utils/tracer.ts +9 -5
  652. package/src/utils/zod-utils.ts +1 -3
  653. package/dist/any-language-editor-D4q-IFcM.js +0 -76
  654. package/dist/assets/__vite-browser-external-BXYkiFsk.js +0 -1
  655. package/dist/assets/worker-HPY9fbhz.js +0 -114
  656. package/dist/code-visibility-DPm4oWK1.js +0 -138
  657. package/dist/dropdown-menu-DHP9P4VE.js +0 -4678
  658. package/dist/feedback-button-DVgw4Y7F.js +0 -379
  659. package/dist/html-to-image-BdA59IUD.js +0 -3251
  660. package/dist/label-DoysmLMW.js +0 -281
  661. package/dist/mermaid-HWGCJPDP-ByCsZnYF.js +0 -2
  662. package/dist/objectWithoutPropertiesLoose-BRDcTsfB.js +0 -23
  663. package/dist/precisionRound-DMIVQrt2.js +0 -97
  664. package/dist/select-DemoKT4G.js +0 -1344
  665. package/dist/toDate-B5mIgxwZ.js +0 -1185
  666. package/dist/toast-PkdZraM8.js +0 -1830
  667. package/dist/use-restore-focus-CKjfFjLM.js +0 -6369
  668. package/dist/useLifecycle-BGWzTwHK.js +0 -169
  669. package/dist/useTheme-BhQvec43.js +0 -904
  670. package/src/components/editor/cell/code/__tests__/rtc-editor-config.test.ts +0 -50
  671. package/src/components/editor/chrome/wrapper/footer-items/rtc-status.tsx +0 -65
  672. package/src/components/editor/navigation/__tests__/state.test.ts +0 -81
  673. package/src/components/editor/navigation/state.ts +0 -65
  674. package/src/core/ai/tools/__tests__/run-cells-tool.test.ts +0 -656
  675. package/src/core/ai/tools/run-cells-tool.ts +0 -303
  676. package/src/core/attachments/state.ts +0 -18
  677. package/src/core/cells/__tests__/apply-transaction.test.ts +0 -991
  678. package/src/core/cells/__tests__/document-changes.test.ts +0 -1140
  679. package/src/core/cells/__tests__/document-roundtrip.test.ts +0 -392
  680. package/src/core/cells/document-changes.ts +0 -944
  681. package/src/core/codemirror/rtc/extension.ts +0 -453
  682. package/src/core/codemirror/rtc/loro/__tests__/sync.test.ts +0 -52
  683. package/src/core/codemirror/rtc/loro/awareness.ts +0 -531
  684. package/src/core/codemirror/rtc/loro/colors.ts +0 -38
  685. package/src/core/codemirror/rtc/loro/sync.ts +0 -168
  686. package/src/core/host/AGENTS.md +0 -11
  687. package/src/core/host/__tests__/events.test.ts +0 -46
  688. package/src/core/host/__tests__/fixtures.ts +0 -39
  689. package/src/core/host/__tests__/notebook-client.test.ts +0 -433
  690. package/src/core/host/__tests__/protocol.test.ts +0 -214
  691. package/src/core/host/__tests__/stream.test.ts +0 -211
  692. package/src/core/host/connection.ts +0 -81
  693. package/src/core/host/events.ts +0 -61
  694. package/src/core/host/notebook-client.ts +0 -290
  695. package/src/core/host/protocol.ts +0 -1943
  696. package/src/core/host/resources/resource.ts +0 -59
  697. package/src/core/host/stream.ts +0 -213
  698. package/src/core/rtc/state.ts +0 -34
  699. package/src/core/state/__tests__/jotai.test.ts +0 -25
  700. package/src/core/wasm/worker/message-buffer.ts +0 -33
  701. package/src/core/websocket/__tests__/createConnectionTransport.test.ts +0 -49
  702. package/src/core/websocket/__tests__/useNotebookClient.hook.test.tsx +0 -170
  703. package/src/core/websocket/state.ts +0 -7
  704. package/src/core/websocket/transports/__tests__/basic.test.ts +0 -275
  705. package/src/core/websocket/transports/__tests__/sse.test.ts +0 -335
  706. package/src/core/websocket/transports/__tests__/transport.test.ts +0 -308
  707. package/src/core/websocket/transports/__tests__/ws.test.ts +0 -125
  708. package/src/core/websocket/transports/basic.ts +0 -102
  709. package/src/core/websocket/transports/create.ts +0 -31
  710. package/src/core/websocket/transports/sse.ts +0 -308
  711. package/src/core/websocket/transports/transport.ts +0 -50
  712. package/src/core/websocket/transports/ws.ts +0 -98
  713. package/src/core/websocket/useNotebookClient.ts +0 -88
  714. package/src/utils/__tests__/id-tree.test.ts +0 -2145
  715. package/src/utils/id-tree.tsx +0 -1134
  716. /package/src/{core/attachments/toast.ts → components/editor/agent-toast.ts} +0 -0
  717. /package/src/core/{websocket → session}/connection-utils.ts +0 -0
@@ -1,1344 +0,0 @@
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";
3
- import { t as s } from "./react-sHtZdjeP.js";
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-CtBZ5q8p.js";
6
- import { t as h } from "./check-BMKBBrdc.js";
7
- import { t as g } from "./react-dom-DUmH0GXv.js";
8
- import { t as _ } from "./jsx-runtime-3BD1kT0s.js";
9
- import { $ as v, Ct as y, Dt as b, Et as x, Q as S, St as C, Tt as w, bt as T, dt as E, ft as ee, gt as D, ht as O, mt as k, tt as A, vt as te, wt as j, xt as ne } from "./use-restore-focus-CKjfFjLM.js";
10
- import { t as M } from "./invariant-DLmrl-hA.js";
11
- var N = u("chevron-down", [["path", {
12
- d: "m6 9 6 6 6-6",
13
- key: "qrunsl"
14
- }]]), P = u("chevron-up", [["path", {
15
- d: "m18 15-6-6-6 6",
16
- key: "153udz"
17
- }]]), F = u("x", [["path", {
18
- d: "M18 6 6 18",
19
- key: "1bl5f8"
20
- }], ["path", {
21
- d: "m6 6 12 12",
22
- key: "d8bk6v"
23
- }]]), I = /* @__PURE__ */ e(g(), 1), L = /* @__PURE__ */ e(s(), 1), R = _(), z = Object.defineProperty, B = (e, t) => z(e, "name", {
24
- value: t,
25
- configurable: !0
26
- });
27
- // @__NO_SIDE_EFFECTS__
28
- function V(e) {
29
- let t = e + "CollectionProvider", [n, r] = x(t), [a, s] = n(t, {
30
- collectionRef: { current: null },
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, {
35
- scope: t,
36
- itemMap: i,
37
- collectionRef: r,
38
- children: n
39
- });
40
- }, "CollectionProvider");
41
- c.displayName = t;
42
- let l = e + "CollectionSlot", u = o(l), d = L.forwardRef((e, t) => {
43
- let { scope: n, children: r } = e, a = s(l, n), o = i(t, a.collectionRef);
44
- return /* @__PURE__ */ (0, R.jsx)(u, {
45
- ref: o,
46
- children: r
47
- });
48
- });
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, {
53
- ref: o,
54
- ...a
55
- }), () => void l.itemMap.delete(o))), /* @__PURE__ */ (0, R.jsx)(m, {
56
- [p]: "",
57
- ref: c,
58
- children: r
59
- });
60
- });
61
- h.displayName = f;
62
- function g(t) {
63
- let n = s(e + "CollectionConsumer", t);
64
- return L.useCallback(() => {
65
- let e = n.collectionRef.current;
66
- if (!e) return [];
67
- let t = Array.from(e.querySelectorAll(`[${p}]`));
68
- return Array.from(n.itemMap.values()).sort((e, n) => t.indexOf(e.ref.current) - t.indexOf(n.ref.current));
69
- }, [n.collectionRef, n.itemMap]);
70
- }
71
- return B(g, "useCollection"), [
72
- {
73
- Provider: c,
74
- Slot: d,
75
- ItemSlot: h
76
- },
77
- g,
78
- r
79
- ];
80
- }
81
- B(V, "createCollection");
82
- var re = /* @__PURE__ */ new WeakMap(), ie = class e extends Map {
83
- static {
84
- B(this, "OrderedDict");
85
- }
86
- #e;
87
- constructor(e) {
88
- super(e), this.#e = [...super.keys()], re.set(this, !0);
89
- }
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;
92
- }
93
- insert(e, t, n) {
94
- let r = this.has(t), i = this.#e.length, a = oe(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
- }
107
- return this;
108
- }
109
- with(t, n, r) {
110
- let i = new e(this);
111
- return i.insert(t, n, r), i;
112
- }
113
- before(e) {
114
- let t = this.#e.indexOf(e) - 1;
115
- if (!(t < 0)) return this.entryAt(t);
116
- }
117
- setBefore(e, t, n) {
118
- let r = this.#e.indexOf(e);
119
- return r === -1 ? this : this.insert(r, t, n);
120
- }
121
- after(e) {
122
- let t = this.#e.indexOf(e);
123
- if (t = t === -1 || t === this.size - 1 ? -1 : t + 1, t !== -1) return this.entryAt(t);
124
- }
125
- setAfter(e, t, n) {
126
- let r = this.#e.indexOf(e);
127
- return r === -1 ? this : this.insert(r + 1, t, n);
128
- }
129
- first() {
130
- return this.entryAt(0);
131
- }
132
- last() {
133
- return this.entryAt(-1);
134
- }
135
- clear() {
136
- return this.#e = [], super.clear();
137
- }
138
- delete(e) {
139
- let t = super.delete(e);
140
- return t && this.#e.splice(this.#e.indexOf(e), 1), t;
141
- }
142
- deleteAt(e) {
143
- let t = this.keyAt(e);
144
- return t !== void 0 && this.delete(t);
145
- }
146
- at(e) {
147
- let t = H(this.#e, e);
148
- if (t !== void 0) return this.get(t);
149
- }
150
- entryAt(e) {
151
- let t = H(this.#e, e);
152
- if (t !== void 0) return [t, this.get(t)];
153
- }
154
- indexOf(e) {
155
- return this.#e.indexOf(e);
156
- }
157
- keyAt(e) {
158
- return H(this.#e, e);
159
- }
160
- from(e, t) {
161
- let n = this.indexOf(e);
162
- if (n === -1) return;
163
- let r = n + t;
164
- return r < 0 && (r = 0), r >= this.size && (r = this.size - 1), this.at(r);
165
- }
166
- keyFrom(e, t) {
167
- let n = this.indexOf(e);
168
- if (n === -1) return;
169
- let r = n + t;
170
- return r < 0 && (r = 0), r >= this.size && (r = this.size - 1), this.keyAt(r);
171
- }
172
- find(e, t) {
173
- let n = 0;
174
- for (let r of this) {
175
- if (Reflect.apply(e, t, [
176
- r,
177
- n,
178
- this
179
- ])) return r;
180
- n++;
181
- }
182
- }
183
- findIndex(e, t) {
184
- let n = 0;
185
- for (let r of this) {
186
- if (Reflect.apply(e, t, [
187
- r,
188
- n,
189
- this
190
- ])) return n;
191
- n++;
192
- }
193
- return -1;
194
- }
195
- filter(t, n) {
196
- let r = [], i = 0;
197
- for (let e of this) Reflect.apply(t, n, [
198
- e,
199
- i,
200
- this
201
- ]) && r.push(e), i++;
202
- return new e(r);
203
- }
204
- map(t, n) {
205
- let r = [], i = 0;
206
- for (let e of this) r.push([e[0], Reflect.apply(t, n, [
207
- e,
208
- i,
209
- this
210
- ])]), i++;
211
- return new e(r);
212
- }
213
- 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, [
216
- i,
217
- n,
218
- r,
219
- this
220
- ]), r++;
221
- return i;
222
- }
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,
229
- i,
230
- n,
231
- this
232
- ]);
233
- }
234
- return r;
235
- }
236
- toSorted(t) {
237
- let n = [...this.entries()].sort(t);
238
- return new e(n);
239
- }
240
- toReversed() {
241
- let t = new e();
242
- for (let e = this.size - 1; e >= 0; e--) {
243
- let n = this.keyAt(e), r = this.get(n);
244
- t.set(n, r);
245
- }
246
- return t;
247
- }
248
- toSpliced(...t) {
249
- let n = [...this.entries()];
250
- return n.splice(...t), new e(n);
251
- }
252
- 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
- }
260
- return r;
261
- }
262
- every(e, t) {
263
- let n = 0;
264
- for (let r of this) {
265
- if (!Reflect.apply(e, t, [
266
- r,
267
- n,
268
- this
269
- ])) return !1;
270
- n++;
271
- }
272
- return !0;
273
- }
274
- some(e, t) {
275
- let n = 0;
276
- for (let r of this) {
277
- if (Reflect.apply(e, t, [
278
- r,
279
- n,
280
- this
281
- ])) return !0;
282
- n++;
283
- }
284
- return !1;
285
- }
286
- };
287
- function H(e, t) {
288
- if ("at" in Array.prototype) return Array.prototype.at.call(e, t);
289
- let n = ae(e, t);
290
- return n === -1 ? void 0 : e[n];
291
- }
292
- B(H, "at");
293
- function ae(e, t) {
294
- let n = e.length, r = oe(t), i = r >= 0 ? r : n + r;
295
- return i < 0 || i >= n ? -1 : i;
296
- }
297
- B(ae, "toSafeIndex");
298
- function oe(e) {
299
- return e !== e || e === 0 ? 0 : Math.trunc(e);
300
- }
301
- B(oe, "toSafeInteger");
302
- // @__NO_SIDE_EFFECTS__
303
- function se(e) {
304
- let t = e + "CollectionProvider", [n, r] = x(t), [a, s] = n(t, {
305
- collectionElement: null,
306
- collectionRef: { current: null },
307
- collectionRefObject: { current: null },
308
- itemMap: new ie(),
309
- setItemMap: /* @__PURE__ */ B(() => void 0, "setItemMap")
310
- }), c = /* @__PURE__ */ B(({ state: e, ...t }) => e ? /* @__PURE__ */ (0, R.jsx)(u, {
311
- ...t,
312
- 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, {
318
- ...e,
319
- state: t
320
- });
321
- }, "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(() => {
326
- if (!s) return;
327
- let e = de(() => {});
328
- return e.observe(s, {
329
- childList: !0,
330
- subtree: !0
331
- }), () => {
332
- e.disconnect();
333
- };
334
- }, [s]), /* @__PURE__ */ (0, R.jsx)(a, {
335
- scope: t,
336
- itemMap: u,
337
- setItemMap: d,
338
- collectionRef: l,
339
- collectionRefObject: o,
340
- collectionElement: s,
341
- children: n
342
- });
343
- }, "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, {
348
- ref: o,
349
- children: r
350
- });
351
- });
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
- ce(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(ue) : (t.set(c, {
363
- ...e,
364
- element: c
365
- }), t.toSorted(ue)) : t), () => {
366
- d((e) => !c || !e.has(c) ? e : (e.delete(c), new ie(e)));
367
- };
368
- }, [
369
- c,
370
- p,
371
- d
372
- ]), /* @__PURE__ */ (0, R.jsx)(h, {
373
- "data-radix-collection-item": "",
374
- ref: u,
375
- children: r
376
- });
377
- });
378
- g.displayName = m;
379
- function _() {
380
- return L.useState(new ie());
381
- }
382
- B(_, "useInitCollection");
383
- function v(t) {
384
- let { itemMap: n } = s(e + "CollectionConsumer", t);
385
- return n;
386
- }
387
- return B(v, "useCollection"), [{
388
- Provider: c,
389
- Slot: p,
390
- ItemSlot: g
391
- }, {
392
- createCollectionScope: r,
393
- useCollection: v,
394
- useInitCollection: _
395
- }];
396
- }
397
- B(se, "createCollection");
398
- function ce(e, t) {
399
- if (e === t) return !0;
400
- if (typeof e != "object" || typeof t != "object" || e == null || t == null) return !1;
401
- let n = Object.keys(e), r = Object.keys(t);
402
- if (n.length !== r.length) return !1;
403
- for (let r of n) if (!Object.prototype.hasOwnProperty.call(t, r) || e[r] !== t[r]) return !1;
404
- return !0;
405
- }
406
- B(ce, "shallowEqual");
407
- function le(e, t) {
408
- return !!(t.compareDocumentPosition(e) & Node.DOCUMENT_POSITION_PRECEDING);
409
- }
410
- B(le, "isElementPreceding");
411
- function ue(e, t) {
412
- return !e[1].element || !t[1].element ? 0 : le(e[1].element, t[1].element) ? -1 : 1;
413
- }
414
- B(ue, "sortByDocumentPosition");
415
- function de(e) {
416
- return new MutationObserver((t) => {
417
- for (let n of t) if (n.type === "childList") {
418
- e();
419
- return;
420
- }
421
- });
422
- }
423
- B(de, "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 fe = Object.defineProperty, pe = (e, t) => fe(e, "name", {
427
- value: t,
428
- configurable: !0
429
- }), me = L.createContext(void 0);
430
- function he(e) {
431
- let t = L.useContext(me);
432
- return e || t || "ltr";
433
- }
434
- pe(he, "useDirection");
435
- //#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 ge = Object.defineProperty, _e = (e, t) => ge(e, "name", {
438
- value: t,
439
- configurable: !0
440
- });
441
- function ve(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]);
447
- }
448
- _e(ve, "usePrevious");
449
- //#endregion
450
- //#region ../node_modules/.pnpm/@radix-ui+number@1.1.3/node_modules/@radix-ui/number/dist/index.mjs
451
- var ye = Object.defineProperty, be = (e, t) => ye(e, "name", {
452
- value: t,
453
- configurable: !0
454
- });
455
- function U(e, [t, n]) {
456
- return Math.min(n, Math.max(t, e));
457
- }
458
- be(U, "clamp");
459
- //#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 xe = Object.defineProperty, W = (e, t) => xe(e, "name", {
462
- value: t,
463
- configurable: !0
464
- }), Se = [
465
- " ",
466
- "Enter",
467
- "ArrowUp",
468
- "ArrowDown"
469
- ], Ce = [" ", "Enter"], G = "Select", [we, K, Te] = /* @__PURE__ */ V(G), [q, Ee] = x(G, [Te, m]), De = m(), [Oe, J] = q(G), [ke, Ae] = q(G);
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, b] = L.useState(null), [x, S] = L.useState(null), [C, w] = L.useState(!1), T = he(l), [E, ee] = y({
472
- prop: r,
473
- defaultProp: i ?? !1,
474
- onChange: a,
475
- caller: G
476
- }), [D, O] = y({
477
- prop: o,
478
- defaultProp: s,
479
- onChange: c,
480
- caller: G
481
- }), k = L.useRef(null), A = L.useRef(D);
482
- L.useEffect(() => {
483
- let e = h ? v?.ownerDocument.getElementById(h) : v?.form;
484
- if (e instanceof HTMLFormElement) {
485
- let t = /* @__PURE__ */ W(() => O(A.current), "reset");
486
- return e.addEventListener("reset", t), () => e.removeEventListener("reset", t);
487
- }
488
- }, [
489
- h,
490
- v,
491
- O
492
- ]);
493
- let te = !v || !!h || !!v.closest("form"), [j, M] = L.useState(/* @__PURE__ */ new Set()), N = ne(), P = Array.from(j).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) => {
497
- let n = new Set(t);
498
- return n.delete(e), n;
499
- });
500
- }, []), z = {
501
- required: m,
502
- trigger: v,
503
- onTriggerChange: b,
504
- valueNode: x,
505
- onValueNodeChange: S,
506
- valueNodeHasChildren: C,
507
- onValueNodeHasChildrenChange: w,
508
- contentId: N,
509
- value: D,
510
- onValueChange: O,
511
- open: E,
512
- onOpenChange: ee,
513
- dir: T,
514
- triggerPointerDownPosRef: k,
515
- disabled: p,
516
- name: u,
517
- autoComplete: f,
518
- form: h,
519
- nativeOptions: j,
520
- nativeSelectKey: P,
521
- isFormControl: te
522
- };
523
- return /* @__PURE__ */ (0, R.jsx)(d, {
524
- ..._,
525
- children: /* @__PURE__ */ (0, R.jsx)(Oe, {
526
- scope: t,
527
- ...z,
528
- children: /* @__PURE__ */ (0, R.jsx)(we.Provider, {
529
- scope: t,
530
- children: /* @__PURE__ */ (0, R.jsx)(ke, {
531
- scope: t,
532
- onNativeOptionAdd: F,
533
- onNativeOptionRemove: I,
534
- children: yt(g) ? g(z) : n
535
- })
536
- })
537
- })
538
- });
539
- }
540
- W(je, "SelectProvider");
541
- var Me = /* @__PURE__ */ W((e) => {
542
- let { __scopeSelect: t, children: n, ...r } = e;
543
- return /* @__PURE__ */ (0, R.jsx)(je, {
544
- __scopeSelect: t,
545
- ...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] })
547
- });
548
- }, "Select"), Ne = "SelectTrigger", Pe = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ W(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 = K(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);
552
- }), g = /* @__PURE__ */ W((e) => {
553
- c || (s.onOpenChange(!0), h()), e && (s.triggerPointerDownPosRef.current = {
554
- x: Math.round(e.pageX),
555
- y: Math.round(e.pageY)
556
- });
557
- }, "handleOpen");
558
- return /* @__PURE__ */ (0, R.jsx)(p, {
559
- asChild: !0,
560
- ...o,
561
- children: /* @__PURE__ */ (0, R.jsx)(b.button, {
562
- type: "button",
563
- role: "combobox",
564
- "aria-controls": s.open ? s.contentId : void 0,
565
- "aria-expanded": s.open,
566
- "aria-required": s.required,
567
- "aria-autocomplete": "none",
568
- dir: s.dir,
569
- "data-state": s.open ? "open" : "closed",
570
- disabled: c,
571
- "data-disabled": c ? "" : void 0,
572
- "data-placeholder": Q(s.value) ? "" : void 0,
573
- ...a,
574
- ref: l,
575
- onClick: w(a.onClick, (e) => {
576
- e.currentTarget.focus(), d.current !== "mouse" && g(e);
577
- }),
578
- onPointerDown: w(a.onPointerDown, (e) => {
579
- d.current = e.pointerType;
580
- let t = e.target;
581
- t.hasPointerCapture(e.pointerId) && t.releasePointerCapture(e.pointerId), e.button === 0 && e.ctrlKey === !1 && e.pointerType === "mouse" && (g(e), e.preventDefault());
582
- }),
583
- onKeyDown: w(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 === " ") && Se.includes(e.key) && (g(), e.preventDefault());
586
- })
587
- })
588
- });
589
- }, "SelectTrigger")), Fe = "SelectValue", Ie = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ W(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(() => {
592
- u(d);
593
- }, [u, d]);
594
- let p = Q(l.value);
595
- return /* @__PURE__ */ (0, R.jsx)(b.span, {
596
- ...c,
597
- asChild: !p && c.asChild,
598
- ref: f,
599
- style: { pointerEvents: "none" },
600
- children: /* @__PURE__ */ (0, R.jsx)(L.Fragment, { children: p ? s : o }, p ? "placeholder" : "value")
601
- });
602
- }, "SelectValue")), Le = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ W(function(e, t) {
603
- let { __scopeSelect: n, children: r, ...i } = e;
604
- return /* @__PURE__ */ (0, R.jsx)(b.span, {
605
- "aria-hidden": !0,
606
- ...i,
607
- ref: t,
608
- children: r || "▼"
609
- });
610
- }, "SelectIcon")), [Re, ze] = q("SelectPortal", { forceMount: void 0 }), Be = /* @__PURE__ */ W((e) => {
611
- let { __scopeSelect: t, forceMount: n, ...r } = e;
612
- return /* @__PURE__ */ (0, R.jsx)(Re, {
613
- scope: e.__scopeSelect,
614
- forceMount: n,
615
- children: /* @__PURE__ */ (0, R.jsx)(O, {
616
- asChild: !0,
617
- ...r
618
- })
619
- });
620
- }, "SelectPortal"), Y = "SelectContent", Ve = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ W(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(() => {
623
- s(new DocumentFragment());
624
- }, []), /* @__PURE__ */ (0, R.jsx)(C, {
625
- present: r || a.open,
626
- children: ({ present: e }) => e ? /* @__PURE__ */ (0, R.jsx)(Ge, {
627
- ...i,
628
- ref: t
629
- }) : /* @__PURE__ */ (0, R.jsx)(He, {
630
- ...i,
631
- fragment: o
632
- })
633
- });
634
- }, "SelectContent")), He = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ W(function(e, t) {
635
- let { __scopeSelect: n, children: r, fragment: i } = e;
636
- return i ? I.createPortal(/* @__PURE__ */ (0, R.jsx)(Ue, {
637
- scope: n,
638
- children: /* @__PURE__ */ (0, R.jsx)(we.Slot, {
639
- scope: n,
640
- children: /* @__PURE__ */ (0, R.jsx)("div", {
641
- ref: t,
642
- children: r
643
- })
644
- })
645
- }), i) : null;
646
- }, "SelectContentFragment")), X = 10, [Ue, Z] = q(Y), We = o("SelectContent.RemoveScroll"), Ge = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ W(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), [b, x] = L.useState(null), [S, C] = L.useState(null), T = i(t, x), [O, A] = L.useState(null), [j, ne] = L.useState(null), M = K(n), [N, P] = L.useState(!1), F = L.useRef(!1);
648
- L.useEffect(() => {
649
- if (b) return E(b);
650
- }, [b]), k();
651
- let I = L.useCallback((e) => {
652
- let [t, ...n] = M().map((e) => e.ref.current), [r] = n.slice(-1), i = document.activeElement;
653
- for (let n of e) if (n === i || (n?.scrollIntoView({ block: "nearest" }), n === t && S && (S.scrollTop = 0), n === r && S && (S.scrollTop = S.scrollHeight), n?.focus(), document.activeElement !== i)) return;
654
- }, [M, S]), z = L.useCallback(() => I([O, b]), [
655
- I,
656
- O,
657
- b
658
- ]);
659
- L.useEffect(() => {
660
- N && z();
661
- }, [N, z]);
662
- let { onOpenChange: B, triggerPointerDownPosRef: V } = y;
663
- L.useEffect(() => {
664
- if (b) {
665
- let e = {
666
- x: 0,
667
- y: 0
668
- }, t = /* @__PURE__ */ W((t) => {
669
- e = {
670
- x: Math.abs(Math.round(t.pageX) - (V.current?.x ?? 0)),
671
- y: Math.abs(Math.round(t.pageY) - (V.current?.y ?? 0))
672
- };
673
- }, "handlePointerMove"), n = /* @__PURE__ */ W((n) => {
674
- e.x <= 10 && e.y <= 10 ? n.preventDefault() : n.composedPath().includes(b) || B(!1), document.removeEventListener("pointermove", t), V.current = null;
675
- }, "handlePointerUp");
676
- return V.current !== null && (document.addEventListener("pointermove", t), document.addEventListener("pointerup", n, {
677
- capture: !0,
678
- once: !0
679
- })), () => {
680
- document.removeEventListener("pointermove", t), document.removeEventListener("pointerup", n, { capture: !0 });
681
- };
682
- }
683
- }, [
684
- b,
685
- B,
686
- V
687
- ]), L.useEffect(() => {
688
- let e = /* @__PURE__ */ W(() => B(!1), "close");
689
- return window.addEventListener("blur", e), window.addEventListener("resize", e), () => {
690
- window.removeEventListener("blur", e), window.removeEventListener("resize", e);
691
- };
692
- }, [B]);
693
- let [re, ie] = bt((e) => {
694
- let t = M().filter((e) => !e.disabled), n = xt(t, e, t.find((e) => e.ref.current === document.activeElement));
695
- n && setTimeout(() => n.ref.current?.focus());
696
- }), H = 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]), ae = L.useCallback(() => b?.focus(), [b]), oe = 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]), se = r === "popper" ? qe : Ke, ce = se === qe ? {
703
- side: c,
704
- sideOffset: l,
705
- align: u,
706
- alignOffset: d,
707
- arrowPadding: f,
708
- collisionBoundary: p,
709
- collisionPadding: m,
710
- sticky: h,
711
- hideWhenDetached: g,
712
- avoidCollisions: _
713
- } : {};
714
- return /* @__PURE__ */ (0, R.jsx)(Ue, {
715
- scope: n,
716
- content: b,
717
- viewport: S,
718
- onViewportChange: C,
719
- itemRefCallback: H,
720
- selectedItem: O,
721
- onItemLeave: ae,
722
- itemTextRefCallback: oe,
723
- focusSelectedItem: z,
724
- selectedItemText: j,
725
- position: r,
726
- isPositioned: N,
727
- searchRef: re,
728
- children: /* @__PURE__ */ (0, R.jsx)(ee, {
729
- as: We,
730
- allowPinchZoom: !0,
731
- children: /* @__PURE__ */ (0, R.jsx)(D, {
732
- asChild: !0,
733
- trapped: y.open,
734
- onMountAutoFocus: (e) => {
735
- e.preventDefault();
736
- },
737
- onUnmountAutoFocus: w(a, (e) => {
738
- y.trigger?.focus({ preventScroll: !0 }), e.preventDefault();
739
- }),
740
- children: /* @__PURE__ */ (0, R.jsx)(te, {
741
- asChild: !0,
742
- disableOutsidePointerEvents: !0,
743
- onEscapeKeyDown: o,
744
- onPointerDownOutside: s,
745
- onFocusOutside: (e) => e.preventDefault(),
746
- onDismiss: () => y.onOpenChange(!1),
747
- children: /* @__PURE__ */ (0, R.jsx)(se, {
748
- role: "listbox",
749
- id: y.contentId,
750
- "data-state": y.open ? "open" : "closed",
751
- dir: y.dir,
752
- onContextMenu: (e) => e.preventDefault(),
753
- ...v,
754
- ...ce,
755
- onPlaced: () => P(!0),
756
- ref: T,
757
- style: {
758
- display: "flex",
759
- flexDirection: "column",
760
- outline: "none",
761
- ...v.style
762
- },
763
- onKeyDown: w(v.onKeyDown, (e) => {
764
- let t = e.ctrlKey || e.altKey || e.metaKey;
765
- if (e.key === "Tab" && e.preventDefault(), !t && e.key.length === 1 && ie(e.key), [
766
- "ArrowUp",
767
- "ArrowDown",
768
- "Home",
769
- "End"
770
- ].includes(e.key)) {
771
- let t = M().filter((e) => !e.disabled).map((e) => e.ref.current);
772
- if (["ArrowUp", "End"].includes(e.key) && (t = t.slice().reverse()), ["ArrowUp", "ArrowDown"].includes(e.key)) {
773
- let n = e.target, r = t.indexOf(n);
774
- t = t.slice(r + 1);
775
- }
776
- setTimeout(() => I(t)), e.preventDefault();
777
- }
778
- })
779
- })
780
- })
781
- })
782
- })
783
- });
784
- }, "SelectContentImpl")), Ke = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ W(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 = K(n), m = L.useRef(!1), h = L.useRef(!0), { viewport: g, selectedItem: _, selectedItemText: v, focusSelectedItem: y } = s, x = L.useCallback(() => {
786
- if (o.trigger && o.valueNode && c && u && g && _ && v) {
787
- 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 = U(a, [X, Math.max(X, u - l)]);
790
- c.style.minWidth = s + "px", c.style.left = d + "px";
791
- } 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 = U(a, [X, Math.max(X, u - l)]);
793
- c.style.minWidth = s + "px", c.style.right = d + "px";
794
- }
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), w = parseInt(C.paddingTop, 10), T = parseInt(C.paddingBottom, 10), E = e.top + e.height / 2 - X, ee = s - E, D = _.offsetHeight / 2, O = _.offsetTop + D, k = f + h + O, A = x - k;
796
- if (k <= E) {
797
- let e = a.length > 0 && _ === a[a.length - 1].ref.current;
798
- c.style.bottom = "0px";
799
- let t = u.clientHeight - g.offsetTop - g.offsetHeight, n = k + Math.max(ee, D + (e ? T : 0) + t + y);
800
- c.style.height = n + "px";
801
- } else {
802
- let e = a.length > 0 && _ === a[0].ref.current;
803
- c.style.top = "0px";
804
- let t = Math.max(E, f + g.offsetTop + (e ? w : 0) + D) + A;
805
- c.style.height = t + "px", g.scrollTop = k - E + g.offsetTop;
806
- }
807
- c.style.margin = `${X}px 0`, c.style.minHeight = S + "px", c.style.maxHeight = s + "px", r?.(), requestAnimationFrame(() => m.current = !0);
808
- }
809
- }, [
810
- p,
811
- o.trigger,
812
- o.valueNode,
813
- c,
814
- u,
815
- g,
816
- _,
817
- v,
818
- o.dir,
819
- r
820
- ]);
821
- j(() => x(), [x]);
822
- let [S, C] = L.useState();
823
- j(() => {
824
- u && C(window.getComputedStyle(u).zIndex);
825
- }, [u]);
826
- let w = L.useCallback((e) => {
827
- e && h.current === !0 && (x(), y?.(), h.current = !1);
828
- }, [x, y]);
829
- return /* @__PURE__ */ (0, R.jsx)(Je, {
830
- scope: n,
831
- contentWrapper: c,
832
- shouldExpandOnScrollRef: m,
833
- onScrollButtonChange: w,
834
- children: /* @__PURE__ */ (0, R.jsx)("div", {
835
- ref: l,
836
- style: {
837
- display: "flex",
838
- flexDirection: "column",
839
- position: "fixed",
840
- zIndex: S
841
- },
842
- children: /* @__PURE__ */ (0, R.jsx)(b.div, {
843
- ...a,
844
- ref: f,
845
- style: {
846
- boxSizing: "border-box",
847
- maxHeight: "100%",
848
- ...a.style
849
- }
850
- })
851
- })
852
- });
853
- }, "SelectItemAlignedPosition")), qe = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ W(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, {
856
- ...o,
857
- ...a,
858
- ref: t,
859
- align: r,
860
- collisionPadding: i,
861
- style: {
862
- boxSizing: "border-box",
863
- ...a.style,
864
- "--radix-select-content-transform-origin": "var(--radix-popper-transform-origin)",
865
- "--radix-select-content-available-width": "var(--radix-popper-available-width)",
866
- "--radix-select-content-available-height": "var(--radix-popper-available-height)",
867
- "--radix-select-trigger-width": "var(--radix-popper-anchor-width)",
868
- "--radix-select-trigger-height": "var(--radix-popper-anchor-height)"
869
- }
870
- });
871
- }, "SelectPopperPosition")), [Je, Ye] = q(Y, {}), Xe = "SelectViewport", Ze = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ W(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", {
874
- 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
- nonce: r
876
- }), /* @__PURE__ */ (0, R.jsx)(we.Slot, {
877
- scope: n,
878
- children: /* @__PURE__ */ (0, R.jsx)(b.div, {
879
- "data-radix-select-viewport": "",
880
- role: "presentation",
881
- ...a,
882
- ref: c,
883
- style: {
884
- position: "relative",
885
- flex: 1,
886
- overflow: "hidden auto",
887
- ...a.style
888
- },
889
- onScroll: w(a.onScroll, (e) => {
890
- let t = e.currentTarget, { contentWrapper: n, shouldExpandOnScrollRef: r } = s;
891
- if (r?.current && n) {
892
- let e = Math.abs(l.current - t.scrollTop);
893
- if (e > 0) {
894
- let r = window.innerHeight - X * 2, i = parseFloat(n.style.minHeight), a = parseFloat(n.style.height), o = Math.max(i, a);
895
- if (o < r) {
896
- let i = o + e, a = Math.min(r, i), s = i - a;
897
- n.style.height = a + "px", n.style.bottom === "0px" && (t.scrollTop = s > 0 ? s : 0, n.style.justifyContent = "flex-end");
898
- }
899
- }
900
- }
901
- l.current = t.scrollTop;
902
- })
903
- })
904
- })] });
905
- }, "SelectViewport")), [Qe, $e] = q("SelectGroup"), et = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ W(function(e, t) {
906
- let { __scopeSelect: n, ...r } = e, i = ne();
907
- return /* @__PURE__ */ (0, R.jsx)(Qe, {
908
- scope: n,
909
- id: i,
910
- children: /* @__PURE__ */ (0, R.jsx)(b.div, {
911
- role: "group",
912
- "aria-labelledby": i,
913
- ...r,
914
- ref: t
915
- })
916
- });
917
- }, "SelectGroup")), tt = "SelectLabel", nt = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ W(function(e, t) {
918
- let { __scopeSelect: n, ...r } = e, i = $e(tt, n);
919
- return /* @__PURE__ */ (0, R.jsx)(b.div, {
920
- id: i.id,
921
- ...r,
922
- ref: t
923
- });
924
- }, "SelectLabel")), rt = "SelectItem", [it, at] = q(rt), ot = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ W(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 = T((e) => l.itemRefCallback?.(e, r, a)), g = i(t, h), _ = ne(), v = L.useRef("touch"), y = /* @__PURE__ */ W(() => {
926
- a || (c.onValueChange(r), c.onOpenChange(!1));
927
- }, "handleSelect");
928
- return /* @__PURE__ */ (0, R.jsx)(it, {
929
- scope: n,
930
- value: r,
931
- disabled: a,
932
- textId: _,
933
- isSelected: u,
934
- onItemTextChange: L.useCallback((e) => {
935
- f((t) => t || (e?.textContent ?? "").trim());
936
- }, []),
937
- children: /* @__PURE__ */ (0, R.jsx)(we.ItemSlot, {
938
- scope: n,
939
- value: r,
940
- disabled: a,
941
- textValue: d,
942
- children: /* @__PURE__ */ (0, R.jsx)(b.div, {
943
- role: "option",
944
- "aria-labelledby": _,
945
- "data-highlighted": p ? "" : void 0,
946
- "aria-selected": u && p,
947
- "data-state": u ? "checked" : "unchecked",
948
- "aria-disabled": a || void 0,
949
- "data-disabled": a ? "" : void 0,
950
- tabIndex: a ? void 0 : -1,
951
- ...s,
952
- ref: g,
953
- onFocus: w(s.onFocus, () => m(!0)),
954
- onBlur: w(s.onBlur, () => m(!1)),
955
- onClick: w(s.onClick, () => {
956
- v.current !== "mouse" && y();
957
- }),
958
- onPointerUp: w(s.onPointerUp, () => {
959
- v.current === "mouse" && y();
960
- }),
961
- onPointerDown: w(s.onPointerDown, (e) => {
962
- v.current = e.pointerType;
963
- }),
964
- onPointerMove: w(s.onPointerMove, (e) => {
965
- v.current = e.pointerType, a ? l.onItemLeave?.() : v.current === "mouse" && e.currentTarget.focus({ preventScroll: !0 });
966
- }),
967
- onPointerLeave: w(s.onPointerLeave, (e) => {
968
- e.currentTarget === document.activeElement && l.onItemLeave?.();
969
- }),
970
- onKeyDown: w(s.onKeyDown, (e) => {
971
- a || e.target !== e.currentTarget || (l.searchRef?.current === "" || e.key !== " ") && (Ce.includes(e.key) && y(), e.key === " " && e.preventDefault());
972
- })
973
- })
974
- })
975
- });
976
- }, "SelectItem")), st = "SelectItemText", ct = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ W(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 = T((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", {
978
- value: l.value,
979
- disabled: l.disabled,
980
- children: h
981
- }, l.value), [
982
- l.disabled,
983
- l.value,
984
- h
985
- ]), { onNativeOptionAdd: _, onNativeOptionRemove: v } = u;
986
- return j(() => (_(g), () => v(g)), [
987
- _,
988
- v,
989
- g
990
- ]), /* @__PURE__ */ (0, R.jsxs)(R.Fragment, { children: [/* @__PURE__ */ (0, R.jsx)(b.span, {
991
- id: l.textId,
992
- ...o,
993
- 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__ */ W(function(e, t) {
996
- let { __scopeSelect: n, ...r } = e;
997
- return at(lt, n).isSelected ? /* @__PURE__ */ (0, R.jsx)(b.span, {
998
- "aria-hidden": !0,
999
- ...r,
1000
- ref: t
1001
- }) : null;
1002
- }, "SelectItemIndicator")), dt = "SelectScrollUpButton", ft = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ W(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(() => {
1005
- if (n.viewport && n.isPositioned) {
1006
- let e = function() {
1007
- let e = t.scrollTop > 0;
1008
- o(e);
1009
- };
1010
- W(e, "handleScroll");
1011
- let t = n.viewport;
1012
- return e(), t.addEventListener("scroll", e), () => t.removeEventListener("scroll", e);
1013
- }
1014
- }, [n.viewport, n.isPositioned]), a ? /* @__PURE__ */ (0, R.jsx)(ht, {
1015
- ...e,
1016
- ref: s,
1017
- onAutoScroll: () => {
1018
- let { viewport: e, selectedItem: t } = n;
1019
- e && t && (e.scrollTop -= t.offsetHeight);
1020
- }
1021
- }) : null;
1022
- }, "SelectScrollUpButton")), pt = "SelectScrollDownButton", mt = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ W(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(() => {
1025
- if (n.viewport && n.isPositioned) {
1026
- let e = function() {
1027
- let e = t.scrollHeight - t.clientHeight, n = Math.ceil(t.scrollTop) < e;
1028
- o(n);
1029
- };
1030
- W(e, "handleScroll");
1031
- let t = n.viewport;
1032
- return e(), t.addEventListener("scroll", e), () => t.removeEventListener("scroll", e);
1033
- }
1034
- }, [n.viewport, n.isPositioned]), a ? /* @__PURE__ */ (0, R.jsx)(ht, {
1035
- ...e,
1036
- ref: s,
1037
- onAutoScroll: () => {
1038
- let { viewport: e, selectedItem: t } = n;
1039
- e && t && (e.scrollTop += t.offsetHeight);
1040
- }
1041
- }) : null;
1042
- }, "SelectScrollDownButton")), ht = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ W(function(e, t) {
1043
- let { __scopeSelect: n, onAutoScroll: r, ...i } = e, a = Z("SelectScrollButton", n), o = L.useRef(null), s = K(n), c = L.useCallback(() => {
1044
- o.current !== null && (window.clearInterval(o.current), o.current = null);
1045
- }, []);
1046
- return L.useEffect(() => () => c(), [c]), j(() => {
1047
- s().find((e) => e.ref.current === document.activeElement)?.ref.current?.scrollIntoView({ block: "nearest" });
1048
- }, [s]), /* @__PURE__ */ (0, R.jsx)(b.div, {
1049
- "aria-hidden": !0,
1050
- ...i,
1051
- ref: t,
1052
- style: {
1053
- flexShrink: 0,
1054
- ...i.style
1055
- },
1056
- onPointerDown: w(i.onPointerDown, () => {
1057
- o.current === null && (o.current = window.setInterval(r, 50));
1058
- }),
1059
- onPointerMove: w(i.onPointerMove, () => {
1060
- a.onItemLeave?.(), o.current === null && (o.current = window.setInterval(r, 50));
1061
- }),
1062
- onPointerLeave: w(i.onPointerLeave, () => {
1063
- c();
1064
- })
1065
- });
1066
- }, "SelectScrollButtonImpl")), gt = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ W(function(e, t) {
1067
- let { __scopeSelect: n, ...r } = e;
1068
- return /* @__PURE__ */ (0, R.jsx)(b.div, {
1069
- "aria-hidden": !0,
1070
- ...r,
1071
- ref: t
1072
- });
1073
- }, "SelectSeparator")), _t = "SelectBubbleInput", vt = /* @__PURE__ */ L.forwardRef(/* @__PURE__ */ W(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 = ve(_), y = Array.from(p).some((e) => (e.props.value ?? "") === "");
1075
- return L.useEffect(() => {
1076
- let e = h.current;
1077
- 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);
1082
- }
1083
- }, [v, _]), /* @__PURE__ */ (0, R.jsxs)(b.select, {
1084
- "aria-hidden": !0,
1085
- required: s,
1086
- tabIndex: -1,
1087
- name: l,
1088
- autoComplete: u,
1089
- disabled: c,
1090
- form: d,
1091
- onChange: (e) => o(e.target.value),
1092
- ...t,
1093
- style: {
1094
- ...f,
1095
- ...t.style
1096
- },
1097
- ref: g,
1098
- defaultValue: _,
1099
- children: [Q(a) && !y ? /* @__PURE__ */ (0, R.jsx)("option", { value: "" }) : null, Array.from(p)]
1100
- }, m);
1101
- }, "SelectBubbleInput"));
1102
- function yt(e) {
1103
- return typeof e == "function";
1104
- }
1105
- W(yt, "isFunction");
1106
- function Q(e) {
1107
- return e === "" || e === void 0;
1108
- }
1109
- W(Q, "shouldShowPlaceholder");
1110
- function bt(e) {
1111
- let t = T(e), n = L.useRef(""), r = L.useRef(0), i = L.useCallback((e) => {
1112
- let i = n.current + e;
1113
- t(i), (/* @__PURE__ */ W((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(() => {
1117
- n.current = "", window.clearTimeout(r.current);
1118
- }, []);
1119
- return L.useEffect(() => () => window.clearTimeout(r.current), []), [
1120
- n,
1121
- i,
1122
- a
1123
- ];
1124
- }
1125
- W(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));
1128
- r.length === 1 && (a = a.filter((e) => e !== n));
1129
- let o = a.find((e) => e.textValue.toLowerCase().startsWith(r.toLowerCase()));
1130
- return o === n ? void 0 : o;
1131
- }
1132
- W(xt, "findNextItem");
1133
- function St(e, t) {
1134
- return e.map((n, r) => e[(t + r) % e.length]);
1135
- }
1136
- W(St, "wrapArray");
1137
- //#endregion
1138
- //#region src/utils/assertNever.ts
1139
- function Ct(e) {
1140
- M(!1, `Unexpected object: ${e}`);
1141
- }
1142
- function wt(e) {
1143
- return t.warn(`Unexpected object: ${JSON.stringify(e)}`), e;
1144
- }
1145
- //#endregion
1146
- //#region src/utils/strings.ts
1147
- function Tt(e) {
1148
- return e ? e.charAt(0).toUpperCase() + e.slice(1) : "";
1149
- }
1150
- function Et(e) {
1151
- if (!e) return "";
1152
- 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;
1154
- }
1155
- var Dt = {
1156
- startCase: Et,
1157
- htmlEscape: (e) => e && e.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll("\"", "&quot;").replaceAll("'", "&#039;").replaceAll("\n", " "),
1158
- withTrailingSlash(e) {
1159
- return e.endsWith("/") ? e : `${e}/`;
1160
- },
1161
- withoutTrailingSlash(e) {
1162
- return e.endsWith("/") ? e.slice(0, -1) : e;
1163
- },
1164
- withoutLeadingSlash(e) {
1165
- return e.startsWith("/") ? e.slice(1) : e;
1166
- },
1167
- asString: (e) => {
1168
- if (typeof e == "string") return e;
1169
- try {
1170
- return JSON.stringify(e);
1171
- } catch {
1172
- return String(e);
1173
- }
1174
- }
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), {
1176
- variants: {
1177
- inset: { true: "pl-8" },
1178
- variant: {
1179
- default: "data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground aria-selected:bg-accent aria-selected:text-accent-foreground",
1180
- danger: "data-[highlighted]:bg-(--red-5) data-[highlighted]:text-(--red-12) aria-selected:bg-(--red-5) aria-selected:text-(--red-12)",
1181
- muted: "data-[highlighted]:bg-muted/70 data-[highlighted]:text-muted-foreground aria-selected:bg-muted/70 aria-selected:text-muted-foreground",
1182
- success: "data-[highlighted]:bg-(--grass-3) data-[highlighted]:text-(--grass-11) aria-selected:bg-(--grass-3) aria-selected:text-(--grass-11)",
1183
- disabled: "text-muted-foreground"
1184
- }
1185
- },
1186
- defaultVariants: { variant: "default" }
1187
- }), Ft = a("-mx-1 my-1 h-px bg-border last:hidden", { variants: {} }), It = (e) => {
1188
- let t = (0, $.c)(8), r, i;
1189
- t[0] === e ? (r = t[1], i = t[2]) : ({className: r, ...i} = e, t[0] = e, t[1] = r, t[2] = i);
1190
- let a;
1191
- t[3] === r ? a = t[4] : (a = n("ml-auto text-xs tracking-widest opacity-60", r), t[3] = r, t[4] = a);
1192
- let o;
1193
- return t[5] !== i || t[6] !== a ? (o = /* @__PURE__ */ (0, R.jsx)("span", {
1194
- className: a,
1195
- ...i
1196
- }), t[5] = i, t[6] = a, t[7] = o) : o = t[7], o;
1197
- };
1198
- It.displayName = "MenuShortcut";
1199
- //#endregion
1200
- //#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]", {
1202
- variants: { variant: {
1203
- 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
- ghost: "opacity-70 hover:opacity-100 focus:opacity-100"
1205
- } },
1206
- defaultVariants: { variant: "default" }
1207
- }), Rt = L.forwardRef((e, t) => {
1208
- let i = (0, $.c)(12), a, o, s;
1209
- 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
- let c;
1211
- i[4] === Symbol.for("react.memo_cache_sentinel") ? (c = r.stopPropagation(), i[4] = c) : c = i[4];
1212
- let l;
1213
- i[5] === o ? l = i[6] : (l = n(Lt({}), o), i[5] = o, i[6] = l);
1214
- let u;
1215
- return i[7] !== a || i[8] !== s || i[9] !== t || i[10] !== l ? (u = /* @__PURE__ */ (0, R.jsx)("select", {
1216
- ref: t,
1217
- onClick: c,
1218
- className: l,
1219
- ...s,
1220
- children: a
1221
- }), i[7] = a, i[8] = s, i[9] = t, i[10] = l, i[11] = u) : u = i[11], u;
1222
- });
1223
- Rt.displayName = "NativeSelect";
1224
- //#endregion
1225
- //#region src/components/ui/select.tsx
1226
- var zt = Me, Bt = et, Vt = S(Be), Ht = Ie, Ut = L.forwardRef((e, t) => {
1227
- let r = (0, $.c)(21), i, a, o, s, c, l;
1228
- 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
- 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];
1231
- let f;
1232
- r[10] !== u || r[11] !== o ? (f = o ? /* @__PURE__ */ (0, R.jsx)("span", {
1233
- onPointerDown: (e) => {
1234
- e.preventDefault(), e.stopPropagation(), o();
1235
- },
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];
1238
- let p;
1239
- r[13] === f ? p = r[14] : (p = /* @__PURE__ */ (0, R.jsx)(Le, {
1240
- asChild: !0,
1241
- children: f
1242
- }), r[13] = f, r[14] = p);
1243
- 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, {
1245
- ref: t,
1246
- className: d,
1247
- ...s,
1248
- children: [i, p]
1249
- }), r[15] = i, r[16] = s, r[17] = t, r[18] = d, r[19] = p, r[20] = m) : m = r[20], m;
1250
- });
1251
- Ut.displayName = Pe.displayName;
1252
- var Wt = v(Ve), Gt = L.forwardRef((e, t) => {
1253
- let r = (0, $.c)(21), i, a, o, s;
1254
- 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
- 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
- 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
- let d;
1258
- r[8] === Symbol.for("react.memo_cache_sentinel") ? (d = /* @__PURE__ */ (0, R.jsx)(ft, {
1259
- 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" })
1261
- }), r[8] = d) : d = r[8];
1262
- let f = c === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width)", p;
1263
- r[9] === f ? p = r[10] : (p = n("p-1", f), r[9] = f, r[10] = p);
1264
- let m;
1265
- r[11] !== i || r[12] !== p ? (m = /* @__PURE__ */ (0, R.jsx)(Ze, {
1266
- className: p,
1267
- children: i
1268
- }), r[11] = i, r[12] = p, r[13] = m) : m = r[13];
1269
- let h;
1270
- r[14] === Symbol.for("react.memo_cache_sentinel") ? (h = /* @__PURE__ */ (0, R.jsx)(mt, {
1271
- 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" })
1273
- }), r[14] = h) : h = r[14];
1274
- 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)(A, { children: /* @__PURE__ */ (0, R.jsxs)(Wt, {
1276
- ref: t,
1277
- className: u,
1278
- position: c,
1279
- ...o,
1280
- children: [
1281
- d,
1282
- m,
1283
- h
1284
- ]
1285
- }) }) }), r[15] = c, r[16] = o, r[17] = t, r[18] = u, r[19] = m, r[20] = g) : g = r[20], g;
1286
- });
1287
- Gt.displayName = Ve.displayName;
1288
- var Kt = L.forwardRef((e, t) => {
1289
- let r = (0, $.c)(9), i, a;
1290
- r[0] === e ? (i = r[1], a = r[2]) : ({className: i, ...a} = e, r[0] = e, r[1] = i, r[2] = a);
1291
- let o;
1292
- 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
- let s;
1294
- return r[5] !== a || r[6] !== t || r[7] !== o ? (s = /* @__PURE__ */ (0, R.jsx)(nt, {
1295
- ref: t,
1296
- className: o,
1297
- ...a
1298
- }), r[5] = a, r[6] = t, r[7] = o, r[8] = s) : s = r[8], s;
1299
- });
1300
- Kt.displayName = nt.displayName;
1301
- var qt = L.forwardRef((e, t) => {
1302
- let r = (0, $.c)(17), i, a, o, s;
1303
- 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
- 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);
1306
- let l;
1307
- r[7] === Symbol.for("react.memo_cache_sentinel") ? (l = /* @__PURE__ */ (0, R.jsx)("span", {
1308
- 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" }) })
1310
- }), r[7] = l) : l = r[7];
1311
- let u = typeof i != "string" || void 0, d;
1312
- r[8] !== i || r[9] !== u ? (d = /* @__PURE__ */ (0, R.jsx)(ct, {
1313
- asChild: u,
1314
- className: "flex w-full flex-1",
1315
- children: i
1316
- }), r[8] = i, r[9] = u, r[10] = d) : d = r[10];
1317
- 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, {
1319
- ref: t,
1320
- className: c,
1321
- ...o,
1322
- children: [
1323
- l,
1324
- d,
1325
- s
1326
- ]
1327
- }), r[11] = o, r[12] = t, r[13] = s, r[14] = c, r[15] = d, r[16] = f) : f = r[16], f;
1328
- });
1329
- qt.displayName = ot.displayName;
1330
- var Jt = L.forwardRef((e, t) => {
1331
- let r = (0, $.c)(9), i, a;
1332
- r[0] === e ? (i = r[1], a = r[2]) : ({className: i, ...a} = e, r[0] = e, r[1] = i, r[2] = a);
1333
- let o;
1334
- r[3] === i ? o = r[4] : (o = n("-mx-1 my-1 h-px bg-muted", i), r[3] = i, r[4] = o);
1335
- let s;
1336
- return r[5] !== a || r[6] !== t || r[7] !== o ? (s = /* @__PURE__ */ (0, R.jsx)(gt, {
1337
- ref: t,
1338
- className: o,
1339
- ...a
1340
- }), r[5] = a, r[6] = t, r[7] = o, r[8] = s) : s = r[8], s;
1341
- });
1342
- Jt.displayName = gt.displayName;
1343
- //#endregion
1344
- export { F as A, wt as C, ve as D, U as E, N as M, he 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 };