@keboola/design 13.0.2 → 13.1.1
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 +2 -0
- package/CHANGELOG.md +36 -0
- package/README.md +2 -2
- package/dist/{AIKit-DDIi0r4w.js → AIKit-BVCWP9Ks.js} +260 -68
- package/dist/{AIKit-DDIi0r4w.js.map → AIKit-BVCWP9Ks.js.map} +1 -1
- package/dist/{CodeEditor-jZMw1ioj.js → CodeEditor-Df7VVx08.js} +2 -2
- package/dist/{CodeEditor-jZMw1ioj.js.map → CodeEditor-Df7VVx08.js.map} +1 -1
- package/dist/Toast-NrOdDDru.js +76 -0
- package/dist/Toast-NrOdDDru.js.map +1 -0
- package/dist/editors.js +1 -1
- package/dist/index.d.ts +46 -12
- package/dist/index.js +5 -4
- package/dist/internal/blocks/AIKit.js +1 -1
- package/dist/internal/components/Toast.js +1 -1
- package/dist/internal/hooks/useAltDigitHotkey.js +51 -0
- package/dist/internal/hooks/useAltDigitHotkey.js.map +1 -0
- package/dist/markdown-editor.d.ts +22 -1
- package/dist/markdown-editor.js +512 -214
- package/dist/markdown-editor.js.map +1 -1
- package/dist/rjsf.js +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/dist/Toast-PfQf3vj-.js +0 -49
- package/dist/Toast-PfQf3vj-.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -66,15 +66,17 @@ import { OtpInput, REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND
|
|
|
66
66
|
import { SearchInput } from "./SearchInput-D3qMkHaW.js";
|
|
67
67
|
import { SearchInputWithNavigation } from "./internal/blocks/SearchInputWithNavigation.js";
|
|
68
68
|
import { FileUpload, useFileDropTarget, useFileUploadRejections } from "./FileUpload-Ch2hrIWq.js";
|
|
69
|
-
import { AnswerActions, AnswerSummary, ChatInlineIcon, CollapsibleStepHeader, DIAGRAM_LANGUAGES, FileDownloadChip, InlineStepDetail, InlineStepGroup, InlineStepLabel, Markdown, MarkdownTable, MessageBubble, PROMPT_INPUT_CONTAINER, PlanApproval, PlanRewritingIndicator, PromptInput, Question, QuestionBlock, SuggestedPrompt, ThinkingIndicator, ToolCallApproval, ToolCallChip, ToolCallStatusHeader, UsageBar, UsageStats, UsageStatsRing, clampPercentage, findMentionToken, findSlashToken, formatPercentage, getChatInlineIconName } from "./AIKit-
|
|
69
|
+
import { AnswerActions, AnswerSummary, ChatInlineIcon, CollapsibleStepHeader, DIAGRAM_LANGUAGES, FileDownloadChip, InlineStepDetail, InlineStepGroup, InlineStepLabel, Markdown, MarkdownTable, MessageBubble, PROMPT_INPUT_CONTAINER, PlanApproval, PlanRewritingIndicator, PromptInput, Question, QuestionBlock, SuggestedPrompt, ThinkingIndicator, ToolCallApproval, ToolCallChip, ToolCallStatusHeader, UsageBar, UsageStats, UsageStatsRing, clampPercentage, findMentionToken, findSlashToken, formatPercentage, getChatInlineIconName } from "./AIKit-BVCWP9Ks.js";
|
|
70
70
|
import { Table, tableAriaSort } from "./Table-BaVT5Tkn.js";
|
|
71
71
|
import { Skeleton } from "./internal/components/Skeleton/Skeleton.js";
|
|
72
72
|
import { DiagramSkeleton } from "./internal/blocks/DiagramShared/DiagramSkeleton.js";
|
|
73
|
+
import { Kbd, kbdVariants, keys } from "./Kbd-J4n1J6i4.js";
|
|
73
74
|
import { Progress } from "./internal/components/Progress.js";
|
|
75
|
+
import { MAX_DIGIT_HOTKEY, digitFromKeyCode, useAltDigitHotkey } from "./internal/hooks/useAltDigitHotkey.js";
|
|
74
76
|
import { Collapsible } from "./Collapsible-BQXWEOBC.js";
|
|
75
77
|
import { Alert } from "./Alert-UI-CIs-1.js";
|
|
76
78
|
import { toast } from "./toast-CyXEdaCZ.js";
|
|
77
|
-
import { Toaster, useNotification } from "./Toast-
|
|
79
|
+
import { Toaster, useNotification } from "./Toast-NrOdDDru.js";
|
|
78
80
|
import { EmptySearchContent } from "./internal/components/EmptySearchContent.js";
|
|
79
81
|
import { Card } from "./Card-BQmBWHXl.js";
|
|
80
82
|
import { EmptyConfigurationActionCard } from "./internal/blocks/EmptyConfigurationActionCard.js";
|
|
@@ -103,7 +105,6 @@ import { Stepper } from "./Stepper-BLkLhfnd.js";
|
|
|
103
105
|
import { Timeline } from "./Timeline-B-I6sb0M.js";
|
|
104
106
|
import { Avatar } from "./internal/components/Avatar.js";
|
|
105
107
|
import { MarkedText } from "./MarkedText-DlmlJO0u.js";
|
|
106
|
-
import { Kbd, kbdVariants, keys } from "./Kbd-J4n1J6i4.js";
|
|
107
108
|
import { Pagination } from "./Pagination-DH3f6LN0.js";
|
|
108
109
|
import { DiffType, DiffView, computeDiffRows, computeLineInformation } from "./DiffView-ppTIzh2h.js";
|
|
109
110
|
import { PaneHeader } from "./internal/components/MergeEditor/PaneHeader.js";
|
|
@@ -117,4 +118,4 @@ import { useAutosizeInput } from "./internal/hooks/useAutosizeInput.js";
|
|
|
117
118
|
import { ZoomableSvg, svgToPngBlob, toSvgFileContent } from "./ZoomableSvg-C65nta_r.js";
|
|
118
119
|
import { BrandEditor, DEFAULT_FALLBACK_FONT, DEFAULT_FONT_OPTIONS, channelsToHex, contrastRatio, hexToChannels, wcagLevel } from "./BrandEditor-P8OZX2hi.js";
|
|
119
120
|
import { Slot } from "@radix-ui/react-slot";
|
|
120
|
-
export { Alert, AlertModal, AnswerActions, AnswerSummary, AppShell, ArgoDesignContext, AuthLayout, AutoSaveTextarea, Avatar, BLANK_VALUES, Badge, BrandEditor, BrandLogo, Breadcrumb, Button, ButtonGroup, ButtonInline, Calendar, Card, ChartPanel, ChatInlineIcon, Checkbox, ChipEditor, Clipboard, ClipboardButton, ClipboardInline, Collapsible, CollapsiblePanel, CollapsibleStepHeader, ColorInput, ColorModeSwitch, Combobox, ComboboxField, Command, CommandGroup, CommandInput, CommandItem, CommandList, ConflictStatusIndicator, CopyField, DEFAULT_COLOR_SCHEME, DEFAULT_FALLBACK_FONT, DEFAULT_FONT_OPTIONS, DEFAULT_BRAND_ID as DEFAULT_KEBOOLA_BRAND_ID, DEFAULT_WORKBENCH_BAR_HEIGHT_IN_REM, DEFAULT_WORKBENCH_PANEL_HEIGHT_IN_PX, DIAGRAM_LANGUAGES, DashboardHero, DateInput, DatePicker, DateRangeInput, DateRangePicker, DiagramSkeleton, DiffType, DiffView, DotsLoader, DropdownMenu, EmptyConfigurationActionCard, EmptySearchContent, EmptyState, ErrorState, ExportMenu, FileDownloadChip, FileUpload, FormGroup, FullScreenModal, FullScreenModalBody, FullScreenModalHeader, GoogleButton, HINT_UNDERLINE_CLASS_NAME, HelpBlock, HoverCard, InlineStepDetail, InlineStepGroup, InlineStepLabel, InputGroup, Kbd, Label, Link, MIN_WORKBENCH_PANEL_HEIGHT_IN_PX, Markdown, MarkdownTable, MarkedText, MessageBubble, MicrosoftButton, Modal, MultiActionButtonGroup, MultiCombobox, MultiComboboxField, Navbar, NumberInput, OtpInput, PROMPT_INPUT_CONTAINER, PageHeader, PageLayout, PageToolbar, Pagination, PaneHeader, PanelWithDetails, PasswordInput, PlanApproval, PlanRewritingIndicator, Popconfirm, Popover, Progress, PromptInput, Question, QuestionBlock, REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS, RadioGroup, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Search, SearchForm, SearchInput, SearchInputWithNavigation, SectionNav, Select, Separator, Sheet, Sidebar, SidebarProvider, Skeleton, SkeletonList, Slider, Slot, SplitButton, SpotlightBackdrop, StatCard, StatCardGrid, Stepper, SuggestedPrompt, Switch, Table, Tabs, TabsContent, TextInput, Textarea, ThemeProvider, ThemeScope, ThinkingIndicator, TimeInput, TimePicker, Timeline, Toaster, Toggle, ToggleGroup, ToolCallApproval, ToolCallChip, ToolCallStatusHeader, Tooltip, TooltipProvider, Truncated, UsageBar, UsageStats, UsageStatsRing, Workbench, ZoomableSvg, agnes, appShellSlotSelector, argoVariants, brandSchema, channelsToHex, clampPercentage, cn, computeDiffRows, computeLineInformation, contrastRatio, copyToClipboard, defaultFilter, exampleCustomer, filterByWords, findLiteralMatches, findMentionToken, findSlashToken, formatPercentage, forwardAccessibleName, getChatInlineIconName, harbor, hasLiteralMatch, hexToChannels, isMac, kbdVariants, keboola, keboolaLegacySidebar, keys, matchByWords, mergeRefs, namedLabel, setServerFieldErrors, setSubmitError, svgToPngBlob, tableAriaSort, toSvgFileContent, toast, useAppForm, useArgoDesign, useAutosizeInput, useCommandState, useDefaultLayout, useFileDropTarget, useFileUploadRejections, useMergeDiff, useNotification, useOptionalSidebar, useScrollbarPosition, useSidebar, useStableCallback, useTargetRect, useTheme, useThemeScopeContainer, useWorkbench, wcagLevel, withBlankValues, withForm };
|
|
121
|
+
export { Alert, AlertModal, AnswerActions, AnswerSummary, AppShell, ArgoDesignContext, AuthLayout, AutoSaveTextarea, Avatar, BLANK_VALUES, Badge, BrandEditor, BrandLogo, Breadcrumb, Button, ButtonGroup, ButtonInline, Calendar, Card, ChartPanel, ChatInlineIcon, Checkbox, ChipEditor, Clipboard, ClipboardButton, ClipboardInline, Collapsible, CollapsiblePanel, CollapsibleStepHeader, ColorInput, ColorModeSwitch, Combobox, ComboboxField, Command, CommandGroup, CommandInput, CommandItem, CommandList, ConflictStatusIndicator, CopyField, DEFAULT_COLOR_SCHEME, DEFAULT_FALLBACK_FONT, DEFAULT_FONT_OPTIONS, DEFAULT_BRAND_ID as DEFAULT_KEBOOLA_BRAND_ID, DEFAULT_WORKBENCH_BAR_HEIGHT_IN_REM, DEFAULT_WORKBENCH_PANEL_HEIGHT_IN_PX, DIAGRAM_LANGUAGES, DashboardHero, DateInput, DatePicker, DateRangeInput, DateRangePicker, DiagramSkeleton, DiffType, DiffView, DotsLoader, DropdownMenu, EmptyConfigurationActionCard, EmptySearchContent, EmptyState, ErrorState, ExportMenu, FileDownloadChip, FileUpload, FormGroup, FullScreenModal, FullScreenModalBody, FullScreenModalHeader, GoogleButton, HINT_UNDERLINE_CLASS_NAME, HelpBlock, HoverCard, InlineStepDetail, InlineStepGroup, InlineStepLabel, InputGroup, Kbd, Label, Link, MAX_DIGIT_HOTKEY, MIN_WORKBENCH_PANEL_HEIGHT_IN_PX, Markdown, MarkdownTable, MarkedText, MessageBubble, MicrosoftButton, Modal, MultiActionButtonGroup, MultiCombobox, MultiComboboxField, Navbar, NumberInput, OtpInput, PROMPT_INPUT_CONTAINER, PageHeader, PageLayout, PageToolbar, Pagination, PaneHeader, PanelWithDetails, PasswordInput, PlanApproval, PlanRewritingIndicator, Popconfirm, Popover, Progress, PromptInput, Question, QuestionBlock, REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS, RadioGroup, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Search, SearchForm, SearchInput, SearchInputWithNavigation, SectionNav, Select, Separator, Sheet, Sidebar, SidebarProvider, Skeleton, SkeletonList, Slider, Slot, SplitButton, SpotlightBackdrop, StatCard, StatCardGrid, Stepper, SuggestedPrompt, Switch, Table, Tabs, TabsContent, TextInput, Textarea, ThemeProvider, ThemeScope, ThinkingIndicator, TimeInput, TimePicker, Timeline, Toaster, Toggle, ToggleGroup, ToolCallApproval, ToolCallChip, ToolCallStatusHeader, Tooltip, TooltipProvider, Truncated, UsageBar, UsageStats, UsageStatsRing, Workbench, ZoomableSvg, agnes, appShellSlotSelector, argoVariants, brandSchema, channelsToHex, clampPercentage, cn, computeDiffRows, computeLineInformation, contrastRatio, copyToClipboard, defaultFilter, digitFromKeyCode, exampleCustomer, filterByWords, findLiteralMatches, findMentionToken, findSlashToken, formatPercentage, forwardAccessibleName, getChatInlineIconName, harbor, hasLiteralMatch, hexToChannels, isMac, kbdVariants, keboola, keboolaLegacySidebar, keys, matchByWords, mergeRefs, namedLabel, setServerFieldErrors, setSubmitError, svgToPngBlob, tableAriaSort, toSvgFileContent, toast, useAltDigitHotkey, useAppForm, useArgoDesign, useAutosizeInput, useCommandState, useDefaultLayout, useFileDropTarget, useFileUploadRejections, useMergeDiff, useNotification, useOptionalSidebar, useScrollbarPosition, useSidebar, useStableCallback, useTargetRect, useTheme, useThemeScopeContainer, useWorkbench, wcagLevel, withBlankValues, withForm };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { AnswerActions, AnswerSummary, ChatInlineIcon, CollapsibleStepHeader, DIAGRAM_LANGUAGES, FileDownloadChip, InlineStepDetail, InlineStepGroup, InlineStepLabel, Markdown, MarkdownTable, MessageBubble, PROMPT_INPUT_CONTAINER, PlanApproval, PlanRewritingIndicator, PromptInput, Question, QuestionBlock, SuggestedPrompt, ThinkingIndicator, ToolCallApproval, ToolCallChip, ToolCallStatusHeader, UsageBar, UsageStats, UsageStatsRing, clampPercentage, findMentionToken, findSlashToken, formatPercentage, getChatInlineIconName } from "../../AIKit-
|
|
1
|
+
import { AnswerActions, AnswerSummary, ChatInlineIcon, CollapsibleStepHeader, DIAGRAM_LANGUAGES, FileDownloadChip, InlineStepDetail, InlineStepGroup, InlineStepLabel, Markdown, MarkdownTable, MessageBubble, PROMPT_INPUT_CONTAINER, PlanApproval, PlanRewritingIndicator, PromptInput, Question, QuestionBlock, SuggestedPrompt, ThinkingIndicator, ToolCallApproval, ToolCallChip, ToolCallStatusHeader, UsageBar, UsageStats, UsageStatsRing, clampPercentage, findMentionToken, findSlashToken, formatPercentage, getChatInlineIconName } from "../../AIKit-BVCWP9Ks.js";
|
|
2
2
|
export { AnswerActions, AnswerSummary, ChatInlineIcon, CollapsibleStepHeader, DIAGRAM_LANGUAGES, FileDownloadChip, InlineStepDetail, InlineStepGroup, InlineStepLabel, Markdown, MarkdownTable, MessageBubble, PROMPT_INPUT_CONTAINER, PlanApproval, PlanRewritingIndicator, PromptInput, Question, QuestionBlock, SuggestedPrompt, ThinkingIndicator, ToolCallApproval, ToolCallChip, ToolCallStatusHeader, UsageBar, UsageStats, UsageStatsRing, clampPercentage, findMentionToken, findSlashToken, formatPercentage, getChatInlineIconName };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { useStableCallback } from "./useStableCallback.js";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
//#region src/hooks/useAltDigitHotkey.ts
|
|
4
|
+
const DIGIT_CODE = /^(?:Digit|Numpad)([1-9])$/;
|
|
5
|
+
/** The highest digit a numbered option can be picked with. */
|
|
6
|
+
const MAX_DIGIT_HOTKEY = 9;
|
|
7
|
+
/**
|
|
8
|
+
* The 1–9 digit a key press names, or `null`.
|
|
9
|
+
*
|
|
10
|
+
* - Reads `code`, not `key`: on a Mac ⌥ plus a digit types `¡™£`, and some layouts need ⇧ for digits.
|
|
11
|
+
* - Top-row and numpad digits both count; `0` does not.
|
|
12
|
+
*/
|
|
13
|
+
const digitFromKeyCode = (code) => {
|
|
14
|
+
const match = DIGIT_CODE.exec(code);
|
|
15
|
+
return match ? Number(match[1]) : null;
|
|
16
|
+
};
|
|
17
|
+
/** ⌥ (Alt) alone: ⌘, Ctrl and ⇧ are someone else's, and Windows sends AltGr as Ctrl+Alt. */
|
|
18
|
+
const isAltOnly = (event) => event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey;
|
|
19
|
+
/**
|
|
20
|
+
* ⌥1–⌥9 anywhere on the page, text fields included.
|
|
21
|
+
*
|
|
22
|
+
* - Prevents the default, so a field focused at the time gets no `¡™£`.
|
|
23
|
+
* - Skips an event a handler before it already took, so two lists on screen never both fire.
|
|
24
|
+
* - Leaves numpad digits alone: on Windows ⌥ plus numpad digits types an Alt code.
|
|
25
|
+
*/
|
|
26
|
+
const useAltDigitHotkey = ({ count, onDigit, enabled = true, ref }) => {
|
|
27
|
+
const handleDigit = useStableCallback(onDigit);
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
if (!enabled || count === 0) return;
|
|
30
|
+
const handleKeyDown = (event) => {
|
|
31
|
+
if (event.defaultPrevented || event.repeat || !isAltOnly(event)) return;
|
|
32
|
+
if (event.location === KeyboardEvent.DOM_KEY_LOCATION_NUMPAD) return;
|
|
33
|
+
if (ref?.current?.closest("[aria-hidden=\"true\"], [inert]")) return;
|
|
34
|
+
const digit = digitFromKeyCode(event.code);
|
|
35
|
+
if (digit === null || digit > Math.min(count, 9)) return;
|
|
36
|
+
event.preventDefault();
|
|
37
|
+
handleDigit(digit - 1);
|
|
38
|
+
};
|
|
39
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
40
|
+
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
41
|
+
}, [
|
|
42
|
+
count,
|
|
43
|
+
enabled,
|
|
44
|
+
handleDigit,
|
|
45
|
+
ref
|
|
46
|
+
]);
|
|
47
|
+
};
|
|
48
|
+
//#endregion
|
|
49
|
+
export { MAX_DIGIT_HOTKEY, digitFromKeyCode, useAltDigitHotkey };
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=useAltDigitHotkey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAltDigitHotkey.js","names":[],"sources":["../../../src/hooks/useAltDigitHotkey.ts"],"sourcesContent":["import { type RefObject, useEffect } from 'react';\n\nimport { useStableCallback } from './useStableCallback';\n\nconst DIGIT_CODE = /^(?:Digit|Numpad)([1-9])$/;\n\n/** The highest digit a numbered option can be picked with. */\nexport const MAX_DIGIT_HOTKEY = 9;\n\n/**\n * The 1–9 digit a key press names, or `null`.\n *\n * - Reads `code`, not `key`: on a Mac ⌥ plus a digit types `¡™£`, and some layouts need ⇧ for digits.\n * - Top-row and numpad digits both count; `0` does not.\n */\nexport const digitFromKeyCode = (code: string): number | null => {\n const match = DIGIT_CODE.exec(code);\n return match ? Number(match[1]) : null;\n};\n\n/** ⌥ (Alt) alone: ⌘, Ctrl and ⇧ are someone else's, and Windows sends AltGr as Ctrl+Alt. */\nconst isAltOnly = (event: KeyboardEvent) =>\n event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey;\n\ntype Options = {\n /** How many numbered targets there are; digits past it, and past 9, do nothing. */\n count: number;\n /** Receives the 0-based index of the digit pressed. */\n onDigit: (index: number) => void;\n enabled?: boolean;\n /** The list's element; while a modal hides it (`aria-hidden`, `inert`), the keys pass through. */\n ref?: RefObject<HTMLElement | null>;\n};\n\n/**\n * ⌥1–⌥9 anywhere on the page, text fields included.\n *\n * - Prevents the default, so a field focused at the time gets no `¡™£`.\n * - Skips an event a handler before it already took, so two lists on screen never both fire.\n * - Leaves numpad digits alone: on Windows ⌥ plus numpad digits types an Alt code.\n */\nexport const useAltDigitHotkey = ({ count, onDigit, enabled = true, ref }: Options) => {\n const handleDigit = useStableCallback(onDigit);\n\n useEffect(() => {\n if (!enabled || count === 0) return;\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.defaultPrevented || event.repeat || !isAltOnly(event)) return;\n if (event.location === KeyboardEvent.DOM_KEY_LOCATION_NUMPAD) return;\n if (ref?.current?.closest('[aria-hidden=\"true\"], [inert]')) return;\n const digit = digitFromKeyCode(event.code);\n if (digit === null || digit > Math.min(count, MAX_DIGIT_HOTKEY)) return;\n event.preventDefault();\n handleDigit(digit - 1);\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [count, enabled, handleDigit, ref]);\n};\n"],"mappings":";;;AAIA,MAAM,aAAa;;AAGnB,MAAa,mBAAmB;;;;;;;AAQhC,MAAa,oBAAoB,SAAgC;CAC/D,MAAM,QAAQ,WAAW,KAAK,IAAI;CAClC,OAAO,QAAQ,OAAO,MAAM,EAAE,IAAI;AACpC;;AAGA,MAAM,aAAa,UACjB,MAAM,UAAU,CAAC,MAAM,WAAW,CAAC,MAAM,WAAW,CAAC,MAAM;;;;;;;;AAmB7D,MAAa,qBAAqB,EAAE,OAAO,SAAS,UAAU,MAAM,UAAmB;CACrF,MAAM,cAAc,kBAAkB,OAAO;CAE7C,gBAAgB;EACd,IAAI,CAAC,WAAW,UAAU,GAAG;EAE7B,MAAM,iBAAiB,UAAyB;GAC9C,IAAI,MAAM,oBAAoB,MAAM,UAAU,CAAC,UAAU,KAAK,GAAG;GACjE,IAAI,MAAM,aAAa,cAAc,yBAAyB;GAC9D,IAAI,KAAK,SAAS,QAAQ,iCAA+B,GAAG;GAC5D,MAAM,QAAQ,iBAAiB,MAAM,IAAI;GACzC,IAAI,UAAU,QAAQ,QAAQ,KAAK,IAAI,OAAA,CAAuB,GAAG;GACjE,MAAM,eAAe;GACrB,YAAY,QAAQ,CAAC;EACvB;EAEA,OAAO,iBAAiB,WAAW,aAAa;EAChD,aAAa,OAAO,oBAAoB,WAAW,aAAa;CAClE,GAAG;EAAC;EAAO;EAAS;EAAa;CAAG,CAAC;AACvC"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import { ReactNode } from "react";
|
|
2
|
+
//#region src/blocks/MarkdownEditor/plugins/ToolbarPlugin.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* How the toolbar is presented.
|
|
5
|
+
*
|
|
6
|
+
* - `floating`: a popup over the selection, portalled to `document.body`.
|
|
7
|
+
* - `fixed`: a static bar at the top of the editor, visible with no selection.
|
|
8
|
+
*/
|
|
9
|
+
type ToolbarMode = 'floating' | 'fixed';
|
|
10
|
+
//#endregion
|
|
2
11
|
//#region src/blocks/MarkdownEditor/MarkdownEditor.d.ts
|
|
3
12
|
type MarkdownEditorProps = {
|
|
4
13
|
/** Markdown string (controlled) */
|
|
@@ -27,6 +36,8 @@ type MarkdownEditorProps = {
|
|
|
27
36
|
alt: string;
|
|
28
37
|
}) => ReactNode;
|
|
29
38
|
showToolbar?: boolean;
|
|
39
|
+
/** How `showToolbar` presents the toolbar. Defaults to `floating`. */
|
|
40
|
+
toolbarMode?: ToolbarMode;
|
|
30
41
|
/**
|
|
31
42
|
* No prose wrapper, min-height or padding — blends into surrounding text for inline editing.
|
|
32
43
|
* Set typography via `className`.
|
|
@@ -46,8 +57,18 @@ type MarkdownEditorProps = {
|
|
|
46
57
|
* Ignored in `compact` mode.
|
|
47
58
|
*/
|
|
48
59
|
minRows?: number;
|
|
60
|
+
/**
|
|
61
|
+
* Typed and pasted URLs and emails become links, and export as typed (`a_b`, not `a\_b`).
|
|
62
|
+
* Ignored with `singleLine`.
|
|
63
|
+
*/
|
|
64
|
+
autoLink?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* A plain-text paste is read as markdown (fences, lists, tables) instead of one paragraph per
|
|
67
|
+
* line. HTML pastes are unchanged. Ignored with `singleLine`.
|
|
68
|
+
*/
|
|
69
|
+
pasteMarkdown?: boolean;
|
|
49
70
|
};
|
|
50
|
-
declare const MarkdownEditor: ({ value, onChange, readOnly, placeholder, autoFocus, disabled, onSave, onCancel, onImageUpload, className, imageRenderer, showToolbar, compact, saveOnBlur, singleLine, clampDisplay, minRows }: MarkdownEditorProps) => import("react").JSX.Element;
|
|
71
|
+
declare const MarkdownEditor: ({ value, onChange, readOnly, placeholder, autoFocus, disabled, onSave, onCancel, onImageUpload, className, imageRenderer, showToolbar, toolbarMode, compact, saveOnBlur, singleLine, clampDisplay, minRows, autoLink, pasteMarkdown }: MarkdownEditorProps) => import("react").JSX.Element;
|
|
51
72
|
//#endregion
|
|
52
73
|
export { MarkdownEditor, type MarkdownEditorProps };
|
|
53
74
|
//# sourceMappingURL=markdown-editor.d.ts.map
|