tinacms 0.0.0-bf22bf8-20241004045704 → 0.0.0-c5dad82-20241009225242
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/index.js +654 -228
- package/dist/index.mjs +664 -235
- package/dist/rich-text/index.js +42 -11
- package/dist/rich-text/index.mjs +42 -11
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/resizable.d.ts +39 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table-cell-element.d.ts +27 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table-dropdown-menu.d.ts +3 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table-element.d.ts +14 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table-row-element.d.ts +13 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/common.d.ts +1 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/ui/components.d.ts +48 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/toolbar/toolbar-overrides.d.ts +2 -2
- package/package.json +7 -6
package/dist/index.mjs
CHANGED
|
@@ -8,11 +8,11 @@ import { z } from "zod";
|
|
|
8
8
|
import * as React from "react";
|
|
9
9
|
import React__default, { useState, useCallback, createContext, forwardRef, useContext, useEffect, useMemo, startTransition, useRef, createElement, Component } from "react";
|
|
10
10
|
import { createPortal, findDOMNode } from "react-dom";
|
|
11
|
-
import { toggleList, ELEMENT_UL, ELEMENT_OL, ELEMENT_H1 as ELEMENT_H1$1, ELEMENT_H2 as ELEMENT_H2$1, ELEMENT_H3 as ELEMENT_H3$1, ELEMENT_H4, ELEMENT_H5, ELEMENT_H6, ELEMENT_PARAGRAPH, ELEMENT_BLOCKQUOTE, ELEMENT_CODE_BLOCK, ELEMENT_CODE_LINE, ELEMENT_CODE_SYNTAX, ELEMENT_LI, ELEMENT_LINK, MARK_CODE, MARK_UNDERLINE, MARK_STRIKETHROUGH, MARK_ITALIC, MARK_BOLD, ELEMENT_HR, unwrapList, ELEMENT_TODO_LI, createTrailingBlockPlugin, createAutoformatPlugin, createExitBreakPlugin, KEYS_HEADING, createResetNodePlugin, createHeadingPlugin, createParagraphPlugin, createBlockquotePlugin, createBoldPlugin, createItalicPlugin, createUnderlinePlugin, createCodePlugin, createListPlugin,
|
|
12
|
-
import { useSelected, ReactEditor } from "slate-react";
|
|
11
|
+
import { toggleList, ELEMENT_UL, ELEMENT_OL, ELEMENT_H1 as ELEMENT_H1$1, ELEMENT_H2 as ELEMENT_H2$1, ELEMENT_H3 as ELEMENT_H3$1, ELEMENT_H4, ELEMENT_H5, ELEMENT_H6, ELEMENT_PARAGRAPH, ELEMENT_BLOCKQUOTE, ELEMENT_CODE_BLOCK, ELEMENT_CODE_LINE, ELEMENT_CODE_SYNTAX, ELEMENT_LI, ELEMENT_LINK, MARK_CODE, MARK_UNDERLINE, MARK_STRIKETHROUGH, MARK_ITALIC, MARK_BOLD, ELEMENT_HR, ELEMENT_TABLE, ELEMENT_TR, ELEMENT_TD, ELEMENT_TH, unwrapList, ELEMENT_TODO_LI, createTrailingBlockPlugin, createAutoformatPlugin, createExitBreakPlugin, KEYS_HEADING, createResetNodePlugin, createHeadingPlugin, createParagraphPlugin, createBlockquotePlugin, createBoldPlugin, createItalicPlugin, createUnderlinePlugin, createCodePlugin, createListPlugin, createIndentListPlugin, createHorizontalRulePlugin, createNodeIdPlugin, createTablePlugin, getListItemEntry, useListToolbarButtonState, useListToolbarButton } from "@udecode/plate";
|
|
12
|
+
import { useSelected, useReadOnly, ReactEditor } from "slate-react";
|
|
13
13
|
import { ELEMENT_SLASH_INPUT, createSlashPlugin } from "@udecode/plate-slash-command";
|
|
14
|
-
import { cn as cn$1, withRef, withVariants,
|
|
15
|
-
import { useComposedRef, useEditorRef, findNodePath, getPointBefore, createPointRef, insertText, moveSelection, PlateElement, toggleNodeType, PlateLeaf, isCollapsed, getPointAfter, insertNodes, ELEMENT_DEFAULT, focusEditor, setNodes, isElement, createPluginFactory, normalizeEditor, getBlockAbove, queryNode, getParentNode, isType, someNode, isSelectionAtBlockStart, setElements, insertNode, getPluginType, isBlock, isBlockAboveEmpty, findNode, PlateContent, useMarkToolbarButtonState, useMarkToolbarButton, useEditorState,
|
|
14
|
+
import { cn as cn$1, withRef, withVariants, withCn, withProps, createPrimitiveElement } from "@udecode/cn";
|
|
15
|
+
import { useComposedRef, useEditorRef, findNodePath, getPointBefore, createPointRef, insertText, moveSelection, PlateElement, toggleNodeType, PlateLeaf, isCollapsed, getPointAfter, insertNodes, ELEMENT_DEFAULT, focusEditor, setNodes, isElement, useElement, useRemoveNodeButton, useEditorSelector, isSelectionExpanded, withHOC, createPluginFactory, normalizeEditor, getBlockAbove, queryNode, getParentNode, isType, someNode, isSelectionAtBlockStart, setElements, insertNode, getPluginType, isBlock, isBlockAboveEmpty, findNode, PlateContent, useMarkToolbarButtonState, useMarkToolbarButton, useEditorState, getNodeEntries, collapseSelection, usePlateSelectors, useEventEditorSelectors, PortalBody, useFormInputProps, createPlugins, Plate } from "@udecode/plate-common";
|
|
16
16
|
import { ELEMENT_H1, ELEMENT_H2, ELEMENT_H3, ELEMENT_H4 as ELEMENT_H4$1, ELEMENT_H5 as ELEMENT_H5$1, ELEMENT_H6 as ELEMENT_H6$1 } from "@udecode/plate-heading";
|
|
17
17
|
import { cva } from "class-variance-authority";
|
|
18
18
|
import { Plus, AlignCenter as AlignCenter$1, AlignJustify, AlignLeft as AlignLeft$1, AlignRight as AlignRight$1, ChevronDown, PaintBucket, Quote, Check, ChevronRight, ChevronsUpDown, X, FileCode, Baseline, RectangleVertical, Combine, Ungroup, MessageSquare, MessageSquarePlus, Trash, GripVertical, Edit2, Smile, ExternalLink, Heading1, Heading2, Heading3, Heading4, Heading5, Heading6, Indent, Keyboard, WrapText, Minus, MoreHorizontal, Outdent, Pilcrow, RotateCcw, RectangleHorizontal, Search, Settings, Strikethrough, Subscript, Superscript, Table, Text, Underline, Link2Off, Eye, Moon, SunMedium, Twitter } from "lucide-react";
|
|
@@ -20,18 +20,23 @@ import { useComboboxContext, Combobox, useComboboxStore, ComboboxProvider, Porta
|
|
|
20
20
|
import { useHTMLInputCursorState, useComboboxInput, filterWords } from "@udecode/plate-combobox";
|
|
21
21
|
import { useCodeSyntaxLeaf, useCodeBlockElementState, ELEMENT_CODE_BLOCK as ELEMENT_CODE_BLOCK$1 } from "@udecode/plate-code-block";
|
|
22
22
|
import MonacoEditor, { loader, useMonaco } from "@monaco-editor/react";
|
|
23
|
-
import { Combobox as Combobox$1, ComboboxInput, ComboboxButton, Transition, ComboboxOptions, ComboboxOption, Popover as Popover$
|
|
23
|
+
import { Combobox as Combobox$1, ComboboxInput, ComboboxButton, Transition, ComboboxOptions, ComboboxOption, Popover as Popover$3, PopoverButton, PopoverPanel, TransitionChild, Disclosure, DisclosureButton, DisclosurePanel, Menu, MenuButton, MenuItems, MenuItem } from "@headlessui/react";
|
|
24
|
+
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
25
|
+
import { PopoverAnchor } from "@radix-ui/react-popover";
|
|
26
|
+
import { useTableBordersDropdownMenuContentState, useTableMergeState, TableProvider, useTableElementState, useTableElement, mergeTableCells, unmergeTableCells, useTableCellElementState, useTableCellElement, useTableCellElementResizableState, useTableCellElementResizable, ELEMENT_TABLE as ELEMENT_TABLE$1, getTableColumnCount, insertTable, deleteTable, insertTableColumn, deleteColumn, insertTableRow, deleteRow } from "@udecode/plate-table";
|
|
27
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
28
|
+
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
29
|
+
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
30
|
+
import { ResizeHandle as ResizeHandle$1 } from "@udecode/plate-resizable";
|
|
24
31
|
import arrayMutators from "final-form-arrays";
|
|
25
32
|
import setFieldData from "final-form-set-field-data";
|
|
26
33
|
import { FORM_ERROR, createForm, getIn } from "final-form";
|
|
27
34
|
import { Field, Form as Form$1 } from "react-final-form";
|
|
28
35
|
import PropTypes from "prop-types";
|
|
29
36
|
import { Droppable, Draggable, DragDropContext } from "react-beautiful-dnd";
|
|
30
|
-
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
31
37
|
import * as pkg$1 from "react-color";
|
|
32
38
|
import * as pkg from "color-string";
|
|
33
39
|
import * as dropzone from "react-dropzone";
|
|
34
|
-
import { Slot } from "@radix-ui/react-slot";
|
|
35
40
|
import { clsx } from "clsx";
|
|
36
41
|
import { twMerge } from "tailwind-merge";
|
|
37
42
|
import { Command as Command$1 } from "cmdk";
|
|
@@ -42,10 +47,8 @@ import moment from "moment";
|
|
|
42
47
|
import { formatDistanceToNow } from "date-fns";
|
|
43
48
|
import { useLinkToolbarButtonState, useLinkToolbarButton, useFloatingLinkInsertState, useFloatingLinkInsert, useFloatingLinkEditState, useFloatingLinkEdit, FloatingLinkUrlInput, LinkOpenButton, createLinkPlugin } from "@udecode/plate-link";
|
|
44
49
|
import * as ToolbarPrimitive from "@radix-ui/react-toolbar";
|
|
45
|
-
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
46
50
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
47
51
|
import { ELEMENT_PARAGRAPH as ELEMENT_PARAGRAPH$1 } from "@udecode/plate-paragraph";
|
|
48
|
-
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
49
52
|
import { ELEMENT_BLOCKQUOTE as ELEMENT_BLOCKQUOTE$1 } from "@udecode/plate-block-quote";
|
|
50
53
|
import { useFloatingToolbarState, offset, flip, useFloatingToolbar } from "@udecode/plate-floating";
|
|
51
54
|
import { useWindowWidth } from "@react-hook/window-size";
|
|
@@ -1016,7 +1019,7 @@ const borderTop = (props) => /* @__PURE__ */ React__default.createElement(
|
|
|
1016
1019
|
},
|
|
1017
1020
|
/* @__PURE__ */ React__default.createElement("path", { d: "M3 6a1 1 0 0 0 2 0 1 1 0 0 1 1-1h12a1 1 0 0 1 1 1 1 1 0 1 0 2 0 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3zm2 5a1 1 0 1 0-2 0v2a1 1 0 1 0 2 0v-2zm14 0a1 1 0 1 1 2 0v2a1 1 0 1 1-2 0v-2zm-5 9a1 1 0 0 1-1 1h-2a1 1 0 1 1 0-2h2a1 1 0 0 1 1 1zm-8 1a1 1 0 1 0 0-2 1 1 0 0 1-1-1 1 1 0 1 0-2 0 3 3 0 0 0 3 3zm11-1a1 1 0 0 0 1 1 3 3 0 0 0 3-3 1 1 0 1 0-2 0 1 1 0 0 1-1 1 1 1 0 0 0-1 1z" })
|
|
1018
1021
|
);
|
|
1019
|
-
cva("", {
|
|
1022
|
+
const iconVariants = cva("", {
|
|
1020
1023
|
variants: {
|
|
1021
1024
|
variant: {
|
|
1022
1025
|
toolbar: "size-5",
|
|
@@ -2159,25 +2162,501 @@ const CodeBlock = ({
|
|
|
2159
2162
|
onChange: (value2) => {
|
|
2160
2163
|
setNodes(editor, { value: value2, lang: language });
|
|
2161
2164
|
}
|
|
2162
|
-
}
|
|
2163
|
-
)))
|
|
2165
|
+
}
|
|
2166
|
+
)))
|
|
2167
|
+
);
|
|
2168
|
+
};
|
|
2169
|
+
const CodeBlockElement = withRef(
|
|
2170
|
+
({ className, ...props }, ref) => {
|
|
2171
|
+
const { element } = props;
|
|
2172
|
+
const state = useCodeBlockElementState({ element });
|
|
2173
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
2174
|
+
PlateElement,
|
|
2175
|
+
{
|
|
2176
|
+
className: cn$1("relative py-1", state.className, className),
|
|
2177
|
+
ref,
|
|
2178
|
+
...props
|
|
2179
|
+
},
|
|
2180
|
+
/* @__PURE__ */ React__default.createElement(CodeBlock, { ...props })
|
|
2181
|
+
);
|
|
2182
|
+
}
|
|
2183
|
+
);
|
|
2184
|
+
const buttonVariants$1 = cva(
|
|
2185
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
2186
|
+
{
|
|
2187
|
+
defaultVariants: {
|
|
2188
|
+
size: "default",
|
|
2189
|
+
variant: "default"
|
|
2190
|
+
},
|
|
2191
|
+
variants: {
|
|
2192
|
+
isMenu: {
|
|
2193
|
+
true: "h-auto w-full cursor-pointer justify-start"
|
|
2194
|
+
},
|
|
2195
|
+
size: {
|
|
2196
|
+
default: "h-10 px-4 py-2",
|
|
2197
|
+
icon: "size-10",
|
|
2198
|
+
lg: "h-11 rounded-md px-8",
|
|
2199
|
+
none: "",
|
|
2200
|
+
sm: "h-9 rounded-md px-3",
|
|
2201
|
+
sms: "size-9 rounded-md px-0",
|
|
2202
|
+
xs: "h-8 rounded-md px-3"
|
|
2203
|
+
},
|
|
2204
|
+
variant: {
|
|
2205
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
2206
|
+
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
2207
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
2208
|
+
inlineLink: "text-base text-primary underline underline-offset-4",
|
|
2209
|
+
link: "text-primary underline-offset-4 hover:underline",
|
|
2210
|
+
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
|
|
2211
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80"
|
|
2212
|
+
}
|
|
2213
|
+
}
|
|
2214
|
+
}
|
|
2215
|
+
);
|
|
2216
|
+
const Button$2 = withRef(({ asChild = false, className, isMenu, size, variant, ...props }, ref) => {
|
|
2217
|
+
const Comp = asChild ? Slot : "button";
|
|
2218
|
+
return /* @__PURE__ */ React.createElement(
|
|
2219
|
+
Comp,
|
|
2220
|
+
{
|
|
2221
|
+
className: cn$1(buttonVariants$1({ className, isMenu, size, variant })),
|
|
2222
|
+
ref,
|
|
2223
|
+
...props
|
|
2224
|
+
}
|
|
2225
|
+
);
|
|
2226
|
+
});
|
|
2227
|
+
const DropdownMenu = DropdownMenuPrimitive.Root;
|
|
2228
|
+
const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
2229
|
+
const DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
2230
|
+
const DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
2231
|
+
const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
2232
|
+
const DropdownMenuSubTrigger = withRef(({ children, className, inset, ...props }, ref) => /* @__PURE__ */ React__default.createElement(
|
|
2233
|
+
DropdownMenuPrimitive.SubTrigger,
|
|
2234
|
+
{
|
|
2235
|
+
className: cn$1(
|
|
2236
|
+
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",
|
|
2237
|
+
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
2238
|
+
inset && "pl-8",
|
|
2239
|
+
className
|
|
2240
|
+
),
|
|
2241
|
+
ref,
|
|
2242
|
+
...props
|
|
2243
|
+
},
|
|
2244
|
+
children,
|
|
2245
|
+
/* @__PURE__ */ React__default.createElement(Icons.chevronRight, { className: "ml-auto size-4" })
|
|
2246
|
+
));
|
|
2247
|
+
const DropdownMenuSubContent = withCn(
|
|
2248
|
+
DropdownMenuPrimitive.SubContent,
|
|
2249
|
+
"z-[99999] min-w-32 overflow-hidden rounded-md border bg-white p-1 text-black shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2"
|
|
2250
|
+
);
|
|
2251
|
+
const DropdownMenuContentVariants = withProps(DropdownMenuPrimitive.Content, {
|
|
2252
|
+
className: cn$1(
|
|
2253
|
+
"z-[99999] min-w-32 overflow-hidden rounded-md border bg-white p-1 text-black shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2"
|
|
2254
|
+
),
|
|
2255
|
+
sideOffset: 4
|
|
2256
|
+
});
|
|
2257
|
+
const DropdownMenuContent = withRef(({ ...props }, ref) => /* @__PURE__ */ React__default.createElement(DropdownMenuPrimitive.Portal, null, /* @__PURE__ */ React__default.createElement(DropdownMenuContentVariants, { ref, ...props })));
|
|
2258
|
+
const menuItemVariants = cva(
|
|
2259
|
+
cn$1(
|
|
2260
|
+
"relative flex h-9 cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors",
|
|
2261
|
+
"focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50"
|
|
2262
|
+
),
|
|
2263
|
+
{
|
|
2264
|
+
variants: {
|
|
2265
|
+
inset: {
|
|
2266
|
+
true: "pl-8"
|
|
2267
|
+
}
|
|
2268
|
+
}
|
|
2269
|
+
}
|
|
2270
|
+
);
|
|
2271
|
+
const DropdownMenuItem = withVariants(
|
|
2272
|
+
DropdownMenuPrimitive.Item,
|
|
2273
|
+
menuItemVariants,
|
|
2274
|
+
["inset"]
|
|
2275
|
+
);
|
|
2276
|
+
const DropdownMenuCheckboxItem = withRef(({ children, className, ...props }, ref) => /* @__PURE__ */ React__default.createElement(
|
|
2277
|
+
DropdownMenuPrimitive.CheckboxItem,
|
|
2278
|
+
{
|
|
2279
|
+
className: cn$1(
|
|
2280
|
+
"relative flex select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
2281
|
+
"cursor-pointer",
|
|
2282
|
+
className
|
|
2283
|
+
),
|
|
2284
|
+
ref,
|
|
2285
|
+
...props
|
|
2286
|
+
},
|
|
2287
|
+
/* @__PURE__ */ React__default.createElement("span", { className: "absolute left-2 flex size-3.5 items-center justify-center" }, /* @__PURE__ */ React__default.createElement(DropdownMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React__default.createElement(Icons.check, { className: "size-4" }))),
|
|
2288
|
+
children
|
|
2289
|
+
));
|
|
2290
|
+
const DropdownMenuRadioItem = withRef(({ children, className, hideIcon, ...props }, ref) => /* @__PURE__ */ React__default.createElement(
|
|
2291
|
+
DropdownMenuPrimitive.RadioItem,
|
|
2292
|
+
{
|
|
2293
|
+
className: cn$1(
|
|
2294
|
+
"relative flex select-none items-center rounded-sm pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
2295
|
+
"h-9 cursor-pointer px-2 data-[state=checked]:bg-accent data-[state=checked]:text-accent-foreground",
|
|
2296
|
+
className
|
|
2297
|
+
),
|
|
2298
|
+
ref,
|
|
2299
|
+
...props
|
|
2300
|
+
},
|
|
2301
|
+
!hideIcon && /* @__PURE__ */ React__default.createElement("span", { className: "absolute right-2 flex size-3.5 items-center justify-center" }, /* @__PURE__ */ React__default.createElement(DropdownMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React__default.createElement(Icons.check, { className: "size-4" }))),
|
|
2302
|
+
children
|
|
2303
|
+
));
|
|
2304
|
+
const dropdownMenuLabelVariants = cva(
|
|
2305
|
+
cn$1("select-none px-2 py-1.5 text-sm font-semibold"),
|
|
2306
|
+
{
|
|
2307
|
+
variants: {
|
|
2308
|
+
inset: {
|
|
2309
|
+
true: "pl-8"
|
|
2310
|
+
}
|
|
2311
|
+
}
|
|
2312
|
+
}
|
|
2313
|
+
);
|
|
2314
|
+
const DropdownMenuLabel = withVariants(
|
|
2315
|
+
DropdownMenuPrimitive.Label,
|
|
2316
|
+
dropdownMenuLabelVariants,
|
|
2317
|
+
["inset"]
|
|
2318
|
+
);
|
|
2319
|
+
const DropdownMenuSeparator = withCn(
|
|
2320
|
+
DropdownMenuPrimitive.Separator,
|
|
2321
|
+
"-mx-1 my-1 h-px bg-muted"
|
|
2322
|
+
);
|
|
2323
|
+
withCn(
|
|
2324
|
+
createPrimitiveElement("span"),
|
|
2325
|
+
"ml-auto text-xs tracking-widest opacity-60"
|
|
2326
|
+
);
|
|
2327
|
+
const useOpenState = () => {
|
|
2328
|
+
const [open2, setOpen] = useState(false);
|
|
2329
|
+
const onOpenChange = useCallback(
|
|
2330
|
+
(_value = !open2) => {
|
|
2331
|
+
setOpen(_value);
|
|
2332
|
+
},
|
|
2333
|
+
[open2]
|
|
2334
|
+
);
|
|
2335
|
+
return {
|
|
2336
|
+
onOpenChange,
|
|
2337
|
+
open: open2
|
|
2338
|
+
};
|
|
2339
|
+
};
|
|
2340
|
+
const Popover$2 = PopoverPrimitive.Root;
|
|
2341
|
+
const popoverVariants = cva(
|
|
2342
|
+
"w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 print:hidden"
|
|
2343
|
+
);
|
|
2344
|
+
const PopoverContent$1 = withRef(
|
|
2345
|
+
({ align = "center", className, sideOffset = 4, style, ...props }, ref) => /* @__PURE__ */ React.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ React.createElement(
|
|
2346
|
+
PopoverPrimitive.Content,
|
|
2347
|
+
{
|
|
2348
|
+
align,
|
|
2349
|
+
className: cn$1(popoverVariants(), className),
|
|
2350
|
+
ref,
|
|
2351
|
+
sideOffset,
|
|
2352
|
+
style: { zIndex: 1e3, ...style },
|
|
2353
|
+
...props
|
|
2354
|
+
}
|
|
2355
|
+
))
|
|
2356
|
+
);
|
|
2357
|
+
const separatorVariants = cva("shrink-0 bg-border", {
|
|
2358
|
+
defaultVariants: {
|
|
2359
|
+
orientation: "horizontal"
|
|
2360
|
+
},
|
|
2361
|
+
variants: {
|
|
2362
|
+
orientation: {
|
|
2363
|
+
horizontal: "h-px w-full",
|
|
2364
|
+
vertical: "h-full w-px"
|
|
2365
|
+
}
|
|
2366
|
+
}
|
|
2367
|
+
});
|
|
2368
|
+
const Separator = withVariants(
|
|
2369
|
+
withProps(SeparatorPrimitive.Root, {
|
|
2370
|
+
decorative: true,
|
|
2371
|
+
orientation: "horizontal"
|
|
2372
|
+
}),
|
|
2373
|
+
separatorVariants
|
|
2374
|
+
);
|
|
2375
|
+
const TableBordersDropdownMenuContent = withRef((props, ref) => {
|
|
2376
|
+
const {
|
|
2377
|
+
getOnSelectTableBorder,
|
|
2378
|
+
hasBottomBorder,
|
|
2379
|
+
hasLeftBorder,
|
|
2380
|
+
hasNoBorders,
|
|
2381
|
+
hasOuterBorders,
|
|
2382
|
+
hasRightBorder,
|
|
2383
|
+
hasTopBorder
|
|
2384
|
+
} = useTableBordersDropdownMenuContentState();
|
|
2385
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
2386
|
+
DropdownMenuContent,
|
|
2387
|
+
{
|
|
2388
|
+
align: "start",
|
|
2389
|
+
className: cn$1("min-w-[220px]"),
|
|
2390
|
+
ref,
|
|
2391
|
+
side: "right",
|
|
2392
|
+
sideOffset: 0,
|
|
2393
|
+
...props
|
|
2394
|
+
},
|
|
2395
|
+
/* @__PURE__ */ React__default.createElement(
|
|
2396
|
+
DropdownMenuCheckboxItem,
|
|
2397
|
+
{
|
|
2398
|
+
checked: hasBottomBorder,
|
|
2399
|
+
onCheckedChange: getOnSelectTableBorder("bottom")
|
|
2400
|
+
},
|
|
2401
|
+
/* @__PURE__ */ React__default.createElement(Icons.borderBottom, { className: iconVariants({ size: "sm" }) }),
|
|
2402
|
+
/* @__PURE__ */ React__default.createElement("div", null, "Bottom Border")
|
|
2403
|
+
),
|
|
2404
|
+
/* @__PURE__ */ React__default.createElement(
|
|
2405
|
+
DropdownMenuCheckboxItem,
|
|
2406
|
+
{
|
|
2407
|
+
checked: hasTopBorder,
|
|
2408
|
+
onCheckedChange: getOnSelectTableBorder("top")
|
|
2409
|
+
},
|
|
2410
|
+
/* @__PURE__ */ React__default.createElement(Icons.borderTop, { className: iconVariants({ size: "sm" }) }),
|
|
2411
|
+
/* @__PURE__ */ React__default.createElement("div", null, "Top Border")
|
|
2412
|
+
),
|
|
2413
|
+
/* @__PURE__ */ React__default.createElement(
|
|
2414
|
+
DropdownMenuCheckboxItem,
|
|
2415
|
+
{
|
|
2416
|
+
checked: hasLeftBorder,
|
|
2417
|
+
onCheckedChange: getOnSelectTableBorder("left")
|
|
2418
|
+
},
|
|
2419
|
+
/* @__PURE__ */ React__default.createElement(Icons.borderLeft, { className: iconVariants({ size: "sm" }) }),
|
|
2420
|
+
/* @__PURE__ */ React__default.createElement("div", null, "Left Border")
|
|
2421
|
+
),
|
|
2422
|
+
/* @__PURE__ */ React__default.createElement(
|
|
2423
|
+
DropdownMenuCheckboxItem,
|
|
2424
|
+
{
|
|
2425
|
+
checked: hasRightBorder,
|
|
2426
|
+
onCheckedChange: getOnSelectTableBorder("right")
|
|
2427
|
+
},
|
|
2428
|
+
/* @__PURE__ */ React__default.createElement(Icons.borderRight, { className: iconVariants({ size: "sm" }) }),
|
|
2429
|
+
/* @__PURE__ */ React__default.createElement("div", null, "Right Border")
|
|
2430
|
+
),
|
|
2431
|
+
/* @__PURE__ */ React__default.createElement(Separator, null),
|
|
2432
|
+
/* @__PURE__ */ React__default.createElement(
|
|
2433
|
+
DropdownMenuCheckboxItem,
|
|
2434
|
+
{
|
|
2435
|
+
checked: hasNoBorders,
|
|
2436
|
+
onCheckedChange: getOnSelectTableBorder("none")
|
|
2437
|
+
},
|
|
2438
|
+
/* @__PURE__ */ React__default.createElement(Icons.borderNone, { className: iconVariants({ size: "sm" }) }),
|
|
2439
|
+
/* @__PURE__ */ React__default.createElement("div", null, "No Border")
|
|
2440
|
+
),
|
|
2441
|
+
/* @__PURE__ */ React__default.createElement(
|
|
2442
|
+
DropdownMenuCheckboxItem,
|
|
2443
|
+
{
|
|
2444
|
+
checked: hasOuterBorders,
|
|
2445
|
+
onCheckedChange: getOnSelectTableBorder("outer")
|
|
2446
|
+
},
|
|
2447
|
+
/* @__PURE__ */ React__default.createElement(Icons.borderAll, { className: iconVariants({ size: "sm" }) }),
|
|
2448
|
+
/* @__PURE__ */ React__default.createElement("div", null, "Outside Borders")
|
|
2449
|
+
)
|
|
2450
|
+
);
|
|
2451
|
+
});
|
|
2452
|
+
const TableFloatingToolbar = withRef(
|
|
2453
|
+
({ children, ...props }, ref) => {
|
|
2454
|
+
const element = useElement();
|
|
2455
|
+
const { props: buttonProps } = useRemoveNodeButton({ element });
|
|
2456
|
+
const selectionCollapsed = useEditorSelector(
|
|
2457
|
+
(editor2) => !isSelectionExpanded(editor2),
|
|
2458
|
+
[]
|
|
2459
|
+
);
|
|
2460
|
+
const readOnly = useReadOnly();
|
|
2461
|
+
const selected = useSelected();
|
|
2462
|
+
const editor = useEditorRef();
|
|
2463
|
+
const collapsed = !readOnly && selected && selectionCollapsed;
|
|
2464
|
+
const open2 = !readOnly && selected;
|
|
2465
|
+
const { canMerge, canUnmerge } = useTableMergeState();
|
|
2466
|
+
const mergeContent = canMerge && /* @__PURE__ */ React__default.createElement(
|
|
2467
|
+
Button$2,
|
|
2468
|
+
{
|
|
2469
|
+
contentEditable: false,
|
|
2470
|
+
isMenu: true,
|
|
2471
|
+
onClick: () => mergeTableCells(editor),
|
|
2472
|
+
variant: "ghost"
|
|
2473
|
+
},
|
|
2474
|
+
/* @__PURE__ */ React__default.createElement(Icons.combine, { className: "mr-2 size-4" }),
|
|
2475
|
+
"Merge"
|
|
2476
|
+
);
|
|
2477
|
+
const unmergeButton = canUnmerge && /* @__PURE__ */ React__default.createElement(
|
|
2478
|
+
Button$2,
|
|
2479
|
+
{
|
|
2480
|
+
contentEditable: false,
|
|
2481
|
+
isMenu: true,
|
|
2482
|
+
onClick: () => unmergeTableCells(editor),
|
|
2483
|
+
variant: "ghost"
|
|
2484
|
+
},
|
|
2485
|
+
/* @__PURE__ */ React__default.createElement(Icons.ungroup, { className: "mr-2 size-4" }),
|
|
2486
|
+
"Unmerge"
|
|
2487
|
+
);
|
|
2488
|
+
const bordersContent = collapsed && /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(DropdownMenu, { modal: false }, /* @__PURE__ */ React__default.createElement(DropdownMenuTrigger, { asChild: true }, /* @__PURE__ */ React__default.createElement(Button$2, { isMenu: true, variant: "ghost" }, /* @__PURE__ */ React__default.createElement(Icons.borderAll, { className: "mr-2 size-4" }), "Borders")), /* @__PURE__ */ React__default.createElement(DropdownMenuPortal, null, /* @__PURE__ */ React__default.createElement(TableBordersDropdownMenuContent, null))), /* @__PURE__ */ React__default.createElement(Button$2, { contentEditable: false, isMenu: true, variant: "ghost", ...buttonProps }, /* @__PURE__ */ React__default.createElement(Icons.delete, { className: "mr-2 size-4" }), "Delete"));
|
|
2489
|
+
return /* @__PURE__ */ React__default.createElement(Popover$2, { modal: false, open: open2 }, /* @__PURE__ */ React__default.createElement(PopoverAnchor, { asChild: true }, children), (canMerge || canUnmerge || collapsed) && /* @__PURE__ */ React__default.createElement(
|
|
2490
|
+
PopoverContent$1,
|
|
2491
|
+
{
|
|
2492
|
+
className: cn$1(
|
|
2493
|
+
popoverVariants(),
|
|
2494
|
+
"flex w-[220px] flex-col gap-1 p-1"
|
|
2495
|
+
),
|
|
2496
|
+
onOpenAutoFocus: (e) => e.preventDefault(),
|
|
2497
|
+
ref,
|
|
2498
|
+
...props
|
|
2499
|
+
},
|
|
2500
|
+
unmergeButton,
|
|
2501
|
+
mergeContent,
|
|
2502
|
+
bordersContent
|
|
2503
|
+
));
|
|
2504
|
+
}
|
|
2505
|
+
);
|
|
2506
|
+
const TableElement = withHOC(
|
|
2507
|
+
TableProvider,
|
|
2508
|
+
withRef(({ children, className, ...props }, ref) => {
|
|
2509
|
+
const { colSizes, isSelectingCell, marginLeft, minColumnWidth } = useTableElementState();
|
|
2510
|
+
const { colGroupProps, props: tableProps } = useTableElement();
|
|
2511
|
+
return /* @__PURE__ */ React__default.createElement(TableFloatingToolbar, null, /* @__PURE__ */ React__default.createElement("div", { style: { paddingLeft: marginLeft } }, /* @__PURE__ */ React__default.createElement(
|
|
2512
|
+
PlateElement,
|
|
2513
|
+
{
|
|
2514
|
+
asChild: true,
|
|
2515
|
+
className: cn$1(
|
|
2516
|
+
"my-4 ml-px mr-0 table h-px w-full table-fixed border-collapse",
|
|
2517
|
+
isSelectingCell && "[&_*::selection]:bg-none",
|
|
2518
|
+
className
|
|
2519
|
+
),
|
|
2520
|
+
ref,
|
|
2521
|
+
...tableProps,
|
|
2522
|
+
...props
|
|
2523
|
+
},
|
|
2524
|
+
/* @__PURE__ */ React__default.createElement("table", null, /* @__PURE__ */ React__default.createElement("colgroup", { ...colGroupProps }, colSizes.map((width, index) => /* @__PURE__ */ React__default.createElement(
|
|
2525
|
+
"col",
|
|
2526
|
+
{
|
|
2527
|
+
key: index,
|
|
2528
|
+
style: {
|
|
2529
|
+
minWidth: minColumnWidth,
|
|
2530
|
+
width: width || void 0
|
|
2531
|
+
}
|
|
2532
|
+
}
|
|
2533
|
+
))), /* @__PURE__ */ React__default.createElement("tbody", { className: "min-w-full" }, children))
|
|
2534
|
+
)));
|
|
2535
|
+
})
|
|
2536
|
+
);
|
|
2537
|
+
const TableRowElement = withRef(({ children, hideBorder, ...props }, ref) => {
|
|
2538
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
2539
|
+
PlateElement,
|
|
2540
|
+
{
|
|
2541
|
+
asChild: true,
|
|
2542
|
+
className: cn$1("h-full", hideBorder && "border-none"),
|
|
2543
|
+
ref,
|
|
2544
|
+
...props
|
|
2545
|
+
},
|
|
2546
|
+
/* @__PURE__ */ React__default.createElement("tr", null, children)
|
|
2547
|
+
);
|
|
2548
|
+
});
|
|
2549
|
+
const TableCellElement = withRef(({ children, className, hideBorder, isHeader, style, ...props }, ref) => {
|
|
2550
|
+
var _a, _b, _c, _d;
|
|
2551
|
+
const { element } = props;
|
|
2552
|
+
const {
|
|
2553
|
+
borders,
|
|
2554
|
+
colIndex,
|
|
2555
|
+
colSpan,
|
|
2556
|
+
hovered,
|
|
2557
|
+
hoveredLeft,
|
|
2558
|
+
isSelectingCell,
|
|
2559
|
+
readOnly,
|
|
2560
|
+
rowIndex,
|
|
2561
|
+
rowSize,
|
|
2562
|
+
selected
|
|
2563
|
+
} = useTableCellElementState();
|
|
2564
|
+
const { props: cellProps } = useTableCellElement({ element: props.element });
|
|
2565
|
+
const resizableState = useTableCellElementResizableState({
|
|
2566
|
+
colIndex,
|
|
2567
|
+
colSpan,
|
|
2568
|
+
rowIndex
|
|
2569
|
+
});
|
|
2570
|
+
const { bottomProps, hiddenLeft, leftProps, rightProps } = useTableCellElementResizable(resizableState);
|
|
2571
|
+
const Cell = isHeader ? "th" : "td";
|
|
2572
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
2573
|
+
PlateElement,
|
|
2574
|
+
{
|
|
2575
|
+
asChild: true,
|
|
2576
|
+
className: cn$1(
|
|
2577
|
+
"relative h-full overflow-visible border-none bg-background p-0",
|
|
2578
|
+
hideBorder && "before:border-none",
|
|
2579
|
+
element.background ? "bg-[--cellBackground]" : "bg-background",
|
|
2580
|
+
!hideBorder && cn$1(
|
|
2581
|
+
isHeader && "text-left [&_>_*]:m-0",
|
|
2582
|
+
"before:size-full",
|
|
2583
|
+
selected && "before:z-10 before:bg-muted",
|
|
2584
|
+
"before:absolute before:box-border before:select-none before:content-['']",
|
|
2585
|
+
borders && cn$1(
|
|
2586
|
+
((_a = borders.bottom) == null ? void 0 : _a.size) && `before:border-b before:border-b-border`,
|
|
2587
|
+
((_b = borders.right) == null ? void 0 : _b.size) && `before:border-r before:border-r-border`,
|
|
2588
|
+
((_c = borders.left) == null ? void 0 : _c.size) && `before:border-l before:border-l-border`,
|
|
2589
|
+
((_d = borders.top) == null ? void 0 : _d.size) && `before:border-t before:border-t-border`
|
|
2590
|
+
)
|
|
2591
|
+
),
|
|
2592
|
+
className
|
|
2593
|
+
),
|
|
2594
|
+
ref,
|
|
2595
|
+
...cellProps,
|
|
2596
|
+
...props,
|
|
2597
|
+
style: {
|
|
2598
|
+
"--cellBackground": element.background,
|
|
2599
|
+
...style
|
|
2600
|
+
}
|
|
2601
|
+
},
|
|
2602
|
+
/* @__PURE__ */ React__default.createElement(Cell, null, /* @__PURE__ */ React__default.createElement(
|
|
2603
|
+
"div",
|
|
2604
|
+
{
|
|
2605
|
+
className: "relative z-20 box-border h-full px-3 py-2",
|
|
2606
|
+
style: {
|
|
2607
|
+
minHeight: rowSize
|
|
2608
|
+
}
|
|
2609
|
+
},
|
|
2610
|
+
children
|
|
2611
|
+
), !isSelectingCell && /* @__PURE__ */ React__default.createElement(
|
|
2612
|
+
"div",
|
|
2613
|
+
{
|
|
2614
|
+
className: "group absolute top-0 size-full select-none",
|
|
2615
|
+
contentEditable: false,
|
|
2616
|
+
suppressContentEditableWarning: true
|
|
2617
|
+
},
|
|
2618
|
+
!readOnly && /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(
|
|
2619
|
+
ResizeHandle$1,
|
|
2620
|
+
{
|
|
2621
|
+
...rightProps,
|
|
2622
|
+
className: "-top-3 right-[-5px] w-[10px]"
|
|
2623
|
+
}
|
|
2624
|
+
), /* @__PURE__ */ React__default.createElement(
|
|
2625
|
+
ResizeHandle$1,
|
|
2626
|
+
{
|
|
2627
|
+
...bottomProps,
|
|
2628
|
+
className: "bottom-[-5px] h-[10px]"
|
|
2629
|
+
}
|
|
2630
|
+
), !hiddenLeft && /* @__PURE__ */ React__default.createElement(
|
|
2631
|
+
ResizeHandle$1,
|
|
2632
|
+
{
|
|
2633
|
+
...leftProps,
|
|
2634
|
+
className: "-top-3 left-[-5px] w-[10px]"
|
|
2635
|
+
}
|
|
2636
|
+
), hovered && /* @__PURE__ */ React__default.createElement(
|
|
2637
|
+
"div",
|
|
2638
|
+
{
|
|
2639
|
+
className: cn$1(
|
|
2640
|
+
"absolute -top-3 z-30 h-[calc(100%_+_12px)] w-1 bg-ring",
|
|
2641
|
+
"right-[-1.5px]"
|
|
2642
|
+
)
|
|
2643
|
+
}
|
|
2644
|
+
), hoveredLeft && /* @__PURE__ */ React__default.createElement(
|
|
2645
|
+
"div",
|
|
2646
|
+
{
|
|
2647
|
+
className: cn$1(
|
|
2648
|
+
"absolute -top-3 z-30 h-[calc(100%_+_12px)] w-1 bg-ring",
|
|
2649
|
+
"left-[-1.5px]"
|
|
2650
|
+
)
|
|
2651
|
+
}
|
|
2652
|
+
))
|
|
2653
|
+
))
|
|
2164
2654
|
);
|
|
2165
|
-
};
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
return /* @__PURE__ */ React__default.createElement(
|
|
2171
|
-
PlateElement,
|
|
2172
|
-
{
|
|
2173
|
-
className: cn$1("relative py-1", state.className, className),
|
|
2174
|
-
ref,
|
|
2175
|
-
...props
|
|
2176
|
-
},
|
|
2177
|
-
/* @__PURE__ */ React__default.createElement(CodeBlock, { ...props })
|
|
2178
|
-
);
|
|
2179
|
-
}
|
|
2180
|
-
);
|
|
2655
|
+
});
|
|
2656
|
+
TableCellElement.displayName = "TableCellElement";
|
|
2657
|
+
const TableCellHeaderElement = withProps(TableCellElement, {
|
|
2658
|
+
isHeader: true
|
|
2659
|
+
});
|
|
2181
2660
|
const blockClasses = "mt-0.5";
|
|
2182
2661
|
const headerClasses = "font-normal";
|
|
2183
2662
|
const Components = () => {
|
|
@@ -2363,7 +2842,11 @@ const Components = () => {
|
|
|
2363
2842
|
children,
|
|
2364
2843
|
selected && /* @__PURE__ */ React__default.createElement("span", { className: "absolute h-4 -top-2 inset-0 ring-2 ring-blue-100 ring-inset rounded-md z-10 pointer-events-none" })
|
|
2365
2844
|
);
|
|
2366
|
-
}
|
|
2845
|
+
},
|
|
2846
|
+
[ELEMENT_TABLE]: TableElement,
|
|
2847
|
+
[ELEMENT_TR]: TableRowElement,
|
|
2848
|
+
[ELEMENT_TD]: TableCellElement,
|
|
2849
|
+
[ELEMENT_TH]: TableCellHeaderElement
|
|
2367
2850
|
};
|
|
2368
2851
|
};
|
|
2369
2852
|
const createCodeBlockPlugin = createPluginFactory({
|
|
@@ -4433,7 +4916,7 @@ const ImageLoadingIndicator = () => /* @__PURE__ */ React.createElement("div", {
|
|
|
4433
4916
|
function cn(...inputs) {
|
|
4434
4917
|
return twMerge(clsx(inputs));
|
|
4435
4918
|
}
|
|
4436
|
-
const buttonVariants
|
|
4919
|
+
const buttonVariants = cva(
|
|
4437
4920
|
"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
4438
4921
|
{
|
|
4439
4922
|
variants: {
|
|
@@ -4459,7 +4942,7 @@ const Button = React.forwardRef(
|
|
|
4459
4942
|
return /* @__PURE__ */ React.createElement(
|
|
4460
4943
|
Comp,
|
|
4461
4944
|
{
|
|
4462
|
-
className: cn(buttonVariants
|
|
4945
|
+
className: cn(buttonVariants({ variant, size, className })),
|
|
4463
4946
|
ref,
|
|
4464
4947
|
...props
|
|
4465
4948
|
}
|
|
@@ -5158,7 +5641,7 @@ const BlockSelector = ({
|
|
|
5158
5641
|
return template.label ? template.label.toLowerCase().includes(filter.toLowerCase()) || name.toLowerCase().includes(filter.toLowerCase()) : name.toLowerCase().includes(filter.toLowerCase());
|
|
5159
5642
|
});
|
|
5160
5643
|
}, [filter]);
|
|
5161
|
-
return /* @__PURE__ */ React.createElement(Popover$
|
|
5644
|
+
return /* @__PURE__ */ React.createElement(Popover$3, null, ({ open: open2 }) => /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(PopoverButton, { as: "span" }, /* @__PURE__ */ React.createElement(
|
|
5162
5645
|
IconButton,
|
|
5163
5646
|
{
|
|
5164
5647
|
variant: open2 ? "secondary" : "primary",
|
|
@@ -9723,7 +10206,7 @@ const SyncStatus = ({ cms, setEventsOpen }) => {
|
|
|
9723
10206
|
"Event Log"
|
|
9724
10207
|
));
|
|
9725
10208
|
};
|
|
9726
|
-
const version = "2.2.
|
|
10209
|
+
const version = "2.2.9";
|
|
9727
10210
|
const Nav = ({
|
|
9728
10211
|
isLocalMode,
|
|
9729
10212
|
className = "",
|
|
@@ -12790,7 +13273,7 @@ const EmbedNestedForm = ({
|
|
|
12790
13273
|
);
|
|
12791
13274
|
};
|
|
12792
13275
|
const DotMenu = ({ onOpen, onRemove }) => {
|
|
12793
|
-
return /* @__PURE__ */ React__default.createElement(Popover$
|
|
13276
|
+
return /* @__PURE__ */ React__default.createElement(Popover$3, { as: "span", className: "-ml-px relative block" }, /* @__PURE__ */ React__default.createElement(
|
|
12794
13277
|
PopoverButton,
|
|
12795
13278
|
{
|
|
12796
13279
|
as: "span",
|
|
@@ -13230,13 +13713,25 @@ const plugins = [
|
|
|
13230
13713
|
createUnderlinePlugin(),
|
|
13231
13714
|
createCodePlugin(),
|
|
13232
13715
|
createListPlugin(),
|
|
13233
|
-
createIndentPlugin(),
|
|
13234
13716
|
createIndentListPlugin(),
|
|
13235
13717
|
createHorizontalRulePlugin(),
|
|
13236
13718
|
// Allows us to do things like copy/paste, remembering the state of the element (like mdx)
|
|
13237
13719
|
createNodeIdPlugin(),
|
|
13238
|
-
createSlashPlugin()
|
|
13720
|
+
createSlashPlugin(),
|
|
13721
|
+
createTablePlugin()
|
|
13239
13722
|
];
|
|
13723
|
+
const unsupportedItemsInTable = /* @__PURE__ */ new Set([
|
|
13724
|
+
"Code Block",
|
|
13725
|
+
"Unordered List",
|
|
13726
|
+
"Ordered List",
|
|
13727
|
+
"Quote",
|
|
13728
|
+
"Heading 1",
|
|
13729
|
+
"Heading 2",
|
|
13730
|
+
"Heading 3",
|
|
13731
|
+
"Heading 4",
|
|
13732
|
+
"Heading 5",
|
|
13733
|
+
"Heading 6"
|
|
13734
|
+
]);
|
|
13240
13735
|
const isNodeActive = (editor, type) => {
|
|
13241
13736
|
const pluginType = getPluginType(editor, type);
|
|
13242
13737
|
return !!(editor == null ? void 0 : editor.selection) && someNode(editor, { match: { type: pluginType } });
|
|
@@ -13421,24 +13916,6 @@ const Editor = React__default.forwardRef(
|
|
|
13421
13916
|
}
|
|
13422
13917
|
);
|
|
13423
13918
|
Editor.displayName = "Editor";
|
|
13424
|
-
const separatorVariants = cva("shrink-0 bg-border", {
|
|
13425
|
-
defaultVariants: {
|
|
13426
|
-
orientation: "horizontal"
|
|
13427
|
-
},
|
|
13428
|
-
variants: {
|
|
13429
|
-
orientation: {
|
|
13430
|
-
horizontal: "h-px w-full",
|
|
13431
|
-
vertical: "h-full w-px"
|
|
13432
|
-
}
|
|
13433
|
-
}
|
|
13434
|
-
});
|
|
13435
|
-
const Separator = withVariants(
|
|
13436
|
-
withProps(SeparatorPrimitive.Root, {
|
|
13437
|
-
decorative: true,
|
|
13438
|
-
orientation: "horizontal"
|
|
13439
|
-
}),
|
|
13440
|
-
separatorVariants
|
|
13441
|
-
);
|
|
13442
13919
|
const TooltipProvider = TooltipPrimitive.Provider;
|
|
13443
13920
|
const Tooltip = TooltipPrimitive.Root;
|
|
13444
13921
|
const TooltipTrigger = TooltipPrimitive.Trigger;
|
|
@@ -13597,117 +14074,6 @@ const IndentListToolbarButton = withRef(({ nodeType = ELEMENT_UL }, ref) => {
|
|
|
13597
14074
|
nodeType === ELEMENT_UL ? /* @__PURE__ */ React__default.createElement(Icons.ul, null) : /* @__PURE__ */ React__default.createElement(Icons.ol, null)
|
|
13598
14075
|
);
|
|
13599
14076
|
});
|
|
13600
|
-
const DropdownMenu = DropdownMenuPrimitive.Root;
|
|
13601
|
-
const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
13602
|
-
const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
13603
|
-
withRef(({ children, className, inset, ...props }, ref) => /* @__PURE__ */ React__default.createElement(
|
|
13604
|
-
DropdownMenuPrimitive.SubTrigger,
|
|
13605
|
-
{
|
|
13606
|
-
className: cn$1(
|
|
13607
|
-
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",
|
|
13608
|
-
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
13609
|
-
inset && "pl-8",
|
|
13610
|
-
className
|
|
13611
|
-
),
|
|
13612
|
-
ref,
|
|
13613
|
-
...props
|
|
13614
|
-
},
|
|
13615
|
-
children,
|
|
13616
|
-
/* @__PURE__ */ React__default.createElement(Icons.chevronRight, { className: "ml-auto size-4" })
|
|
13617
|
-
));
|
|
13618
|
-
withCn(
|
|
13619
|
-
DropdownMenuPrimitive.SubContent,
|
|
13620
|
-
"z-[99999] min-w-32 overflow-hidden rounded-md border bg-white p-1 text-black shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2"
|
|
13621
|
-
);
|
|
13622
|
-
const DropdownMenuContentVariants = withProps(DropdownMenuPrimitive.Content, {
|
|
13623
|
-
className: cn$1(
|
|
13624
|
-
"z-[99999] min-w-32 overflow-hidden rounded-md border bg-white p-1 text-black shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2"
|
|
13625
|
-
),
|
|
13626
|
-
sideOffset: 4
|
|
13627
|
-
});
|
|
13628
|
-
const DropdownMenuContent = withRef(({ ...props }, ref) => /* @__PURE__ */ React__default.createElement(DropdownMenuPrimitive.Portal, null, /* @__PURE__ */ React__default.createElement(DropdownMenuContentVariants, { ref, ...props })));
|
|
13629
|
-
const menuItemVariants = cva(
|
|
13630
|
-
cn$1(
|
|
13631
|
-
"relative flex h-9 cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors",
|
|
13632
|
-
"focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50"
|
|
13633
|
-
),
|
|
13634
|
-
{
|
|
13635
|
-
variants: {
|
|
13636
|
-
inset: {
|
|
13637
|
-
true: "pl-8"
|
|
13638
|
-
}
|
|
13639
|
-
}
|
|
13640
|
-
}
|
|
13641
|
-
);
|
|
13642
|
-
const DropdownMenuItem = withVariants(
|
|
13643
|
-
DropdownMenuPrimitive.Item,
|
|
13644
|
-
menuItemVariants,
|
|
13645
|
-
["inset"]
|
|
13646
|
-
);
|
|
13647
|
-
withRef(({ children, className, ...props }, ref) => /* @__PURE__ */ React__default.createElement(
|
|
13648
|
-
DropdownMenuPrimitive.CheckboxItem,
|
|
13649
|
-
{
|
|
13650
|
-
className: cn$1(
|
|
13651
|
-
"relative flex select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
13652
|
-
"cursor-pointer",
|
|
13653
|
-
className
|
|
13654
|
-
),
|
|
13655
|
-
ref,
|
|
13656
|
-
...props
|
|
13657
|
-
},
|
|
13658
|
-
/* @__PURE__ */ React__default.createElement("span", { className: "absolute left-2 flex size-3.5 items-center justify-center" }, /* @__PURE__ */ React__default.createElement(DropdownMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React__default.createElement(Icons.check, { className: "size-4" }))),
|
|
13659
|
-
children
|
|
13660
|
-
));
|
|
13661
|
-
const DropdownMenuRadioItem = withRef(({ children, className, hideIcon, ...props }, ref) => /* @__PURE__ */ React__default.createElement(
|
|
13662
|
-
DropdownMenuPrimitive.RadioItem,
|
|
13663
|
-
{
|
|
13664
|
-
className: cn$1(
|
|
13665
|
-
"relative flex select-none items-center rounded-sm pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
13666
|
-
"h-9 cursor-pointer px-2 data-[state=checked]:bg-accent data-[state=checked]:text-accent-foreground",
|
|
13667
|
-
className
|
|
13668
|
-
),
|
|
13669
|
-
ref,
|
|
13670
|
-
...props
|
|
13671
|
-
},
|
|
13672
|
-
!hideIcon && /* @__PURE__ */ React__default.createElement("span", { className: "absolute right-2 flex size-3.5 items-center justify-center" }, /* @__PURE__ */ React__default.createElement(DropdownMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React__default.createElement(Icons.check, { className: "size-4" }))),
|
|
13673
|
-
children
|
|
13674
|
-
));
|
|
13675
|
-
const dropdownMenuLabelVariants = cva(
|
|
13676
|
-
cn$1("select-none px-2 py-1.5 text-sm font-semibold"),
|
|
13677
|
-
{
|
|
13678
|
-
variants: {
|
|
13679
|
-
inset: {
|
|
13680
|
-
true: "pl-8"
|
|
13681
|
-
}
|
|
13682
|
-
}
|
|
13683
|
-
}
|
|
13684
|
-
);
|
|
13685
|
-
const DropdownMenuLabel = withVariants(
|
|
13686
|
-
DropdownMenuPrimitive.Label,
|
|
13687
|
-
dropdownMenuLabelVariants,
|
|
13688
|
-
["inset"]
|
|
13689
|
-
);
|
|
13690
|
-
const DropdownMenuSeparator = withCn(
|
|
13691
|
-
DropdownMenuPrimitive.Separator,
|
|
13692
|
-
"-mx-1 my-1 h-px bg-muted"
|
|
13693
|
-
);
|
|
13694
|
-
withCn(
|
|
13695
|
-
createPrimitiveElement("span"),
|
|
13696
|
-
"ml-auto text-xs tracking-widest opacity-60"
|
|
13697
|
-
);
|
|
13698
|
-
const useOpenState = () => {
|
|
13699
|
-
const [open2, setOpen] = useState(false);
|
|
13700
|
-
const onOpenChange = useCallback(
|
|
13701
|
-
(_value = !open2) => {
|
|
13702
|
-
setOpen(_value);
|
|
13703
|
-
},
|
|
13704
|
-
[open2]
|
|
13705
|
-
);
|
|
13706
|
-
return {
|
|
13707
|
-
onOpenChange,
|
|
13708
|
-
open: open2
|
|
13709
|
-
};
|
|
13710
|
-
};
|
|
13711
14077
|
const items$1 = [
|
|
13712
14078
|
{
|
|
13713
14079
|
description: "Paragraph",
|
|
@@ -13772,7 +14138,9 @@ function HeadingsMenu(props) {
|
|
|
13772
14138
|
return allNodesMatchInitialNodeType ? initialNodeType : ELEMENT_PARAGRAPH$1;
|
|
13773
14139
|
}, []);
|
|
13774
14140
|
const editor = useEditorRef();
|
|
14141
|
+
const editorState = useEditorState();
|
|
13775
14142
|
const openState = useOpenState();
|
|
14143
|
+
const userInTable = helpers.isNodeActive(editorState, ELEMENT_TABLE$1);
|
|
13776
14144
|
const selectedItem = items$1.find((item) => item.value === value) ?? defaultItem$1;
|
|
13777
14145
|
const { icon: SelectedItemIcon, label: selectedItemLabel } = selectedItem;
|
|
13778
14146
|
return /* @__PURE__ */ React__default.createElement(DropdownMenu, { modal: false, ...openState, ...props }, /* @__PURE__ */ React__default.createElement(DropdownMenuTrigger, { asChild: true }, /* @__PURE__ */ React__default.createElement(
|
|
@@ -13784,7 +14152,7 @@ function HeadingsMenu(props) {
|
|
|
13784
14152
|
tooltip: "Headings"
|
|
13785
14153
|
},
|
|
13786
14154
|
/* @__PURE__ */ React__default.createElement(SelectedItemIcon, { className: "size-5" }),
|
|
13787
|
-
/* @__PURE__ */ React__default.createElement("span", { className: "
|
|
14155
|
+
/* @__PURE__ */ React__default.createElement("span", { className: "hidden 2xl:flex" }, selectedItemLabel)
|
|
13788
14156
|
)), /* @__PURE__ */ React__default.createElement(DropdownMenuContent, { align: "start", className: "min-w-0" }, /* @__PURE__ */ React__default.createElement(
|
|
13789
14157
|
DropdownMenuRadioGroup,
|
|
13790
14158
|
{
|
|
@@ -13796,7 +14164,12 @@ function HeadingsMenu(props) {
|
|
|
13796
14164
|
},
|
|
13797
14165
|
value
|
|
13798
14166
|
},
|
|
13799
|
-
items$1.
|
|
14167
|
+
items$1.filter((item) => {
|
|
14168
|
+
if (userInTable) {
|
|
14169
|
+
return !unsupportedItemsInTable.has(item.label);
|
|
14170
|
+
}
|
|
14171
|
+
return true;
|
|
14172
|
+
}).map(({ icon: Icon, label, value: itemValue }) => /* @__PURE__ */ React__default.createElement(
|
|
13800
14173
|
DropdownMenuRadioItem,
|
|
13801
14174
|
{
|
|
13802
14175
|
className: "min-w-[180px]",
|
|
@@ -13986,7 +14359,6 @@ const EmbedButton = ({ editor, templates }) => {
|
|
|
13986
14359
|
};
|
|
13987
14360
|
const ICON_WIDTH = 32;
|
|
13988
14361
|
const EMBED_ICON_WIDTH = 78;
|
|
13989
|
-
const MD_BREAKPOINT = 768;
|
|
13990
14362
|
const useResize = (ref, callback) => {
|
|
13991
14363
|
React__default.useEffect(() => {
|
|
13992
14364
|
const resizeObserver = new ResizeObserver((entries) => {
|
|
@@ -14017,6 +14389,108 @@ function OverflowMenu({
|
|
|
14017
14389
|
/* @__PURE__ */ React__default.createElement(Icons.overflow, { className: "size-5" })
|
|
14018
14390
|
)), /* @__PURE__ */ React__default.createElement(DropdownMenuContent, { align: "start", className: "min-w-0 flex flex-grow" }, children));
|
|
14019
14391
|
}
|
|
14392
|
+
function TableDropdownMenu(props) {
|
|
14393
|
+
const tableSelected = useEditorSelector(
|
|
14394
|
+
(editor2) => someNode(editor2, { match: { type: ELEMENT_TABLE$1 } }),
|
|
14395
|
+
[]
|
|
14396
|
+
);
|
|
14397
|
+
const [enableDeleteColumn, enableDeleteRow] = useEditorSelector((editor2) => {
|
|
14398
|
+
const tableNodeEntry = findNode(editor2, { match: { type: ELEMENT_TABLE$1 } });
|
|
14399
|
+
if (!tableNodeEntry)
|
|
14400
|
+
return [false, false];
|
|
14401
|
+
const [tableNode] = tableNodeEntry;
|
|
14402
|
+
if (!isElement(tableNode))
|
|
14403
|
+
return [false, false];
|
|
14404
|
+
const columnCount = getTableColumnCount(tableNode);
|
|
14405
|
+
const rowCount = tableNode.children.length;
|
|
14406
|
+
return [columnCount > 1, rowCount > 1];
|
|
14407
|
+
}, []);
|
|
14408
|
+
const editor = useEditorRef();
|
|
14409
|
+
const openState = useOpenState();
|
|
14410
|
+
return /* @__PURE__ */ React__default.createElement(DropdownMenu, { modal: false, ...openState, ...props }, /* @__PURE__ */ React__default.createElement(DropdownMenuTrigger, { asChild: true }, /* @__PURE__ */ React__default.createElement(ToolbarButton, { isDropdown: true, pressed: openState.open, tooltip: "Table" }, /* @__PURE__ */ React__default.createElement(Icons.table, null))), /* @__PURE__ */ React__default.createElement(
|
|
14411
|
+
DropdownMenuContent,
|
|
14412
|
+
{
|
|
14413
|
+
align: "start",
|
|
14414
|
+
className: "flex w-[180px] min-w-0 flex-col gap-0.5"
|
|
14415
|
+
},
|
|
14416
|
+
/* @__PURE__ */ React__default.createElement(
|
|
14417
|
+
DropdownMenuItem,
|
|
14418
|
+
{
|
|
14419
|
+
className: "min-w-[180px]",
|
|
14420
|
+
disabled: tableSelected,
|
|
14421
|
+
onSelect: () => {
|
|
14422
|
+
insertTable(editor);
|
|
14423
|
+
focusEditor(editor);
|
|
14424
|
+
}
|
|
14425
|
+
},
|
|
14426
|
+
/* @__PURE__ */ React__default.createElement(Icons.add, { className: iconVariants({ variant: "menuItem" }) }),
|
|
14427
|
+
"Insert table"
|
|
14428
|
+
),
|
|
14429
|
+
/* @__PURE__ */ React__default.createElement(
|
|
14430
|
+
DropdownMenuItem,
|
|
14431
|
+
{
|
|
14432
|
+
className: "min-w-[180px]",
|
|
14433
|
+
disabled: !tableSelected,
|
|
14434
|
+
onSelect: () => {
|
|
14435
|
+
deleteTable(editor);
|
|
14436
|
+
focusEditor(editor);
|
|
14437
|
+
}
|
|
14438
|
+
},
|
|
14439
|
+
/* @__PURE__ */ React__default.createElement(Icons.minus, { className: iconVariants({ variant: "menuItem" }) }),
|
|
14440
|
+
"Delete table"
|
|
14441
|
+
),
|
|
14442
|
+
/* @__PURE__ */ React__default.createElement(DropdownMenuSub, null, /* @__PURE__ */ React__default.createElement(DropdownMenuSubTrigger, { disabled: !tableSelected }, /* @__PURE__ */ React__default.createElement(Icons.column, { className: iconVariants({ variant: "menuItem" }) }), /* @__PURE__ */ React__default.createElement("span", null, "Column")), /* @__PURE__ */ React__default.createElement(DropdownMenuSubContent, null, /* @__PURE__ */ React__default.createElement(
|
|
14443
|
+
DropdownMenuItem,
|
|
14444
|
+
{
|
|
14445
|
+
className: "min-w-[180px]",
|
|
14446
|
+
disabled: !tableSelected,
|
|
14447
|
+
onSelect: () => {
|
|
14448
|
+
insertTableColumn(editor);
|
|
14449
|
+
focusEditor(editor);
|
|
14450
|
+
}
|
|
14451
|
+
},
|
|
14452
|
+
/* @__PURE__ */ React__default.createElement(Icons.add, { className: iconVariants({ variant: "menuItem" }) }),
|
|
14453
|
+
"Insert column after"
|
|
14454
|
+
), /* @__PURE__ */ React__default.createElement(
|
|
14455
|
+
DropdownMenuItem,
|
|
14456
|
+
{
|
|
14457
|
+
className: "min-w-[180px]",
|
|
14458
|
+
disabled: !enableDeleteColumn,
|
|
14459
|
+
onSelect: () => {
|
|
14460
|
+
deleteColumn(editor);
|
|
14461
|
+
focusEditor(editor);
|
|
14462
|
+
}
|
|
14463
|
+
},
|
|
14464
|
+
/* @__PURE__ */ React__default.createElement(Icons.minus, { className: iconVariants({ variant: "menuItem" }) }),
|
|
14465
|
+
"Delete column"
|
|
14466
|
+
))),
|
|
14467
|
+
/* @__PURE__ */ React__default.createElement(DropdownMenuSub, null, /* @__PURE__ */ React__default.createElement(DropdownMenuSubTrigger, { disabled: !tableSelected }, /* @__PURE__ */ React__default.createElement(Icons.row, { className: iconVariants({ variant: "menuItem" }) }), /* @__PURE__ */ React__default.createElement("span", null, "Row")), /* @__PURE__ */ React__default.createElement(DropdownMenuSubContent, null, /* @__PURE__ */ React__default.createElement(
|
|
14468
|
+
DropdownMenuItem,
|
|
14469
|
+
{
|
|
14470
|
+
className: "min-w-[180px]",
|
|
14471
|
+
disabled: !tableSelected,
|
|
14472
|
+
onSelect: () => {
|
|
14473
|
+
insertTableRow(editor);
|
|
14474
|
+
focusEditor(editor);
|
|
14475
|
+
}
|
|
14476
|
+
},
|
|
14477
|
+
/* @__PURE__ */ React__default.createElement(Icons.add, { className: iconVariants({ variant: "menuItem" }) }),
|
|
14478
|
+
"Insert row after"
|
|
14479
|
+
), /* @__PURE__ */ React__default.createElement(
|
|
14480
|
+
DropdownMenuItem,
|
|
14481
|
+
{
|
|
14482
|
+
className: "min-w-[180px]",
|
|
14483
|
+
disabled: !enableDeleteRow,
|
|
14484
|
+
onSelect: () => {
|
|
14485
|
+
deleteRow(editor);
|
|
14486
|
+
focusEditor(editor);
|
|
14487
|
+
}
|
|
14488
|
+
},
|
|
14489
|
+
/* @__PURE__ */ React__default.createElement(Icons.minus, { className: iconVariants({ variant: "menuItem" }) }),
|
|
14490
|
+
"Delete row"
|
|
14491
|
+
)))
|
|
14492
|
+
));
|
|
14493
|
+
}
|
|
14020
14494
|
const toolbarItems = {
|
|
14021
14495
|
heading: {
|
|
14022
14496
|
label: "Headings",
|
|
@@ -14058,6 +14532,10 @@ const toolbarItems = {
|
|
|
14058
14532
|
label: "Code Block",
|
|
14059
14533
|
Component: /* @__PURE__ */ React__default.createElement(CodeBlockToolbarButton, null)
|
|
14060
14534
|
},
|
|
14535
|
+
table: {
|
|
14536
|
+
label: "Table",
|
|
14537
|
+
Component: /* @__PURE__ */ React__default.createElement(TableDropdownMenu, null)
|
|
14538
|
+
},
|
|
14061
14539
|
raw: {
|
|
14062
14540
|
label: "Raw Markdown",
|
|
14063
14541
|
Component: /* @__PURE__ */ React__default.createElement(RawMarkdownToolbarButton, null)
|
|
@@ -14073,12 +14551,18 @@ function FixedToolbarButtons() {
|
|
|
14073
14551
|
const { overrides } = useToolbarContext();
|
|
14074
14552
|
useResize(toolbarRef, (entry) => {
|
|
14075
14553
|
const width = entry.target.getBoundingClientRect().width;
|
|
14076
|
-
const
|
|
14077
|
-
const itemsShown2 = (width - EMBED_ICON_WIDTH - paragraphIconWidth) / ICON_WIDTH;
|
|
14554
|
+
const itemsShown2 = (width - EMBED_ICON_WIDTH) / ICON_WIDTH;
|
|
14078
14555
|
setItemsShown(Math.floor(itemsShown2));
|
|
14079
14556
|
});
|
|
14080
|
-
|
|
14081
|
-
|
|
14557
|
+
let toolbarItemsArray = overrides === void 0 ? Object.values(toolbarItems) : overrides.map((item) => toolbarItems[item]).filter((item) => item !== void 0);
|
|
14558
|
+
const editorState = useEditorState();
|
|
14559
|
+
const userInTable = helpers.isNodeActive(editorState, ELEMENT_TABLE$1);
|
|
14560
|
+
if (userInTable) {
|
|
14561
|
+
toolbarItemsArray = toolbarItemsArray.filter(
|
|
14562
|
+
(item) => !unsupportedItemsInTable.has(item.label)
|
|
14563
|
+
);
|
|
14564
|
+
}
|
|
14565
|
+
return /* @__PURE__ */ React__default.createElement("div", { className: "w-full overflow-hidden", ref: toolbarRef }, /* @__PURE__ */ React__default.createElement(
|
|
14082
14566
|
"div",
|
|
14083
14567
|
{
|
|
14084
14568
|
className: "flex",
|
|
@@ -14086,7 +14570,7 @@ function FixedToolbarButtons() {
|
|
|
14086
14570
|
transform: "translateX(calc(-1px))"
|
|
14087
14571
|
}
|
|
14088
14572
|
},
|
|
14089
|
-
/* @__PURE__ */ React__default.createElement(React__default.Fragment, null, toolbarItemsArray.slice(0, itemsShown).map((item,
|
|
14573
|
+
/* @__PURE__ */ React__default.createElement(React__default.Fragment, null, toolbarItemsArray.slice(0, itemsShown).map((item, _) => /* @__PURE__ */ React__default.createElement(React__default.Fragment, { key: item.label }, item.Component)), toolbarItemsArray.length > itemsShown && /* @__PURE__ */ React__default.createElement(OverflowMenu, null, toolbarItemsArray.slice(itemsShown).flatMap((c) => /* @__PURE__ */ React__default.createElement(React__default.Fragment, { key: c.label }, c.Component))))
|
|
14090
14574
|
));
|
|
14091
14575
|
}
|
|
14092
14576
|
const FloatingToolbar = withRef(({ children, state, ...props }, componentRef) => {
|
|
@@ -14201,6 +14685,10 @@ function TurnIntoDropdownMenu(props) {
|
|
|
14201
14685
|
const openState = useOpenState();
|
|
14202
14686
|
const selectedItem = items.find((item) => item.value === value) ?? defaultItem;
|
|
14203
14687
|
const { icon: SelectedItemIcon, label: selectedItemLabel } = selectedItem;
|
|
14688
|
+
const editorState = useEditorState();
|
|
14689
|
+
const userInTable = helpers.isNodeActive(editorState, ELEMENT_TABLE$1);
|
|
14690
|
+
if (userInTable)
|
|
14691
|
+
return null;
|
|
14204
14692
|
return /* @__PURE__ */ React__default.createElement(DropdownMenu, { modal: false, ...openState, ...props }, /* @__PURE__ */ React__default.createElement(DropdownMenuTrigger, { asChild: true }, /* @__PURE__ */ React__default.createElement(
|
|
14205
14693
|
ToolbarButton,
|
|
14206
14694
|
{
|
|
@@ -14242,49 +14730,6 @@ function TurnIntoDropdownMenu(props) {
|
|
|
14242
14730
|
function FloatingToolbarButtons() {
|
|
14243
14731
|
return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(TurnIntoDropdownMenu, null));
|
|
14244
14732
|
}
|
|
14245
|
-
const buttonVariants = cva(
|
|
14246
|
-
"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
14247
|
-
{
|
|
14248
|
-
defaultVariants: {
|
|
14249
|
-
size: "default",
|
|
14250
|
-
variant: "default"
|
|
14251
|
-
},
|
|
14252
|
-
variants: {
|
|
14253
|
-
isMenu: {
|
|
14254
|
-
true: "h-auto w-full cursor-pointer justify-start"
|
|
14255
|
-
},
|
|
14256
|
-
size: {
|
|
14257
|
-
default: "h-10 px-4 py-2",
|
|
14258
|
-
icon: "size-10",
|
|
14259
|
-
lg: "h-11 rounded-md px-8",
|
|
14260
|
-
none: "",
|
|
14261
|
-
sm: "h-9 rounded-md px-3",
|
|
14262
|
-
sms: "size-9 rounded-md px-0",
|
|
14263
|
-
xs: "h-8 rounded-md px-3"
|
|
14264
|
-
},
|
|
14265
|
-
variant: {
|
|
14266
|
-
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
14267
|
-
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
14268
|
-
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
14269
|
-
inlineLink: "text-base text-primary underline underline-offset-4",
|
|
14270
|
-
link: "text-primary underline-offset-4 hover:underline",
|
|
14271
|
-
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
|
|
14272
|
-
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80"
|
|
14273
|
-
}
|
|
14274
|
-
}
|
|
14275
|
-
}
|
|
14276
|
-
);
|
|
14277
|
-
withRef(({ asChild = false, className, isMenu, size, variant, ...props }, ref) => {
|
|
14278
|
-
const Comp = asChild ? Slot : "button";
|
|
14279
|
-
return /* @__PURE__ */ React.createElement(
|
|
14280
|
-
Comp,
|
|
14281
|
-
{
|
|
14282
|
-
className: cn$1(buttonVariants({ className, isMenu, size, variant })),
|
|
14283
|
-
ref,
|
|
14284
|
-
...props
|
|
14285
|
-
}
|
|
14286
|
-
);
|
|
14287
|
-
});
|
|
14288
14733
|
const inputVariants = cva(
|
|
14289
14734
|
"flex w-full rounded-md bg-transparent text-sm file:border-0 file:bg-background file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50",
|
|
14290
14735
|
{
|
|
@@ -14305,22 +14750,6 @@ const inputVariants = cva(
|
|
|
14305
14750
|
}
|
|
14306
14751
|
);
|
|
14307
14752
|
withVariants("input", inputVariants, ["variant", "h"]);
|
|
14308
|
-
const popoverVariants = cva(
|
|
14309
|
-
"w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 print:hidden"
|
|
14310
|
-
);
|
|
14311
|
-
withRef(
|
|
14312
|
-
({ align = "center", className, sideOffset = 4, style, ...props }, ref) => /* @__PURE__ */ React.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ React.createElement(
|
|
14313
|
-
PopoverPrimitive.Content,
|
|
14314
|
-
{
|
|
14315
|
-
align,
|
|
14316
|
-
className: cn$1(popoverVariants(), className),
|
|
14317
|
-
ref,
|
|
14318
|
-
sideOffset,
|
|
14319
|
-
style: { zIndex: 1e3, ...style },
|
|
14320
|
-
...props
|
|
14321
|
-
}
|
|
14322
|
-
))
|
|
14323
|
-
);
|
|
14324
14753
|
const floatingOptions = {
|
|
14325
14754
|
middleware: [
|
|
14326
14755
|
offset(12),
|
|
@@ -14380,7 +14809,7 @@ function LinkFloatingToolbar({ state }) {
|
|
|
14380
14809
|
const editContent = editState.isEditing ? input : /* @__PURE__ */ React__default.createElement("div", { className: "box-content flex h-9 items-center gap-1" }, /* @__PURE__ */ React__default.createElement(
|
|
14381
14810
|
"button",
|
|
14382
14811
|
{
|
|
14383
|
-
className: buttonVariants({ size: "sm", variant: "ghost" }),
|
|
14812
|
+
className: buttonVariants$1({ size: "sm", variant: "ghost" }),
|
|
14384
14813
|
type: "button",
|
|
14385
14814
|
...editButtonProps
|
|
14386
14815
|
},
|
|
@@ -14388,7 +14817,7 @@ function LinkFloatingToolbar({ state }) {
|
|
|
14388
14817
|
), /* @__PURE__ */ React__default.createElement(Separator, { orientation: "vertical" }), /* @__PURE__ */ React__default.createElement(
|
|
14389
14818
|
LinkOpenButton,
|
|
14390
14819
|
{
|
|
14391
|
-
className: buttonVariants({
|
|
14820
|
+
className: buttonVariants$1({
|
|
14392
14821
|
size: "sms",
|
|
14393
14822
|
variant: "ghost"
|
|
14394
14823
|
})
|
|
@@ -14397,7 +14826,7 @@ function LinkFloatingToolbar({ state }) {
|
|
|
14397
14826
|
), /* @__PURE__ */ React__default.createElement(Separator, { orientation: "vertical" }), /* @__PURE__ */ React__default.createElement(
|
|
14398
14827
|
"button",
|
|
14399
14828
|
{
|
|
14400
|
-
className: buttonVariants({
|
|
14829
|
+
className: buttonVariants$1({
|
|
14401
14830
|
size: "sms",
|
|
14402
14831
|
variant: "ghost"
|
|
14403
14832
|
}),
|