@payloadcms/richtext-lexical 4.0.0-internal.688c4d0 → 4.0.0-internal.77191e5
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/LICENSE.md +1 -1
- package/dist/exports/client/Field-QKAL7KMC.js +2 -0
- package/dist/exports/client/Field-QKAL7KMC.js.map +7 -0
- package/dist/exports/client/bundled.css +1 -1
- package/dist/exports/client/chunk-43E5QYAA.js +2 -0
- package/dist/exports/client/chunk-43E5QYAA.js.map +7 -0
- package/dist/exports/client/chunk-LN6VX25I.js +2 -0
- package/dist/exports/client/chunk-LN6VX25I.js.map +7 -0
- package/dist/exports/client/component-D5QLYS7W.js +2 -0
- package/dist/exports/client/component-D5QLYS7W.js.map +7 -0
- package/dist/exports/client/index.d.ts +1 -3
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +26 -27
- package/dist/exports/client/index.js.map +4 -4
- package/dist/features/align/client/toolbarAlignGroup.d.ts.map +1 -1
- package/dist/features/blockquote/client/index.js +2 -2
- package/dist/features/blockquote/client/index.js.map +1 -1
- package/dist/features/blockquote/server/index.js +2 -2
- package/dist/features/blockquote/server/index.js.map +1 -1
- package/dist/features/blocks/client/component/index.css +2 -2
- package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.d.ts.map +1 -1
- package/dist/features/blocks/client/componentInline/index.css +8 -8
- package/dist/features/blocks/client/getBlockImageComponent.d.ts +1 -1
- package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts +1 -1
- package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts.map +1 -1
- package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js +1 -1
- package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js.map +1 -1
- package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts +1 -1
- package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts.map +1 -1
- package/dist/features/blocks/client/markdown/getMarkdownToLexical.js +5 -2
- package/dist/features/blocks/client/markdown/getMarkdownToLexical.js.map +1 -1
- package/dist/features/blocks/client/markdown/markdownTransformer.d.ts +1 -2
- package/dist/features/blocks/client/markdown/markdownTransformer.d.ts.map +1 -1
- package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -1
- package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
- package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.css +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.css +2 -4
- package/dist/features/blocks/premade/CodeBlock/Component/index.css +5 -5
- package/dist/features/blocks/server/graphQLPopulationPromise.d.ts.map +1 -1
- package/dist/features/blocks/server/index.js +2 -2
- package/dist/features/blocks/server/index.js.map +1 -1
- package/dist/features/blocks/server/markdown/markdownTransformer.d.ts +1 -1
- package/dist/features/blocks/server/markdown/markdownTransformer.d.ts.map +1 -1
- package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -1
- package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
- package/dist/features/blocks/server/nodes/InlineBlocksNode.d.ts.map +1 -1
- package/dist/features/blocks/server/schema.d.ts.map +1 -1
- package/dist/features/blocks/server/schema.js +3 -2
- package/dist/features/blocks/server/schema.js.map +1 -1
- package/dist/features/blocks/server/validate.d.ts.map +1 -1
- package/dist/features/converters/htmlToLexical/index.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/heading.js +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/heading.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/list.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/list.js +4 -3
- package/dist/features/converters/lexicalToHtml/async/converters/list.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/shared/cssColors.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js +3 -2
- package/dist/features/converters/lexicalToHtml/shared/findConverterForNode.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/heading.js +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/heading.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/list.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/list.js +4 -3
- package/dist/features/converters/lexicalToHtml/sync/converters/list.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/heading.d.ts.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/heading.js +2 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/list.d.ts.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/list.js +2 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
- package/dist/features/converters/lexicalToMarkdown/index.d.ts.map +1 -1
- package/dist/features/converters/lexicalToMarkdown/index.js +1 -1
- package/dist/features/converters/lexicalToMarkdown/index.js.map +1 -1
- package/dist/features/converters/markdownToLexical/index.d.ts.map +1 -1
- package/dist/features/converters/markdownToLexical/index.js +5 -2
- package/dist/features/converters/markdownToLexical/index.js.map +1 -1
- package/dist/features/debug/jsxConverter/client/plugin/style.css +2 -2
- package/dist/features/debug/testRecorder/client/plugin/index.css +0 -1
- package/dist/features/format/bold/feature.client.js +1 -1
- package/dist/features/format/bold/feature.client.js.map +1 -1
- package/dist/features/format/bold/feature.server.d.ts.map +1 -1
- package/dist/features/format/bold/feature.server.js +1 -1
- package/dist/features/format/bold/feature.server.js.map +1 -1
- package/dist/features/format/inlineCode/feature.client.js +1 -1
- package/dist/features/format/inlineCode/feature.client.js.map +1 -1
- package/dist/features/format/inlineCode/feature.server.d.ts.map +1 -1
- package/dist/features/format/inlineCode/feature.server.js +1 -1
- package/dist/features/format/inlineCode/feature.server.js.map +1 -1
- package/dist/features/format/italic/feature.client.js +1 -1
- package/dist/features/format/italic/feature.client.js.map +1 -1
- package/dist/features/format/italic/feature.server.d.ts.map +1 -1
- package/dist/features/format/italic/feature.server.js +1 -1
- package/dist/features/format/italic/feature.server.js.map +1 -1
- package/dist/features/format/shared/toolbarFormatGroup.d.ts.map +1 -1
- package/dist/features/format/strikethrough/feature.client.js +1 -1
- package/dist/features/format/strikethrough/feature.client.js.map +1 -1
- package/dist/features/format/strikethrough/feature.server.d.ts.map +1 -1
- package/dist/features/format/strikethrough/feature.server.js +1 -1
- package/dist/features/format/strikethrough/feature.server.js.map +1 -1
- package/dist/features/heading/client/index.js +2 -2
- package/dist/features/heading/client/index.js.map +1 -1
- package/dist/features/heading/constants.d.ts +2 -0
- package/dist/features/heading/constants.d.ts.map +1 -0
- package/dist/features/heading/constants.js +2 -0
- package/dist/features/heading/constants.js.map +1 -0
- package/dist/features/heading/markdownTransformer.d.ts +2 -2
- package/dist/features/heading/markdownTransformer.d.ts.map +1 -1
- package/dist/features/heading/markdownTransformer.js +6 -19
- package/dist/features/heading/markdownTransformer.js.map +1 -1
- package/dist/features/heading/server/index.d.ts.map +1 -1
- package/dist/features/heading/server/index.js +7 -3
- package/dist/features/heading/server/index.js.map +1 -1
- package/dist/features/heading/server/schema.d.ts.map +1 -1
- package/dist/features/heading/server/validate.d.ts +6 -0
- package/dist/features/heading/server/validate.d.ts.map +1 -0
- package/dist/features/heading/server/validate.js +15 -0
- package/dist/features/heading/server/validate.js.map +1 -0
- package/dist/features/horizontalRule/client/index.js +2 -2
- package/dist/features/horizontalRule/client/index.js.map +1 -1
- package/dist/features/horizontalRule/client/markdownTransformer.d.ts +2 -2
- package/dist/features/horizontalRule/client/markdownTransformer.d.ts.map +1 -1
- package/dist/features/horizontalRule/client/markdownTransformer.js +1 -1
- package/dist/features/horizontalRule/client/markdownTransformer.js.map +1 -1
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +1 -1
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +1 -1
- package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
- package/dist/features/horizontalRule/client/plugin/index.css +2 -2
- package/dist/features/horizontalRule/server/index.js +2 -2
- package/dist/features/horizontalRule/server/index.js.map +1 -1
- package/dist/features/horizontalRule/server/markdownTransformer.d.ts +2 -2
- package/dist/features/horizontalRule/server/markdownTransformer.d.ts.map +1 -1
- package/dist/features/horizontalRule/server/markdownTransformer.js +1 -1
- package/dist/features/horizontalRule/server/markdownTransformer.js.map +1 -1
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts +1 -1
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.d.ts.map +1 -1
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +1 -1
- package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
- package/dist/features/indent/client/toolbarIndentGroup.d.ts.map +1 -1
- package/dist/features/link/client/index.js +2 -2
- package/dist/features/link/client/index.js.map +1 -1
- package/dist/features/link/client/plugins/autoLink/index.d.ts.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +3 -3
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/index.css +7 -12
- package/dist/features/link/markdownTransformer.d.ts +4 -4
- package/dist/features/link/markdownTransformer.d.ts.map +1 -1
- package/dist/features/link/markdownTransformer.js +2 -2
- package/dist/features/link/markdownTransformer.js.map +1 -1
- package/dist/features/link/nodes/AutoLinkNode.d.ts +1 -1
- package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
- package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
- package/dist/features/link/nodes/LinkNode.d.ts +1 -1
- package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
- package/dist/features/link/nodes/LinkNode.js.map +1 -1
- package/dist/features/link/server/baseFields.d.ts.map +1 -1
- package/dist/features/link/server/baseFields.js.map +1 -1
- package/dist/features/link/server/graphQLPopulationPromise.d.ts.map +1 -1
- package/dist/features/link/server/index.js +4 -4
- package/dist/features/link/server/index.js.map +1 -1
- package/dist/features/link/server/schema.d.ts.map +1 -1
- package/dist/features/link/server/schema.js +4 -2
- package/dist/features/link/server/schema.js.map +1 -1
- package/dist/features/link/server/validate.d.ts.map +1 -1
- package/dist/features/lists/checklist/client/index.js +1 -1
- package/dist/features/lists/checklist/client/index.js.map +1 -1
- package/dist/features/lists/checklist/server/index.d.ts.map +1 -1
- package/dist/features/lists/checklist/server/index.js +6 -3
- package/dist/features/lists/checklist/server/index.js.map +1 -1
- package/dist/features/lists/orderedList/client/index.js +1 -1
- package/dist/features/lists/orderedList/client/index.js.map +1 -1
- package/dist/features/lists/orderedList/server/index.d.ts.map +1 -1
- package/dist/features/lists/orderedList/server/index.js +6 -3
- package/dist/features/lists/orderedList/server/index.js.map +1 -1
- package/dist/features/lists/shared/constants.d.ts +2 -0
- package/dist/features/lists/shared/constants.d.ts.map +1 -0
- package/dist/features/lists/shared/constants.js +2 -0
- package/dist/features/lists/shared/constants.js.map +1 -0
- package/dist/features/lists/shared/validate.d.ts +5 -0
- package/dist/features/lists/shared/validate.d.ts.map +1 -0
- package/dist/features/lists/shared/validate.js +15 -0
- package/dist/features/lists/shared/validate.js.map +1 -0
- package/dist/features/lists/unorderedList/client/index.js +1 -1
- package/dist/features/lists/unorderedList/client/index.js.map +1 -1
- package/dist/features/lists/unorderedList/server/index.d.ts.map +1 -1
- package/dist/features/lists/unorderedList/server/index.js +6 -3
- package/dist/features/lists/unorderedList/server/index.js.map +1 -1
- package/dist/features/relationship/client/drawer/index.d.ts.map +1 -1
- package/dist/features/relationship/client/index.d.ts +2 -2
- package/dist/features/relationship/client/index.d.ts.map +1 -1
- package/dist/features/relationship/client/index.js.map +1 -1
- package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
- package/dist/features/relationship/client/plugins/index.d.ts +2 -2
- package/dist/features/relationship/client/plugins/index.d.ts.map +1 -1
- package/dist/features/relationship/client/plugins/index.js +27 -31
- package/dist/features/relationship/client/plugins/index.js.map +1 -1
- package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts +2 -4
- package/dist/features/relationship/client/utils/useEnabledRelationships.d.ts.map +1 -1
- package/dist/features/relationship/client/utils/useEnabledRelationships.js +53 -20
- package/dist/features/relationship/client/utils/useEnabledRelationships.js.map +1 -1
- package/dist/features/relationship/server/graphQLPopulationPromise.d.ts +2 -2
- package/dist/features/relationship/server/graphQLPopulationPromise.d.ts.map +1 -1
- package/dist/features/relationship/server/graphQLPopulationPromise.js +2 -2
- package/dist/features/relationship/server/graphQLPopulationPromise.js.map +1 -1
- package/dist/features/relationship/server/index.d.ts +8 -1
- package/dist/features/relationship/server/index.d.ts.map +1 -1
- package/dist/features/relationship/server/index.js +28 -11
- package/dist/features/relationship/server/index.js.map +1 -1
- package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
- package/dist/features/relationship/server/schema.d.ts +5 -5
- package/dist/features/relationship/server/schema.d.ts.map +1 -1
- package/dist/features/relationship/server/schema.js +27 -15
- package/dist/features/relationship/server/schema.js.map +1 -1
- package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts +1 -6
- package/dist/features/relationship/shared/filterEnabledRelationshipCollections.d.ts.map +1 -1
- package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js +1 -5
- package/dist/features/relationship/shared/filterEnabledRelationshipCollections.js.map +1 -1
- package/dist/features/shared/toolbar/addDropdownGroup.d.ts.map +1 -1
- package/dist/features/shared/toolbar/featureButtonsGroup.d.ts.map +1 -1
- package/dist/features/shared/toolbar/textDropdownGroup.d.ts.map +1 -1
- package/dist/features/table/client/index.d.ts.map +1 -0
- package/dist/features/{experimental_table → table}/client/index.js +2 -2
- package/dist/features/table/client/index.js.map +1 -0
- package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.d.ts +8 -0
- package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.d.ts.map +1 -0
- package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.js +19 -0
- package/dist/features/table/client/plugins/TableActionMenuPlugin/computeSelectionCount.js.map +1 -0
- package/dist/features/table/client/plugins/TableActionMenuPlugin/index.d.ts.map +1 -0
- package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.js +16 -43
- package/dist/features/table/client/plugins/TableActionMenuPlugin/index.js.map +1 -0
- package/dist/features/table/client/plugins/TableCellResizerPlugin/index.d.ts.map +1 -0
- package/dist/features/table/client/plugins/TableCellResizerPlugin/index.js.map +1 -0
- package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -0
- package/dist/features/table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -0
- package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +1 -0
- package/dist/features/table/client/plugins/TablePlugin/TableGridPopup/index.js.map +1 -0
- package/dist/features/table/client/plugins/TablePlugin/index.d.ts.map +1 -0
- package/dist/features/table/client/plugins/TablePlugin/index.js.map +1 -0
- package/dist/features/table/client/utils/debounce.d.ts.map +1 -0
- package/dist/features/table/client/utils/debounce.js.map +1 -0
- package/dist/features/table/client/utils/useDebounce.d.ts.map +1 -0
- package/dist/features/table/client/utils/useDebounce.js.map +1 -0
- package/dist/features/table/markdownTransformer.d.ts +5 -0
- package/dist/features/table/markdownTransformer.d.ts.map +1 -0
- package/dist/features/{experimental_table → table}/markdownTransformer.js +6 -3
- package/dist/features/table/markdownTransformer.js.map +1 -0
- package/dist/features/table/server/index.d.ts +3 -0
- package/dist/features/table/server/index.d.ts.map +1 -0
- package/dist/features/{experimental_table → table}/server/index.js +6 -6
- package/dist/features/table/server/index.js.map +1 -0
- package/dist/features/table/server/schema.d.ts.map +1 -0
- package/dist/features/table/server/schema.js.map +1 -0
- package/dist/features/textState/feature.client.js +1 -1
- package/dist/features/textState/feature.client.js.map +1 -1
- package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.d.ts +8 -0
- package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.d.ts.map +1 -0
- package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.js +80 -0
- package/dist/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.js.map +1 -0
- package/dist/features/toolbars/fixed/client/Toolbar/index.css +80 -8
- package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
- package/dist/features/toolbars/fixed/client/Toolbar/index.js +4 -1
- package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
- package/dist/features/toolbars/inline/client/Toolbar/index.css +2 -14
- package/dist/features/toolbars/shared/ToolbarButton/index.d.ts.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/index.css +19 -24
- package/dist/features/toolbars/shared/ToolbarDropdown/index.d.ts.map +1 -1
- package/dist/features/toolbars/shared/useToolbarStates.d.ts.map +1 -1
- package/dist/features/toolbars/shared/useToolbarStates.js +3 -1
- package/dist/features/toolbars/shared/useToolbarStates.js.map +1 -1
- package/dist/features/typesClient.d.ts +1 -1
- package/dist/features/typesClient.d.ts.map +1 -1
- package/dist/features/typesClient.js.map +1 -1
- package/dist/features/typesServer.d.ts +3 -3
- package/dist/features/typesServer.d.ts.map +1 -1
- package/dist/features/typesServer.js.map +1 -1
- package/dist/features/upload/client/component/index.css +9 -9
- package/dist/features/upload/client/component/index.js +2 -1
- package/dist/features/upload/client/component/index.js.map +1 -1
- package/dist/features/upload/client/drawer/index.d.ts.map +1 -1
- package/dist/features/upload/client/index.d.ts +3 -2
- package/dist/features/upload/client/index.d.ts.map +1 -1
- package/dist/features/upload/client/index.js.map +1 -1
- package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
- package/dist/features/upload/client/plugin/index.d.ts.map +1 -1
- package/dist/features/upload/client/plugin/index.js +50 -55
- package/dist/features/upload/client/plugin/index.js.map +1 -1
- package/dist/features/upload/server/graphQLPopulationPromise.d.ts +2 -2
- package/dist/features/upload/server/graphQLPopulationPromise.d.ts.map +1 -1
- package/dist/features/upload/server/graphQLPopulationPromise.js +1 -1
- package/dist/features/upload/server/graphQLPopulationPromise.js.map +1 -1
- package/dist/features/upload/server/index.d.ts +6 -2
- package/dist/features/upload/server/index.d.ts.map +1 -1
- package/dist/features/upload/server/index.js +22 -18
- package/dist/features/upload/server/index.js.map +1 -1
- package/dist/features/upload/server/markdownTransformer.d.ts +2 -2
- package/dist/features/upload/server/markdownTransformer.d.ts.map +1 -1
- package/dist/features/upload/server/markdownTransformer.js +1 -1
- package/dist/features/upload/server/markdownTransformer.js.map +1 -1
- package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
- package/dist/features/upload/server/schema.d.ts +6 -6
- package/dist/features/upload/server/schema.d.ts.map +1 -1
- package/dist/features/upload/server/schema.js +30 -14
- package/dist/features/upload/server/schema.js.map +1 -1
- package/dist/features/upload/server/validate.d.ts +2 -2
- package/dist/features/upload/server/validate.d.ts.map +1 -1
- package/dist/features/upload/server/validate.js +3 -0
- package/dist/features/upload/server/validate.js.map +1 -1
- package/dist/field/Diff/converters/listitem/index.d.ts.map +1 -1
- package/dist/field/Diff/converters/listitem/index.js +2 -1
- package/dist/field/Diff/converters/listitem/index.js.map +1 -1
- package/dist/field/Diff/converters/unknown/index.css +1 -1
- package/dist/field/Diff/index.d.ts.map +1 -1
- package/dist/field/Diff/index.js +1 -0
- package/dist/field/Diff/index.js.map +1 -1
- package/dist/field/Field.d.ts.map +1 -1
- package/dist/field/Field.js +18 -15
- package/dist/field/Field.js.map +1 -1
- package/dist/field/RenderLexical/index.d.ts +3 -1
- package/dist/field/RenderLexical/index.d.ts.map +1 -1
- package/dist/field/RenderLexical/index.js +23 -23
- package/dist/field/RenderLexical/index.js.map +1 -1
- package/dist/field/ViewSelector.css +1 -1
- package/dist/field/bundled.css +1 -1
- package/dist/field/index.css +7 -8
- package/dist/i18n.d.ts.map +1 -1
- package/dist/i18n.js +68 -0
- package/dist/i18n.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -54
- package/dist/index.js.map +1 -1
- package/dist/lexical/LexicalEditor.css +18 -18
- package/dist/lexical/LexicalEditor.d.ts.map +1 -1
- package/dist/lexical/LexicalEditor.js +2 -36
- package/dist/lexical/LexicalEditor.js.map +1 -1
- package/dist/lexical/LexicalProvider.d.ts.map +1 -1
- package/dist/lexical/LexicalProvider.js +7 -22
- package/dist/lexical/LexicalProvider.js.map +1 -1
- package/dist/lexical/config/client/EditorConfigProvider.d.ts.map +1 -1
- package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
- package/dist/lexical/config/server/loader.d.ts +1 -1
- package/dist/lexical/config/server/loader.d.ts.map +1 -1
- package/dist/lexical/config/server/loader.js +2 -2
- package/dist/lexical/config/server/loader.js.map +1 -1
- package/dist/lexical/config/server/sanitize.d.ts +1 -1
- package/dist/lexical/config/server/sanitize.d.ts.map +1 -1
- package/dist/lexical/config/server/sanitize.js +2 -2
- package/dist/lexical/config/server/sanitize.js.map +1 -1
- package/dist/lexical/plugins/DecoratorPlugin/index.css +1 -1
- package/dist/lexical/plugins/InsertParagraphAtEnd/index.css +16 -24
- package/dist/lexical/plugins/InsertParagraphAtEnd/index.d.ts.map +1 -1
- package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +27 -14
- package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
- package/dist/lexical/plugins/MarkdownShortcut/index.d.ts.map +1 -1
- package/dist/lexical/plugins/MarkdownShortcut/index.js +1 -1
- package/dist/lexical/plugins/MarkdownShortcut/index.js.map +1 -1
- package/dist/lexical/plugins/NodeViewOverridePlugin/index.d.ts.map +1 -1
- package/dist/lexical/plugins/NodeViewOverridePlugin/index.js +21 -0
- package/dist/lexical/plugins/NodeViewOverridePlugin/index.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +0 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +1 -20
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/index.css +1 -6
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.css +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.css +4 -3
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
- package/dist/lexical/plugins/handles/utils/calculateDistanceFromScrollerElem.d.ts.map +1 -1
- package/dist/lexical/theme/EditorTheme.css +18 -19
- package/dist/lexical/ui/ContentEditable.css +22 -17
- package/dist/lexical/ui/icons/H3/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/H3/index.js +13 -6
- package/dist/lexical/ui/icons/H3/index.js.map +1 -1
- package/dist/lexical/ui/icons/H4/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/H4/index.js +13 -6
- package/dist/lexical/ui/icons/H4/index.js.map +1 -1
- package/dist/lexical/ui/icons/H5/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/H5/index.js +13 -6
- package/dist/lexical/ui/icons/H5/index.js.map +1 -1
- package/dist/lexical/ui/icons/H6/index.d.ts.map +1 -1
- package/dist/lexical/ui/icons/H6/index.js +13 -6
- package/dist/lexical/ui/icons/H6/index.js.map +1 -1
- package/dist/lexical/utils/markdown/convertFromMarkdownString.d.ts +17 -0
- package/dist/lexical/utils/markdown/convertFromMarkdownString.d.ts.map +1 -0
- package/dist/lexical/utils/markdown/convertFromMarkdownString.js +27 -0
- package/dist/lexical/utils/markdown/convertFromMarkdownString.js.map +1 -0
- package/dist/lexical/utils/markdown/createBlockNode.d.ts +2 -2
- package/dist/lexical/utils/markdown/createBlockNode.d.ts.map +1 -1
- package/dist/lexical/utils/markdown/createBlockNode.js.map +1 -1
- package/dist/lexical/utils/markdown/normalizeMarkdown.d.ts +25 -0
- package/dist/lexical/utils/markdown/normalizeMarkdown.d.ts.map +1 -0
- package/dist/lexical/utils/markdown/normalizeMarkdown.js +91 -0
- package/dist/lexical/utils/markdown/normalizeMarkdown.js.map +1 -0
- package/dist/lexical/utils/nodeFormat.d.ts.map +1 -1
- package/dist/lexical/utils/point.d.ts.map +1 -1
- package/dist/lexical/utils/rect.d.ts.map +1 -1
- package/dist/lexical-proxy/@lexical-markdown.d.ts +1 -1
- package/dist/lexical-proxy/@lexical-markdown.d.ts.map +1 -1
- package/dist/lexical-proxy/@lexical-markdown.js +1 -1
- package/dist/lexical-proxy/@lexical-markdown.js.map +1 -1
- package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts +2 -0
- package/dist/lexical-proxy/@lexical-react/ExtensionComponent.d.ts.map +1 -0
- package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js +2 -0
- package/dist/lexical-proxy/@lexical-react/ExtensionComponent.js.map +1 -0
- package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts +2 -0
- package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.d.ts.map +1 -0
- package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js +2 -0
- package/dist/lexical-proxy/@lexical-react/LexicalExtensionComposer.js.map +1 -0
- package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts +2 -0
- package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.d.ts.map +1 -0
- package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js +2 -0
- package/dist/lexical-proxy/@lexical-react/LexicalExtensionEditorComposer.js.map +1 -0
- package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts +2 -0
- package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.d.ts.map +1 -0
- package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js +2 -0
- package/dist/lexical-proxy/@lexical-react/LexicalSelectionAlwaysOnDisplay.js.map +1 -0
- package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts +2 -0
- package/dist/lexical-proxy/@lexical-react/ReactExtension.d.ts.map +1 -0
- package/dist/lexical-proxy/@lexical-react/ReactExtension.js +2 -0
- package/dist/lexical-proxy/@lexical-react/ReactExtension.js.map +1 -0
- package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts +2 -0
- package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.d.ts.map +1 -0
- package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js +2 -0
- package/dist/lexical-proxy/@lexical-react/ReactPluginHostExtension.js.map +1 -0
- package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts +2 -0
- package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.d.ts.map +1 -0
- package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js +2 -0
- package/dist/lexical-proxy/@lexical-react/ReactProviderExtension.js.map +1 -0
- package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts +2 -0
- package/dist/lexical-proxy/@lexical-react/TreeViewExtension.d.ts.map +1 -0
- package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js +2 -0
- package/dist/lexical-proxy/@lexical-react/TreeViewExtension.js.map +1 -0
- package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts +2 -0
- package/dist/lexical-proxy/@lexical-react/useExtensionComponent.d.ts.map +1 -0
- package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js +2 -0
- package/dist/lexical-proxy/@lexical-react/useExtensionComponent.js.map +1 -0
- package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts +2 -0
- package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.d.ts.map +1 -0
- package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js +2 -0
- package/dist/lexical-proxy/@lexical-react/useExtensionSignalValue.js.map +1 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts +2 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.d.ts.map +1 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js +2 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalAriaLiveRegion.js.map +1 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts +2 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.d.ts.map +1 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js +2 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalFocusManagerRef.js.map +1 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts +2 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.d.ts.map +1 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js +2 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalFocusTrapRef.js.map +1 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts +2 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.d.ts.map +1 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js +2 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalRovingTabIndexRef.js.map +1 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts +2 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.d.ts.map +1 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js +2 -0
- package/dist/lexical-proxy/@lexical-react/useLexicalSlotRef.js.map +1 -0
- package/dist/populateGraphQL/populateLexicalPopulationPromises.d.ts.map +1 -1
- package/dist/populateGraphQL/recursivelyPopulateFieldsForGraphQL.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/jsonSchemaHelpers.d.ts.map +1 -1
- package/dist/types/nodeTypes.d.ts +1 -1
- package/dist/types/nodeTypes.d.ts.map +1 -1
- package/dist/types/nodeTypes.js.map +1 -1
- package/dist/types/schema.d.ts.map +1 -1
- package/dist/types/schema.js +12 -5
- package/dist/types/schema.js.map +1 -1
- package/dist/utilities/applyBaseFilterToFields.d.ts.map +1 -1
- package/dist/utilities/applyBaseFilterToFields.js.map +1 -1
- package/dist/utilities/createServerFeature.d.ts +1 -1
- package/dist/utilities/createServerFeature.d.ts.map +1 -1
- package/dist/utilities/createServerFeature.js +2 -2
- package/dist/utilities/createServerFeature.js.map +1 -1
- package/dist/utilities/editorConfigFactory.d.ts +6 -6
- package/dist/utilities/editorConfigFactory.d.ts.map +1 -1
- package/dist/utilities/editorConfigFactory.js +9 -9
- package/dist/utilities/editorConfigFactory.js.map +1 -1
- package/dist/utilities/fieldsDrawer/index.css +0 -4
- package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts +1 -1
- package/dist/utilities/fieldsDrawer/useDrawerSubmit.d.ts.map +1 -1
- package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts.map +1 -1
- package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts.map +1 -1
- package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts.map +1 -1
- package/dist/utilities/generateImportMap.d.ts +1 -1
- package/dist/utilities/generateImportMap.d.ts.map +1 -1
- package/dist/utilities/generateImportMap.js +3 -7
- package/dist/utilities/generateImportMap.js.map +1 -1
- package/dist/utilities/generateSchemaMap.d.ts +1 -1
- package/dist/utilities/generateSchemaMap.d.ts.map +1 -1
- package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts +2 -2
- package/dist/utilities/getDefaultSanitizedEditorConfig.d.ts.map +1 -1
- package/dist/utilities/getDefaultSanitizedEditorConfig.js +6 -17
- package/dist/utilities/getDefaultSanitizedEditorConfig.js.map +1 -1
- package/dist/utilities/recurseNodeTree.d.ts.map +1 -1
- package/dist/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.d.ts.map +1 -1
- package/dist/utilities/useLexicalFeature.d.ts.map +1 -1
- package/dist/validate/index.d.ts.map +1 -1
- package/package.json +97 -29
- package/dist/@types/assets.d.js +0 -2
- package/dist/@types/assets.d.js.map +0 -1
- package/dist/dependencyChecker.spec.js +0 -16
- package/dist/dependencyChecker.spec.js.map +0 -1
- package/dist/exports/client/Field-VYBSMSRY.js +0 -2
- package/dist/exports/client/Field-VYBSMSRY.js.map +0 -7
- package/dist/exports/client/chunk-LH634DPU.js +0 -12
- package/dist/exports/client/chunk-LH634DPU.js.map +0 -7
- package/dist/exports/client/chunk-UD4DQ4AK.js +0 -2
- package/dist/exports/client/chunk-UD4DQ4AK.js.map +0 -7
- package/dist/exports/client/component-PHZQBOJE.js +0 -2
- package/dist/exports/client/component-PHZQBOJE.js.map +0 -7
- package/dist/exports/server/rsc.browser.d.ts +0 -11
- package/dist/exports/server/rsc.browser.d.ts.map +0 -1
- package/dist/exports/server/rsc.browser.js +0 -10
- package/dist/exports/server/rsc.browser.js.map +0 -1
- package/dist/features/blockquote/markdownTransformer.d.ts +0 -3
- package/dist/features/blockquote/markdownTransformer.d.ts.map +0 -1
- package/dist/features/blockquote/markdownTransformer.js +0 -33
- package/dist/features/blockquote/markdownTransformer.js.map +0 -1
- package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js +0 -180
- package/dist/features/converters/lexicalToPlaintext/convertLexicalToPlaintext.spec.js.map +0 -1
- package/dist/features/experimental_table/client/index.d.ts.map +0 -1
- package/dist/features/experimental_table/client/index.js.map +0 -1
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.d.ts.map +0 -1
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +0 -1
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.d.ts.map +0 -1
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +0 -1
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +0 -1
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +0 -1
- package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.d.ts.map +0 -1
- package/dist/features/experimental_table/client/plugins/TablePlugin/TableGridPopup/index.js.map +0 -1
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +0 -1
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +0 -1
- package/dist/features/experimental_table/client/utils/debounce.d.ts.map +0 -1
- package/dist/features/experimental_table/client/utils/debounce.js.map +0 -1
- package/dist/features/experimental_table/client/utils/useDebounce.d.ts.map +0 -1
- package/dist/features/experimental_table/client/utils/useDebounce.js.map +0 -1
- package/dist/features/experimental_table/markdownTransformer.d.ts +0 -5
- package/dist/features/experimental_table/markdownTransformer.d.ts.map +0 -1
- package/dist/features/experimental_table/markdownTransformer.js.map +0 -1
- package/dist/features/experimental_table/server/index.d.ts +0 -3
- package/dist/features/experimental_table/server/index.d.ts.map +0 -1
- package/dist/features/experimental_table/server/index.js.map +0 -1
- package/dist/features/experimental_table/server/schema.d.ts.map +0 -1
- package/dist/features/experimental_table/server/schema.js.map +0 -1
- package/dist/features/format/bold/markdownTransformers.d.ts +0 -6
- package/dist/features/format/bold/markdownTransformers.d.ts.map +0 -1
- package/dist/features/format/bold/markdownTransformers.js +0 -23
- package/dist/features/format/bold/markdownTransformers.js.map +0 -1
- package/dist/features/format/inlineCode/markdownTransformers.d.ts +0 -3
- package/dist/features/format/inlineCode/markdownTransformers.d.ts.map +0 -1
- package/dist/features/format/inlineCode/markdownTransformers.js +0 -6
- package/dist/features/format/inlineCode/markdownTransformers.js.map +0 -1
- package/dist/features/format/italic/markdownTransformers.d.ts +0 -4
- package/dist/features/format/italic/markdownTransformers.d.ts.map +0 -1
- package/dist/features/format/italic/markdownTransformers.js +0 -12
- package/dist/features/format/italic/markdownTransformers.js.map +0 -1
- package/dist/features/format/strikethrough/markdownTransformers.d.ts +0 -3
- package/dist/features/format/strikethrough/markdownTransformers.d.ts.map +0 -1
- package/dist/features/format/strikethrough/markdownTransformers.js +0 -6
- package/dist/features/format/strikethrough/markdownTransformers.js.map +0 -1
- package/dist/features/link/markdownTransformer.spec.js +0 -195
- package/dist/features/link/markdownTransformer.spec.js.map +0 -1
- package/dist/features/lists/checklist/markdownTransformers.d.ts +0 -3
- package/dist/features/lists/checklist/markdownTransformers.d.ts.map +0 -1
- package/dist/features/lists/checklist/markdownTransformers.js +0 -12
- package/dist/features/lists/checklist/markdownTransformers.js.map +0 -1
- package/dist/features/lists/orderedList/markdownTransformer.d.ts +0 -3
- package/dist/features/lists/orderedList/markdownTransformer.d.ts.map +0 -1
- package/dist/features/lists/orderedList/markdownTransformer.js +0 -12
- package/dist/features/lists/orderedList/markdownTransformer.js.map +0 -1
- package/dist/features/lists/shared/markdown.d.ts +0 -6
- package/dist/features/lists/shared/markdown.d.ts.map +0 -1
- package/dist/features/lists/shared/markdown.js +0 -57
- package/dist/features/lists/shared/markdown.js.map +0 -1
- package/dist/features/lists/unorderedList/markdownTransformer.d.ts +0 -3
- package/dist/features/lists/unorderedList/markdownTransformer.d.ts.map +0 -1
- package/dist/features/lists/unorderedList/markdownTransformer.js +0 -12
- package/dist/features/lists/unorderedList/markdownTransformer.js.map +0 -1
- package/dist/field/clientEntry.d.ts +0 -29
- package/dist/field/clientEntry.d.ts.map +0 -1
- package/dist/field/clientEntry.js +0 -86
- package/dist/field/clientEntry.js.map +0 -1
- package/dist/lexical/utils/guard.d.ts +0 -5
- package/dist/lexical/utils/guard.d.ts.map +0 -1
- package/dist/lexical/utils/guard.js +0 -9
- package/dist/lexical/utils/guard.js.map +0 -1
- package/dist/lexical/utils/url.spec.js +0 -114
- package/dist/lexical/utils/url.spec.js.map +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts +0 -2
- package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.d.ts.map +0 -1
- package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js +0 -2
- package/dist/lexical-proxy/@lexical-react/LexicalContextMenuPlugin.js.map +0 -1
- package/dist/packages/@lexical/markdown/MarkdownExport.d.ts +0 -14
- package/dist/packages/@lexical/markdown/MarkdownExport.d.ts.map +0 -1
- package/dist/packages/@lexical/markdown/MarkdownExport.js +0 -213
- package/dist/packages/@lexical/markdown/MarkdownExport.js.map +0 -1
- package/dist/packages/@lexical/markdown/MarkdownImport.d.ts +0 -19
- package/dist/packages/@lexical/markdown/MarkdownImport.d.ts.map +0 -1
- package/dist/packages/@lexical/markdown/MarkdownImport.js +0 -198
- package/dist/packages/@lexical/markdown/MarkdownImport.js.map +0 -1
- package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts +0 -11
- package/dist/packages/@lexical/markdown/MarkdownShortcuts.d.ts.map +0 -1
- package/dist/packages/@lexical/markdown/MarkdownShortcuts.js +0 -304
- package/dist/packages/@lexical/markdown/MarkdownShortcuts.js.map +0 -1
- package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts +0 -147
- package/dist/packages/@lexical/markdown/MarkdownTransformers.d.ts.map +0 -1
- package/dist/packages/@lexical/markdown/MarkdownTransformers.js +0 -268
- package/dist/packages/@lexical/markdown/MarkdownTransformers.js.map +0 -1
- package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts +0 -22
- package/dist/packages/@lexical/markdown/importTextFormatTransformer.d.ts.map +0 -1
- package/dist/packages/@lexical/markdown/importTextFormatTransformer.js +0 -91
- package/dist/packages/@lexical/markdown/importTextFormatTransformer.js.map +0 -1
- package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts +0 -21
- package/dist/packages/@lexical/markdown/importTextMatchTransformer.d.ts.map +0 -1
- package/dist/packages/@lexical/markdown/importTextMatchTransformer.js +0 -54
- package/dist/packages/@lexical/markdown/importTextMatchTransformer.js.map +0 -1
- package/dist/packages/@lexical/markdown/importTextTransformers.d.ts +0 -18
- package/dist/packages/@lexical/markdown/importTextTransformers.d.ts.map +0 -1
- package/dist/packages/@lexical/markdown/importTextTransformers.js +0 -54
- package/dist/packages/@lexical/markdown/importTextTransformers.js.map +0 -1
- package/dist/packages/@lexical/markdown/index.d.ts +0 -29
- package/dist/packages/@lexical/markdown/index.d.ts.map +0 -1
- package/dist/packages/@lexical/markdown/index.js +0 -39
- package/dist/packages/@lexical/markdown/index.js.map +0 -1
- package/dist/packages/@lexical/markdown/utils.d.ts +0 -34
- package/dist/packages/@lexical/markdown/utils.d.ts.map +0 -1
- package/dist/packages/@lexical/markdown/utils.js +0 -267
- package/dist/packages/@lexical/markdown/utils.js.map +0 -1
- package/dist/utilities/jsx/jsx.spec.js +0 -178
- package/dist/utilities/jsx/jsx.spec.js.map +0 -1
- /package/dist/features/{experimental_table → table}/client/index.d.ts +0 -0
- /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.css +0 -0
- /package/dist/features/{experimental_table → table}/client/plugins/TableActionMenuPlugin/index.d.ts +0 -0
- /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.css +0 -0
- /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.d.ts +0 -0
- /package/dist/features/{experimental_table → table}/client/plugins/TableCellResizerPlugin/index.js +0 -0
- /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.d.ts +0 -0
- /package/dist/features/{experimental_table → table}/client/plugins/TableHoverActionsPlugin/index.js +0 -0
- /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.css +0 -0
- /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.d.ts +0 -0
- /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/TableGridPopup/index.js +0 -0
- /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.css +0 -0
- /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.d.ts +0 -0
- /package/dist/features/{experimental_table → table}/client/plugins/TablePlugin/index.js +0 -0
- /package/dist/features/{experimental_table → table}/client/utils/debounce.d.ts +0 -0
- /package/dist/features/{experimental_table → table}/client/utils/debounce.js +0 -0
- /package/dist/features/{experimental_table → table}/client/utils/useDebounce.d.ts +0 -0
- /package/dist/features/{experimental_table → table}/client/utils/useDebounce.js +0 -0
- /package/dist/features/{experimental_table → table}/server/schema.d.ts +0 -0
- /package/dist/features/{experimental_table → table}/server/schema.js +0 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
4
|
+
import { useEffect } from 'react';
|
|
5
|
+
const scrollContainerSelector = '.fixed-toolbar__scroll';
|
|
6
|
+
// A single notch on a classic (non-trackpad) wheel mouse reports deltaMode 1 with a
|
|
7
|
+
// deltaY of only 1-3, so it must be scaled up to a pixel value that actually moves the scroll.
|
|
8
|
+
const PIXELS_PER_LINE = 40;
|
|
9
|
+
export function getHorizontalScrollDelta({
|
|
10
|
+
clientWidth,
|
|
11
|
+
deltaMode,
|
|
12
|
+
deltaY,
|
|
13
|
+
isRightToLeft
|
|
14
|
+
}) {
|
|
15
|
+
const deltaInPixels = deltaMode === 1 ? deltaY * PIXELS_PER_LINE : deltaMode === 2 ? deltaY * clientWidth : deltaY;
|
|
16
|
+
// scrollLeft moves toward the inline-start edge for a given positive delta in RTL,
|
|
17
|
+
// the opposite of LTR, so the delta must be negated to keep the scroll direction consistent.
|
|
18
|
+
return isRightToLeft ? -deltaInPixels : deltaInPixels;
|
|
19
|
+
}
|
|
20
|
+
function redirectVerticalWheelToHorizontalScroll(event) {
|
|
21
|
+
const isPrimarilyVerticalWheelInput = Math.abs(event.deltaY) > Math.abs(event.deltaX);
|
|
22
|
+
if (!isPrimarilyVerticalWheelInput) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const target = event.target;
|
|
26
|
+
if (!(target instanceof Element)) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const scrollContainer = target.closest(scrollContainerSelector);
|
|
30
|
+
if (!scrollContainer) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const canScrollHorizontally = scrollContainer.scrollWidth > scrollContainer.clientWidth;
|
|
34
|
+
if (!canScrollHorizontally) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
event.preventDefault();
|
|
38
|
+
scrollContainer.scrollLeft += getHorizontalScrollDelta({
|
|
39
|
+
clientWidth: scrollContainer.clientWidth,
|
|
40
|
+
deltaMode: event.deltaMode,
|
|
41
|
+
deltaY: event.deltaY,
|
|
42
|
+
isRightToLeft: getComputedStyle(scrollContainer).direction === 'rtl'
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
// A single page can render many fixed toolbars at once (e.g. rich text nested several
|
|
46
|
+
// layers deep inside blocks), so this listener is delegated to `document` and shared
|
|
47
|
+
// across every toolbar instance instead of being attached per instance. A wheel listener
|
|
48
|
+
// that can call preventDefault() must be non-passive, and non-passive listeners make the
|
|
49
|
+
// browser treat their element as a "non-fast-scrollable region" that every scroll gesture
|
|
50
|
+
// on the page has to be checked against, even ones nowhere near it. Attaching one instance
|
|
51
|
+
// per toolbar would multiply that bookkeeping by however many toolbars happen to be on the
|
|
52
|
+
// page; a single delegated listener keeps that cost constant no matter how many there are.
|
|
53
|
+
let toolbarsListeningForWheelEvents = 0;
|
|
54
|
+
export function useRedirectVerticalWheelToHorizontalScroll() {
|
|
55
|
+
const $ = _c(1);
|
|
56
|
+
let t0;
|
|
57
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
58
|
+
t0 = [];
|
|
59
|
+
$[0] = t0;
|
|
60
|
+
} else {
|
|
61
|
+
t0 = $[0];
|
|
62
|
+
}
|
|
63
|
+
useEffect(_temp2, t0);
|
|
64
|
+
}
|
|
65
|
+
function _temp2() {
|
|
66
|
+
if (toolbarsListeningForWheelEvents === 0) {
|
|
67
|
+
document.addEventListener("wheel", redirectVerticalWheelToHorizontalScroll, {
|
|
68
|
+
passive: false
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
toolbarsListeningForWheelEvents = toolbarsListeningForWheelEvents + 1;
|
|
72
|
+
return _temp;
|
|
73
|
+
}
|
|
74
|
+
function _temp() {
|
|
75
|
+
toolbarsListeningForWheelEvents = toolbarsListeningForWheelEvents - 1;
|
|
76
|
+
if (toolbarsListeningForWheelEvents === 0) {
|
|
77
|
+
document.removeEventListener("wheel", redirectVerticalWheelToHorizontalScroll);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=horizontalWheelScroll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"horizontalWheelScroll.js","names":["c","_c","useEffect","scrollContainerSelector","PIXELS_PER_LINE","getHorizontalScrollDelta","clientWidth","deltaMode","deltaY","isRightToLeft","deltaInPixels","redirectVerticalWheelToHorizontalScroll","event","isPrimarilyVerticalWheelInput","Math","abs","deltaX","target","Element","scrollContainer","closest","canScrollHorizontally","scrollWidth","preventDefault","scrollLeft","getComputedStyle","direction","toolbarsListeningForWheelEvents","useRedirectVerticalWheelToHorizontalScroll","$","t0","Symbol","for","_temp2","document","addEventListener","passive","_temp","removeEventListener"],"sources":["../../../../../../src/features/toolbars/fixed/client/Toolbar/horizontalWheelScroll.ts"],"sourcesContent":["'use client'\nimport { useEffect } from 'react'\n\nconst scrollContainerSelector = '.fixed-toolbar__scroll'\n\n// A single notch on a classic (non-trackpad) wheel mouse reports deltaMode 1 with a\n// deltaY of only 1-3, so it must be scaled up to a pixel value that actually moves the scroll.\nconst PIXELS_PER_LINE = 40\n\nexport function getHorizontalScrollDelta({\n clientWidth,\n deltaMode,\n deltaY,\n isRightToLeft,\n}: {\n clientWidth: number\n deltaMode: number\n deltaY: number\n isRightToLeft: boolean\n}): number {\n const deltaInPixels =\n deltaMode === 1 ? deltaY * PIXELS_PER_LINE : deltaMode === 2 ? deltaY * clientWidth : deltaY\n\n // scrollLeft moves toward the inline-start edge for a given positive delta in RTL,\n // the opposite of LTR, so the delta must be negated to keep the scroll direction consistent.\n return isRightToLeft ? -deltaInPixels : deltaInPixels\n}\n\nfunction redirectVerticalWheelToHorizontalScroll(event: WheelEvent): void {\n const isPrimarilyVerticalWheelInput = Math.abs(event.deltaY) > Math.abs(event.deltaX)\n if (!isPrimarilyVerticalWheelInput) {\n return\n }\n\n const target = event.target\n if (!(target instanceof Element)) {\n return\n }\n\n const scrollContainer = target.closest<HTMLElement>(scrollContainerSelector)\n if (!scrollContainer) {\n return\n }\n\n const canScrollHorizontally = scrollContainer.scrollWidth > scrollContainer.clientWidth\n if (!canScrollHorizontally) {\n return\n }\n\n event.preventDefault()\n scrollContainer.scrollLeft += getHorizontalScrollDelta({\n clientWidth: scrollContainer.clientWidth,\n deltaMode: event.deltaMode,\n deltaY: event.deltaY,\n isRightToLeft: getComputedStyle(scrollContainer).direction === 'rtl',\n })\n}\n\n// A single page can render many fixed toolbars at once (e.g. rich text nested several\n// layers deep inside blocks), so this listener is delegated to `document` and shared\n// across every toolbar instance instead of being attached per instance. A wheel listener\n// that can call preventDefault() must be non-passive, and non-passive listeners make the\n// browser treat their element as a \"non-fast-scrollable region\" that every scroll gesture\n// on the page has to be checked against, even ones nowhere near it. Attaching one instance\n// per toolbar would multiply that bookkeeping by however many toolbars happen to be on the\n// page; a single delegated listener keeps that cost constant no matter how many there are.\nlet toolbarsListeningForWheelEvents = 0\n\nexport function useRedirectVerticalWheelToHorizontalScroll(): void {\n useEffect(() => {\n if (toolbarsListeningForWheelEvents === 0) {\n document.addEventListener('wheel', redirectVerticalWheelToHorizontalScroll, {\n passive: false,\n })\n }\n toolbarsListeningForWheelEvents += 1\n\n return () => {\n toolbarsListeningForWheelEvents -= 1\n if (toolbarsListeningForWheelEvents === 0) {\n document.removeEventListener('wheel', redirectVerticalWheelToHorizontalScroll)\n }\n }\n }, [])\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAASC,SAAS,QAAQ;AAE1B,MAAMC,uBAAA,GAA0B;AAEhC;AACA;AACA,MAAMC,eAAA,GAAkB;AAExB,OAAO,SAASC,yBAAyB;EACvCC,WAAW;EACXC,SAAS;EACTC,MAAM;EACNC;AAAa,CAMd;EACC,MAAMC,aAAA,GACJH,SAAA,KAAc,IAAIC,MAAA,GAASJ,eAAA,GAAkBG,SAAA,KAAc,IAAIC,MAAA,GAASF,WAAA,GAAcE,MAAA;EAExF;EACA;EACA,OAAOC,aAAA,GAAgB,CAACC,aAAA,GAAgBA,aAAA;AAC1C;AAEA,SAASC,wCAAwCC,KAAiB;EAChE,MAAMC,6BAAA,GAAgCC,IAAA,CAAKC,GAAG,CAACH,KAAA,CAAMJ,MAAM,IAAIM,IAAA,CAAKC,GAAG,CAACH,KAAA,CAAMI,MAAM;EACpF,IAAI,CAACH,6BAAA,EAA+B;IAClC;EACF;EAEA,MAAMI,MAAA,GAASL,KAAA,CAAMK,MAAM;EAC3B,IAAI,EAAEA,MAAA,YAAkBC,OAAM,GAAI;IAChC;EACF;EAEA,MAAMC,eAAA,GAAkBF,MAAA,CAAOG,OAAO,CAAcjB,uBAAA;EACpD,IAAI,CAACgB,eAAA,EAAiB;IACpB;EACF;EAEA,MAAME,qBAAA,GAAwBF,eAAA,CAAgBG,WAAW,GAAGH,eAAA,CAAgBb,WAAW;EACvF,IAAI,CAACe,qBAAA,EAAuB;IAC1B;EACF;EAEAT,KAAA,CAAMW,cAAc;EACpBJ,eAAA,CAAgBK,UAAU,IAAInB,wBAAA,CAAyB;IACrDC,WAAA,EAAaa,eAAA,CAAgBb,WAAW;IACxCC,SAAA,EAAWK,KAAA,CAAML,SAAS;IAC1BC,MAAA,EAAQI,KAAA,CAAMJ,MAAM;IACpBC,aAAA,EAAegB,gBAAA,CAAiBN,eAAA,EAAiBO,SAAS,KAAK;EACjE;AACF;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,+BAAA,GAAkC;AAEtC,OAAO,SAAAC,2CAAA;EAAA,MAAAC,CAAA,GAAA5B,EAAA;EAAA,IAAA6B,EAAA;EAAA,IAAAD,CAAA,QAAAE,MAAA,CAAAC,GAAA;IAeFF,EAAA;IAAED,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EAdL3B,SAAA,CAAA+B,MAAA,EAcGH,EAAE;AAAA;AAfA,SAAAG,OAAA;EAAA,IAECN,+BAAA,MAAoC;IACtCO,QAAA,CAAAC,gBAAA,CAA0B,SAAAxB,uCAAA;MAAAyB,OAAA;IAAA,CAE1B;EAAA;EAAAT,+BAAA,GAEFA,+BAAA,IAAmC;EAAA,OAAAU,KAAA;AAAA;AAPhC,SAAAA,MAAA;EAAAV,+BAAA,GAUDA,+BAAA,IAAmC;EAAA,IAC/BA,+BAAA,MAAoC;IACtCO,QAAA,CAAAI,mBAAA,CAA6B,SAAA3B,uCAAS;EAAA;AAAA","ignoreList":[]}
|
|
@@ -1,3 +1,37 @@
|
|
|
1
|
+
@property --fixed-toolbar-fade-start {
|
|
2
|
+
syntax: '<length>';
|
|
3
|
+
inherits: false;
|
|
4
|
+
initial-value: 0px;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
@property --fixed-toolbar-fade-end {
|
|
8
|
+
syntax: '<length>';
|
|
9
|
+
inherits: false;
|
|
10
|
+
initial-value: 0px;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/*
|
|
14
|
+
* Drives the fade widths off the toolbar's own scroll position: fully opaque at rest,
|
|
15
|
+
* fading in on whichever edge still has scrolled-off content once it overflows.
|
|
16
|
+
* Unsupported browsers (no animation-timeline) simply keep the initial 0px fade, i.e. no fade at all.
|
|
17
|
+
*/
|
|
18
|
+
@keyframes fixed-toolbar-scroll-fade {
|
|
19
|
+
0% {
|
|
20
|
+
--fixed-toolbar-fade-start: 0px;
|
|
21
|
+
}
|
|
22
|
+
10%,
|
|
23
|
+
100% {
|
|
24
|
+
--fixed-toolbar-fade-start: var(--spacer-5);
|
|
25
|
+
}
|
|
26
|
+
0%,
|
|
27
|
+
90% {
|
|
28
|
+
--fixed-toolbar-fade-end: var(--spacer-5);
|
|
29
|
+
}
|
|
30
|
+
100% {
|
|
31
|
+
--fixed-toolbar-fade-end: 0px;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
1
35
|
@layer payload-default {
|
|
2
36
|
.fixed-toolbar.fixed-toolbar--hide {
|
|
3
37
|
visibility: hidden;
|
|
@@ -7,10 +41,8 @@
|
|
|
7
41
|
|
|
8
42
|
.fixed-toolbar {
|
|
9
43
|
display: flex;
|
|
10
|
-
flex-wrap: wrap;
|
|
11
44
|
align-items: center;
|
|
12
45
|
padding: 0 var(--spacer-2);
|
|
13
|
-
gap: var(--spacer-2);
|
|
14
46
|
vertical-align: middle;
|
|
15
47
|
position: sticky;
|
|
16
48
|
z-index: 2;
|
|
@@ -27,9 +59,9 @@
|
|
|
27
59
|
content: ' ';
|
|
28
60
|
position: absolute;
|
|
29
61
|
top: 0;
|
|
30
|
-
|
|
62
|
+
inset-inline-end: 0;
|
|
31
63
|
bottom: 0;
|
|
32
|
-
|
|
64
|
+
inset-inline-start: 0;
|
|
33
65
|
border-radius: inherit;
|
|
34
66
|
}
|
|
35
67
|
|
|
@@ -46,24 +78,64 @@
|
|
|
46
78
|
border-radius: 0 0 var(--radius-medium) var(--radius-medium) !important;
|
|
47
79
|
|
|
48
80
|
> .editor-scroller > .editor {
|
|
81
|
+
--content-editable-padding-block-start: var(--spacer-2);
|
|
82
|
+
|
|
49
83
|
> .ContentEditable__root {
|
|
50
84
|
padding-top: var(--spacer-2);
|
|
51
85
|
}
|
|
52
86
|
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
53
89
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
90
|
+
.fixed-toolbar__scroll {
|
|
91
|
+
display: flex;
|
|
92
|
+
flex: 1 1 auto;
|
|
93
|
+
flex-wrap: nowrap;
|
|
94
|
+
align-items: center;
|
|
95
|
+
gap: var(--spacer-2);
|
|
96
|
+
min-width: 0;
|
|
97
|
+
overflow-x: auto;
|
|
98
|
+
scrollbar-width: none;
|
|
99
|
+
-ms-overflow-style: none;
|
|
100
|
+
position: relative;
|
|
101
|
+
z-index: 1;
|
|
102
|
+
animation: fixed-toolbar-scroll-fade linear;
|
|
103
|
+
animation-timeline: scroll(self inline);
|
|
104
|
+
mask: linear-gradient(
|
|
105
|
+
to right,
|
|
106
|
+
transparent,
|
|
107
|
+
black var(--fixed-toolbar-fade-start),
|
|
108
|
+
black calc(100% - var(--fixed-toolbar-fade-end)),
|
|
109
|
+
transparent
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
&::-webkit-scrollbar {
|
|
113
|
+
display: none;
|
|
57
114
|
}
|
|
58
115
|
}
|
|
59
116
|
|
|
117
|
+
[dir='rtl'] .fixed-toolbar__scroll {
|
|
118
|
+
mask: linear-gradient(
|
|
119
|
+
to left,
|
|
120
|
+
transparent,
|
|
121
|
+
black var(--fixed-toolbar-fade-start),
|
|
122
|
+
black calc(100% - var(--fixed-toolbar-fade-end)),
|
|
123
|
+
transparent
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
|
|
60
127
|
.fixed-toolbar__group {
|
|
61
128
|
display: flex;
|
|
62
|
-
flex-wrap:
|
|
129
|
+
flex-wrap: nowrap;
|
|
63
130
|
align-items: center;
|
|
64
131
|
gap: var(--spacer-2);
|
|
65
132
|
align-self: stretch;
|
|
66
133
|
z-index: 1;
|
|
134
|
+
flex-shrink: 0;
|
|
135
|
+
|
|
136
|
+
> * {
|
|
137
|
+
flex-shrink: 0;
|
|
138
|
+
}
|
|
67
139
|
|
|
68
140
|
.divider {
|
|
69
141
|
width: var(--stroke-width-small);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/toolbars/fixed/client/Toolbar/index.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/toolbars/fixed/client/Toolbar/index.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAOrE,OAAO,aAAa,CAAA;AA6PpB,eAAO,MAAM,kBAAkB,EAAE,eAAe,CAAC,wBAAwB,CAuCxE,CAAA"}
|
|
@@ -11,6 +11,7 @@ import { useEditorConfigContext } from '../../../../../lexical/config/client/Edi
|
|
|
11
11
|
import { ToolbarButton } from '../../../shared/ToolbarButton/index.js';
|
|
12
12
|
import { ToolbarDropdown } from '../../../shared/ToolbarDropdown/index.js';
|
|
13
13
|
import { useToolbarStates } from '../../../shared/useToolbarStates.js';
|
|
14
|
+
import { useRedirectVerticalWheelToHorizontalScroll } from './horizontalWheelScroll.js';
|
|
14
15
|
import './index.css';
|
|
15
16
|
function ButtonGroupItem({
|
|
16
17
|
active,
|
|
@@ -129,6 +130,7 @@ function FixedToolbar({
|
|
|
129
130
|
const {
|
|
130
131
|
y
|
|
131
132
|
} = useScrollInfo();
|
|
133
|
+
useRedirectVerticalWheelToHorizontalScroll();
|
|
132
134
|
const toolbarStates = useToolbarStates(editor, editorConfig?.features?.toolbarFixed?.groups);
|
|
133
135
|
// Memoize the parent toolbar element
|
|
134
136
|
const parentToolbarElem = useMemo(() => {
|
|
@@ -181,7 +183,8 @@ function FixedToolbar({
|
|
|
181
183
|
event.stopPropagation();
|
|
182
184
|
},
|
|
183
185
|
ref: currentToolbarRef,
|
|
184
|
-
children: isEditable && /*#__PURE__*/_jsx(
|
|
186
|
+
children: isEditable && /*#__PURE__*/_jsx("div", {
|
|
187
|
+
className: "fixed-toolbar__scroll",
|
|
185
188
|
children: editorConfig?.features && editorConfig.features?.toolbarFixed?.groups.map((group, i) => {
|
|
186
189
|
return /*#__PURE__*/_jsx(ToolbarGroupComponent, {
|
|
187
190
|
anchorElem: anchorElem,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","useLexicalEditable","useScrollInfo","useThrottledEffect","useTranslation","React","useMemo","useEditorConfigContext","ToolbarButton","ToolbarDropdown","useToolbarStates","ButtonGroupItem","active","anchorElem","editor","enabled","item","Component","_jsx","key","ChildComponent","ToolbarGroupComponent","editorConfig","group","index","toolbarStates","i18n","fieldProps","featureClientSchemaMap","schemaPath","groupState","groupStates","get","DropdownIcon","type","undefined","activeItem","activeItems","dropdownLabel","length","t","count","label","substring","_jsxs","className","items","Icon","itemsContainerClassNames","map","itemState","itemStates","features","toolbarFixed","groups","FixedToolbar","clientProps","parentWithFixedToolbar","currentToolbarRef","useRef","isEditable","y","parentToolbarElem","disableIfParentHasFixedToolbar","parentEditorElem","editorContainerRef","current","sibling","previousElementSibling","classList","contains","currentToolbarElem","currentRect","getBoundingClientRect","parentRect","overlapping","bottom","top","remove","add","onFocus","event","stopPropagation","ref","Fragment","i","getParentEditorWithFixedToolbar","editorConfigContext","parentEditor","resolvedFeatureMap","has","FixedToolbarPlugin","t0","$","currentEditor","currentEditorConfig","applyToFocusedEditor","focusedEditor","t1","t2","Symbol","for","bb0","document","body"],"sources":["../../../../../../src/features/toolbars/fixed/client/Toolbar/index.tsx"],"sourcesContent":["'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { useScrollInfo, useThrottledEffect, useTranslation } from '@payloadcms/ui'\nimport * as React from 'react'\nimport { useMemo } from 'react'\n\nimport type { EditorConfigContextType } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport type { SanitizedClientEditorConfig } from '../../../../../lexical/config/types.js'\nimport type { PluginComponent } from '../../../../typesClient.js'\nimport type { ToolbarStates } from '../../../shared/useToolbarStates.js'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../../types.js'\nimport type { FixedToolbarFeatureProps } from '../../server/index.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { ToolbarButton } from '../../../shared/ToolbarButton/index.js'\nimport { ToolbarDropdown } from '../../../shared/ToolbarDropdown/index.js'\nimport { useToolbarStates } from '../../../shared/useToolbarStates.js'\nimport './index.css'\n\nfunction ButtonGroupItem({\n active,\n anchorElem,\n editor,\n enabled,\n item,\n}: {\n active: boolean\n anchorElem: HTMLElement\n editor: LexicalEditor\n enabled: boolean\n item: ToolbarGroupItem\n}): React.ReactNode {\n if (item.Component) {\n return (\n item?.Component && (\n <item.Component anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n )\n }\n\n if (!item.ChildComponent) {\n return null\n }\n\n return (\n <ToolbarButton active={active} editor={editor} enabled={enabled} item={item} key={item.key}>\n <item.ChildComponent />\n </ToolbarButton>\n )\n}\n\nfunction ToolbarGroupComponent({\n anchorElem,\n editor,\n editorConfig,\n group,\n index,\n toolbarStates,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n group: ToolbarGroup\n index: number\n toolbarStates: ToolbarStates\n}): React.ReactNode {\n const { i18n } = useTranslation<{}, string>()\n const {\n fieldProps: { featureClientSchemaMap, schemaPath },\n } = useEditorConfigContext()\n\n const groupState = toolbarStates.groupStates.get(group.key)\n\n const DropdownIcon = useMemo(() => {\n if (group.type !== 'dropdown') {\n return undefined\n }\n const activeItem = groupState?.activeItems?.[0]\n if (activeItem) {\n return activeItem.ChildComponent\n }\n return group.ChildComponent\n }, [group, groupState?.activeItems])\n\n const dropdownLabel = useMemo(() => {\n if (group.type !== 'dropdown') {\n return undefined\n }\n const activeItems = groupState?.activeItems\n if (!activeItems?.length) {\n return undefined\n }\n if (activeItems.length > 1) {\n return i18n.t('lexical:general:toolbarItemsActive', { count: activeItems.length })\n }\n const item = activeItems[0]!\n let label = item.key\n if (item.label) {\n label =\n typeof item.label === 'function'\n ? item.label({ featureClientSchemaMap, i18n, schemaPath })\n : item.label\n }\n if (label.length > 25) {\n label = label.substring(0, 25) + '...'\n }\n return label\n }, [group, groupState?.activeItems, i18n, featureClientSchemaMap, schemaPath])\n\n return (\n <div\n className={`fixed-toolbar__group fixed-toolbar__group-${group.key}`}\n data-toolbar-group-key={group.key}\n key={group.key}\n >\n {group.type === 'dropdown' && group.items.length && groupState ? (\n <ToolbarDropdown\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n groupState={groupState}\n Icon={DropdownIcon}\n itemsContainerClassNames={['fixed-toolbar__dropdown-items']}\n label={dropdownLabel}\n />\n ) : null}\n {group.type === 'buttons' && group.items.length\n ? group.items.map((item) => {\n const itemState = toolbarStates.itemStates.get(item.key)\n return (\n <ButtonGroupItem\n active={itemState?.active ?? false}\n anchorElem={anchorElem}\n editor={editor}\n enabled={itemState?.enabled ?? true}\n item={item}\n key={item.key}\n />\n )\n })\n : null}\n {index < editorConfig.features.toolbarFixed?.groups.length - 1 && <div className=\"divider\" />}\n </div>\n )\n}\n\nfunction FixedToolbar({\n anchorElem,\n clientProps,\n editor,\n editorConfig,\n parentWithFixedToolbar,\n}: {\n anchorElem: HTMLElement\n clientProps?: FixedToolbarFeatureProps\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n parentWithFixedToolbar: EditorConfigContextType | false\n}): React.ReactNode {\n const currentToolbarRef = React.useRef<HTMLDivElement>(null)\n const isEditable = useLexicalEditable()\n\n const { y } = useScrollInfo()\n\n const toolbarStates = useToolbarStates(editor, editorConfig?.features?.toolbarFixed?.groups)\n\n // Memoize the parent toolbar element\n const parentToolbarElem = useMemo(() => {\n if (!parentWithFixedToolbar || clientProps?.disableIfParentHasFixedToolbar) {\n return null\n }\n\n const parentEditorElem = parentWithFixedToolbar.editorContainerRef.current\n let sibling = parentEditorElem.previousElementSibling\n while (sibling) {\n if (sibling.classList.contains('fixed-toolbar')) {\n return sibling\n }\n sibling = sibling.previousElementSibling\n }\n return null\n }, [clientProps?.disableIfParentHasFixedToolbar, parentWithFixedToolbar])\n\n useThrottledEffect(\n () => {\n if (!parentToolbarElem) {\n // this also checks for clientProps?.disableIfParentHasFixedToolbar indirectly, see the parentToolbarElem useMemo\n return\n }\n const currentToolbarElem = currentToolbarRef.current\n if (!currentToolbarElem) {\n return\n }\n\n const currentRect = currentToolbarElem.getBoundingClientRect()\n const parentRect = parentToolbarElem.getBoundingClientRect()\n\n // we only need to check for vertical overlap\n const overlapping = !(\n currentRect.bottom < parentRect.top || currentRect.top > parentRect.bottom\n )\n\n if (overlapping) {\n currentToolbarElem.classList.remove('fixed-toolbar')\n currentToolbarElem.classList.add('fixed-toolbar', 'fixed-toolbar--overlapping')\n parentToolbarElem.classList.remove('fixed-toolbar')\n parentToolbarElem.classList.add('fixed-toolbar', 'fixed-toolbar--hide')\n } else {\n if (!currentToolbarElem.classList.contains('fixed-toolbar--overlapping')) {\n return\n }\n currentToolbarElem.classList.remove('fixed-toolbar--overlapping')\n currentToolbarElem.classList.add('fixed-toolbar')\n parentToolbarElem.classList.remove('fixed-toolbar--hide')\n parentToolbarElem.classList.add('fixed-toolbar')\n }\n },\n 50,\n [currentToolbarRef, parentToolbarElem, y],\n )\n\n return (\n <div\n className=\"fixed-toolbar\"\n onFocus={(event) => {\n // Prevent other focus events being triggered. Otherwise, if this was to be clicked while in a child editor,\n // the parent editor will be focused, and the child editor will lose focus.\n event.stopPropagation()\n }}\n ref={currentToolbarRef}\n >\n {isEditable && (\n <React.Fragment>\n {editorConfig?.features &&\n editorConfig.features?.toolbarFixed?.groups.map((group, i) => {\n return (\n <ToolbarGroupComponent\n anchorElem={anchorElem}\n editor={editor}\n editorConfig={editorConfig}\n group={group}\n index={i}\n key={group.key}\n toolbarStates={toolbarStates}\n />\n )\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n\nconst getParentEditorWithFixedToolbar = (\n editorConfigContext: EditorConfigContextType,\n): EditorConfigContextType | false => {\n if (editorConfigContext.parentEditor?.editorConfig) {\n if (editorConfigContext.parentEditor?.editorConfig.resolvedFeatureMap.has('toolbarFixed')) {\n return editorConfigContext.parentEditor\n } else {\n if (editorConfigContext.parentEditor) {\n return getParentEditorWithFixedToolbar(editorConfigContext.parentEditor)\n }\n }\n }\n return false\n}\n\nexport const FixedToolbarPlugin: PluginComponent<FixedToolbarFeatureProps> = ({ clientProps }) => {\n const [currentEditor] = useLexicalComposerContext()\n const editorConfigContext = useEditorConfigContext()\n const isEditable = useLexicalEditable()\n if (!isEditable) {\n return null\n }\n\n const { editorConfig: currentEditorConfig } = editorConfigContext\n\n const editor = clientProps.applyToFocusedEditor\n ? editorConfigContext.focusedEditor?.editor || currentEditor\n : currentEditor\n\n const editorConfig = clientProps.applyToFocusedEditor\n ? editorConfigContext.focusedEditor?.editorConfig || currentEditorConfig\n : currentEditorConfig\n\n const parentWithFixedToolbar = getParentEditorWithFixedToolbar(editorConfigContext)\n\n if (clientProps?.disableIfParentHasFixedToolbar) {\n if (parentWithFixedToolbar) {\n return null\n }\n }\n\n if (!editorConfig?.features?.toolbarFixed?.groups?.length) {\n return null\n }\n\n return (\n <FixedToolbar\n anchorElem={document.body}\n clientProps={clientProps}\n editor={editor}\n editorConfig={editorConfig}\n parentWithFixedToolbar={parentWithFixedToolbar}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","useLexicalEditable","useScrollInfo","useThrottledEffect","useTranslation","React","useMemo","useEditorConfigContext","ToolbarButton","ToolbarDropdown","useToolbarStates","useRedirectVerticalWheelToHorizontalScroll","ButtonGroupItem","active","anchorElem","editor","enabled","item","Component","_jsx","key","ChildComponent","ToolbarGroupComponent","editorConfig","group","index","toolbarStates","i18n","fieldProps","featureClientSchemaMap","schemaPath","groupState","groupStates","get","DropdownIcon","type","undefined","activeItem","activeItems","dropdownLabel","length","t","count","label","substring","_jsxs","className","items","Icon","itemsContainerClassNames","map","itemState","itemStates","features","toolbarFixed","groups","FixedToolbar","clientProps","parentWithFixedToolbar","currentToolbarRef","useRef","isEditable","y","parentToolbarElem","disableIfParentHasFixedToolbar","parentEditorElem","editorContainerRef","current","sibling","previousElementSibling","classList","contains","currentToolbarElem","currentRect","getBoundingClientRect","parentRect","overlapping","bottom","top","remove","add","onFocus","event","stopPropagation","ref","i","getParentEditorWithFixedToolbar","editorConfigContext","parentEditor","resolvedFeatureMap","has","FixedToolbarPlugin","t0","$","currentEditor","currentEditorConfig","applyToFocusedEditor","focusedEditor","t1","t2","Symbol","for","bb0","document","body"],"sources":["../../../../../../src/features/toolbars/fixed/client/Toolbar/index.tsx"],"sourcesContent":["'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { useScrollInfo, useThrottledEffect, useTranslation } from '@payloadcms/ui'\nimport * as React from 'react'\nimport { useMemo } from 'react'\n\nimport type { EditorConfigContextType } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport type { SanitizedClientEditorConfig } from '../../../../../lexical/config/types.js'\nimport type { PluginComponent } from '../../../../typesClient.js'\nimport type { ToolbarStates } from '../../../shared/useToolbarStates.js'\nimport type { ToolbarGroup, ToolbarGroupItem } from '../../../types.js'\nimport type { FixedToolbarFeatureProps } from '../../server/index.js'\n\nimport { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js'\nimport { ToolbarButton } from '../../../shared/ToolbarButton/index.js'\nimport { ToolbarDropdown } from '../../../shared/ToolbarDropdown/index.js'\nimport { useToolbarStates } from '../../../shared/useToolbarStates.js'\nimport { useRedirectVerticalWheelToHorizontalScroll } from './horizontalWheelScroll.js'\nimport './index.css'\n\nfunction ButtonGroupItem({\n active,\n anchorElem,\n editor,\n enabled,\n item,\n}: {\n active: boolean\n anchorElem: HTMLElement\n editor: LexicalEditor\n enabled: boolean\n item: ToolbarGroupItem\n}): React.ReactNode {\n if (item.Component) {\n return (\n item?.Component && (\n <item.Component anchorElem={anchorElem} editor={editor} item={item} key={item.key} />\n )\n )\n }\n\n if (!item.ChildComponent) {\n return null\n }\n\n return (\n <ToolbarButton active={active} editor={editor} enabled={enabled} item={item} key={item.key}>\n <item.ChildComponent />\n </ToolbarButton>\n )\n}\n\nfunction ToolbarGroupComponent({\n anchorElem,\n editor,\n editorConfig,\n group,\n index,\n toolbarStates,\n}: {\n anchorElem: HTMLElement\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n group: ToolbarGroup\n index: number\n toolbarStates: ToolbarStates\n}): React.ReactNode {\n const { i18n } = useTranslation<{}, string>()\n const {\n fieldProps: { featureClientSchemaMap, schemaPath },\n } = useEditorConfigContext()\n\n const groupState = toolbarStates.groupStates.get(group.key)\n\n const DropdownIcon = useMemo(() => {\n if (group.type !== 'dropdown') {\n return undefined\n }\n const activeItem = groupState?.activeItems?.[0]\n if (activeItem) {\n return activeItem.ChildComponent\n }\n return group.ChildComponent\n }, [group, groupState?.activeItems])\n\n const dropdownLabel = useMemo(() => {\n if (group.type !== 'dropdown') {\n return undefined\n }\n const activeItems = groupState?.activeItems\n if (!activeItems?.length) {\n return undefined\n }\n if (activeItems.length > 1) {\n return i18n.t('lexical:general:toolbarItemsActive', { count: activeItems.length })\n }\n const item = activeItems[0]!\n let label = item.key\n if (item.label) {\n label =\n typeof item.label === 'function'\n ? item.label({ featureClientSchemaMap, i18n, schemaPath })\n : item.label\n }\n if (label.length > 25) {\n label = label.substring(0, 25) + '...'\n }\n return label\n }, [group, groupState?.activeItems, i18n, featureClientSchemaMap, schemaPath])\n\n return (\n <div\n className={`fixed-toolbar__group fixed-toolbar__group-${group.key}`}\n data-toolbar-group-key={group.key}\n key={group.key}\n >\n {group.type === 'dropdown' && group.items.length && groupState ? (\n <ToolbarDropdown\n anchorElem={anchorElem}\n editor={editor}\n group={group}\n groupState={groupState}\n Icon={DropdownIcon}\n itemsContainerClassNames={['fixed-toolbar__dropdown-items']}\n label={dropdownLabel}\n />\n ) : null}\n {group.type === 'buttons' && group.items.length\n ? group.items.map((item) => {\n const itemState = toolbarStates.itemStates.get(item.key)\n return (\n <ButtonGroupItem\n active={itemState?.active ?? false}\n anchorElem={anchorElem}\n editor={editor}\n enabled={itemState?.enabled ?? true}\n item={item}\n key={item.key}\n />\n )\n })\n : null}\n {index < editorConfig.features.toolbarFixed?.groups.length - 1 && <div className=\"divider\" />}\n </div>\n )\n}\n\nfunction FixedToolbar({\n anchorElem,\n clientProps,\n editor,\n editorConfig,\n parentWithFixedToolbar,\n}: {\n anchorElem: HTMLElement\n clientProps?: FixedToolbarFeatureProps\n editor: LexicalEditor\n editorConfig: SanitizedClientEditorConfig\n parentWithFixedToolbar: EditorConfigContextType | false\n}): React.ReactNode {\n const currentToolbarRef = React.useRef<HTMLDivElement>(null)\n const isEditable = useLexicalEditable()\n\n const { y } = useScrollInfo()\n\n useRedirectVerticalWheelToHorizontalScroll()\n\n const toolbarStates = useToolbarStates(editor, editorConfig?.features?.toolbarFixed?.groups)\n\n // Memoize the parent toolbar element\n const parentToolbarElem = useMemo(() => {\n if (!parentWithFixedToolbar || clientProps?.disableIfParentHasFixedToolbar) {\n return null\n }\n\n const parentEditorElem = parentWithFixedToolbar.editorContainerRef.current\n let sibling = parentEditorElem.previousElementSibling\n while (sibling) {\n if (sibling.classList.contains('fixed-toolbar')) {\n return sibling\n }\n sibling = sibling.previousElementSibling\n }\n return null\n }, [clientProps?.disableIfParentHasFixedToolbar, parentWithFixedToolbar])\n\n useThrottledEffect(\n () => {\n if (!parentToolbarElem) {\n // this also checks for clientProps?.disableIfParentHasFixedToolbar indirectly, see the parentToolbarElem useMemo\n return\n }\n const currentToolbarElem = currentToolbarRef.current\n if (!currentToolbarElem) {\n return\n }\n\n const currentRect = currentToolbarElem.getBoundingClientRect()\n const parentRect = parentToolbarElem.getBoundingClientRect()\n\n // we only need to check for vertical overlap\n const overlapping = !(\n currentRect.bottom < parentRect.top || currentRect.top > parentRect.bottom\n )\n\n if (overlapping) {\n currentToolbarElem.classList.remove('fixed-toolbar')\n currentToolbarElem.classList.add('fixed-toolbar', 'fixed-toolbar--overlapping')\n parentToolbarElem.classList.remove('fixed-toolbar')\n parentToolbarElem.classList.add('fixed-toolbar', 'fixed-toolbar--hide')\n } else {\n if (!currentToolbarElem.classList.contains('fixed-toolbar--overlapping')) {\n return\n }\n currentToolbarElem.classList.remove('fixed-toolbar--overlapping')\n currentToolbarElem.classList.add('fixed-toolbar')\n parentToolbarElem.classList.remove('fixed-toolbar--hide')\n parentToolbarElem.classList.add('fixed-toolbar')\n }\n },\n 50,\n [currentToolbarRef, parentToolbarElem, y],\n )\n\n return (\n <div\n className=\"fixed-toolbar\"\n onFocus={(event) => {\n // Prevent other focus events being triggered. Otherwise, if this was to be clicked while in a child editor,\n // the parent editor will be focused, and the child editor will lose focus.\n event.stopPropagation()\n }}\n ref={currentToolbarRef}\n >\n {isEditable && (\n <div className=\"fixed-toolbar__scroll\">\n {editorConfig?.features &&\n editorConfig.features?.toolbarFixed?.groups.map((group, i) => {\n return (\n <ToolbarGroupComponent\n anchorElem={anchorElem}\n editor={editor}\n editorConfig={editorConfig}\n group={group}\n index={i}\n key={group.key}\n toolbarStates={toolbarStates}\n />\n )\n })}\n </div>\n )}\n </div>\n )\n}\n\nconst getParentEditorWithFixedToolbar = (\n editorConfigContext: EditorConfigContextType,\n): EditorConfigContextType | false => {\n if (editorConfigContext.parentEditor?.editorConfig) {\n if (editorConfigContext.parentEditor?.editorConfig.resolvedFeatureMap.has('toolbarFixed')) {\n return editorConfigContext.parentEditor\n } else {\n if (editorConfigContext.parentEditor) {\n return getParentEditorWithFixedToolbar(editorConfigContext.parentEditor)\n }\n }\n }\n return false\n}\n\nexport const FixedToolbarPlugin: PluginComponent<FixedToolbarFeatureProps> = ({ clientProps }) => {\n const [currentEditor] = useLexicalComposerContext()\n const editorConfigContext = useEditorConfigContext()\n const isEditable = useLexicalEditable()\n if (!isEditable) {\n return null\n }\n\n const { editorConfig: currentEditorConfig } = editorConfigContext\n\n const editor = clientProps.applyToFocusedEditor\n ? editorConfigContext.focusedEditor?.editor || currentEditor\n : currentEditor\n\n const editorConfig = clientProps.applyToFocusedEditor\n ? editorConfigContext.focusedEditor?.editorConfig || currentEditorConfig\n : currentEditorConfig\n\n const parentWithFixedToolbar = getParentEditorWithFixedToolbar(editorConfigContext)\n\n if (clientProps?.disableIfParentHasFixedToolbar) {\n if (parentWithFixedToolbar) {\n return null\n }\n }\n\n if (!editorConfig?.features?.toolbarFixed?.groups?.length) {\n return null\n }\n\n return (\n <FixedToolbar\n anchorElem={document.body}\n clientProps={clientProps}\n editor={editor}\n editorConfig={editorConfig}\n parentWithFixedToolbar={parentWithFixedToolbar}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,16 +8,12 @@
|
|
|
8
8
|
vertical-align: middle;
|
|
9
9
|
position: absolute;
|
|
10
10
|
top: 0;
|
|
11
|
-
|
|
11
|
+
inset-inline-start: 0;
|
|
12
12
|
z-index: 2;
|
|
13
13
|
opacity: 0;
|
|
14
14
|
border-radius: var(--radius-medium);
|
|
15
|
-
transition: opacity 0.2s;
|
|
16
15
|
will-change: transform;
|
|
17
|
-
box-shadow:
|
|
18
|
-
0px 1px 2px 1px rgba(0, 0, 0, 0.1),
|
|
19
|
-
0px 4px 16px 0px rgba(0, 0, 0, 0.2),
|
|
20
|
-
0px -4px 8px 0px rgba(0, 0, 0, 0.1);
|
|
16
|
+
box-shadow: var(--elevation-300-tooltip);
|
|
21
17
|
}
|
|
22
18
|
|
|
23
19
|
.inline-toolbar-popup__group {
|
|
@@ -32,12 +28,4 @@
|
|
|
32
28
|
background-color: var(--lexical-border-color);
|
|
33
29
|
}
|
|
34
30
|
}
|
|
35
|
-
|
|
36
|
-
html[data-theme='light'] {
|
|
37
|
-
.inline-toolbar-popup {
|
|
38
|
-
box-shadow:
|
|
39
|
-
0px 1px 2px 1px rgba(0, 0, 0, 0.05),
|
|
40
|
-
0px 4px 8px 0px rgba(0, 0, 0, 0.1);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/toolbars/shared/ToolbarButton/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAI5C,OAAO,KAA4D,MAAM,OAAO,CAAA;AAEhF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGtD,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/toolbars/shared/ToolbarButton/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAI5C,OAAO,KAA4D,MAAM,OAAO,CAAA;AAEhF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGtD,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,aAAa,iDAMvB;IACD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAA;IAC3B,MAAM,EAAE,aAAa,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,gBAAgB,CAAA;CACvB,sBAmFA,CAAA"}
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
border-radius: var(--radius-medium);
|
|
20
20
|
cursor: pointer;
|
|
21
21
|
position: relative;
|
|
22
|
-
transition: background-color 0.15s cubic-bezier(0, 0.2, 0.2, 1);
|
|
23
22
|
min-width: calc(var(--spacer-4) + var(--spacer-2-5));
|
|
24
23
|
|
|
25
24
|
&:disabled {
|
|
@@ -60,7 +59,7 @@
|
|
|
60
59
|
align-items: center;
|
|
61
60
|
justify-content: center;
|
|
62
61
|
width: 6px;
|
|
63
|
-
margin: 0
|
|
62
|
+
margin: 0 var(--spacer-1) 0 calc(var(--spacer-1) / 2);
|
|
64
63
|
height: 4px;
|
|
65
64
|
background-color: var(--color-icon);
|
|
66
65
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='4' viewBox='0 0 6 4' fill='none'%3E%3Cpath d='M4.38921 0.146406C4.58445 -0.0488286 4.90098 -0.0487744 5.09624 0.146406C5.29151 0.341668 5.29151 0.658175 5.09624 0.853437L2.97515 2.97453C2.77987 3.16959 2.46332 3.16972 2.26812 2.97453L0.146049 0.853437C-0.0487219 0.6583 -0.0486443 0.341591 0.146049 0.146406C0.341285 -0.0488288 0.658788 -0.0487749 0.854057 0.146406L2.62164 1.91398L4.38921 0.146406Z' fill='black'/%3E%3C/svg%3E");
|
|
@@ -77,17 +76,12 @@
|
|
|
77
76
|
padding: var(--spacer-2);
|
|
78
77
|
min-width: var(--dropdown-min-width);
|
|
79
78
|
z-index: 100;
|
|
80
|
-
box-shadow:
|
|
81
|
-
0 2px 6px 0 rgba(0, 0, 0, 0.12),
|
|
82
|
-
0 10px 16px 0 rgba(0, 0, 0, 0.08),
|
|
83
|
-
0 0 0.5px 0 rgba(0, 0, 0, 0.12),
|
|
84
|
-
0 0 0 1px rgba(0, 0, 0, 0.04);
|
|
79
|
+
box-shadow: var(--elevation-300-tooltip);
|
|
85
80
|
|
|
86
81
|
.toolbar-popup__dropdown-item {
|
|
87
82
|
all: unset;
|
|
88
83
|
cursor: pointer;
|
|
89
84
|
color: var(--color-text);
|
|
90
|
-
transition: background-color 0.15s cubic-bezier(0, 0.2, 0.2, 1);
|
|
91
85
|
position: relative;
|
|
92
86
|
font-family: var(--text-body-medium-font-family);
|
|
93
87
|
font-size: var(--text-body-medium-font-size);
|
|
@@ -101,7 +95,7 @@
|
|
|
101
95
|
display: flex;
|
|
102
96
|
align-items: center;
|
|
103
97
|
gap: var(--spacer-1);
|
|
104
|
-
margin-
|
|
98
|
+
margin-inline-end: -var(--spacer-3);
|
|
105
99
|
|
|
106
100
|
.text {
|
|
107
101
|
overflow: hidden;
|
|
@@ -168,15 +162,15 @@
|
|
|
168
162
|
}
|
|
169
163
|
|
|
170
164
|
.btn__tooltip {
|
|
171
|
-
background-color: var(--
|
|
172
|
-
color: var(--
|
|
165
|
+
background-color: var(--color-bg-tooltip);
|
|
166
|
+
color: var(--color-text-ontooltip);
|
|
173
167
|
|
|
174
168
|
&.tooltip--position-top::after {
|
|
175
|
-
border-top-color: var(--
|
|
169
|
+
border-top-color: var(--color-bg-tooltip);
|
|
176
170
|
}
|
|
177
171
|
|
|
178
172
|
&.tooltip--position-bottom::after {
|
|
179
|
-
border-bottom-color: var(--
|
|
173
|
+
border-bottom-color: var(--color-bg-tooltip);
|
|
180
174
|
}
|
|
181
175
|
}
|
|
182
176
|
}
|
|
@@ -191,20 +185,21 @@
|
|
|
191
185
|
}
|
|
192
186
|
|
|
193
187
|
[data-dropdown-key='text'] {
|
|
194
|
-
|
|
195
|
-
|
|
188
|
+
/* Reserved on every item, not just the active one, so the checkmark never overlaps the item icon. */
|
|
189
|
+
& .toolbar-popup__dropdown-item::before {
|
|
190
|
+
content: '';
|
|
191
|
+
flex-shrink: 0;
|
|
192
|
+
width: var(--spacer-3);
|
|
193
|
+
height: var(--spacer-3);
|
|
194
|
+
background-color: currentColor;
|
|
195
|
+
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M12.277 3.584a.5.5 0 0 1 .139.693l-5 7.5a.5.5 0 0 1-.77.077l-3-3a.5.5 0 0 1 .708-.708l2.568 2.57 4.662-6.993a.5.5 0 0 1 .693-.139' fill='black'/%3E%3C/svg%3E");
|
|
196
|
+
mask-size: contain;
|
|
197
|
+
mask-repeat: no-repeat;
|
|
198
|
+
visibility: hidden;
|
|
196
199
|
}
|
|
197
200
|
|
|
198
201
|
& .toolbar-popup__dropdown-item.active::before {
|
|
199
|
-
|
|
200
|
-
position: absolute;
|
|
201
|
-
left: var(--spacer-2-5);
|
|
202
|
-
top: 50%;
|
|
203
|
-
width: var(--spacer-1);
|
|
204
|
-
height: var(--spacer-2);
|
|
205
|
-
border: solid var(--color-text-onselected-strong);
|
|
206
|
-
border-width: 0 1px 1px 0;
|
|
207
|
-
transform: translateY(-60%) rotate(45deg);
|
|
202
|
+
visibility: visible;
|
|
208
203
|
}
|
|
209
204
|
|
|
210
205
|
.btn__icon {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/toolbars/shared/ToolbarDropdown/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,MAAM,OAAO,CAAA;AAItC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAI5C,OAAO,KAAK,EAAE,oBAAoB,EAAoB,MAAM,gBAAgB,CAAA;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG/D,OAAO,aAAa,CAAA;AAsEpB,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/toolbars/shared/ToolbarDropdown/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,MAAM,OAAO,CAAA;AAItC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAI5C,OAAO,KAAK,EAAE,oBAAoB,EAAoB,MAAM,gBAAgB,CAAA;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG/D,OAAO,aAAa,CAAA;AAsEpB,eAAO,MAAM,eAAe,kGASzB;IACD,UAAU,EAAE,WAAW,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,MAAM,EAAE,aAAa,CAAA;IACrB,KAAK,EAAE,oBAAoB,CAAA;IAC3B,UAAU,EAAE,iBAAiB,CAAA;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;IACf,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAA;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,sBAmCA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToolbarStates.d.ts","sourceRoot":"","sources":["../../../../src/features/toolbars/shared/useToolbarStates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAM5C,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAKjE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,YAAY,EAAE,OAAO,CAAA;IACrB,eAAe,EAAE,MAAM,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAC3C,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CAC1C;AAgCD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,GACjC,aAAa,
|
|
1
|
+
{"version":3,"file":"useToolbarStates.d.ts","sourceRoot":"","sources":["../../../../src/features/toolbars/shared/useToolbarStates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAM5C,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAKjE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,YAAY,EAAE,OAAO,CAAA;IACrB,eAAe,EAAE,MAAM,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAC3C,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CAC1C;AAgCD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,GACjC,aAAa,CA2Ff"}
|
|
@@ -114,7 +114,9 @@ export function useToolbarStates(editor, groups) {
|
|
|
114
114
|
}, [editor]);
|
|
115
115
|
useEffect(() => {
|
|
116
116
|
void runDeprioritized(updateStates);
|
|
117
|
-
const listener = () =>
|
|
117
|
+
const listener = () => {
|
|
118
|
+
void runDeprioritized(updateStates);
|
|
119
|
+
};
|
|
118
120
|
const cleanup = mergeRegister(editor.registerUpdateListener(listener));
|
|
119
121
|
document.addEventListener('mouseup', listener);
|
|
120
122
|
return () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToolbarStates.js","names":["mergeRegister","$getSelection","useCallback","useDeferredValue","useEffect","useRef","useState","useEditorConfigContext","useRunDeprioritized","buildDefaultStates","groups","itemStates","Map","groupStates","length","group","enabledItemKeys","item","items","set","key","active","enabled","push","activeItemKeys","activeItems","enabledGroup","useToolbarStates","editor","states","setStates","deferredStates","editorConfigContext","editorConfigContextRef","current","groupsRef","runDeprioritized","updateStates","getEditorState","read","selection","currentGroups","ctx","newItemStates","newGroupStates","maxActive","type","maxActiveItems","undefined","isActive","isEnabled","listener","cleanup","registerUpdateListener","document","addEventListener","removeEventListener"],"sources":["../../../../src/features/toolbars/shared/useToolbarStates.ts"],"sourcesContent":["'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { mergeRegister } from '@lexical/utils'\nimport { $getSelection } from 'lexical'\nimport { useCallback, useDeferredValue, useEffect, useRef, useState } from 'react'\n\nimport type { ToolbarGroup, ToolbarGroupItem } from '../types.js'\n\nimport { useEditorConfigContext } from '../../../lexical/config/client/EditorConfigProvider.js'\nimport { useRunDeprioritized } from '../../../utilities/useRunDeprioritized.js'\n\nexport interface ToolbarItemState {\n active: boolean\n enabled: boolean\n}\n\nexport interface ToolbarGroupState {\n activeItemKeys: string[]\n activeItems: ToolbarGroupItem[]\n enabledGroup: boolean\n enabledItemKeys: string[]\n}\n\nexport interface ToolbarStates {\n groupStates: Map<string, ToolbarGroupState>\n itemStates: Map<string, ToolbarItemState>\n}\n\n/**\n * Build default states where every item is enabled and nothing is active.\n * Used as the initial value so toolbar groups render immediately on mount\n * instead of waiting for the first updateStates call.\n */\nfunction buildDefaultStates(groups: ToolbarGroup[] | undefined): ToolbarStates {\n const itemStates = new Map<string, ToolbarItemState>()\n const groupStates = new Map<string, ToolbarGroupState>()\n\n if (!groups?.length) {\n return { groupStates, itemStates }\n }\n\n for (const group of groups) {\n const enabledItemKeys: string[] = []\n for (const item of group.items) {\n itemStates.set(item.key, { active: false, enabled: true })\n enabledItemKeys.push(item.key)\n }\n groupStates.set(group.key, {\n activeItemKeys: [],\n activeItems: [],\n enabledGroup: true,\n enabledItemKeys,\n })\n }\n\n return { groupStates, itemStates }\n}\n\n/**\n * Subscribes once to `editor.registerUpdateListener` and computes\n * isActive / isEnabled for every toolbar item in a read.\n */\nexport function useToolbarStates(\n editor: LexicalEditor,\n groups: ToolbarGroup[] | undefined,\n): ToolbarStates {\n const [states, setStates] = useState<ToolbarStates>(() => buildDefaultStates(groups))\n const deferredStates = useDeferredValue(states)\n\n const editorConfigContext = useEditorConfigContext()\n const editorConfigContextRef = useRef(editorConfigContext)\n editorConfigContextRef.current = editorConfigContext\n\n const groupsRef = useRef(groups)\n groupsRef.current = groups\n\n const runDeprioritized = useRunDeprioritized()\n\n const updateStates = useCallback(() => {\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if (!selection) {\n return\n }\n\n const currentGroups = groupsRef.current\n if (!currentGroups?.length) {\n return\n }\n\n const ctx = editorConfigContextRef.current\n const newItemStates = new Map<string, ToolbarItemState>()\n const newGroupStates = new Map<string, ToolbarGroupState>()\n\n for (const group of currentGroups) {\n const activeItemKeys: string[] = []\n const activeItems: ToolbarGroupItem[] = []\n const enabledItemKeys: string[] = []\n\n const maxActive = group.type === 'dropdown' ? (group.maxActiveItems ?? 1) : undefined\n\n for (const item of group.items) {\n const isActive = item.isActive\n ? (!maxActive || activeItemKeys.length < maxActive) &&\n item.isActive({ editor, editorConfigContext: ctx, selection })\n : false\n\n const isEnabled = item.isEnabled\n ? item.isEnabled({ editor, editorConfigContext: ctx, selection })\n : true\n\n if (isActive) {\n activeItemKeys.push(item.key)\n activeItems.push(item)\n }\n if (isEnabled) {\n enabledItemKeys.push(item.key)\n }\n\n newItemStates.set(item.key, { active: isActive, enabled: isEnabled })\n }\n\n const enabledGroup =\n group.type === 'dropdown' && group.isEnabled\n ? group.isEnabled({ editor, editorConfigContext: ctx, selection })\n : true\n\n newGroupStates.set(group.key, {\n activeItemKeys,\n activeItems,\n enabledGroup,\n enabledItemKeys,\n })\n }\n\n setStates({ groupStates: newGroupStates, itemStates: newItemStates })\n })\n }, [editor])\n\n useEffect(() => {\n void runDeprioritized(updateStates)\n\n const listener = () => runDeprioritized(updateStates)\n\n const cleanup = mergeRegister(editor.registerUpdateListener(listener))\n document.addEventListener('mouseup', listener)\n\n return () => {\n cleanup()\n document.removeEventListener('mouseup', listener)\n }\n }, [editor, runDeprioritized, updateStates])\n\n return deferredStates\n}\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useToolbarStates.js","names":["mergeRegister","$getSelection","useCallback","useDeferredValue","useEffect","useRef","useState","useEditorConfigContext","useRunDeprioritized","buildDefaultStates","groups","itemStates","Map","groupStates","length","group","enabledItemKeys","item","items","set","key","active","enabled","push","activeItemKeys","activeItems","enabledGroup","useToolbarStates","editor","states","setStates","deferredStates","editorConfigContext","editorConfigContextRef","current","groupsRef","runDeprioritized","updateStates","getEditorState","read","selection","currentGroups","ctx","newItemStates","newGroupStates","maxActive","type","maxActiveItems","undefined","isActive","isEnabled","listener","cleanup","registerUpdateListener","document","addEventListener","removeEventListener"],"sources":["../../../../src/features/toolbars/shared/useToolbarStates.ts"],"sourcesContent":["'use client'\nimport type { LexicalEditor } from 'lexical'\n\nimport { mergeRegister } from '@lexical/utils'\nimport { $getSelection } from 'lexical'\nimport { useCallback, useDeferredValue, useEffect, useRef, useState } from 'react'\n\nimport type { ToolbarGroup, ToolbarGroupItem } from '../types.js'\n\nimport { useEditorConfigContext } from '../../../lexical/config/client/EditorConfigProvider.js'\nimport { useRunDeprioritized } from '../../../utilities/useRunDeprioritized.js'\n\nexport interface ToolbarItemState {\n active: boolean\n enabled: boolean\n}\n\nexport interface ToolbarGroupState {\n activeItemKeys: string[]\n activeItems: ToolbarGroupItem[]\n enabledGroup: boolean\n enabledItemKeys: string[]\n}\n\nexport interface ToolbarStates {\n groupStates: Map<string, ToolbarGroupState>\n itemStates: Map<string, ToolbarItemState>\n}\n\n/**\n * Build default states where every item is enabled and nothing is active.\n * Used as the initial value so toolbar groups render immediately on mount\n * instead of waiting for the first updateStates call.\n */\nfunction buildDefaultStates(groups: ToolbarGroup[] | undefined): ToolbarStates {\n const itemStates = new Map<string, ToolbarItemState>()\n const groupStates = new Map<string, ToolbarGroupState>()\n\n if (!groups?.length) {\n return { groupStates, itemStates }\n }\n\n for (const group of groups) {\n const enabledItemKeys: string[] = []\n for (const item of group.items) {\n itemStates.set(item.key, { active: false, enabled: true })\n enabledItemKeys.push(item.key)\n }\n groupStates.set(group.key, {\n activeItemKeys: [],\n activeItems: [],\n enabledGroup: true,\n enabledItemKeys,\n })\n }\n\n return { groupStates, itemStates }\n}\n\n/**\n * Subscribes once to `editor.registerUpdateListener` and computes\n * isActive / isEnabled for every toolbar item in a read.\n */\nexport function useToolbarStates(\n editor: LexicalEditor,\n groups: ToolbarGroup[] | undefined,\n): ToolbarStates {\n const [states, setStates] = useState<ToolbarStates>(() => buildDefaultStates(groups))\n const deferredStates = useDeferredValue(states)\n\n const editorConfigContext = useEditorConfigContext()\n const editorConfigContextRef = useRef(editorConfigContext)\n editorConfigContextRef.current = editorConfigContext\n\n const groupsRef = useRef(groups)\n groupsRef.current = groups\n\n const runDeprioritized = useRunDeprioritized()\n\n const updateStates = useCallback(() => {\n editor.getEditorState().read(() => {\n const selection = $getSelection()\n if (!selection) {\n return\n }\n\n const currentGroups = groupsRef.current\n if (!currentGroups?.length) {\n return\n }\n\n const ctx = editorConfigContextRef.current\n const newItemStates = new Map<string, ToolbarItemState>()\n const newGroupStates = new Map<string, ToolbarGroupState>()\n\n for (const group of currentGroups) {\n const activeItemKeys: string[] = []\n const activeItems: ToolbarGroupItem[] = []\n const enabledItemKeys: string[] = []\n\n const maxActive = group.type === 'dropdown' ? (group.maxActiveItems ?? 1) : undefined\n\n for (const item of group.items) {\n const isActive = item.isActive\n ? (!maxActive || activeItemKeys.length < maxActive) &&\n item.isActive({ editor, editorConfigContext: ctx, selection })\n : false\n\n const isEnabled = item.isEnabled\n ? item.isEnabled({ editor, editorConfigContext: ctx, selection })\n : true\n\n if (isActive) {\n activeItemKeys.push(item.key)\n activeItems.push(item)\n }\n if (isEnabled) {\n enabledItemKeys.push(item.key)\n }\n\n newItemStates.set(item.key, { active: isActive, enabled: isEnabled })\n }\n\n const enabledGroup =\n group.type === 'dropdown' && group.isEnabled\n ? group.isEnabled({ editor, editorConfigContext: ctx, selection })\n : true\n\n newGroupStates.set(group.key, {\n activeItemKeys,\n activeItems,\n enabledGroup,\n enabledItemKeys,\n })\n }\n\n setStates({ groupStates: newGroupStates, itemStates: newItemStates })\n })\n }, [editor])\n\n useEffect(() => {\n void runDeprioritized(updateStates)\n\n const listener = () => {\n void runDeprioritized(updateStates)\n }\n\n const cleanup = mergeRegister(editor.registerUpdateListener(listener))\n document.addEventListener('mouseup', listener)\n\n return () => {\n cleanup()\n document.removeEventListener('mouseup', listener)\n }\n }, [editor, runDeprioritized, updateStates])\n\n return deferredStates\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import type { Transformer } from '@lexical/markdown';
|
|
1
2
|
import type { Klass, LexicalEditor, LexicalNode, LexicalNodeReplacement, TextFormatType } from 'lexical';
|
|
2
3
|
import type { ClientConfig, RichTextFieldClient } from 'payload';
|
|
3
4
|
import type React from 'react';
|
|
4
5
|
import type { JSX } from 'react';
|
|
5
6
|
import type { ClientEditorConfig } from '../lexical/config/types.js';
|
|
6
7
|
import type { SlashMenuGroup } from '../lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js';
|
|
7
|
-
import type { Transformer } from '../packages/@lexical/markdown/index.js';
|
|
8
8
|
import type { FeatureClientSchemaMap } from '../types/index.js';
|
|
9
9
|
import type { ToolbarGroup } from './toolbars/types.js';
|
|
10
10
|
export type FeatureProviderProviderClient<UnSanitizedClientFeatureProps = undefined, ClientFeatureProps = UnSanitizedClientFeatureProps> = (props: BaseClientFeatureProps<ClientFeatureProps>) => FeatureProviderClient<ClientFeatureProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typesClient.d.ts","sourceRoot":"","sources":["../../src/features/typesClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,cAAc,EACf,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kEAAkE,CAAA;AACtG,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"typesClient.d.ts","sourceRoot":"","sources":["../../src/features/typesClient.ts"],"names":[],"mappings":"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"}
|