@docx-editor.dev/react 2.22.0 → 2.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -3,7 +3,7 @@ import react__default, { ReactNode, CSSProperties, ReactElement, ComponentType,
3
3
  import { ChromeExportFormat, InvalidTextFormFieldSession, ContentControlWidgetSession, CalendarMonth, ContentControlListNavigation, CalendarDay, TextFormFieldDialogSession, RevisionAuthorStyle, ParagraphDialogFields, ParagraphDialogMixed, ChromeMenuId, ChromeSlotId, ChromeMenuEntry, DocxEditorInstance, FontConfigurationFragment, FontResolver, EditorModule, ImageDecodePort, SupportedImageMime, TableChromeSlotId, ChromeExportHandlers, SurfaceHyperlink, FontOrigin, MarkedFontResolver, ReviewAuthorInfo, EditorCommandExecute, ToolbarValueMap, ParagraphFormatRead, ParagraphFormatUpdate, TextMeasurer, PaginatedSurfaceState, NavigationCommand, SurfaceFormatting, SectionProperties, RulerIndent, HistoryGroupBindingOptions } from '@docx-editor.dev/core/editor';
4
4
  export { CHROME_GROUPS, CHROME_MENUS, ChromeExportFormat, ChromeExportHandlers, ChromeMenu, ChromeMenuEntry, ChromeMenuId, ChromeMenuItemEntry, ChromeMenuSeparatorEntry, ChromeMenuSubmenuEntry, ChromeSlotId, ClearRefreshHighlightsOptions, DocumentRefresh, DocumentRefreshError, DocumentRefreshState, FontConfigurationBase, FontConfigurationFragment, FontLoadFailure, FontLoadFailureReason, FontOrigin, FontResolutionRequest, FontResolver, FontResolverMark, FontUrlSource, ImageWrapTarget, LOADING_SNAPSHOT, LoadFontsRequest, LoadFontsResult, MAX_RESOLVER_FAMILIES, MarkedFontResolver, NavigateToChangeOptions, PX_PER_CM, PX_PER_INCH, ParagraphFlagState, ParagraphFormatRead, ParagraphFormatUpdate, ParagraphTabStop, RefreshChange, RefreshChangeInput, RefreshFailureCode, RefreshHighlightAnimation, RefreshHighlightOptions, RefreshLocation, RefreshResult, RefreshSubmission, RefreshUpdate, ReviewAuthorInfo, RevisionAuthorAssignments, RevisionAuthorStyle, RevisionStyles, RulerTick, RulerUnit, ToolbarCommandState, WORD_DEFAULT_FONT, chromeMenuSlots, commandForSlot, composeFontConfiguration, composeFontOrigins, createDocumentRefresh, createFontSource, defineFontResolver, generateRulerTicks, isFontResolver, loadFonts, rulerPageBox, runToolbarCommand, toolbarCommandState } from '@docx-editor.dev/core/editor';
5
5
  import { Editor, ViewScope, EditorCommand, DocumentSource, FontConfiguration, ZoomMode, DocumentChange, EditorFontError, TextMatch, DocumentHandle, EditorExecOptions, ExecResult, EditorScope, EditorSnapshot, EditorEvents, PageSetup, IndentFormatting, ColorValue, Theme } from '@docx-editor.dev/core/contracts/editor';
6
- export { Editor, EditorCommand, EditorFontError, EditorFontErrorCode, EditorQuery, EditorScope, EditorSnapshot, FontConfiguration, FontFaceRequest, FontSource, FontSourceSubstitution, PageSetup } from '@docx-editor.dev/core/contracts/editor';
6
+ export { AnchorHighlightAnimation, AnchorHighlightOptions, ClearAnchorHighlightOptions, Editor, EditorCommand, EditorFontError, EditorFontErrorCode, EditorQuery, EditorScope, EditorSnapshot, FontConfiguration, FontFaceRequest, FontSource, FontSourceSubstitution, PageSetup, ScrollToAnchorOptions } from '@docx-editor.dev/core/contracts/editor';
7
7
  import { TFunction, Translations, LocaleStrings } from '@docx-editor.dev/i18n';
8
8
  export { TranslationKey } from '@docx-editor.dev/i18n';
9
9
  import { ContentControlType, ContentControlSummary } from '@docx-editor.dev/core';
@@ -694,28 +694,28 @@ declare function usePageSetupDialog(): UsePageSetupDialogReturn;
694
694
  /** Page Setup with replaceable controls and layout. @public */
695
695
  declare const DocxEditorPageSetupDialog: typeof PageSetupDialogRoot & {
696
696
  Header: (props: DialogPartProps & {
697
- name?: "scope" | "orientation" | "pageSize" | "marginLeft" | "marginRight" | "marginBottom" | "marginTop" | undefined;
697
+ name?: "pageSize" | "orientation" | "scope" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | undefined;
698
698
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
699
699
  Title: (props: DialogPartProps & {
700
- name?: "scope" | "orientation" | "pageSize" | "marginLeft" | "marginRight" | "marginBottom" | "marginTop" | undefined;
700
+ name?: "pageSize" | "orientation" | "scope" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | undefined;
701
701
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
702
702
  Body: (props: DialogPartProps & {
703
- name?: "scope" | "orientation" | "pageSize" | "marginLeft" | "marginRight" | "marginBottom" | "marginTop" | undefined;
703
+ name?: "pageSize" | "orientation" | "scope" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | undefined;
704
704
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
705
705
  Footer: (props: DialogPartProps & {
706
- name?: "scope" | "orientation" | "pageSize" | "marginLeft" | "marginRight" | "marginBottom" | "marginTop" | undefined;
706
+ name?: "pageSize" | "orientation" | "scope" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | undefined;
707
707
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
708
708
  Apply: (props: DialogPartProps & {
709
- name?: "scope" | "orientation" | "pageSize" | "marginLeft" | "marginRight" | "marginBottom" | "marginTop" | undefined;
709
+ name?: "pageSize" | "orientation" | "scope" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | undefined;
710
710
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
711
711
  Cancel: (props: DialogPartProps & {
712
- name?: "scope" | "orientation" | "pageSize" | "marginLeft" | "marginRight" | "marginBottom" | "marginTop" | undefined;
712
+ name?: "pageSize" | "orientation" | "scope" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | undefined;
713
713
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
714
714
  Error: (props: DialogPartProps & {
715
- name?: "scope" | "orientation" | "pageSize" | "marginLeft" | "marginRight" | "marginBottom" | "marginTop" | undefined;
715
+ name?: "pageSize" | "orientation" | "scope" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | undefined;
716
716
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
717
717
  Field: (props: DialogPartProps & {
718
- name: "scope" | "orientation" | "pageSize" | "marginLeft" | "marginRight" | "marginBottom" | "marginTop";
718
+ name: "pageSize" | "orientation" | "scope" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft";
719
719
  }) => react.ReactNode;
720
720
  };
721
721
 
@@ -742,28 +742,28 @@ declare function useParagraphDialog(): UseParagraphDialogReturn;
742
742
  /** Paragraph Options with replaceable controls and layout. @public */
743
743
  declare const DocxEditorParagraphDialog: typeof ParagraphDialogRoot & {
744
744
  Header: (props: DialogPartProps & {
745
- name?: "keepNext" | "keepLines" | "pageBreakBefore" | "widowControl" | "contextualSpacing" | "alignment" | "spaceBefore" | "spaceAfter" | "lineRule" | "tabStops" | "special" | "indentLeft" | "indentRight" | "specialBy" | "lineValue" | undefined;
745
+ name?: "alignment" | "direction" | "special" | "spaceBefore" | "spaceAfter" | "contextualSpacing" | "keepNext" | "keepLines" | "widowControl" | "pageBreakBefore" | "tabStops" | "indentLeft" | "indentRight" | "specialBy" | "lineRule" | "lineValue" | undefined;
746
746
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
747
747
  Title: (props: DialogPartProps & {
748
- name?: "keepNext" | "keepLines" | "pageBreakBefore" | "widowControl" | "contextualSpacing" | "alignment" | "spaceBefore" | "spaceAfter" | "lineRule" | "tabStops" | "special" | "indentLeft" | "indentRight" | "specialBy" | "lineValue" | undefined;
748
+ name?: "alignment" | "direction" | "special" | "spaceBefore" | "spaceAfter" | "contextualSpacing" | "keepNext" | "keepLines" | "widowControl" | "pageBreakBefore" | "tabStops" | "indentLeft" | "indentRight" | "specialBy" | "lineRule" | "lineValue" | undefined;
749
749
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
750
750
  Body: (props: DialogPartProps & {
751
- name?: "keepNext" | "keepLines" | "pageBreakBefore" | "widowControl" | "contextualSpacing" | "alignment" | "spaceBefore" | "spaceAfter" | "lineRule" | "tabStops" | "special" | "indentLeft" | "indentRight" | "specialBy" | "lineValue" | undefined;
751
+ name?: "alignment" | "direction" | "special" | "spaceBefore" | "spaceAfter" | "contextualSpacing" | "keepNext" | "keepLines" | "widowControl" | "pageBreakBefore" | "tabStops" | "indentLeft" | "indentRight" | "specialBy" | "lineRule" | "lineValue" | undefined;
752
752
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
753
753
  Footer: (props: DialogPartProps & {
754
- name?: "keepNext" | "keepLines" | "pageBreakBefore" | "widowControl" | "contextualSpacing" | "alignment" | "spaceBefore" | "spaceAfter" | "lineRule" | "tabStops" | "special" | "indentLeft" | "indentRight" | "specialBy" | "lineValue" | undefined;
754
+ name?: "alignment" | "direction" | "special" | "spaceBefore" | "spaceAfter" | "contextualSpacing" | "keepNext" | "keepLines" | "widowControl" | "pageBreakBefore" | "tabStops" | "indentLeft" | "indentRight" | "specialBy" | "lineRule" | "lineValue" | undefined;
755
755
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
756
756
  Apply: (props: DialogPartProps & {
757
- name?: "keepNext" | "keepLines" | "pageBreakBefore" | "widowControl" | "contextualSpacing" | "alignment" | "spaceBefore" | "spaceAfter" | "lineRule" | "tabStops" | "special" | "indentLeft" | "indentRight" | "specialBy" | "lineValue" | undefined;
757
+ name?: "alignment" | "direction" | "special" | "spaceBefore" | "spaceAfter" | "contextualSpacing" | "keepNext" | "keepLines" | "widowControl" | "pageBreakBefore" | "tabStops" | "indentLeft" | "indentRight" | "specialBy" | "lineRule" | "lineValue" | undefined;
758
758
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
759
759
  Cancel: (props: DialogPartProps & {
760
- name?: "keepNext" | "keepLines" | "pageBreakBefore" | "widowControl" | "contextualSpacing" | "alignment" | "spaceBefore" | "spaceAfter" | "lineRule" | "tabStops" | "special" | "indentLeft" | "indentRight" | "specialBy" | "lineValue" | undefined;
760
+ name?: "alignment" | "direction" | "special" | "spaceBefore" | "spaceAfter" | "contextualSpacing" | "keepNext" | "keepLines" | "widowControl" | "pageBreakBefore" | "tabStops" | "indentLeft" | "indentRight" | "specialBy" | "lineRule" | "lineValue" | undefined;
761
761
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
762
762
  Error: (props: DialogPartProps & {
763
- name?: "keepNext" | "keepLines" | "pageBreakBefore" | "widowControl" | "contextualSpacing" | "alignment" | "spaceBefore" | "spaceAfter" | "lineRule" | "tabStops" | "special" | "indentLeft" | "indentRight" | "specialBy" | "lineValue" | undefined;
763
+ name?: "alignment" | "direction" | "special" | "spaceBefore" | "spaceAfter" | "contextualSpacing" | "keepNext" | "keepLines" | "widowControl" | "pageBreakBefore" | "tabStops" | "indentLeft" | "indentRight" | "specialBy" | "lineRule" | "lineValue" | undefined;
764
764
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
765
765
  Field: (props: DialogPartProps & {
766
- name: "keepNext" | "keepLines" | "pageBreakBefore" | "widowControl" | "contextualSpacing" | "alignment" | "spaceBefore" | "spaceAfter" | "lineRule" | "tabStops" | "special" | "indentLeft" | "indentRight" | "specialBy" | "lineValue";
766
+ name: "alignment" | "direction" | "special" | "spaceBefore" | "spaceAfter" | "contextualSpacing" | "keepNext" | "keepLines" | "widowControl" | "pageBreakBefore" | "tabStops" | "indentLeft" | "indentRight" | "specialBy" | "lineRule" | "lineValue";
767
767
  }) => react.ReactNode;
768
768
  };
769
769
 
@@ -2134,6 +2134,8 @@ interface DocxEditorToolbarNamespace {
2134
2134
  readonly AlignCenter: ToolbarPartComponent;
2135
2135
  readonly AlignRight: ToolbarPartComponent;
2136
2136
  readonly AlignJustify: ToolbarPartComponent;
2137
+ readonly LeftToRight: ToolbarPartComponent;
2138
+ readonly RightToLeft: ToolbarPartComponent;
2137
2139
  readonly LineSpacing: ToolbarSlotPartComponent;
2138
2140
  readonly BulletList: ToolbarPartComponent;
2139
2141
  readonly NumberedList: ToolbarPartComponent;
@@ -3811,10 +3813,13 @@ interface PaginatedDocxEditorHandle {
3811
3813
  * `options.mergeAttributes` keeps the attributes the call does not name, for the
3812
3814
  * properties carrying several independent settings in one element — `w:spacing` holds the
3813
3815
  * line rule AND the space before and after, so a line-spacing pick without it deleted the
3814
- * paragraph's spacing.
3816
+ * paragraph's spacing. `physicalAlignment` and `paragraphDirection` spell `w:jc` and
3817
+ * `w:bidi` per paragraph direction.
3815
3818
  */
3816
3819
  setParagraphProperty(localName: string, attributes?: Record<string, string | null>, options?: {
3817
3820
  readonly mergeAttributes?: boolean;
3821
+ readonly physicalAlignment?: boolean;
3822
+ readonly paragraphDirection?: 'ltr' | 'rtl';
3818
3823
  }): void;
3819
3824
  /** Formatting at the selection, for a toolbar to reflect. */
3820
3825
  formatting(): SurfaceFormatting | null;
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import react__default, { ReactNode, CSSProperties, ReactElement, ComponentType,
3
3
  import { ChromeExportFormat, InvalidTextFormFieldSession, ContentControlWidgetSession, CalendarMonth, ContentControlListNavigation, CalendarDay, TextFormFieldDialogSession, RevisionAuthorStyle, ParagraphDialogFields, ParagraphDialogMixed, ChromeMenuId, ChromeSlotId, ChromeMenuEntry, DocxEditorInstance, FontConfigurationFragment, FontResolver, EditorModule, ImageDecodePort, SupportedImageMime, TableChromeSlotId, ChromeExportHandlers, SurfaceHyperlink, FontOrigin, MarkedFontResolver, ReviewAuthorInfo, EditorCommandExecute, ToolbarValueMap, ParagraphFormatRead, ParagraphFormatUpdate, TextMeasurer, PaginatedSurfaceState, NavigationCommand, SurfaceFormatting, SectionProperties, RulerIndent, HistoryGroupBindingOptions } from '@docx-editor.dev/core/editor';
4
4
  export { CHROME_GROUPS, CHROME_MENUS, ChromeExportFormat, ChromeExportHandlers, ChromeMenu, ChromeMenuEntry, ChromeMenuId, ChromeMenuItemEntry, ChromeMenuSeparatorEntry, ChromeMenuSubmenuEntry, ChromeSlotId, ClearRefreshHighlightsOptions, DocumentRefresh, DocumentRefreshError, DocumentRefreshState, FontConfigurationBase, FontConfigurationFragment, FontLoadFailure, FontLoadFailureReason, FontOrigin, FontResolutionRequest, FontResolver, FontResolverMark, FontUrlSource, ImageWrapTarget, LOADING_SNAPSHOT, LoadFontsRequest, LoadFontsResult, MAX_RESOLVER_FAMILIES, MarkedFontResolver, NavigateToChangeOptions, PX_PER_CM, PX_PER_INCH, ParagraphFlagState, ParagraphFormatRead, ParagraphFormatUpdate, ParagraphTabStop, RefreshChange, RefreshChangeInput, RefreshFailureCode, RefreshHighlightAnimation, RefreshHighlightOptions, RefreshLocation, RefreshResult, RefreshSubmission, RefreshUpdate, ReviewAuthorInfo, RevisionAuthorAssignments, RevisionAuthorStyle, RevisionStyles, RulerTick, RulerUnit, ToolbarCommandState, WORD_DEFAULT_FONT, chromeMenuSlots, commandForSlot, composeFontConfiguration, composeFontOrigins, createDocumentRefresh, createFontSource, defineFontResolver, generateRulerTicks, isFontResolver, loadFonts, rulerPageBox, runToolbarCommand, toolbarCommandState } from '@docx-editor.dev/core/editor';
5
5
  import { Editor, ViewScope, EditorCommand, DocumentSource, FontConfiguration, ZoomMode, DocumentChange, EditorFontError, TextMatch, DocumentHandle, EditorExecOptions, ExecResult, EditorScope, EditorSnapshot, EditorEvents, PageSetup, IndentFormatting, ColorValue, Theme } from '@docx-editor.dev/core/contracts/editor';
6
- export { Editor, EditorCommand, EditorFontError, EditorFontErrorCode, EditorQuery, EditorScope, EditorSnapshot, FontConfiguration, FontFaceRequest, FontSource, FontSourceSubstitution, PageSetup } from '@docx-editor.dev/core/contracts/editor';
6
+ export { AnchorHighlightAnimation, AnchorHighlightOptions, ClearAnchorHighlightOptions, Editor, EditorCommand, EditorFontError, EditorFontErrorCode, EditorQuery, EditorScope, EditorSnapshot, FontConfiguration, FontFaceRequest, FontSource, FontSourceSubstitution, PageSetup, ScrollToAnchorOptions } from '@docx-editor.dev/core/contracts/editor';
7
7
  import { TFunction, Translations, LocaleStrings } from '@docx-editor.dev/i18n';
8
8
  export { TranslationKey } from '@docx-editor.dev/i18n';
9
9
  import { ContentControlType, ContentControlSummary } from '@docx-editor.dev/core';
@@ -694,28 +694,28 @@ declare function usePageSetupDialog(): UsePageSetupDialogReturn;
694
694
  /** Page Setup with replaceable controls and layout. @public */
695
695
  declare const DocxEditorPageSetupDialog: typeof PageSetupDialogRoot & {
696
696
  Header: (props: DialogPartProps & {
697
- name?: "scope" | "orientation" | "pageSize" | "marginLeft" | "marginRight" | "marginBottom" | "marginTop" | undefined;
697
+ name?: "pageSize" | "orientation" | "scope" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | undefined;
698
698
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
699
699
  Title: (props: DialogPartProps & {
700
- name?: "scope" | "orientation" | "pageSize" | "marginLeft" | "marginRight" | "marginBottom" | "marginTop" | undefined;
700
+ name?: "pageSize" | "orientation" | "scope" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | undefined;
701
701
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
702
702
  Body: (props: DialogPartProps & {
703
- name?: "scope" | "orientation" | "pageSize" | "marginLeft" | "marginRight" | "marginBottom" | "marginTop" | undefined;
703
+ name?: "pageSize" | "orientation" | "scope" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | undefined;
704
704
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
705
705
  Footer: (props: DialogPartProps & {
706
- name?: "scope" | "orientation" | "pageSize" | "marginLeft" | "marginRight" | "marginBottom" | "marginTop" | undefined;
706
+ name?: "pageSize" | "orientation" | "scope" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | undefined;
707
707
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
708
708
  Apply: (props: DialogPartProps & {
709
- name?: "scope" | "orientation" | "pageSize" | "marginLeft" | "marginRight" | "marginBottom" | "marginTop" | undefined;
709
+ name?: "pageSize" | "orientation" | "scope" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | undefined;
710
710
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
711
711
  Cancel: (props: DialogPartProps & {
712
- name?: "scope" | "orientation" | "pageSize" | "marginLeft" | "marginRight" | "marginBottom" | "marginTop" | undefined;
712
+ name?: "pageSize" | "orientation" | "scope" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | undefined;
713
713
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
714
714
  Error: (props: DialogPartProps & {
715
- name?: "scope" | "orientation" | "pageSize" | "marginLeft" | "marginRight" | "marginBottom" | "marginTop" | undefined;
715
+ name?: "pageSize" | "orientation" | "scope" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | undefined;
716
716
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
717
717
  Field: (props: DialogPartProps & {
718
- name: "scope" | "orientation" | "pageSize" | "marginLeft" | "marginRight" | "marginBottom" | "marginTop";
718
+ name: "pageSize" | "orientation" | "scope" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft";
719
719
  }) => react.ReactNode;
720
720
  };
721
721
 
@@ -742,28 +742,28 @@ declare function useParagraphDialog(): UseParagraphDialogReturn;
742
742
  /** Paragraph Options with replaceable controls and layout. @public */
743
743
  declare const DocxEditorParagraphDialog: typeof ParagraphDialogRoot & {
744
744
  Header: (props: DialogPartProps & {
745
- name?: "keepNext" | "keepLines" | "pageBreakBefore" | "widowControl" | "contextualSpacing" | "alignment" | "spaceBefore" | "spaceAfter" | "lineRule" | "tabStops" | "special" | "indentLeft" | "indentRight" | "specialBy" | "lineValue" | undefined;
745
+ name?: "alignment" | "direction" | "special" | "spaceBefore" | "spaceAfter" | "contextualSpacing" | "keepNext" | "keepLines" | "widowControl" | "pageBreakBefore" | "tabStops" | "indentLeft" | "indentRight" | "specialBy" | "lineRule" | "lineValue" | undefined;
746
746
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
747
747
  Title: (props: DialogPartProps & {
748
- name?: "keepNext" | "keepLines" | "pageBreakBefore" | "widowControl" | "contextualSpacing" | "alignment" | "spaceBefore" | "spaceAfter" | "lineRule" | "tabStops" | "special" | "indentLeft" | "indentRight" | "specialBy" | "lineValue" | undefined;
748
+ name?: "alignment" | "direction" | "special" | "spaceBefore" | "spaceAfter" | "contextualSpacing" | "keepNext" | "keepLines" | "widowControl" | "pageBreakBefore" | "tabStops" | "indentLeft" | "indentRight" | "specialBy" | "lineRule" | "lineValue" | undefined;
749
749
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
750
750
  Body: (props: DialogPartProps & {
751
- name?: "keepNext" | "keepLines" | "pageBreakBefore" | "widowControl" | "contextualSpacing" | "alignment" | "spaceBefore" | "spaceAfter" | "lineRule" | "tabStops" | "special" | "indentLeft" | "indentRight" | "specialBy" | "lineValue" | undefined;
751
+ name?: "alignment" | "direction" | "special" | "spaceBefore" | "spaceAfter" | "contextualSpacing" | "keepNext" | "keepLines" | "widowControl" | "pageBreakBefore" | "tabStops" | "indentLeft" | "indentRight" | "specialBy" | "lineRule" | "lineValue" | undefined;
752
752
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
753
753
  Footer: (props: DialogPartProps & {
754
- name?: "keepNext" | "keepLines" | "pageBreakBefore" | "widowControl" | "contextualSpacing" | "alignment" | "spaceBefore" | "spaceAfter" | "lineRule" | "tabStops" | "special" | "indentLeft" | "indentRight" | "specialBy" | "lineValue" | undefined;
754
+ name?: "alignment" | "direction" | "special" | "spaceBefore" | "spaceAfter" | "contextualSpacing" | "keepNext" | "keepLines" | "widowControl" | "pageBreakBefore" | "tabStops" | "indentLeft" | "indentRight" | "specialBy" | "lineRule" | "lineValue" | undefined;
755
755
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
756
756
  Apply: (props: DialogPartProps & {
757
- name?: "keepNext" | "keepLines" | "pageBreakBefore" | "widowControl" | "contextualSpacing" | "alignment" | "spaceBefore" | "spaceAfter" | "lineRule" | "tabStops" | "special" | "indentLeft" | "indentRight" | "specialBy" | "lineValue" | undefined;
757
+ name?: "alignment" | "direction" | "special" | "spaceBefore" | "spaceAfter" | "contextualSpacing" | "keepNext" | "keepLines" | "widowControl" | "pageBreakBefore" | "tabStops" | "indentLeft" | "indentRight" | "specialBy" | "lineRule" | "lineValue" | undefined;
758
758
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
759
759
  Cancel: (props: DialogPartProps & {
760
- name?: "keepNext" | "keepLines" | "pageBreakBefore" | "widowControl" | "contextualSpacing" | "alignment" | "spaceBefore" | "spaceAfter" | "lineRule" | "tabStops" | "special" | "indentLeft" | "indentRight" | "specialBy" | "lineValue" | undefined;
760
+ name?: "alignment" | "direction" | "special" | "spaceBefore" | "spaceAfter" | "contextualSpacing" | "keepNext" | "keepLines" | "widowControl" | "pageBreakBefore" | "tabStops" | "indentLeft" | "indentRight" | "specialBy" | "lineRule" | "lineValue" | undefined;
761
761
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
762
762
  Error: (props: DialogPartProps & {
763
- name?: "keepNext" | "keepLines" | "pageBreakBefore" | "widowControl" | "contextualSpacing" | "alignment" | "spaceBefore" | "spaceAfter" | "lineRule" | "tabStops" | "special" | "indentLeft" | "indentRight" | "specialBy" | "lineValue" | undefined;
763
+ name?: "alignment" | "direction" | "special" | "spaceBefore" | "spaceAfter" | "contextualSpacing" | "keepNext" | "keepLines" | "widowControl" | "pageBreakBefore" | "tabStops" | "indentLeft" | "indentRight" | "specialBy" | "lineRule" | "lineValue" | undefined;
764
764
  }) => string | number | bigint | boolean | Iterable<react.ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<react.ReactNode> | null | undefined> | react.JSX.Element | null;
765
765
  Field: (props: DialogPartProps & {
766
- name: "keepNext" | "keepLines" | "pageBreakBefore" | "widowControl" | "contextualSpacing" | "alignment" | "spaceBefore" | "spaceAfter" | "lineRule" | "tabStops" | "special" | "indentLeft" | "indentRight" | "specialBy" | "lineValue";
766
+ name: "alignment" | "direction" | "special" | "spaceBefore" | "spaceAfter" | "contextualSpacing" | "keepNext" | "keepLines" | "widowControl" | "pageBreakBefore" | "tabStops" | "indentLeft" | "indentRight" | "specialBy" | "lineRule" | "lineValue";
767
767
  }) => react.ReactNode;
768
768
  };
769
769
 
@@ -2134,6 +2134,8 @@ interface DocxEditorToolbarNamespace {
2134
2134
  readonly AlignCenter: ToolbarPartComponent;
2135
2135
  readonly AlignRight: ToolbarPartComponent;
2136
2136
  readonly AlignJustify: ToolbarPartComponent;
2137
+ readonly LeftToRight: ToolbarPartComponent;
2138
+ readonly RightToLeft: ToolbarPartComponent;
2137
2139
  readonly LineSpacing: ToolbarSlotPartComponent;
2138
2140
  readonly BulletList: ToolbarPartComponent;
2139
2141
  readonly NumberedList: ToolbarPartComponent;
@@ -3811,10 +3813,13 @@ interface PaginatedDocxEditorHandle {
3811
3813
  * `options.mergeAttributes` keeps the attributes the call does not name, for the
3812
3814
  * properties carrying several independent settings in one element — `w:spacing` holds the
3813
3815
  * line rule AND the space before and after, so a line-spacing pick without it deleted the
3814
- * paragraph's spacing.
3816
+ * paragraph's spacing. `physicalAlignment` and `paragraphDirection` spell `w:jc` and
3817
+ * `w:bidi` per paragraph direction.
3815
3818
  */
3816
3819
  setParagraphProperty(localName: string, attributes?: Record<string, string | null>, options?: {
3817
3820
  readonly mergeAttributes?: boolean;
3821
+ readonly physicalAlignment?: boolean;
3822
+ readonly paragraphDirection?: 'ltr' | 'rtl';
3818
3823
  }): void;
3819
3824
  /** Formatting at the selection, for a toolbar to reflect. */
3820
3825
  formatting(): SurfaceFormatting | null;