@marimo-team/islands 0.25.3-dev4 → 0.25.3-dev42

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/{ConnectedDataExplorerComponent-CNSxdKyJ.js → ConnectedDataExplorerComponent-COS3f8io.js} +14 -14
  2. package/dist/{ErrorBoundary-CuU5CuVr.js → ErrorBoundary-Bb_hjI-F.js} +9 -9
  3. package/dist/{abnfDiagram-VCTEODGH-DQDjNXt3.js → abnfDiagram-VCTEODGH-DQ4bKxYa.js} +2 -2
  4. package/dist/any-language-editor-DQItQSua.js +75 -0
  5. package/dist/{architectureDiagram-5GKGNRK7-Nmls7Wxn.js → architectureDiagram-5GKGNRK7-BA7-SI7Q.js} +1 -1
  6. package/dist/{arrays-CN1djC4k.js → arrays-R6JsImiT.js} +8 -0
  7. package/dist/{button-CvjkwdSk.js → button-BxB3RDjN.js} +1 -1
  8. package/dist/{capabilities-CQ5IjhzL.js → capabilities-BgR0osfN.js} +2 -2
  9. package/dist/{chat-ui-BDpymeoe.js → chat-ui-DlUp75HS.js} +1152 -1153
  10. package/dist/{check-EDwSwP89.js → check-C209OH-W.js} +1 -1
  11. package/dist/{chunk-IMKFNOWR-CoIFEo-1.js → chunk-IMKFNOWR-DPY3kqOV.js} +1 -1
  12. package/dist/{chunk-SHT3W25Y-lHiGx3ZC.js → chunk-SHT3W25Y-C14Ikodf.js} +1 -1
  13. package/dist/{chunk-SVP7TREG-BvsHIrY_.js → chunk-SVP7TREG-BKu0HO4I.js} +1 -1
  14. package/dist/{chunk-TICWLB2K-BC8YIm_n.js → chunk-TICWLB2K-iJDDWGtE.js} +1 -1
  15. package/dist/{chunk-YOKDWASO-DPZk8vhS.js → chunk-YOKDWASO-DKplTrBY.js} +20 -20
  16. package/dist/{classDiagram-ZZMXUADV-Bt98lkkv.js → classDiagram-ZZMXUADV-HuJXQI0F.js} +2 -2
  17. package/dist/{classDiagram-v2-VYDZK3BY-D9bfbcC3.js → classDiagram-v2-VYDZK3BY-CpmmpTbC.js} +2 -2
  18. package/dist/{code-visibility-Lu0dkrFO.js → code-visibility-BseAT0Di.js} +17 -17
  19. package/dist/{common-DiWGWDIM.js → common--apjoMvk.js} +6683 -6454
  20. package/dist/{copy-icon-Ft7t9bqz.js → copy-icon-L-mFk59e.js} +3 -3
  21. package/dist/{cynefinDiagram-5FMLGOSQ-CgWra7wt.js → cynefinDiagram-5FMLGOSQ-uh0puAW2.js} +1 -1
  22. package/dist/{dagre-GXQ25YYZ-CFZ8-35c.js → dagre-GXQ25YYZ-4LBeAAMz.js} +1 -1
  23. package/dist/{data-grid-overlay-editor-ga7ytgbj.js → data-grid-overlay-editor-C2eZGIzb.js} +5 -5
  24. package/dist/{data-grid-types-BH_r7g7l.js → data-grid-types-0PJ-9N5n.js} +1 -1
  25. package/dist/{diagram-S7CK7UJ4-lCNQrW7d.js → diagram-S7CK7UJ4-BXPmZ2sX.js} +1 -1
  26. package/dist/{diagram-UQ7AKVKN-CQPQ6pP_.js → diagram-UQ7AKVKN--Xz9UNpC.js} +1 -1
  27. package/dist/{diagram-VX7I27RA-Cf3b0llz.js → diagram-VX7I27RA-rt8VIRNT.js} +1 -1
  28. package/dist/{diagram-Z3DM3KII-Bt4QLrpn.js → diagram-Z3DM3KII-Cs1GqfDD.js} +1 -1
  29. package/dist/{dialog-CEBFZNyc.js → dialog-CDbPtWUD.js} +25 -25
  30. package/dist/{dist-DpBpA_n1.js → dist-Lm-D-Vr6.js} +3 -3
  31. package/dist/{dropdown-menu-CP_qCYHC.js → dropdown-menu-ugNoZmKx.js} +828 -828
  32. package/dist/{ebnfDiagram-PWID7BFC-D3NAyPFY.js → ebnfDiagram-PWID7BFC-CgTsgbmZ.js} +2 -2
  33. package/dist/{erDiagram-RLTQ6QDP-Tlu09_Nm.js → erDiagram-RLTQ6QDP-CFoADGzT.js} +1 -1
  34. package/dist/{error-banner-Da600cwz.js → error-banner-DMIrHA-R.js} +27 -22
  35. package/dist/{cells-C8iCYvLU.js → error-entries-D3ouOLDe.js} +1378 -1322
  36. package/dist/{feedback-button-DQA-pzxi.js → feedback-button-Cy7x7fiM.js} +122 -123
  37. package/dist/{flowDiagram-HODETNUW-CAYbpJmV.js → flowDiagram-HODETNUW-BM2lvKuH.js} +2 -2
  38. package/dist/{formats-BGh2thRc.js → formats-C24TvExI.js} +3 -3
  39. package/dist/{ganttDiagram-EL5Y4UJY-BQT16JSc.js → ganttDiagram-EL5Y4UJY-Dh_4cBJZ.js} +2 -2
  40. package/dist/{glide-data-editor-Bv75MH6g.js → glide-data-editor-CYonCTY5.js} +370 -368
  41. package/dist/{glide-utils-DJyqh0EM.js → glide-utils-Q2ZsuA3h.js} +16 -16
  42. package/dist/{globals-EDQGFIvi.js → globals-W7yeDcvx.js} +3 -3
  43. package/dist/{highlighted-body-KPVGNVTW-zwjq21tf.js → highlighted-body-KPVGNVTW-3Ziwfz-V.js} +2 -2
  44. package/dist/{html-to-image-CZY1pIZH.js → html-to-image-VZvb968z.js} +69 -69
  45. package/dist/{infoDiagram-27XIBGKW-XrDxhr0x.js → infoDiagram-27XIBGKW-Crwjiywp.js} +1 -1
  46. package/dist/{ishikawaDiagram-5VMMS53U-CD1muzov.js → ishikawaDiagram-5VMMS53U-D4US2ShV.js} +1 -1
  47. package/dist/{kanban-definition-UXKFOSKX-Dg9W142_.js → kanban-definition-UXKFOSKX-Bk097CUX.js} +1 -1
  48. package/dist/{label-BDKF3Afc.js → label-CuEjBqYP.js} +2 -2
  49. package/dist/{linear-Cnaq3Tfb.js → linear-DWERh7eI.js} +121 -73
  50. package/dist/{loader-BQOfjTIJ.js → loader-Bm8cy3e8.js} +12 -12
  51. package/dist/main.js +2696 -2646
  52. package/dist/{mermaid-CiAXjLpA.js → mermaid-6EkeBlhr.js} +38 -38
  53. package/dist/mermaid-HWGCJPDP-Du3-HPQA.js +2 -0
  54. package/dist/{mindmap-definition-YA3MSWOX-DgCidgYJ.js → mindmap-definition-YA3MSWOX-DmORzfXQ.js} +1 -1
  55. package/dist/{number-overlay-editor-BCP3MxhC.js → number-overlay-editor-_5SNWHjp.js} +3 -3
  56. package/dist/{objects-CzUgoMIF.js → objects-DCmMvZtn.js} +1 -3
  57. package/dist/{once-BtE-wKRL.js → once-eG8Vmvjd.js} +1 -1
  58. package/dist/{pegDiagram-XKGWAZYB-coOYYKB6.js → pegDiagram-XKGWAZYB-DT5TL02S.js} +2 -2
  59. package/dist/{pieDiagram-E7YTZNPT-BnXTc3bj.js → pieDiagram-E7YTZNPT-B1NwGcuH.js} +1 -1
  60. package/dist/precisionRound-DhAzeRcm.js +49 -0
  61. package/dist/{process-output-e4jj9Ijt.js → process-output-CCPgTShO.js} +5 -5
  62. package/dist/{quadrantDiagram-AXDQQJYC-Ccw0xMjN.js → quadrantDiagram-AXDQQJYC-Blrm7V7_.js} +1 -1
  63. package/dist/{railroadDiagram-O6MQD6OU-B28-u83n.js → railroadDiagram-O6MQD6OU-BxoycdEu.js} +2 -2
  64. package/dist/{react-vega-BED0DjiB.js → react-vega-C4T9Rb_w.js} +12284 -12270
  65. package/dist/{requirementDiagram-BXWQKSXE-CdYCTMu0.js → requirementDiagram-BXWQKSXE-DHq_eRrm.js} +1 -1
  66. package/dist/{reveal-component-DO5BJB9l.js → reveal-component-DV1u0Sl1.js} +10 -10
  67. package/dist/{select-BButFi-d.js → select-D2iqeJYk.js} +200 -200
  68. package/dist/{sequenceDiagram-WJ2MYXX4-CM3aRAe_.js → sequenceDiagram-WJ2MYXX4-Ba11BAOu.js} +1 -1
  69. package/dist/{spec-BwarBpUJ.js → spec-BCCcvWPS.js} +4 -4
  70. package/dist/{stateDiagram-D77RDMKH-DOZUMVj8.js → stateDiagram-D77RDMKH-OHQbvkbP.js} +2 -2
  71. package/dist/{stateDiagram-v2-MP3YSRHH-CISYxma6.js → stateDiagram-v2-MP3YSRHH-BlIquvFJ.js} +2 -2
  72. package/dist/style.css +1 -1
  73. package/dist/{swimlanes-42K2YHIH-BkSppxp8.js → swimlanes-42K2YHIH-DSlitS4s.js} +1 -1
  74. package/dist/{swimlanesDiagram-VR7AAH4N-c8G5pGxC.js → swimlanesDiagram-VR7AAH4N-ClwuzFNO.js} +2 -2
  75. package/dist/{swiper-component-DKntyn8p.js → swiper-component-DfhRvAFi.js} +2 -2
  76. package/dist/{time-BieKwdYS.js → time-BaMbJs4z.js} +18 -18
  77. package/dist/{timeline-definition-24CTP7MA-CaMQayqK.js → timeline-definition-24CTP7MA-hAzc5VkT.js} +1 -1
  78. package/dist/toDate-C0jaysq2.js +1184 -0
  79. package/dist/{toast-B9UMEi8u.js → toast-DxVfYlCp.js} +222 -222
  80. package/dist/{tooltip-BO1REbqs.js → tooltip-BCntm-jf.js} +52 -52
  81. package/dist/{use-restore-focus-BEM7sFWl.js → use-restore-focus-BhXhsNLV.js} +2 -2
  82. package/dist/{useAsyncData-Deh5kszT.js → useAsyncData-BbuzBAUp.js} +15 -14
  83. package/dist/{useDateFormatter-D8XruNGG.js → useDateFormatter-6AHbIR-J.js} +2 -2
  84. package/dist/{useDeepCompareMemoize-DXwzRINI.js → useDeepCompareMemoize-da5A3c-Y.js} +1 -1
  85. package/dist/{useIframeCapabilities-DBETvvPl.js → useIframeCapabilities-BkdeVdXC.js} +1 -1
  86. package/dist/{useLifecycle-j7D9uD1o.js → useLifecycle-C3nT1kwI.js} +3 -3
  87. package/dist/{useTheme-CRnjkku0.js → useTheme-BC8Lof0B.js} +87 -87
  88. package/dist/{vega-component-DG29TAB7.js → vega-component-CF9IzE2r.js} +147 -147
  89. package/dist/{vega-embed-container-BNHE18G9.js → vega-embed-container--LYZqguO.js} +2 -2
  90. package/dist/{vega-loader.browser-DNST6uVf.js → vega-loader.browser-B9Pz0EGP.js} +298 -507
  91. package/dist/{vennDiagram-4TSXK5OY-CF8pfaK3.js → vennDiagram-4TSXK5OY-CINKaJgr.js} +1 -1
  92. package/dist/{wardleyDiagram-VM6X3IG4-dGPu39d-.js → wardleyDiagram-VM6X3IG4-KG2tlXg_.js} +1 -1
  93. package/dist/{xychartDiagram-S5SC5T6Z-CP6-9q56.js → xychartDiagram-S5SC5T6Z-XIH5cwgI.js} +2 -2
  94. package/package.json +4 -4
  95. package/src/__tests__/fixtures/{pair-preview.ts → pair-config.ts} +3 -2
  96. package/src/__tests__/host-imports.test.ts +1 -0
  97. package/src/__tests__/mount.test.ts +28 -8
  98. package/src/components/app-config/ai-config.tsx +5 -1
  99. package/src/components/data-table/__tests__/date-popover.test.tsx +72 -0
  100. package/src/components/data-table/__tests__/export-actions.test.tsx +329 -6
  101. package/src/components/data-table/column-visibility-dropdown.tsx +8 -13
  102. package/src/components/data-table/columns.tsx +2 -1
  103. package/src/components/data-table/date-popover.tsx +6 -4
  104. package/src/components/data-table/export-actions.tsx +192 -116
  105. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +2 -2
  106. package/src/components/data-table/schemas.ts +14 -36
  107. package/src/components/editor/Output.tsx +9 -2
  108. package/src/components/editor/__tests__/dynamic-favicon.test.tsx +111 -18
  109. package/src/components/editor/actions/__tests__/pair-with-agent-commands.test.ts +80 -252
  110. package/src/components/editor/actions/__tests__/pair-with-agent-modal.test.tsx +186 -34
  111. package/src/components/editor/actions/pair-with-agent-commands.ts +42 -51
  112. package/src/components/editor/actions/pair-with-agent-modal.tsx +96 -36
  113. package/src/components/editor/ai/add-cell-with-ai.tsx +3 -3
  114. package/src/components/editor/chrome/panels/error-panel.tsx +1 -0
  115. package/src/components/editor/chrome/wrapper/__tests__/attachment-status.test.tsx +366 -0
  116. package/src/components/editor/chrome/wrapper/footer-item.tsx +32 -24
  117. package/src/components/editor/chrome/wrapper/footer-items/attachment-status.tsx +237 -0
  118. package/src/components/editor/chrome/wrapper/footer.tsx +2 -0
  119. package/src/components/editor/connections/components.tsx +1 -1
  120. package/src/components/editor/controls/__tests__/command-palette.test.tsx +53 -0
  121. package/src/components/editor/controls/command-palette.tsx +22 -10
  122. package/src/components/editor/dynamic-favicon.tsx +21 -40
  123. package/src/components/editor/errors/__tests__/send-error-report-button.test.tsx +537 -0
  124. package/src/components/editor/errors/send-error-report-button.tsx +69 -0
  125. package/src/components/editor/output/MarimoErrorOutput.tsx +21 -5
  126. package/src/components/editor/output/MarimoTracebackOutput.tsx +36 -21
  127. package/src/components/editor/output/__tests__/ansi-reduce.test.ts +18 -0
  128. package/src/components/editor/output/ansi-reduce.ts +6 -0
  129. package/src/components/pages/home-page.tsx +4 -4
  130. package/src/components/tracing/tracing.tsx +2 -2
  131. package/src/core/attachments/__tests__/toast.test.tsx +58 -0
  132. package/src/core/attachments/state.ts +18 -0
  133. package/src/core/attachments/toast.ts +15 -0
  134. package/src/core/cells/__tests__/cells.test.ts +52 -0
  135. package/src/core/cells/__tests__/error-report.test.ts +139 -0
  136. package/src/core/cells/__tests__/notebook-outline.test.ts +113 -0
  137. package/src/core/cells/__tests__/session.test.ts +50 -1
  138. package/src/core/cells/cells.ts +2 -1
  139. package/src/core/cells/error-report.ts +63 -0
  140. package/src/core/cells/pending-delete-service.ts +2 -6
  141. package/src/core/cells/session.ts +28 -1
  142. package/src/core/config/pair.ts +5 -3
  143. package/src/core/datasets/__tests__/data-source-discovery.test.ts +4 -4
  144. package/src/core/datasets/data-source-discovery.ts +4 -6
  145. package/src/core/edit-app.tsx +2 -2
  146. package/src/core/host/AGENTS.md +11 -2
  147. package/src/core/host/__tests__/attachments.test.ts +56 -0
  148. package/src/core/host/__tests__/document.test.ts +126 -0
  149. package/src/core/host/__tests__/events.test.ts +49 -0
  150. package/src/core/host/__tests__/fixtures.ts +41 -0
  151. package/src/core/host/__tests__/notebook-client.test.ts +433 -0
  152. package/src/core/host/connection.ts +81 -0
  153. package/src/core/host/events.ts +77 -0
  154. package/src/core/host/notebook-client.ts +323 -0
  155. package/src/core/host/resources/attachments.ts +19 -0
  156. package/src/core/host/resources/document.ts +101 -0
  157. package/src/core/hotkeys/actions.ts +2 -4
  158. package/src/core/network/connection.ts +4 -2
  159. package/src/core/run-app.tsx +2 -2
  160. package/src/core/runtime/__tests__/runtime.test.ts +55 -11
  161. package/src/core/runtime/runtime.ts +18 -5
  162. package/src/core/runtime/types.ts +2 -0
  163. package/src/core/websocket/__tests__/{useMarimoKernelConnection.test.ts → connection-state.test.ts} +15 -17
  164. package/src/core/websocket/__tests__/{useWebSocket.test.ts → createConnectionTransport.test.ts} +1 -1
  165. package/src/core/websocket/__tests__/useNotebookClient.hook.test.tsx +170 -0
  166. package/src/core/websocket/__tests__/{useMarimoKernelConnection.hook.test.tsx → useNotebookSession.hook.test.tsx} +181 -65
  167. package/src/core/websocket/connection-state.ts +70 -0
  168. package/src/core/websocket/state.ts +7 -0
  169. package/src/core/websocket/transports/__tests__/sse.test.ts +1 -4
  170. package/src/core/websocket/transports/create.ts +31 -0
  171. package/src/core/websocket/transports/transport.ts +12 -23
  172. package/src/core/websocket/types.ts +9 -39
  173. package/src/core/websocket/useNotebookClient.ts +88 -0
  174. package/src/core/websocket/{useMarimoKernelConnection.tsx → useNotebookSession.tsx} +59 -225
  175. package/src/hooks/__tests__/useAsyncData.test.tsx +148 -0
  176. package/src/hooks/useAsyncData.ts +3 -3
  177. package/src/hooks/useDataSourceDiscovery.ts +6 -4
  178. package/src/hooks/useElapsedTime.ts +3 -3
  179. package/src/mount.tsx +7 -3
  180. package/src/plugins/core/registerReactComponent.tsx +1 -1
  181. package/src/plugins/impl/DropdownPlugin.tsx +2 -6
  182. package/src/plugins/impl/FormPlugin.tsx +1 -1
  183. package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +84 -0
  184. package/src/plugins/impl/code/any-language-editor.tsx +2 -2
  185. package/src/plugins/impl/data-editor/glide-data-editor.tsx +8 -5
  186. package/src/plugins/impl/data-editor/glide-utils.ts +3 -1
  187. package/src/plugins/impl/vega/make-selectable.ts +3 -6
  188. package/src/utils/__tests__/arrays.test.ts +35 -0
  189. package/src/utils/__tests__/numbers.test.ts +48 -1
  190. package/src/utils/__tests__/objects.test.ts +21 -0
  191. package/src/utils/arrays.ts +10 -0
  192. package/src/utils/numbers.ts +28 -17
  193. package/src/utils/objects.ts +3 -7
  194. package/src/utils/once.ts +19 -19
  195. package/dist/any-language-editor-B9REGlD9.js +0 -76
  196. package/dist/error-entries-CzoYkIQZ.js +0 -56
  197. package/dist/mermaid-HWGCJPDP-ByCsZnYF.js +0 -2
  198. package/dist/precisionRound-DMIVQrt2.js +0 -97
  199. package/dist/toDate-BNJf01u1.js +0 -703
  200. package/src/core/host/__tests__/protocol.test.ts +0 -214
  201. package/src/core/host/protocol.ts +0 -1943
  202. package/src/core/websocket/useWebSocket.tsx +0 -88
@@ -23,6 +23,31 @@ export const maxFractionalDigits = memoizeLastValue((locale: string) => {
23
23
  return 0;
24
24
  });
25
25
 
26
+ const getScientificFormatter = memoizeLastValue(
27
+ (locale: string) =>
28
+ new Intl.NumberFormat(locale, {
29
+ minimumFractionDigits: 1,
30
+ maximumFractionDigits: 1,
31
+ notation: "scientific",
32
+ }),
33
+ );
34
+
35
+ const getRoundedFormatter = memoizeLastValue(
36
+ (locale: string) =>
37
+ new Intl.NumberFormat(locale, {
38
+ minimumFractionDigits: 0,
39
+ maximumFractionDigits: 2,
40
+ }),
41
+ );
42
+
43
+ const getEngineeringFormatter = memoizeLastValue(
44
+ (locale: string) =>
45
+ new Intl.NumberFormat(locale, {
46
+ notation: "engineering",
47
+ maximumSignificantDigits: 3,
48
+ }),
49
+ );
50
+
26
51
  /** Decimal places needed to display `n` without float noise. */
27
52
  export function countFractionDigits(n: number): number {
28
53
  if (!Number.isFinite(n) || n === 0) {
@@ -108,23 +133,14 @@ export function prettyScientificNumber(
108
133
  // Determine if the number should be in scientific notation
109
134
  const absValue = Math.abs(value);
110
135
  if (absValue < 1e-2 || absValue >= 1e6) {
111
- return new Intl.NumberFormat(opts.locale, {
112
- minimumFractionDigits: 1,
113
- maximumFractionDigits: 1,
114
- notation: "scientific",
115
- })
116
- .format(value)
117
- .toLowerCase();
136
+ return getScientificFormatter(opts.locale).format(value).toLowerCase();
118
137
  }
119
138
 
120
139
  const { shouldRound, locale } = opts;
121
140
 
122
141
  if (shouldRound) {
123
142
  // Number has an integer part, format with 2 decimal places
124
- return new Intl.NumberFormat(locale, {
125
- minimumFractionDigits: 0,
126
- maximumFractionDigits: 2,
127
- }).format(value);
143
+ return getRoundedFormatter(locale).format(value);
128
144
  }
129
145
 
130
146
  // Don't round
@@ -161,12 +177,7 @@ export function prettyEngineeringNumber(value: number, locale: string): string {
161
177
  return specialCase;
162
178
  }
163
179
 
164
- const [mant, exp] = new Intl.NumberFormat(locale, {
165
- notation: "engineering",
166
- maximumSignificantDigits: 3,
167
- })
168
- .format(value)
169
- .split("E");
180
+ const [mant, exp] = getEngineeringFormatter(locale).format(value).split("E");
170
181
 
171
182
  if (exp in prefixes) {
172
183
  return mant + prefixes[exp as keyof typeof prefixes];
@@ -89,13 +89,9 @@ export const Objects = {
89
89
  obj: Record<K, V>,
90
90
  predicate: (value: V, key: K) => boolean,
91
91
  ): Record<K, V> {
92
- const result: Record<K, V> = {} as Record<K, V>;
93
- for (const [key, value] of Objects.entries(obj)) {
94
- if (predicate(value, key)) {
95
- result[key] = obj[key];
96
- }
97
- }
98
- return result;
92
+ return Objects.fromEntries(
93
+ Objects.entries(obj).filter(([key, value]) => predicate(value, key)),
94
+ );
99
95
  },
100
96
 
101
97
  omit<V extends object, K extends keyof V>(
package/src/utils/once.ts CHANGED
@@ -2,36 +2,36 @@
2
2
 
3
3
  import { arrayShallowEquals } from "./arrays";
4
4
 
5
- // oxlint-disable-next-line typescript/no-explicit-any
6
- export function once<T extends (...args: any[]) => any>(fn: T): T {
7
- let result: ReturnType<T>;
5
+ export function once<F extends (...args: never[]) => unknown>(fn: F): F;
6
+ export function once<Args extends unknown[], Result, This>(
7
+ fn: (this: This, ...args: Args) => Result,
8
+ ): (this: This, ...args: Args) => Result {
9
+ let result: Result;
8
10
  let called = false;
9
- return function (
10
- this: ThisParameterType<T>,
11
- ...args: Parameters<T>
12
- ): ReturnType<T> {
11
+ return function (this: This, ...args: Args): Result {
13
12
  if (!called) {
14
13
  called = true;
15
- result = fn.apply(this, args) as ReturnType<T>;
14
+ result = fn.apply(this, args);
16
15
  }
17
16
  return result;
18
- } as T;
17
+ };
19
18
  }
20
19
 
21
- // oxlint-disable-next-line typescript/no-explicit-any
22
- export function memoizeLastValue<T extends (...args: any[]) => any>(fn: T): T {
23
- let result: ReturnType<T>;
24
- let lastArgs: Parameters<T> | undefined;
20
+ export function memoizeLastValue<F extends (...args: never[]) => unknown>(
21
+ fn: F,
22
+ ): F;
23
+ export function memoizeLastValue<Args extends unknown[], Result, This>(
24
+ fn: (this: This, ...args: Args) => Result,
25
+ ): (this: This, ...args: Args) => Result {
26
+ let result: Result;
27
+ let lastArgs: Args | undefined;
25
28
  let lastError: unknown;
26
29
  let hasError = false;
27
30
 
28
- return function (
29
- this: ThisParameterType<T>,
30
- ...args: Parameters<T>
31
- ): ReturnType<T> {
31
+ return function (this: This, ...args: Args): Result {
32
32
  if (lastArgs === undefined || !arrayShallowEquals(args, lastArgs)) {
33
33
  try {
34
- result = fn.apply(this, args) as ReturnType<T>;
34
+ result = fn.apply(this, args);
35
35
  hasError = false;
36
36
  lastError = undefined;
37
37
  } catch (error) {
@@ -45,5 +45,5 @@ export function memoizeLastValue<T extends (...args: any[]) => any>(fn: T): T {
45
45
  throw lastError;
46
46
  }
47
47
  return result;
48
- } as T;
48
+ };
49
49
  }
@@ -1,76 +0,0 @@
1
- import "./rolldown-runtime-Cb76FRpK.js";
2
- import { g as e } from "./button-CvjkwdSk.js";
3
- import { t } from "./react-sHtZdjeP.js";
4
- import { t as n } from "./compiler-runtime-CldRdSsv.js";
5
- import { t as r } from "./copy-icon-Ft7t9bqz.js";
6
- import { t as i } from "./jsx-runtime-3BD1kT0s.js";
7
- import { n as a } from "./error-banner-Da600cwz.js";
8
- import { t as o } from "./esm-AMFssoNp.js";
9
- import { n as s, t as c } from "./esm-D2gTsXEV.js";
10
- //#region src/plugins/impl/code/any-language-editor.tsx
11
- var l = n();
12
- t();
13
- var u = i(), d = {
14
- python: "py",
15
- python3: "py",
16
- javascript: "js",
17
- typescript: "ts",
18
- shell: "sh",
19
- bash: "sh",
20
- unknown: "text",
21
- undefined: "text"
22
- }, f = [];
23
- function p(e) {
24
- return e ? e in c : !1;
25
- }
26
- var m = (t) => {
27
- let n = (0, l.c)(29), i, m, h, g, _, v;
28
- if (n[0] !== t) {
29
- let { language: e, hideUnsupportedLanguageErrors: r, showCopyButton: a, extensions: o, ...s } = t;
30
- m = r, _ = a, g = s, h = e, i = o === void 0 ? f : o, h = d[h || ""] || h, v = p(h), n[0] = t, n[1] = i, n[2] = m, n[3] = h, n[4] = g, n[5] = _, n[6] = v;
31
- } else i = n[1], m = n[2], h = n[3], g = n[4], _ = n[5], v = n[6];
32
- let y = v;
33
- y || e.warn(`Language ${h} not found in CodeMirror.`);
34
- let b;
35
- bb0: {
36
- if (!p(h)) {
37
- b = i;
38
- break bb0;
39
- }
40
- let e;
41
- n[7] === h ? e = n[8] : (e = s(h), n[7] = h, n[8] = e);
42
- let t;
43
- n[9] !== i || n[10] !== e ? (t = [e, ...i].filter(Boolean), n[9] = i, n[10] = e, n[11] = t) : t = n[11], b = t;
44
- }
45
- let x = b, S;
46
- n[12] !== m || n[13] !== y || n[14] !== h ? (S = !y && !m && /* @__PURE__ */ (0, u.jsx)(a, {
47
- className: "mb-1 rounded-sm",
48
- error: `Language ${h} not supported. Supported languages are: ${Object.keys(c).join(", ")}`
49
- }), n[12] = m, n[13] = y, n[14] = h, n[15] = S) : S = n[15];
50
- let C;
51
- n[16] !== y || n[17] !== g || n[18] !== _ ? (C = _ && y && /* @__PURE__ */ (0, u.jsx)(r, {
52
- tooltip: !1,
53
- buttonClassName: "absolute top-2 right-2 z-10 hover-action",
54
- className: "h-4 w-4 text-muted-foreground",
55
- value: g.value || "",
56
- toastTitle: "Copied to clipboard"
57
- }), n[16] = y, n[17] = g, n[18] = _, n[19] = C) : C = n[19];
58
- let w;
59
- n[20] === x ? w = n[21] : (w = [...x], n[20] = x, n[21] = w);
60
- let T;
61
- n[22] !== g || n[23] !== w ? (T = /* @__PURE__ */ (0, u.jsx)(o, {
62
- ...g,
63
- extensions: w
64
- }), n[22] = g, n[23] = w, n[24] = T) : T = n[24];
65
- let E;
66
- return n[25] !== S || n[26] !== C || n[27] !== T ? (E = /* @__PURE__ */ (0, u.jsxs)("div", {
67
- className: "relative w-full group hover-actions-parent",
68
- children: [
69
- S,
70
- C,
71
- T
72
- ]
73
- }), n[25] = S, n[26] = C, n[27] = T, n[28] = E) : E = n[28], E;
74
- };
75
- //#endregion
76
- export { d as LANGUAGE_MAP, m as default };
@@ -1,56 +0,0 @@
1
- import { At as e, N as t, b as n, d as r, jt as i, kt as a } from "./cells-C8iCYvLU.js";
2
- import { C as o } from "./select-BButFi-d.js";
3
- //#region src/core/errors/error-entries.ts
4
- function s(t) {
5
- if (e(t.mimetype)) {
6
- if (!Array.isArray(t.data)) return null;
7
- let e = t.data.filter((e) => !e.type.includes("ancestor"));
8
- return e.length === 0 ? null : { errorData: e };
9
- }
10
- return i(t.mimetype) ? typeof t.data != "string" || t.data.length === 0 ? null : {
11
- errorData: [],
12
- tracebackHtml: t.data
13
- } : null;
14
- }
15
- function c(e) {
16
- return e.some((e) => "traceback" in e && e.traceback);
17
- }
18
- function l(e) {
19
- let t = e?.find((e) => i(e.mimetype));
20
- if (!(!t || typeof t.data != "string" || t.data.length === 0)) return t.data;
21
- }
22
- function u(e, t) {
23
- if (e.tracebackHtml) return e.tracebackHtml;
24
- if (!c(e.errorData)) return l(t);
25
- }
26
- function d(e) {
27
- let { cellIds: n, cellRuntime: i, cellData: o } = e.get(r), c = [];
28
- for (let [e, r] of n.inOrderIds.entries()) {
29
- let n = i[r], l = n.output;
30
- if (!l || !a(l.mimetype)) continue;
31
- let d = s(l);
32
- if (!d) continue;
33
- let f = t(o[r].name, e), p = o[r].lastCodeRun ?? o[r].code;
34
- c.push({
35
- cellId: r,
36
- cellName: f,
37
- cellCode: p,
38
- errorData: d.errorData,
39
- tracebackHtml: u(d, n.consoleOutputs)
40
- });
41
- }
42
- return c;
43
- }
44
- function f(e) {
45
- return e.type === "setup-refs" ? "The setup cell cannot have references" : e.type === "cycle" ? "This cell is in a cycle" : e.type === "multiple-defs" ? `The variable '${e.name}' was defined by another cell` : e.type === "import-star" || e.type === "ancestor-stopped" || e.type === "ancestor-prevented" || e.type === "exception" || e.type === "strict-exception" ? e.msg : e.type === "interruption" ? "This cell was interrupted and needs to be re-run" : e.type === "syntax" || e.type === "unknown" || e.type === "sql-error" ? e.msg : e.type === "internal" ? e.msg || "An internal error occurred" : (o(e), "Unknown error");
46
- }
47
- function p(e) {
48
- let t = f(e);
49
- return "traceback" in e && e.traceback && (t += `\n\nTraceback:\n${n(e.traceback)}`), t;
50
- }
51
- function m(e) {
52
- let t = [e.cellName];
53
- return e.tracebackHtml && t.push(n(e.tracebackHtml)), e.errorData.length > 0 && t.push(e.errorData.map(p).join("\n\n")), t.join("\n\n");
54
- }
55
- //#endregion
56
- export { d as i, m as n, p as r, f as t };
@@ -1,2 +0,0 @@
1
- import { i as e } from "./chunk-YOKDWASO-DPZk8vhS.js";
2
- export { e as Mermaid };
@@ -1,97 +0,0 @@
1
- import { a as e } from "./defaultLocale-DhPPeApV.js";
2
- //#region ../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/ascending.js
3
- function t(e, t) {
4
- return e == null || t == null ? NaN : e < t ? -1 : e > t ? 1 : e >= t ? 0 : NaN;
5
- }
6
- //#endregion
7
- //#region ../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/descending.js
8
- function n(e, t) {
9
- return e == null || t == null ? NaN : t < e ? -1 : t > e ? 1 : t >= e ? 0 : NaN;
10
- }
11
- //#endregion
12
- //#region ../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisector.js
13
- function r(e) {
14
- let r, a, o;
15
- e.length === 2 ? (r = e === t || e === n ? e : i, a = e, o = e) : (r = t, a = (n, r) => t(e(n), r), o = (t, n) => e(t) - n);
16
- function s(e, t, n = 0, i = e.length) {
17
- if (n < i) {
18
- if (r(t, t) !== 0) return i;
19
- do {
20
- let r = n + i >>> 1;
21
- a(e[r], t) < 0 ? n = r + 1 : i = r;
22
- } while (n < i);
23
- }
24
- return n;
25
- }
26
- function c(e, t, n = 0, i = e.length) {
27
- if (n < i) {
28
- if (r(t, t) !== 0) return i;
29
- do {
30
- let r = n + i >>> 1;
31
- a(e[r], t) <= 0 ? n = r + 1 : i = r;
32
- } while (n < i);
33
- }
34
- return n;
35
- }
36
- function l(e, t, n = 0, r = e.length) {
37
- let i = s(e, t, n, r - 1);
38
- return i > n && o(e[i - 1], t) > -o(e[i], t) ? i - 1 : i;
39
- }
40
- return {
41
- left: s,
42
- center: l,
43
- right: c
44
- };
45
- }
46
- function i() {
47
- return 0;
48
- }
49
- //#endregion
50
- //#region ../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/ticks.js
51
- var a = Math.sqrt(50), o = Math.sqrt(10), s = Math.sqrt(2);
52
- function c(e, t, n) {
53
- let r = (t - e) / Math.max(0, n), i = Math.floor(Math.log10(r)), l = r / 10 ** i, u = l >= a ? 10 : l >= o ? 5 : l >= s ? 2 : 1, d, f, p;
54
- return i < 0 ? (p = 10 ** -i / u, d = Math.round(e * p), f = Math.round(t * p), d / p < e && ++d, f / p > t && --f, p = -p) : (p = 10 ** i * u, d = Math.round(e / p), f = Math.round(t / p), d * p < e && ++d, f * p > t && --f), f < d && .5 <= n && n < 2 ? c(e, t, n * 2) : [
55
- d,
56
- f,
57
- p
58
- ];
59
- }
60
- function l(e, t, n) {
61
- if (t = +t, e = +e, n = +n, !(n > 0)) return [];
62
- if (e === t) return [e];
63
- let r = t < e, [i, a, o] = r ? c(t, e, n) : c(e, t, n);
64
- if (!(a >= i)) return [];
65
- let s = a - i + 1, l = Array(s);
66
- if (r) {
67
- if (o < 0) for (let e = 0; e < s; ++e) l[e] = (a - e) / -o;
68
- else for (let e = 0; e < s; ++e) l[e] = (a - e) * o;
69
- } else if (o < 0) for (let e = 0; e < s; ++e) l[e] = (i + e) / -o;
70
- else for (let e = 0; e < s; ++e) l[e] = (i + e) * o;
71
- return l;
72
- }
73
- function u(e, t, n) {
74
- return t = +t, e = +e, n = +n, c(e, t, n)[2];
75
- }
76
- function d(e, t, n) {
77
- t = +t, e = +e, n = +n;
78
- let r = t < e, i = r ? u(t, e, n) : u(e, t, n);
79
- return (r ? -1 : 1) * (i < 0 ? 1 / -i : i);
80
- }
81
- //#endregion
82
- //#region ../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/precisionFixed.js
83
- function f(t) {
84
- return Math.max(0, -e(Math.abs(t)));
85
- }
86
- //#endregion
87
- //#region ../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/precisionPrefix.js
88
- function p(t, n) {
89
- return Math.max(0, Math.max(-8, Math.min(8, Math.floor(e(n) / 3))) * 3 - e(Math.abs(t)));
90
- }
91
- //#endregion
92
- //#region ../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/precisionRound.js
93
- function m(t, n) {
94
- return t = Math.abs(t), n = Math.abs(n) - t, Math.max(0, e(n) - e(t)) + 1;
95
- }
96
- //#endregion
97
- export { d as a, t as c, u as i, p as n, l as o, f as r, r as s, m as t };