@keboola/design 11.2.0 → 11.3.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.
- package/AGENTS.md +25 -14
- package/CHANGELOG.md +254 -0
- package/COMPONENT-API.md +1 -1
- package/dist/{AIKit-DiS0CVOW.js → AIKit-DaFT7p92.js} +23 -22
- package/dist/AIKit-DaFT7p92.js.map +1 -0
- package/dist/{Alert-DfZq9kGe.js → Alert-CseY3yAj.js} +3 -3
- package/dist/{Alert-DfZq9kGe.js.map → Alert-CseY3yAj.js.map} +1 -1
- package/dist/{AlertModal-Dp_XuJBW.js → AlertModal-DQAGpsEy.js} +3 -3
- package/dist/{AlertModal-Dp_XuJBW.js.map → AlertModal-DQAGpsEy.js.map} +1 -1
- package/dist/{AppShell-B5GQN6Zs.js → AppShell-BUoxM3fv.js} +29 -10
- package/dist/AppShell-BUoxM3fv.js.map +1 -0
- package/dist/{BrandEditor-DyzgfVkl.js → BrandEditor-BnTLMRMp.js} +6 -6
- package/dist/{BrandEditor-DyzgfVkl.js.map → BrandEditor-BnTLMRMp.js.map} +1 -1
- package/dist/{BrandLogo-CJkRd0F8.js → BrandLogo-V2pRUAeO.js} +2 -2
- package/dist/{BrandLogo-CJkRd0F8.js.map → BrandLogo-V2pRUAeO.js.map} +1 -1
- package/dist/{Breadcrumb-Frst8MTA.js → Breadcrumb-CQTPn_KB.js} +3 -3
- package/dist/{Breadcrumb-Frst8MTA.js.map → Breadcrumb-CQTPn_KB.js.map} +1 -1
- package/dist/{Button-6xBX0nNl.js → Button-CPsEQuTN.js} +2 -2
- package/dist/{Button-6xBX0nNl.js.map → Button-CPsEQuTN.js.map} +1 -1
- package/dist/{Card-BAoZ35CV.js → Card-Cd5HSBmv.js} +2 -2
- package/dist/{Card-BAoZ35CV.js.map → Card-Cd5HSBmv.js.map} +1 -1
- package/dist/{Checkbox-GJ8-srt4.js → Checkbox-5VNCcV7E.js} +3 -3
- package/dist/{Checkbox-GJ8-srt4.js.map → Checkbox-5VNCcV7E.js.map} +1 -1
- package/dist/{Clipboard-CBJZiviP.js → Clipboard-B7rckqV_.js} +2 -2
- package/dist/{Clipboard-CBJZiviP.js.map → Clipboard-B7rckqV_.js.map} +1 -1
- package/dist/{ClipboardButton-ClcluT0C.js → ClipboardButton-CQ6Aewpg.js} +3 -3
- package/dist/{ClipboardButton-ClcluT0C.js.map → ClipboardButton-CQ6Aewpg.js.map} +1 -1
- package/dist/{CodeEditor-DyaN-Ij2.js → CodeEditor-CUse8znx.js} +237 -95
- package/dist/CodeEditor-CUse8znx.js.map +1 -0
- package/dist/{ColorInput-B8z4j4Y_.js → ColorInput-Q1D9Vcc_.js} +3 -3
- package/dist/{ColorInput-B8z4j4Y_.js.map → ColorInput-Q1D9Vcc_.js.map} +1 -1
- package/dist/{ColorModeSwitch-dZFZyqy1.js → ColorModeSwitch-B5PXCVqB.js} +3 -3
- package/dist/{ColorModeSwitch-dZFZyqy1.js.map → ColorModeSwitch-B5PXCVqB.js.map} +1 -1
- package/dist/{Combobox-Dgm6Z4ib.js → Combobox-CyoRA7oY.js} +5 -5
- package/dist/Combobox-CyoRA7oY.js.map +1 -0
- package/dist/{Command-C0aZfVTq.js → Command-Ds68v2rX.js} +3 -3
- package/dist/{Command-C0aZfVTq.js.map → Command-Ds68v2rX.js.map} +1 -1
- package/dist/{CopyField-BJ96zvXs.js → CopyField-DI66uY_g.js} +2 -2
- package/dist/{CopyField-BJ96zvXs.js.map → CopyField-DI66uY_g.js.map} +1 -1
- package/dist/{DateInput-B3UdzRfW.js → DateInput-BPj2pzsn.js} +4 -4
- package/dist/{DateInput-B3UdzRfW.js.map → DateInput-BPj2pzsn.js.map} +1 -1
- package/dist/{DatePicker-Dw3DpbUh.js → DatePicker-DyEGuW9m.js} +2 -2
- package/dist/{DatePicker-Dw3DpbUh.js.map → DatePicker-DyEGuW9m.js.map} +1 -1
- package/dist/{DateRangeInput-DTuySEiq.js → DateRangeInput-u9DxNbHW.js} +4 -4
- package/dist/{DateRangeInput-DTuySEiq.js.map → DateRangeInput-u9DxNbHW.js.map} +1 -1
- package/dist/{DateRangePicker-DCmMHg4s.js → DateRangePicker-CYYhX6S7.js} +6 -6
- package/dist/{DateRangePicker-DCmMHg4s.js.map → DateRangePicker-CYYhX6S7.js.map} +1 -1
- package/dist/{DropdownMenu-t90tVw6l.js → DropdownMenu-DpMEcyCq.js} +2 -2
- package/dist/{DropdownMenu-t90tVw6l.js.map → DropdownMenu-DpMEcyCq.js.map} +1 -1
- package/dist/{FieldItem-D-h1NeBo.js → FieldItem-qQKGU9lF.js} +3 -3
- package/dist/{FieldItem-D-h1NeBo.js.map → FieldItem-qQKGU9lF.js.map} +1 -1
- package/dist/{FieldItem-CAPj9lj3.d.ts → FieldItem-vhIJW4pj.d.ts} +2 -10
- package/dist/{FileUpload-BRv0TaZk.js → FileUpload-C336MVnU.js} +2 -2
- package/dist/{FileUpload-BRv0TaZk.js.map → FileUpload-C336MVnU.js.map} +1 -1
- package/dist/{Form-DHvcFoEi.js → Form-CTygENDc.js} +8 -8
- package/dist/{Form-DHvcFoEi.js.map → Form-CTygENDc.js.map} +1 -1
- package/dist/{FormGroup-C41n65cE.js → FormGroup-BnwP0jNu.js} +3 -3
- package/dist/{FormGroup-C41n65cE.js.map → FormGroup-BnwP0jNu.js.map} +1 -1
- package/dist/{FullScreenModal-Cb3PGgh4.js → FullScreenModal-j-M4aPFd.js} +3 -3
- package/dist/{FullScreenModal-Cb3PGgh4.js.map → FullScreenModal-j-M4aPFd.js.map} +1 -1
- package/dist/{HoverCard-WfDkLK1s.js → HoverCard-yQq-O49c.js} +2 -2
- package/dist/{HoverCard-WfDkLK1s.js.map → HoverCard-yQq-O49c.js.map} +1 -1
- package/dist/{InputGroup-CdTq8H7c.js → InputGroup-D7zlmqPB.js} +3 -3
- package/dist/{InputGroup-CdTq8H7c.js.map → InputGroup-D7zlmqPB.js.map} +1 -1
- package/dist/{Kbd-CxHAo1oo.js → Kbd-D6LpR7G2.js} +2 -2
- package/dist/{Kbd-CxHAo1oo.js.map → Kbd-D6LpR7G2.js.map} +1 -1
- package/dist/{MermaidDiagram-ChL3WIQT.js → MermaidDiagram-JlvuGcY-.js} +6 -87
- package/dist/MermaidDiagram-JlvuGcY-.js.map +1 -0
- package/dist/{Modal-wqG8nJiK.js → Modal-o4ATIexE.js} +3 -3
- package/dist/{Modal-wqG8nJiK.js.map → Modal-o4ATIexE.js.map} +1 -1
- package/dist/{MultiActionButtonGroup-BiIIubiL.js → MultiActionButtonGroup-GTeFk-L8.js} +3 -3
- package/dist/{MultiActionButtonGroup-BiIIubiL.js.map → MultiActionButtonGroup-GTeFk-L8.js.map} +1 -1
- package/dist/{Navbar-BfaPeLUL.js → Navbar-CAQs4BZz.js} +2 -2
- package/dist/{Navbar-BfaPeLUL.js.map → Navbar-CAQs4BZz.js.map} +1 -1
- package/dist/{PageToolbar-OQg3mPF-.js → PageToolbar-bG2YtSa3.js} +3 -3
- package/dist/{PageToolbar-OQg3mPF-.js.map → PageToolbar-bG2YtSa3.js.map} +1 -1
- package/dist/{Pagination-Cjfda8KG.js → Pagination-BB3X7ooY.js} +2 -2
- package/dist/{Pagination-Cjfda8KG.js.map → Pagination-BB3X7ooY.js.map} +1 -1
- package/dist/{Popconfirm-D7_vfxFd.js → Popconfirm-C2Ky5hJO.js} +3 -3
- package/dist/{Popconfirm-D7_vfxFd.js.map → Popconfirm-C2Ky5hJO.js.map} +1 -1
- package/dist/{Popover-CzeHjvrB.js → Popover-DsbI2HKu.js} +2 -2
- package/dist/{Popover-CzeHjvrB.js.map → Popover-DsbI2HKu.js.map} +1 -1
- package/dist/{RadioGroup-sIveSsNa.js → RadioGroup-BMxuZEbT.js} +3 -3
- package/dist/{RadioGroup-sIveSsNa.js.map → RadioGroup-BMxuZEbT.js.map} +1 -1
- package/dist/{Search-3UiqNZRj.js → Search-DFeECt5D.js} +2 -2
- package/dist/{Search-3UiqNZRj.js.map → Search-DFeECt5D.js.map} +1 -1
- package/dist/{SearchInput-C7dF_Ir-.js → SearchInput-CCpdUego.js} +3 -3
- package/dist/{SearchInput-C7dF_Ir-.js.map → SearchInput-CCpdUego.js.map} +1 -1
- package/dist/{SectionNav-8NoTOKO8.js → SectionNav-Bw_MVL0_.js} +4 -4
- package/dist/{SectionNav-8NoTOKO8.js.map → SectionNav-Bw_MVL0_.js.map} +1 -1
- package/dist/{Select-Is0VkePH.js → Select-D6IZVvwL.js} +5 -5
- package/dist/Select-D6IZVvwL.js.map +1 -0
- package/dist/{Sheet-Dw9BDvjI.js → Sheet-BIzs2K2H.js} +3 -3
- package/dist/{Sheet-Dw9BDvjI.js.map → Sheet-BIzs2K2H.js.map} +1 -1
- package/dist/{Sidebar-Dcb4rinA.js → Sidebar-r1TW4g_b.js} +5 -5
- package/dist/{Sidebar-Dcb4rinA.js.map → Sidebar-r1TW4g_b.js.map} +1 -1
- package/dist/{Slider-BOPfMOMm.js → Slider-CjxyfEty.js} +3 -3
- package/dist/{Slider-BOPfMOMm.js.map → Slider-CjxyfEty.js.map} +1 -1
- package/dist/{Switch-CX2A0v50.js → Switch-BueTV03C.js} +2 -2
- package/dist/{Switch-CX2A0v50.js.map → Switch-BueTV03C.js.map} +1 -1
- package/dist/{Tabs-UMQuDoW8.js → Tabs-l72-WuhK.js} +2 -2
- package/dist/{Tabs-UMQuDoW8.js.map → Tabs-l72-WuhK.js.map} +1 -1
- package/dist/{TextInput-CMuN1WfY.js → TextInput-DhdRk8qm.js} +3 -3
- package/dist/{TextInput-CMuN1WfY.js.map → TextInput-DhdRk8qm.js.map} +1 -1
- package/dist/{ThemeProvider-QncUrfJn.js → ThemeProvider-DZfGdf1v.js} +5 -4
- package/dist/{ThemeProvider-QncUrfJn.js.map → ThemeProvider-DZfGdf1v.js.map} +1 -1
- package/dist/{TimePicker-D9zktB8A.js → TimePicker-B6d2rAbX.js} +2 -2
- package/dist/{TimePicker-D9zktB8A.js.map → TimePicker-B6d2rAbX.js.map} +1 -1
- package/dist/{Toast-DQSbs3oA.js → Toast-CxXUulYN.js} +2 -2
- package/dist/{Toast-DQSbs3oA.js.map → Toast-CxXUulYN.js.map} +1 -1
- package/dist/{ZoomableSvg-CZEu6sAq.js → ZoomableSvg-CNIzRHKH.js} +4 -4
- package/dist/{ZoomableSvg-CZEu6sAq.js.map → ZoomableSvg-CNIzRHKH.js.map} +1 -1
- package/dist/{context-KxxeMHbR.js → context-BrNtMc1H.js} +3 -33
- package/dist/context-BrNtMc1H.js.map +1 -0
- package/dist/defaults-CTfvj2KB.js +34 -0
- package/dist/defaults-CTfvj2KB.js.map +1 -0
- package/dist/editors.d.ts +12 -2
- package/dist/editors.js +20 -12
- package/dist/editors.js.map +1 -1
- package/dist/flint.d.ts +15 -0
- package/dist/flint.js +212 -0
- package/dist/flint.js.map +1 -0
- package/dist/index.d.ts +49 -7
- package/dist/index.js +57 -55
- package/dist/internal/blocks/AIKit.js +1 -1
- package/dist/internal/blocks/AppShell.js +2 -2
- package/dist/internal/blocks/BrandEditor.js +1 -1
- package/dist/internal/blocks/ChartPanel.js +1 -1
- package/dist/internal/blocks/ClipboardButton.js +1 -1
- package/dist/internal/blocks/ColorInput.js +1 -1
- package/dist/internal/blocks/ColorModeSwitch.js +1 -1
- package/dist/internal/blocks/Command.js +1 -1
- package/dist/internal/blocks/CopyField.js +1 -1
- package/dist/internal/blocks/DateInput.js +1 -1
- package/dist/internal/blocks/DateRangeInput.js +1 -1
- package/dist/{DiagramSkeleton-lwBS2YBa.js → internal/blocks/DiagramShared/DiagramSkeleton.js} +3 -3
- package/dist/internal/blocks/DiagramShared/DiagramSkeleton.js.map +1 -0
- package/dist/internal/blocks/EmptyConfigurationActionCard.js +1 -1
- package/dist/internal/blocks/ErrorState.js +1 -1
- package/dist/internal/blocks/ExportMenu.js +3 -3
- package/dist/internal/blocks/Form/connectors/MultiComboboxField.js +1 -1
- package/dist/internal/blocks/Form.js +1 -1
- package/dist/internal/blocks/FormGroup.js +1 -1
- package/dist/internal/blocks/MultiActionButtonGroup.js +1 -1
- package/dist/internal/blocks/MultiCombobox.js +4 -3
- package/dist/internal/blocks/MultiCombobox.js.map +1 -1
- package/dist/internal/blocks/NumberInput.js +1 -1
- package/dist/internal/blocks/PageToolbar.js +1 -1
- package/dist/internal/blocks/PasswordInput.js +2 -2
- package/dist/internal/blocks/SearchInput.js +1 -1
- package/dist/internal/blocks/SearchInputWithNavigation.js +3 -3
- package/dist/internal/blocks/SectionNav.js +1 -1
- package/dist/internal/blocks/SplitButton.js +2 -2
- package/dist/internal/blocks/StatCard.js +1 -1
- package/dist/internal/blocks/TextInput.js +1 -1
- package/dist/internal/blocks/Textarea.js +1 -1
- package/dist/internal/blocks/TimeInput.js +3 -3
- package/dist/internal/components/Alert.js +1 -1
- package/dist/internal/components/AlertModal.js +1 -1
- package/dist/internal/components/Avatar.js +1 -1
- package/dist/internal/components/BrandLogo.js +1 -1
- package/dist/internal/components/Breadcrumb.js +1 -1
- package/dist/internal/components/Button.js +1 -1
- package/dist/internal/components/Card.js +1 -1
- package/dist/internal/components/Checkbox.js +1 -1
- package/dist/internal/components/Clipboard.js +1 -1
- package/dist/internal/components/CollapsiblePanel.js +1 -1
- package/dist/internal/components/Combobox.js +1 -1
- package/dist/internal/components/DatePicker.js +1 -1
- package/dist/internal/components/DateRangePicker.js +1 -1
- package/dist/internal/components/DropdownMenu.js +1 -1
- package/dist/internal/components/FileUpload.js +1 -1
- package/dist/internal/components/FullScreenModal.js +1 -1
- package/dist/internal/components/HoverCard.js +1 -1
- package/dist/internal/components/InputGroup.js +1 -1
- package/dist/internal/components/Kbd.js +1 -1
- package/dist/internal/components/Modal.js +1 -1
- package/dist/internal/components/Navbar.js +1 -1
- package/dist/internal/components/Pagination.js +1 -1
- package/dist/internal/components/Popconfirm.js +1 -1
- package/dist/internal/components/Popover.js +1 -1
- package/dist/internal/components/RadioGroup.js +1 -1
- package/dist/internal/components/Search.js +1 -1
- package/dist/internal/components/Select.js +1 -1
- package/dist/internal/components/Sheet.js +1 -1
- package/dist/internal/components/Sidebar.js +1 -1
- package/dist/internal/components/Slider.js +1 -1
- package/dist/internal/components/Switch.js +1 -1
- package/dist/internal/components/Tabs.js +1 -1
- package/dist/internal/components/ThemeProvider.js +3 -2
- package/dist/internal/components/TimePicker.js +1 -1
- package/dist/internal/components/Toast.js +2 -2
- package/dist/internal/components/Tooltip.js +1 -1
- package/dist/internal/components/Truncated.js +16 -8
- package/dist/internal/components/Truncated.js.map +1 -1
- package/dist/internal/components/ZoomableSvg.js +1 -1
- package/dist/internal/utils.js +1 -1
- package/dist/markdown-editor.js +7 -7
- package/dist/mermaid.js +1 -1
- package/dist/rjsf.js +11 -11
- package/dist/{styles-DSUP_-9Z.js → styles-BAFscjSV.js} +4 -3
- package/dist/styles-BAFscjSV.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/svgTransforms-C9njt92h.js +89 -0
- package/dist/svgTransforms-C9njt92h.js.map +1 -0
- package/dist/testing.js +3 -2
- package/dist/testing.js.map +1 -1
- package/dist/{themeTokens-BNg98Mu9.js → themeTokens-7T1AFLhq.js} +13 -6
- package/dist/{themeTokens-BNg98Mu9.js.map → themeTokens-7T1AFLhq.js.map} +1 -1
- package/dist/{toast-CjkURw0M.js → toast-BweSoKn3.js} +3 -3
- package/dist/toast-BweSoKn3.js.map +1 -0
- package/dist/types-BPcAjMG0.d.ts +10 -0
- package/dist/{useColorSchemeState-CYqcUfSH.js → useColorSchemeState-BJEk6esG.js} +2 -2
- package/dist/{useColorSchemeState-CYqcUfSH.js.map → useColorSchemeState-BJEk6esG.js.map} +1 -1
- package/dist/{utils-D0c5VAyF.js → utils-B-g7d_Jb.js} +2 -2
- package/dist/{utils-D0c5VAyF.js.map → utils-B-g7d_Jb.js.map} +1 -1
- package/dist/vega.d.ts +46 -0
- package/dist/vega.js +26 -0
- package/dist/vega.js.map +1 -0
- package/dist/vegaTheme-FBXgAdHK.js +146 -0
- package/dist/vegaTheme-FBXgAdHK.js.map +1 -0
- package/package.json +26 -7
- package/src/styles.css +27 -4
- package/dist/AIKit-DiS0CVOW.js.map +0 -1
- package/dist/AppShell-B5GQN6Zs.js.map +0 -1
- package/dist/CodeEditor-DyaN-Ij2.js.map +0 -1
- package/dist/Combobox-Dgm6Z4ib.js.map +0 -1
- package/dist/DiagramSkeleton-lwBS2YBa.js.map +0 -1
- package/dist/MermaidDiagram-ChL3WIQT.js.map +0 -1
- package/dist/Select-Is0VkePH.js.map +0 -1
- package/dist/context-KxxeMHbR.js.map +0 -1
- package/dist/styles-DSUP_-9Z.js.map +0 -1
- package/dist/toast-CjkURw0M.js.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { cn } from "./classNames-BzrkDnOD.js";
|
|
2
|
-
import { isMac, keyCodes } from "./utils-
|
|
3
|
-
import { useArgoDesign } from "./context-
|
|
2
|
+
import { isMac, keyCodes } from "./utils-B-g7d_Jb.js";
|
|
3
|
+
import { useArgoDesign } from "./context-BrNtMc1H.js";
|
|
4
4
|
import { escapeStringRegexp } from "./escapeStringRegexp-8MxP2knR.js";
|
|
5
|
-
import { ClipboardButton } from "./ClipboardButton-
|
|
5
|
+
import { ClipboardButton } from "./ClipboardButton-CQ6Aewpg.js";
|
|
6
6
|
import { HelpBlock } from "./internal/components/HelpBlock.js";
|
|
7
|
-
import { Kbd } from "./Kbd-
|
|
7
|
+
import { Kbd } from "./Kbd-D6LpR7G2.js";
|
|
8
8
|
import { useStableCallback } from "./internal/hooks/useStableCallback.js";
|
|
9
|
-
import { resolveToken, useThemeAttributes } from "./themeTokens-
|
|
9
|
+
import { resolveToken, useThemeAttributes } from "./themeTokens-7T1AFLhq.js";
|
|
10
10
|
import { useEffect, useLayoutEffect, useMemo, useRef } from "react";
|
|
11
11
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
12
|
import { autocompletion, completeAnyWord } from "@codemirror/autocomplete";
|
|
@@ -23,10 +23,10 @@ import { r } from "@codemirror/legacy-modes/mode/r";
|
|
|
23
23
|
import { shell } from "@codemirror/legacy-modes/mode/shell";
|
|
24
24
|
import { toml } from "@codemirror/legacy-modes/mode/toml";
|
|
25
25
|
import { linter } from "@codemirror/lint";
|
|
26
|
-
import {
|
|
27
|
-
import { githubLightInit } from "@uiw/codemirror-theme-github";
|
|
26
|
+
import { githubDarkInit, githubLightInit } from "@uiw/codemirror-theme-github";
|
|
28
27
|
import { getSqlLanguageSupport } from "@keboola/codemirror-lang-sql";
|
|
29
28
|
import { simpleMode } from "@codemirror/legacy-modes/mode/simple-mode";
|
|
29
|
+
import { tags } from "@lezer/highlight";
|
|
30
30
|
import { Compartment, StateEffect, StateField } from "@codemirror/state";
|
|
31
31
|
//#region src/components/CodeEditor/ButtonToolbar.tsx
|
|
32
32
|
const ButtonToolbar = ({ value, children }) => {
|
|
@@ -344,6 +344,95 @@ const jsonnet = {
|
|
|
344
344
|
return null;
|
|
345
345
|
}
|
|
346
346
|
};
|
|
347
|
+
const DARK_GUTTER_ALPHA = "47";
|
|
348
|
+
/**
|
|
349
|
+
* The two diff fills, per scheme: light keeps the opaque pastel, dark tints the same `500` hue at
|
|
350
|
+
* low alpha over whatever token surface is behind it.
|
|
351
|
+
*
|
|
352
|
+
* - Its own module, importing nothing, so `MergeEditor` can share it without reaching into
|
|
353
|
+
* `CodeEditor/helpers.ts` and pulling the language modes and the CodeMirror runtime with it.
|
|
354
|
+
* - Shared by the unified merge wash in `helpers.ts` and `buildDiffHighlightTheme` in
|
|
355
|
+
* `MergeEditor/decorations.ts`, so the two views cannot drift apart on the alphas.
|
|
356
|
+
* - Callers pass the hue and the pastel; which one is used is this function's business.
|
|
357
|
+
*/
|
|
358
|
+
const buildDiffWash = (scheme) => {
|
|
359
|
+
const dark = scheme === "dark";
|
|
360
|
+
return {
|
|
361
|
+
line: (hue, pastel) => dark ? `${hue}29` : pastel,
|
|
362
|
+
gutter: (hue, pastel) => dark ? `${hue}${DARK_GUTTER_ALPHA}` : pastel
|
|
363
|
+
};
|
|
364
|
+
};
|
|
365
|
+
//#endregion
|
|
366
|
+
//#region src/components/CodeEditor/syntaxPalette.ts
|
|
367
|
+
/**
|
|
368
|
+
* The tag colours layered over the stock github palette, per colour scheme.
|
|
369
|
+
*
|
|
370
|
+
* - Its own module, importing nothing but the tag vocabulary and the ramps, so
|
|
371
|
+
* `scripts/contrast-audit.ts` can measure the palette without pulling the language modes and the
|
|
372
|
+
* CodeMirror runtime into a build script.
|
|
373
|
+
* - Later entries win over the stock rule for the same tag — both `githubLightInit` and
|
|
374
|
+
* `githubDarkInit` concatenate these after their own.
|
|
375
|
+
* - `foreground` is the caller's, because it is a live `--*` token rather than a ramp step: the
|
|
376
|
+
* theme passes `resolveToken('foreground')`, the audit passes the scheme's channel value.
|
|
377
|
+
* - Every ramp step here is a light/dark pair, and each pair is chosen against **two** surfaces —
|
|
378
|
+
* the theme's `background` setting is the page, but `variant="field"` paints on `muted`, which
|
|
379
|
+
* the theme never sees. Ratios in the comments are quoted `background` / `muted`.
|
|
380
|
+
*/
|
|
381
|
+
const buildSyntaxPalette = (scheme, foreground) => {
|
|
382
|
+
const dark = scheme === "dark";
|
|
383
|
+
return [
|
|
384
|
+
{
|
|
385
|
+
tag: [
|
|
386
|
+
tags.name,
|
|
387
|
+
tags.special(tags.string),
|
|
388
|
+
tags.bracket
|
|
389
|
+
],
|
|
390
|
+
color: foreground
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
tag: tags.standard(tags.name),
|
|
394
|
+
color: dark ? colors.purple[300] : colors.purple[600]
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
tag: tags.special(tags.name),
|
|
398
|
+
color: dark ? colors.cyan[300] : colors.cyan[800]
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
tag: tags.string,
|
|
402
|
+
color: dark ? colors.warning[300] : colors.warning[800]
|
|
403
|
+
},
|
|
404
|
+
...dark ? [] : [
|
|
405
|
+
{
|
|
406
|
+
tag: [
|
|
407
|
+
tags.keyword,
|
|
408
|
+
tags.typeName,
|
|
409
|
+
tags.typeOperator
|
|
410
|
+
],
|
|
411
|
+
color: colors.error[550]
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
tag: tags.comment,
|
|
415
|
+
color: colors.neutral[500]
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
tag: tags.quote,
|
|
419
|
+
color: colors.green[900]
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
tag: tags.invalid,
|
|
423
|
+
color: colors.error[700]
|
|
424
|
+
}
|
|
425
|
+
],
|
|
426
|
+
...dark ? [{
|
|
427
|
+
tag: [
|
|
428
|
+
tags.escape,
|
|
429
|
+
tags.url,
|
|
430
|
+
tags.link
|
|
431
|
+
],
|
|
432
|
+
color: colors.blue[300]
|
|
433
|
+
}] : []
|
|
434
|
+
];
|
|
435
|
+
};
|
|
347
436
|
//#endregion
|
|
348
437
|
//#region src/components/CodeEditor/helpers.ts
|
|
349
438
|
const LANGUAGE_MODES = [
|
|
@@ -368,44 +457,61 @@ const LANGUAGE_MODES = [
|
|
|
368
457
|
const isLanguageMode = (mode) => LANGUAGE_MODES.includes(mode);
|
|
369
458
|
const READ_ONLY_EDITOR = "&.cm-editor:has(.cm-content[contenteditable=\"false\"])";
|
|
370
459
|
const EDITABLE_EDITOR = "&.cm-editor:has(.cm-content[contenteditable=\"true\"])";
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
}
|
|
460
|
+
/**
|
|
461
|
+
* Editor chrome and the unified merge (diff) wash.
|
|
462
|
+
*
|
|
463
|
+
* - Chrome surfaces (selection, read-only wash) resolve from live `--*` tokens, so they re-skin
|
|
464
|
+
* with brand and colour scheme. Fallback channels mirror the light-mode token values for SSR /
|
|
465
|
+
* no-provider parity.
|
|
466
|
+
* - Diff colours stay categorical — fixed across brands, because added/removed is meaning, not
|
|
467
|
+
* chrome — but each is a light/dark pair from `buildDiffWash`, shared with
|
|
468
|
+
* `buildDiffHighlightTheme` in `MergeEditor/decorations.ts`.
|
|
469
|
+
* - This wash reaches only `CodeEditor`'s *unified* merge view — the one a `previousValue` turns on.
|
|
470
|
+
* `MergePane` builds its own theme from scratch.
|
|
471
|
+
*/
|
|
472
|
+
const buildBaseThemeStyles = (scheme) => {
|
|
473
|
+
const { line, gutter } = buildDiffWash(scheme);
|
|
474
|
+
const dark = scheme === "dark";
|
|
475
|
+
return {
|
|
476
|
+
"*": { lineHeight: "20px" },
|
|
477
|
+
"*::selection": {
|
|
478
|
+
backgroundColor: resolveToken("primary", "31 143 255"),
|
|
479
|
+
color: `${resolveToken("primary-foreground", "255 255 255")} !important`
|
|
480
|
+
},
|
|
481
|
+
[READ_ONLY_EDITOR]: { backgroundColor: dark ? resolveToken("muted", "38 38 45") : resolveToken("secondary", "226 232 240") },
|
|
482
|
+
[`${READ_ONLY_EDITOR} .cm-gutters`]: { backgroundColor: resolveToken("border", "229 231 235") },
|
|
483
|
+
"&.cm-editor .cm-scroller": { overflowAnchor: "none" },
|
|
484
|
+
"&.cm-editor, &.cm-editor .cm-scroller": {
|
|
485
|
+
minHeight: "100%",
|
|
486
|
+
flexGrow: 1,
|
|
487
|
+
alignItems: "stretch !important",
|
|
488
|
+
outline: "none"
|
|
489
|
+
},
|
|
490
|
+
".cm-gutter.cm-foldGutter": { display: "none !important" },
|
|
491
|
+
".cm-gutter.cm-lineNumbers": {
|
|
492
|
+
paddingLeft: "20px",
|
|
493
|
+
paddingRight: "6px"
|
|
494
|
+
},
|
|
495
|
+
".cm-gutters": { height: "auto" },
|
|
496
|
+
"&[class*=\"cm-merge-\"] .cm-deletedLine": { backgroundColor: line(colors.error[500], colors.error[100]) },
|
|
497
|
+
"&[class*=\"cm-merge-\"] .cm-changedLine": { backgroundColor: line(colors.green[500], colors.green[100]) },
|
|
498
|
+
"&[class*=\"cm-merge-\"] .cm-deletedLineGutter": { backgroundColor: gutter(colors.error[500], colors.error[200]) },
|
|
499
|
+
"&[class*=\"cm-merge-\"] .cm-changedLineGutter": { backgroundColor: gutter(colors.green[500], colors.green[200]) },
|
|
500
|
+
"&[class*=\"cm-merge-\"] .cm-deletedText": { background: gutter(colors.error[500], colors.error[200]) },
|
|
501
|
+
"&[class*=\"cm-merge-\"] .cm-changedText": { background: gutter(colors.green[500], colors.green[200]) },
|
|
502
|
+
"&[class*=\"cm-merge-\"]": { backgroundColor: `${resolveToken("background", "249 250 251")} !important` },
|
|
503
|
+
"&[class*=\"cm-merge-\"] .cm-gutters": { backgroundColor: `${resolveToken("muted", "241 245 249")} !important` },
|
|
504
|
+
".cm-changeGutter": {
|
|
505
|
+
position: "absolute",
|
|
506
|
+
zIndex: -1,
|
|
507
|
+
width: "100%",
|
|
508
|
+
paddingLeft: 0
|
|
509
|
+
},
|
|
510
|
+
"&[class*=\"cm-merge-\"] .cm-changedLine,&[class*=\"cm-merge-\"] .cm-line, &[class*=\"cm-merge-\"] .cm-deletedChunk": { paddingLeft: 0 }
|
|
511
|
+
};
|
|
512
|
+
};
|
|
408
513
|
const ALWAYS_OFF = {
|
|
514
|
+
autocompletion: false,
|
|
409
515
|
drawSelection: false,
|
|
410
516
|
foldGutter: false,
|
|
411
517
|
foldKeymap: false,
|
|
@@ -424,42 +530,50 @@ const buildBasicSetup = (readOnly) => ({
|
|
|
424
530
|
highlightSelectionMatches: false
|
|
425
531
|
} : null
|
|
426
532
|
});
|
|
533
|
+
/**
|
|
534
|
+
* The syntax theme, per colour scheme.
|
|
535
|
+
*
|
|
536
|
+
* - The stock github palette is picked by scheme: `githubDarkInit` under dark, `githubLightInit`
|
|
537
|
+
* otherwise. One palette cannot serve both — the light set scores 1.14:1 to 4.31:1 on the two
|
|
538
|
+
* dark surfaces, so 10 of its 11 colours failed AA there (UT-5194).
|
|
539
|
+
* - `githubDarkInit` also passes `dark: true` to `EditorView.theme`, which sets the
|
|
540
|
+
* `EditorView.darkTheme` facet. That is what makes the `&dark` rules apply — CodeMirror's own
|
|
541
|
+
* base theme (cursor, selection layer, panels, buttons) and ours (`search.ts`,
|
|
542
|
+
* `highlighting.ts`) both key off it, so they follow the scheme without a second signal.
|
|
543
|
+
* - Chrome (surface, gutter, selection, caret) resolves from live `--*` tokens, so it re-skins with
|
|
544
|
+
* the brand too. Fallback channels mirror the light-mode token values, for SSR and jsdom.
|
|
545
|
+
* - `caret` and `selectionMatch` are pinned because the two initialisers disagree on them, and the
|
|
546
|
+
* branch would otherwise change values nothing here chose. The caret follows `foreground`; before
|
|
547
|
+
* the facet was set, CodeMirror's own default painted it black on the dark page, so it was
|
|
548
|
+
* invisible. `selectionMatch` is a 10% `primary` tint, which beats each initialiser's own value
|
|
549
|
+
* on the token it hurts most: 3.82:1 against the light default's 3.29, 5.40:1 against the dark
|
|
550
|
+
* default's 3.57. Any occurrence wash costs contrast — this is the cheapest one, and it is the
|
|
551
|
+
* same in both schemes.
|
|
552
|
+
* - `styles` comes from `buildSyntaxPalette`, which lives apart so the audit script can measure it.
|
|
553
|
+
*
|
|
554
|
+
* Those overrides exist because the github theme paints every `name`-family tag one colour, and in
|
|
555
|
+
* SQL nearly every token is a name — identifiers, function calls and `$variables` all drowned
|
|
556
|
+
* together, and a keyword that doubles as a function (`create or REPLACE`) read as a value
|
|
557
|
+
* (UT-5024). Instead: identifiers and brackets carry no colour, functions and special vars get
|
|
558
|
+
* their own hues, and amber is unique to string literals — in JSON that shifts string values from
|
|
559
|
+
* navy to amber, the one visible non-SQL change.
|
|
560
|
+
*/
|
|
427
561
|
const buildCustomTheme = (scheme) => {
|
|
428
562
|
const foreground = resolveToken("foreground", "30 41 59");
|
|
429
|
-
|
|
430
|
-
return githubLightInit({
|
|
563
|
+
return (scheme === "dark" ? githubDarkInit : githubLightInit)({
|
|
431
564
|
settings: {
|
|
432
565
|
fontFamily: `'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New'`,
|
|
433
566
|
background: resolveToken("background", "249 250 251"),
|
|
434
567
|
foreground,
|
|
568
|
+
caret: foreground,
|
|
435
569
|
gutterBackground: resolveToken("muted", "241 245 249"),
|
|
436
570
|
gutterForeground: resolveToken("muted-foreground", "100 116 139"),
|
|
437
571
|
gutterBorder: "transparent",
|
|
438
572
|
lineHighlight: "transparent",
|
|
439
|
-
selection: resolveToken("primary", "31 143 255")
|
|
573
|
+
selection: resolveToken("primary", "31 143 255"),
|
|
574
|
+
selectionMatch: resolveToken("primary", "31 143 255", .1)
|
|
440
575
|
},
|
|
441
|
-
styles:
|
|
442
|
-
{
|
|
443
|
-
tag: [
|
|
444
|
-
tags.name,
|
|
445
|
-
tags.special(tags.string),
|
|
446
|
-
tags.bracket
|
|
447
|
-
],
|
|
448
|
-
color: foreground
|
|
449
|
-
},
|
|
450
|
-
{
|
|
451
|
-
tag: tags.standard(tags.name),
|
|
452
|
-
color: colors.purple[600]
|
|
453
|
-
},
|
|
454
|
-
{
|
|
455
|
-
tag: tags.special(tags.name),
|
|
456
|
-
color: colors.cyan[700]
|
|
457
|
-
},
|
|
458
|
-
{
|
|
459
|
-
tag: tags.string,
|
|
460
|
-
color: dark ? colors.warning[300] : colors.warning[800]
|
|
461
|
-
}
|
|
462
|
-
]
|
|
576
|
+
styles: buildSyntaxPalette(scheme, foreground)
|
|
463
577
|
});
|
|
464
578
|
};
|
|
465
579
|
const getLanguageMode = (mode) => {
|
|
@@ -524,22 +638,32 @@ const buildJsonLinter = (allowBlankDocument) => {
|
|
|
524
638
|
* variant does. No semantic token holds that grey, and the nearest one
|
|
525
639
|
* (`--muted`) is a few points off — which is the "almost, but not quite, the
|
|
526
640
|
* input next to it" mismatch this preset exists to remove.
|
|
641
|
+
*
|
|
642
|
+
* That ramp is fixed, so the legacy preset needs its own scheme pair — a legacy brand and the dark
|
|
643
|
+
* scheme are independent choices, and `neutral[100]` under dark is a light slab: `foreground` on it
|
|
644
|
+
* is 1.09:1 and the darkest syntax colour 2.69:1. Dark mirrors the same two steps from the other
|
|
645
|
+
* end of the ramp (`800` / `900`, 5.00:1 and 6.14:1 for that colour).
|
|
527
646
|
*/
|
|
528
|
-
const buildInputChrome = (isArgo) =>
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
647
|
+
const buildInputChrome = (isArgo, scheme) => {
|
|
648
|
+
const dark = scheme === "dark";
|
|
649
|
+
const legacySurface = dark ? colors.neutral[800] : colors.neutral[100];
|
|
650
|
+
const legacyReadOnly = dark ? colors.neutral[900] : colors.neutral[150];
|
|
651
|
+
return {
|
|
652
|
+
surface: isArgo ? resolveToken("muted", "241 245 249") : legacySurface,
|
|
653
|
+
borderColor: isArgo ? resolveToken("input", "203 213 225") : legacySurface,
|
|
654
|
+
readOnlySurface: isArgo ? resolveToken("muted", "241 245 249") : legacyReadOnly,
|
|
655
|
+
readOnlyBorderColor: isArgo ? resolveToken("input", "203 213 225") : legacyReadOnly,
|
|
656
|
+
hoverBorderColor: null,
|
|
657
|
+
focusBorderColor: isArgo ? resolveToken("primary", "37 99 235") : resolveToken("ring", "31 143 255"),
|
|
658
|
+
focusRing: `0 0 0 4px ${resolveToken("ring", "31 143 255", isArgo ? .5 : .3)}`,
|
|
659
|
+
radius: isArgo ? "var(--radius-lg, 0.25rem)" : "0.25rem",
|
|
660
|
+
paddingY: isArgo ? "3px" : "5px",
|
|
661
|
+
paddingX: {
|
|
662
|
+
left: "10px",
|
|
663
|
+
right: "14px"
|
|
664
|
+
}
|
|
665
|
+
};
|
|
666
|
+
};
|
|
543
667
|
/** The SQL workspace's notebook cell: a white canvas, not a form control. */
|
|
544
668
|
const buildCanvasChrome = () => ({
|
|
545
669
|
surface: resolveToken("card", "255 255 255"),
|
|
@@ -660,11 +784,28 @@ const searchViewPlugin = ViewPlugin.fromClass(class {
|
|
|
660
784
|
if (state.selectedMatchIndex === void 0) this.lastSelectedIndex = void 0;
|
|
661
785
|
}
|
|
662
786
|
});
|
|
787
|
+
/**
|
|
788
|
+
* Match and current-match fills, per colour scheme.
|
|
789
|
+
*
|
|
790
|
+
* - `&dark` is how a *static* base theme follows the scheme, without becoming a
|
|
791
|
+
* `useThemedExtension` builder and a second entry in its never-evicting cache. It applies
|
|
792
|
+
* whenever the `EditorView.darkTheme` facet is set — see `buildBaseThemeStyles`' callers, which
|
|
793
|
+
* set it explicitly.
|
|
794
|
+
* - Light text is `blue[700]`: 5.42:1 on the fill, and 6.29:1 for white on the current match.
|
|
795
|
+
* - Dark tints `blue[500]` for the plain match, with `blue[200]` text: 11.10:1 on the page surface,
|
|
796
|
+
* 8.86:1 on the `variant="field"` one. The current match keeps a solid `blue[500]` and takes
|
|
797
|
+
* `neutral[900]` as its text (5.78:1) — white on it is 2.55:1, since the token that reads as
|
|
798
|
+
* "strong" in light is a light colour.
|
|
799
|
+
*/
|
|
663
800
|
const searchTheme = EditorView.baseTheme({
|
|
664
801
|
".cm-searchMatch": { backgroundColor: colors.blue[100] },
|
|
665
|
-
".cm-searchMatch > span": { color: `${colors.blue[
|
|
666
|
-
".cm-searchMatch-selected": { backgroundColor: colors.blue[
|
|
667
|
-
".cm-searchMatch-selected > span": { color: `${colors.white} !important` }
|
|
802
|
+
".cm-searchMatch > span": { color: `${colors.blue[700]} !important` },
|
|
803
|
+
".cm-searchMatch-selected": { backgroundColor: colors.blue[700] },
|
|
804
|
+
".cm-searchMatch-selected > span": { color: `${colors.white} !important` },
|
|
805
|
+
"&dark .cm-searchMatch": { backgroundColor: `${colors.blue[500]}29` },
|
|
806
|
+
"&dark .cm-searchMatch > span": { color: `${colors.blue[200]} !important` },
|
|
807
|
+
"&dark .cm-searchMatch-selected": { backgroundColor: colors.blue[500] },
|
|
808
|
+
"&dark .cm-searchMatch-selected > span": { color: `${colors.neutral[900]} !important` }
|
|
668
809
|
});
|
|
669
810
|
function searchExtension() {
|
|
670
811
|
return [
|
|
@@ -844,7 +985,7 @@ const useVariableCompletion = (variables = []) => useStableCallback(completeVari
|
|
|
844
985
|
//#endregion
|
|
845
986
|
//#region src/components/CodeEditor/CodeEditor.tsx
|
|
846
987
|
const emptyObject = {};
|
|
847
|
-
const CodeEditor = ({ value, previousValue, onChange, variant = "plain", mode = "application/json", placeholder: placeholder$1 = "", ariaLabel, ariaLabelledBy, ariaDescribedBy, ariaInvalid, ariaRequired, allowBlankDocument = false, onBlur, searchQuery, searchMatchIndex, readOnly = false, inputLocked = false, autocompletions, completionSource, variables, extraKeys = emptyObject, withToggleCommentHint = false, withAutofocus = false, withLineNumbers = true, withLineWrapping = true, withCollapseUnchanged = false, withCopyButton = false, completeAny = false, help = null, helpPostfix = null, renderAdditionalButtons, className }) => {
|
|
988
|
+
const CodeEditor = ({ value, previousValue, onChange, variant = "plain", mode = "application/json", placeholder: placeholder$1 = "", ariaLabel, ariaLabelledBy, ariaDescribedBy, ariaInvalid, ariaRequired, allowBlankDocument = false, onBlur, searchQuery, searchMatchIndex, readOnly = false, inputLocked = false, autocompletions, completionSource, variables, withCompletions = true, extraKeys = emptyObject, withToggleCommentHint = false, withAutofocus = false, withLineNumbers = true, withLineWrapping = true, withCollapseUnchanged = false, withCopyButton = false, completeAny = false, help = null, helpPostfix = null, renderAdditionalButtons, className }) => {
|
|
848
989
|
const handleChange = useStableCallback((next) => onChange?.(next));
|
|
849
990
|
const handleBlur = useStableCallback(() => onBlur?.());
|
|
850
991
|
const withSearch = searchQuery !== void 0;
|
|
@@ -887,10 +1028,10 @@ const CodeEditor = ({ value, previousValue, onChange, variant = "plain", mode =
|
|
|
887
1028
|
const customTheme = useThemedExtension("editor:syntax", buildCustomTheme);
|
|
888
1029
|
const isArgo = useArgoDesign();
|
|
889
1030
|
const isField = variant === "field";
|
|
890
|
-
const baseTheme = useThemedExtension(isField ? `code-editor:field:${isArgo ? "argo" : "legacy"}` : "code-editor:chrome", () => EditorView.theme({
|
|
891
|
-
...buildBaseThemeStyles(),
|
|
892
|
-
...isField ? buildChromeStyles(buildInputChrome(isArgo)) : null
|
|
893
|
-
}));
|
|
1031
|
+
const baseTheme = useThemedExtension(isField ? `code-editor:field:${isArgo ? "argo" : "legacy"}` : "code-editor:chrome", (scheme) => EditorView.theme({
|
|
1032
|
+
...buildBaseThemeStyles(scheme),
|
|
1033
|
+
...isField ? buildChromeStyles(buildInputChrome(isArgo, scheme)) : null
|
|
1034
|
+
}, { dark: scheme === "dark" }));
|
|
894
1035
|
const commonExtensions = useMemo(() => {
|
|
895
1036
|
const callerCompletions = completionSource ?? (completeAny ? completeAnyWord : autocompletions?.length ? autocompletions : null);
|
|
896
1037
|
const completionEntries = [...callerCompletions ? [{ autocomplete: callerCompletions }] : [], { autocomplete: variableCompletion }];
|
|
@@ -906,7 +1047,7 @@ const CodeEditor = ({ value, previousValue, onChange, variant = "plain", mode =
|
|
|
906
1047
|
return true;
|
|
907
1048
|
}
|
|
908
1049
|
}))),
|
|
909
|
-
readOnly ? [] : [autocompletion()],
|
|
1050
|
+
readOnly || !withCompletions ? [] : [autocompletion()],
|
|
910
1051
|
contentAria ? EditorView.contentAttributes.of(contentAria) : [],
|
|
911
1052
|
withBlur ? EditorView.domEventHandlers({ blur: handleBlur }) : [],
|
|
912
1053
|
withSearch ? searchExtension() : [],
|
|
@@ -918,6 +1059,7 @@ const CodeEditor = ({ value, previousValue, onChange, variant = "plain", mode =
|
|
|
918
1059
|
completionSource,
|
|
919
1060
|
variableCompletion,
|
|
920
1061
|
completeAny,
|
|
1062
|
+
withCompletions,
|
|
921
1063
|
boundKeys,
|
|
922
1064
|
mode,
|
|
923
1065
|
readOnly,
|
|
@@ -995,6 +1137,6 @@ const CodeEditor = ({ value, previousValue, onChange, variant = "plain", mode =
|
|
|
995
1137
|
});
|
|
996
1138
|
};
|
|
997
1139
|
//#endregion
|
|
998
|
-
export { CodeEditor, LANGUAGE_MODES, buildBaseThemeStyles, buildBasicSetup, buildCanvasChrome, buildChromeStyles, buildCustomTheme, isLanguageMode, searchExtension, updateSearch, useThemedExtension, useTooltipsExtension, useVariableCompletion };
|
|
1140
|
+
export { CodeEditor, LANGUAGE_MODES, buildBaseThemeStyles, buildBasicSetup, buildCanvasChrome, buildChromeStyles, buildCustomTheme, buildDiffWash, isLanguageMode, searchExtension, updateSearch, useThemedExtension, useTooltipsExtension, useVariableCompletion };
|
|
999
1141
|
|
|
1000
|
-
//# sourceMappingURL=CodeEditor-
|
|
1142
|
+
//# sourceMappingURL=CodeEditor-CUse8znx.js.map
|