@marimo-team/islands 0.19.12-dev1 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/dist/Combination-Du-o_hC9.js +11897 -0
  2. package/dist/{ConnectedDataExplorerComponent-CkXO-pKy.js → ConnectedDataExplorerComponent-BMiGWK57.js} +19 -18
  3. package/dist/{_baseIsEqual-CBSjxu-D.js → _baseIsEqual-DN5YkPnl.js} +1 -1
  4. package/dist/{_baseProperty-BVGrW_NZ.js → _baseProperty-6juuyX7Z.js} +5 -5
  5. package/dist/{_baseUniq-4lqa8rDi.js → _baseUniq-BlF21ach.js} +1 -1
  6. package/dist/{any-language-editor-t_VsTNa-.js → any-language-editor-1OMbohwD.js} +19 -19
  7. package/dist/architecture-U656AL7Q-Jd2CvPgJ.js +6 -0
  8. package/dist/{architectureDiagram-VXUJARFQ-DmJQhcJb.js → architectureDiagram-VXUJARFQ-DhN0C3Xf.js} +15 -15
  9. package/dist/{blockDiagram-VD42YOAC-CRofISJs.js → blockDiagram-VD42YOAC-DrBkIcbV.js} +7 -7
  10. package/dist/{button-Cy0ElmIm.js → button-KYalaJYu.js} +783 -200
  11. package/dist/{c4Diagram-YG6GDRKO-Deqoag4I.js → c4Diagram-YG6GDRKO-pWt4zmu0.js} +4 -4
  12. package/dist/{channel-CMsnebrL.js → channel-C56Jz8EL.js} +1 -1
  13. package/dist/{check-DkNR52Mm.js → check-C50jsehH.js} +1 -1
  14. package/dist/{chunk-76Q3JFCE-jPuajZH_.js → chunk-76Q3JFCE-CQ6a2yGJ.js} +1 -1
  15. package/dist/{chunk-ABZYJK2D-BGWvKte3.js → chunk-ABZYJK2D-BwNsaa1P.js} +1 -1
  16. package/dist/{chunk-ATLVNIR6-BYZB6C5T.js → chunk-ATLVNIR6-DtFMAawc.js} +1 -1
  17. package/dist/{chunk-B4BG7PRW-CwYUp6Uj.js → chunk-B4BG7PRW-lfWcLlzS.js} +4 -4
  18. package/dist/{chunk-DI55MBZ5-Gyro6dvN.js → chunk-DI55MBZ5-RhhAimfG.js} +4 -4
  19. package/dist/{chunk-EXTU4WIE-BlA7aWEw.js → chunk-EXTU4WIE-Bmo660a9.js} +1 -1
  20. package/dist/{chunk-FPAJGGOC-CduL34ft.js → chunk-FPAJGGOC-quWdfNUB.js} +7 -7
  21. package/dist/{chunk-FWNWRKHM-C-2TI4gt.js → chunk-FWNWRKHM-DmrwhAQr.js} +1 -1
  22. package/dist/{chunk-JA3XYJ7Z-Cm-pccR-.js → chunk-JA3XYJ7Z-n8UTzfok.js} +2 -2
  23. package/dist/{chunk-JZLCHNYA-CoLqqXMe.js → chunk-JZLCHNYA-ChKqHUdB.js} +4 -4
  24. package/dist/{chunk-LBM3YZW2-DWgQiioW.js → chunk-LBM3YZW2-BkxsqkNK.js} +1 -1
  25. package/dist/{chunk-LHMN2FUI-Dj_AHSvI.js → chunk-LHMN2FUI-CgYPnxfN.js} +1 -1
  26. package/dist/{chunk-N4CR4FBY-ByLbY9L-.js → chunk-N4CR4FBY-BxOHGL3P.js} +5 -5
  27. package/dist/{chunk-O7ZBX7Z2-CRZ8i1rP.js → chunk-O7ZBX7Z2-CdpLwOP0.js} +1 -1
  28. package/dist/{chunk-QN33PNHL-eodIiY9F.js → chunk-QN33PNHL-Dda-55xY.js} +1 -1
  29. package/dist/{chunk-QXUST7PY-CuJlDW6A.js → chunk-QXUST7PY-ClIEpoCT.js} +5 -5
  30. package/dist/{chunk-S3R3BYOJ-CwDGYMVf.js → chunk-S3R3BYOJ-C_1SJcWo.js} +3 -3
  31. package/dist/{chunk-S6J4BHB3-DNVMr0_v.js → chunk-S6J4BHB3-zfWjyfUg.js} +1 -1
  32. package/dist/{chunk-T53DSG4Q-BFWkpOX5.js → chunk-T53DSG4Q-Bewz1tiU.js} +1 -1
  33. package/dist/{chunk-TZMSLE5B-DFDr5FCr.js → chunk-TZMSLE5B-XW3duOft.js} +1 -1
  34. package/dist/{classDiagram-2ON5EDUG-BDBX9etk.js → classDiagram-2ON5EDUG-CUJlS_eo.js} +10 -10
  35. package/dist/{classDiagram-v2-WZHVMYZB-Bzj_L_BF.js → classDiagram-v2-WZHVMYZB-BhSPpbkE.js} +10 -10
  36. package/dist/{clone-Cc_6PW77.js → clone-V9hndNcj.js} +1 -1
  37. package/dist/{constants-DrOu5vvd.js → constants-BGRTDzdW.js} +2 -2
  38. package/dist/{copy-DRaXIb_a.js → copy-oc-FcZzt.js} +2 -2
  39. package/dist/{dagre-6UL2VRFP-r2rSdJYL.js → dagre-6UL2VRFP-BArPH353.js} +11 -11
  40. package/dist/{dagre-D2F8UdM6.js → dagre-Dcgyn_Uy.js} +15 -15
  41. package/dist/{diagram-PSM6KHXK-BpxVUe9U.js → diagram-PSM6KHXK-B1xAkr9y.js} +16 -16
  42. package/dist/{diagram-QEK2KX5R-q3dHUcp6.js → diagram-QEK2KX5R-CaoqwzPb.js} +14 -14
  43. package/dist/{diagram-S2PKOQOG-MDBKrxSC.js → diagram-S2PKOQOG-NXCsFLvR.js} +14 -14
  44. package/dist/dist-B8Y11RWn.js +1381 -0
  45. package/dist/dist-BA-HK7pI.js +5 -0
  46. package/dist/dist-BD5GU948.js +5 -0
  47. package/dist/{dist-BfactX3G.js → dist-BGzkWRSl.js} +4 -4
  48. package/dist/dist-BIYmAsND.js +5 -0
  49. package/dist/{dist-CmZYrgd_.js → dist-BUEi7EKT.js} +1 -1
  50. package/dist/{dist-B94MxrQS.js → dist-B_i29Q6L.js} +2 -2
  51. package/dist/dist-BcKTJXJi.js +5 -0
  52. package/dist/dist-BgnrtcWg.js +8 -0
  53. package/dist/{dist-glA_fIK_.js → dist-BoagoQQw.js} +2 -2
  54. package/dist/{dist-C2-m5aEk.js → dist-BswsDM4k.js} +2 -2
  55. package/dist/dist-C1njTlBq.js +5 -0
  56. package/dist/{dist-B2-r9y-0.js → dist-C5QB1NtD.js} +3 -3
  57. package/dist/{dist-Crk9ejOy.js → dist-CD7uLx0M.js} +2 -2
  58. package/dist/{dist-B4tYJP_i.js → dist-CMOy93xY.js} +2 -2
  59. package/dist/dist-CSKHwJYH.js +5 -0
  60. package/dist/dist-CSKKyiIq.js +5 -0
  61. package/dist/{dist-iiugPhCC.js → dist-C_9IMrtt.js} +1 -1
  62. package/dist/{dist-CE43BRmt.js → dist-Cb3iqED3.js} +1 -1
  63. package/dist/{dist-Dit9tk8a.js → dist-CoZ8kKKW.js} +1 -1
  64. package/dist/{dist-B5ATpkxy.js → dist-CrAYcS_4.js} +2 -2
  65. package/dist/dist-CrQ_pOuK.js +6 -0
  66. package/dist/dist-Cskx1daf.js +5 -0
  67. package/dist/dist-D4i0Ef34.js +8 -0
  68. package/dist/{dist-T4g7Sr6e.js → dist-D8EhXZ4S.js} +3 -3
  69. package/dist/{dist-CJrHMxlI.js → dist-DOLQQtWK.js} +3 -3
  70. package/dist/dist-DOcn61TX.js +8 -0
  71. package/dist/{dist-DqJdzAYM.js → dist-Dmr_nXF6.js} +2 -2
  72. package/dist/{dist-yVJ4xE5n.js → dist-DpAbrLuF.js} +5 -5
  73. package/dist/{dist-CcOGT46m.js → dist-DrC0QKFK.js} +1 -1
  74. package/dist/{dist-BYmtF1W6.js → dist-Dv2Phbh5.js} +2 -2
  75. package/dist/dist-DwMejAPB.js +6 -0
  76. package/dist/dist-DzSe1wby.js +8 -0
  77. package/dist/{dist-BbBnU4tG.js → dist-EZFqUJhh.js} +1 -1
  78. package/dist/{dist-Cgf353Ki.js → dist-Ey9hP8-j.js} +1 -1
  79. package/dist/{dist-BLwfpZD-.js → dist-IlWGXVjO.js} +2 -2
  80. package/dist/{dist-DOil6y-3.js → dist-LNp8svLl.js} +4 -4
  81. package/dist/{dist-CPTE45iS.js → dist-W6TdeACj.js} +1 -1
  82. package/dist/{dist-Dc1SFk5I.js → dist-a6Obzr07.js} +2 -2
  83. package/dist/{dist-Bsv_ARko.js → dist-bz6WguLy.js} +2 -2
  84. package/dist/{dist-CC9VUnXd.js → dist-iDeoXzdN.js} +1 -1
  85. package/dist/{dist-BoAHOW2l.js → dist-iyBCcLRa.js} +2 -2
  86. package/dist/{dist-CkEUrAus.js → dist-xCB683Dh.js} +2 -2
  87. package/dist/{erDiagram-Q2GNP2WA-CX1XdqVD.js → erDiagram-Q2GNP2WA-DWCa11g5.js} +10 -10
  88. package/dist/error-banner-vCG-EbUQ.js +619 -0
  89. package/dist/{esm-BAS2d2Ad.js → esm-DZSk8vt3.js} +27 -27
  90. package/dist/{flatten-eGRGXrC3.js → flatten-CWZjF1fc.js} +1 -1
  91. package/dist/{flowDiagram-NV44I4VS-BCj-ONTw.js → flowDiagram-NV44I4VS-BQ5PQs4L.js} +10 -10
  92. package/dist/{ganttDiagram-JELNMOA3-D1l5ewiQ.js → ganttDiagram-JELNMOA3-NTOuNWeT.js} +3 -3
  93. package/dist/{gitGraph-F6HP7TQM-CDM3aU-T.js → gitGraph-F6HP7TQM-DfRNsaDw.js} +3 -3
  94. package/dist/{gitGraphDiagram-NY62KEGX-KdZh0iiW.js → gitGraphDiagram-NY62KEGX-CYke62Ot.js} +13 -13
  95. package/dist/{glide-data-editor-2RvcPqmc.js → glide-data-editor-DttqGjrT.js} +571 -572
  96. package/dist/{graphlib-7UgfJadv.js → graphlib-CwMnCnQ9.js} +8 -8
  97. package/dist/{info-NVLQJR56-CoL1x1Fy.js → info-NVLQJR56-CUaoPtis.js} +3 -3
  98. package/dist/{infoDiagram-WHAUD3N6-PSH7lQ0D.js → infoDiagram-WHAUD3N6-B42WjAPh.js} +13 -13
  99. package/dist/{isEmpty-DQXRKNtW.js → isEmpty-6z2uv6gM.js} +2 -2
  100. package/dist/{isString-Clqvtgmo.js → isString-D6abkXrl.js} +1 -1
  101. package/dist/{isSymbol-TWXhTa8k.js → isSymbol-hk7foJ70.js} +1 -1
  102. package/dist/{journeyDiagram-XKPGCS4Q-BrTAxQ1J.js → journeyDiagram-XKPGCS4Q-ahXD97kr.js} +3 -3
  103. package/dist/{kanban-definition-3W4ZIXB7-BoYCDp_9.js → kanban-definition-3W4ZIXB7-CiTIpnhy.js} +7 -7
  104. package/dist/{label-CxU5JNBW.js → label-Cc5tEavt.js} +250 -250
  105. package/dist/{loader-C0-eIoas.js → loader-Cob3XFOw.js} +2 -2
  106. package/dist/main.js +1791 -1056
  107. package/dist/{memoize-Bag7B41I.js → memoize-Ckyqzyu_.js} +1 -1
  108. package/dist/{merge-Dl1bfxsj.js → merge-Db4Uulx4.js} +1 -1
  109. package/dist/{mermaid-C2cSe5YL.js → mermaid-B5xl_2hx.js} +73 -62
  110. package/dist/{mermaid-parser.core-D20zFbMa.js → mermaid-parser.core-BXj7Il0J.js} +8 -8
  111. package/dist/{min-Bg4bqmiD.js → min-ypdVXicC.js} +4 -4
  112. package/dist/{mindmap-definition-VGOIOE7T-CmRjsKEt.js → mindmap-definition-VGOIOE7T-Mni766A_.js} +9 -9
  113. package/dist/{now-mivqkCIv.js → now-Dwu5ou19.js} +2 -2
  114. package/dist/{once-BqS42WgZ.js → once-C9dA9qgQ.js} +1 -1
  115. package/dist/{packet-BFZMPI3H-C6aZmgV-.js → packet-BFZMPI3H-DHtQCusE.js} +3 -3
  116. package/dist/{pie-7BOR55EZ-NB6xYwcB.js → pie-7BOR55EZ-2sVLYbpR.js} +3 -3
  117. package/dist/{pieDiagram-ADFJNKIX-CtxQlnsU.js → pieDiagram-ADFJNKIX-PbXpgT8_.js} +14 -14
  118. package/dist/{quadrantDiagram-AYHSOK5B-DllnB2Hl.js → quadrantDiagram-AYHSOK5B-BtXGnx8i.js} +2 -2
  119. package/dist/{radar-NHE76QYJ-RKhErikV.js → radar-NHE76QYJ-Be0pEUux.js} +3 -3
  120. package/dist/{range-LoQMRQIX.js → range-D9jxVFd_.js} +5 -5
  121. package/dist/{reduce-B9mZDxPo.js → reduce-C6NEPj6s.js} +4 -4
  122. package/dist/{requirementDiagram-UZGBJVZJ-D36MI1k0.js → requirementDiagram-UZGBJVZJ-DxzXQRgq.js} +9 -9
  123. package/dist/{sankeyDiagram-TZEHDZUN-D1mygNPC.js → sankeyDiagram-TZEHDZUN-D-I7dJ0_.js} +2 -2
  124. package/dist/{sequenceDiagram-WL72ISMW-CWdn91Rf.js → sequenceDiagram-WL72ISMW-VDme2ljw.js} +4 -4
  125. package/dist/{slides-component-DfwLApNr.js → slides-component-ql7-5GDI.js} +2 -2
  126. package/dist/{spec-HoYHAQo2.js → spec-GwhMEXwK.js} +8 -9
  127. package/dist/{stateDiagram-FKZM4ZOC-CPxroWXd.js → stateDiagram-FKZM4ZOC-g3GI1EcK.js} +12 -12
  128. package/dist/{stateDiagram-v2-4FDKWEC3-BpM9Q54b.js → stateDiagram-v2-4FDKWEC3-7i6jBXe6.js} +10 -10
  129. package/dist/stex-D2rme5UG.js +4 -0
  130. package/dist/style.css +1 -1
  131. package/dist/{timeline-definition-IT6M3QCI-CVnRHx_t.js → timeline-definition-IT6M3QCI-bhvLlX_b.js} +2 -2
  132. package/dist/{toString-C4TLO6FA.js → toString-BwTJvlyD.js} +2 -2
  133. package/dist/tooltip-CL8m4f9y.js +404 -0
  134. package/dist/{treemap-KMMF4GRG-B37ugcLd.js → treemap-KMMF4GRG-Ba9ifjpG.js} +3 -3
  135. package/dist/{types-Ckva8JJq.js → types-Dsh6yC4B.js} +412 -413
  136. package/dist/{useAsyncData-dr8GazGv.js → useAsyncData-BPpyKjTJ.js} +2 -2
  137. package/dist/{useDeepCompareMemoize-ChviuF5n.js → useDeepCompareMemoize-C8Ms87P-.js} +18 -19
  138. package/dist/{useIframeCapabilities-DurI5SJh.js → useIframeCapabilities-C7z8VrZ1.js} +2 -2
  139. package/dist/{useTheme-SlKl8MlS.js → useTheme-Cq-gIssy.js} +299 -300
  140. package/dist/{vega-component-CnG0vAjf.js → vega-component-B5sxdjMq.js} +10 -10
  141. package/dist/{xychartDiagram-PRI3JC2R-BltwMWKC.js → xychartDiagram-PRI3JC2R-CFxuifYY.js} +5 -5
  142. package/package.json +1 -1
  143. package/src/components/editor/Output.tsx +8 -6
  144. package/src/components/editor/__tests__/Output.test.tsx +59 -0
  145. package/src/components/editor/chrome/__tests__/state.test.ts +321 -0
  146. package/src/components/editor/chrome/state.ts +27 -2
  147. package/src/components/editor/file-tree/upload.tsx +46 -23
  148. package/src/components/editor/links/cell-link.tsx +3 -2
  149. package/src/components/editor/output/console/ConsoleOutput.tsx +13 -3
  150. package/src/components/pages/gallery-page.tsx +1 -1
  151. package/src/components/pages/home-page.tsx +5 -3
  152. package/src/components/tracing/tracing.tsx +50 -39
  153. package/src/core/documentation/DocHoverTarget.tsx +23 -0
  154. package/src/core/documentation/doc-lookup.ts +50 -0
  155. package/src/core/islands/main.ts +1 -0
  156. package/src/core/websocket/useMarimoKernelConnection.tsx +3 -0
  157. package/src/css/app/Cell.css +5 -0
  158. package/src/mount.tsx +2 -2
  159. package/src/plugins/core/RenderHTML.tsx +15 -0
  160. package/src/plugins/core/__test__/registerReactComponent.test.ts +204 -0
  161. package/src/plugins/core/registerReactComponent.tsx +33 -0
  162. package/src/plugins/impl/MatrixPlugin.tsx +275 -0
  163. package/src/plugins/impl/__tests__/MatrixPlugin.test.tsx +415 -0
  164. package/src/plugins/impl/anywidget/model.ts +1 -2
  165. package/src/plugins/impl/matplotlib/MatplotlibPlugin.tsx +70 -0
  166. package/src/plugins/impl/matplotlib/__tests__/matplotlib-renderer.test.ts +152 -0
  167. package/src/plugins/impl/matplotlib/matplotlib-renderer.ts +781 -0
  168. package/src/plugins/impl/matrix.css +45 -0
  169. package/src/plugins/layout/mermaid/mermaid.tsx +11 -3
  170. package/src/plugins/plugins.ts +4 -0
  171. package/src/utils/__tests__/download.test.tsx +47 -0
  172. package/src/utils/download.ts +13 -1
  173. package/src/utils/links.ts +1 -1
  174. package/src/utils/urls.ts +1 -1
  175. package/dist/Combination-BTMrlhzT.js +0 -2611
  176. package/dist/architecture-U656AL7Q-COfwZju8.js +0 -6
  177. package/dist/dist-4YNZxwMI.js +0 -8
  178. package/dist/dist-7nR3r2kG.js +0 -5
  179. package/dist/dist-B2gkyT3r.js +0 -5
  180. package/dist/dist-B8G3I6vJ.js +0 -8
  181. package/dist/dist-BJ96Ykfp.js +0 -8
  182. package/dist/dist-BKLIWGw4.js +0 -5
  183. package/dist/dist-Bf3ou00A.js +0 -6
  184. package/dist/dist-BvkKXuPm.js +0 -5
  185. package/dist/dist-C6NJ3n6r.js +0 -5
  186. package/dist/dist-CecLPYY5.js +0 -5
  187. package/dist/dist-Ch0SwRzK.js +0 -5
  188. package/dist/dist-D6eWHiFh.js +0 -6
  189. package/dist/dist-DCQ710Bv.js +0 -5
  190. package/dist/dist-P_pkS5f-.js +0 -8
  191. package/dist/error-banner-D2zjeN_a.js +0 -1015
  192. package/dist/hotkeys-B5WnGZXF.js +0 -587
  193. package/dist/stex-ChDHQs3R.js +0 -4
  194. package/dist/zod-bjADtMKr.js +0 -10663
  195. /package/dist/{_arrayReduce-DlK7U3Q6.js → _arrayReduce-REKcIEj3.js} +0 -0
  196. /package/dist/{_baseFor-DSVmVciX.js → _baseFor-B69PDbIz.js} +0 -0
  197. /package/dist/{_hasUnicode-Bz2x6u6r.js → _hasUnicode-DrSAc5A5.js} +0 -0
  198. /package/dist/{dist-r8ecBV-v.js → dist-CUOuFgHt.js} +0 -0
  199. /package/dist/{invariant-D9QLJ4SZ.js → invariant-D-K49MfV.js} +0 -0
  200. /package/dist/{main-DhFbkwoC.js → main-DmxVpB19.js} +0 -0
  201. /package/dist/{purify.es-Brw-U87Q.js → purify.es-D4vaFt5N.js} +0 -0
  202. /package/dist/{stex-DrxP7bb3.js → stex-DIvyJfNO.js} +0 -0
@@ -2,98 +2,97 @@ import { s as __toESM } from "./chunk-BNovOVIE.js";
2
2
  import { t as require_react } from "./react-Bs6Z0kvn.js";
3
3
  import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
4
4
  import { t as clsx } from "./clsx-D2KVTYnW.js";
5
- import { i as parseShortcut } from "./hotkeys-B5WnGZXF.js";
6
5
  import { t as require_jsx_runtime } from "./jsx-runtime-CTBg5pdT.js";
7
- var CLASS_PART_SEPARATOR = "-", createClassGroupUtils = (e) => {
8
- let _ = createClassMap(e), { conflictingClassGroups: v, conflictingClassGroupModifiers: y } = e;
6
+ var CLASS_PART_SEPARATOR = "-", createClassGroupUtils = (e2) => {
7
+ let _ = createClassMap(e2), { conflictingClassGroups: v, conflictingClassGroupModifiers: y } = e2;
9
8
  return {
10
- getClassGroupId: (e2) => {
11
- let v2 = e2.split(CLASS_PART_SEPARATOR);
12
- return v2[0] === "" && v2.length !== 1 && v2.shift(), getGroupRecursive(v2, _) || getGroupIdForArbitraryProperty(e2);
9
+ getClassGroupId: (e3) => {
10
+ let v2 = e3.split(CLASS_PART_SEPARATOR);
11
+ return v2[0] === "" && v2.length !== 1 && v2.shift(), getGroupRecursive(v2, _) || getGroupIdForArbitraryProperty(e3);
13
12
  },
14
- getConflictingClassGroupIds: (e2, _2) => {
15
- let b = v[e2] || [];
16
- return _2 && y[e2] ? [...b, ...y[e2]] : b;
13
+ getConflictingClassGroupIds: (e3, _2) => {
14
+ let b = v[e3] || [];
15
+ return _2 && y[e3] ? [...b, ...y[e3]] : b;
17
16
  }
18
17
  };
19
- }, getGroupRecursive = (e, _) => {
18
+ }, getGroupRecursive = (e2, _) => {
20
19
  var _a;
21
- if (e.length === 0) return _.classGroupId;
22
- let v = e[0], y = _.nextPart.get(v), b = y ? getGroupRecursive(e.slice(1), y) : void 0;
20
+ if (e2.length === 0) return _.classGroupId;
21
+ let v = e2[0], y = _.nextPart.get(v), b = y ? getGroupRecursive(e2.slice(1), y) : void 0;
23
22
  if (b) return b;
24
23
  if (_.validators.length === 0) return;
25
- let x = e.join(CLASS_PART_SEPARATOR);
26
- return (_a = _.validators.find(({ validator: e2 }) => e2(x))) == null ? void 0 : _a.classGroupId;
27
- }, arbitraryPropertyRegex = /^\[(.+)\]$/, getGroupIdForArbitraryProperty = (e) => {
28
- if (arbitraryPropertyRegex.test(e)) {
29
- let _ = arbitraryPropertyRegex.exec(e)[1], v = _ == null ? void 0 : _.substring(0, _.indexOf(":"));
24
+ let S = e2.join(CLASS_PART_SEPARATOR);
25
+ return (_a = _.validators.find(({ validator: e3 }) => e3(S))) == null ? void 0 : _a.classGroupId;
26
+ }, arbitraryPropertyRegex = /^\[(.+)\]$/, getGroupIdForArbitraryProperty = (e2) => {
27
+ if (arbitraryPropertyRegex.test(e2)) {
28
+ let _ = arbitraryPropertyRegex.exec(e2)[1], v = _ == null ? void 0 : _.substring(0, _.indexOf(":"));
30
29
  if (v) return "arbitrary.." + v;
31
30
  }
32
- }, createClassMap = (e) => {
33
- let { theme: _, prefix: v } = e, y = {
31
+ }, createClassMap = (e2) => {
32
+ let { theme: _, prefix: v } = e2, y = {
34
33
  nextPart: /* @__PURE__ */ new Map(),
35
34
  validators: []
36
35
  };
37
- return getPrefixedClassGroupEntries(Object.entries(e.classGroups), v).forEach(([e2, v2]) => {
38
- processClassesRecursively(v2, y, e2, _);
36
+ return getPrefixedClassGroupEntries(Object.entries(e2.classGroups), v).forEach(([e3, v2]) => {
37
+ processClassesRecursively(v2, y, e3, _);
39
38
  }), y;
40
- }, processClassesRecursively = (e, _, v, y) => {
41
- e.forEach((e2) => {
42
- if (typeof e2 == "string") {
43
- let y2 = e2 === "" ? _ : getPart(_, e2);
39
+ }, processClassesRecursively = (e2, _, v, y) => {
40
+ e2.forEach((e3) => {
41
+ if (typeof e3 == "string") {
42
+ let y2 = e3 === "" ? _ : getPart(_, e3);
44
43
  y2.classGroupId = v;
45
44
  return;
46
45
  }
47
- if (typeof e2 == "function") {
48
- if (isThemeGetter(e2)) {
49
- processClassesRecursively(e2(y), _, v, y);
46
+ if (typeof e3 == "function") {
47
+ if (isThemeGetter(e3)) {
48
+ processClassesRecursively(e3(y), _, v, y);
50
49
  return;
51
50
  }
52
51
  _.validators.push({
53
- validator: e2,
52
+ validator: e3,
54
53
  classGroupId: v
55
54
  });
56
55
  return;
57
56
  }
58
- Object.entries(e2).forEach(([e3, b]) => {
59
- processClassesRecursively(b, getPart(_, e3), v, y);
57
+ Object.entries(e3).forEach(([e4, b]) => {
58
+ processClassesRecursively(b, getPart(_, e4), v, y);
60
59
  });
61
60
  });
62
- }, getPart = (e, _) => {
63
- let v = e;
64
- return _.split(CLASS_PART_SEPARATOR).forEach((e2) => {
65
- v.nextPart.has(e2) || v.nextPart.set(e2, {
61
+ }, getPart = (e2, _) => {
62
+ let v = e2;
63
+ return _.split(CLASS_PART_SEPARATOR).forEach((e3) => {
64
+ v.nextPart.has(e3) || v.nextPart.set(e3, {
66
65
  nextPart: /* @__PURE__ */ new Map(),
67
66
  validators: []
68
- }), v = v.nextPart.get(e2);
67
+ }), v = v.nextPart.get(e3);
69
68
  }), v;
70
- }, isThemeGetter = (e) => e.isThemeGetter, getPrefixedClassGroupEntries = (e, _) => _ ? e.map(([e2, v]) => [e2, v.map((e3) => typeof e3 == "string" ? _ + e3 : typeof e3 == "object" ? Object.fromEntries(Object.entries(e3).map(([e4, v2]) => [_ + e4, v2])) : e3)]) : e, createLruCache = (e) => {
71
- if (e < 1) return {
69
+ }, isThemeGetter = (e2) => e2.isThemeGetter, getPrefixedClassGroupEntries = (e2, _) => _ ? e2.map(([e3, v]) => [e3, v.map((e4) => typeof e4 == "string" ? _ + e4 : typeof e4 == "object" ? Object.fromEntries(Object.entries(e4).map(([e5, v2]) => [_ + e5, v2])) : e4)]) : e2, createLruCache = (e2) => {
70
+ if (e2 < 1) return {
72
71
  get: () => void 0,
73
72
  set: () => {
74
73
  }
75
74
  };
76
75
  let _ = 0, v = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new Map(), b = (b2, x) => {
77
- v.set(b2, x), _++, _ > e && (_ = 0, y = v, v = /* @__PURE__ */ new Map());
76
+ v.set(b2, x), _++, _ > e2 && (_ = 0, y = v, v = /* @__PURE__ */ new Map());
78
77
  };
79
78
  return {
80
- get(e2) {
81
- let _2 = v.get(e2);
79
+ get(e3) {
80
+ let _2 = v.get(e3);
82
81
  if (_2 !== void 0) return _2;
83
- if ((_2 = y.get(e2)) !== void 0) return b(e2, _2), _2;
82
+ if ((_2 = y.get(e3)) !== void 0) return b(e3, _2), _2;
84
83
  },
85
- set(e2, _2) {
86
- v.has(e2) ? v.set(e2, _2) : b(e2, _2);
84
+ set(e3, _2) {
85
+ v.has(e3) ? v.set(e3, _2) : b(e3, _2);
87
86
  }
88
87
  };
89
- }, IMPORTANT_MODIFIER = "!", createParseClassName = (e) => {
90
- let { separator: _, experimentalParseClassName: v } = e, y = _.length === 1, b = _[0], x = _.length, S = (e2) => {
88
+ }, IMPORTANT_MODIFIER = "!", createParseClassName = (e2) => {
89
+ let { separator: _, experimentalParseClassName: v } = e2, y = _.length === 1, b = _[0], x = _.length, S = (e3) => {
91
90
  let v2 = [], S2 = 0, C = 0, w;
92
- for (let T2 = 0; T2 < e2.length; T2++) {
93
- let E2 = e2[T2];
91
+ for (let T2 = 0; T2 < e3.length; T2++) {
92
+ let E2 = e3[T2];
94
93
  if (S2 === 0) {
95
- if (E2 === b && (y || e2.slice(T2, T2 + x) === _)) {
96
- v2.push(e2.slice(C, T2)), C = T2 + x;
94
+ if (E2 === b && (y || e3.slice(T2, T2 + x) === _)) {
95
+ v2.push(e3.slice(C, T2)), C = T2 + x;
97
96
  continue;
98
97
  }
99
98
  if (E2 === "/") {
@@ -103,7 +102,7 @@ var CLASS_PART_SEPARATOR = "-", createClassGroupUtils = (e) => {
103
102
  }
104
103
  E2 === "[" ? S2++ : E2 === "]" && S2--;
105
104
  }
106
- let T = v2.length === 0 ? e2 : e2.substring(C), E = T.startsWith(IMPORTANT_MODIFIER);
105
+ let T = v2.length === 0 ? e3 : e3.substring(C), E = T.startsWith(IMPORTANT_MODIFIER);
107
106
  return {
108
107
  modifiers: v2,
109
108
  hasImportantModifier: E,
@@ -111,24 +110,24 @@ var CLASS_PART_SEPARATOR = "-", createClassGroupUtils = (e) => {
111
110
  maybePostfixModifierPosition: w && w > C ? w - C : void 0
112
111
  };
113
112
  };
114
- return v ? (e2) => v({
115
- className: e2,
113
+ return v ? (e3) => v({
114
+ className: e3,
116
115
  parseClassName: S
117
116
  }) : S;
118
- }, sortModifiers = (e) => {
119
- if (e.length <= 1) return e;
117
+ }, sortModifiers = (e2) => {
118
+ if (e2.length <= 1) return e2;
120
119
  let _ = [], v = [];
121
- return e.forEach((e2) => {
122
- e2[0] === "[" ? (_.push(...v.sort(), e2), v = []) : v.push(e2);
120
+ return e2.forEach((e3) => {
121
+ e3[0] === "[" ? (_.push(...v.sort(), e3), v = []) : v.push(e3);
123
122
  }), _.push(...v.sort()), _;
124
- }, createConfigUtils = (e) => ({
125
- cache: createLruCache(e.cacheSize),
126
- parseClassName: createParseClassName(e),
127
- ...createClassGroupUtils(e)
128
- }), SPLIT_CLASSES_REGEX = /\s+/, mergeClassList = (e, _) => {
129
- let { parseClassName: v, getClassGroupId: y, getConflictingClassGroupIds: b } = _, x = [], S = e.trim().split(SPLIT_CLASSES_REGEX), C = "";
130
- for (let e2 = S.length - 1; e2 >= 0; --e2) {
131
- let _2 = S[e2], { modifiers: w, hasImportantModifier: T, baseClassName: E, maybePostfixModifierPosition: D } = v(_2), O = !!D, k = y(O ? E.substring(0, D) : E);
123
+ }, createConfigUtils = (e2) => ({
124
+ cache: createLruCache(e2.cacheSize),
125
+ parseClassName: createParseClassName(e2),
126
+ ...createClassGroupUtils(e2)
127
+ }), SPLIT_CLASSES_REGEX = /\s+/, mergeClassList = (e2, _) => {
128
+ let { parseClassName: v, getClassGroupId: y, getConflictingClassGroupIds: b } = _, x = [], S = e2.trim().split(SPLIT_CLASSES_REGEX), C = "";
129
+ for (let e3 = S.length - 1; e3 >= 0; --e3) {
130
+ let _2 = S[e3], { modifiers: w, hasImportantModifier: T, baseClassName: E, maybePostfixModifierPosition: D } = v(_2), O = !!D, k = y(O ? E.substring(0, D) : E);
132
131
  if (!k) {
133
132
  if (!O) {
134
133
  C = _2 + (C.length > 0 ? " " + C : C);
@@ -140,12 +139,12 @@ var CLASS_PART_SEPARATOR = "-", createClassGroupUtils = (e) => {
140
139
  }
141
140
  O = false;
142
141
  }
143
- let A = sortModifiers(w).join(":"), j = T ? A + IMPORTANT_MODIFIER : A, M = j + k;
144
- if (x.includes(M)) continue;
145
- x.push(M);
146
- let P = b(k, O);
147
- for (let e3 = 0; e3 < P.length; ++e3) {
148
- let _3 = P[e3];
142
+ let A = sortModifiers(w).join(":"), j = T ? A + IMPORTANT_MODIFIER : A, N = j + k;
143
+ if (x.includes(N)) continue;
144
+ x.push(N);
145
+ let F = b(k, O);
146
+ for (let e4 = 0; e4 < F.length; ++e4) {
147
+ let _3 = F[e4];
149
148
  x.push(j + _3);
150
149
  }
151
150
  C = _2 + (C.length > 0 ? " " + C : C);
@@ -153,47 +152,47 @@ var CLASS_PART_SEPARATOR = "-", createClassGroupUtils = (e) => {
153
152
  return C;
154
153
  };
155
154
  function twJoin() {
156
- let e = 0, _, v, y = "";
157
- for (; e < arguments.length; ) (_ = arguments[e++]) && (v = toValue(_)) && (y && (y += " "), y += v);
155
+ let e2 = 0, _, v, y = "";
156
+ for (; e2 < arguments.length; ) (_ = arguments[e2++]) && (v = toValue(_)) && (y && (y += " "), y += v);
158
157
  return y;
159
158
  }
160
- var toValue = (e) => {
161
- if (typeof e == "string") return e;
159
+ var toValue = (e2) => {
160
+ if (typeof e2 == "string") return e2;
162
161
  let _, v = "";
163
- for (let y = 0; y < e.length; y++) e[y] && (_ = toValue(e[y])) && (v && (v += " "), v += _);
162
+ for (let y = 0; y < e2.length; y++) e2[y] && (_ = toValue(e2[y])) && (v && (v += " "), v += _);
164
163
  return v;
165
164
  };
166
- function createTailwindMerge(e, ..._) {
165
+ function createTailwindMerge(e2, ..._) {
167
166
  let v, y, b, x = S;
168
167
  function S(S2) {
169
- return v = createConfigUtils(_.reduce((e2, _2) => _2(e2), e())), y = v.cache.get, b = v.cache.set, x = C, C(S2);
168
+ return v = createConfigUtils(_.reduce((e3, _2) => _2(e3), e2())), y = v.cache.get, b = v.cache.set, x = C, C(S2);
170
169
  }
171
- function C(e2) {
172
- let _2 = y(e2);
170
+ function C(e3) {
171
+ let _2 = y(e3);
173
172
  if (_2) return _2;
174
- let x2 = mergeClassList(e2, v);
175
- return b(e2, x2), x2;
173
+ let x2 = mergeClassList(e3, v);
174
+ return b(e3, x2), x2;
176
175
  }
177
176
  return function() {
178
177
  return x(twJoin.apply(null, arguments));
179
178
  };
180
179
  }
181
- var fromTheme = (e) => {
182
- let _ = (_2) => _2[e] || [];
180
+ var fromTheme = (e2) => {
181
+ let _ = (_2) => _2[e2] || [];
183
182
  return _.isThemeGetter = true, _;
184
183
  }, arbitraryValueRegex = /^\[(?:([a-z-]+):)?(.+)\]$/i, fractionRegex = /^\d+\/\d+$/, stringLengths = /* @__PURE__ */ new Set([
185
184
  "px",
186
185
  "full",
187
186
  "screen"
188
- ]), tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/, shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, isLength = (e) => isNumber(e) || stringLengths.has(e) || fractionRegex.test(e), isArbitraryLength = (e) => getIsArbitraryValue(e, "length", isLengthOnly), isNumber = (e) => !!e && !Number.isNaN(Number(e)), isArbitraryNumber = (e) => getIsArbitraryValue(e, "number", isNumber), isInteger = (e) => !!e && Number.isInteger(Number(e)), isPercent = (e) => e.endsWith("%") && isNumber(e.slice(0, -1)), isArbitraryValue = (e) => arbitraryValueRegex.test(e), isTshirtSize = (e) => tshirtUnitRegex.test(e), sizeLabels = /* @__PURE__ */ new Set([
187
+ ]), tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/, shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, isLength = (e2) => isNumber(e2) || stringLengths.has(e2) || fractionRegex.test(e2), isArbitraryLength = (e2) => getIsArbitraryValue(e2, "length", isLengthOnly), isNumber = (e2) => !!e2 && !Number.isNaN(Number(e2)), isArbitraryNumber = (e2) => getIsArbitraryValue(e2, "number", isNumber), isInteger = (e2) => !!e2 && Number.isInteger(Number(e2)), isPercent = (e2) => e2.endsWith("%") && isNumber(e2.slice(0, -1)), isArbitraryValue = (e2) => arbitraryValueRegex.test(e2), isTshirtSize = (e2) => tshirtUnitRegex.test(e2), sizeLabels = /* @__PURE__ */ new Set([
189
188
  "length",
190
189
  "size",
191
190
  "percentage"
192
- ]), isArbitrarySize = (e) => getIsArbitraryValue(e, sizeLabels, isNever), isArbitraryPosition = (e) => getIsArbitraryValue(e, "position", isNever), imageLabels = /* @__PURE__ */ new Set(["image", "url"]), isArbitraryImage = (e) => getIsArbitraryValue(e, imageLabels, isImage), isArbitraryShadow = (e) => getIsArbitraryValue(e, "", isShadow), isAny = () => true, getIsArbitraryValue = (e, _, v) => {
193
- let y = arbitraryValueRegex.exec(e);
191
+ ]), isArbitrarySize = (e2) => getIsArbitraryValue(e2, sizeLabels, isNever), isArbitraryPosition = (e2) => getIsArbitraryValue(e2, "position", isNever), imageLabels = /* @__PURE__ */ new Set(["image", "url"]), isArbitraryImage = (e2) => getIsArbitraryValue(e2, imageLabels, isImage), isArbitraryShadow = (e2) => getIsArbitraryValue(e2, "", isShadow), isAny = () => true, getIsArbitraryValue = (e2, _, v) => {
192
+ let y = arbitraryValueRegex.exec(e2);
194
193
  return y ? y[1] ? typeof _ == "string" ? y[1] === _ : _.has(y[1]) : v(y[2]) : false;
195
- }, isLengthOnly = (e) => lengthUnitRegex.test(e) && !colorFunctionRegex.test(e), isNever = () => false, isShadow = (e) => shadowRegex.test(e), isImage = (e) => imageRegex.test(e), twMerge = /* @__PURE__ */ createTailwindMerge(() => {
196
- let e = fromTheme("colors"), _ = fromTheme("spacing"), v = fromTheme("blur"), y = fromTheme("brightness"), b = fromTheme("borderColor"), x = fromTheme("borderRadius"), S = fromTheme("borderSpacing"), C = fromTheme("borderWidth"), w = fromTheme("contrast"), T = fromTheme("grayscale"), E = fromTheme("hueRotate"), D = fromTheme("invert"), O = fromTheme("gap"), k = fromTheme("gradientColorStops"), A = fromTheme("gradientColorStopPositions"), j = fromTheme("inset"), M = fromTheme("margin"), N = fromTheme("opacity"), P = fromTheme("padding"), F = fromTheme("saturate"), I = fromTheme("scale"), L = fromTheme("sepia"), R = fromTheme("skew"), z = fromTheme("space"), B = fromTheme("translate"), V = () => [
194
+ }, isLengthOnly = (e2) => lengthUnitRegex.test(e2) && !colorFunctionRegex.test(e2), isNever = () => false, isShadow = (e2) => shadowRegex.test(e2), isImage = (e2) => imageRegex.test(e2), twMerge = /* @__PURE__ */ createTailwindMerge(() => {
195
+ let e2 = fromTheme("colors"), _ = fromTheme("spacing"), v = fromTheme("blur"), y = fromTheme("brightness"), b = fromTheme("borderColor"), x = fromTheme("borderRadius"), S = fromTheme("borderSpacing"), C = fromTheme("borderWidth"), w = fromTheme("contrast"), T = fromTheme("grayscale"), E = fromTheme("hueRotate"), D = fromTheme("invert"), O = fromTheme("gap"), k = fromTheme("gradientColorStops"), A = fromTheme("gradientColorStopPositions"), j = fromTheme("inset"), M = fromTheme("margin"), N = fromTheme("opacity"), P = fromTheme("padding"), F = fromTheme("saturate"), I = fromTheme("scale"), L = fromTheme("sepia"), R = fromTheme("skew"), z = fromTheme("space"), B = fromTheme("translate"), V = () => [
197
196
  "auto",
198
197
  "contain",
199
198
  "none"
@@ -283,7 +282,7 @@ var fromTheme = (e) => {
283
282
  isArbitraryValue
284
283
  ],
285
284
  brightness: $(),
286
- borderColor: [e],
285
+ borderColor: [e2],
287
286
  borderRadius: [
288
287
  "none",
289
288
  "",
@@ -298,7 +297,7 @@ var fromTheme = (e) => {
298
297
  hueRotate: $(),
299
298
  invert: Z(),
300
299
  gap: W(),
301
- gradientColorStops: [e],
300
+ gradientColorStops: [e2],
302
301
  gradientColorStopPositions: [isPercent, isArbitraryLength],
303
302
  inset: U(),
304
303
  margin: U(),
@@ -679,7 +678,7 @@ var fromTheme = (e) => {
679
678
  isArbitraryValue
680
679
  ] }],
681
680
  "list-style-position": [{ list: ["inside", "outside"] }],
682
- "placeholder-color": [{ placeholder: [e] }],
681
+ "placeholder-color": [{ placeholder: [e2] }],
683
682
  "placeholder-opacity": [{ "placeholder-opacity": [N] }],
684
683
  "text-alignment": [{ text: [
685
684
  "left",
@@ -689,7 +688,7 @@ var fromTheme = (e) => {
689
688
  "start",
690
689
  "end"
691
690
  ] }],
692
- "text-color": [{ text: [e] }],
691
+ "text-color": [{ text: [e2] }],
693
692
  "text-opacity": [{ "text-opacity": [N] }],
694
693
  "text-decoration": [
695
694
  "underline",
@@ -709,7 +708,7 @@ var fromTheme = (e) => {
709
708
  isLength,
710
709
  isArbitraryValue
711
710
  ] }],
712
- "text-decoration-color": [{ decoration: [e] }],
711
+ "text-decoration-color": [{ decoration: [e2] }],
713
712
  "text-transform": [
714
713
  "uppercase",
715
714
  "lowercase",
@@ -804,7 +803,7 @@ var fromTheme = (e) => {
804
803
  ] },
805
804
  isArbitraryImage
806
805
  ] }],
807
- "bg-color": [{ bg: [e] }],
806
+ "bg-color": [{ bg: [e2] }],
808
807
  "gradient-from-pos": [{ from: [A] }],
809
808
  "gradient-via-pos": [{ via: [A] }],
810
809
  "gradient-to-pos": [{ to: [A] }],
@@ -856,13 +855,13 @@ var fromTheme = (e) => {
856
855
  "outline-style": [{ outline: ["", ...J()] }],
857
856
  "outline-offset": [{ "outline-offset": [isLength, isArbitraryValue] }],
858
857
  "outline-w": [{ outline: [isLength, isArbitraryLength] }],
859
- "outline-color": [{ outline: [e] }],
858
+ "outline-color": [{ outline: [e2] }],
860
859
  "ring-w": [{ ring: G() }],
861
860
  "ring-w-inset": ["ring-inset"],
862
- "ring-color": [{ ring: [e] }],
861
+ "ring-color": [{ ring: [e2] }],
863
862
  "ring-opacity": [{ "ring-opacity": [N] }],
864
863
  "ring-offset-w": [{ "ring-offset": [isLength, isArbitraryLength] }],
865
- "ring-offset-color": [{ "ring-offset": [e] }],
864
+ "ring-offset-color": [{ "ring-offset": [e2] }],
866
865
  shadow: [{ shadow: [
867
866
  "",
868
867
  "inner",
@@ -961,7 +960,7 @@ var fromTheme = (e) => {
961
960
  "top-left",
962
961
  isArbitraryValue
963
962
  ] }],
964
- accent: [{ accent: ["auto", e] }],
963
+ accent: [{ accent: ["auto", e2] }],
965
964
  appearance: [{ appearance: ["none", "auto"] }],
966
965
  cursor: [{ cursor: [
967
966
  "auto",
@@ -1002,7 +1001,7 @@ var fromTheme = (e) => {
1002
1001
  "zoom-out",
1003
1002
  isArbitraryValue
1004
1003
  ] }],
1005
- "caret-color": [{ caret: [e] }],
1004
+ "caret-color": [{ caret: [e2] }],
1006
1005
  "pointer-events": [{ "pointer-events": ["none", "auto"] }],
1007
1006
  resize: [{ resize: [
1008
1007
  "none",
@@ -1072,13 +1071,13 @@ var fromTheme = (e) => {
1072
1071
  "transform",
1073
1072
  isArbitraryValue
1074
1073
  ] }],
1075
- fill: [{ fill: [e, "none"] }],
1074
+ fill: [{ fill: [e2, "none"] }],
1076
1075
  "stroke-w": [{ stroke: [
1077
1076
  isLength,
1078
1077
  isArbitraryLength,
1079
1078
  isArbitraryNumber
1080
1079
  ] }],
1081
- stroke: [{ stroke: [e, "none"] }],
1080
+ stroke: [{ stroke: [e2, "none"] }],
1082
1081
  sr: ["sr-only", "not-sr-only"],
1083
1082
  "forced-color-adjust": [{ "forced-color-adjust": ["auto", "none"] }]
1084
1083
  },
@@ -1221,92 +1220,667 @@ var fromTheme = (e) => {
1221
1220
  conflictingClassGroupModifiers: { "font-size": ["leading"] }
1222
1221
  };
1223
1222
  });
1224
- function cn(...e) {
1225
- return twMerge(clsx(e));
1223
+ function cn(...e2) {
1224
+ return twMerge(clsx(e2));
1226
1225
  }
1227
- const Events = {
1228
- stopPropagation: (e) => (_) => {
1229
- _.stopPropagation(), e && e(_);
1226
+ const Functions = {
1227
+ NOOP: () => {
1230
1228
  },
1231
- onEnter: (e) => (_) => {
1232
- _.key === "Enter" && e && e(_);
1229
+ ASYNC_NOOP: async () => {
1233
1230
  },
1234
- preventFocus: (e) => {
1235
- e.preventDefault();
1231
+ THROW: () => {
1232
+ throw Error("Should not be called");
1236
1233
  },
1237
- fromInput: (e) => {
1238
- let _ = e.target;
1239
- return _.tagName === "INPUT" || _.tagName === "TEXTAREA" || _.tagName.startsWith("MARIMO") || _.isContentEditable || Events.fromCodeMirror(e);
1234
+ asUpdater: (e2) => typeof e2 == "function" ? e2 : () => e2,
1235
+ identity: (e2) => e2
1236
+ };
1237
+ function throwNotImplemented() {
1238
+ throw Error("Not implemented");
1239
+ }
1240
+ var createNamespacedLogger = (e2, _) => {
1241
+ let v = `[${e2}]`;
1242
+ return {
1243
+ debug: (...e3) => console.debug(v, ...e3),
1244
+ log: (...e3) => _.log(v, ...e3),
1245
+ warn: (...e3) => _.warn(v, ...e3),
1246
+ error: (...e3) => _.error(v, ...e3),
1247
+ trace: (...e3) => _.trace(v, ...e3),
1248
+ get: (v2) => createNamespacedLogger(`${e2}:${v2}`, _),
1249
+ disabled: (e3 = true) => e3 ? DisabledLogger : _
1250
+ };
1251
+ }, ConsoleLogger = {
1252
+ debug: (...e2) => {
1253
+ console.debug(...e2);
1254
+ },
1255
+ log: (...e2) => {
1256
+ console.log(...e2);
1257
+ },
1258
+ warn: (...e2) => {
1259
+ console.warn(...e2);
1260
+ },
1261
+ error: (...e2) => {
1262
+ console.error(...e2);
1263
+ },
1264
+ trace: (...e2) => {
1265
+ console.trace(...e2);
1240
1266
  },
1241
- fromCodeMirror: (e) => e.target.closest(".cm-editor") !== null,
1242
- shouldIgnoreKeyboardEvent(e) {
1243
- return e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLSelectElement || e.target instanceof HTMLElement && (e.target.isContentEditable || e.target.tagName === "BUTTON" || e.target.closest("[role='textbox']") !== null || e.target.closest("[contenteditable='true']") !== null || e.target.closest(".cm-editor") !== null);
1267
+ get: (e2) => createNamespacedLogger(`marimo:${e2}`, ConsoleLogger),
1268
+ disabled: (e2 = true) => e2 ? DisabledLogger : ConsoleLogger
1269
+ }, DisabledLogger = {
1270
+ debug: () => Functions.NOOP,
1271
+ log: () => Functions.NOOP,
1272
+ warn: () => Functions.NOOP,
1273
+ error: () => Functions.NOOP,
1274
+ trace: () => Functions.NOOP,
1275
+ get: () => DisabledLogger,
1276
+ disabled: () => DisabledLogger
1277
+ };
1278
+ function getLogger() {
1279
+ return typeof window < "u" && window.Logger || ConsoleLogger;
1280
+ }
1281
+ const Logger = getLogger(), Events = {
1282
+ stopPropagation: (e2) => (_) => {
1283
+ _.stopPropagation(), e2 && e2(_);
1284
+ },
1285
+ onEnter: (e2) => (_) => {
1286
+ _.key === "Enter" && e2 && e2(_);
1287
+ },
1288
+ preventFocus: (e2) => {
1289
+ e2.preventDefault();
1244
1290
  },
1245
- hasModifier: (e) => e.ctrlKey || e.metaKey || e.altKey || e.shiftKey,
1246
- isMetaOrCtrl: (e) => e.metaKey || e.ctrlKey
1291
+ fromInput: (e2) => {
1292
+ let _ = e2.target;
1293
+ return _.tagName === "INPUT" || _.tagName === "TEXTAREA" || _.tagName.startsWith("MARIMO") || _.isContentEditable || Events.fromCodeMirror(e2);
1294
+ },
1295
+ fromCodeMirror: (e2) => e2.target.closest(".cm-editor") !== null,
1296
+ shouldIgnoreKeyboardEvent(e2) {
1297
+ return e2.target instanceof HTMLInputElement || e2.target instanceof HTMLTextAreaElement || e2.target instanceof HTMLSelectElement || e2.target instanceof HTMLElement && (e2.target.isContentEditable || e2.target.tagName === "BUTTON" || e2.target.closest("[role='textbox']") !== null || e2.target.closest("[contenteditable='true']") !== null || e2.target.closest(".cm-editor") !== null);
1298
+ },
1299
+ hasModifier: (e2) => e2.ctrlKey || e2.metaKey || e2.altKey || e2.shiftKey,
1300
+ isMetaOrCtrl: (e2) => e2.metaKey || e2.ctrlKey
1247
1301
  };
1248
1302
  var import_react = /* @__PURE__ */ __toESM(require_react(), 1);
1249
- function setRef(e, _) {
1250
- if (typeof e == "function") return e(_);
1251
- e != null && (e.current = _);
1303
+ function setRef(e2, _) {
1304
+ if (typeof e2 == "function") return e2(_);
1305
+ e2 != null && (e2.current = _);
1252
1306
  }
1253
- function composeRefs(...e) {
1307
+ function composeRefs(...e2) {
1254
1308
  return (_) => {
1255
- let v = false, y = e.map((e2) => {
1256
- let y2 = setRef(e2, _);
1309
+ let v = false, y = e2.map((e3) => {
1310
+ let y2 = setRef(e3, _);
1257
1311
  return !v && typeof y2 == "function" && (v = true), y2;
1258
1312
  });
1259
1313
  if (v) return () => {
1260
1314
  for (let _2 = 0; _2 < y.length; _2++) {
1261
1315
  let v2 = y[_2];
1262
- typeof v2 == "function" ? v2() : setRef(e[_2], null);
1316
+ typeof v2 == "function" ? v2() : setRef(e2[_2], null);
1263
1317
  }
1264
1318
  };
1265
1319
  };
1266
1320
  }
1267
- function useComposedRefs(...e) {
1268
- return import_react.useCallback(composeRefs(...e), e);
1321
+ function useComposedRefs(...e2) {
1322
+ return import_react.useCallback(composeRefs(...e2), e2);
1269
1323
  }
1270
1324
  var import_compiler_runtime$1 = require_compiler_runtime();
1271
- function isRefObject(e) {
1272
- return typeof e == "object" && !!e && "current" in e;
1325
+ function isRefObject(e2) {
1326
+ return typeof e2 == "object" && !!e2 && "current" in e2;
1273
1327
  }
1274
- function useEventListener(e, _, v, y) {
1328
+ function useEventListener(e2, _, v, y) {
1275
1329
  let b = (0, import_compiler_runtime$1.c)(8), x = (0, import_react.useRef)(v), S, C;
1276
1330
  b[0] === v ? (S = b[1], C = b[2]) : (S = () => {
1277
1331
  x.current = v;
1278
1332
  }, C = [v], b[0] = v, b[1] = S, b[2] = C), (0, import_react.useEffect)(S, C);
1279
1333
  let w, T;
1280
- b[3] !== y || b[4] !== e || b[5] !== _ ? (w = () => {
1281
- let v2 = isRefObject(e) ? e.current : e;
1334
+ b[3] !== y || b[4] !== e2 || b[5] !== _ ? (w = () => {
1335
+ let v2 = isRefObject(e2) ? e2.current : e2;
1282
1336
  if (!v2) return;
1283
- let b2 = (e2) => x.current(e2);
1337
+ let b2 = (e3) => x.current(e3);
1284
1338
  return v2.addEventListener(_, b2, y), () => {
1285
1339
  v2.removeEventListener(_, b2, y);
1286
1340
  };
1287
1341
  }, T = [
1288
1342
  _,
1289
- e,
1343
+ e2,
1290
1344
  y
1291
- ], b[3] = y, b[4] = e, b[5] = _, b[6] = w, b[7] = T) : (w = b[6], T = b[7]), (0, import_react.useEffect)(w, T);
1345
+ ], b[3] = y, b[4] = e2, b[5] = _, b[6] = w, b[7] = T) : (w = b[6], T = b[7]), (0, import_react.useEffect)(w, T);
1346
+ }
1347
+ const Objects = {
1348
+ EMPTY: Object.freeze({}),
1349
+ mapValues(e2, _) {
1350
+ return e2 && Objects.fromEntries(Objects.entries(e2).map(([e3, v]) => [e3, _(v, e3)]));
1351
+ },
1352
+ fromEntries(e2) {
1353
+ return Object.fromEntries(e2);
1354
+ },
1355
+ entries(e2) {
1356
+ return Object.entries(e2);
1357
+ },
1358
+ keys(e2) {
1359
+ return Object.keys(e2);
1360
+ },
1361
+ size(e2) {
1362
+ return Object.keys(e2).length;
1363
+ },
1364
+ keyBy(e2, _) {
1365
+ let v = {};
1366
+ for (let y of e2) {
1367
+ let e3 = _(y);
1368
+ e3 !== void 0 && (v[e3] = y);
1369
+ }
1370
+ return v;
1371
+ },
1372
+ collect(e2, _, v) {
1373
+ return Objects.mapValues(Objects.keyBy(e2, _), v);
1374
+ },
1375
+ groupBy(e2, _, v) {
1376
+ let y = {};
1377
+ for (let b of e2) {
1378
+ let e3 = _(b);
1379
+ if (e3 === void 0) continue;
1380
+ let x = v(b);
1381
+ e3 in y ? y[e3].push(x) : y[e3] = [x];
1382
+ }
1383
+ return y;
1384
+ },
1385
+ filter(e2, _) {
1386
+ let v = {};
1387
+ for (let [y, b] of Objects.entries(e2)) _(b, y) && (v[y] = e2[y]);
1388
+ return v;
1389
+ },
1390
+ omit(e2, _) {
1391
+ let v = new Set(_);
1392
+ return Objects.filter(e2, (e3, _2) => !v.has(_2));
1393
+ }
1394
+ };
1395
+ function isPlatformMac() {
1396
+ if (typeof window > "u") return Logger.warn("isPlatformMac() called without window"), false;
1397
+ let e2 = window.navigator.userAgentData ? window.navigator.userAgentData.platform : window.navigator.platform;
1398
+ return /mac/i.test(e2);
1399
+ }
1400
+ function isPlatformWindows() {
1401
+ if (typeof window > "u") return Logger.warn("isPlatformWindows() called without window"), false;
1402
+ let e2 = window.navigator.userAgentData ? window.navigator.userAgentData.platform : window.navigator.platform;
1403
+ return /win/i.test(e2);
1404
+ }
1405
+ function areKeysPressed(e2, _) {
1406
+ let v = true;
1407
+ for (let y of e2) {
1408
+ switch (y) {
1409
+ case "mod":
1410
+ v && (v = _.metaKey || _.ctrlKey);
1411
+ break;
1412
+ case "ctrl":
1413
+ v && (v = _.ctrlKey);
1414
+ break;
1415
+ case "meta":
1416
+ v && (v = _.metaKey);
1417
+ break;
1418
+ case "shift":
1419
+ v && (v = _.shiftKey);
1420
+ break;
1421
+ case "alt":
1422
+ v && (v = _.altKey);
1423
+ break;
1424
+ case "space":
1425
+ v && (v = _.code === "Space");
1426
+ break;
1427
+ default:
1428
+ /^\d$/.test(y) && _.shiftKey ? v && (v = _.code === `Digit${y}`) : v && (v = _.key.toLowerCase() === y);
1429
+ break;
1430
+ }
1431
+ if (!v) return false;
1432
+ }
1433
+ return e2.includes("shift") || v && (v = !_.shiftKey), !e2.includes("ctrl") && !e2.includes("mod") && (v && (v = !_.ctrlKey)), !e2.includes("meta") && !e2.includes("mod") && (v && (v = !_.metaKey)), e2.includes("alt") || v && (v = !_.altKey), v;
1434
+ }
1435
+ function normalizeKey(e2) {
1436
+ return {
1437
+ control: "ctrl",
1438
+ command: "mod",
1439
+ cmd: "mod",
1440
+ option: "alt",
1441
+ return: "enter"
1442
+ }[e2.toLowerCase()] || e2.toLowerCase();
1443
+ }
1444
+ function parseShortcut(e2) {
1445
+ if (e2 === NOT_SET || e2 === "") return () => false;
1446
+ let _ = e2.includes("+") ? "+" : "-", v = e2.split(_).map(normalizeKey);
1447
+ return (e3) => areKeysPressed(v, e3);
1292
1448
  }
1293
- var falsyToString = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e;
1294
- const cx = clsx, cva = (e, _) => (v) => {
1449
+ function resolvePlatform() {
1450
+ return isPlatformMac() ? "mac" : isPlatformWindows() ? "windows" : "linux";
1451
+ }
1452
+ const NOT_SET = /* @__PURE__ */ Symbol("NOT_SET");
1453
+ var DEFAULT_HOT_KEY = {
1454
+ "cell.focusUp": {
1455
+ name: "Go to previous cell",
1456
+ group: "Navigation",
1457
+ key: "Mod-Shift-k"
1458
+ },
1459
+ "cell.focusDown": {
1460
+ name: "Go to next cell",
1461
+ group: "Navigation",
1462
+ key: "Mod-Shift-j"
1463
+ },
1464
+ "cell.moveUp": {
1465
+ name: "Move cell up",
1466
+ group: "Creation and Ordering",
1467
+ key: "Mod-Shift-9"
1468
+ },
1469
+ "cell.moveDown": {
1470
+ name: "Move cell down",
1471
+ group: "Creation and Ordering",
1472
+ key: "Mod-Shift-0"
1473
+ },
1474
+ "cell.moveLeft": {
1475
+ name: "Move left",
1476
+ group: "Creation and Ordering",
1477
+ key: "Mod-Shift-7"
1478
+ },
1479
+ "cell.moveRight": {
1480
+ name: "Move right",
1481
+ group: "Creation and Ordering",
1482
+ key: "Mod-Shift-8"
1483
+ },
1484
+ "cell.createAbove": {
1485
+ name: "New cell above",
1486
+ group: "Creation and Ordering",
1487
+ key: "Mod-Shift-o"
1488
+ },
1489
+ "cell.createBelow": {
1490
+ name: "New cell below",
1491
+ group: "Creation and Ordering",
1492
+ key: "Mod-Shift-p"
1493
+ },
1494
+ "cell.sendToTop": {
1495
+ name: "Send to top",
1496
+ group: "Creation and Ordering",
1497
+ key: "Mod-Shift-1"
1498
+ },
1499
+ "cell.sendToBottom": {
1500
+ name: "Send to bottom",
1501
+ group: "Creation and Ordering",
1502
+ key: "Mod-Shift-2"
1503
+ },
1504
+ "cell.addColumnBreakpoint": {
1505
+ name: "Add column breakpoint",
1506
+ group: "Creation and Ordering",
1507
+ key: "Mod-Shift-3"
1508
+ },
1509
+ "cell.run": {
1510
+ name: "Run",
1511
+ group: "Running Cells",
1512
+ key: "Mod-Enter"
1513
+ },
1514
+ "cell.runAndNewBelow": {
1515
+ name: "Run and new below",
1516
+ group: "Running Cells",
1517
+ key: "Shift-Enter"
1518
+ },
1519
+ "cell.runAndNewAbove": {
1520
+ name: "Run and new above",
1521
+ group: "Running Cells",
1522
+ key: "Mod-Shift-Enter"
1523
+ },
1524
+ "global.runAll": {
1525
+ name: "Re-run all cells",
1526
+ group: "Running Cells",
1527
+ key: NOT_SET
1528
+ },
1529
+ "cell.format": {
1530
+ name: "Format cell",
1531
+ group: "Editing",
1532
+ key: "Mod-b"
1533
+ },
1534
+ "cell.viewAsMarkdown": {
1535
+ name: "View as Markdown",
1536
+ group: "Editing",
1537
+ key: "Mod-Shift-m"
1538
+ },
1539
+ "cell.complete": {
1540
+ name: "Code completion",
1541
+ group: "Editing",
1542
+ key: "Ctrl-Space"
1543
+ },
1544
+ "cell.signatureHelp": {
1545
+ name: "Signature help",
1546
+ group: "Editing",
1547
+ key: "Mod-Shift-Space"
1548
+ },
1549
+ "cell.undo": {
1550
+ name: "Undo",
1551
+ group: "Editing",
1552
+ key: "Mod-z"
1553
+ },
1554
+ "cell.redo": {
1555
+ name: "Redo",
1556
+ group: "Editing",
1557
+ key: {
1558
+ main: "Mod-Shift-z",
1559
+ windows: "Mod-y"
1560
+ }
1561
+ },
1562
+ "cell.findAndReplace": {
1563
+ name: "Find and Replace",
1564
+ group: "Editing",
1565
+ key: "Mod-f"
1566
+ },
1567
+ "cell.selectNextOccurrence": {
1568
+ name: "Add selection to next Find match",
1569
+ group: "Editing",
1570
+ key: "Mod-d"
1571
+ },
1572
+ "cell.fold": {
1573
+ name: "Fold region",
1574
+ group: "Editing",
1575
+ key: {
1576
+ main: "Mod-Alt-[",
1577
+ windows: "Mod-Shift-["
1578
+ }
1579
+ },
1580
+ "cell.unfold": {
1581
+ name: "Unfold region",
1582
+ group: "Editing",
1583
+ key: {
1584
+ main: "Mod-Alt-]",
1585
+ windows: "Mod-Shift-]"
1586
+ }
1587
+ },
1588
+ "cell.foldAll": {
1589
+ name: "Fold all regions",
1590
+ group: "Editing",
1591
+ key: "Ctrl-Alt-["
1592
+ },
1593
+ "cell.unfoldAll": {
1594
+ name: "Unfold all regions",
1595
+ group: "Editing",
1596
+ key: "Ctrl-Alt-]"
1597
+ },
1598
+ "cell.delete": {
1599
+ name: "Delete cell",
1600
+ group: "Editing",
1601
+ key: "Shift-Backspace"
1602
+ },
1603
+ "cell.hideCode": {
1604
+ name: "Hide cell code",
1605
+ group: "Editing",
1606
+ key: "Mod-h"
1607
+ },
1608
+ "cell.aiCompletion": {
1609
+ name: "AI completion",
1610
+ group: "Editing",
1611
+ key: "Mod-Shift-e"
1612
+ },
1613
+ "cell.cellActions": {
1614
+ name: "Open cell actions",
1615
+ group: "Editing",
1616
+ key: "Mod-p"
1617
+ },
1618
+ "cell.splitCell": {
1619
+ name: "Split cell",
1620
+ group: "Editing",
1621
+ key: "Mod-Shift-'"
1622
+ },
1623
+ "cell.toggleComment": {
1624
+ name: "Toggle comment",
1625
+ group: "Editing",
1626
+ key: "Mod-/"
1627
+ },
1628
+ "cell.toggleBlockComment": {
1629
+ name: "Toggle block comment",
1630
+ group: "Editing",
1631
+ key: "Alt-A"
1632
+ },
1633
+ "cell.renameSymbol": {
1634
+ name: "Rename symbol",
1635
+ group: "Editing",
1636
+ key: "F2"
1637
+ },
1638
+ "cell.copyLineUp": {
1639
+ name: "Copy line(s) up",
1640
+ group: "Editing",
1641
+ key: "Alt-Shift-ArrowUp",
1642
+ editable: false
1643
+ },
1644
+ "cell.copyLineDown": {
1645
+ name: "Copy line(s) down",
1646
+ group: "Editing",
1647
+ key: "Alt-Shift-ArrowDown",
1648
+ editable: false
1649
+ },
1650
+ "markdown.bold": {
1651
+ name: "Bold",
1652
+ group: "Markdown",
1653
+ key: "Mod-b"
1654
+ },
1655
+ "markdown.italic": {
1656
+ name: "Italic",
1657
+ group: "Markdown",
1658
+ key: "Mod-i"
1659
+ },
1660
+ "markdown.link": {
1661
+ name: "Convert to Link",
1662
+ group: "Markdown",
1663
+ key: "Mod-k"
1664
+ },
1665
+ "markdown.orderedList": {
1666
+ name: "Convert to Ordered list",
1667
+ group: "Markdown",
1668
+ key: "Mod-Shift-7"
1669
+ },
1670
+ "markdown.unorderedList": {
1671
+ name: "Convert to Unordered list",
1672
+ group: "Markdown",
1673
+ key: "Mod-Shift-8"
1674
+ },
1675
+ "markdown.blockquote": {
1676
+ name: "Convert to Blockquote",
1677
+ group: "Markdown",
1678
+ key: "Mod-Shift-9"
1679
+ },
1680
+ "markdown.code": {
1681
+ name: "Convert to Code",
1682
+ group: "Markdown",
1683
+ key: "Mod-Shift-0"
1684
+ },
1685
+ "global.hideCode": {
1686
+ name: "Toggle app view",
1687
+ group: "Other",
1688
+ key: "Mod-."
1689
+ },
1690
+ "global.foldCode": {
1691
+ name: "Fold all cells",
1692
+ group: "Editing",
1693
+ key: {
1694
+ main: "Ctrl-Cmd-l",
1695
+ windows: "Mod-Shift-l"
1696
+ }
1697
+ },
1698
+ "global.unfoldCode": {
1699
+ name: "Unfold all cells",
1700
+ group: "Editing",
1701
+ key: {
1702
+ main: "Ctrl-Cmd-;",
1703
+ windows: "Mod-Shift-:"
1704
+ }
1705
+ },
1706
+ "global.showHelp": {
1707
+ name: "Show keyboard shortcuts",
1708
+ group: "Other",
1709
+ key: "Mod-Shift-h"
1710
+ },
1711
+ "global.save": {
1712
+ name: "Save file",
1713
+ group: "Other",
1714
+ key: "Mod-s"
1715
+ },
1716
+ "global.commandPalette": {
1717
+ name: "Show command palette",
1718
+ group: "Other",
1719
+ key: "Mod-k"
1720
+ },
1721
+ "global.runStale": {
1722
+ name: "Run all stale cells",
1723
+ group: "Running Cells",
1724
+ key: "Mod-Shift-r"
1725
+ },
1726
+ "global.interrupt": {
1727
+ name: "Stop (interrupt) execution",
1728
+ group: "Running Cells",
1729
+ key: "Mod-i"
1730
+ },
1731
+ "global.formatAll": {
1732
+ name: "Format all",
1733
+ group: "Editing",
1734
+ key: "Mod-Shift-b"
1735
+ },
1736
+ "global.toggleLanguage": {
1737
+ name: "Toggle language to markdown (if supported)",
1738
+ group: "Editing",
1739
+ key: "F4"
1740
+ },
1741
+ "global.toggleTerminal": {
1742
+ name: "Show integrated terminal",
1743
+ group: "Other",
1744
+ key: "Ctrl-`"
1745
+ },
1746
+ "global.togglePanel": {
1747
+ name: "Toggle developer panel",
1748
+ group: "Other",
1749
+ key: "Mod-j"
1750
+ },
1751
+ "global.collapseAllSections": {
1752
+ name: "Collapse all sections",
1753
+ group: "Editing",
1754
+ key: "Mod-Shift-\\"
1755
+ },
1756
+ "global.expandAllSections": {
1757
+ name: "Expand all sections",
1758
+ group: "Editing",
1759
+ key: "Mod-Shift-/"
1760
+ },
1761
+ "global.toggleMinimap": {
1762
+ name: "Toggle Minimap",
1763
+ group: "Other",
1764
+ key: "Mod-Shift-i"
1765
+ },
1766
+ "global.focusTop": {
1767
+ name: "Focus top",
1768
+ group: "Navigation",
1769
+ key: "Mod-Shift-f"
1770
+ },
1771
+ "global.focusBottom": {
1772
+ name: "Focus bottom",
1773
+ group: "Navigation",
1774
+ key: "Mod-Shift-g"
1775
+ },
1776
+ "global.toggleSidebar": {
1777
+ name: "Toggle helper panel",
1778
+ group: "Navigation",
1779
+ key: "Mod-Shift-s"
1780
+ },
1781
+ "cell.goToDefinition": {
1782
+ name: "Go to Definition",
1783
+ group: "Navigation",
1784
+ key: "F12"
1785
+ },
1786
+ "completion.moveDown": {
1787
+ name: "Move completion selection down",
1788
+ group: "Editing",
1789
+ key: "Ctrl-j"
1790
+ },
1791
+ "completion.moveUp": {
1792
+ name: "Move completion selection up",
1793
+ group: "Editing",
1794
+ key: "Ctrl-k"
1795
+ },
1796
+ "command.vimEnterCommandMode": {
1797
+ name: "Enter command mode (vim)",
1798
+ group: "Command",
1799
+ key: {
1800
+ main: "Mod-Escape",
1801
+ windows: "Shift-Escape"
1802
+ }
1803
+ },
1804
+ "command.createCellBefore": {
1805
+ name: "Create a cell before current cell",
1806
+ group: "Command",
1807
+ key: "a"
1808
+ },
1809
+ "command.createCellAfter": {
1810
+ name: "Create a cell after current cell",
1811
+ group: "Command",
1812
+ key: "b"
1813
+ },
1814
+ "command.copyCell": {
1815
+ name: "Copy cell",
1816
+ group: "Command",
1817
+ key: "c"
1818
+ },
1819
+ "command.pasteCell": {
1820
+ name: "Paste cell",
1821
+ group: "Command",
1822
+ key: "v"
1823
+ }
1824
+ }, HotkeyProvider = class e {
1825
+ static create(_) {
1826
+ return new e(DEFAULT_HOT_KEY, { platform: _ });
1827
+ }
1828
+ constructor(e2, _ = {}) {
1829
+ this.hotkeys = e2, this.platform = _.platform ?? resolvePlatform(), this.mod = this.platform === "mac" ? "Cmd" : "Ctrl";
1830
+ }
1831
+ iterate() {
1832
+ return Objects.keys(this.hotkeys);
1833
+ }
1834
+ getHotkey(e2) {
1835
+ let { name: _, key: v } = this.hotkeys[e2];
1836
+ return typeof v == "string" ? {
1837
+ name: _,
1838
+ key: v.replace("Mod", this.mod)
1839
+ } : v === NOT_SET ? {
1840
+ name: _,
1841
+ key: ""
1842
+ } : {
1843
+ name: _,
1844
+ key: (v[this.platform] || v.main).replace("Mod", this.mod)
1845
+ };
1846
+ }
1847
+ getHotkeyDisplay(e2) {
1848
+ return this.hotkeys[e2].name;
1849
+ }
1850
+ isEditable(e2) {
1851
+ return this.hotkeys[e2].editable !== false;
1852
+ }
1853
+ getHotkeyGroups() {
1854
+ return Objects.groupBy(Objects.entries(this.hotkeys), ([, e2]) => e2.group, ([e2]) => e2);
1855
+ }
1856
+ }, OverridingHotkeyProvider = class extends HotkeyProvider {
1857
+ constructor(e2, _ = {}) {
1858
+ super(DEFAULT_HOT_KEY, _), this.overrides = e2;
1859
+ }
1860
+ getHotkey(e2) {
1861
+ let _ = super.getHotkey(e2), v = this.overrides[e2] || _.key;
1862
+ return {
1863
+ name: _.name,
1864
+ key: v
1865
+ };
1866
+ }
1867
+ }, falsyToString = (e2) => typeof e2 == "boolean" ? `${e2}` : e2 === 0 ? "0" : e2;
1868
+ const cx = clsx, cva = (e2, _) => (v) => {
1295
1869
  var _a;
1296
- if ((_ == null ? void 0 : _.variants) == null) return cx(e, v == null ? void 0 : v.class, v == null ? void 0 : v.className);
1297
- let { variants: y, defaultVariants: b } = _, x = Object.keys(y).map((e2) => {
1298
- let _2 = v == null ? void 0 : v[e2], x2 = b == null ? void 0 : b[e2];
1870
+ if ((_ == null ? void 0 : _.variants) == null) return cx(e2, v == null ? void 0 : v.class, v == null ? void 0 : v.className);
1871
+ let { variants: y, defaultVariants: b } = _, x = Object.keys(y).map((e3) => {
1872
+ let _2 = v == null ? void 0 : v[e3], x2 = b == null ? void 0 : b[e3];
1299
1873
  if (_2 === null) return null;
1300
1874
  let S2 = falsyToString(_2) || falsyToString(x2);
1301
- return y[e2][S2];
1302
- }), S = v && Object.entries(v).reduce((e2, _2) => {
1875
+ return y[e3][S2];
1876
+ }), S = v && Object.entries(v).reduce((e3, _2) => {
1303
1877
  let [v2, y2] = _2;
1304
- return y2 === void 0 || (e2[v2] = y2), e2;
1878
+ return y2 === void 0 || (e3[v2] = y2), e3;
1305
1879
  }, {});
1306
- return cx(e, x, (_a = _ == null ? void 0 : _.compoundVariants) == null ? void 0 : _a.reduce((e2, _2) => {
1880
+ return cx(e2, x, (_a = _ == null ? void 0 : _.compoundVariants) == null ? void 0 : _a.reduce((e3, _2) => {
1307
1881
  let { class: v2, className: y2, ...x2 } = _2;
1308
- return Object.entries(x2).every((e3) => {
1309
- let [_3, v3] = e3;
1882
+ return Object.entries(x2).every((e4) => {
1883
+ let [_3, v3] = e4;
1310
1884
  return Array.isArray(v3) ? v3.includes({
1311
1885
  ...b,
1312
1886
  ...S
@@ -1315,31 +1889,31 @@ const cx = clsx, cva = (e, _) => (v) => {
1315
1889
  ...S
1316
1890
  }[_3] === v3;
1317
1891
  }) ? [
1318
- ...e2,
1892
+ ...e3,
1319
1893
  v2,
1320
1894
  y2
1321
- ] : e2;
1895
+ ] : e3;
1322
1896
  }, []), v == null ? void 0 : v.class, v == null ? void 0 : v.className);
1323
1897
  };
1324
1898
  var import_jsx_runtime = /* @__PURE__ */ __toESM(require_jsx_runtime(), 1), REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy"), use = import_react.use;
1325
- function isPromiseLike(e) {
1326
- return typeof e == "object" && !!e && "then" in e;
1899
+ function isPromiseLike(e2) {
1900
+ return typeof e2 == "object" && !!e2 && "then" in e2;
1327
1901
  }
1328
- function isLazyComponent(e) {
1329
- return typeof e == "object" && !!e && "$$typeof" in e && e.$$typeof === REACT_LAZY_TYPE && "_payload" in e && isPromiseLike(e._payload);
1902
+ function isLazyComponent(e2) {
1903
+ return typeof e2 == "object" && !!e2 && "$$typeof" in e2 && e2.$$typeof === REACT_LAZY_TYPE && "_payload" in e2 && isPromiseLike(e2._payload);
1330
1904
  }
1331
1905
  // @__NO_SIDE_EFFECTS__
1332
- function createSlot(e) {
1333
- let _ = /* @__PURE__ */ createSlotClone(e), v = import_react.forwardRef((e2, v2) => {
1334
- let { children: y, ...b } = e2;
1906
+ function createSlot(e2) {
1907
+ let _ = /* @__PURE__ */ createSlotClone(e2), v = import_react.forwardRef((e3, v2) => {
1908
+ let { children: y, ...b } = e3;
1335
1909
  isLazyComponent(y) && typeof use == "function" && (y = use(y._payload));
1336
1910
  let x = import_react.Children.toArray(y), S = x.find(isSlottable);
1337
1911
  if (S) {
1338
- let e3 = S.props.children, y2 = x.map((_2) => _2 === S ? import_react.Children.count(e3) > 1 ? import_react.Children.only(null) : import_react.isValidElement(e3) ? e3.props.children : null : _2);
1912
+ let e4 = S.props.children, y2 = x.map((_2) => _2 === S ? import_react.Children.count(e4) > 1 ? import_react.Children.only(null) : import_react.isValidElement(e4) ? e4.props.children : null : _2);
1339
1913
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(_, {
1340
1914
  ...b,
1341
1915
  ref: v2,
1342
- children: import_react.isValidElement(e3) ? import_react.cloneElement(e3, void 0, y2) : null
1916
+ children: import_react.isValidElement(e4) ? import_react.cloneElement(e4, void 0, y2) : null
1343
1917
  });
1344
1918
  }
1345
1919
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(_, {
@@ -1348,46 +1922,46 @@ function createSlot(e) {
1348
1922
  children: y
1349
1923
  });
1350
1924
  });
1351
- return v.displayName = `${e}.Slot`, v;
1925
+ return v.displayName = `${e2}.Slot`, v;
1352
1926
  }
1353
1927
  var Slot = /* @__PURE__ */ createSlot("Slot");
1354
1928
  // @__NO_SIDE_EFFECTS__
1355
- function createSlotClone(e) {
1356
- let _ = import_react.forwardRef((e2, _2) => {
1357
- let { children: v, ...y } = e2;
1929
+ function createSlotClone(e2) {
1930
+ let _ = import_react.forwardRef((e3, _2) => {
1931
+ let { children: v, ...y } = e3;
1358
1932
  if (isLazyComponent(v) && typeof use == "function" && (v = use(v._payload)), import_react.isValidElement(v)) {
1359
- let e3 = getElementRef(v), b = mergeProps(y, v.props);
1360
- return v.type !== import_react.Fragment && (b.ref = _2 ? composeRefs(_2, e3) : e3), import_react.cloneElement(v, b);
1933
+ let e4 = getElementRef(v), b = mergeProps(y, v.props);
1934
+ return v.type !== import_react.Fragment && (b.ref = _2 ? composeRefs(_2, e4) : e4), import_react.cloneElement(v, b);
1361
1935
  }
1362
1936
  return import_react.Children.count(v) > 1 ? import_react.Children.only(null) : null;
1363
1937
  });
1364
- return _.displayName = `${e}.SlotClone`, _;
1938
+ return _.displayName = `${e2}.SlotClone`, _;
1365
1939
  }
1366
1940
  var SLOTTABLE_IDENTIFIER = /* @__PURE__ */ Symbol("radix.slottable");
1367
- function isSlottable(e) {
1368
- return import_react.isValidElement(e) && typeof e.type == "function" && "__radixId" in e.type && e.type.__radixId === SLOTTABLE_IDENTIFIER;
1941
+ function isSlottable(e2) {
1942
+ return import_react.isValidElement(e2) && typeof e2.type == "function" && "__radixId" in e2.type && e2.type.__radixId === SLOTTABLE_IDENTIFIER;
1369
1943
  }
1370
- function mergeProps(e, _) {
1944
+ function mergeProps(e2, _) {
1371
1945
  let v = { ..._ };
1372
1946
  for (let y in _) {
1373
- let b = e[y], x = _[y];
1374
- /^on[A-Z]/.test(y) ? b && x ? v[y] = (...e2) => {
1375
- let _2 = x(...e2);
1376
- return b(...e2), _2;
1947
+ let b = e2[y], x = _[y];
1948
+ /^on[A-Z]/.test(y) ? b && x ? v[y] = (...e3) => {
1949
+ let _2 = x(...e3);
1950
+ return b(...e3), _2;
1377
1951
  } : b && (v[y] = b) : y === "style" ? v[y] = {
1378
1952
  ...b,
1379
1953
  ...x
1380
1954
  } : y === "className" && (v[y] = [b, x].filter(Boolean).join(" "));
1381
1955
  }
1382
1956
  return {
1383
- ...e,
1957
+ ...e2,
1384
1958
  ...v
1385
1959
  };
1386
1960
  }
1387
- function getElementRef(e) {
1961
+ function getElementRef(e2) {
1388
1962
  var _a, _b;
1389
- let _ = (_a = Object.getOwnPropertyDescriptor(e.props, "ref")) == null ? void 0 : _a.get, v = _ && "isReactWarning" in _ && _.isReactWarning;
1390
- return v ? e.ref : (_ = (_b = Object.getOwnPropertyDescriptor(e, "ref")) == null ? void 0 : _b.get, v = _ && "isReactWarning" in _ && _.isReactWarning, v ? e.props.ref : e.props.ref || e.ref);
1963
+ let _ = (_a = Object.getOwnPropertyDescriptor(e2.props, "ref")) == null ? void 0 : _a.get, v = _ && "isReactWarning" in _ && _.isReactWarning;
1964
+ return v ? e2.ref : (_ = (_b = Object.getOwnPropertyDescriptor(e2, "ref")) == null ? void 0 : _b.get, v = _ && "isReactWarning" in _ && _.isReactWarning, v ? e2.props.ref : e2.props.ref || e2.ref);
1391
1965
  }
1392
1966
  var import_compiler_runtime = require_compiler_runtime(), activeCommon = "active:shadow-none", buttonVariants = cva(cn("disabled:opacity-50 disabled:pointer-events-none", "inline-flex items-center justify-center rounded-md text-sm font-medium focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background"), {
1393
1967
  variants: {
@@ -1418,37 +1992,46 @@ var import_compiler_runtime = require_compiler_runtime(), activeCommon = "active
1418
1992
  variant: "default",
1419
1993
  size: "sm"
1420
1994
  }
1421
- }), Button = import_react.forwardRef((e, _) => {
1422
- let v = (0, import_compiler_runtime.c)(7), { className: y, variant: x, size: S, asChild: C, keyboardShortcut: w, ...T } = e, E = C === void 0 ? false : C, D = import_react.useRef(null), O;
1423
- v[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (O = () => D.current, v[0] = O) : O = v[0], import_react.useImperativeHandle(_, O);
1424
- let k;
1425
- v[1] === w ? k = v[2] : (k = (e2) => {
1426
- w && (Events.shouldIgnoreKeyboardEvent(e2) || parseShortcut(w)(e2) && (e2.preventDefault(), e2.stopPropagation(), (D == null ? void 0 : D.current) && !D.current.disabled && D.current.click()));
1427
- }, v[1] = w, v[2] = k);
1428
- let A = k;
1429
- useEventListener(document, "keydown", A);
1430
- let j = E ? Slot : "button", M = cn(buttonVariants({
1431
- variant: x,
1432
- size: S,
1995
+ }), Button = import_react.forwardRef((e2, _) => {
1996
+ let v = (0, import_compiler_runtime.c)(7), { className: y, variant: b, size: x, asChild: S, keyboardShortcut: C, ...w } = e2, T = S === void 0 ? false : S, E = import_react.useRef(null), D;
1997
+ v[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (D = () => E.current, v[0] = D) : D = v[0], import_react.useImperativeHandle(_, D);
1998
+ let O;
1999
+ v[1] === C ? O = v[2] : (O = (e3) => {
2000
+ C && (Events.shouldIgnoreKeyboardEvent(e3) || parseShortcut(C)(e3) && (e3.preventDefault(), e3.stopPropagation(), (E == null ? void 0 : E.current) && !E.current.disabled && E.current.click()));
2001
+ }, v[1] = C, v[2] = O);
2002
+ let k = O;
2003
+ useEventListener(document, "keydown", k);
2004
+ let A = T ? Slot : "button", j = cn(buttonVariants({
2005
+ variant: b,
2006
+ size: x,
1433
2007
  className: y,
1434
- disabled: T.disabled
1435
- }), y), N;
1436
- return v[3] !== j || v[4] !== T || v[5] !== M ? (N = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(j, {
1437
- className: M,
1438
- ref: D,
1439
- ...T
1440
- }), v[3] = j, v[4] = T, v[5] = M, v[6] = N) : N = v[6], N;
2008
+ disabled: w.disabled
2009
+ }), y), M;
2010
+ return v[3] !== A || v[4] !== w || v[5] !== j ? (M = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(A, {
2011
+ className: j,
2012
+ ref: E,
2013
+ ...w
2014
+ }), v[3] = A, v[4] = w, v[5] = j, v[6] = M) : M = v[6], M;
1441
2015
  });
1442
2016
  Button.displayName = "Button";
1443
2017
  export {
2018
+ Functions as _,
1444
2019
  cva as a,
1445
- useComposedRefs as c,
2020
+ isPlatformMac as c,
2021
+ Objects as d,
2022
+ useEventListener as f,
2023
+ Logger as g,
2024
+ Events as h,
1446
2025
  createSlot as i,
1447
- Events as l,
2026
+ parseShortcut as l,
2027
+ useComposedRefs as m,
1448
2028
  buttonVariants as n,
1449
- useEventListener as o,
2029
+ NOT_SET as o,
2030
+ composeRefs as p,
1450
2031
  Slot as r,
1451
- composeRefs as s,
2032
+ OverridingHotkeyProvider as s,
1452
2033
  Button as t,
1453
- cn as u
2034
+ resolvePlatform as u,
2035
+ throwNotImplemented as v,
2036
+ cn as y
1454
2037
  };