@marimo-team/islands 0.23.9-dev3 → 0.23.9-dev32
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.
- package/dist/{ConnectedDataExplorerComponent-2lBNiUv6.js → ConnectedDataExplorerComponent-MJy-Ll40.js} +20 -20
- package/dist/ErrorBoundary-rULOrC_p.js +175 -0
- package/dist/{ImageComparisonComponent-CNHIsPDj.js → ImageComparisonComponent-CHrI72em.js} +1 -1
- package/dist/{Plot-4wn-lMVn.js → Plot-CAYS29h9.js} +1 -1
- package/dist/{_baseUniq-CxZRxRRo.js → _baseUniq-B_2Hw7zG.js} +3 -3
- package/dist/{any-language-editor-VWs_7v27.js → any-language-editor-DfdpyDv_.js} +23 -23
- package/dist/architecture-7HQA4BMR-Kyc44TmC.js +6 -0
- package/dist/{architectureDiagram-VXUJARFQ-CXVJxFhH.js → architectureDiagram-VXUJARFQ-CT2SuxNw.js} +15 -15
- package/dist/{arrays-CldYf7p7.js → arrays-sEtDRoG4.js} +1 -1
- package/dist/assets/__vite-browser-external-BBEFRPue.js +1 -0
- package/dist/assets/{worker-CpBbwbQo.js → worker-BoAkAmaG.js} +2 -2
- package/dist/{blockDiagram-VD42YOAC-DGDaxR8I.js → blockDiagram-VD42YOAC-Dy7hlFla.js} +7 -7
- package/dist/{button-Dj4BTre0.js → button-C5K9fIPF.js} +2 -2
- package/dist/{c4Diagram-YG6GDRKO-C2hc6ne8.js → c4Diagram-YG6GDRKO-BXlAmZ8Z.js} +4 -4
- package/dist/{capabilities-C9rrYCzf.js → capabilities-BceAxrAW.js} +2 -2
- package/dist/{channel-BBoIVUrJ.js → channel-D_PHgcig.js} +1 -1
- package/dist/{chat-ui-D3XBept8.js → chat-ui-CpX2YcGy.js} +3084 -3057
- package/dist/{check-BcUIXnUT.js → check-DTbrK0zt.js} +1 -1
- package/dist/{chunk-4F5CHEZ2-BZq7Kom7.js → chunk-4F5CHEZ2-D9nGEHV8.js} +1 -1
- package/dist/{chunk-5FQGJX7Z-BOg95xG5.js → chunk-5FQGJX7Z-BNjes6Yx.js} +5 -5
- package/dist/{chunk-ABZYJK2D-D0cLy8Bb.js → chunk-ABZYJK2D-Dz0-H2B5.js} +1 -1
- package/dist/{chunk-ATLVNIR6-BXsEjlHF.js → chunk-ATLVNIR6-o0Z5MZLd.js} +1 -1
- package/dist/{chunk-B2363JML-D9-XOau1.js → chunk-B2363JML-KEJpLGGP.js} +1 -1
- package/dist/{chunk-B4BG7PRW-Q1usn6T3.js → chunk-B4BG7PRW-BL98U9B4.js} +4 -4
- package/dist/{chunk-DI55MBZ5-D1qLYNrb.js → chunk-DI55MBZ5-Dwkn0LWm.js} +4 -4
- package/dist/{chunk-EXTU4WIE-BKNXdLmD.js → chunk-EXTU4WIE-9sNjmQrB.js} +1 -1
- package/dist/{chunk-FRFDVMJY-BSBUAX7r.js → chunk-FRFDVMJY-DzQqMWrl.js} +1 -1
- package/dist/{chunk-JA3XYJ7Z-D6c6cOBG.js → chunk-JA3XYJ7Z-C32Y7Epf.js} +2 -2
- package/dist/{chunk-JZLCHNYA-BvsPHJmL.js → chunk-JZLCHNYA-C6ftyVMN.js} +4 -4
- package/dist/{chunk-N4CR4FBY-8ycT-O9a.js → chunk-N4CR4FBY-DUhGZhZs.js} +5 -5
- package/dist/{chunk-PL6DKKU2-B0MTXvyc.js → chunk-PL6DKKU2-D7km-08O.js} +1 -1
- package/dist/{chunk-QN33PNHL-Bb-eUBW3.js → chunk-QN33PNHL-0K6SDYn3.js} +1 -1
- package/dist/{chunk-QXUST7PY-DV8yRwBd.js → chunk-QXUST7PY-DMhsRpYK.js} +5 -5
- package/dist/{chunk-S3R3BYOJ-mQeCz5CE.js → chunk-S3R3BYOJ-oAe3dEbO.js} +3 -3
- package/dist/{chunk-SJTYNZTY-CEG4F0pB.js → chunk-SJTYNZTY-BkJrPRFC.js} +1 -1
- package/dist/{chunk-TCCFYFTB-d3HOqL2I.js → chunk-TCCFYFTB-D58KeXnC.js} +6 -6
- package/dist/{chunk-TQ3KTPDO-DiCtqVSi.js → chunk-TQ3KTPDO-D_yA_wAb.js} +1 -1
- package/dist/{chunk-TZMSLE5B-BqW10dHe.js → chunk-TZMSLE5B-yBKS_DQU.js} +1 -1
- package/dist/{chunk-UMXZTB3W-97iS1iEl.js → chunk-UMXZTB3W-D7uwvNjd.js} +1 -1
- package/dist/{classDiagram-2ON5EDUG--Yh__LHb.js → classDiagram-2ON5EDUG-QjoAcuFE.js} +10 -10
- package/dist/{classDiagram-v2-WZHVMYZB-BC7X7Xtc.js → classDiagram-v2-WZHVMYZB-bUCv4gu2.js} +10 -10
- package/dist/{clone-BuIIsfA8.js → clone-Q4Fqwn6q.js} +1 -1
- package/dist/{code-block-37QAKDTI-BsGy1AOJ.js → code-block-37QAKDTI-m92Yc8pv.js} +2 -2
- package/dist/{code-visibility-BKxrBMod.js → code-visibility-Bq6MzjHR.js} +8434 -8599
- package/dist/{constants-D0gkYoE2.js → constants-T20xxyNf.js} +2 -2
- package/dist/{copy-DLf4aN7I.js → copy-BuQpJEzp.js} +2 -2
- package/dist/{dagre-6UL2VRFP-DRBWoQUw.js → dagre-6UL2VRFP-J0JKgwOt.js} +11 -11
- package/dist/{dagre-VYEPqXIV.js → dagre-By_QsQgc.js} +11 -11
- package/dist/{data-grid-overlay-editor-efe5ZagF.js → data-grid-overlay-editor-mfEJ5475.js} +2 -2
- package/dist/{diagram-PSM6KHXK-H66ATWP2.js → diagram-PSM6KHXK-DYgJuNk9.js} +18 -18
- package/dist/{diagram-QEK2KX5R-DItl5Wns.js → diagram-QEK2KX5R-CKdBR2sb.js} +14 -14
- package/dist/{diagram-S2PKOQOG-CtuW_ZuL.js → diagram-S2PKOQOG-Dpi7mo5W.js} +14 -14
- package/dist/dist-0Fif7jnk.js +5 -0
- package/dist/{dist-Dh3wkoyH.js → dist-4j4c7bjm.js} +2 -2
- package/dist/{dist-CDFZi-QD.js → dist-B3P2fFpz.js} +1 -1
- package/dist/{dist-BNyrZfqT.js → dist-B3pZ0Ab6.js} +2 -2
- package/dist/dist-B5h_9sHB.js +6 -0
- package/dist/dist-B9M6R5ye.js +5 -0
- package/dist/dist-BCt3tnck.js +8 -0
- package/dist/{dist-BrBucRXs.js → dist-BTfv03uy.js} +2 -2
- package/dist/dist-BUIJwMwn.js +8 -0
- package/dist/{dist-CYEylvZA.js → dist-BbbIBDiQ.js} +1 -1
- package/dist/{dist-KnujRhFL.js → dist-BcuoonNH.js} +4 -4
- package/dist/{dist-DJ6zJQZ4.js → dist-Bde4a2kU.js} +2 -2
- package/dist/{dist-t_qL7eB8.js → dist-Bfwsv11D.js} +2 -2
- package/dist/{dist-CNtV21T_.js → dist-BhM8gdSO.js} +4 -4
- package/dist/{dist-nuW5EDYT.js → dist-BotSqB48.js} +2 -2
- package/dist/dist-BpquMd3k.js +5 -0
- package/dist/dist-BzJsqYfz.js +5 -0
- package/dist/{dist-D029TiHd.js → dist-Bz_sYWbr.js} +2 -2
- package/dist/{dist-D3ZI9nhS.js → dist-C1BYNeCR.js} +4 -4
- package/dist/{dist-Bc5pmZIw.js → dist-C5VC_yzu.js} +1 -1
- package/dist/dist-CA5ELXAf.js +6 -0
- package/dist/dist-CLBRs6Uv.js +5 -0
- package/dist/{dist-Dhk6FMb0.js → dist-CLJWPTX2.js} +3 -3
- package/dist/{dist-C34oIrQ9.js → dist-CLUtPrdy.js} +1 -1
- package/dist/dist-CStVCMbq.js +5 -0
- package/dist/{dist-B8RaFTRF.js → dist-CUCNs1ja.js} +2 -2
- package/dist/dist-CZRIEY3Y.js +8 -0
- package/dist/{dist-UcOPnRMa.js → dist-CcXxepx6.js} +3 -3
- package/dist/dist-CuUHbFD0.js +5 -0
- package/dist/{dist-B8BjrFUE.js → dist-Cy1WxgBD.js} +5 -5
- package/dist/{dist-WdPUFc56.js → dist-D4CewLk6.js} +1 -1
- package/dist/{dist-DMZNjfX4.js → dist-DRfcqpxJ.js} +2 -2
- package/dist/dist-DV7Iabxb.js +8 -0
- package/dist/{dist-usPCDYx8.js → dist-D_bzzWBm.js} +1 -1
- package/dist/{dist-BvCfQQQE.js → dist-DgnE8F-r.js} +1 -1
- package/dist/{dist-JEhxD_cn.js → dist-DhHh0jLg.js} +1 -1
- package/dist/{dist-DGAfI2rB.js → dist-DqAWR3CS.js} +2 -2
- package/dist/{dist--sWVZwjW.js → dist-Du8WkPuU.js} +1 -1
- package/dist/dist-DuEeHMvL.js +5 -0
- package/dist/{dist-BTyJtnNg.js → dist-DxvORzUR.js} +1 -1
- package/dist/{dist-B507mf_I.js → dist-RqXTaiir.js} +2 -2
- package/dist/{dist-Yrfc6L0I.js → dist-fQ0ViXGs.js} +3 -3
- package/dist/{dist-B4LJpMEg.js → dist-h2c8sZvT.js} +1 -1
- package/dist/{dist-C2ej4eOH.js → dist-luvabDEB.js} +2 -2
- package/dist/{dist-B52GXZbd.js → dist-p2qyWijU.js} +2 -2
- package/dist/{erDiagram-Q2GNP2WA--19X2kU5.js → erDiagram-Q2GNP2WA-BU-m41EQ.js} +10 -10
- package/dist/{error-banner-CVkfBUT3.js → error-banner-5bz0L9hS.js} +3 -3
- package/dist/{esm-CWp0KQeK.js → esm-BfhQmZjp.js} +4 -4
- package/dist/{esm-DjNnlmpf.js → esm-Duie8iU-.js} +23 -23
- package/dist/{extends-vAi97cpa.js → extends-BgdxCfYu.js} +6 -6
- package/dist/{flatten-CzBvFdvC.js → flatten-Bbw7g6-K.js} +1 -1
- package/dist/{flowDiagram-NV44I4VS-DQmWlo7f.js → flowDiagram-NV44I4VS-CRoXKjGq.js} +10 -10
- package/dist/{formats-Dsy9kkZu.js → formats-BIKFEOlR.js} +4 -4
- package/dist/{ganttDiagram-JELNMOA3-BOGXJ8Lk.js → ganttDiagram-JELNMOA3-7mq5f9cO.js} +7 -7
- package/dist/{gitGraph-G5XIXVHT-DGlbae5m.js → gitGraph-G5XIXVHT-DiniR35k.js} +3 -3
- package/dist/{gitGraphDiagram-V2S2FVAM-DjzxfF0P.js → gitGraphDiagram-V2S2FVAM-Dfuokq6w.js} +13 -13
- package/dist/{glide-data-editor-DucgdjRo.js → glide-data-editor-DjQd6fKp.js} +557 -557
- package/dist/{graphlib-CVPKjKCS.js → graphlib-Ns7y5crs.js} +5 -5
- package/dist/{hasIn-COs6vImh.js → hasIn-Deg7jl_j.js} +3 -3
- package/dist/{html-to-image-CpggM7u1.js → html-to-image-QL7QveRm.js} +115 -110
- package/dist/{info-VBDWY6EO-D2lvLLw5.js → info-VBDWY6EO-DVZvGhkQ.js} +3 -3
- package/dist/{infoDiagram-HS3SLOUP-ChNufFsP.js → infoDiagram-HS3SLOUP-CEnzWruK.js} +13 -13
- package/dist/{input-D4kjoQUB.js → input-Dh0iMVFM.js} +70 -67
- package/dist/{isEmpty-Dd8mx_WL.js → isEmpty-CJJMn-QP.js} +1 -1
- package/dist/{isSymbol-BvIfMnn6.js → isSymbol-CoUCgMCM.js} +1 -1
- package/dist/{journeyDiagram-XKPGCS4Q-BO_O4Ij1.js → journeyDiagram-XKPGCS4Q-8XYSU1GI.js} +3 -3
- package/dist/{kanban-definition-3W4ZIXB7-CPpiiiWk.js → kanban-definition-3W4ZIXB7--9pT9z1R.js} +7 -7
- package/dist/{label-BLqV33b1.js → label-LWtdw5i8.js} +3 -3
- package/dist/{linear-2NnK4cxi.js → linear-B5-AFRiR.js} +2 -2
- package/dist/{loader-Dr8Qem8p.js → loader-BWLPpjKK.js} +2 -2
- package/dist/main.js +1689 -1570
- package/dist/{memoize-C9ltv0Cw.js → memoize-BOtf2yFf.js} +1 -1
- package/dist/{merge-CHn7Yx0N.js → merge-Be1CqGnU.js} +1 -1
- package/dist/mermaid-4DMBBIKO-DIdL224_.js +6 -0
- package/dist/{mermaid-DO-Daq7u.js → mermaid-CAibas-0.js} +44 -44
- package/dist/{mermaid-parser.core-DreccfmS.js → mermaid-parser.core-C3XRsazI.js} +8 -8
- package/dist/{min-BNz2lZfk.js → min-Dtgc8txR.js} +4 -4
- package/dist/{mindmap-definition-VGOIOE7T-CC1_Vl0f.js → mindmap-definition-VGOIOE7T-B-4mnfFG.js} +9 -9
- package/dist/{now-Sgq5m3D-.js → now-Ch98bJO_.js} +2 -2
- package/dist/{number-overlay-editor-CpKi64Fy.js → number-overlay-editor-D-a0qCT8.js} +1 -1
- package/dist/{once-rJImu7SE.js → once-DPuqGUeo.js} +1 -1
- package/dist/{packet-DYOGHKS2-CmWtF3uO.js → packet-DYOGHKS2-34raHOiB.js} +3 -3
- package/dist/{pick-CRAXxDYn.js → pick-D1Qo8s2C.js} +4 -4
- package/dist/{pie-VRWISCQL-B6u8vus8.js → pie-VRWISCQL-BaLlzZa3.js} +3 -3
- package/dist/{pieDiagram-ADFJNKIX-Di34MOFQ.js → pieDiagram-ADFJNKIX-Cr3cNpZY.js} +15 -15
- package/dist/{precisionRound-CnHPY_5v.js → precisionRound-Tqb4mg-H.js} +1 -1
- package/dist/{process-output-X8TR20AK.js → process-output-C657UH7t.js} +36 -28
- package/dist/{quadrantDiagram-AYHSOK5B-B9kVk1ny.js → quadrantDiagram-AYHSOK5B-BuNL8Q93.js} +4 -4
- package/dist/{radar-ZZBFDIW7-XAmXSa8s.js → radar-ZZBFDIW7-Ci7bfoZa.js} +3 -3
- package/dist/{react-vega-Dh6-UKKe.js → react-vega-B0sAlDTL.js} +9 -9
- package/dist/react-vega-B6ncY2Tp.js +9 -0
- package/dist/{requirementDiagram-UZGBJVZJ-BxGfGYEx.js → requirementDiagram-UZGBJVZJ-BG2lLUN1.js} +9 -9
- package/dist/{reveal-component-BMyi2UMr.js → reveal-component-BQijUbYE.js} +33 -33
- package/dist/{sankeyDiagram-TZEHDZUN-D09PBJ-n.js → sankeyDiagram-TZEHDZUN-DMal8sps.js} +3 -3
- package/dist/{sequenceDiagram-WL72ISMW-t_Dpemj0.js → sequenceDiagram-WL72ISMW-DT6Tk-Eo.js} +4 -4
- package/dist/{spec-hVaaZsY5.js → spec-BKuFJIDz.js} +4 -4
- package/dist/{stateDiagram-FKZM4ZOC-B18gTP_j.js → stateDiagram-FKZM4ZOC-CB_lodq3.js} +12 -12
- package/dist/{stateDiagram-v2-4FDKWEC3-B6e_t14A.js → stateDiagram-v2-4FDKWEC3-E0RGjKsm.js} +10 -10
- package/dist/stex-KfRnSHzF.js +4 -0
- package/dist/{strings-BiIhGaI8.js → strings-Bu3vlb6W.js} +7 -7
- package/dist/style.css +1 -1
- package/dist/{swiper-component-DlD2GU2g.js → swiper-component-B2t5sN1q.js} +3 -3
- package/dist/{time-C1SGcFMH.js → time-CsmIF9YZ.js} +3 -3
- package/dist/{timeline-definition-IT6M3QCI-DJnh1ks5.js → timeline-definition-IT6M3QCI-NfSKRvH0.js} +2 -2
- package/dist/{toDate-CIpC_34u.js → toDate-BeKbrOvs.js} +5 -5
- package/dist/{tooltip-DRaMBu06.js → tooltip-C5FYOpQc.js} +4 -4
- package/dist/{treemap-GDKQZRPO-Du95DV6u.js → treemap-GDKQZRPO-Cl6OQh8D.js} +3 -3
- package/dist/{types-Dzuoc3LN.js → types-CVvp1fKr.js} +2 -9
- package/dist/{useAsyncData-C56Khv_R.js → useAsyncData-yp6n17kh.js} +2 -2
- package/dist/{useDateFormatter-B_9k85Ex.js → useDateFormatter-BA4FCquG.js} +2 -2
- package/dist/{useDeepCompareMemoize-Dt98v2ua.js → useDeepCompareMemoize-DJvAHUIC.js} +1 -1
- package/dist/{useIframeCapabilities-BkYHTrss.js → useIframeCapabilities-C4JTXTIh.js} +1 -1
- package/dist/{useLifecycle-BF6-z62y.js → useLifecycle-CsYXf0Ln.js} +4 -4
- package/dist/{useTheme-DykuNHR2.js → useTheme-CK_R9Mn8.js} +24 -21
- package/dist/{vega-component-cSdqoAxe.js → vega-component-ikfBfkZO.js} +18 -18
- package/dist/{vega-loader.browser-3_z8GoFC.js → vega-loader.browser-CZ-J8Py3.js} +3 -3
- package/dist/{xychartDiagram-PRI3JC2R-Dk2d_bX0.js → xychartDiagram-PRI3JC2R-BvwftqMA.js} +9 -9
- package/dist/{zod-BWkcDORu.js → zod-CoBiJ5v4.js} +3 -3
- package/package.json +1 -1
- package/src/components/ai/__tests__/ai-utils.test.ts +43 -38
- package/src/components/ai/ai-model-dropdown.tsx +2 -2
- package/src/components/app-config/ai-config.tsx +73 -1
- package/src/components/app-config/user-config-form.tsx +37 -1
- package/src/components/chat/__tests__/chat-utils.test.ts +269 -0
- package/src/components/chat/chat-panel.tsx +36 -3
- package/src/components/chat/chat-utils.ts +14 -58
- package/src/components/data-table/TableBottomBar.tsx +27 -6
- package/src/components/data-table/TableTopBar.tsx +7 -1
- package/src/components/data-table/__tests__/TableBottomBar.test.tsx +73 -0
- package/src/components/data-table/__tests__/column-explorer.test.tsx +128 -0
- package/src/components/data-table/__tests__/column-header.test.tsx +110 -277
- package/src/components/data-table/__tests__/data-table.test.tsx +52 -1
- package/src/components/data-table/__tests__/date-filter-inputs.test.tsx +33 -0
- package/src/components/data-table/__tests__/filter-pill-editor.test.tsx +75 -38
- package/src/components/data-table/__tests__/filter-pills.test.tsx +287 -0
- package/src/components/data-table/__tests__/filter-test-utils.ts +47 -0
- package/src/components/data-table/__tests__/filters.test.ts +5 -5
- package/src/components/data-table/__tests__/header-items.test.tsx +47 -1
- package/src/components/data-table/__tests__/useColumnVisibility.test.ts +42 -0
- package/src/components/data-table/add-filter-button.tsx +85 -0
- package/src/components/data-table/column-explorer-panel/column-explorer.tsx +98 -26
- package/src/components/data-table/column-header.tsx +94 -691
- package/src/components/data-table/columns.tsx +3 -4
- package/src/components/data-table/context-menu.tsx +26 -12
- package/src/components/data-table/data-table.tsx +125 -56
- package/src/components/data-table/date-filter-inputs.tsx +13 -10
- package/src/components/data-table/export-actions.tsx +17 -6
- package/src/components/data-table/filter-by-values-picker.tsx +13 -19
- package/src/components/data-table/filter-editor-context.tsx +34 -0
- package/src/components/data-table/filter-pill-editor.tsx +152 -175
- package/src/components/data-table/filter-pills.tsx +190 -153
- package/src/components/data-table/filters/builders.ts +102 -0
- package/src/components/data-table/filters/defaults.ts +31 -0
- package/src/components/data-table/filters/format.ts +131 -0
- package/src/components/data-table/filters/guards.ts +51 -0
- package/src/components/data-table/filters/index.ts +7 -0
- package/src/components/data-table/filters/operators.ts +76 -0
- package/src/components/data-table/filters/serialize.ts +186 -0
- package/src/components/data-table/filters/types.ts +33 -0
- package/src/components/data-table/header-items.tsx +25 -85
- package/src/components/data-table/hooks/use-column-visibility.ts +56 -0
- package/src/components/data-table/pagination.tsx +16 -3
- package/src/components/data-table/table-explorer-panel/table-explorer-panel.tsx +16 -6
- package/src/components/data-table/value-chips.tsx +52 -0
- package/src/components/databases/display.tsx +2 -0
- package/src/components/datasources/__tests__/utils.test.ts +82 -0
- package/src/components/datasources/utils.ts +16 -15
- package/src/components/editor/actions/pair-with-agent-modal.tsx +1 -0
- package/src/components/editor/errors/mangled-local-chip.tsx +50 -0
- package/src/components/editor/output/MarimoErrorOutput.tsx +110 -27
- package/src/components/editor/output/MarimoTracebackOutput.tsx +51 -34
- package/src/components/editor/renderers/slides-layout/slides-layout.tsx +1 -1
- package/src/components/slides/reveal-component.tsx +3 -3
- package/src/components/slides/slide-form.tsx +11 -3
- package/src/components/ui/number-field.tsx +13 -1
- package/src/core/ai/__tests__/model-registry.test.ts +72 -60
- package/src/core/ai/model-registry.ts +33 -28
- package/src/core/cells/__tests__/actions.test.ts +48 -0
- package/src/core/cells/actions.ts +5 -6
- package/src/core/codemirror/__tests__/setup.test.ts +29 -0
- package/src/core/codemirror/cells/traceback-decorations.ts +1 -1
- package/src/core/codemirror/cm.ts +3 -2
- package/src/core/codemirror/format.ts +1 -0
- package/src/core/codemirror/keymaps/vim.ts +63 -0
- package/src/core/codemirror/language/languages/sql/sql.ts +1 -0
- package/src/core/codemirror/language/languages/sql/utils.ts +2 -0
- package/src/core/config/__tests__/config-schema.test.ts +2 -0
- package/src/core/config/config-schema.ts +2 -0
- package/src/css/app/Cell.css +0 -1
- package/src/plugins/impl/DataTablePlugin.tsx +94 -33
- package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +1 -0
- package/src/plugins/impl/chat/ChatPlugin.tsx +7 -1
- package/src/plugins/impl/chat/__tests__/chat-ui.test.ts +278 -0
- package/src/plugins/impl/chat/chat-ui.tsx +106 -59
- package/src/plugins/impl/chat/types.ts +5 -0
- package/src/plugins/impl/data-frames/DataFramePlugin.tsx +8 -6
- package/src/stories/dataframe.stories.tsx +1 -0
- package/src/utils/__tests__/local-variables.test.ts +132 -0
- package/src/utils/dates.ts +39 -0
- package/src/utils/local-variables.ts +67 -0
- package/dist/ErrorBoundary-D3wrPNma.js +0 -167
- package/dist/architecture-7HQA4BMR-CS9jOrqM.js +0 -6
- package/dist/assets/__vite-browser-external-CAdMKBac.js +0 -1
- package/dist/dist-21ButRCu.js +0 -8
- package/dist/dist-B--tLnAP.js +0 -5
- package/dist/dist-BoHGySTM.js +0 -5
- package/dist/dist-ByAz19Qc.js +0 -5
- package/dist/dist-C1Ap5CYU.js +0 -5
- package/dist/dist-C93EysN4.js +0 -5
- package/dist/dist-CY-lVor6.js +0 -8
- package/dist/dist-CYDuv4bR.js +0 -8
- package/dist/dist-Cfo5EE2t.js +0 -6
- package/dist/dist-CjivSDvN.js +0 -5
- package/dist/dist-Cqwx-MH7.js +0 -5
- package/dist/dist-DbpcoFAV.js +0 -6
- package/dist/dist-FUNenbiQ.js +0 -5
- package/dist/dist-zhSud5X3.js +0 -8
- package/dist/mermaid-4DMBBIKO-B7VQMwJx.js +0 -6
- package/dist/react-vega-Cavbrg4l.js +0 -9
- package/dist/stex-ChDHQs3R.js +0 -4
- package/src/components/data-table/__tests__/column-header.test.ts +0 -65
- package/src/components/data-table/filters.ts +0 -386
- /package/dist/{_baseFor-BGiY-cm1.js → _baseFor-4jw-lnCC.js} +0 -0
- /package/dist/{clsx-CyyyQ8Ue.js → clsx-CIWA5tNO.js} +0 -0
- /package/dist/{defaultLocale-DoeErsX2.js → defaultLocale-BoHTsDG6.js} +0 -0
- /package/dist/{defaultLocale-BpsHxBd7.js → defaultLocale-u-3osm0P.js} +0 -0
- /package/dist/{dist-CCADb07R.js → dist-DNdhYsgW.js} +0 -0
- /package/dist/{emotion-is-prop-valid.esm-DtW2o230.js → emotion-is-prop-valid.esm-DzSb5hsH.js} +0 -0
- /package/dist/{invariant-UcGKQEhF.js → invariant-wRzNXIsJ.js} +0 -0
- /package/dist/{jsx-runtime-COBk7ree.js → jsx-runtime-DebpN0FN.js} +0 -0
- /package/dist/{main-CThhXnXU.js → main-Tj_-QTyF.js} +0 -0
- /package/dist/{micromark-factory-space-CwHmg6iz.js → micromark-factory-space-DF2w36zS.js} +0 -0
- /package/dist/{ordinal-B43ZeR68.js → ordinal-ArJavP1Q.js} +0 -0
- /package/dist/{purify.es-DT70lfR0.js → purify.es-H92eMd9-.js} +0 -0
- /package/dist/{range-BOiA8qqU.js → range-C-rmrM1O.js} +0 -0
- /package/dist/{react-dom-BWRJ_g_k.js → react-dom-BTJzcVJ9.js} +0 -0
- /package/dist/{stex-DrxP7bb3.js → stex-BIsgBmK4.js} +0 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
+
import { describe, expect, it } from "vitest";
|
|
3
|
+
import {
|
|
4
|
+
containsMangledLocal,
|
|
5
|
+
splitMangledLocals,
|
|
6
|
+
unmangleLocal,
|
|
7
|
+
} from "../local-variables";
|
|
8
|
+
|
|
9
|
+
describe("unmangleLocal", () => {
|
|
10
|
+
it("extracts the cell id and original name", () => {
|
|
11
|
+
expect(unmangleLocal("_cell_Hbol_a")).toEqual({
|
|
12
|
+
cellId: "Hbol",
|
|
13
|
+
name: "_a",
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it("handles names with multiple underscore segments", () => {
|
|
18
|
+
expect(unmangleLocal("_cell_Hbol_a_b")).toEqual({
|
|
19
|
+
cellId: "Hbol",
|
|
20
|
+
name: "_a_b",
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it("returns null for non-mangled strings", () => {
|
|
25
|
+
expect(unmangleLocal("just_a_variable")).toBeNull();
|
|
26
|
+
expect(unmangleLocal("_private")).toBeNull();
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it("handles the single-underscore local", () => {
|
|
30
|
+
// `_` is a valid local name (variables.py:62-63), mangling to
|
|
31
|
+
// `_cell_<id>_` with no trailing suffix.
|
|
32
|
+
expect(unmangleLocal("_cell_Hbol_")).toEqual({
|
|
33
|
+
cellId: "Hbol",
|
|
34
|
+
name: "_",
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it("handles UUID-style cell ids", () => {
|
|
39
|
+
// External / VSCode notebooks use `external_prefix()` which is a
|
|
40
|
+
// `uuid4()` (hyphenated).
|
|
41
|
+
expect(
|
|
42
|
+
unmangleLocal("_cell_c9bf9e57-1685-4c89-bafb-ff5af830be8a_a"),
|
|
43
|
+
).toEqual({
|
|
44
|
+
cellId: "c9bf9e57-1685-4c89-bafb-ff5af830be8a",
|
|
45
|
+
name: "_a",
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it("does not match marimo cell file paths", () => {
|
|
50
|
+
// The compiled cell file is `__marimo__cell_<id>_.py` (two leading
|
|
51
|
+
// underscores, trailing `_` with no name); it must not be confused with a
|
|
52
|
+
// mangled local.
|
|
53
|
+
expect(unmangleLocal("__marimo__cell_Hbol_.py")).toBeNull();
|
|
54
|
+
expect(unmangleLocal("/tmp/marimo_42/__marimo__cell_Hbol_.py")).toBeNull();
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
describe("splitMangledLocals", () => {
|
|
59
|
+
it("returns a single text segment when nothing matches", () => {
|
|
60
|
+
expect(splitMangledLocals("plain text")).toEqual(["plain text"]);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it("splits a NameError message", () => {
|
|
64
|
+
expect(splitMangledLocals("name '_cell_Hbol_a' is not defined")).toEqual([
|
|
65
|
+
"name '",
|
|
66
|
+
{ cellId: "Hbol", name: "_a" },
|
|
67
|
+
"' is not defined",
|
|
68
|
+
]);
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
it("handles multiple mangled names in one string", () => {
|
|
72
|
+
expect(splitMangledLocals("_cell_AAAA_x and _cell_BBBB_y")).toEqual([
|
|
73
|
+
{ cellId: "AAAA", name: "_x" },
|
|
74
|
+
" and ",
|
|
75
|
+
{ cellId: "BBBB", name: "_y" },
|
|
76
|
+
]);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it("leaves the cell file path alone", () => {
|
|
80
|
+
const path = "/tmp/marimo_42/__marimo__cell_Hbol_.py";
|
|
81
|
+
expect(splitMangledLocals(path)).toEqual([path]);
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
it("ignores `_cell_...` substrings preceded by `_`", () => {
|
|
85
|
+
// Mirrors `(?<!_)` in `variables.py`: a leading `_` (e.g. inside
|
|
86
|
+
// `__marimo__cell_<id>_<...>`) means this is not a mangle the compiler
|
|
87
|
+
// produced, so we must not demangle it.
|
|
88
|
+
const text = "see __marimo__cell_Hbol_a for details";
|
|
89
|
+
expect(splitMangledLocals(text)).toEqual([text]);
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
it("splits a UUID-style cell id", () => {
|
|
93
|
+
expect(
|
|
94
|
+
splitMangledLocals(
|
|
95
|
+
"name '_cell_c9bf9e57-1685-4c89-bafb-ff5af830be8a_a' is not defined",
|
|
96
|
+
),
|
|
97
|
+
).toEqual([
|
|
98
|
+
"name '",
|
|
99
|
+
{
|
|
100
|
+
cellId: "c9bf9e57-1685-4c89-bafb-ff5af830be8a",
|
|
101
|
+
name: "_a",
|
|
102
|
+
},
|
|
103
|
+
"' is not defined",
|
|
104
|
+
]);
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
it("splits the single-underscore local", () => {
|
|
108
|
+
expect(splitMangledLocals("name '_cell_Hbol_' is not defined")).toEqual([
|
|
109
|
+
"name '",
|
|
110
|
+
{ cellId: "Hbol", name: "_" },
|
|
111
|
+
"' is not defined",
|
|
112
|
+
]);
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
describe("containsMangledLocal", () => {
|
|
117
|
+
it("detects mangled names", () => {
|
|
118
|
+
expect(containsMangledLocal("name '_cell_Hbol_a' is not defined")).toBe(
|
|
119
|
+
true,
|
|
120
|
+
);
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
it("ignores the cell file path", () => {
|
|
124
|
+
expect(containsMangledLocal("/tmp/marimo_42/__marimo__cell_Hbol_.py")).toBe(
|
|
125
|
+
false,
|
|
126
|
+
);
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
it("ignores `_cell_...` substrings preceded by `_`", () => {
|
|
130
|
+
expect(containsMangledLocal("see __marimo__cell_Hbol_a")).toBe(false);
|
|
131
|
+
});
|
|
132
|
+
});
|
package/src/utils/dates.ts
CHANGED
|
@@ -134,6 +134,45 @@ export function timeAgo(
|
|
|
134
134
|
return value.toString();
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
+
function pad2(n: number): string {
|
|
138
|
+
return n.toString().padStart(2, "0");
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
function pad4(n: number): string {
|
|
142
|
+
return n.toString().padStart(4, "0");
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Format a Date as `YYYY-MM-DD` using the date's local-time fields.
|
|
147
|
+
*
|
|
148
|
+
* The output reflects what the user sees in their own timezone (the calendar
|
|
149
|
+
* day on their clock), not the UTC day. Use this when round-tripping values
|
|
150
|
+
* that originated from local-time inputs — date pickers, "filter on this
|
|
151
|
+
* day", calendar UI — so the displayed and serialized days agree.
|
|
152
|
+
*
|
|
153
|
+
* Not suitable for cross-timezone storage; use `Date.toISOString()` for that.
|
|
154
|
+
*/
|
|
155
|
+
export function dateToLocalISODate(d: Date): string {
|
|
156
|
+
return `${pad4(d.getFullYear())}-${pad2(d.getMonth() + 1)}-${pad2(d.getDate())}`;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Format a Date as `HH:MM:SS` using the date's local-time fields.
|
|
161
|
+
*
|
|
162
|
+
* See `dateToLocalISODate` for the rationale on local vs UTC.
|
|
163
|
+
*/
|
|
164
|
+
export function dateToLocalISOTime(d: Date): string {
|
|
165
|
+
return `${pad2(d.getHours())}:${pad2(d.getMinutes())}:${pad2(d.getSeconds())}`;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Format a Date as `YYYY-MM-DDTHH:MM:SS` (no timezone suffix) using local
|
|
170
|
+
* fields. See `dateToLocalISODate` for the rationale on local vs UTC.
|
|
171
|
+
*/
|
|
172
|
+
export function dateToLocalISODateTime(d: Date): string {
|
|
173
|
+
return `${dateToLocalISODate(d)}T${dateToLocalISOTime(d)}`;
|
|
174
|
+
}
|
|
175
|
+
|
|
137
176
|
export const supportedDateFormats = ["yyyy", "yyyy-MM", "yyyy-MM-dd"] as const;
|
|
138
177
|
export type DateFormat = (typeof supportedDateFormats)[number];
|
|
139
178
|
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
+
import type { CellId } from "@/core/cells/ids";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The marimo compiler rewrites underscore-prefixed references inside a cell
|
|
6
|
+
* (which Python would treat as module-private) into `_cell_<cell_id>_<name>`
|
|
7
|
+
* so each cell gets its own private namespace. When such a reference fails at
|
|
8
|
+
* runtime (`NameError: name '_cell_Hbol_a' is not defined`), the mangled name
|
|
9
|
+
* leaks into the error UI. These helpers undo that mangling for display.
|
|
10
|
+
*
|
|
11
|
+
* Mirrors `marimo/_ast/variables.py`.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
// Matches `_cell_<cell_id><name>` for normal ids and UUIDs. The `[\w-]`
|
|
15
|
+
// id class admits hyphens; the `_\w*` name group admits the bare `_`
|
|
16
|
+
// local; the `(?<!_)` lookbehind skips `__marimo__cell_...` paths.
|
|
17
|
+
// Mirrors `_MANGLED_LOCAL_IN_TEXT_RE` in `variables.py`.
|
|
18
|
+
const MANGLED_LOCAL_BODY = String.raw`_cell_([^\W_][\w-]*?)(_\w*)`;
|
|
19
|
+
const MANGLED_LOCAL_PATTERN = String.raw`(?<!_)${MANGLED_LOCAL_BODY}`;
|
|
20
|
+
// Strict (whole-string) form for `unmangleLocal`; the leading `^` makes the
|
|
21
|
+
// lookbehind trivially satisfied, so use the bare body.
|
|
22
|
+
const ANCHORED_RE = new RegExp(`^${MANGLED_LOCAL_BODY}$`);
|
|
23
|
+
const UNANCHORED_RE = new RegExp(MANGLED_LOCAL_PATTERN);
|
|
24
|
+
const GLOBAL_RE = new RegExp(MANGLED_LOCAL_PATTERN, "g");
|
|
25
|
+
|
|
26
|
+
export interface UnmangledLocal {
|
|
27
|
+
cellId: CellId;
|
|
28
|
+
/** The original underscore-prefixed name, e.g. "_a". */
|
|
29
|
+
name: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function unmangleLocal(mangled: string): UnmangledLocal | null {
|
|
33
|
+
const match = ANCHORED_RE.exec(mangled);
|
|
34
|
+
if (!match) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
return { cellId: match[1] as CellId, name: match[2] };
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export type MangledSegment = string | UnmangledLocal;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Split a plain text string into alternating literal text and unmangled-local
|
|
44
|
+
* segments, so callers can render mixed React content.
|
|
45
|
+
*/
|
|
46
|
+
export function splitMangledLocals(text: string): MangledSegment[] {
|
|
47
|
+
const segments: MangledSegment[] = [];
|
|
48
|
+
GLOBAL_RE.lastIndex = 0;
|
|
49
|
+
let lastIndex = 0;
|
|
50
|
+
let match: RegExpExecArray | null = GLOBAL_RE.exec(text);
|
|
51
|
+
while (match !== null) {
|
|
52
|
+
if (match.index > lastIndex) {
|
|
53
|
+
segments.push(text.slice(lastIndex, match.index));
|
|
54
|
+
}
|
|
55
|
+
segments.push({ cellId: match[1] as CellId, name: match[2] });
|
|
56
|
+
lastIndex = match.index + match[0].length;
|
|
57
|
+
match = GLOBAL_RE.exec(text);
|
|
58
|
+
}
|
|
59
|
+
if (lastIndex < text.length) {
|
|
60
|
+
segments.push(text.slice(lastIndex));
|
|
61
|
+
}
|
|
62
|
+
return segments;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export function containsMangledLocal(text: string): boolean {
|
|
66
|
+
return UNANCHORED_RE.test(text);
|
|
67
|
+
}
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
import { s as __toESM, t as __commonJSMin } from "./chunk-BNovOVIE.js";
|
|
2
|
-
import { t as Button } from "./button-Dj4BTre0.js";
|
|
3
|
-
import { t as require_react } from "./react-DA-nE2FX.js";
|
|
4
|
-
import { t as require_compiler_runtime } from "./compiler-runtime-CEbnTgxf.js";
|
|
5
|
-
import { t as require_jsx_runtime } from "./jsx-runtime-COBk7ree.js";
|
|
6
|
-
import { n as Constants } from "./constants-D0gkYoE2.js";
|
|
7
|
-
var require_ReactPropTypesSecret = /* @__PURE__ */ __commonJSMin(((e, u) => {
|
|
8
|
-
u.exports = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";
|
|
9
|
-
})), require_factoryWithThrowingShims = /* @__PURE__ */ __commonJSMin(((e, u) => {
|
|
10
|
-
var d = require_ReactPropTypesSecret();
|
|
11
|
-
function f() {
|
|
12
|
-
}
|
|
13
|
-
function p() {
|
|
14
|
-
}
|
|
15
|
-
p.resetWarningCache = f, u.exports = function() {
|
|
16
|
-
function e2(e3, u3, f2, p2, m2, h) {
|
|
17
|
-
if (h !== d) {
|
|
18
|
-
var g = /* @__PURE__ */ Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");
|
|
19
|
-
throw g.name = "Invariant Violation", g;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
e2.isRequired = e2;
|
|
23
|
-
function u2() {
|
|
24
|
-
return e2;
|
|
25
|
-
}
|
|
26
|
-
var m = {
|
|
27
|
-
array: e2,
|
|
28
|
-
bigint: e2,
|
|
29
|
-
bool: e2,
|
|
30
|
-
func: e2,
|
|
31
|
-
number: e2,
|
|
32
|
-
object: e2,
|
|
33
|
-
string: e2,
|
|
34
|
-
symbol: e2,
|
|
35
|
-
any: e2,
|
|
36
|
-
arrayOf: u2,
|
|
37
|
-
element: e2,
|
|
38
|
-
elementType: e2,
|
|
39
|
-
instanceOf: u2,
|
|
40
|
-
node: e2,
|
|
41
|
-
objectOf: u2,
|
|
42
|
-
oneOf: u2,
|
|
43
|
-
oneOfType: u2,
|
|
44
|
-
shape: u2,
|
|
45
|
-
exact: u2,
|
|
46
|
-
checkPropTypes: p,
|
|
47
|
-
resetWarningCache: f
|
|
48
|
-
};
|
|
49
|
-
return m.PropTypes = m, m;
|
|
50
|
-
};
|
|
51
|
-
})), require_prop_types = /* @__PURE__ */ __commonJSMin(((e, u) => {
|
|
52
|
-
u.exports = require_factoryWithThrowingShims()();
|
|
53
|
-
})), import_react = /* @__PURE__ */ __toESM(require_react()), ErrorBoundaryContext = (0, import_react.createContext)(null), initialState = {
|
|
54
|
-
didCatch: false,
|
|
55
|
-
error: null
|
|
56
|
-
}, ErrorBoundary = class extends import_react.Component {
|
|
57
|
-
constructor(e) {
|
|
58
|
-
super(e), this.resetErrorBoundary = this.resetErrorBoundary.bind(this), this.state = initialState;
|
|
59
|
-
}
|
|
60
|
-
static getDerivedStateFromError(e) {
|
|
61
|
-
return {
|
|
62
|
-
didCatch: true,
|
|
63
|
-
error: e
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
resetErrorBoundary() {
|
|
67
|
-
let { error: e } = this.state;
|
|
68
|
-
if (e !== null) {
|
|
69
|
-
var u, d, f = [...arguments];
|
|
70
|
-
(u = (d = this.props).onReset) == null || u.call(d, {
|
|
71
|
-
args: f,
|
|
72
|
-
reason: "imperative-api"
|
|
73
|
-
}), this.setState(initialState);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
componentDidCatch(e, u) {
|
|
77
|
-
var d, f;
|
|
78
|
-
(d = (f = this.props).onError) == null || d.call(f, e, u);
|
|
79
|
-
}
|
|
80
|
-
componentDidUpdate(e, u) {
|
|
81
|
-
let { didCatch: d } = this.state, { resetKeys: f } = this.props;
|
|
82
|
-
if (d && u.error !== null && hasArrayChanged(e.resetKeys, f)) {
|
|
83
|
-
var p, m;
|
|
84
|
-
(p = (m = this.props).onReset) == null || p.call(m, {
|
|
85
|
-
next: f,
|
|
86
|
-
prev: e.resetKeys,
|
|
87
|
-
reason: "keys"
|
|
88
|
-
}), this.setState(initialState);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
render() {
|
|
92
|
-
let { children: e, fallbackRender: u, FallbackComponent: d, fallback: f } = this.props, { didCatch: p, error: m } = this.state, h = e;
|
|
93
|
-
if (p) {
|
|
94
|
-
let e2 = {
|
|
95
|
-
error: m,
|
|
96
|
-
resetErrorBoundary: this.resetErrorBoundary
|
|
97
|
-
};
|
|
98
|
-
if (typeof u == "function") h = u(e2);
|
|
99
|
-
else if (d) h = (0, import_react.createElement)(d, e2);
|
|
100
|
-
else if (f !== void 0) h = f;
|
|
101
|
-
else throw m;
|
|
102
|
-
}
|
|
103
|
-
return (0, import_react.createElement)(ErrorBoundaryContext.Provider, { value: {
|
|
104
|
-
didCatch: p,
|
|
105
|
-
error: m,
|
|
106
|
-
resetErrorBoundary: this.resetErrorBoundary
|
|
107
|
-
} }, h);
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
function hasArrayChanged() {
|
|
111
|
-
let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], u = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
|
|
112
|
-
return e.length !== u.length || e.some((e2, d) => !Object.is(e2, u[d]));
|
|
113
|
-
}
|
|
114
|
-
var import_compiler_runtime = require_compiler_runtime(), import_jsx_runtime = /* @__PURE__ */ __toESM(require_jsx_runtime(), 1);
|
|
115
|
-
const ErrorBoundary$1 = (e) => {
|
|
116
|
-
let u = (0, import_compiler_runtime.c)(2), d;
|
|
117
|
-
return u[0] === e.children ? d = u[1] : (d = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ErrorBoundary, {
|
|
118
|
-
FallbackComponent,
|
|
119
|
-
children: e.children
|
|
120
|
-
}), u[0] = e.children, u[1] = d), d;
|
|
121
|
-
};
|
|
122
|
-
var FallbackComponent = (e) => {
|
|
123
|
-
var _a;
|
|
124
|
-
let u = (0, import_compiler_runtime.c)(9), f;
|
|
125
|
-
u[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (f = /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h1", {
|
|
126
|
-
className: "text-2xl font-bold",
|
|
127
|
-
children: "Something went wrong"
|
|
128
|
-
}), u[0] = f) : f = u[0];
|
|
129
|
-
let p = (_a = e.error) == null ? void 0 : _a.message, m;
|
|
130
|
-
u[1] === p ? m = u[2] : (m = /* @__PURE__ */ (0, import_jsx_runtime.jsx)("pre", {
|
|
131
|
-
className: "text-xs bg-muted/40 border rounded-md p-4 max-w-[80%] whitespace-normal",
|
|
132
|
-
children: p
|
|
133
|
-
}), u[1] = p, u[2] = m);
|
|
134
|
-
let g;
|
|
135
|
-
u[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (g = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
|
|
136
|
-
"If this is an issue with marimo, please report it on",
|
|
137
|
-
" ",
|
|
138
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", {
|
|
139
|
-
href: Constants.issuesPage,
|
|
140
|
-
target: "_blank",
|
|
141
|
-
className: "underline",
|
|
142
|
-
children: "GitHub"
|
|
143
|
-
}),
|
|
144
|
-
"."
|
|
145
|
-
] }), u[3] = g) : g = u[3];
|
|
146
|
-
let _;
|
|
147
|
-
u[4] === e.resetErrorBoundary ? _ = u[5] : (_ = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, {
|
|
148
|
-
"data-testid": "reset-error-boundary-button",
|
|
149
|
-
onClick: e.resetErrorBoundary,
|
|
150
|
-
variant: "outline",
|
|
151
|
-
children: "Try again"
|
|
152
|
-
}), u[4] = e.resetErrorBoundary, u[5] = _);
|
|
153
|
-
let v;
|
|
154
|
-
return u[6] !== m || u[7] !== _ ? (v = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
155
|
-
className: "flex-1 flex items-center justify-center flex-col space-y-4 max-w-2xl mx-auto px-6",
|
|
156
|
-
children: [
|
|
157
|
-
f,
|
|
158
|
-
m,
|
|
159
|
-
g,
|
|
160
|
-
_
|
|
161
|
-
]
|
|
162
|
-
}), u[6] = m, u[7] = _, u[8] = v) : v = u[8], v;
|
|
163
|
-
};
|
|
164
|
-
export {
|
|
165
|
-
require_prop_types as n,
|
|
166
|
-
ErrorBoundary$1 as t
|
|
167
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./worker-CpBbwbQo.js";var t=e(((e,t)=>{t.exports={}}));export default t();
|
package/dist/dist-21ButRCu.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import "./dist-CCADb07R.js";
|
|
2
|
-
import "./dist-UcOPnRMa.js";
|
|
3
|
-
import "./dist-BTyJtnNg.js";
|
|
4
|
-
import "./dist-DGAfI2rB.js";
|
|
5
|
-
import { i as jinjaLanguage, n as jinja, r as jinjaCompletionSource, t as closePercentBrace } from "./dist-BNyrZfqT.js";
|
|
6
|
-
export {
|
|
7
|
-
jinja
|
|
8
|
-
};
|
package/dist/dist-B--tLnAP.js
DELETED
package/dist/dist-BoHGySTM.js
DELETED
package/dist/dist-ByAz19Qc.js
DELETED
package/dist/dist-C1Ap5CYU.js
DELETED
package/dist/dist-C93EysN4.js
DELETED
package/dist/dist-CY-lVor6.js
DELETED
package/dist/dist-CYDuv4bR.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import "./dist-CCADb07R.js";
|
|
2
|
-
import "./dist-UcOPnRMa.js";
|
|
3
|
-
import "./dist-BTyJtnNg.js";
|
|
4
|
-
import "./dist-DGAfI2rB.js";
|
|
5
|
-
import { i as liquidLanguage, n as liquid, r as liquidCompletionSource, t as closePercentBrace } from "./dist-Dh3wkoyH.js";
|
|
6
|
-
export {
|
|
7
|
-
liquid
|
|
8
|
-
};
|
package/dist/dist-Cfo5EE2t.js
DELETED
package/dist/dist-CjivSDvN.js
DELETED
package/dist/dist-Cqwx-MH7.js
DELETED
package/dist/dist-DbpcoFAV.js
DELETED
package/dist/dist-FUNenbiQ.js
DELETED
package/dist/dist-zhSud5X3.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import "./react-DA-nE2FX.js";
|
|
2
|
-
import "./jsx-runtime-COBk7ree.js";
|
|
3
|
-
import "./vega-loader.browser-3_z8GoFC.js";
|
|
4
|
-
import { n as q, t as j } from "./react-vega-Dh6-UKKe.js";
|
|
5
|
-
import "./defaultLocale-BpsHxBd7.js";
|
|
6
|
-
import "./defaultLocale-DoeErsX2.js";
|
|
7
|
-
export {
|
|
8
|
-
q as VegaEmbed
|
|
9
|
-
};
|
package/dist/stex-ChDHQs3R.js
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
-
|
|
3
|
-
import { describe, expect, it } from "vitest";
|
|
4
|
-
import { seedFromFilter } from "../column-header";
|
|
5
|
-
import { Filter } from "../filters";
|
|
6
|
-
|
|
7
|
-
describe("seedFromFilter", () => {
|
|
8
|
-
it("returns empty defaults when there is no filter", () => {
|
|
9
|
-
expect(seedFromFilter(undefined)).toEqual({
|
|
10
|
-
values: [],
|
|
11
|
-
operator: "in",
|
|
12
|
-
});
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
it("seeds values from an `in` select filter", () => {
|
|
16
|
-
const filter = Filter.select({
|
|
17
|
-
options: ["Flying", "Ground"],
|
|
18
|
-
operator: "in",
|
|
19
|
-
});
|
|
20
|
-
expect(seedFromFilter(filter)).toEqual({
|
|
21
|
-
values: ["Flying", "Ground"],
|
|
22
|
-
operator: "in",
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
it("preserves `not_in` so reapplying does not silently flip to `in`", () => {
|
|
27
|
-
const filter = Filter.select({
|
|
28
|
-
options: ["Fire"],
|
|
29
|
-
operator: "not_in",
|
|
30
|
-
});
|
|
31
|
-
expect(seedFromFilter(filter)).toEqual({
|
|
32
|
-
values: ["Fire"],
|
|
33
|
-
operator: "not_in",
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
it("returns a fresh array (callers may mutate without affecting the filter)", () => {
|
|
38
|
-
const options = ["a", "b"];
|
|
39
|
-
const filter = Filter.select({ options, operator: "in" });
|
|
40
|
-
const seeded = seedFromFilter(filter);
|
|
41
|
-
seeded.values.push("c");
|
|
42
|
-
expect(options).toEqual(["a", "b"]);
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
it("ignores non-select filters and falls back to defaults", () => {
|
|
46
|
-
expect(
|
|
47
|
-
seedFromFilter(Filter.text({ text: "abc", operator: "equals" })),
|
|
48
|
-
).toEqual({
|
|
49
|
-
values: [],
|
|
50
|
-
operator: "in",
|
|
51
|
-
});
|
|
52
|
-
expect(
|
|
53
|
-
seedFromFilter(Filter.number({ operator: "between", min: 0, max: 10 })),
|
|
54
|
-
).toEqual({
|
|
55
|
-
values: [],
|
|
56
|
-
operator: "in",
|
|
57
|
-
});
|
|
58
|
-
expect(
|
|
59
|
-
seedFromFilter(Filter.boolean({ value: true, operator: "is_true" })),
|
|
60
|
-
).toEqual({
|
|
61
|
-
values: [],
|
|
62
|
-
operator: "in",
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
});
|