@commercetools/nimbus 0.0.0-canary-20250903150359 → 0.0.0-canary-20250903194502
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/chunks/rich-text-input-C5lp1D-D.cjs.js +7 -0
- package/dist/chunks/rich-text-input-C5lp1D-D.cjs.js.map +1 -0
- package/dist/chunks/{rich-text-input-CgrxAPHc.es.js → rich-text-input-CYlc7Ozc.es.js} +186 -173
- package/dist/chunks/rich-text-input-CYlc7Ozc.es.js.map +1 -0
- package/dist/chunks/slate-helpers-CcSj-DBm.cjs.js +24 -0
- package/dist/chunks/slate-helpers-CcSj-DBm.cjs.js.map +1 -0
- package/dist/chunks/slate-helpers-DsTiLoO8.es.js +9042 -0
- package/dist/chunks/slate-helpers-DsTiLoO8.es.js.map +1 -0
- package/dist/chunks/use-formatting-state-B26nE9CO.es.js +113 -0
- package/dist/chunks/use-formatting-state-B26nE9CO.es.js.map +1 -0
- package/dist/chunks/use-formatting-state-D7zenGZW.cjs.js +2 -0
- package/dist/chunks/use-formatting-state-D7zenGZW.cjs.js.map +1 -0
- package/dist/components/components.cjs +1 -1
- package/dist/components/components.es.js +1 -1
- package/dist/components/hooks.cjs +1 -1
- package/dist/components/hooks.es.js +1 -1
- package/dist/components/rich-text-input.cjs +1 -1
- package/dist/components/rich-text-input.es.js +1 -1
- package/dist/components/utils.cjs +1 -1
- package/dist/components/utils.es.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.es.js +2 -2
- package/package.json +8 -8
- package/dist/chunks/rich-text-input-CItP9BzJ.cjs.js +0 -2
- package/dist/chunks/rich-text-input-CItP9BzJ.cjs.js.map +0 -1
- package/dist/chunks/rich-text-input-CgrxAPHc.es.js.map +0 -1
- package/dist/chunks/slate-helpers-BN_9Hky2.cjs.js +0 -24
- package/dist/chunks/slate-helpers-BN_9Hky2.cjs.js.map +0 -1
- package/dist/chunks/slate-helpers-DunxggA8.es.js +0 -6919
- package/dist/chunks/slate-helpers-DunxggA8.es.js.map +0 -1
- package/dist/chunks/use-formatting-state-DVcnyVBl.cjs.js +0 -2
- package/dist/chunks/use-formatting-state-DVcnyVBl.cjs.js.map +0 -1
- package/dist/chunks/use-formatting-state-DdKYccZs.es.js +0 -247
- package/dist/chunks/use-formatting-state-DdKYccZs.es.js.map +0 -1
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { useCallback as h, useMemo as o } from "react";
|
|
2
|
+
import { h as x, b as f, S as E, j as C, R as A, u as g, a as d, d as S, i as a, k as T } from "./slate-helpers-DsTiLoO8.es.js";
|
|
3
|
+
import { HOTKEYS as K, blockTypes as D, textStyles as R, BASIC_FORMATTING as F, SCRIPT_FORMATTING as M } from "../components/constants.es.js";
|
|
4
|
+
const L = ({ editor: t }) => ({ handleKeyDown: h(
|
|
5
|
+
(r) => {
|
|
6
|
+
if ((r.metaKey || r.ctrlKey) && r.key === "z") {
|
|
7
|
+
r.preventDefault(), r.shiftKey ? t.redo() : t.undo();
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
for (const c in K)
|
|
11
|
+
if (x(c, r)) {
|
|
12
|
+
r.preventDefault();
|
|
13
|
+
const i = K[c];
|
|
14
|
+
f(t, i);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (r.shiftKey && r.key === "Enter") {
|
|
18
|
+
r.preventDefault(), t.insertText(E.placeholderCharacter);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
[t]
|
|
23
|
+
) }), O = (t) => h(
|
|
24
|
+
(e) => () => {
|
|
25
|
+
const { selection: r } = t;
|
|
26
|
+
e(), r && !t.selection && C.select(t, r), A.isFocused(t) || A.focus(t);
|
|
27
|
+
},
|
|
28
|
+
[t]
|
|
29
|
+
), G = ({
|
|
30
|
+
withPreservedSelection: t
|
|
31
|
+
}) => {
|
|
32
|
+
const e = g(), r = o(() => D.find(
|
|
33
|
+
(s) => d(e, s)
|
|
34
|
+
) || "paragraph", [e.selection, e.children]), c = R.find((s) => s.id === r), i = c?.label || "", b = h(
|
|
35
|
+
(s) => {
|
|
36
|
+
t(() => {
|
|
37
|
+
S(e, s);
|
|
38
|
+
})();
|
|
39
|
+
},
|
|
40
|
+
[e, t]
|
|
41
|
+
), n = h(
|
|
42
|
+
(s) => {
|
|
43
|
+
t(() => {
|
|
44
|
+
const u = Array.from(s)[0], k = d(e, "bulleted-list") ? "bulleted-list" : d(e, "numbered-list") ? "numbered-list" : null;
|
|
45
|
+
u ? S(e, u) : k && S(e, k);
|
|
46
|
+
})();
|
|
47
|
+
},
|
|
48
|
+
[e, t]
|
|
49
|
+
), l = o(() => {
|
|
50
|
+
const s = [];
|
|
51
|
+
return a(e, "bold") && s.push("bold"), a(e, "italic") && s.push("italic"), a(e, "underline") && s.push("underline"), new Set(s);
|
|
52
|
+
}, [e.selection, e.children, T.marks(e)]), y = o(() => {
|
|
53
|
+
const s = [];
|
|
54
|
+
return d(e, "bulleted-list") && s.push("bulleted-list"), d(e, "numbered-list") && s.push("numbered-list"), new Set(s);
|
|
55
|
+
}, [e.selection, e.children]), p = o(() => e.history && e.history.undos.length > 0, [e.selection, e.children]), m = o(() => e.history && e.history.redos.length > 0, [e.selection, e.children]);
|
|
56
|
+
return {
|
|
57
|
+
currentTextStyle: r,
|
|
58
|
+
selectedTextStyle: c,
|
|
59
|
+
selectedTextStyleLabel: i,
|
|
60
|
+
handleTextStyleChange: b,
|
|
61
|
+
handleListToggle: n,
|
|
62
|
+
selectedFormatKeys: l,
|
|
63
|
+
selectedListKeys: y,
|
|
64
|
+
hasUndos: p,
|
|
65
|
+
hasRedos: m
|
|
66
|
+
};
|
|
67
|
+
}, H = ({
|
|
68
|
+
withPreservedSelection: t
|
|
69
|
+
}) => {
|
|
70
|
+
const e = g(), r = o(() => {
|
|
71
|
+
const n = [];
|
|
72
|
+
return F.forEach((l) => {
|
|
73
|
+
a(e, l) && n.push(l);
|
|
74
|
+
}), new Set(n);
|
|
75
|
+
}, [e.selection, e.children, T.marks(e)]), c = o(() => {
|
|
76
|
+
const n = [];
|
|
77
|
+
return M.forEach((l) => {
|
|
78
|
+
a(e, l) && n.push(l);
|
|
79
|
+
}), new Set(n);
|
|
80
|
+
}, [e.selection, e.children, T.marks(e)]), i = o(() => /* @__PURE__ */ new Set([
|
|
81
|
+
...Array.from(r),
|
|
82
|
+
...Array.from(c)
|
|
83
|
+
]), [r, c]), b = h(
|
|
84
|
+
(n) => {
|
|
85
|
+
if (n === "all") return;
|
|
86
|
+
const l = Array.from(n), y = Array.from(i), p = l.filter(
|
|
87
|
+
(s) => !y.includes(s)
|
|
88
|
+
), m = y.filter(
|
|
89
|
+
(s) => !l.includes(s)
|
|
90
|
+
);
|
|
91
|
+
[...p, ...m].forEach((s) => {
|
|
92
|
+
s === "superscript" || s === "subscript" ? t(() => {
|
|
93
|
+
const u = a(e, "superscript") ? "superscript" : a(e, "subscript") ? "subscript" : null;
|
|
94
|
+
p.includes(s) ? (u && u !== s && f(e, u), f(e, s)) : f(e, s);
|
|
95
|
+
})() : t(() => f(e, s))();
|
|
96
|
+
});
|
|
97
|
+
},
|
|
98
|
+
[e, i, t]
|
|
99
|
+
);
|
|
100
|
+
return {
|
|
101
|
+
selectedKeys: r,
|
|
102
|
+
selectedScriptKeys: c,
|
|
103
|
+
allSelectedKeys: i,
|
|
104
|
+
handleAllSelectionChange: b
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
export {
|
|
108
|
+
L as a,
|
|
109
|
+
G as b,
|
|
110
|
+
H as c,
|
|
111
|
+
O as u
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=use-formatting-state-B26nE9CO.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-formatting-state-B26nE9CO.es.js","sources":["../../src/components/rich-text-input/hooks/use-keyboard-shortcuts.ts","../../src/components/rich-text-input/hooks/use-preserved-selection.ts","../../src/components/rich-text-input/hooks/use-toolbar-state.ts","../../src/components/rich-text-input/hooks/use-formatting-state.ts"],"sourcesContent":["/**\n * Hook for handling keyboard shortcuts in the rich text editor\n *\n * Used by:\n * - components/rich-text-editor.tsx: Attaches keyboard event handler to the editor\n *\n * Purpose:\n * - Centralizes all keyboard shortcut logic for the editor\n * - Handles formatting shortcuts (Cmd+B, Cmd+I, etc.)\n * - Manages undo/redo keyboard combinations\n * - Processes soft line breaks (Shift+Enter)\n * - Extracted from rich-text-editor.tsx to improve organization and testability\n *\n * @param editor - The Slate editor instance for applying changes\n * @returns Object containing the keyboard event handler\n */\nimport { useCallback } from \"react\";\nimport { Editor } from \"slate\";\nimport isHotkey from \"is-hotkey\";\nimport { HOTKEYS } from \"../constants\";\nimport { toggleMark } from \"../utils/slate-helpers\";\nimport { Softbreaker } from \"../utils/slate-helpers\";\n\nexport interface UseKeyboardShortcutsProps {\n editor: Editor;\n}\n\nexport const useKeyboardShortcuts = ({ editor }: UseKeyboardShortcutsProps) => {\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n // Handle undo/redo shortcuts\n if ((event.metaKey || event.ctrlKey) && event.key === \"z\") {\n event.preventDefault();\n if (event.shiftKey) {\n editor.redo();\n } else {\n editor.undo();\n }\n return;\n }\n\n // Handle formatting shortcuts\n for (const hotkey in HOTKEYS) {\n if (isHotkey(hotkey, event)) {\n event.preventDefault();\n const mark = HOTKEYS[hotkey as keyof typeof HOTKEYS];\n toggleMark(editor, mark);\n return;\n }\n }\n\n // Handle soft line breaks (Shift+Enter)\n if (event.shiftKey && event.key === \"Enter\") {\n event.preventDefault();\n editor.insertText(Softbreaker.placeholderCharacter);\n return;\n }\n },\n [editor]\n );\n\n return { handleKeyDown };\n};\n","import { useCallback } from \"react\";\nimport { Editor, Transforms } from \"slate\";\nimport { ReactEditor } from \"slate-react\";\n\n/**\n * Hook that provides a helper function to preserve selection when toolbar actions are executed.\n * This prevents losing text selection when interacting with toolbar buttons and menus.\n *\n * TODO: This works for toggle buttons, but not for menus.\n *\n * @param editor - The Slate editor instance\n * @returns A function that wraps actions to preserve selection and focus\n */\nexport const usePreservedSelection = (editor: Editor) => {\n return useCallback(\n (action: () => void) => {\n return () => {\n // Save the current selection\n const { selection } = editor;\n\n // Execute the action\n action();\n\n // Restore selection if it was lost\n if (selection && !editor.selection) {\n Transforms.select(editor, selection);\n }\n\n // Ensure editor stays focused\n if (!ReactEditor.isFocused(editor)) {\n ReactEditor.focus(editor);\n }\n };\n },\n [editor]\n );\n};\n","/**\n * Hook for managing rich text toolbar state and interactions\n *\n * Used by:\n * - components/rich-text-toolbar.tsx: Manages all toolbar state and event handlers\n *\n * Purpose:\n * - Centralizes complex toolbar state management logic\n * - Handles text style changes, list toggling, format detection\n * - Manages undo/redo button states\n * - Extracted from rich-text-toolbar.tsx to improve organization and testability\n * - Provides clean separation between UI and business logic\n *\n * @param withPreservedSelection - Function for preserving editor selection during operations\n * @returns Object containing all toolbar state and event handlers\n */\nimport { useMemo, useCallback } from \"react\";\nimport { Editor } from \"slate\";\nimport { useSlate } from \"slate-react\";\nimport type { Key } from \"react-aria\";\nimport { textStyles, blockTypes, type BlockType } from \"../constants\";\nimport {\n isMarkActive,\n isBlockActive,\n toggleBlock,\n} from \"../utils/slate-helpers\";\nimport type { CustomElement } from \"../utils/types\";\n\nexport interface UseToolbarStateProps {\n withPreservedSelection: (fn: () => void) => () => void;\n}\n\nexport const useToolbarState = ({\n withPreservedSelection,\n}: UseToolbarStateProps) => {\n const editor = useSlate();\n\n // Get current block type - using useSlate() means this automatically updates\n const currentTextStyle = useMemo(() => {\n return (\n blockTypes.find((type) =>\n isBlockActive(editor, type as CustomElement[\"type\"])\n ) || \"paragraph\"\n );\n }, [editor.selection, editor.children]);\n\n const selectedTextStyle = textStyles.find((v) => v.id === currentTextStyle);\n const selectedTextStyleLabel = selectedTextStyle?.label || \"\";\n\n // Handle text style changes\n const handleTextStyleChange = useCallback(\n (styleId: string) => {\n withPreservedSelection(() => {\n toggleBlock(editor, styleId as BlockType);\n })();\n },\n [editor, withPreservedSelection]\n );\n\n // Handle list formatting\n const handleListToggle = useCallback(\n (selectedKeys: Set<Key>) => {\n withPreservedSelection(() => {\n const selected = Array.from(selectedKeys)[0] as BlockType | undefined;\n const currentlyActive = isBlockActive(editor, \"bulleted-list\")\n ? \"bulleted-list\"\n : isBlockActive(editor, \"numbered-list\")\n ? \"numbered-list\"\n : null;\n\n if (selected) {\n toggleBlock(editor, selected);\n } else if (currentlyActive) {\n toggleBlock(editor, currentlyActive);\n }\n })();\n },\n [editor, withPreservedSelection]\n );\n\n // Get currently selected formatting keys - simplified deps\n const selectedFormatKeys = useMemo(() => {\n const keys: string[] = [];\n if (isMarkActive(editor, \"bold\")) keys.push(\"bold\");\n if (isMarkActive(editor, \"italic\")) keys.push(\"italic\");\n if (isMarkActive(editor, \"underline\")) keys.push(\"underline\");\n return new Set(keys);\n }, [editor.selection, editor.children, Editor.marks(editor)]);\n\n // Get currently selected list formatting key\n const selectedListKeys = useMemo(() => {\n const keys: string[] = [];\n if (isBlockActive(editor, \"bulleted-list\")) keys.push(\"bulleted-list\");\n if (isBlockActive(editor, \"numbered-list\")) keys.push(\"numbered-list\");\n return new Set(keys);\n }, [editor.selection, editor.children]);\n\n // Check history state for undo/redo buttons\n const hasUndos = useMemo(() => {\n return editor.history && editor.history.undos.length > 0;\n }, [editor.selection, editor.children]);\n\n const hasRedos = useMemo(() => {\n return editor.history && editor.history.redos.length > 0;\n }, [editor.selection, editor.children]);\n\n return {\n currentTextStyle,\n selectedTextStyle,\n selectedTextStyleLabel,\n handleTextStyleChange,\n handleListToggle,\n selectedFormatKeys,\n selectedListKeys,\n hasUndos,\n hasRedos,\n };\n};\n","/**\n * Hook for managing formatting menu state with mutual exclusion logic\n *\n * Used by:\n * - components/formatting-menu.tsx: Manages complex formatting state and interactions\n *\n * Purpose:\n * - Handles mutual exclusion between superscript and subscript formatting\n * - Manages state for all formatting options in the \"More Options\" menu\n * - Processes complex selection changes with custom logic\n * - Extracted from formatting-menu.tsx to improve organization and testability\n * - Separates complex business logic from UI rendering\n *\n * @param withPreservedSelection - Function for preserving editor selection during operations\n * @returns Object containing formatting state and selection change handler\n */\nimport { useMemo, useCallback } from \"react\";\nimport { Editor } from \"slate\";\nimport { useSlate } from \"slate-react\";\nimport type { Key } from \"react-aria\";\nimport { BASIC_FORMATTING, SCRIPT_FORMATTING } from \"../constants\";\nimport { isMarkActive, toggleMark } from \"../utils/slate-helpers\";\n\nexport interface UseFormattingStateProps {\n withPreservedSelection: (fn: () => void) => () => void;\n}\n\nexport const useFormattingState = ({\n withPreservedSelection,\n}: UseFormattingStateProps) => {\n const editor = useSlate();\n\n // Get currently selected formatting keys (strikethrough and code)\n const selectedKeys = useMemo(() => {\n const keys: string[] = [];\n BASIC_FORMATTING.forEach((format) => {\n if (isMarkActive(editor, format)) keys.push(format);\n });\n return new Set(keys);\n }, [editor.selection, editor.children, Editor.marks(editor)]);\n\n // Get currently selected script formatting key (superscript or subscript - mutually exclusive)\n const selectedScriptKeys = useMemo(() => {\n const keys: string[] = [];\n SCRIPT_FORMATTING.forEach((format) => {\n if (isMarkActive(editor, format)) keys.push(format);\n });\n return new Set(keys);\n }, [editor.selection, editor.children, Editor.marks(editor)]);\n\n // Combine all selected keys for display purposes\n const allSelectedKeys = useMemo(() => {\n return new Set([\n ...Array.from(selectedKeys),\n ...Array.from(selectedScriptKeys),\n ]);\n }, [selectedKeys, selectedScriptKeys]);\n\n // Handle all selection changes with custom logic for mutual exclusion\n const handleAllSelectionChange = useCallback(\n (keys: \"all\" | Set<Key>) => {\n if (keys === \"all\") return;\n\n const keyArray = Array.from(keys) as string[];\n const currentKeys = Array.from(allSelectedKeys);\n\n // Find newly selected keys (toggle on)\n const newlySelected = keyArray.filter(\n (key) => !currentKeys.includes(key)\n );\n // Find newly deselected keys (toggle off)\n const newlyDeselected = currentKeys.filter(\n (key) => !keyArray.includes(key)\n );\n\n // Handle changes for each key\n [...newlySelected, ...newlyDeselected].forEach((key) => {\n if (key === \"superscript\" || key === \"subscript\") {\n // Handle script formatting with mutual exclusion\n withPreservedSelection(() => {\n const currentlyActive = isMarkActive(editor, \"superscript\")\n ? \"superscript\"\n : isMarkActive(editor, \"subscript\")\n ? \"subscript\"\n : null;\n\n if (newlySelected.includes(key)) {\n // If selecting a script format, deactivate the other one first\n if (currentlyActive && currentlyActive !== key) {\n toggleMark(editor, currentlyActive);\n }\n toggleMark(editor, key);\n } else {\n // Deselecting\n toggleMark(editor, key);\n }\n })();\n } else {\n // Handle regular formatting (strikethrough, code)\n withPreservedSelection(() => toggleMark(editor, key))();\n }\n });\n },\n [editor, allSelectedKeys, withPreservedSelection]\n );\n\n return {\n selectedKeys,\n selectedScriptKeys,\n allSelectedKeys,\n handleAllSelectionChange,\n };\n};\n"],"names":["useKeyboardShortcuts","editor","useCallback","event","hotkey","HOTKEYS","isHotkey","mark","toggleMark","Softbreaker","usePreservedSelection","action","selection","Transforms","ReactEditor","useToolbarState","withPreservedSelection","useSlate","currentTextStyle","useMemo","blockTypes","type","isBlockActive","selectedTextStyle","textStyles","v","selectedTextStyleLabel","handleTextStyleChange","styleId","toggleBlock","handleListToggle","selectedKeys","selected","currentlyActive","selectedFormatKeys","keys","isMarkActive","Editor","selectedListKeys","hasUndos","hasRedos","useFormattingState","BASIC_FORMATTING","format","selectedScriptKeys","SCRIPT_FORMATTING","allSelectedKeys","handleAllSelectionChange","keyArray","currentKeys","newlySelected","key","newlyDeselected"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const c=require("react"),t=require("./slate-helpers-CcSj-DBm.cjs.js"),d=require("../components/constants.cjs"),g=({editor:r})=>({handleKeyDown:c.useCallback(l=>{if((l.metaKey||l.ctrlKey)&&l.key==="z"){l.preventDefault(),l.shiftKey?r.redo():r.undo();return}for(const i in d.HOTKEYS)if(t.isHotkey(i,l)){l.preventDefault();const u=d.HOTKEYS[i];t.toggleMark(r,u);return}if(l.shiftKey&&l.key==="Enter"){l.preventDefault(),r.insertText(t.Softbreaker.placeholderCharacter);return}},[r])}),p=r=>c.useCallback(e=>()=>{const{selection:l}=r;e(),l&&!r.selection&&t.Transforms.select(r,l),t.ReactEditor.isFocused(r)||t.ReactEditor.focus(r)},[r]),m=({withPreservedSelection:r})=>{const e=t.useSlate(),l=c.useMemo(()=>d.blockTypes.find(s=>t.isBlockActive(e,s))||"paragraph",[e.selection,e.children]),i=d.textStyles.find(s=>s.id===l),u=i?.label||"",h=c.useCallback(s=>{r(()=>{t.toggleBlock(e,s)})()},[e,r]),n=c.useCallback(s=>{r(()=>{const a=Array.from(s)[0],b=t.isBlockActive(e,"bulleted-list")?"bulleted-list":t.isBlockActive(e,"numbered-list")?"numbered-list":null;a?t.toggleBlock(e,a):b&&t.toggleBlock(e,b)})()},[e,r]),o=c.useMemo(()=>{const s=[];return t.isMarkActive(e,"bold")&&s.push("bold"),t.isMarkActive(e,"italic")&&s.push("italic"),t.isMarkActive(e,"underline")&&s.push("underline"),new Set(s)},[e.selection,e.children,t.Editor.marks(e)]),f=c.useMemo(()=>{const s=[];return t.isBlockActive(e,"bulleted-list")&&s.push("bulleted-list"),t.isBlockActive(e,"numbered-list")&&s.push("numbered-list"),new Set(s)},[e.selection,e.children]),y=c.useMemo(()=>e.history&&e.history.undos.length>0,[e.selection,e.children]),k=c.useMemo(()=>e.history&&e.history.redos.length>0,[e.selection,e.children]);return{currentTextStyle:l,selectedTextStyle:i,selectedTextStyleLabel:u,handleTextStyleChange:h,handleListToggle:n,selectedFormatKeys:o,selectedListKeys:f,hasUndos:y,hasRedos:k}},A=({withPreservedSelection:r})=>{const e=t.useSlate(),l=c.useMemo(()=>{const n=[];return d.BASIC_FORMATTING.forEach(o=>{t.isMarkActive(e,o)&&n.push(o)}),new Set(n)},[e.selection,e.children,t.Editor.marks(e)]),i=c.useMemo(()=>{const n=[];return d.SCRIPT_FORMATTING.forEach(o=>{t.isMarkActive(e,o)&&n.push(o)}),new Set(n)},[e.selection,e.children,t.Editor.marks(e)]),u=c.useMemo(()=>new Set([...Array.from(l),...Array.from(i)]),[l,i]),h=c.useCallback(n=>{if(n==="all")return;const o=Array.from(n),f=Array.from(u),y=o.filter(s=>!f.includes(s)),k=f.filter(s=>!o.includes(s));[...y,...k].forEach(s=>{s==="superscript"||s==="subscript"?r(()=>{const a=t.isMarkActive(e,"superscript")?"superscript":t.isMarkActive(e,"subscript")?"subscript":null;y.includes(s)&&a&&a!==s&&t.toggleMark(e,a),t.toggleMark(e,s)})():r(()=>t.toggleMark(e,s))()})},[e,u,r]);return{selectedKeys:l,selectedScriptKeys:i,allSelectedKeys:u,handleAllSelectionChange:h}};exports.useFormattingState=A;exports.useKeyboardShortcuts=g;exports.usePreservedSelection=p;exports.useToolbarState=m;
|
|
2
|
+
//# sourceMappingURL=use-formatting-state-D7zenGZW.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-formatting-state-D7zenGZW.cjs.js","sources":["../../src/components/rich-text-input/hooks/use-keyboard-shortcuts.ts","../../src/components/rich-text-input/hooks/use-preserved-selection.ts","../../src/components/rich-text-input/hooks/use-toolbar-state.ts","../../src/components/rich-text-input/hooks/use-formatting-state.ts"],"sourcesContent":["/**\n * Hook for handling keyboard shortcuts in the rich text editor\n *\n * Used by:\n * - components/rich-text-editor.tsx: Attaches keyboard event handler to the editor\n *\n * Purpose:\n * - Centralizes all keyboard shortcut logic for the editor\n * - Handles formatting shortcuts (Cmd+B, Cmd+I, etc.)\n * - Manages undo/redo keyboard combinations\n * - Processes soft line breaks (Shift+Enter)\n * - Extracted from rich-text-editor.tsx to improve organization and testability\n *\n * @param editor - The Slate editor instance for applying changes\n * @returns Object containing the keyboard event handler\n */\nimport { useCallback } from \"react\";\nimport { Editor } from \"slate\";\nimport isHotkey from \"is-hotkey\";\nimport { HOTKEYS } from \"../constants\";\nimport { toggleMark } from \"../utils/slate-helpers\";\nimport { Softbreaker } from \"../utils/slate-helpers\";\n\nexport interface UseKeyboardShortcutsProps {\n editor: Editor;\n}\n\nexport const useKeyboardShortcuts = ({ editor }: UseKeyboardShortcutsProps) => {\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n // Handle undo/redo shortcuts\n if ((event.metaKey || event.ctrlKey) && event.key === \"z\") {\n event.preventDefault();\n if (event.shiftKey) {\n editor.redo();\n } else {\n editor.undo();\n }\n return;\n }\n\n // Handle formatting shortcuts\n for (const hotkey in HOTKEYS) {\n if (isHotkey(hotkey, event)) {\n event.preventDefault();\n const mark = HOTKEYS[hotkey as keyof typeof HOTKEYS];\n toggleMark(editor, mark);\n return;\n }\n }\n\n // Handle soft line breaks (Shift+Enter)\n if (event.shiftKey && event.key === \"Enter\") {\n event.preventDefault();\n editor.insertText(Softbreaker.placeholderCharacter);\n return;\n }\n },\n [editor]\n );\n\n return { handleKeyDown };\n};\n","import { useCallback } from \"react\";\nimport { Editor, Transforms } from \"slate\";\nimport { ReactEditor } from \"slate-react\";\n\n/**\n * Hook that provides a helper function to preserve selection when toolbar actions are executed.\n * This prevents losing text selection when interacting with toolbar buttons and menus.\n *\n * TODO: This works for toggle buttons, but not for menus.\n *\n * @param editor - The Slate editor instance\n * @returns A function that wraps actions to preserve selection and focus\n */\nexport const usePreservedSelection = (editor: Editor) => {\n return useCallback(\n (action: () => void) => {\n return () => {\n // Save the current selection\n const { selection } = editor;\n\n // Execute the action\n action();\n\n // Restore selection if it was lost\n if (selection && !editor.selection) {\n Transforms.select(editor, selection);\n }\n\n // Ensure editor stays focused\n if (!ReactEditor.isFocused(editor)) {\n ReactEditor.focus(editor);\n }\n };\n },\n [editor]\n );\n};\n","/**\n * Hook for managing rich text toolbar state and interactions\n *\n * Used by:\n * - components/rich-text-toolbar.tsx: Manages all toolbar state and event handlers\n *\n * Purpose:\n * - Centralizes complex toolbar state management logic\n * - Handles text style changes, list toggling, format detection\n * - Manages undo/redo button states\n * - Extracted from rich-text-toolbar.tsx to improve organization and testability\n * - Provides clean separation between UI and business logic\n *\n * @param withPreservedSelection - Function for preserving editor selection during operations\n * @returns Object containing all toolbar state and event handlers\n */\nimport { useMemo, useCallback } from \"react\";\nimport { Editor } from \"slate\";\nimport { useSlate } from \"slate-react\";\nimport type { Key } from \"react-aria\";\nimport { textStyles, blockTypes, type BlockType } from \"../constants\";\nimport {\n isMarkActive,\n isBlockActive,\n toggleBlock,\n} from \"../utils/slate-helpers\";\nimport type { CustomElement } from \"../utils/types\";\n\nexport interface UseToolbarStateProps {\n withPreservedSelection: (fn: () => void) => () => void;\n}\n\nexport const useToolbarState = ({\n withPreservedSelection,\n}: UseToolbarStateProps) => {\n const editor = useSlate();\n\n // Get current block type - using useSlate() means this automatically updates\n const currentTextStyle = useMemo(() => {\n return (\n blockTypes.find((type) =>\n isBlockActive(editor, type as CustomElement[\"type\"])\n ) || \"paragraph\"\n );\n }, [editor.selection, editor.children]);\n\n const selectedTextStyle = textStyles.find((v) => v.id === currentTextStyle);\n const selectedTextStyleLabel = selectedTextStyle?.label || \"\";\n\n // Handle text style changes\n const handleTextStyleChange = useCallback(\n (styleId: string) => {\n withPreservedSelection(() => {\n toggleBlock(editor, styleId as BlockType);\n })();\n },\n [editor, withPreservedSelection]\n );\n\n // Handle list formatting\n const handleListToggle = useCallback(\n (selectedKeys: Set<Key>) => {\n withPreservedSelection(() => {\n const selected = Array.from(selectedKeys)[0] as BlockType | undefined;\n const currentlyActive = isBlockActive(editor, \"bulleted-list\")\n ? \"bulleted-list\"\n : isBlockActive(editor, \"numbered-list\")\n ? \"numbered-list\"\n : null;\n\n if (selected) {\n toggleBlock(editor, selected);\n } else if (currentlyActive) {\n toggleBlock(editor, currentlyActive);\n }\n })();\n },\n [editor, withPreservedSelection]\n );\n\n // Get currently selected formatting keys - simplified deps\n const selectedFormatKeys = useMemo(() => {\n const keys: string[] = [];\n if (isMarkActive(editor, \"bold\")) keys.push(\"bold\");\n if (isMarkActive(editor, \"italic\")) keys.push(\"italic\");\n if (isMarkActive(editor, \"underline\")) keys.push(\"underline\");\n return new Set(keys);\n }, [editor.selection, editor.children, Editor.marks(editor)]);\n\n // Get currently selected list formatting key\n const selectedListKeys = useMemo(() => {\n const keys: string[] = [];\n if (isBlockActive(editor, \"bulleted-list\")) keys.push(\"bulleted-list\");\n if (isBlockActive(editor, \"numbered-list\")) keys.push(\"numbered-list\");\n return new Set(keys);\n }, [editor.selection, editor.children]);\n\n // Check history state for undo/redo buttons\n const hasUndos = useMemo(() => {\n return editor.history && editor.history.undos.length > 0;\n }, [editor.selection, editor.children]);\n\n const hasRedos = useMemo(() => {\n return editor.history && editor.history.redos.length > 0;\n }, [editor.selection, editor.children]);\n\n return {\n currentTextStyle,\n selectedTextStyle,\n selectedTextStyleLabel,\n handleTextStyleChange,\n handleListToggle,\n selectedFormatKeys,\n selectedListKeys,\n hasUndos,\n hasRedos,\n };\n};\n","/**\n * Hook for managing formatting menu state with mutual exclusion logic\n *\n * Used by:\n * - components/formatting-menu.tsx: Manages complex formatting state and interactions\n *\n * Purpose:\n * - Handles mutual exclusion between superscript and subscript formatting\n * - Manages state for all formatting options in the \"More Options\" menu\n * - Processes complex selection changes with custom logic\n * - Extracted from formatting-menu.tsx to improve organization and testability\n * - Separates complex business logic from UI rendering\n *\n * @param withPreservedSelection - Function for preserving editor selection during operations\n * @returns Object containing formatting state and selection change handler\n */\nimport { useMemo, useCallback } from \"react\";\nimport { Editor } from \"slate\";\nimport { useSlate } from \"slate-react\";\nimport type { Key } from \"react-aria\";\nimport { BASIC_FORMATTING, SCRIPT_FORMATTING } from \"../constants\";\nimport { isMarkActive, toggleMark } from \"../utils/slate-helpers\";\n\nexport interface UseFormattingStateProps {\n withPreservedSelection: (fn: () => void) => () => void;\n}\n\nexport const useFormattingState = ({\n withPreservedSelection,\n}: UseFormattingStateProps) => {\n const editor = useSlate();\n\n // Get currently selected formatting keys (strikethrough and code)\n const selectedKeys = useMemo(() => {\n const keys: string[] = [];\n BASIC_FORMATTING.forEach((format) => {\n if (isMarkActive(editor, format)) keys.push(format);\n });\n return new Set(keys);\n }, [editor.selection, editor.children, Editor.marks(editor)]);\n\n // Get currently selected script formatting key (superscript or subscript - mutually exclusive)\n const selectedScriptKeys = useMemo(() => {\n const keys: string[] = [];\n SCRIPT_FORMATTING.forEach((format) => {\n if (isMarkActive(editor, format)) keys.push(format);\n });\n return new Set(keys);\n }, [editor.selection, editor.children, Editor.marks(editor)]);\n\n // Combine all selected keys for display purposes\n const allSelectedKeys = useMemo(() => {\n return new Set([\n ...Array.from(selectedKeys),\n ...Array.from(selectedScriptKeys),\n ]);\n }, [selectedKeys, selectedScriptKeys]);\n\n // Handle all selection changes with custom logic for mutual exclusion\n const handleAllSelectionChange = useCallback(\n (keys: \"all\" | Set<Key>) => {\n if (keys === \"all\") return;\n\n const keyArray = Array.from(keys) as string[];\n const currentKeys = Array.from(allSelectedKeys);\n\n // Find newly selected keys (toggle on)\n const newlySelected = keyArray.filter(\n (key) => !currentKeys.includes(key)\n );\n // Find newly deselected keys (toggle off)\n const newlyDeselected = currentKeys.filter(\n (key) => !keyArray.includes(key)\n );\n\n // Handle changes for each key\n [...newlySelected, ...newlyDeselected].forEach((key) => {\n if (key === \"superscript\" || key === \"subscript\") {\n // Handle script formatting with mutual exclusion\n withPreservedSelection(() => {\n const currentlyActive = isMarkActive(editor, \"superscript\")\n ? \"superscript\"\n : isMarkActive(editor, \"subscript\")\n ? \"subscript\"\n : null;\n\n if (newlySelected.includes(key)) {\n // If selecting a script format, deactivate the other one first\n if (currentlyActive && currentlyActive !== key) {\n toggleMark(editor, currentlyActive);\n }\n toggleMark(editor, key);\n } else {\n // Deselecting\n toggleMark(editor, key);\n }\n })();\n } else {\n // Handle regular formatting (strikethrough, code)\n withPreservedSelection(() => toggleMark(editor, key))();\n }\n });\n },\n [editor, allSelectedKeys, withPreservedSelection]\n );\n\n return {\n selectedKeys,\n selectedScriptKeys,\n allSelectedKeys,\n handleAllSelectionChange,\n };\n};\n"],"names":["useKeyboardShortcuts","editor","useCallback","event","hotkey","HOTKEYS","isHotkey","mark","toggleMark","Softbreaker","usePreservedSelection","action","selection","Transforms","ReactEditor","useToolbarState","withPreservedSelection","useSlate","currentTextStyle","useMemo","blockTypes","type","isBlockActive","selectedTextStyle","textStyles","v","selectedTextStyleLabel","handleTextStyleChange","styleId","toggleBlock","handleListToggle","selectedKeys","selected","currentlyActive","selectedFormatKeys","keys","isMarkActive","Editor","selectedListKeys","hasUndos","hasRedos","useFormattingState","BASIC_FORMATTING","format","selectedScriptKeys","SCRIPT_FORMATTING","allSelectedKeys","handleAllSelectionChange","keyArray","currentKeys","newlySelected","key","newlyDeselected"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const p=require("../chunks/avatar-C2KIWewd.cjs.js"),b=require("../chunks/box-CWni3A32.cjs.js"),g=require("../chunks/button-CU8FW_Pl.cjs.js"),T=require("../chunks/code-q31e3vT2.cjs.js"),a=require("../chunks/combobox-DtPDxCo3.cjs.js"),m=require("../chunks/dialog-CVa-E9-A.cjs.js"),q=require("../chunks/divider-BuizjeAj.cjs.js"),_=require("../chunks/group-Buy-O6Mr.cjs.js"),I=require("../chunks/icon-button-Cc0MkBbk.cjs.js"),B=require("../chunks/icon-toggle-button-D-C99Q0s.cjs.js"),C=require("../chunks/image-CGOYoc2s.cjs.js"),R=require("../chunks/kbd-DFeaXiKY.cjs.js"),D=require("../chunks/link-DWa1zIUJ.cjs.js"),u=require("../chunks/list-DJC9BmoC.cjs.js"),F=require("../chunks/simple-grid-Cd2MJxSX.cjs.js"),x=require("../chunks/text-CCW9kDT_.cjs.js"),c=require("../chunks/tooltip-g8-hEdZp.cjs.js"),S=require("../chunks/make-element-focusable-bPAMXt4D.cjs.js"),A=require("../chunks/nimbus-provider-D3DvYEDv.cjs.js"),M=require("../chunks/checkbox-6nLo9Jy2.cjs.js"),G=require("../chunks/stack-CIN13EDn.cjs.js"),k=require("../chunks/visually-hidden-Bh-G5QHv.cjs.js"),P=require("../chunks/text-input-C2y4O13I.cjs.js"),O=require("../chunks/number-input-CPnA0dO-.cjs.js"),L=require("../chunks/grid-Chuw1xje.cjs.js"),i=require("../chunks/select-Coyt1pJN.cjs.js"),r=require("../chunks/accordion-EDJoghXQ.cjs.js"),n=require("../chunks/alert-BhoRNIWA.cjs.js"),H=require("../chunks/badge-CCrBksXu.cjs.js"),l=require("../chunks/card-DeWTV05B.cjs.js"),o=require("../chunks/form-field-DxcGAb23.cjs.js"),h=require("../chunks/icon-Cny8ZtnX.cjs.js"),v=require("../chunks/loading-spinner-DdYXuYkg.cjs.js"),y=require("../chunks/password-input-BqhrDjyW.cjs.js"),f=require("../chunks/split-button-BYrr5vRr.cjs.js"),w=require("../chunks/time-input-cHUvGWDc.cjs.js"),E=require("../chunks/multiline-text-input-sXIlwrvT.cjs.js"),d=require("../chunks/radio-input-BTEXrXaF.cjs.js"),N=require("../chunks/switch-BgNpbn2e.cjs.js"),j=require("../chunks/tag-group-B3YSTBpb.cjs.js"),K=require("../chunks/toggle-button-C9ezVsSp.cjs.js"),s=require("../chunks/toggle-button-group-DX134q7m.cjs.js"),V=require("../chunks/date-input-DJ_aFB9i.cjs.js"),z=require("../chunks/calendar-DJKWldpV.cjs.js"),J=require("../chunks/date-picker-f3TylaP5.cjs.js"),Q=require("../chunks/progress-bar-CrS1rODC.cjs.js"),U=require("../chunks/range-calendar-CFotnBzs.cjs.js"),W=require("../chunks/date-range-picker-CxsPpWyX.cjs.js"),X=require("../chunks/toolbar-CLGq6IO7.cjs.js"),Y=require("../chunks/rich-text-input-
|
|
1
|
+
"use strict";const p=require("../chunks/avatar-C2KIWewd.cjs.js"),b=require("../chunks/box-CWni3A32.cjs.js"),g=require("../chunks/button-CU8FW_Pl.cjs.js"),T=require("../chunks/code-q31e3vT2.cjs.js"),a=require("../chunks/combobox-DtPDxCo3.cjs.js"),m=require("../chunks/dialog-CVa-E9-A.cjs.js"),q=require("../chunks/divider-BuizjeAj.cjs.js"),_=require("../chunks/group-Buy-O6Mr.cjs.js"),I=require("../chunks/icon-button-Cc0MkBbk.cjs.js"),B=require("../chunks/icon-toggle-button-D-C99Q0s.cjs.js"),C=require("../chunks/image-CGOYoc2s.cjs.js"),R=require("../chunks/kbd-DFeaXiKY.cjs.js"),D=require("../chunks/link-DWa1zIUJ.cjs.js"),u=require("../chunks/list-DJC9BmoC.cjs.js"),F=require("../chunks/simple-grid-Cd2MJxSX.cjs.js"),x=require("../chunks/text-CCW9kDT_.cjs.js"),c=require("../chunks/tooltip-g8-hEdZp.cjs.js"),S=require("../chunks/make-element-focusable-bPAMXt4D.cjs.js"),A=require("../chunks/nimbus-provider-D3DvYEDv.cjs.js"),M=require("../chunks/checkbox-6nLo9Jy2.cjs.js"),G=require("../chunks/stack-CIN13EDn.cjs.js"),k=require("../chunks/visually-hidden-Bh-G5QHv.cjs.js"),P=require("../chunks/text-input-C2y4O13I.cjs.js"),O=require("../chunks/number-input-CPnA0dO-.cjs.js"),L=require("../chunks/grid-Chuw1xje.cjs.js"),i=require("../chunks/select-Coyt1pJN.cjs.js"),r=require("../chunks/accordion-EDJoghXQ.cjs.js"),n=require("../chunks/alert-BhoRNIWA.cjs.js"),H=require("../chunks/badge-CCrBksXu.cjs.js"),l=require("../chunks/card-DeWTV05B.cjs.js"),o=require("../chunks/form-field-DxcGAb23.cjs.js"),h=require("../chunks/icon-Cny8ZtnX.cjs.js"),v=require("../chunks/loading-spinner-DdYXuYkg.cjs.js"),y=require("../chunks/password-input-BqhrDjyW.cjs.js"),f=require("../chunks/split-button-BYrr5vRr.cjs.js"),w=require("../chunks/time-input-cHUvGWDc.cjs.js"),E=require("../chunks/multiline-text-input-sXIlwrvT.cjs.js"),d=require("../chunks/radio-input-BTEXrXaF.cjs.js"),N=require("../chunks/switch-BgNpbn2e.cjs.js"),j=require("../chunks/tag-group-B3YSTBpb.cjs.js"),K=require("../chunks/toggle-button-C9ezVsSp.cjs.js"),s=require("../chunks/toggle-button-group-DX134q7m.cjs.js"),V=require("../chunks/date-input-DJ_aFB9i.cjs.js"),z=require("../chunks/calendar-DJKWldpV.cjs.js"),J=require("../chunks/date-picker-f3TylaP5.cjs.js"),Q=require("../chunks/progress-bar-CrS1rODC.cjs.js"),U=require("../chunks/range-calendar-CFotnBzs.cjs.js"),W=require("../chunks/date-range-picker-CxsPpWyX.cjs.js"),X=require("../chunks/toolbar-CLGq6IO7.cjs.js"),Y=require("../chunks/rich-text-input-C5lp1D-D.cjs.js"),e=require("../chunks/data-table-Cpk3q34E.cjs.js"),Z=require("@chakra-ui/react/flex"),$=require("@chakra-ui/react/heading"),ee=require("@chakra-ui/react/table"),t=require("../chunks/menu-Bm1u-R6o.cjs.js");exports.Avatar=p.Avatar;exports.Box=b.Box;exports.Button=g.Button;exports.Code=T.Code;exports.ComboBox=a.ComboBox;exports._ComboBoxOption=a.ComboBoxOption;exports._ComboBoxOptionGroup=a.ComboBoxOptionGroup;exports._ComboBoxRoot=a.ComboBoxRoot;exports.Dialog=m.Dialog;exports.Divider=q.Divider;exports.Group=_.Group;exports.IconButton=I.IconButton;exports.IconToggleButton=B.IconToggleButton;exports.Image=C.Image;exports.Kbd=R.Kbd;exports.Link=D.Link;exports.List=u.List;exports._ListIndicator=u.ListIndicator;exports._ListItem=u.ListItem;exports._ListRoot=u.ListRoot;exports.SimpleGrid=F.SimpleGrid;exports.Text=x.Text;exports.Tooltip=c.Tooltip;exports._TooltipContent=c.TooltipContent;exports._TooltipRoot=c.TooltipRoot;exports.MakeElementFocusable=S.MakeElementFocusable;exports.NimbusProvider=A.NimbusProvider;exports.Checkbox=M.Checkbox;exports.Stack=G.Stack;exports.VisuallyHidden=k.VisuallyHidden;exports.TextInput=P.TextInput;exports.NumberInput=O.NumberInput;exports.Grid=L.Grid;exports.Select=i.Select;exports._SelectOption=i.SelectOption;exports._SelectOptionGroup=i.SelectOptionGroup;exports._SelectOptions=i.SelectOptions;exports._SelectRoot=i.SelectRoot;exports.Accordion=r.Accordion;exports._AccordionContent=r.AccordionContent;exports._AccordionHeader=r.AccordionHeader;exports._AccordionHeaderRightContent=r.AccordionHeaderRightContent;exports._AccordionItem=r.AccordionItem;exports._AccordionRoot=r.AccordionRoot;exports.Alert=n.Alert;exports._AlertActions=n.AlertActions;exports._AlertDescription=n.AlertDescription;exports._AlertDismissButton=n.AlertDismissButton;exports._AlertRoot=n.AlertRoot;exports._AlertTitle=n.AlertTitle;exports.Badge=H.Badge;exports.Card=l.Card;exports._CardContent=l.CardContent;exports._CardHeader=l.CardHeader;exports._CardRoot=l.CardRoot;exports.FormField=o.FormField;exports._FormFieldDescription=o.FormFieldDescription;exports._FormFieldError=o.FormFieldError;exports._FormFieldInfoBox=o.FormFieldInfoBox;exports._FormFieldInput=o.FormFieldInput;exports._FormFieldLabel=o.FormFieldLabel;exports._FormFieldRoot=o.FormFieldRoot;exports.Icon=h.Icon;exports.LoadingSpinner=v.LoadingSpinner;exports.PasswordInput=y.PasswordInput;exports.SplitButton=f.SplitButton;exports.TimeInput=w.TimeInput;exports.MultilineTextInput=E.MultilineTextInput;exports.RadioInput=d.RadioInput;exports._RadioInputOption=d.RadioInputOption;exports._RadioInputRoot=d.RadioInputRoot;exports.Switch=N.Switch;exports.TagGroup=j.TagGroup;exports.ToggleButton=K.ToggleButton;exports.ToggleButtonGroup=s.ToggleButtonGroup;exports._ToggleButtonGroupButton=s.ToggleButtonGroupButton;exports._ToggleButtonGroupRoot=s.ToggleButtonGroupRoot;exports.DateInput=V.DateInput;exports.Calendar=z.Calendar;exports.DatePicker=J.DatePicker;exports.ProgressBar=Q.ProgressBar;exports.RangeCalendar=U.RangeCalendar;exports.DateRangePicker=W.DateRangePicker;exports.Toolbar=X.Toolbar;exports.RichTextInput=Y.RichTextInput;exports.DataTable=e.DataTable;exports._DataTableBody=e.DataTableBody;exports._DataTableCell=e.DataTableCell;exports._DataTableColumn=e.DataTableColumn;exports._DataTableExpandButton=e.DataTableExpandButton;exports._DataTableFooter=e.DataTableFooter;exports._DataTableHeader=e.DataTableHeader;exports._DataTableNestedIcon=e.DataTableNestedIcon;exports._DataTableRoot=e.DataTableRoot;exports._DataTableRow=e.DataTableRow;exports._DataTableSelectionCell=e.DataTableSelectionCell;exports._DataTableTable=e.DataTableTable;exports.Menu=t.Menu;exports._MenuContent=t.MenuContent;exports._MenuItem=t.MenuItem;exports._MenuRoot=t.MenuRoot;exports._MenuSection=t.MenuSection;exports._MenuSeparator=t.MenuSeparator;exports._MenuSubmenu=t.MenuSubmenu;exports._MenuSubmenuTrigger=t.MenuSubmenuTrigger;exports._MenuTrigger=t.MenuTrigger;
|
|
2
2
|
//# sourceMappingURL=components.cjs.map
|
|
@@ -47,7 +47,7 @@ import { P as Da } from "../chunks/progress-bar-pPWJ1Sn8.es.js";
|
|
|
47
47
|
import { R as Ia } from "../chunks/range-calendar-BOP_J_5a.es.js";
|
|
48
48
|
import { D as Ra } from "../chunks/date-range-picker-Dtji64Q9.es.js";
|
|
49
49
|
import { T as Fa } from "../chunks/toolbar-hpBfKrTl.es.js";
|
|
50
|
-
import { R as Ma } from "../chunks/rich-text-input-
|
|
50
|
+
import { R as Ma } from "../chunks/rich-text-input-CYlc7Ozc.es.js";
|
|
51
51
|
import { D as La, e as ka, g as Pa, d as ha, i as Ha, h as Oa, c as Na, j as va, a as wa, f as Ea, k as ya, b as Ka } from "../chunks/data-table-mXLxUWQz.es.js";
|
|
52
52
|
import { Flex as ja } from "@chakra-ui/react/flex";
|
|
53
53
|
import { Heading as za } from "@chakra-ui/react/heading";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("../chunks/use-formatting-state-
|
|
1
|
+
"use strict";const e=require("../chunks/use-formatting-state-D7zenGZW.cjs.js");exports.useFormattingState=e.useFormattingState;exports.useKeyboardShortcuts=e.useKeyboardShortcuts;exports.usePreservedSelection=e.usePreservedSelection;exports.useToolbarState=e.useToolbarState;
|
|
2
2
|
//# sourceMappingURL=hooks.cjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const t=require("../chunks/rich-text-input-
|
|
1
|
+
"use strict";const t=require("../chunks/rich-text-input-C5lp1D-D.cjs.js");exports.RichTextInput=t.RichTextInput;
|
|
2
2
|
//# sourceMappingURL=rich-text-input.cjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const t=require("../chunks/slate-helpers-
|
|
1
|
+
"use strict";const t=require("../chunks/slate-helpers-CcSj-DBm.cjs.js"),i=require("./constants.cjs"),o=e=>t.Text.isText(e)&&e.text.trim()!=="",a=e=>e.children.some(r=>o(r)||t.Element.isElement(r)&&a(r)),c=e=>{if(!e||e.trim()==="")return!0;try{return!t.fromHTML(e).some(n=>t.Element.isElement(n)?a(n):t.Text.isText(n)?o(n):!1)}catch(r){return console.warn("Failed to check if rich text is empty:",r),!0}};function l(e){return i.textStyles.find(r=>r.id===e)}function u(e){return l(e)?.label||e}function g(){return i.textStyles.map(e=>e.id)}function d(e){return i.textStyles.some(r=>r.id===e)}function y(e){return l(e)?.props||null}function s(e){return e.startsWith("heading-")}function f(e){return s(e)&&{"heading-one":1,"heading-two":2,"heading-three":3,"heading-four":4,"heading-five":5}[e]||null}function m(e){return{1:"heading-one",2:"heading-two",3:"heading-three",4:"heading-four",5:"heading-five"}[e]||null}exports.Element=t.Element$1;exports.Leaf=t.Leaf;exports.Softbreaker=t.Softbreaker;exports.createEmptyValue=t.createEmptyValue;exports.focusEditor=t.focusEditor;exports.fromHTML=t.fromHTML;exports.isBlockActive=t.isBlockActive;exports.isMarkActive=t.isMarkActive;exports.resetEditor=t.resetEditor;exports.toHTML=t.toHTML;exports.toggleBlock=t.toggleBlock;exports.toggleMark=t.toggleMark;exports.validSlateStateAdapter=t.validSlateStateAdapter;exports.withLinks=t.withLinks;exports.createHeadingBlockType=m;exports.getHeadingLevel=f;exports.getTextStyleById=l;exports.getTextStyleIds=g;exports.getTextStyleLabel=u;exports.getTextStyleProps=y;exports.isEmpty=c;exports.isHeadingType=s;exports.isValidTextStyle=d;
|
|
2
2
|
//# sourceMappingURL=utils.cjs.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { f as u, E as i, T as a } from "../chunks/slate-helpers-
|
|
2
|
-
import { g as v, L as M, S as k, c as L, e as w, a as H, i as B, r as N, t as V, d as b, b as A, v as F, w as I } from "../chunks/slate-helpers-
|
|
1
|
+
import { f as u, E as i, T as a } from "../chunks/slate-helpers-DsTiLoO8.es.js";
|
|
2
|
+
import { g as v, L as M, S as k, c as L, e as w, a as H, i as B, r as N, t as V, d as b, b as A, v as F, w as I } from "../chunks/slate-helpers-DsTiLoO8.es.js";
|
|
3
3
|
import { textStyles as r } from "./constants.es.js";
|
|
4
4
|
const s = (e) => a.isText(e) && e.text.trim() !== "", o = (e) => e.children.some(
|
|
5
5
|
(t) => s(t) || i.isElement(t) && o(t)
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const ne=require("./chunks/avatar-C2KIWewd.cjs.js"),ae=require("./chunks/box-CWni3A32.cjs.js"),ie=require("./chunks/button-CU8FW_Pl.cjs.js"),ue=require("./chunks/code-q31e3vT2.cjs.js"),B=require("./chunks/combobox-DtPDxCo3.cjs.js"),le=require("./chunks/dialog-CVa-E9-A.cjs.js"),ce=require("./chunks/divider-BuizjeAj.cjs.js"),se=require("./chunks/group-Buy-O6Mr.cjs.js"),de=require("./chunks/icon-button-Cc0MkBbk.cjs.js"),fe=require("./chunks/icon-toggle-button-D-C99Q0s.cjs.js"),pe=require("./chunks/image-CGOYoc2s.cjs.js"),me=require("./chunks/kbd-DFeaXiKY.cjs.js"),ge=require("./chunks/link-DWa1zIUJ.cjs.js"),L=require("./chunks/list-DJC9BmoC.cjs.js"),ye=require("./chunks/simple-grid-Cd2MJxSX.cjs.js"),ve=require("./chunks/text-CCW9kDT_.cjs.js"),G=require("./chunks/tooltip-g8-hEdZp.cjs.js"),be=require("./chunks/make-element-focusable-bPAMXt4D.cjs.js"),Y=require("./chunks/nimbus-provider-D3DvYEDv.cjs.js"),Ce=require("./chunks/checkbox-6nLo9Jy2.cjs.js"),he=require("./chunks/stack-CIN13EDn.cjs.js"),Te=require("./chunks/visually-hidden-Bh-G5QHv.cjs.js"),ke=require("./chunks/text-input-C2y4O13I.cjs.js"),Se=require("./chunks/number-input-CPnA0dO-.cjs.js"),Re=require("./chunks/grid-Chuw1xje.cjs.js"),w=require("./chunks/select-Coyt1pJN.cjs.js"),R=require("./chunks/accordion-EDJoghXQ.cjs.js"),_=require("./chunks/alert-BhoRNIWA.cjs.js"),_e=require("./chunks/badge-CCrBksXu.cjs.js"),M=require("./chunks/card-DeWTV05B.cjs.js"),k=require("./chunks/form-field-DxcGAb23.cjs.js"),qe=require("./chunks/icon-Cny8ZtnX.cjs.js"),De=require("./chunks/loading-spinner-DdYXuYkg.cjs.js"),we=require("./chunks/password-input-BqhrDjyW.cjs.js"),Ie=require("./chunks/split-button-BYrr5vRr.cjs.js"),Ee=require("./chunks/time-input-cHUvGWDc.cjs.js"),xe=require("./chunks/multiline-text-input-sXIlwrvT.cjs.js"),N=require("./chunks/radio-input-BTEXrXaF.cjs.js"),Ae=require("./chunks/switch-BgNpbn2e.cjs.js"),Be=require("./chunks/tag-group-B3YSTBpb.cjs.js"),Le=require("./chunks/toggle-button-C9ezVsSp.cjs.js"),j=require("./chunks/toggle-button-group-DX134q7m.cjs.js"),Me=require("./chunks/date-input-DJ_aFB9i.cjs.js"),Fe=require("./chunks/calendar-DJKWldpV.cjs.js"),Pe=require("./chunks/date-picker-f3TylaP5.cjs.js"),He=require("./chunks/progress-bar-CrS1rODC.cjs.js"),Oe=require("./chunks/range-calendar-CFotnBzs.cjs.js"),Ke=require("./chunks/date-range-picker-CxsPpWyX.cjs.js"),Ge=require("./chunks/toolbar-CLGq6IO7.cjs.js"),Ne=require("./chunks/rich-text-input-CItP9BzJ.cjs.js"),y=require("./chunks/data-table-Cpk3q34E.cjs.js"),je=require("./chunks/index-C8Yrk__l.cjs.js"),Ue=require("./chunks/slate-helpers-BN_9Hky2.cjs.js"),d=require("react"),bt=require("@chakra-ui/react/flex"),Ct=require("@chakra-ui/react/heading"),ht=require("@chakra-ui/react/table"),h=require("./chunks/menu-Bm1u-R6o.cjs.js");require("react/jsx-runtime");function K(){return K=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},K.apply(null,arguments)}var Z=["shift","alt","meta","mod","ctrl"],Ve={esc:"escape",return:"enter",".":"period",",":"comma","-":"slash"," ":"space","`":"backquote","#":"backslash","+":"bracketright",ShiftLeft:"shift",ShiftRight:"shift",AltLeft:"alt",AltRight:"alt",MetaLeft:"meta",MetaRight:"meta",OSLeft:"meta",OSRight:"meta",ControlLeft:"ctrl",ControlRight:"ctrl"};function A(e){return(e&&Ve[e]||e||"").trim().toLowerCase().replace(/key|digit|numpad|arrow/,"")}function ze(e){return Z.includes(e)}function F(e,t){return t===void 0&&(t=","),e.split(t)}function P(e,t,r){t===void 0&&(t="+");var n=e.toLocaleLowerCase().split(t).map(function(i){return A(i)}),c={alt:n.includes("alt"),ctrl:n.includes("ctrl")||n.includes("control"),shift:n.includes("shift"),meta:n.includes("meta"),mod:n.includes("mod")},a=n.filter(function(i){return!Z.includes(i)});return K({},c,{keys:a,description:r,hotkey:e})}var T=new Set;function U(e){return Array.isArray(e)}function We(e,t){t===void 0&&(t=",");var r=U(e)?e:e.split(t);return r.every(function(n){return T.has(n.trim().toLowerCase())})}function $e(e){var t=Array.isArray(e)?e:[e];T.has("meta")&&T.forEach(function(r){return!ze(r)&&T.delete(r.toLowerCase())}),t.forEach(function(r){return T.add(r.toLowerCase())})}function Xe(e){var t=Array.isArray(e)?e:[e];e==="meta"?T.clear():t.forEach(function(r){return T.delete(r.toLowerCase())})}function Je(e,t,r){(typeof r=="function"&&r(e,t)||r===!0)&&e.preventDefault()}function Qe(e,t,r){return typeof r=="function"?r(e,t):r===!0||r===void 0}function Ye(e){return ee(e,["input","textarea","select"])}function ee(e,t){t===void 0&&(t=!1);var r=e.target,n=e.composed,c=null;return Ze(r)&&n?c=e.composedPath()[0]&&e.composedPath()[0].tagName:c=r&&r.tagName,U(t)?!!(c&&t&&t.some(function(a){var i;return a.toLowerCase()===((i=c)==null?void 0:i.toLowerCase())})):!!(c&&t&&t)}function Ze(e){return!!e.tagName&&!e.tagName.startsWith("-")&&e.tagName.includes("-")}function et(e,t){return e.length===0&&t?(console.warn('A hotkey has the "scopes" option set, however no active scopes were found. If you want to use the global scopes feature, you need to wrap your app in a <HotkeysProvider>'),!0):t?e.some(function(r){return t.includes(r)})||e.includes("*"):!0}var tt=function(t,r,n){n===void 0&&(n=!1);var c=r.alt,a=r.meta,i=r.mod,f=r.shift,u=r.ctrl,s=r.keys,C=t.key,v=t.code,l=t.ctrlKey,o=t.metaKey,q=t.shiftKey,m=t.altKey,g=A(v),b=C.toLowerCase();if(!(s!=null&&s.includes(g))&&!(s!=null&&s.includes(b))&&!["ctrl","control","unknown","meta","alt","shift","os"].includes(g))return!1;if(!n){if(c===!m&&b!=="alt"||f===!q&&b!=="shift")return!1;if(i){if(!o&&!l)return!1}else if(a===!o&&b!=="meta"&&b!=="os"||u===!l&&b!=="ctrl"&&b!=="control")return!1}return s&&s.length===1&&(s.includes(b)||s.includes(g))?!0:s?We(s):!s},rt=d.createContext(void 0),ot=function(){return d.useContext(rt)};function te(e,t){return e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(e).length===Object.keys(t).length&&Object.keys(e).reduce(function(r,n){return r&&te(e[n],t[n])},!0):e===t}var nt=d.createContext({hotkeys:[],enabledScopes:[],toggleScope:function(){},enableScope:function(){},disableScope:function(){}}),at=function(){return d.useContext(nt)};function it(e){var t=d.useRef(void 0);return te(t.current,e)||(t.current=e),t.current}var X=function(t){t.stopPropagation(),t.preventDefault(),t.stopImmediatePropagation()},ut=typeof window<"u"?d.useLayoutEffect:d.useEffect;function lt(e,t,r,n){var c=d.useState(null),a=c[0],i=c[1],f=d.useRef(!1),u=r instanceof Array?n instanceof Array?void 0:n:r,s=U(e)?e.join(u?.splitKey):e,C=r instanceof Array?r:n instanceof Array?n:void 0,v=d.useCallback(t,C??[]),l=d.useRef(v);C?l.current=v:l.current=t;var o=it(u),q=at(),m=q.enabledScopes,g=ot();return ut(function(){if(!(o?.enabled===!1||!et(m,o?.scopes))){var b=function(p,E){var W;if(E===void 0&&(E=!1),!(Ye(p)&&!ee(p,o?.enableOnFormTags))){if(a!==null){var x=a.getRootNode();if((x instanceof Document||x instanceof ShadowRoot)&&x.activeElement!==a&&!a.contains(x.activeElement)){X(p);return}}(W=p.target)!=null&&W.isContentEditable&&!(o!=null&&o.enableOnContentEditable)||F(s,o?.splitKey).forEach(function(oe){var $,D=P(oe,o?.combinationKey);if(tt(p,D,o?.ignoreModifiers)||($=D.keys)!=null&&$.includes("*")){if(o!=null&&o.ignoreEventWhen!=null&&o.ignoreEventWhen(p)||E&&f.current)return;if(Je(p,D,o?.preventDefault),!Qe(p,D,o?.enabled)){X(p);return}l.current(p,D),E||(f.current=!0)}})}},V=function(p){p.key!==void 0&&($e(A(p.code)),(o?.keydown===void 0&&o?.keyup!==!0||o!=null&&o.keydown)&&b(p))},z=function(p){p.key!==void 0&&(Xe(A(p.code)),f.current=!1,o!=null&&o.keyup&&b(p,!0))},I=a||u?.document||document;return I.addEventListener("keyup",z,u?.eventListenerOptions),I.addEventListener("keydown",V,u?.eventListenerOptions),g&&F(s,o?.splitKey).forEach(function(S){return g.addHotkey(P(S,o?.combinationKey,o?.description))}),function(){I.removeEventListener("keyup",z,u?.eventListenerOptions),I.removeEventListener("keydown",V,u?.eventListenerOptions),g&&F(s,o?.splitKey).forEach(function(S){return g.removeHotkey(P(S,o?.combinationKey,o?.description))})}}},[a,s,o,m]),i}function ct(){var e=d.useRef(!1),t=d.useCallback(function(){return e.current},[]);return d.useEffect(function(){return e.current=!0,function(){e.current=!1}},[]),t}var st=function(e){e===void 0&&(e={});var t=d.useState(e),r=t[0],n=t[1],c=d.useCallback(function(a){n(function(i){return Object.assign({},i,a instanceof Function?a(i):a)})},[]);return[r,c]},H,J;function dt(){return J||(J=1,H=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,r=[],n=0;n<e.rangeCount;n++)r.push(e.getRangeAt(n));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null;break}return e.removeAllRanges(),function(){e.type==="Caret"&&e.removeAllRanges(),e.rangeCount||r.forEach(function(c){e.addRange(c)}),t&&t.focus()}}),H}var O,Q;function ft(){if(Q)return O;Q=1;var e=dt(),t={"text/plain":"Text","text/html":"Url",default:"Text"},r="Copy to clipboard: #{key}, Enter";function n(a){var i=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return a.replace(/#{\s*key\s*}/g,i)}function c(a,i){var f,u,s,C,v,l,o=!1;i||(i={}),f=i.debug||!1;try{s=e(),C=document.createRange(),v=document.getSelection(),l=document.createElement("span"),l.textContent=a,l.ariaHidden="true",l.style.all="unset",l.style.position="fixed",l.style.top=0,l.style.clip="rect(0, 0, 0, 0)",l.style.whiteSpace="pre",l.style.webkitUserSelect="text",l.style.MozUserSelect="text",l.style.msUserSelect="text",l.style.userSelect="text",l.addEventListener("copy",function(m){if(m.stopPropagation(),i.format)if(m.preventDefault(),typeof m.clipboardData>"u"){f&&console.warn("unable to use e.clipboardData"),f&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var g=t[i.format]||t.default;window.clipboardData.setData(g,a)}else m.clipboardData.clearData(),m.clipboardData.setData(i.format,a);i.onCopy&&(m.preventDefault(),i.onCopy(m.clipboardData))}),document.body.appendChild(l),C.selectNodeContents(l),v.addRange(C);var q=document.execCommand("copy");if(!q)throw new Error("copy command was unsuccessful");o=!0}catch(m){f&&console.error("unable to copy using execCommand: ",m),f&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(i.format||"text",a),i.onCopy&&i.onCopy(window.clipboardData),o=!0}catch(g){f&&console.error("unable to copy using clipboardData: ",g),f&&console.error("falling back to prompt"),u=n("message"in i?i.message:r),window.prompt(u,a)}}finally{v&&(typeof v.removeRange=="function"?v.removeRange(C):v.removeAllRanges()),l&&document.body.removeChild(l),s()}return o}return O=c,O}var pt=ft();const mt=Ue.getDefaultExportFromCjs(pt);var gt=function(){var e=ct(),t=st({value:void 0,error:void 0,noUserInteraction:!0}),r=t[0],n=t[1],c=d.useCallback(function(a){if(e()){var i,f;try{if(typeof a!="string"&&typeof a!="number"){var u=new Error("Cannot copy typeof "+typeof a+" to clipboard, must be a string");process.env.NODE_ENV==="development"&&console.error(u),n({value:a,error:u,noUserInteraction:!0});return}else if(a===""){var u=new Error("Cannot copy empty string to clipboard.");process.env.NODE_ENV==="development"&&console.error(u),n({value:a,error:u,noUserInteraction:!0});return}f=a.toString(),i=mt(f),n({value:f,error:void 0,noUserInteraction:i})}catch(s){n({value:f,error:s,noUserInteraction:i})}}},[]);return[r,c]};function yt(){const[e,t]=d.useState(r());function r(){return document.documentElement.style.getPropertyValue("color-scheme")||localStorage.getItem("theme")||"light"}return d.useEffect(()=>{const n=document.documentElement,c=new MutationObserver(()=>{const a=r();t(a)});return c.observe(n,{attributes:!0,attributeFilter:["style"]}),()=>c.disconnect()},[]),e}function re(){const{resolvedTheme:e,setTheme:t}=Y.z();return{colorMode:e,setColorMode:t,toggleColorMode:()=>{t(e==="light"?"dark":"light")}}}function vt(e,t){const{colorMode:r}=re();return r==="light"?e:t}exports.Avatar=ne.Avatar;exports.Box=ae.Box;exports.Button=ie.Button;exports.Code=ue.Code;exports.ComboBox=B.ComboBox;exports._ComboBoxOption=B.ComboBoxOption;exports._ComboBoxOptionGroup=B.ComboBoxOptionGroup;exports._ComboBoxRoot=B.ComboBoxRoot;exports.Dialog=le.Dialog;exports.Divider=ce.Divider;exports.Group=se.Group;exports.IconButton=de.IconButton;exports.IconToggleButton=fe.IconToggleButton;exports.Image=pe.Image;exports.Kbd=me.Kbd;exports.Link=ge.Link;exports.List=L.List;exports._ListIndicator=L.ListIndicator;exports._ListItem=L.ListItem;exports._ListRoot=L.ListRoot;exports.SimpleGrid=ye.SimpleGrid;exports.Text=ve.Text;exports.Tooltip=G.Tooltip;exports._TooltipContent=G.TooltipContent;exports._TooltipRoot=G.TooltipRoot;exports.MakeElementFocusable=be.MakeElementFocusable;exports.NimbusProvider=Y.NimbusProvider;exports.Checkbox=Ce.Checkbox;exports.Stack=he.Stack;exports.VisuallyHidden=Te.VisuallyHidden;exports.TextInput=ke.TextInput;exports.NumberInput=Se.NumberInput;exports.Grid=Re.Grid;exports.Select=w.Select;exports._SelectOption=w.SelectOption;exports._SelectOptionGroup=w.SelectOptionGroup;exports._SelectOptions=w.SelectOptions;exports._SelectRoot=w.SelectRoot;exports.Accordion=R.Accordion;exports._AccordionContent=R.AccordionContent;exports._AccordionHeader=R.AccordionHeader;exports._AccordionHeaderRightContent=R.AccordionHeaderRightContent;exports._AccordionItem=R.AccordionItem;exports._AccordionRoot=R.AccordionRoot;exports.Alert=_.Alert;exports._AlertActions=_.AlertActions;exports._AlertDescription=_.AlertDescription;exports._AlertDismissButton=_.AlertDismissButton;exports._AlertRoot=_.AlertRoot;exports._AlertTitle=_.AlertTitle;exports.Badge=_e.Badge;exports.Card=M.Card;exports._CardContent=M.CardContent;exports._CardHeader=M.CardHeader;exports._CardRoot=M.CardRoot;exports.FormField=k.FormField;exports._FormFieldDescription=k.FormFieldDescription;exports._FormFieldError=k.FormFieldError;exports._FormFieldInfoBox=k.FormFieldInfoBox;exports._FormFieldInput=k.FormFieldInput;exports._FormFieldLabel=k.FormFieldLabel;exports._FormFieldRoot=k.FormFieldRoot;exports.Icon=qe.Icon;exports.LoadingSpinner=De.LoadingSpinner;exports.PasswordInput=we.PasswordInput;exports.SplitButton=Ie.SplitButton;exports.TimeInput=Ee.TimeInput;exports.MultilineTextInput=xe.MultilineTextInput;exports.RadioInput=N.RadioInput;exports._RadioInputOption=N.RadioInputOption;exports._RadioInputRoot=N.RadioInputRoot;exports.Switch=Ae.Switch;exports.TagGroup=Be.TagGroup;exports.ToggleButton=Le.ToggleButton;exports.ToggleButtonGroup=j.ToggleButtonGroup;exports._ToggleButtonGroupButton=j.ToggleButtonGroupButton;exports._ToggleButtonGroupRoot=j.ToggleButtonGroupRoot;exports.DateInput=Me.DateInput;exports.Calendar=Fe.Calendar;exports.DatePicker=Pe.DatePicker;exports.ProgressBar=He.ProgressBar;exports.RangeCalendar=Oe.RangeCalendar;exports.DateRangePicker=Ke.DateRangePicker;exports.Toolbar=Ge.Toolbar;exports.RichTextInput=Ne.RichTextInput;exports.DataTable=y.DataTable;exports._DataTableBody=y.DataTableBody;exports._DataTableCell=y.DataTableCell;exports._DataTableColumn=y.DataTableColumn;exports._DataTableExpandButton=y.DataTableExpandButton;exports._DataTableFooter=y.DataTableFooter;exports._DataTableHeader=y.DataTableHeader;exports._DataTableNestedIcon=y.DataTableNestedIcon;exports._DataTableRoot=y.DataTableRoot;exports._DataTableRow=y.DataTableRow;exports._DataTableSelectionCell=y.DataTableSelectionCell;exports._DataTableTable=y.DataTableTable;exports.system=je.system;exports.Menu=h.Menu;exports._MenuContent=h.MenuContent;exports._MenuItem=h.MenuItem;exports._MenuRoot=h.MenuRoot;exports._MenuSection=h.MenuSection;exports._MenuSeparator=h.MenuSeparator;exports._MenuSubmenu=h.MenuSubmenu;exports._MenuSubmenuTrigger=h.MenuSubmenuTrigger;exports._MenuTrigger=h.MenuTrigger;exports.useColorMode=re;exports.useColorModeValue=vt;exports.useColorScheme=yt;exports.useCopyToClipboard=gt;exports.useHotkeys=lt;
|
|
1
|
+
"use strict";const ne=require("./chunks/avatar-C2KIWewd.cjs.js"),ae=require("./chunks/box-CWni3A32.cjs.js"),ie=require("./chunks/button-CU8FW_Pl.cjs.js"),ue=require("./chunks/code-q31e3vT2.cjs.js"),B=require("./chunks/combobox-DtPDxCo3.cjs.js"),le=require("./chunks/dialog-CVa-E9-A.cjs.js"),ce=require("./chunks/divider-BuizjeAj.cjs.js"),se=require("./chunks/group-Buy-O6Mr.cjs.js"),de=require("./chunks/icon-button-Cc0MkBbk.cjs.js"),fe=require("./chunks/icon-toggle-button-D-C99Q0s.cjs.js"),pe=require("./chunks/image-CGOYoc2s.cjs.js"),me=require("./chunks/kbd-DFeaXiKY.cjs.js"),ge=require("./chunks/link-DWa1zIUJ.cjs.js"),L=require("./chunks/list-DJC9BmoC.cjs.js"),ye=require("./chunks/simple-grid-Cd2MJxSX.cjs.js"),ve=require("./chunks/text-CCW9kDT_.cjs.js"),G=require("./chunks/tooltip-g8-hEdZp.cjs.js"),be=require("./chunks/make-element-focusable-bPAMXt4D.cjs.js"),Y=require("./chunks/nimbus-provider-D3DvYEDv.cjs.js"),Ce=require("./chunks/checkbox-6nLo9Jy2.cjs.js"),he=require("./chunks/stack-CIN13EDn.cjs.js"),Te=require("./chunks/visually-hidden-Bh-G5QHv.cjs.js"),ke=require("./chunks/text-input-C2y4O13I.cjs.js"),Se=require("./chunks/number-input-CPnA0dO-.cjs.js"),Re=require("./chunks/grid-Chuw1xje.cjs.js"),w=require("./chunks/select-Coyt1pJN.cjs.js"),R=require("./chunks/accordion-EDJoghXQ.cjs.js"),_=require("./chunks/alert-BhoRNIWA.cjs.js"),_e=require("./chunks/badge-CCrBksXu.cjs.js"),M=require("./chunks/card-DeWTV05B.cjs.js"),k=require("./chunks/form-field-DxcGAb23.cjs.js"),qe=require("./chunks/icon-Cny8ZtnX.cjs.js"),De=require("./chunks/loading-spinner-DdYXuYkg.cjs.js"),we=require("./chunks/password-input-BqhrDjyW.cjs.js"),Ie=require("./chunks/split-button-BYrr5vRr.cjs.js"),Ee=require("./chunks/time-input-cHUvGWDc.cjs.js"),xe=require("./chunks/multiline-text-input-sXIlwrvT.cjs.js"),N=require("./chunks/radio-input-BTEXrXaF.cjs.js"),Ae=require("./chunks/switch-BgNpbn2e.cjs.js"),Be=require("./chunks/tag-group-B3YSTBpb.cjs.js"),Le=require("./chunks/toggle-button-C9ezVsSp.cjs.js"),j=require("./chunks/toggle-button-group-DX134q7m.cjs.js"),Me=require("./chunks/date-input-DJ_aFB9i.cjs.js"),Fe=require("./chunks/calendar-DJKWldpV.cjs.js"),Pe=require("./chunks/date-picker-f3TylaP5.cjs.js"),He=require("./chunks/progress-bar-CrS1rODC.cjs.js"),Oe=require("./chunks/range-calendar-CFotnBzs.cjs.js"),Ke=require("./chunks/date-range-picker-CxsPpWyX.cjs.js"),Ge=require("./chunks/toolbar-CLGq6IO7.cjs.js"),Ne=require("./chunks/rich-text-input-C5lp1D-D.cjs.js"),y=require("./chunks/data-table-Cpk3q34E.cjs.js"),je=require("./chunks/index-C8Yrk__l.cjs.js"),Ue=require("./chunks/slate-helpers-CcSj-DBm.cjs.js"),d=require("react"),bt=require("@chakra-ui/react/flex"),Ct=require("@chakra-ui/react/heading"),ht=require("@chakra-ui/react/table"),h=require("./chunks/menu-Bm1u-R6o.cjs.js");require("react/jsx-runtime");function K(){return K=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},K.apply(null,arguments)}var Z=["shift","alt","meta","mod","ctrl"],Ve={esc:"escape",return:"enter",".":"period",",":"comma","-":"slash"," ":"space","`":"backquote","#":"backslash","+":"bracketright",ShiftLeft:"shift",ShiftRight:"shift",AltLeft:"alt",AltRight:"alt",MetaLeft:"meta",MetaRight:"meta",OSLeft:"meta",OSRight:"meta",ControlLeft:"ctrl",ControlRight:"ctrl"};function A(e){return(e&&Ve[e]||e||"").trim().toLowerCase().replace(/key|digit|numpad|arrow/,"")}function ze(e){return Z.includes(e)}function F(e,t){return t===void 0&&(t=","),e.split(t)}function P(e,t,r){t===void 0&&(t="+");var n=e.toLocaleLowerCase().split(t).map(function(i){return A(i)}),c={alt:n.includes("alt"),ctrl:n.includes("ctrl")||n.includes("control"),shift:n.includes("shift"),meta:n.includes("meta"),mod:n.includes("mod")},a=n.filter(function(i){return!Z.includes(i)});return K({},c,{keys:a,description:r,hotkey:e})}var T=new Set;function U(e){return Array.isArray(e)}function We(e,t){t===void 0&&(t=",");var r=U(e)?e:e.split(t);return r.every(function(n){return T.has(n.trim().toLowerCase())})}function $e(e){var t=Array.isArray(e)?e:[e];T.has("meta")&&T.forEach(function(r){return!ze(r)&&T.delete(r.toLowerCase())}),t.forEach(function(r){return T.add(r.toLowerCase())})}function Xe(e){var t=Array.isArray(e)?e:[e];e==="meta"?T.clear():t.forEach(function(r){return T.delete(r.toLowerCase())})}function Je(e,t,r){(typeof r=="function"&&r(e,t)||r===!0)&&e.preventDefault()}function Qe(e,t,r){return typeof r=="function"?r(e,t):r===!0||r===void 0}function Ye(e){return ee(e,["input","textarea","select"])}function ee(e,t){t===void 0&&(t=!1);var r=e.target,n=e.composed,c=null;return Ze(r)&&n?c=e.composedPath()[0]&&e.composedPath()[0].tagName:c=r&&r.tagName,U(t)?!!(c&&t&&t.some(function(a){var i;return a.toLowerCase()===((i=c)==null?void 0:i.toLowerCase())})):!!(c&&t&&t)}function Ze(e){return!!e.tagName&&!e.tagName.startsWith("-")&&e.tagName.includes("-")}function et(e,t){return e.length===0&&t?(console.warn('A hotkey has the "scopes" option set, however no active scopes were found. If you want to use the global scopes feature, you need to wrap your app in a <HotkeysProvider>'),!0):t?e.some(function(r){return t.includes(r)})||e.includes("*"):!0}var tt=function(t,r,n){n===void 0&&(n=!1);var c=r.alt,a=r.meta,i=r.mod,f=r.shift,u=r.ctrl,s=r.keys,C=t.key,v=t.code,l=t.ctrlKey,o=t.metaKey,q=t.shiftKey,m=t.altKey,g=A(v),b=C.toLowerCase();if(!(s!=null&&s.includes(g))&&!(s!=null&&s.includes(b))&&!["ctrl","control","unknown","meta","alt","shift","os"].includes(g))return!1;if(!n){if(c===!m&&b!=="alt"||f===!q&&b!=="shift")return!1;if(i){if(!o&&!l)return!1}else if(a===!o&&b!=="meta"&&b!=="os"||u===!l&&b!=="ctrl"&&b!=="control")return!1}return s&&s.length===1&&(s.includes(b)||s.includes(g))?!0:s?We(s):!s},rt=d.createContext(void 0),ot=function(){return d.useContext(rt)};function te(e,t){return e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(e).length===Object.keys(t).length&&Object.keys(e).reduce(function(r,n){return r&&te(e[n],t[n])},!0):e===t}var nt=d.createContext({hotkeys:[],enabledScopes:[],toggleScope:function(){},enableScope:function(){},disableScope:function(){}}),at=function(){return d.useContext(nt)};function it(e){var t=d.useRef(void 0);return te(t.current,e)||(t.current=e),t.current}var X=function(t){t.stopPropagation(),t.preventDefault(),t.stopImmediatePropagation()},ut=typeof window<"u"?d.useLayoutEffect:d.useEffect;function lt(e,t,r,n){var c=d.useState(null),a=c[0],i=c[1],f=d.useRef(!1),u=r instanceof Array?n instanceof Array?void 0:n:r,s=U(e)?e.join(u?.splitKey):e,C=r instanceof Array?r:n instanceof Array?n:void 0,v=d.useCallback(t,C??[]),l=d.useRef(v);C?l.current=v:l.current=t;var o=it(u),q=at(),m=q.enabledScopes,g=ot();return ut(function(){if(!(o?.enabled===!1||!et(m,o?.scopes))){var b=function(p,E){var W;if(E===void 0&&(E=!1),!(Ye(p)&&!ee(p,o?.enableOnFormTags))){if(a!==null){var x=a.getRootNode();if((x instanceof Document||x instanceof ShadowRoot)&&x.activeElement!==a&&!a.contains(x.activeElement)){X(p);return}}(W=p.target)!=null&&W.isContentEditable&&!(o!=null&&o.enableOnContentEditable)||F(s,o?.splitKey).forEach(function(oe){var $,D=P(oe,o?.combinationKey);if(tt(p,D,o?.ignoreModifiers)||($=D.keys)!=null&&$.includes("*")){if(o!=null&&o.ignoreEventWhen!=null&&o.ignoreEventWhen(p)||E&&f.current)return;if(Je(p,D,o?.preventDefault),!Qe(p,D,o?.enabled)){X(p);return}l.current(p,D),E||(f.current=!0)}})}},V=function(p){p.key!==void 0&&($e(A(p.code)),(o?.keydown===void 0&&o?.keyup!==!0||o!=null&&o.keydown)&&b(p))},z=function(p){p.key!==void 0&&(Xe(A(p.code)),f.current=!1,o!=null&&o.keyup&&b(p,!0))},I=a||u?.document||document;return I.addEventListener("keyup",z,u?.eventListenerOptions),I.addEventListener("keydown",V,u?.eventListenerOptions),g&&F(s,o?.splitKey).forEach(function(S){return g.addHotkey(P(S,o?.combinationKey,o?.description))}),function(){I.removeEventListener("keyup",z,u?.eventListenerOptions),I.removeEventListener("keydown",V,u?.eventListenerOptions),g&&F(s,o?.splitKey).forEach(function(S){return g.removeHotkey(P(S,o?.combinationKey,o?.description))})}}},[a,s,o,m]),i}function ct(){var e=d.useRef(!1),t=d.useCallback(function(){return e.current},[]);return d.useEffect(function(){return e.current=!0,function(){e.current=!1}},[]),t}var st=function(e){e===void 0&&(e={});var t=d.useState(e),r=t[0],n=t[1],c=d.useCallback(function(a){n(function(i){return Object.assign({},i,a instanceof Function?a(i):a)})},[]);return[r,c]},H,J;function dt(){return J||(J=1,H=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,r=[],n=0;n<e.rangeCount;n++)r.push(e.getRangeAt(n));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null;break}return e.removeAllRanges(),function(){e.type==="Caret"&&e.removeAllRanges(),e.rangeCount||r.forEach(function(c){e.addRange(c)}),t&&t.focus()}}),H}var O,Q;function ft(){if(Q)return O;Q=1;var e=dt(),t={"text/plain":"Text","text/html":"Url",default:"Text"},r="Copy to clipboard: #{key}, Enter";function n(a){var i=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return a.replace(/#{\s*key\s*}/g,i)}function c(a,i){var f,u,s,C,v,l,o=!1;i||(i={}),f=i.debug||!1;try{s=e(),C=document.createRange(),v=document.getSelection(),l=document.createElement("span"),l.textContent=a,l.ariaHidden="true",l.style.all="unset",l.style.position="fixed",l.style.top=0,l.style.clip="rect(0, 0, 0, 0)",l.style.whiteSpace="pre",l.style.webkitUserSelect="text",l.style.MozUserSelect="text",l.style.msUserSelect="text",l.style.userSelect="text",l.addEventListener("copy",function(m){if(m.stopPropagation(),i.format)if(m.preventDefault(),typeof m.clipboardData>"u"){f&&console.warn("unable to use e.clipboardData"),f&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var g=t[i.format]||t.default;window.clipboardData.setData(g,a)}else m.clipboardData.clearData(),m.clipboardData.setData(i.format,a);i.onCopy&&(m.preventDefault(),i.onCopy(m.clipboardData))}),document.body.appendChild(l),C.selectNodeContents(l),v.addRange(C);var q=document.execCommand("copy");if(!q)throw new Error("copy command was unsuccessful");o=!0}catch(m){f&&console.error("unable to copy using execCommand: ",m),f&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(i.format||"text",a),i.onCopy&&i.onCopy(window.clipboardData),o=!0}catch(g){f&&console.error("unable to copy using clipboardData: ",g),f&&console.error("falling back to prompt"),u=n("message"in i?i.message:r),window.prompt(u,a)}}finally{v&&(typeof v.removeRange=="function"?v.removeRange(C):v.removeAllRanges()),l&&document.body.removeChild(l),s()}return o}return O=c,O}var pt=ft();const mt=Ue.getDefaultExportFromCjs(pt);var gt=function(){var e=ct(),t=st({value:void 0,error:void 0,noUserInteraction:!0}),r=t[0],n=t[1],c=d.useCallback(function(a){if(e()){var i,f;try{if(typeof a!="string"&&typeof a!="number"){var u=new Error("Cannot copy typeof "+typeof a+" to clipboard, must be a string");process.env.NODE_ENV==="development"&&console.error(u),n({value:a,error:u,noUserInteraction:!0});return}else if(a===""){var u=new Error("Cannot copy empty string to clipboard.");process.env.NODE_ENV==="development"&&console.error(u),n({value:a,error:u,noUserInteraction:!0});return}f=a.toString(),i=mt(f),n({value:f,error:void 0,noUserInteraction:i})}catch(s){n({value:f,error:s,noUserInteraction:i})}}},[]);return[r,c]};function yt(){const[e,t]=d.useState(r());function r(){return document.documentElement.style.getPropertyValue("color-scheme")||localStorage.getItem("theme")||"light"}return d.useEffect(()=>{const n=document.documentElement,c=new MutationObserver(()=>{const a=r();t(a)});return c.observe(n,{attributes:!0,attributeFilter:["style"]}),()=>c.disconnect()},[]),e}function re(){const{resolvedTheme:e,setTheme:t}=Y.z();return{colorMode:e,setColorMode:t,toggleColorMode:()=>{t(e==="light"?"dark":"light")}}}function vt(e,t){const{colorMode:r}=re();return r==="light"?e:t}exports.Avatar=ne.Avatar;exports.Box=ae.Box;exports.Button=ie.Button;exports.Code=ue.Code;exports.ComboBox=B.ComboBox;exports._ComboBoxOption=B.ComboBoxOption;exports._ComboBoxOptionGroup=B.ComboBoxOptionGroup;exports._ComboBoxRoot=B.ComboBoxRoot;exports.Dialog=le.Dialog;exports.Divider=ce.Divider;exports.Group=se.Group;exports.IconButton=de.IconButton;exports.IconToggleButton=fe.IconToggleButton;exports.Image=pe.Image;exports.Kbd=me.Kbd;exports.Link=ge.Link;exports.List=L.List;exports._ListIndicator=L.ListIndicator;exports._ListItem=L.ListItem;exports._ListRoot=L.ListRoot;exports.SimpleGrid=ye.SimpleGrid;exports.Text=ve.Text;exports.Tooltip=G.Tooltip;exports._TooltipContent=G.TooltipContent;exports._TooltipRoot=G.TooltipRoot;exports.MakeElementFocusable=be.MakeElementFocusable;exports.NimbusProvider=Y.NimbusProvider;exports.Checkbox=Ce.Checkbox;exports.Stack=he.Stack;exports.VisuallyHidden=Te.VisuallyHidden;exports.TextInput=ke.TextInput;exports.NumberInput=Se.NumberInput;exports.Grid=Re.Grid;exports.Select=w.Select;exports._SelectOption=w.SelectOption;exports._SelectOptionGroup=w.SelectOptionGroup;exports._SelectOptions=w.SelectOptions;exports._SelectRoot=w.SelectRoot;exports.Accordion=R.Accordion;exports._AccordionContent=R.AccordionContent;exports._AccordionHeader=R.AccordionHeader;exports._AccordionHeaderRightContent=R.AccordionHeaderRightContent;exports._AccordionItem=R.AccordionItem;exports._AccordionRoot=R.AccordionRoot;exports.Alert=_.Alert;exports._AlertActions=_.AlertActions;exports._AlertDescription=_.AlertDescription;exports._AlertDismissButton=_.AlertDismissButton;exports._AlertRoot=_.AlertRoot;exports._AlertTitle=_.AlertTitle;exports.Badge=_e.Badge;exports.Card=M.Card;exports._CardContent=M.CardContent;exports._CardHeader=M.CardHeader;exports._CardRoot=M.CardRoot;exports.FormField=k.FormField;exports._FormFieldDescription=k.FormFieldDescription;exports._FormFieldError=k.FormFieldError;exports._FormFieldInfoBox=k.FormFieldInfoBox;exports._FormFieldInput=k.FormFieldInput;exports._FormFieldLabel=k.FormFieldLabel;exports._FormFieldRoot=k.FormFieldRoot;exports.Icon=qe.Icon;exports.LoadingSpinner=De.LoadingSpinner;exports.PasswordInput=we.PasswordInput;exports.SplitButton=Ie.SplitButton;exports.TimeInput=Ee.TimeInput;exports.MultilineTextInput=xe.MultilineTextInput;exports.RadioInput=N.RadioInput;exports._RadioInputOption=N.RadioInputOption;exports._RadioInputRoot=N.RadioInputRoot;exports.Switch=Ae.Switch;exports.TagGroup=Be.TagGroup;exports.ToggleButton=Le.ToggleButton;exports.ToggleButtonGroup=j.ToggleButtonGroup;exports._ToggleButtonGroupButton=j.ToggleButtonGroupButton;exports._ToggleButtonGroupRoot=j.ToggleButtonGroupRoot;exports.DateInput=Me.DateInput;exports.Calendar=Fe.Calendar;exports.DatePicker=Pe.DatePicker;exports.ProgressBar=He.ProgressBar;exports.RangeCalendar=Oe.RangeCalendar;exports.DateRangePicker=Ke.DateRangePicker;exports.Toolbar=Ge.Toolbar;exports.RichTextInput=Ne.RichTextInput;exports.DataTable=y.DataTable;exports._DataTableBody=y.DataTableBody;exports._DataTableCell=y.DataTableCell;exports._DataTableColumn=y.DataTableColumn;exports._DataTableExpandButton=y.DataTableExpandButton;exports._DataTableFooter=y.DataTableFooter;exports._DataTableHeader=y.DataTableHeader;exports._DataTableNestedIcon=y.DataTableNestedIcon;exports._DataTableRoot=y.DataTableRoot;exports._DataTableRow=y.DataTableRow;exports._DataTableSelectionCell=y.DataTableSelectionCell;exports._DataTableTable=y.DataTableTable;exports.system=je.system;exports.Menu=h.Menu;exports._MenuContent=h.MenuContent;exports._MenuItem=h.MenuItem;exports._MenuRoot=h.MenuRoot;exports._MenuSection=h.MenuSection;exports._MenuSeparator=h.MenuSeparator;exports._MenuSubmenu=h.MenuSubmenu;exports._MenuSubmenuTrigger=h.MenuSubmenuTrigger;exports._MenuTrigger=h.MenuTrigger;exports.useColorMode=re;exports.useColorModeValue=vt;exports.useColorScheme=yt;exports.useCopyToClipboard=gt;exports.useHotkeys=lt;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.es.js
CHANGED
|
@@ -48,10 +48,10 @@ import { P as Xr } from "./chunks/progress-bar-pPWJ1Sn8.es.js";
|
|
|
48
48
|
import { R as Qr } from "./chunks/range-calendar-BOP_J_5a.es.js";
|
|
49
49
|
import { D as Zr } from "./chunks/date-range-picker-Dtji64Q9.es.js";
|
|
50
50
|
import { T as to } from "./chunks/toolbar-hpBfKrTl.es.js";
|
|
51
|
-
import { R as oo } from "./chunks/rich-text-input-
|
|
51
|
+
import { R as oo } from "./chunks/rich-text-input-CYlc7Ozc.es.js";
|
|
52
52
|
import { D as ao, e as so, g as io, d as uo, i as lo, h as co, c as fo, j as po, a as mo, f as yo, k as vo, b as go } from "./chunks/data-table-mXLxUWQz.es.js";
|
|
53
53
|
import { s as Co } from "./chunks/index-jAeaCpRm.es.js";
|
|
54
|
-
import { p as J } from "./chunks/slate-helpers-
|
|
54
|
+
import { p as J } from "./chunks/slate-helpers-DsTiLoO8.es.js";
|
|
55
55
|
import { useState as M, useRef as k, useCallback as E, useLayoutEffect as Q, useEffect as B, useContext as G, createContext as q } from "react";
|
|
56
56
|
import { Flex as ho } from "@chakra-ui/react/flex";
|
|
57
57
|
import { Heading as wo } from "@chakra-ui/react/heading";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commercetools/nimbus",
|
|
3
|
-
"version": "0.0.0-canary-
|
|
3
|
+
"version": "0.0.0-canary-20250903194502",
|
|
4
4
|
"main": "./dist/index.cjs",
|
|
5
5
|
"module": "./dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -57,10 +57,10 @@
|
|
|
57
57
|
"react-hotkeys-hook": "^4.6.1",
|
|
58
58
|
"react-stately": "3.41.0",
|
|
59
59
|
"react-use": "^17.5.1",
|
|
60
|
-
"slate": "^0.
|
|
60
|
+
"slate": "^0.118.1",
|
|
61
61
|
"slate-history": "^0.113.1",
|
|
62
|
-
"slate-hyperscript": "^0.
|
|
63
|
-
"slate-react": "^0.
|
|
62
|
+
"slate-hyperscript": "^0.100.0",
|
|
63
|
+
"slate-react": "^0.117.4"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@chakra-ui/cli": "^3.26.0",
|
|
@@ -92,14 +92,14 @@
|
|
|
92
92
|
"vite-plugin-dts": "^4.5.4",
|
|
93
93
|
"vite-tsconfig-paths": "^5.1.4",
|
|
94
94
|
"vitest": "^3.2.4",
|
|
95
|
-
"@commercetools/nimbus-icons": "^0.0.0-canary-
|
|
96
|
-
"@commercetools/nimbus-tokens": "^0.0.0-canary-
|
|
95
|
+
"@commercetools/nimbus-icons": "^0.0.0-canary-20250903194502",
|
|
96
|
+
"@commercetools/nimbus-tokens": "^0.0.0-canary-20250903194502"
|
|
97
97
|
},
|
|
98
98
|
"peerDependencies": {
|
|
99
99
|
"@chakra-ui/react": "^3.26.0",
|
|
100
100
|
"react": "^19.0.0",
|
|
101
|
-
"@commercetools/nimbus-icons": "^0.0.0-canary-
|
|
102
|
-
"@commercetools/nimbus-tokens": "^0.0.0-canary-
|
|
101
|
+
"@commercetools/nimbus-icons": "^0.0.0-canary-20250903194502",
|
|
102
|
+
"@commercetools/nimbus-tokens": "^0.0.0-canary-20250903194502"
|
|
103
103
|
},
|
|
104
104
|
"scripts": {
|
|
105
105
|
"build": "pnpm run build-theme-typings && pnpm run build:lib",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require("react/jsx-runtime"),p=require("react"),k=require("@chakra-ui/react"),oe=require("./extractStyleProps-CZpHKp1I.cjs.js"),n=require("./slate-helpers-BN_9Hky2.cjs.js"),D=require("./use-formatting-state-DVcnyVBl.cjs.js"),I=require("../components/constants.cjs"),b=require("./box-CWni3A32.cjs.js"),N=require("./divider-BuizjeAj.cjs.js"),U=require("./group-Buy-O6Mr.cjs.js"),O=require("./icon-button-Cc0MkBbk.cjs.js"),w=require("./icon-toggle-button-D-C99Q0s.cjs.js"),v=require("./text-CCW9kDT_.cjs.js"),d=require("./tooltip-g8-hEdZp.cjs.js"),M=require("./visually-hidden-Bh-G5QHv.cjs.js"),_=require("./toggle-button-group-DX134q7m.cjs.js"),re=require("./toolbar-CLGq6IO7.cjs.js"),f=require("@commercetools/nimbus-icons"),y=require("./menu-Bm1u-R6o.cjs.js"),G=k.defineSlotRecipe({slots:["root","toolbar","editable"],className:"nimbus-rich-text-input",base:{root:{display:"flex",flexDirection:"column",position:"relative",width:"full",borderRadius:"200",borderWidth:"{sizes.25}",colorPalette:"slate",borderColor:"colorPalette.7",backgroundColor:"colorPalette.contrast","&[data-invalid='true']":{borderWidth:"{sizes.50}",borderColor:"critical.7"}},toolbar:{boxShadow:"1","[data-disabled='true'] &":{opacity:"0.5"}},editable:{padding:"400",minHeight:"inherit",outline:"none","[data-disabled='true'] &":{cursor:"not-allowed",opacity:"0.5"},"& p":{textStyle:"md",fontWeight:"500"},"& h1":{textStyle:"2xl",fontWeight:"500"},"& h2":{textStyle:"xl",fontWeight:"500"},"& h3":{textStyle:"lg",fontWeight:"500"},"& h4":{textStyle:"md",fontWeight:"500"},"& h5":{textStyle:"xs",fontWeight:"500"},"& blockquote":{textStyle:"md",fontWeight:"400",borderLeftWidth:"{sizes.100}",paddingLeft:"400"},"& ul":{paddingLeft:"600",listStyleType:"disc"},"& ol":{paddingLeft:"600",listStyleType:"decimal"},"& code":{padding:"100",fontFamily:"mono"},"& pre":{padding:"300",borderRadius:"200",overflow:"auto","& code":{padding:"0"}},"& a":{color:"primary.11",textDecoration:"underline",cursor:"pointer",_hover:{textDecoration:"none"}},"& strong":{fontWeight:"700"},"& em":{fontStyle:"italic"},"& u":{textDecoration:"underline"},"& del":{textDecoration:"line-through"},"& sup":{fontSize:"75%",verticalAlign:"super",lineHeight:"0"},"& sub":{fontSize:"75%",verticalAlign:"sub",lineHeight:"0"}}},variants:{}}),{withProvider:ne,withContext:K}=k.createSlotRecipeContext({recipe:G}),ie=ne("div","root"),se=K("div","toolbar"),le=K("div","editable");var ae={isHistory(t){return n.isPlainObject(t)&&Array.isArray(t.redos)&&Array.isArray(t.undos)&&(t.redos.length===0||n.Operation.isOperationList(t.redos[0].operations))&&(t.undos.length===0||n.Operation.isOperationList(t.undos[0].operations))}},z=new WeakMap,S=new WeakMap,C=new WeakMap,m={isHistoryEditor(t){return ae.isHistory(t.history)&&n.Editor.isEditor(t)},isMerging(t){return S.get(t)},isSplittingOnce(t){return C.get(t)},setSplittingOnce(t,o){C.set(t,o)},isSaving(t){return z.get(t)},redo(t){t.redo()},undo(t){t.undo()},withMerging(t,o){var i=m.isMerging(t);S.set(t,!0),o(),S.set(t,i)},withNewBatch(t,o){var i=m.isMerging(t);S.set(t,!0),C.set(t,!0),o(),S.set(t,i),C.delete(t)},withoutMerging(t,o){var i=m.isMerging(t);S.set(t,!1),o(),S.set(t,i)},withoutSaving(t,o){var i=m.isSaving(t);z.set(t,!1);try{o()}finally{z.set(t,i)}}},de=t=>{var o=t,{apply:i}=o;return o.history={undos:[],redos:[]},o.redo=()=>{var{history:l}=o,{redos:s}=l;if(s.length>0){var a=s[s.length-1];a.selectionBefore&&n.Transforms.setSelection(o,a.selectionBefore),m.withoutSaving(o,()=>{n.Editor.withoutNormalizing(o,()=>{for(var c of a.operations)o.apply(c)})}),l.redos.pop(),o.writeHistory("undos",a)}},o.undo=()=>{var{history:l}=o,{undos:s}=l;if(s.length>0){var a=s[s.length-1];m.withoutSaving(o,()=>{n.Editor.withoutNormalizing(o,()=>{var c=a.operations.map(n.Operation.inverse).reverse();for(var u of c)o.apply(u);a.selectionBefore&&n.Transforms.setSelection(o,a.selectionBefore)})}),o.writeHistory("redos",a),l.undos.pop()}},o.apply=l=>{var{operations:s,history:a}=o,{undos:c}=a,u=c[c.length-1],j=u&&u.operations[u.operations.length-1],g=m.isSaving(o),h=m.isMerging(o);if(g==null&&(g=ue(l)),g){if(h==null&&(u==null?h=!1:s.length!==0?h=!0:h=ce(l,j)),m.isSplittingOnce(o)&&(h=!1,m.setSplittingOnce(o,void 0)),u&&h)u.operations.push(l);else{var r={operations:[l],selectionBefore:o.selection};o.writeHistory("undos",r)}for(;c.length>100;)c.shift();a.redos=[]}i(l)},o.writeHistory=(l,s)=>{o.history[l].push(s)},o},ce=(t,o)=>!!(o&&t.type==="insert_text"&&o.type==="insert_text"&&t.offset===o.offset+o.text.length&&n.Path.equals(t.path,o.path)||o&&t.type==="remove_text"&&o.type==="remove_text"&&t.offset+t.text.length===o.offset&&n.Path.equals(t.path,o.path)),ue=(t,o)=>t.type!=="set_selection";const X=p.forwardRef((t,o)=>{const{value:i,onChange:l,onFocus:s,onBlur:a,placeholder:c=I.EDITOR_DEFAULTS.placeholder,isDisabled:u=I.EDITOR_DEFAULTS.isDisabled,isReadOnly:j=I.EDITOR_DEFAULTS.isReadOnly,autoFocus:g=I.EDITOR_DEFAULTS.autoFocus,toolbar:h}=t,r=p.useMemo(()=>{const x=n.createEditor();return n.withLinks(de(n.withReact(x)))},[]),{handleKeyDown:E}=D.useKeyboardShortcuts({editor:r}),H=p.useCallback(x=>{s&&s(x)},[s]),L=p.useCallback(x=>{a&&a(x)},[a]);p.useImperativeHandle(o,()=>({focus:()=>n.focusEditor(r),resetValue:x=>n.resetEditor(r,x)}),[r]);const P=p.useCallback(x=>e.jsx(n.Element$1,{...x}),[]),F=p.useCallback(x=>e.jsx(n.Leaf,{...x}),[]),q=n.createEmptyValue(),V=Array.isArray(i)&&i.length>0?i:q;return e.jsxs(n.Slate,{editor:r,value:V,onChange:l,children:[h&&e.jsx(se,{children:h}),e.jsx(le,{asChild:!0,children:e.jsx(n.Editable,{renderElement:P,renderLeaf:F,placeholder:c,autoFocus:g,readOnly:j||u,onKeyDown:E,onFocus:H,onBlur:L,"aria-label":"Rich text editor",role:"textbox","aria-multiline":"true"})})]})});X.displayName="RichTextEditor";const he=({isDisabled:t=!1})=>{const o=n.useSlate(),i=D.usePreservedSelection(o),{allSelectedKeys:l,handleAllSelectionChange:s}=D.useFormattingState({withPreservedSelection:i});return e.jsxs(y.Menu.Root,{selectionMode:"multiple",selectedKeys:l,onSelectionChange:s,children:[e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsx(y.Menu.Trigger,{asChild:!0,children:e.jsx(O.IconButton,{size:"xs",variant:"ghost","aria-label":"More formatting options",isDisabled:t,onMouseDown:a=>a.preventDefault(),children:e.jsx(f.MoreHoriz,{})})}),e.jsx(d.Tooltip.Content,{placement:"top",children:"More styles"})]}),e.jsxs(y.Menu.Content,{children:[e.jsx(y.Menu.Item,{id:"strikethrough",children:e.jsxs(b.Box,{slot:"label",display:"flex",alignItems:"center",gap:"200",children:[e.jsx(f.FormatStrikethrough,{}),e.jsx(v.Text,{textStyle:"sm",children:"Strikethrough"})]})}),e.jsx(y.Menu.Item,{id:"code",children:e.jsxs(b.Box,{slot:"label",display:"flex",alignItems:"center",gap:"200",children:[e.jsx(f.Code,{}),e.jsx(v.Text,{textStyle:"sm",children:"Code"})]})}),e.jsx(y.Menu.Item,{id:"superscript",children:e.jsxs(b.Box,{slot:"label",display:"flex",alignItems:"center",gap:"200",children:[e.jsx(v.Text,{children:"X²"}),e.jsx(v.Text,{textStyle:"sm",children:"Superscript"})]})}),e.jsx(y.Menu.Item,{id:"subscript",children:e.jsxs(b.Box,{slot:"label",display:"flex",alignItems:"center",gap:"200",children:[e.jsx(v.Text,{children:"X₂"}),e.jsx(v.Text,{textStyle:"sm",children:"Subscript"})]})})]})]})},$=({isDisabled:t=!1})=>{const o=n.useSlate(),i=D.usePreservedSelection(o),{currentTextStyle:l,selectedTextStyleLabel:s,handleTextStyleChange:a,handleListToggle:c,selectedFormatKeys:u,selectedListKeys:j,hasUndos:g,hasRedos:h}=D.useToolbarState({withPreservedSelection:i});return e.jsxs(re.Toolbar,{orientation:"horizontal","aria-label":"Text formatting",width:"full",overflow:"hidden",size:"xs",children:[e.jsx(U.Group,{children:e.jsxs(y.Menu.Root,{onAction:r=>a(String(r)),children:[e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsx(y.Menu.Trigger,{height:"800",width:"4000",bg:"primary.1",borderRadius:"200",_hover:{bg:"primary.2"},isDisabled:t,onMouseDown:r=>r.preventDefault(),"aria-label":"Text style menu",children:e.jsxs(b.Box,{display:"flex",alignItems:"center",gap:"200",px:"200",children:[e.jsx(b.Box,{display:"flex",alignItems:"center",gap:"200",flexGrow:"1",children:e.jsx(v.Text,{my:"auto",textStyle:"sm",fontWeight:"500",children:s})}),e.jsx(f.KeyboardArrowDown,{})]})}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Text style"})]}),e.jsx(y.Menu.Content,{children:I.textStyles.map(r=>e.jsx(y.Menu.Item,{id:r.id,...l===r.id&&{"data-state":"checked"},children:e.jsx(v.Text,{...r.props,children:r.label})},r.id))})]})}),e.jsx(N.Divider,{orientation:"vertical"}),e.jsxs(_.ToggleButtonGroup.Root,{selectionMode:"multiple",selectedKeys:u,isDisabled:t,children:[e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsxs(w.IconToggleButton,{id:"bold",size:"xs",variant:"ghost","aria-label":"Bold",isDisabled:t,onMouseDown:r=>r.preventDefault(),onPress:i(()=>n.toggleMark(o,"bold")),children:[e.jsx(f.FormatBold,{}),e.jsx(M.VisuallyHidden,{children:"Bold"})]}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Bold"})]}),e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsxs(w.IconToggleButton,{id:"italic",size:"xs",variant:"ghost","aria-label":"Italic",isDisabled:t,onMouseDown:r=>r.preventDefault(),onPress:i(()=>n.toggleMark(o,"italic")),children:[e.jsx(f.FormatItalic,{}),e.jsx(M.VisuallyHidden,{children:"Italic"})]}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Italic"})]}),e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsxs(w.IconToggleButton,{id:"underline",size:"xs",variant:"ghost","aria-label":"Underline",isDisabled:t,onMouseDown:r=>r.preventDefault(),onPress:i(()=>n.toggleMark(o,"underline")),children:[e.jsx(f.FormatUnderlined,{}),e.jsx(M.VisuallyHidden,{children:"Underline"})]}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Underline"})]})]}),e.jsx(he,{isDisabled:t}),e.jsx(N.Divider,{orientation:"vertical"}),e.jsxs(_.ToggleButtonGroup.Root,{selectionMode:"single",selectedKeys:j,onSelectionChange:c,"aria-label":"List formatting",isDisabled:t,children:[e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsx(w.IconToggleButton,{id:"bulleted-list",size:"xs",variant:"ghost","aria-label":"Bulleted List",isDisabled:t,onMouseDown:r=>r.preventDefault(),children:e.jsx(f.FormatListBulleted,{})}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Bulleted list"})]}),e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsx(w.IconToggleButton,{id:"numbered-list",size:"xs",variant:"ghost","aria-label":"Numbered List",isDisabled:t,onMouseDown:r=>r.preventDefault(),children:e.jsx(f.FormatListNumbered,{})}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Numbered list"})]})]}),e.jsx(b.Box,{flexGrow:"1"}),e.jsxs(U.Group,{children:[e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsxs(O.IconButton,{size:"xs",variant:"ghost","aria-label":"Undo",isDisabled:!g||t,onPress:i(()=>o.undo()),onMouseDown:r=>r.preventDefault(),children:[e.jsx(f.Undo,{}),e.jsx(M.VisuallyHidden,{children:"Undo"})]}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Undo"})]}),e.jsxs(d.Tooltip.Root,{delay:0,closeDelay:0,children:[e.jsxs(O.IconButton,{size:"xs",variant:"ghost","aria-label":"Redo",isDisabled:!h||t,onPress:i(()=>o.redo()),onMouseDown:r=>r.preventDefault(),children:[e.jsx(f.Redo,{}),e.jsx(M.VisuallyHidden,{children:"Redo"})]}),e.jsx(d.Tooltip.Content,{placement:"top",children:"Redo"})]})]})]})};$.displayName="RichTextToolbar";const J=t=>{const{ref:o,value:i,defaultValue:l,onChange:s,onFocus:a,onBlur:c,placeholder:u="",isDisabled:j=!1,isReadOnly:g=!1,isInvalid:h=!1,autoFocus:r=!1,...E}=t,H=k.useSlotRecipe({recipe:G}),[L,P]=H.splitVariantProps({...E}),[F,q]=oe.extractStyleProps(P),V={"data-disabled":j?"true":void 0,"data-invalid":h?"true":void 0,"data-readonly":g?"true":void 0},[x,A]=p.useState(()=>{const T=i??l??"";try{return T?n.fromHTML(T):n.createEmptyValue()}catch(R){return console.warn("Failed to parse initial HTML, using empty value:",R),n.createEmptyValue()}}),[B,W]=p.useState(()=>i??l??""),Q=p.useRef(null);p.useEffect(()=>{if(i!==void 0&&i!==B){const T=i?n.fromHTML(i):n.createEmptyValue();A(T),W(i)}},[i,B]);const Y=p.useCallback(T=>{const R=n.toHTML(T),te=R!==B;A(T),W(R),te&&s&&s(R)},[B,s]),Z=x,ee=n.validSlateStateAdapter(Z);return e.jsx(ie,{...L,...F,...q,...V,ref:o,children:e.jsx(X,{ref:Q,value:ee,onChange:Y,onFocus:a,onBlur:c,placeholder:u,isDisabled:j,isReadOnly:g,autoFocus:r,toolbar:g?null:e.jsx($,{isDisabled:j})})})};J.displayName="RichTextInput";exports.RichTextInput=J;
|
|
2
|
-
//# sourceMappingURL=rich-text-input-CItP9BzJ.cjs.js.map
|