import * as _udecode_plate_utils from '@udecode/plate-utils'; import * as _udecode_utils from '@udecode/utils'; import * as _udecode_plate_core from '@udecode/plate-core'; import { g as getEmptyTableNode, a as getEmptyCellNode, b as getEmptyRowNode, c as getTableCellBorders, d as getTableCellSize, e as getColSpan, f as getRowSpan, i as insertTable, h as insertTableColumn, j as insertTableRow, k as deleteTable, l as deleteColumn, m as deleteRow, n as mergeTableCells, s as splitTableCell, C as CellIndices, B as BorderDirection, q as BorderStylesDefault, T as TableStoreSizeOverrides } from '../insertTableRow-CNdYcZsW.js'; import * as _udecode_slate from '@udecode/slate'; import * as _udecode_plate_core_react from '@udecode/plate-core/react'; import { SlateEditor, TTableCellElement, TElement, TTableElement } from '@udecode/plate'; import React from 'react'; import { ResizeHandle } from '@udecode/plate-resizable'; import * as jotai from 'jotai'; import * as jotai_x from 'jotai-x'; declare const TableRowPlugin: _udecode_plate_core_react.PlatePlugin<_udecode_plate_core.PluginConfig<"tr", {}, {}, {}, {}>>; declare const TableCellPlugin: _udecode_plate_core_react.PlatePlugin<_udecode_plate_core.PluginConfig<"td", {}, {}, {}, {}>>; declare const TableCellHeaderPlugin: _udecode_plate_core_react.PlatePlugin<_udecode_plate_core.PluginConfig<"th", {}, {}, {}, {}>>; /** Enables support for tables with React-specific features. */ declare const TablePlugin: _udecode_plate_core_react.PlatePlugin<_udecode_plate_core.PluginConfig<"table", { _cellIndices: Record; selectedCells: _udecode_slate.TElement[] | null; selectedTables: _udecode_slate.TElement[] | null; disableExpandOnInsert?: boolean; disableMarginLeft?: boolean; disableMerge?: boolean; enableUnsetSingleColSize?: boolean; initialTableWidth?: number; minColumnWidth?: number; }, { create: { table: _udecode_utils.OmitFirst; tableCell: _udecode_utils.OmitFirst; tableRow: _udecode_utils.OmitFirst; }; table: { getCellBorders: _udecode_utils.OmitFirst; getCellSize: _udecode_utils.OmitFirst; getColSpan: typeof getColSpan; getRowSpan: typeof getRowSpan; getCellChildren: (cell: _udecode_plate_utils.TTableCellElement) => _udecode_slate.Descendant[]; }; } & { create: { table: _udecode_utils.OmitFirst; tableCell: _udecode_utils.OmitFirst; tableRow: _udecode_utils.OmitFirst; }; table: { getCellBorders: _udecode_utils.OmitFirst; getCellSize: _udecode_utils.OmitFirst; getColSpan: typeof getColSpan; getRowSpan: typeof getRowSpan; getCellChildren: (cell: _udecode_plate_utils.TTableCellElement) => _udecode_slate.Descendant[]; }; }, { insert: { table: _udecode_utils.OmitFirst; tableColumn: _udecode_utils.OmitFirst; tableRow: _udecode_utils.OmitFirst; }; remove: { table: _udecode_utils.OmitFirst; tableColumn: _udecode_utils.OmitFirst; tableRow: _udecode_utils.OmitFirst; }; table: { merge: _udecode_utils.OmitFirst; split: _udecode_utils.OmitFirst; }; } & { insert: { table: _udecode_utils.OmitFirst; tableColumn: _udecode_utils.OmitFirst; tableRow: _udecode_utils.OmitFirst; }; remove: { table: _udecode_utils.OmitFirst; tableColumn: _udecode_utils.OmitFirst; tableRow: _udecode_utils.OmitFirst; }; table: { merge: _udecode_utils.OmitFirst; split: _udecode_utils.OmitFirst; }; }, { cellIndices?: (id: string) => CellIndices; }>>; /** * Toggle logic for `'none'`, `'outer'`, `'top'|'bottom'|'left'|'right'`. * `'none'` toggles no borders ↔ all borders, `'outer'` toggles the bounding * rectangle's outer edges on/off, `'top'|'bottom'|'left'|'right'` toggles only * that side of the bounding rect. */ declare function setSelectedCellsBorder(editor: SlateEditor, { border, cells, }: { border: BorderDirection | 'none' | 'outer'; cells: TTableCellElement[]; }): void; /** * Returns a function that sets borders on the selection with toggling logic. If * selection has one or many cells, it's the same approach: we read the bounding * rectangle, then decide which edges to flip on/off. */ declare const getOnSelectTableBorderFactory: (editor: SlateEditor, selectedCells: TElement[] | null) => (border: BorderDirection | "none" | "outer") => () => void; /** * Rounds a cell size to the nearest step, or returns the size if the step is * not set. */ declare const roundCellSizeToStep: (size: number, step?: number) => number; declare const useIsCellSelected: (element: TElement) => boolean; declare const useTableBordersDropdownMenuContentState: ({ element: el, }?: { element?: TTableElement; }) => { getOnSelectTableBorder: (border: BorderDirection | "none" | "outer") => () => void; hasBottomBorder: boolean; hasLeftBorder: boolean; hasNoBorders: boolean; hasOuterBorders: boolean; hasRightBorder: boolean; hasTopBorder: boolean; }; declare function useTableCellBorders({ element: el, }?: { element?: TTableCellElement; }): BorderStylesDefault; type TableCellElementState = { borders: BorderStylesDefault; colIndex: number; colSpan: number; isSelectingCell: boolean; minHeight: number | undefined; rowIndex: number; selected: boolean; width: number | string; }; declare const useTableCellElement: () => TableCellElementState; type TableCellElementResizableOptions = { /** Resize by step instead of by pixel. */ step?: number; /** Overrides for X and Y axes. */ stepX?: number; stepY?: number; } & Pick; declare const useTableCellElementResizable: ({ colIndex, colSpan, rowIndex, step, stepX, stepY, }: TableCellElementResizableOptions) => { bottomProps: React.ComponentPropsWithoutRef; hiddenLeft: boolean; leftProps: React.ComponentPropsWithoutRef; rightProps: React.ComponentPropsWithoutRef; }; declare function useTableCellSize({ element: el, }?: { element?: TTableCellElement; }): { minHeight: number | undefined; width: number; }; /** * Many grid cells above and diff -> set No many grid cells above and diff -> * unset No selection -> unset */ declare const useSelectedCells: () => void; /** * Returns colSizes with overrides applied. Unset node.colSizes if `colCount` * updates to 1. */ declare const useTableColSizes: ({ disableOverrides, transformColSizes, }?: { disableOverrides?: boolean; transformColSizes?: (colSizes: number[]) => number[]; }) => number[]; declare const useTableElement: () => { isSelectingCell: boolean; marginLeft: number; props: { onMouseDown: () => void; }; }; declare const useCellIndices: () => any; declare const useTableMergeState: () => { canMerge: boolean; canSplit: boolean; }; declare const TableProvider: React.FC>; declare const tableStore: jotai_x.StoreApi<{ colSizeOverrides: jotai.PrimitiveAtom & { init: TableStoreSizeOverrides; }; marginLeftOverride: number | null; rowSizeOverrides: jotai.PrimitiveAtom & { init: TableStoreSizeOverrides; }; }, object, "table">; declare const useTableSet: (key: K, options?: string | jotai_x.UseAtomOptions) => ({ colSizeOverrides: jotai.PrimitiveAtom & { init: TableStoreSizeOverrides; }; marginLeftOverride: jotai_x.SimpleWritableAtom; rowSizeOverrides: jotai.PrimitiveAtom & { init: TableStoreSizeOverrides; }; } & object)[K] extends jotai.WritableAtom ? (...args: A) => R : never; declare const useTableState: (key: K, options?: string | jotai_x.UseAtomOptions) => ({ colSizeOverrides: jotai.PrimitiveAtom & { init: TableStoreSizeOverrides; }; marginLeftOverride: jotai_x.SimpleWritableAtom; rowSizeOverrides: jotai.PrimitiveAtom & { init: TableStoreSizeOverrides; }; } & object)[K] extends jotai.WritableAtom ? [V, (...args: A) => R] : never; declare const useTableStore: jotai_x.UseStoreApi<{ colSizeOverrides: jotai.PrimitiveAtom & { init: TableStoreSizeOverrides; }; marginLeftOverride: number | null; rowSizeOverrides: jotai.PrimitiveAtom & { init: TableStoreSizeOverrides; }; }, object>; declare const useTableValue: & { init: TableStoreSizeOverrides; }; marginLeftOverride: jotai_x.SimpleWritableAtom; rowSizeOverrides: jotai.PrimitiveAtom & { init: TableStoreSizeOverrides; }; } & object)[K] extends jotai.Atom ? V : never>(key: K, options?: ({ selector?: ((v: ({ colSizeOverrides: jotai.PrimitiveAtom & { init: TableStoreSizeOverrides; }; marginLeftOverride: jotai_x.SimpleWritableAtom; rowSizeOverrides: jotai.PrimitiveAtom & { init: TableStoreSizeOverrides; }; } & object)[K] extends jotai.Atom ? V_1 : never, prevSelectorOutput?: S | undefined) => S) | undefined; equalityFn?: ((prev: S, next: S) => boolean) | undefined; } & jotai_x.UseAtomOptions) | undefined, deps?: unknown[]) => S; declare const useOverrideColSize: () => (index: number, size: number | null) => void; declare const useOverrideRowSize: () => (index: number, size: number | null) => void; declare const useOverrideMarginLeft: () => (args_0: number | null) => void; export { type TableCellElementResizableOptions, type TableCellElementState, TableCellHeaderPlugin, TableCellPlugin, TablePlugin, TableProvider, TableRowPlugin, getOnSelectTableBorderFactory, roundCellSizeToStep, setSelectedCellsBorder, tableStore, useCellIndices, useIsCellSelected, useOverrideColSize, useOverrideMarginLeft, useOverrideRowSize, useSelectedCells, useTableBordersDropdownMenuContentState, useTableCellBorders, useTableCellElement, useTableCellElementResizable, useTableCellSize, useTableColSizes, useTableElement, useTableMergeState, useTableSet, useTableState, useTableStore, useTableValue };