@marimo-team/islands 0.24.1-dev116 → 0.24.1-dev119

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 (47) hide show
  1. package/dist/{ConnectedDataExplorerComponent-BabDOEkd.js → ConnectedDataExplorerComponent-qIKbwYin.js} +4 -4
  2. package/dist/{ErrorBoundary-DXp6EXOC.js → ErrorBoundary-CR-ZQN_c.js} +1 -1
  3. package/dist/assets/__vite-browser-external-BdKGjRZ4.js +1 -0
  4. package/dist/assets/{worker-C3TCEtlU.js → worker-DlIBfp9S.js} +2 -2
  5. package/dist/{chat-ui-B2KTPWqm.js → chat-ui-DttQ-5Ut.js} +6 -6
  6. package/dist/{common-mAFq987V.js → common-B2pVJVWJ.js} +11 -13
  7. package/dist/{dropdown-menu-D1s8H8Ow.js → dropdown-menu-DhCfcscX.js} +1 -1
  8. package/dist/{formats-DrWM-ouO.js → formats-CJMVUfb3.js} +1 -1
  9. package/dist/{glide-data-editor-B-3cUJQd.js → glide-data-editor-sPZ8fUFn.js} +3 -3
  10. package/dist/{html-to-image-DqqHcuV2.js → html-to-image-BTYnN4ev.js} +5 -5
  11. package/dist/main.js +19 -19
  12. package/dist/{mermaid-DWMOBSe8.js → mermaid-BsHdQeQf.js} +2 -2
  13. package/dist/{process-output-D5dqSIGW.js → process-output-CsALk6tp.js} +1 -1
  14. package/dist/{reveal-component-DU6Wrhzv.js → reveal-component-CiaqFa0B.js} +4 -4
  15. package/dist/{spec-DzTo7SI8.js → spec-CutWdqo3.js} +1 -1
  16. package/dist/style.css +1 -1
  17. package/dist/{toDate-Cq6SCTVJ.js → toDate-D-Rx3ux5.js} +1 -1
  18. package/dist/{useAsyncData-DqlulK9M.js → useAsyncData-CH6-CgJF.js} +1 -1
  19. package/dist/{useDeepCompareMemoize-Ceu-LMdC.js → useDeepCompareMemoize-JC87C_jO.js} +1 -1
  20. package/dist/{useLifecycle-DmYfrWCI.js → useLifecycle-B4RGlyf0.js} +1 -1
  21. package/dist/{useTheme-CWrCsZgw.js → useTheme-CVJ0UOf2.js} +1 -0
  22. package/dist/{vega-component-Dzo_03Dh.js → vega-component-D-IXRnlx.js} +5 -5
  23. package/package.json +1 -1
  24. package/src/components/ai/ai-provider-icon.tsx +2 -2
  25. package/src/components/ai/ai-utils.ts +1 -1
  26. package/src/components/app-config/ai-config.tsx +33 -37
  27. package/src/components/app-config/user-config-form.tsx +1 -1
  28. package/src/components/data-table/renderers.tsx +2 -6
  29. package/src/components/editor/file-tree/__tests__/file-explorer-navigation.test.tsx +832 -0
  30. package/src/components/editor/file-tree/__tests__/file-viewer.test.tsx +27 -0
  31. package/src/components/editor/file-tree/__tests__/requesting-tree.test.ts +130 -0
  32. package/src/components/editor/file-tree/file-browser-row.tsx +82 -0
  33. package/src/components/editor/file-tree/file-explorer.tsx +377 -159
  34. package/src/components/editor/file-tree/file-operations.tsx +1 -1
  35. package/src/components/editor/file-tree/file-search-results.tsx +142 -0
  36. package/src/components/editor/file-tree/file-tree-row.tsx +40 -0
  37. package/src/components/editor/file-tree/file-viewer.tsx +2 -1
  38. package/src/components/editor/file-tree/requesting-tree.tsx +162 -32
  39. package/src/components/editor/file-tree/use-file-search.ts +142 -0
  40. package/src/components/editor/file-tree/use-hover-expand.ts +34 -0
  41. package/src/components/ui/links.tsx +2 -1
  42. package/src/core/ai/ids/__tests__/ids.test.ts +0 -8
  43. package/src/core/ai/ids/ids.ts +1 -1
  44. package/src/core/config/config-schema.ts +1 -0
  45. package/src/core/network/__tests__/requests-toasting.test.tsx +14 -0
  46. package/src/core/network/requests-toasting.tsx +1 -1
  47. package/dist/assets/__vite-browser-external-Cf4O9gnt.js +0 -1
@@ -2,7 +2,7 @@ import { t as e } from "./rolldown-runtime-Cb76FRpK.js";
2
2
  import { g as t } from "./button-CKBkqR9J.js";
3
3
  import { t as n } from "./compiler-runtime-CAH9RLw2.js";
4
4
  import { u as r } from "./dist-3_o3T78I.js";
5
- import { E as i, _ as a, a as o, b as s } from "./useTheme-CWrCsZgw.js";
5
+ import { E as i, _ as a, a as o, b as s } from "./useTheme-CVJ0UOf2.js";
6
6
  import { t as c } from "./invariant-DLmrl-hA.js";
7
7
  var l = r("circle-question-mark", [
8
8
  ["circle", {
@@ -1,7 +1,7 @@
1
1
  import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
2
2
  import { t } from "./react-DMWcHin-.js";
3
3
  import { t as n } from "./compiler-runtime-CAH9RLw2.js";
4
- import { j as r } from "./useTheme-CWrCsZgw.js";
4
+ import { j as r } from "./useTheme-CVJ0UOf2.js";
5
5
  import { t as i } from "./invariant-DLmrl-hA.js";
6
6
  //#region src/hooks/useAsyncData.ts
7
7
  var a = n(), o = /* @__PURE__ */ e(t(), 1), s = {
@@ -1,6 +1,6 @@
1
1
  import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
2
2
  import { t } from "./react-DMWcHin-.js";
3
- import { A as n } from "./useTheme-CWrCsZgw.js";
3
+ import { A as n } from "./useTheme-CVJ0UOf2.js";
4
4
  //#region src/hooks/useDeepCompareMemoize.ts
5
5
  var r = /* @__PURE__ */ e(t(), 1);
6
6
  function i(e) {
@@ -4,7 +4,7 @@ import { t as i } from "./react-DMWcHin-.js";
4
4
  import { t as a } from "./compiler-runtime-CAH9RLw2.js";
5
5
  import { u as o } from "./dist-3_o3T78I.js";
6
6
  import { t as s } from "./jsx-runtime-CpoKNRgu.js";
7
- import { E as c, w as l } from "./useTheme-CWrCsZgw.js";
7
+ import { E as c, w as l } from "./useTheme-CVJ0UOf2.js";
8
8
  var u = o("calendar", [
9
9
  ["path", {
10
10
  d: "M8 2v4",
@@ -618,6 +618,7 @@ var Ie = [
618
618
  inline_tooltip: f().prefault(!1),
619
619
  allow_provider_config: f().prefault(!0),
620
620
  open_ai: q.optional(),
621
+ github: q.optional(),
621
622
  anthropic: q.optional(),
622
623
  google: q.optional(),
623
624
  ollama: q.optional(),
@@ -2,20 +2,20 @@ import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
2
2
  import { g as t, h as n, m as r, o as i } from "./button-CKBkqR9J.js";
3
3
  import { t as a } from "./react-DMWcHin-.js";
4
4
  import { t as o } from "./compiler-runtime-CAH9RLw2.js";
5
- import { c as s, v as c } from "./toDate-Cq6SCTVJ.js";
5
+ import { c as s, v as c } from "./toDate-D-Rx3ux5.js";
6
6
  import { t as l } from "./jsx-runtime-CpoKNRgu.js";
7
7
  import { n as u } from "./error-banner-WDhUzJyg.js";
8
8
  import { t as d } from "./tooltip-Dt77sBeT.js";
9
9
  import { t as f } from "./debounce-C3jyATpc.js";
10
- import { j as p, n as ee } from "./useTheme-CWrCsZgw.js";
10
+ import { j as p, n as ee } from "./useTheme-CVJ0UOf2.js";
11
11
  import { c as m } from "./arrays-CN1djC4k.js";
12
12
  import { t as te } from "./objects-CzUgoMIF.js";
13
- import { t as h } from "./useAsyncData-DqlulK9M.js";
14
- import { a as ne, i as re, n as ie, t as g } from "./formats-DrWM-ouO.js";
13
+ import { t as h } from "./useAsyncData-CH6-CgJF.js";
14
+ import { a as ne, i as re, n as ie, t as g } from "./formats-CJMVUfb3.js";
15
15
  import { A as ae, n as oe } from "./vega-loader.browser-DEggZzni.js";
16
16
  import { t as se } from "./react-vega-DSD5aT7_.js";
17
17
  import { a as ce, n as _ } from "./loader-VZ__bv4g.js";
18
- import { t as le } from "./useDeepCompareMemoize-Ceu-LMdC.js";
18
+ import { t as le } from "./useDeepCompareMemoize-JC87C_jO.js";
19
19
  import { t as ue } from "./semaphore-89jsoHtS.js";
20
20
  import { t as de } from "./use-vega-container-remeasure-DUW4tRxq.js";
21
21
  //#region src/plugins/impl/vega/fix-relative-url.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marimo-team/islands",
3
- "version": "0.24.1-dev116",
3
+ "version": "0.24.1-dev119",
4
4
  "main": "dist/main.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -5,8 +5,8 @@ import BedrockIcon from "@marimo-team/llm-info/icons/aws.svg?inline";
5
5
  import AzureIcon from "@marimo-team/llm-info/icons/azure.svg?inline";
6
6
  import CursorIcon from "@marimo-team/llm-info/icons/cursor.svg?inline";
7
7
  import DeepseekIcon from "@marimo-team/llm-info/icons/deepseek.svg?inline";
8
- import GitHubIcon from "@marimo-team/llm-info/icons/github.svg?inline";
9
8
  import GeminiIcon from "@marimo-team/llm-info/icons/googlegemini.svg?inline";
9
+ import GitHubIcon from "@marimo-team/llm-info/icons/github.svg?inline";
10
10
  import OllamaIcon from "@marimo-team/llm-info/icons/ollama.svg?inline";
11
11
  import OpenAIIcon from "@marimo-team/llm-info/icons/openai.svg?inline";
12
12
  import OpencodeIcon from "@marimo-team/llm-info/icons/opencode-logo-light.svg?inline";
@@ -21,6 +21,7 @@ import type { ExternalAgentId } from "../chat/acp/state";
21
21
 
22
22
  const icons: Record<ProviderId | ExternalAgentId, string> = {
23
23
  openai: OpenAIIcon,
24
+ github: GitHubIcon,
24
25
  anthropic: AnthropicIcon,
25
26
  claude: AnthropicIcon,
26
27
  gemini: GeminiIcon,
@@ -30,7 +31,6 @@ const icons: Record<ProviderId | ExternalAgentId, string> = {
30
31
  azure: AzureIcon,
31
32
  bedrock: BedrockIcon,
32
33
  deepseek: DeepseekIcon,
33
- github: GitHubIcon,
34
34
  openrouter: OpenRouterIcon,
35
35
  wandb: WandbIcon,
36
36
  "opencode-go": OpencodeIcon,
@@ -15,9 +15,9 @@ type CredentialChecker = (ai: AiConfig | undefined) => boolean;
15
15
  */
16
16
  const CREDENTIAL_CHECKERS: Record<KnownProviderId, CredentialChecker> = {
17
17
  openai: (ai) => Boolean(ai?.open_ai?.api_key),
18
+ github: (ai) => Boolean(ai?.github?.api_key),
18
19
  anthropic: (ai) => Boolean(ai?.anthropic?.api_key),
19
20
  google: (ai) => Boolean(ai?.google?.api_key),
20
- github: (ai) => Boolean(ai?.github?.api_key),
21
21
  openrouter: (ai) => Boolean(ai?.openrouter?.api_key),
22
22
  azure: (ai) => Boolean(ai?.azure?.api_key && ai?.azure?.base_url),
23
23
  wandb: (ai) => Boolean(ai?.wandb?.api_key),
@@ -65,7 +65,6 @@ import {
65
65
  AccordionItem,
66
66
  AccordionTrigger,
67
67
  } from "../ui/accordion";
68
- import { Alert, AlertDescription } from "../ui/alert";
69
68
  import { Button } from "../ui/button";
70
69
  import { Checkbox } from "../ui/checkbox";
71
70
  import { DropdownMenuSeparator } from "../ui/dropdown-menu";
@@ -969,6 +968,39 @@ export const AiProvidersConfig: React.FC<AiConfigProps> = ({
969
968
  />
970
969
  </AccordionFormItem>
971
970
 
971
+ <AccordionFormItem
972
+ title="GitHub Copilot"
973
+ provider="github"
974
+ isConfigured={hasValue("ai.github.api_key")}
975
+ >
976
+ <ApiKey
977
+ form={form}
978
+ config={config}
979
+ name="ai.github.api_key"
980
+ placeholder="gho_..."
981
+ testId="ai-github-copilot-api-key-input"
982
+ description={
983
+ <>
984
+ Your GitHub OAuth token. Run{" "}
985
+ <Kbd className="inline">gh auth token</Kbd> after you sign in
986
+ with the GitHub CLI. A GitHub Copilot subscription is required.
987
+ See the{" "}
988
+ <ExternalLink href="https://pydantic.dev/docs/ai/models/github-copilot/">
989
+ authentication guide
990
+ </ExternalLink>
991
+ .
992
+ </>
993
+ }
994
+ />
995
+ <BaseUrl
996
+ form={form}
997
+ config={config}
998
+ name="ai.github.base_url"
999
+ placeholder="https://api.githubcopilot.com"
1000
+ testId="ai-github-copilot-base-url-input"
1001
+ />
1002
+ </AccordionFormItem>
1003
+
972
1004
  <AccordionFormItem
973
1005
  title="Anthropic"
974
1006
  provider="anthropic"
@@ -1029,42 +1061,6 @@ export const AiProvidersConfig: React.FC<AiConfigProps> = ({
1029
1061
  />
1030
1062
  </AccordionFormItem>
1031
1063
 
1032
- <AccordionFormItem
1033
- title="GitHub"
1034
- provider="github"
1035
- isConfigured={hasValue("ai.github.api_key")}
1036
- >
1037
- <Alert variant="warning" className="py-1.5 px-3 text-xs">
1038
- <AlertDescription>
1039
- Free tier models have low token limits which can cause errors with
1040
- larger prompts.{" "}
1041
- <ExternalLink href="https://docs.github.com/en/github-models/prototyping-with-ai-models#rate-limits">
1042
- Learn more
1043
- </ExternalLink>
1044
- </AlertDescription>
1045
- </Alert>
1046
- <ApiKey
1047
- form={form}
1048
- config={config}
1049
- name="ai.github.api_key"
1050
- placeholder="gho_..."
1051
- testId="ai-github-api-key-input"
1052
- description={
1053
- <>
1054
- Your GitHub API token from{" "}
1055
- <Kbd className="inline">gh auth token</Kbd>.
1056
- </>
1057
- }
1058
- />
1059
- <BaseUrl
1060
- form={form}
1061
- config={config}
1062
- name="ai.github.base_url"
1063
- placeholder="https://models.github.ai/inference"
1064
- testId="ai-github-base-url-input"
1065
- />
1066
- </AccordionFormItem>
1067
-
1068
1064
  <AccordionFormItem
1069
1065
  title="OpenRouter"
1070
1066
  provider="openrouter"
@@ -1304,7 +1304,7 @@ export const UserConfigForm: React.FC = () => {
1304
1304
  <IsOverridden override={override} />
1305
1305
  <FormDescription>
1306
1306
  Enable experimental external agents such as Claude Code and
1307
- Gemini CLI. Learn more in the{" "}
1307
+ Codex. Learn more in the{" "}
1308
1308
  <ExternalLink href="https://docs.marimo.io/guides/editor_features/agents/">
1309
1309
  docs
1310
1310
  </ExternalLink>
@@ -71,11 +71,7 @@ export function renderTableHeader<TData>(
71
71
  {renderHeaderGroup(table.getCenterHeaderGroups())}
72
72
  {renderHeaderGroup(table.getRightHeaderGroups())}
73
73
  {table.getAllColumns().length <= AUTO_WIDTH_MAX_COLUMNS && (
74
- <th
75
- className="w-full border-0"
76
- aria-hidden="true"
77
- role="presentation"
78
- />
74
+ <th className="w-full border-0" aria-hidden="true" />
79
75
  )}
80
76
  </TableRow>
81
77
  </TableHeader>
@@ -217,7 +213,7 @@ export const DataTableBody = <TData,>({
217
213
  {renderCells(row.getCenterVisibleCells())}
218
214
  {renderCells(row.getRightVisibleCells())}
219
215
  {columns.length <= AUTO_WIDTH_MAX_COLUMNS && (
220
- <td className="border-0" aria-hidden="true" role="presentation" />
216
+ <td className="border-0" aria-hidden="true" />
221
217
  )}
222
218
  </TableRow>
223
219
  );