@payloadcms/richtext-lexical 3.68.0-internal-debug.185cc5f → 3.68.0-internal-debug.591ab42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cell/rscEntry.js +13 -5
- package/dist/cell/rscEntry.js.map +1 -1
- package/dist/features/blocks/client/component/BlockContent.js +29 -9
- package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
- package/dist/features/blocks/client/component/components/BlockCollapsible.js +7 -3
- package/dist/features/blocks/client/component/components/BlockCollapsible.js.map +1 -1
- package/dist/features/blocks/client/component/components/BlockEditButton.js +6 -2
- package/dist/features/blocks/client/component/components/BlockEditButton.js.map +1 -1
- package/dist/features/blocks/client/component/components/BlockRemoveButton.js +6 -2
- package/dist/features/blocks/client/component/components/BlockRemoveButton.js.map +1 -1
- package/dist/features/blocks/client/component/index.js +123 -43
- package/dist/features/blocks/client/component/index.js.map +1 -1
- package/dist/features/blocks/client/component/index.scss +188 -0
- package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js +7 -3
- package/dist/features/blocks/client/componentInline/components/InlineBlockContainer.js.map +1 -1
- package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js +6 -2
- package/dist/features/blocks/client/componentInline/components/InlineBlockEditButton.js.map +1 -1
- package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js +6 -2
- package/dist/features/blocks/client/componentInline/components/InlineBlockLabel.js.map +1 -1
- package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js +6 -2
- package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js.map +1 -1
- package/dist/features/blocks/client/componentInline/index.js +117 -37
- package/dist/features/blocks/client/componentInline/index.js.map +1 -1
- package/dist/features/blocks/client/componentInline/index.scss +90 -0
- package/dist/features/blocks/client/getBlockImageComponent.js +7 -3
- package/dist/features/blocks/client/getBlockImageComponent.js.map +1 -1
- package/dist/features/blocks/client/nodes/BlocksNode.js +7 -3
- package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
- package/dist/features/blocks/client/nodes/InlineBlocksNode.js +7 -3
- package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Block.js +87 -27
- package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Code.js +7 -3
- package/dist/features/blocks/premade/CodeBlock/Component/Code.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js +12 -4
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.scss +6 -0
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js +18 -6
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js.map +1 -1
- package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.scss +29 -0
- package/dist/features/blocks/premade/CodeBlock/Component/index.scss +97 -0
- package/dist/features/converters/lexicalToJSX/Component/index.js +9 -5
- package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js +7 -3
- package/dist/features/converters/lexicalToJSX/converter/converters/blockquote.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/heading.js +7 -3
- package/dist/features/converters/lexicalToJSX/converter/converters/heading.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js +6 -2
- package/dist/features/converters/lexicalToJSX/converter/converters/horizontalRule.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js +6 -2
- package/dist/features/converters/lexicalToJSX/converter/converters/linebreak.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/link.js +13 -5
- package/dist/features/converters/lexicalToJSX/converter/converters/link.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/list.js +38 -14
- package/dist/features/converters/lexicalToJSX/converter/converters/list.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js +18 -6
- package/dist/features/converters/lexicalToJSX/converter/converters/paragraph.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/table.js +31 -11
- package/dist/features/converters/lexicalToJSX/converter/converters/table.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/text.js +43 -15
- package/dist/features/converters/lexicalToJSX/converter/converters/text.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/converters/upload.js +31 -11
- package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
- package/dist/features/converters/lexicalToJSX/converter/index.js +8 -4
- package/dist/features/converters/lexicalToJSX/converter/index.js.map +1 -1
- package/dist/features/debug/jsxConverter/client/plugin/index.js +13 -5
- package/dist/features/debug/jsxConverter/client/plugin/index.js.map +1 -1
- package/dist/features/debug/jsxConverter/client/plugin/style.scss +12 -0
- package/dist/features/debug/testRecorder/client/plugin/index.js +61 -21
- package/dist/features/debug/testRecorder/client/plugin/index.js.map +1 -1
- package/dist/features/debug/testRecorder/client/plugin/index.scss +53 -0
- package/dist/features/debug/treeView/client/plugin/index.js +7 -3
- package/dist/features/debug/treeView/client/plugin/index.js.map +1 -1
- package/dist/features/debug/treeView/client/plugin/index.scss +80 -0
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +224 -72
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.scss +87 -0
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +31 -11
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.scss +11 -0
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +21 -9
- package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +25 -9
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.scss +233 -0
- package/dist/features/horizontalRule/client/plugin/index.scss +23 -0
- package/dist/features/indent/client/IndentPlugin.js +6 -2
- package/dist/features/indent/client/IndentPlugin.js.map +1 -1
- package/dist/features/link/client/plugins/clickableLink/index.js +6 -2
- package/dist/features/link/client/plugins/clickableLink/index.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +76 -24
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/index.js +7 -3
- package/dist/features/link/client/plugins/floatingLinkEditor/index.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/index.scss +92 -0
- package/dist/features/lists/checklist/client/plugin/index.js +6 -2
- package/dist/features/lists/checklist/client/plugin/index.js.map +1 -1
- package/dist/features/lists/plugin/index.js +6 -2
- package/dist/features/lists/plugin/index.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +13 -5
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +7 -3
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
- package/dist/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.scss +16 -0
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +13 -5
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js.map +1 -1
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +7 -3
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js.map +1 -1
- package/dist/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.scss +16 -0
- package/dist/features/relationship/client/components/RelationshipComponent.js +55 -19
- package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
- package/dist/features/relationship/client/components/index.scss +95 -0
- package/dist/features/relationship/client/drawer/index.js +18 -6
- package/dist/features/relationship/client/drawer/index.js.map +1 -1
- package/dist/features/relationship/client/nodes/RelationshipNode.js +7 -3
- package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
- package/dist/features/relationship/client/plugins/index.js +7 -3
- package/dist/features/relationship/client/plugins/index.js.map +1 -1
- package/dist/features/textState/feature.client.js +18 -6
- package/dist/features/textState/feature.client.js.map +1 -1
- package/dist/features/toolbars/fixed/client/Toolbar/index.js +71 -23
- package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
- package/dist/features/toolbars/fixed/client/Toolbar/index.scss +113 -0
- package/dist/features/toolbars/inline/client/Toolbar/index.js +71 -23
- package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
- package/dist/features/toolbars/inline/client/Toolbar/index.scss +58 -0
- package/dist/features/toolbars/shared/ToolbarButton/index.js +7 -3
- package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarButton/index.scss +46 -0
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js +60 -20
- package/dist/features/toolbars/shared/ToolbarDropdown/DropDown.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/index.js +36 -12
- package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
- package/dist/features/toolbars/shared/ToolbarDropdown/index.scss +129 -0
- package/dist/features/upload/client/component/index.js +91 -31
- package/dist/features/upload/client/component/index.js.map +1 -1
- package/dist/features/upload/client/component/index.scss +191 -0
- package/dist/features/upload/client/component/pending/index.js +13 -5
- package/dist/features/upload/client/component/pending/index.js.map +1 -1
- package/dist/features/upload/client/drawer/index.js +18 -6
- package/dist/features/upload/client/drawer/index.js.map +1 -1
- package/dist/features/upload/client/nodes/UploadNode.js +12 -4
- package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
- package/dist/features/upload/client/plugin/index.js +7 -3
- package/dist/features/upload/client/plugin/index.js.map +1 -1
- package/dist/field/Diff/converters/listitem/index.js +36 -12
- package/dist/field/Diff/converters/listitem/index.js.map +1 -1
- package/dist/field/Diff/converters/listitem/index.scss +47 -0
- package/dist/field/Diff/converters/relationship/index.js +36 -12
- package/dist/field/Diff/converters/relationship/index.js.map +1 -1
- package/dist/field/Diff/converters/relationship/index.scss +73 -0
- package/dist/field/Diff/converters/unknown/index.js +30 -10
- package/dist/field/Diff/converters/unknown/index.js.map +1 -1
- package/dist/field/Diff/converters/unknown/index.scss +40 -0
- package/dist/field/Diff/converters/upload/index.js +59 -19
- package/dist/field/Diff/converters/upload/index.js.map +1 -1
- package/dist/field/Diff/converters/upload/index.scss +115 -0
- package/dist/field/Diff/index.js +7 -3
- package/dist/field/Diff/index.js.map +1 -1
- package/dist/field/Diff/index.scss +102 -0
- package/dist/field/Field.js +79 -27
- package/dist/field/Field.js.map +1 -1
- package/dist/field/RenderLexical/index.js +36 -12
- package/dist/field/RenderLexical/index.js.map +1 -1
- package/dist/field/index.js +19 -7
- package/dist/field/index.js.map +1 -1
- package/dist/field/index.scss +41 -0
- package/dist/field/rscEntry.js +7 -3
- package/dist/field/rscEntry.js.map +1 -1
- package/dist/lexical/EditorPlugin.js +13 -5
- package/dist/lexical/EditorPlugin.js.map +1 -1
- package/dist/lexical/LexicalEditor.js +162 -50
- package/dist/lexical/LexicalEditor.js.map +1 -1
- package/dist/lexical/LexicalEditor.scss +54 -0
- package/dist/lexical/LexicalProvider.js +49 -17
- package/dist/lexical/LexicalProvider.js.map +1 -1
- package/dist/lexical/config/client/EditorConfigProvider.js +7 -3
- package/dist/lexical/config/client/EditorConfigProvider.js.map +1 -1
- package/dist/lexical/plugins/DecoratorPlugin/index.scss +13 -0
- package/dist/lexical/plugins/InsertParagraphAtEnd/index.js +19 -7
- package/dist/lexical/plugins/InsertParagraphAtEnd/index.js.map +1 -1
- package/dist/lexical/plugins/InsertParagraphAtEnd/index.scss +54 -0
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +7 -3
- package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/index.js +48 -16
- package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
- package/dist/lexical/plugins/SlashMenu/index.scss +68 -0
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js +19 -7
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.js.map +1 -1
- package/dist/lexical/plugins/handles/AddBlockHandlePlugin/index.scss +35 -0
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js +31 -11
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.js.map +1 -1
- package/dist/lexical/plugins/handles/DraggableBlockPlugin/index.scss +80 -0
- package/dist/lexical/theme/EditorTheme.scss +357 -0
- package/dist/lexical/ui/ContentEditable.js +13 -5
- package/dist/lexical/ui/ContentEditable.js.map +1 -1
- package/dist/lexical/ui/ContentEditable.scss +105 -0
- package/dist/lexical/ui/icons/AI/index.js +37 -13
- package/dist/lexical/ui/icons/AI/index.js.map +1 -1
- package/dist/lexical/ui/icons/Add/index.js +19 -7
- package/dist/lexical/ui/icons/Add/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignCenter/index.js +25 -9
- package/dist/lexical/ui/icons/AlignCenter/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignJustify/index.js +25 -9
- package/dist/lexical/ui/icons/AlignJustify/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignLeft/index.js +25 -9
- package/dist/lexical/ui/icons/AlignLeft/index.js.map +1 -1
- package/dist/lexical/ui/icons/AlignRight/index.js +25 -9
- package/dist/lexical/ui/icons/AlignRight/index.js.map +1 -1
- package/dist/lexical/ui/icons/Block/index.js +25 -9
- package/dist/lexical/ui/icons/Block/index.js.map +1 -1
- package/dist/lexical/ui/icons/Blockquote/index.js +13 -5
- package/dist/lexical/ui/icons/Blockquote/index.js.map +1 -1
- package/dist/lexical/ui/icons/Bold/index.js +13 -5
- package/dist/lexical/ui/icons/Bold/index.js.map +1 -1
- package/dist/lexical/ui/icons/Checklist/index.js +19 -7
- package/dist/lexical/ui/icons/Checklist/index.js.map +1 -1
- package/dist/lexical/ui/icons/Code/index.js +19 -7
- package/dist/lexical/ui/icons/Code/index.js.map +1 -1
- package/dist/lexical/ui/icons/CodeBlock/index.js +13 -5
- package/dist/lexical/ui/icons/CodeBlock/index.js.map +1 -1
- package/dist/lexical/ui/icons/Collapse/index.js +13 -5
- package/dist/lexical/ui/icons/Collapse/index.js.map +1 -1
- package/dist/lexical/ui/icons/H1/index.js +13 -5
- package/dist/lexical/ui/icons/H1/index.js.map +1 -1
- package/dist/lexical/ui/icons/H2/index.js +13 -5
- package/dist/lexical/ui/icons/H2/index.js.map +1 -1
- package/dist/lexical/ui/icons/H3/index.js +13 -5
- package/dist/lexical/ui/icons/H3/index.js.map +1 -1
- package/dist/lexical/ui/icons/H4/index.js +13 -5
- package/dist/lexical/ui/icons/H4/index.js.map +1 -1
- package/dist/lexical/ui/icons/H5/index.js +13 -5
- package/dist/lexical/ui/icons/H5/index.js.map +1 -1
- package/dist/lexical/ui/icons/H6/index.js +13 -5
- package/dist/lexical/ui/icons/H6/index.js.map +1 -1
- package/dist/lexical/ui/icons/HorizontalRule/index.js +13 -5
- package/dist/lexical/ui/icons/HorizontalRule/index.js.map +1 -1
- package/dist/lexical/ui/icons/IndentDecrease/index.js +31 -11
- package/dist/lexical/ui/icons/IndentDecrease/index.js.map +1 -1
- package/dist/lexical/ui/icons/IndentIncrease/index.js +31 -11
- package/dist/lexical/ui/icons/IndentIncrease/index.js.map +1 -1
- package/dist/lexical/ui/icons/InlineBlocks/index.js +13 -5
- package/dist/lexical/ui/icons/InlineBlocks/index.js.map +1 -1
- package/dist/lexical/ui/icons/Italic/index.js +13 -5
- package/dist/lexical/ui/icons/Italic/index.js.map +1 -1
- package/dist/lexical/ui/icons/Link/index.js +13 -5
- package/dist/lexical/ui/icons/Link/index.js.map +1 -1
- package/dist/lexical/ui/icons/Meatballs/index.js +25 -9
- package/dist/lexical/ui/icons/Meatballs/index.js.map +1 -1
- package/dist/lexical/ui/icons/OrderedList/index.js +37 -13
- package/dist/lexical/ui/icons/OrderedList/index.js.map +1 -1
- package/dist/lexical/ui/icons/Relationship/index.js +37 -13
- package/dist/lexical/ui/icons/Relationship/index.js.map +1 -1
- package/dist/lexical/ui/icons/Strikethrough/index.js +19 -7
- package/dist/lexical/ui/icons/Strikethrough/index.js.map +1 -1
- package/dist/lexical/ui/icons/Subscript/index.js +13 -5
- package/dist/lexical/ui/icons/Subscript/index.js.map +1 -1
- package/dist/lexical/ui/icons/Superscript/index.js +13 -5
- package/dist/lexical/ui/icons/Superscript/index.js.map +1 -1
- package/dist/lexical/ui/icons/Table/index.js +13 -5
- package/dist/lexical/ui/icons/Table/index.js.map +1 -1
- package/dist/lexical/ui/icons/Text/index.js +13 -5
- package/dist/lexical/ui/icons/Text/index.js.map +1 -1
- package/dist/lexical/ui/icons/TextState/index.js +7 -3
- package/dist/lexical/ui/icons/TextState/index.js.map +1 -1
- package/dist/lexical/ui/icons/Underline/index.js +19 -7
- package/dist/lexical/ui/icons/Underline/index.js.map +1 -1
- package/dist/lexical/ui/icons/UnorderedList/index.js +43 -15
- package/dist/lexical/ui/icons/UnorderedList/index.js.map +1 -1
- package/dist/lexical/ui/icons/Upload/index.js +25 -9
- package/dist/lexical/ui/icons/Upload/index.js.map +1 -1
- package/dist/utilities/fieldsDrawer/Drawer.js +19 -7
- package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
- package/dist/utilities/fieldsDrawer/DrawerContent.js +19 -7
- package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
- package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js +7 -3
- package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js.map +1 -1
- package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js +7 -3
- package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js.map +1 -1
- package/package.json +9 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/features/blocks/client/component/index.tsx"],"sourcesContent":["'use client'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n Collapsible,\n Drawer,\n EditDepthProvider,\n ErrorPill,\n Form,\n formatDrawerSlug,\n FormSubmit,\n Pill,\n RenderFields,\n SectionTitle,\n useConfig,\n useDocumentForm,\n useDocumentInfo,\n useEditDepth,\n useFormSubmitted,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport { abortAndIgnore } from '@payloadcms/ui/shared'\nimport { $getNodeByKey } from 'lexical'\nimport {\n type BlocksFieldClient,\n type ClientBlock,\n type CollapsedPreferences,\n type FormState,\n} from 'payload'\nimport { deepCopyObjectSimpleWithoutReactComponents, reduceFieldsToValues } from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { v4 as uuid } from 'uuid'\n\nimport type { BlockFields } from '../../server/nodes/BlocksNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport './index.scss'\nimport { useLexicalDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $isBlockNode } from '../nodes/BlocksNode.js'\nimport { type BlockCollapsibleWithErrorProps, BlockContent } from './BlockContent.js'\nimport { removeEmptyArrayValues } from './removeEmptyArrayValues.js'\n\ntype Props = {\n /**\n * Can be modified by the node in order to trigger the re-fetch of the initial state based on the\n * formData. This is useful when node.setFields() is explicitly called from outside of the form - in\n * this case, the new field state is likely not reflected in the form state, so we need to re-fetch\n */\n readonly cacheBuster: number\n readonly className: string\n readonly formData: BlockFields\n readonly nodeKey: string\n}\n\nexport const BlockComponent: React.FC<Props> = (props) => {\n const { cacheBuster, className: baseClass, formData, nodeKey } = props\n const submitted = useFormSubmitted()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const {\n fieldProps: {\n featureClientSchemaMap,\n field: parentLexicalRichTextField,\n initialLexicalFormState,\n schemaPath,\n },\n uuid: uuidFromContext,\n } = useEditorConfigContext()\n\n const { fields: parentDocumentFields } = useDocumentForm()\n const onChangeAbortControllerRef = useRef(new AbortController())\n const editDepth = useEditDepth()\n const [errorCount, setErrorCount] = React.useState(0)\n\n const { config } = useConfig()\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-blocks-create-${uuidFromContext}-${formData.id}`,\n depth: editDepth,\n })\n const { toggleDrawer } = useLexicalDrawer(drawerSlug)\n\n // Used for saving collapsed to preferences (and gettin' it from there again)\n // Remember, these preferences are scoped to the whole document, not just this form. This\n // is important to consider for the data path used in setDocFieldPreferences\n const { getDocPreferences, setDocFieldPreferences } = useDocumentInfo()\n const [editor] = useLexicalComposerContext()\n const isEditable = useLexicalEditable()\n\n const blockType = formData.blockType\n\n const { getFormState } = useServerFunctions()\n const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.${blockType}.fields`\n\n const [initialState, setInitialState] = React.useState<false | FormState | undefined>(() => {\n // Initial form state that was calculated server-side. May have stale values\n const cachedFormState = initialLexicalFormState?.[formData.id]?.formState\n if (!cachedFormState) {\n return false\n }\n\n // Merge current formData values into the cached form state\n // This ensures that when the component remounts (e.g., due to view changes), we don't lose user edits\n const mergedState = Object.fromEntries(\n Object.entries(cachedFormState).map(([fieldName, fieldState]) => [\n fieldName,\n fieldName in formData\n ? {\n ...fieldState,\n initialValue: formData[fieldName],\n value: formData[fieldName],\n }\n : fieldState,\n ]),\n )\n\n // Manually add blockName, as it's not part of cachedFormState\n mergedState.blockName = {\n initialValue: formData.blockName,\n passesCondition: true,\n valid: true,\n value: formData.blockName,\n }\n\n return mergedState\n })\n\n const hasMounted = useRef(false)\n const prevCacheBuster = useRef(cacheBuster)\n useEffect(() => {\n if (hasMounted.current) {\n if (prevCacheBuster.current !== cacheBuster) {\n setInitialState(false)\n }\n prevCacheBuster.current = cacheBuster\n } else {\n hasMounted.current = true\n }\n }, [cacheBuster])\n\n const [CustomLabel, setCustomLabel] = React.useState<React.ReactNode | undefined>(\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n initialState?.['_components']?.customComponents?.BlockLabel ?? undefined,\n )\n\n const [CustomBlock, setCustomBlock] = React.useState<React.ReactNode | undefined>(\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n initialState?.['_components']?.customComponents?.Block ?? undefined,\n )\n\n // Initial state for newly created blocks\n useEffect(() => {\n const abortController = new AbortController()\n\n const awaitInitialState = async () => {\n /*\n * This will only run if a new block is created. For all existing blocks that are loaded when the document is loaded, or when the form is saved,\n * this is not run, as the lexical field RSC will fetch the state server-side and pass it to the client. That way, we avoid unnecessary client-side\n * requests. Though for newly created blocks, we need to fetch the state client-side, as the server doesn't know about the block yet.\n */\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: formData,\n docPermissions: { fields: true },\n docPreferences: await getDocPreferences(),\n documentFormState: deepCopyObjectSimpleWithoutReactComponents(parentDocumentFields),\n globalSlug,\n initialBlockData: formData,\n operation: 'update',\n readOnly: !isEditable,\n renderAllFields: true,\n schemaPath: schemaFieldsPath,\n signal: abortController.signal,\n })\n\n if (state) {\n state.blockName = {\n initialValue: formData.blockName,\n passesCondition: true,\n valid: true,\n value: formData.blockName,\n }\n\n const newFormStateData: BlockFields = reduceFieldsToValues(\n deepCopyObjectSimpleWithoutReactComponents(state),\n true,\n ) as BlockFields\n\n // Things like default values may come back from the server => update the node with the new data\n editor.update(() => {\n const node = $getNodeByKey(nodeKey)\n if (node && $isBlockNode(node)) {\n const newData = newFormStateData\n newData.blockType = blockType\n\n node.setFields(newData, true)\n }\n })\n\n setInitialState(state)\n setCustomLabel(state._components?.customComponents?.BlockLabel ?? undefined)\n setCustomBlock(state._components?.customComponents?.Block ?? undefined)\n }\n }\n\n if (formData && !initialState) {\n void awaitInitialState()\n }\n\n return () => {\n abortAndIgnore(abortController)\n }\n }, [\n getFormState,\n schemaFieldsPath,\n isEditable,\n id,\n formData,\n editor,\n nodeKey,\n initialState,\n collectionSlug,\n globalSlug,\n getDocPreferences,\n parentDocumentFields,\n blockType,\n ])\n\n const [isCollapsed, setIsCollapsed] = React.useState<boolean>(\n initialLexicalFormState?.[formData.id]?.collapsed ?? false,\n )\n\n const componentMapRenderedBlockPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.${blockType}`\n\n const clientSchemaMap = featureClientSchemaMap['blocks']\n\n const blocksField: BlocksFieldClient | undefined = clientSchemaMap?.[\n componentMapRenderedBlockPath\n ]?.[0] as BlocksFieldClient\n\n const clientBlock: ClientBlock | undefined = blocksField.blockReferences\n ? typeof blocksField?.blockReferences?.[0] === 'string'\n ? config.blocksMap[blocksField?.blockReferences?.[0]]\n : blocksField?.blockReferences?.[0]\n : blocksField?.blocks?.[0]\n\n const { i18n, t } = useTranslation<object, string>()\n\n const onChange = useCallback(\n async ({ formState: prevFormState, submit }: { formState: FormState; submit?: boolean }) => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n\n const controller = new AbortController()\n onChangeAbortControllerRef.current = controller\n\n const { state: newFormState } = await getFormState({\n id,\n collectionSlug,\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n documentFormState: deepCopyObjectSimpleWithoutReactComponents(parentDocumentFields),\n formState: prevFormState,\n globalSlug,\n initialBlockFormState: prevFormState,\n operation: 'update',\n readOnly: !isEditable,\n renderAllFields: submit ? true : false,\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n if (!newFormState) {\n return prevFormState\n }\n\n if (prevFormState.blockName) {\n newFormState.blockName = prevFormState.blockName\n }\n\n const newFormStateData: BlockFields = reduceFieldsToValues(\n removeEmptyArrayValues({\n fields: deepCopyObjectSimpleWithoutReactComponents(newFormState),\n }),\n true,\n ) as BlockFields\n\n setTimeout(() => {\n editor.update(() => {\n const node = $getNodeByKey(nodeKey)\n if (node && $isBlockNode(node)) {\n const newData = newFormStateData\n newData.blockType = blockType\n node.setFields(newData, true)\n }\n })\n }, 0)\n\n if (submit) {\n setCustomLabel(newFormState._components?.customComponents?.BlockLabel ?? undefined)\n setCustomBlock(newFormState._components?.customComponents?.Block ?? undefined)\n\n let rowErrorCount = 0\n for (const formField of Object.values(newFormState)) {\n if (formField?.valid === false) {\n rowErrorCount++\n }\n }\n setErrorCount(rowErrorCount)\n }\n\n return newFormState\n },\n\n [\n getFormState,\n id,\n collectionSlug,\n getDocPreferences,\n globalSlug,\n schemaFieldsPath,\n blockType,\n parentDocumentFields,\n isEditable,\n editor,\n nodeKey,\n ],\n )\n\n useEffect(() => {\n return () => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n }\n }, [])\n\n const removeBlock = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey)?.remove()\n })\n }, [editor, nodeKey])\n\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock?.slug\n\n const onCollapsedChange = useCallback(\n (changedCollapsed: boolean) => {\n void getDocPreferences().then((currentDocPreferences) => {\n const currentFieldPreferences =\n currentDocPreferences?.fields?.[parentLexicalRichTextField.name]\n\n const collapsedArray = currentFieldPreferences?.collapsed\n\n const newCollapsed: CollapsedPreferences =\n collapsedArray && collapsedArray?.length ? collapsedArray : []\n\n if (changedCollapsed) {\n if (!newCollapsed.includes(formData.id)) {\n newCollapsed.push(formData.id)\n }\n } else {\n if (newCollapsed.includes(formData.id)) {\n newCollapsed.splice(newCollapsed.indexOf(formData.id), 1)\n }\n }\n\n setDocFieldPreferences(parentLexicalRichTextField.name, {\n collapsed: newCollapsed,\n hello: 'hi',\n })\n })\n },\n [getDocPreferences, parentLexicalRichTextField.name, setDocFieldPreferences, formData.id],\n )\n\n const EditButton = useMemo(\n () => () => (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__editButton`}\n disabled={!isEditable}\n el=\"button\"\n icon=\"edit\"\n onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n toggleDrawer()\n return false\n }}\n onMouseDown={(e) => {\n // Needed to preserve lexical selection for toggleDrawer lexical selection restore.\n // I believe this is needed due to this button (usually) being inside of a collapsible.\n e.preventDefault()\n }}\n round\n size=\"small\"\n tooltip={t('lexical:blocks:inlineBlocks:edit', { label: blockDisplayName })}\n />\n ),\n [baseClass, isEditable, t, blockDisplayName, toggleDrawer],\n )\n\n const RemoveButton = useMemo(\n () => () => (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={!isEditable}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeBlock()\n }}\n round\n tooltip=\"Remove Block\"\n />\n ),\n [baseClass, isEditable, removeBlock],\n )\n\n const BlockCollapsible = useMemo(\n () =>\n ({\n Actions,\n children,\n className,\n collapsibleProps,\n disableBlockName,\n editButton,\n errorCount,\n fieldHasErrors,\n Label,\n Pill: CustomPill,\n removeButton,\n }: BlockCollapsibleWithErrorProps) => {\n return (\n <div className={`${baseClass}__container ${baseClass}-${blockType}`}>\n <Collapsible\n className={[\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n header={\n <div className={`${baseClass}__block-header`}>\n {typeof Label !== 'undefined' ? (\n Label\n ) : typeof CustomLabel !== 'undefined' ? (\n CustomLabel\n ) : (\n <div className={`${baseClass}__block-label`}>\n {typeof CustomPill !== 'undefined' ? (\n CustomPill\n ) : (\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${blockType}`}\n pillStyle=\"white\"\n size=\"small\"\n >\n {blockDisplayName ?? blockType}\n </Pill>\n )}\n {!disableBlockName && !clientBlock?.admin?.disableBlockName && (\n <SectionTitle path=\"blockName\" readOnly={!isEditable} />\n )}\n\n {fieldHasErrors && (\n <ErrorPill count={errorCount ?? 0} i18n={i18n} withMessage />\n )}\n </div>\n )}\n\n <div className={`${baseClass}__block-actions`}>\n {typeof Actions !== 'undefined' ? (\n Actions\n ) : (\n <>\n {(CustomBlock && editButton !== false) || (!CustomBlock && editButton) ? (\n <EditButton />\n ) : null}\n {removeButton !== false && isEditable ? <RemoveButton /> : null}\n </>\n )}\n </div>\n </div>\n }\n isCollapsed={isCollapsed}\n key={0}\n onToggle={(incomingCollapsedState) => {\n onCollapsedChange(incomingCollapsedState)\n setIsCollapsed(incomingCollapsedState)\n }}\n {...(collapsibleProps || {})}\n >\n {children}\n </Collapsible>\n </div>\n )\n },\n [\n CustomBlock,\n CustomLabel,\n EditButton,\n RemoveButton,\n blockDisplayName,\n baseClass,\n clientBlock?.admin?.disableBlockName,\n blockType,\n i18n,\n isCollapsed,\n onCollapsedChange,\n isEditable,\n ],\n )\n\n const blockID = formData?.id\n\n const BlockDrawer = useMemo(\n () => () => (\n <EditDepthProvider>\n <Drawer\n className={''}\n slug={drawerSlug}\n title={t(`lexical:blocks:inlineBlocks:${blockID ? 'edit' : 'create'}`, {\n label: blockDisplayName ?? t('lexical:blocks:inlineBlocks:label'),\n })}\n >\n {initialState ? (\n <>\n <RenderFields\n fields={clientBlock?.fields ?? []}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\" // See Blocks feature path for details as for why this is empty\n parentSchemaPath={schemaFieldsPath}\n permissions={true}\n readOnly={!isEditable}\n />\n <FormSubmit programmaticSubmit={true}>{t('fields:saveChanges')}</FormSubmit>\n </>\n ) : null}\n </Drawer>\n </EditDepthProvider>\n ),\n [\n initialState,\n drawerSlug,\n blockID,\n blockDisplayName,\n t,\n isEditable,\n clientBlock?.fields,\n schemaFieldsPath,\n // DO NOT ADD FORMDATA HERE! Adding formData will kick you out of sub block editors while writing.\n ],\n )\n\n // Memoized Form JSX\n const Block = useMemo(() => {\n if (!initialState) {\n return null\n }\n return (\n <Form\n beforeSubmit={[\n async ({ formState }) => {\n // This is only called when form is submitted from drawer - usually only the case if the block has a custom Block component\n return await onChange({ formState, submit: true })\n },\n ]}\n el=\"div\"\n fields={clientBlock?.fields ?? []}\n initialState={initialState}\n onChange={[onChange]}\n onSubmit={(formState, newData) => {\n // This is only called when form is submitted from drawer - usually only the case if the block has a custom Block component\n newData.blockType = blockType\n editor.update(() => {\n const node = $getNodeByKey(nodeKey)\n if (node && $isBlockNode(node)) {\n node.setFields(newData as BlockFields, true)\n }\n })\n toggleDrawer()\n }}\n submitted={submitted}\n uuid={uuid()}\n >\n <BlockContent\n baseClass={baseClass}\n BlockDrawer={BlockDrawer}\n Collapsible={BlockCollapsible}\n CustomBlock={CustomBlock}\n EditButton={EditButton}\n errorCount={errorCount}\n formSchema={clientBlock?.fields ?? []}\n initialState={initialState}\n nodeKey={nodeKey}\n RemoveButton={RemoveButton}\n />\n </Form>\n )\n }, [\n BlockCollapsible,\n BlockDrawer,\n CustomBlock,\n blockType,\n RemoveButton,\n EditButton,\n baseClass,\n editor,\n errorCount,\n toggleDrawer,\n clientBlock?.fields,\n // DO NOT ADD FORMDATA HERE! Adding formData will kick you out of sub block editors while writing.\n initialState,\n nodeKey,\n onChange,\n submitted,\n ])\n\n if (!clientBlock) {\n return (\n <BlockCollapsible disableBlockName={true} fieldHasErrors={true}>\n <div className={`${baseClass}-not-found`}>\n Error: Block '{blockType}' not found in the config but exists in the lexical data\n </div>\n </BlockCollapsible>\n )\n }\n\n return Block\n}\n"],"names":["useLexicalComposerContext","useLexicalEditable","getTranslation","Button","Collapsible","Drawer","EditDepthProvider","ErrorPill","Form","formatDrawerSlug","FormSubmit","Pill","RenderFields","SectionTitle","useConfig","useDocumentForm","useDocumentInfo","useEditDepth","useFormSubmitted","useServerFunctions","useTranslation","abortAndIgnore","$getNodeByKey","deepCopyObjectSimpleWithoutReactComponents","reduceFieldsToValues","React","useCallback","useEffect","useMemo","useRef","v4","uuid","useEditorConfigContext","useLexicalDrawer","$isBlockNode","BlockContent","removeEmptyArrayValues","BlockComponent","props","cacheBuster","className","baseClass","formData","nodeKey","submitted","id","collectionSlug","globalSlug","fieldProps","featureClientSchemaMap","field","parentLexicalRichTextField","initialLexicalFormState","schemaPath","uuidFromContext","fields","parentDocumentFields","onChangeAbortControllerRef","AbortController","editDepth","errorCount","setErrorCount","useState","config","drawerSlug","slug","depth","toggleDrawer","getDocPreferences","setDocFieldPreferences","editor","isEditable","blockType","getFormState","schemaFieldsPath","initialState","setInitialState","cachedFormState","formState","mergedState","Object","fromEntries","entries","map","fieldName","fieldState","initialValue","value","blockName","passesCondition","valid","hasMounted","prevCacheBuster","current","CustomLabel","setCustomLabel","customComponents","BlockLabel","undefined","CustomBlock","setCustomBlock","Block","abortController","awaitInitialState","state","data","docPermissions","docPreferences","documentFormState","initialBlockData","operation","readOnly","renderAllFields","signal","newFormStateData","update","node","newData","setFields","_components","isCollapsed","setIsCollapsed","collapsed","componentMapRenderedBlockPath","clientSchemaMap","blocksField","clientBlock","blockReferences","blocksMap","blocks","i18n","t","onChange","prevFormState","submit","controller","newFormState","initialBlockFormState","setTimeout","rowErrorCount","formField","values","removeBlock","remove","blockDisplayName","labels","singular","onCollapsedChange","changedCollapsed","then","currentDocPreferences","currentFieldPreferences","name","collapsedArray","newCollapsed","length","includes","push","splice","indexOf","hello","EditButton","buttonStyle","disabled","el","icon","onClick","e","preventDefault","stopPropagation","onMouseDown","round","size","tooltip","label","RemoveButton","BlockCollapsible","Actions","children","collapsibleProps","disableBlockName","editButton","fieldHasErrors","Label","CustomPill","removeButton","div","filter","Boolean","join","collapsibleStyle","header","pillStyle","admin","path","count","withMessage","onToggle","incomingCollapsedState","blockID","BlockDrawer","title","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions","programmaticSubmit","beforeSubmit","onSubmit","formSchema"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/features/blocks/client/component/index.tsx"],"sourcesContent":["'use client'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n Collapsible,\n Drawer,\n EditDepthProvider,\n ErrorPill,\n Form,\n formatDrawerSlug,\n FormSubmit,\n Pill,\n RenderFields,\n SectionTitle,\n useConfig,\n useDocumentForm,\n useDocumentInfo,\n useEditDepth,\n useFormSubmitted,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport { abortAndIgnore } from '@payloadcms/ui/shared'\nimport { $getNodeByKey } from 'lexical'\nimport {\n type BlocksFieldClient,\n type ClientBlock,\n type CollapsedPreferences,\n type FormState,\n} from 'payload'\nimport { deepCopyObjectSimpleWithoutReactComponents, reduceFieldsToValues } from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { v4 as uuid } from 'uuid'\n\nimport type { BlockFields } from '../../server/nodes/BlocksNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport './index.scss'\nimport { useLexicalDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { $isBlockNode } from '../nodes/BlocksNode.js'\nimport { type BlockCollapsibleWithErrorProps, BlockContent } from './BlockContent.js'\nimport { removeEmptyArrayValues } from './removeEmptyArrayValues.js'\n\ntype Props = {\n /**\n * Can be modified by the node in order to trigger the re-fetch of the initial state based on the\n * formData. This is useful when node.setFields() is explicitly called from outside of the form - in\n * this case, the new field state is likely not reflected in the form state, so we need to re-fetch\n */\n readonly cacheBuster: number\n readonly className: string\n readonly formData: BlockFields\n readonly nodeKey: string\n}\n\nexport const BlockComponent: React.FC<Props> = (props) => {\n const { cacheBuster, className: baseClass, formData, nodeKey } = props\n const submitted = useFormSubmitted()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const {\n fieldProps: {\n featureClientSchemaMap,\n field: parentLexicalRichTextField,\n initialLexicalFormState,\n schemaPath,\n },\n uuid: uuidFromContext,\n } = useEditorConfigContext()\n\n const { fields: parentDocumentFields } = useDocumentForm()\n const onChangeAbortControllerRef = useRef(new AbortController())\n const editDepth = useEditDepth()\n const [errorCount, setErrorCount] = React.useState(0)\n\n const { config } = useConfig()\n\n const drawerSlug = formatDrawerSlug({\n slug: `lexical-blocks-create-${uuidFromContext}-${formData.id}`,\n depth: editDepth,\n })\n const { toggleDrawer } = useLexicalDrawer(drawerSlug)\n\n // Used for saving collapsed to preferences (and gettin' it from there again)\n // Remember, these preferences are scoped to the whole document, not just this form. This\n // is important to consider for the data path used in setDocFieldPreferences\n const { getDocPreferences, setDocFieldPreferences } = useDocumentInfo()\n const [editor] = useLexicalComposerContext()\n const isEditable = useLexicalEditable()\n\n const blockType = formData.blockType\n\n const { getFormState } = useServerFunctions()\n const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.${blockType}.fields`\n\n const [initialState, setInitialState] = React.useState<false | FormState | undefined>(() => {\n // Initial form state that was calculated server-side. May have stale values\n const cachedFormState = initialLexicalFormState?.[formData.id]?.formState\n if (!cachedFormState) {\n return false\n }\n\n // Merge current formData values into the cached form state\n // This ensures that when the component remounts (e.g., due to view changes), we don't lose user edits\n const mergedState = Object.fromEntries(\n Object.entries(cachedFormState).map(([fieldName, fieldState]) => [\n fieldName,\n fieldName in formData\n ? {\n ...fieldState,\n initialValue: formData[fieldName],\n value: formData[fieldName],\n }\n : fieldState,\n ]),\n )\n\n // Manually add blockName, as it's not part of cachedFormState\n mergedState.blockName = {\n initialValue: formData.blockName,\n passesCondition: true,\n valid: true,\n value: formData.blockName,\n }\n\n return mergedState\n })\n\n const hasMounted = useRef(false)\n const prevCacheBuster = useRef(cacheBuster)\n useEffect(() => {\n if (hasMounted.current) {\n if (prevCacheBuster.current !== cacheBuster) {\n setInitialState(false)\n }\n prevCacheBuster.current = cacheBuster\n } else {\n hasMounted.current = true\n }\n }, [cacheBuster])\n\n const [CustomLabel, setCustomLabel] = React.useState<React.ReactNode | undefined>(\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n initialState?.['_components']?.customComponents?.BlockLabel ?? undefined,\n )\n\n const [CustomBlock, setCustomBlock] = React.useState<React.ReactNode | undefined>(\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n initialState?.['_components']?.customComponents?.Block ?? undefined,\n )\n\n // Initial state for newly created blocks\n useEffect(() => {\n const abortController = new AbortController()\n\n const awaitInitialState = async () => {\n /*\n * This will only run if a new block is created. For all existing blocks that are loaded when the document is loaded, or when the form is saved,\n * this is not run, as the lexical field RSC will fetch the state server-side and pass it to the client. That way, we avoid unnecessary client-side\n * requests. Though for newly created blocks, we need to fetch the state client-side, as the server doesn't know about the block yet.\n */\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: formData,\n docPermissions: { fields: true },\n docPreferences: await getDocPreferences(),\n documentFormState: deepCopyObjectSimpleWithoutReactComponents(parentDocumentFields),\n globalSlug,\n initialBlockData: formData,\n operation: 'update',\n readOnly: !isEditable,\n renderAllFields: true,\n schemaPath: schemaFieldsPath,\n signal: abortController.signal,\n })\n\n if (state) {\n state.blockName = {\n initialValue: formData.blockName,\n passesCondition: true,\n valid: true,\n value: formData.blockName,\n }\n\n const newFormStateData: BlockFields = reduceFieldsToValues(\n deepCopyObjectSimpleWithoutReactComponents(state),\n true,\n ) as BlockFields\n\n // Things like default values may come back from the server => update the node with the new data\n editor.update(() => {\n const node = $getNodeByKey(nodeKey)\n if (node && $isBlockNode(node)) {\n const newData = newFormStateData\n newData.blockType = blockType\n\n node.setFields(newData, true)\n }\n })\n\n setInitialState(state)\n setCustomLabel(state._components?.customComponents?.BlockLabel ?? undefined)\n setCustomBlock(state._components?.customComponents?.Block ?? undefined)\n }\n }\n\n if (formData && !initialState) {\n void awaitInitialState()\n }\n\n return () => {\n abortAndIgnore(abortController)\n }\n }, [\n getFormState,\n schemaFieldsPath,\n isEditable,\n id,\n formData,\n editor,\n nodeKey,\n initialState,\n collectionSlug,\n globalSlug,\n getDocPreferences,\n parentDocumentFields,\n blockType,\n ])\n\n const [isCollapsed, setIsCollapsed] = React.useState<boolean>(\n initialLexicalFormState?.[formData.id]?.collapsed ?? false,\n )\n\n const componentMapRenderedBlockPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.${blockType}`\n\n const clientSchemaMap = featureClientSchemaMap['blocks']\n\n const blocksField: BlocksFieldClient | undefined = clientSchemaMap?.[\n componentMapRenderedBlockPath\n ]?.[0] as BlocksFieldClient\n\n const clientBlock: ClientBlock | undefined = blocksField.blockReferences\n ? typeof blocksField?.blockReferences?.[0] === 'string'\n ? config.blocksMap[blocksField?.blockReferences?.[0]]\n : blocksField?.blockReferences?.[0]\n : blocksField?.blocks?.[0]\n\n const { i18n, t } = useTranslation<object, string>()\n\n const onChange = useCallback(\n async ({ formState: prevFormState, submit }: { formState: FormState; submit?: boolean }) => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n\n const controller = new AbortController()\n onChangeAbortControllerRef.current = controller\n\n const { state: newFormState } = await getFormState({\n id,\n collectionSlug,\n docPermissions: {\n fields: true,\n },\n docPreferences: await getDocPreferences(),\n documentFormState: deepCopyObjectSimpleWithoutReactComponents(parentDocumentFields),\n formState: prevFormState,\n globalSlug,\n initialBlockFormState: prevFormState,\n operation: 'update',\n readOnly: !isEditable,\n renderAllFields: submit ? true : false,\n schemaPath: schemaFieldsPath,\n signal: controller.signal,\n })\n\n if (!newFormState) {\n return prevFormState\n }\n\n if (prevFormState.blockName) {\n newFormState.blockName = prevFormState.blockName\n }\n\n const newFormStateData: BlockFields = reduceFieldsToValues(\n removeEmptyArrayValues({\n fields: deepCopyObjectSimpleWithoutReactComponents(newFormState),\n }),\n true,\n ) as BlockFields\n\n setTimeout(() => {\n editor.update(() => {\n const node = $getNodeByKey(nodeKey)\n if (node && $isBlockNode(node)) {\n const newData = newFormStateData\n newData.blockType = blockType\n node.setFields(newData, true)\n }\n })\n }, 0)\n\n if (submit) {\n setCustomLabel(newFormState._components?.customComponents?.BlockLabel ?? undefined)\n setCustomBlock(newFormState._components?.customComponents?.Block ?? undefined)\n\n let rowErrorCount = 0\n for (const formField of Object.values(newFormState)) {\n if (formField?.valid === false) {\n rowErrorCount++\n }\n }\n setErrorCount(rowErrorCount)\n }\n\n return newFormState\n },\n\n [\n getFormState,\n id,\n collectionSlug,\n getDocPreferences,\n globalSlug,\n schemaFieldsPath,\n blockType,\n parentDocumentFields,\n isEditable,\n editor,\n nodeKey,\n ],\n )\n\n useEffect(() => {\n return () => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n }\n }, [])\n\n const removeBlock = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey)?.remove()\n })\n }, [editor, nodeKey])\n\n const blockDisplayName = clientBlock?.labels?.singular\n ? getTranslation(clientBlock.labels.singular, i18n)\n : clientBlock?.slug\n\n const onCollapsedChange = useCallback(\n (changedCollapsed: boolean) => {\n void getDocPreferences().then((currentDocPreferences) => {\n const currentFieldPreferences =\n currentDocPreferences?.fields?.[parentLexicalRichTextField.name]\n\n const collapsedArray = currentFieldPreferences?.collapsed\n\n const newCollapsed: CollapsedPreferences =\n collapsedArray && collapsedArray?.length ? collapsedArray : []\n\n if (changedCollapsed) {\n if (!newCollapsed.includes(formData.id)) {\n newCollapsed.push(formData.id)\n }\n } else {\n if (newCollapsed.includes(formData.id)) {\n newCollapsed.splice(newCollapsed.indexOf(formData.id), 1)\n }\n }\n\n setDocFieldPreferences(parentLexicalRichTextField.name, {\n collapsed: newCollapsed,\n hello: 'hi',\n })\n })\n },\n [getDocPreferences, parentLexicalRichTextField.name, setDocFieldPreferences, formData.id],\n )\n\n const EditButton = useMemo(\n () => () => (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__editButton`}\n disabled={!isEditable}\n el=\"button\"\n icon=\"edit\"\n onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n toggleDrawer()\n return false\n }}\n onMouseDown={(e) => {\n // Needed to preserve lexical selection for toggleDrawer lexical selection restore.\n // I believe this is needed due to this button (usually) being inside of a collapsible.\n e.preventDefault()\n }}\n round\n size=\"small\"\n tooltip={t('lexical:blocks:inlineBlocks:edit', { label: blockDisplayName })}\n />\n ),\n [baseClass, isEditable, t, blockDisplayName, toggleDrawer],\n )\n\n const RemoveButton = useMemo(\n () => () => (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={!isEditable}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeBlock()\n }}\n round\n tooltip=\"Remove Block\"\n />\n ),\n [baseClass, isEditable, removeBlock],\n )\n\n const BlockCollapsible = useMemo(\n () =>\n ({\n Actions,\n children,\n className,\n collapsibleProps,\n disableBlockName,\n editButton,\n errorCount,\n fieldHasErrors,\n Label,\n Pill: CustomPill,\n removeButton,\n }: BlockCollapsibleWithErrorProps) => {\n return (\n <div className={`${baseClass}__container ${baseClass}-${blockType}`}>\n <Collapsible\n className={[\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n header={\n <div className={`${baseClass}__block-header`}>\n {typeof Label !== 'undefined' ? (\n Label\n ) : typeof CustomLabel !== 'undefined' ? (\n CustomLabel\n ) : (\n <div className={`${baseClass}__block-label`}>\n {typeof CustomPill !== 'undefined' ? (\n CustomPill\n ) : (\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${blockType}`}\n pillStyle=\"white\"\n size=\"small\"\n >\n {blockDisplayName ?? blockType}\n </Pill>\n )}\n {!disableBlockName && !clientBlock?.admin?.disableBlockName && (\n <SectionTitle path=\"blockName\" readOnly={!isEditable} />\n )}\n\n {fieldHasErrors && (\n <ErrorPill count={errorCount ?? 0} i18n={i18n} withMessage />\n )}\n </div>\n )}\n\n <div className={`${baseClass}__block-actions`}>\n {typeof Actions !== 'undefined' ? (\n Actions\n ) : (\n <>\n {(CustomBlock && editButton !== false) || (!CustomBlock && editButton) ? (\n <EditButton />\n ) : null}\n {removeButton !== false && isEditable ? <RemoveButton /> : null}\n </>\n )}\n </div>\n </div>\n }\n isCollapsed={isCollapsed}\n key={0}\n onToggle={(incomingCollapsedState) => {\n onCollapsedChange(incomingCollapsedState)\n setIsCollapsed(incomingCollapsedState)\n }}\n {...(collapsibleProps || {})}\n >\n {children}\n </Collapsible>\n </div>\n )\n },\n [\n CustomBlock,\n CustomLabel,\n EditButton,\n RemoveButton,\n blockDisplayName,\n baseClass,\n clientBlock?.admin?.disableBlockName,\n blockType,\n i18n,\n isCollapsed,\n onCollapsedChange,\n isEditable,\n ],\n )\n\n const blockID = formData?.id\n\n const BlockDrawer = useMemo(\n () => () => (\n <EditDepthProvider>\n <Drawer\n className={''}\n slug={drawerSlug}\n title={t(`lexical:blocks:inlineBlocks:${blockID ? 'edit' : 'create'}`, {\n label: blockDisplayName ?? t('lexical:blocks:inlineBlocks:label'),\n })}\n >\n {initialState ? (\n <>\n <RenderFields\n fields={clientBlock?.fields ?? []}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\" // See Blocks feature path for details as for why this is empty\n parentSchemaPath={schemaFieldsPath}\n permissions={true}\n readOnly={!isEditable}\n />\n <FormSubmit programmaticSubmit={true}>{t('fields:saveChanges')}</FormSubmit>\n </>\n ) : null}\n </Drawer>\n </EditDepthProvider>\n ),\n [\n initialState,\n drawerSlug,\n blockID,\n blockDisplayName,\n t,\n isEditable,\n clientBlock?.fields,\n schemaFieldsPath,\n // DO NOT ADD FORMDATA HERE! Adding formData will kick you out of sub block editors while writing.\n ],\n )\n\n // Memoized Form JSX\n const Block = useMemo(() => {\n if (!initialState) {\n return null\n }\n return (\n <Form\n beforeSubmit={[\n async ({ formState }) => {\n // This is only called when form is submitted from drawer - usually only the case if the block has a custom Block component\n return await onChange({ formState, submit: true })\n },\n ]}\n el=\"div\"\n fields={clientBlock?.fields ?? []}\n initialState={initialState}\n onChange={[onChange]}\n onSubmit={(formState, newData) => {\n // This is only called when form is submitted from drawer - usually only the case if the block has a custom Block component\n newData.blockType = blockType\n editor.update(() => {\n const node = $getNodeByKey(nodeKey)\n if (node && $isBlockNode(node)) {\n node.setFields(newData as BlockFields, true)\n }\n })\n toggleDrawer()\n }}\n submitted={submitted}\n uuid={uuid()}\n >\n <BlockContent\n baseClass={baseClass}\n BlockDrawer={BlockDrawer}\n Collapsible={BlockCollapsible}\n CustomBlock={CustomBlock}\n EditButton={EditButton}\n errorCount={errorCount}\n formSchema={clientBlock?.fields ?? []}\n initialState={initialState}\n nodeKey={nodeKey}\n RemoveButton={RemoveButton}\n />\n </Form>\n )\n }, [\n BlockCollapsible,\n BlockDrawer,\n CustomBlock,\n blockType,\n RemoveButton,\n EditButton,\n baseClass,\n editor,\n errorCount,\n toggleDrawer,\n clientBlock?.fields,\n // DO NOT ADD FORMDATA HERE! Adding formData will kick you out of sub block editors while writing.\n initialState,\n nodeKey,\n onChange,\n submitted,\n ])\n\n if (!clientBlock) {\n return (\n <BlockCollapsible disableBlockName={true} fieldHasErrors={true}>\n <div className={`${baseClass}-not-found`}>\n Error: Block '{blockType}' not found in the config but exists in the lexical data\n </div>\n </BlockCollapsible>\n )\n }\n\n return Block\n}\n"],"names":["useLexicalComposerContext","useLexicalEditable","getTranslation","Button","Collapsible","Drawer","EditDepthProvider","ErrorPill","Form","formatDrawerSlug","FormSubmit","Pill","RenderFields","SectionTitle","useConfig","useDocumentForm","useDocumentInfo","useEditDepth","useFormSubmitted","useServerFunctions","useTranslation","abortAndIgnore","$getNodeByKey","deepCopyObjectSimpleWithoutReactComponents","reduceFieldsToValues","React","useCallback","useEffect","useMemo","useRef","v4","uuid","useEditorConfigContext","useLexicalDrawer","$isBlockNode","BlockContent","removeEmptyArrayValues","BlockComponent","props","cacheBuster","className","baseClass","formData","nodeKey","submitted","id","collectionSlug","globalSlug","fieldProps","featureClientSchemaMap","field","parentLexicalRichTextField","initialLexicalFormState","schemaPath","uuidFromContext","fields","parentDocumentFields","onChangeAbortControllerRef","AbortController","editDepth","errorCount","setErrorCount","useState","config","drawerSlug","slug","depth","toggleDrawer","getDocPreferences","setDocFieldPreferences","editor","isEditable","blockType","getFormState","schemaFieldsPath","initialState","setInitialState","cachedFormState","formState","mergedState","Object","fromEntries","entries","map","fieldName","fieldState","initialValue","value","blockName","passesCondition","valid","hasMounted","prevCacheBuster","current","CustomLabel","setCustomLabel","customComponents","BlockLabel","undefined","CustomBlock","setCustomBlock","Block","abortController","awaitInitialState","state","data","docPermissions","docPreferences","documentFormState","initialBlockData","operation","readOnly","renderAllFields","signal","newFormStateData","update","node","newData","setFields","_components","isCollapsed","setIsCollapsed","collapsed","componentMapRenderedBlockPath","clientSchemaMap","blocksField","clientBlock","blockReferences","blocksMap","blocks","i18n","t","onChange","prevFormState","submit","controller","newFormState","initialBlockFormState","setTimeout","rowErrorCount","formField","values","removeBlock","remove","blockDisplayName","labels","singular","onCollapsedChange","changedCollapsed","then","currentDocPreferences","currentFieldPreferences","name","collapsedArray","newCollapsed","length","includes","push","splice","indexOf","hello","EditButton","buttonStyle","disabled","el","icon","onClick","e","preventDefault","stopPropagation","onMouseDown","round","size","tooltip","label","RemoveButton","BlockCollapsible","Actions","children","collapsibleProps","disableBlockName","editButton","fieldHasErrors","Label","CustomPill","removeButton","div","filter","Boolean","join","collapsibleStyle","header","pillStyle","admin","path","count","withMessage","onToggle","incomingCollapsedState","blockID","BlockDrawer","title","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions","programmaticSubmit","beforeSubmit","onSubmit","formSchema"],"mappings":"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"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
@import '~@payloadcms/ui/scss';
|
|
2
|
+
|
|
3
|
+
@layer payload-default {
|
|
4
|
+
.LexicalEditorTheme__block {
|
|
5
|
+
@extend %body;
|
|
6
|
+
margin-block: base(0.4);
|
|
7
|
+
// Fixes a bug where, if the block field has a Select field, the Select field's dropdown menu would be hidden behind the lexical editor.
|
|
8
|
+
z-index: 1;
|
|
9
|
+
color: var(--theme-text);
|
|
10
|
+
|
|
11
|
+
&[data-lexical-decorator='true'] {
|
|
12
|
+
// Increase specifity
|
|
13
|
+
width: auto;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&__container {
|
|
17
|
+
display: flex;
|
|
18
|
+
flex-direction: column;
|
|
19
|
+
gap: calc(var(--base) / 2);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&__row {
|
|
23
|
+
.collapsible__toggle-wrap {
|
|
24
|
+
padding-inline-start: base(0.4);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
&__header {
|
|
29
|
+
h3 {
|
|
30
|
+
margin: 0;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&__header-wrap {
|
|
35
|
+
display: flex;
|
|
36
|
+
align-items: flex-end;
|
|
37
|
+
width: 100%;
|
|
38
|
+
justify-content: space-between;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
&__heading-with-error {
|
|
42
|
+
display: flex;
|
|
43
|
+
align-items: center;
|
|
44
|
+
gap: calc(var(--base) * 0.5);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&--has-no-error {
|
|
48
|
+
> .array-field__header .array-field__heading-with-error {
|
|
49
|
+
color: var(--theme-text);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
&--has-error {
|
|
54
|
+
> .array-field__header {
|
|
55
|
+
color: var(--theme-error-500);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
&__error-pill {
|
|
60
|
+
align-self: center;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
&__header-actions {
|
|
64
|
+
list-style: none;
|
|
65
|
+
margin: 0;
|
|
66
|
+
padding: 0;
|
|
67
|
+
display: flex;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
&__header-action {
|
|
71
|
+
@extend %btn-reset;
|
|
72
|
+
cursor: pointer;
|
|
73
|
+
margin-left: calc(var(--base) * 0.5);
|
|
74
|
+
|
|
75
|
+
&:hover,
|
|
76
|
+
&:focus-visible {
|
|
77
|
+
text-decoration: underline;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.collapsible {
|
|
82
|
+
&__header-wrap {
|
|
83
|
+
// Make more space for the block header (default right: is `calc(var(--base) * 3)`) so that the remove button aligns nicely to the right
|
|
84
|
+
right: calc(var(--base) * 1.5);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
&__removeButton.btn {
|
|
89
|
+
margin: 0;
|
|
90
|
+
&:hover {
|
|
91
|
+
background-color: var(--theme-elevation-200);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
&__editButton.btn {
|
|
96
|
+
margin: 0;
|
|
97
|
+
width: 24px;
|
|
98
|
+
|
|
99
|
+
&:hover {
|
|
100
|
+
background-color: var(--theme-elevation-200);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
&__block-header {
|
|
105
|
+
pointer-events: none;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
&__block-header * {
|
|
109
|
+
pointer-events: all;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
&__block-header,
|
|
113
|
+
&__block-header > div:first-child {
|
|
114
|
+
display: flex;
|
|
115
|
+
max-width: 100%;
|
|
116
|
+
width: 100%;
|
|
117
|
+
overflow: hidden;
|
|
118
|
+
gap: calc(var(--base) * 0.375);
|
|
119
|
+
justify-content: flex-start;
|
|
120
|
+
pointer-events: none;
|
|
121
|
+
|
|
122
|
+
& > * {
|
|
123
|
+
pointer-events: all;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
&__block-header > div:nth-child(2) {
|
|
128
|
+
display: flex;
|
|
129
|
+
justify-content: flex-end;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
&__block-number {
|
|
133
|
+
flex-shrink: 0;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
&__block-pill {
|
|
137
|
+
flex-shrink: 0;
|
|
138
|
+
display: block;
|
|
139
|
+
line-height: unset;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
&__rows {
|
|
143
|
+
display: flex;
|
|
144
|
+
flex-direction: column;
|
|
145
|
+
gap: calc(var(--base) / 2);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
&__drawer-toggler {
|
|
149
|
+
background-color: transparent;
|
|
150
|
+
margin: 0;
|
|
151
|
+
padding: 0;
|
|
152
|
+
border: none;
|
|
153
|
+
align-self: flex-start;
|
|
154
|
+
|
|
155
|
+
.btn {
|
|
156
|
+
color: var(--theme-elevation-400);
|
|
157
|
+
margin: 0;
|
|
158
|
+
|
|
159
|
+
&:hover {
|
|
160
|
+
color: var(--theme-elevation-800);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
&-not-found {
|
|
166
|
+
color: var(--theme-error-500);
|
|
167
|
+
font-size: 1.1rem;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
html[data-theme='light'] {
|
|
172
|
+
.blocks-field--has-error {
|
|
173
|
+
.section-title__input,
|
|
174
|
+
.blocks-field__heading-with-error {
|
|
175
|
+
color: var(--theme-error-750);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
html[data-theme='dark'] {
|
|
181
|
+
.blocks-field--has-error {
|
|
182
|
+
.section-title__input,
|
|
183
|
+
.blocks-field__heading-with-error {
|
|
184
|
+
color: var(--theme-error-500);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { useInlineBlockComponentContext } from '../index.js';
|
|
5
5
|
export const InlineBlockContainer = ({ children })=>{
|
|
6
6
|
const { InlineBlockContainer } = useInlineBlockComponentContext();
|
|
7
|
-
return InlineBlockContainer ? /*#__PURE__*/
|
|
7
|
+
return InlineBlockContainer ? /*#__PURE__*/ _jsxDEV(InlineBlockContainer, {
|
|
8
8
|
children: children
|
|
9
|
-
}
|
|
9
|
+
}, void 0, false, {
|
|
10
|
+
fileName: "src/features/blocks/client/componentInline/components/InlineBlockContainer.tsx",
|
|
11
|
+
lineNumber: 9,
|
|
12
|
+
columnNumber: 33
|
|
13
|
+
}, this) : null;
|
|
10
14
|
};
|
|
11
15
|
|
|
12
16
|
//# sourceMappingURL=InlineBlockContainer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/features/blocks/client/componentInline/components/InlineBlockContainer.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { useInlineBlockComponentContext } from '../index.js'\n\nexport const InlineBlockContainer = ({ children }: { children: React.ReactNode }) => {\n const { InlineBlockContainer } = useInlineBlockComponentContext()\n\n return InlineBlockContainer ? <InlineBlockContainer>{children}</InlineBlockContainer> : null\n}\n"],"names":["React","useInlineBlockComponentContext","InlineBlockContainer","children"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,8BAA8B,QAAQ,cAAa;AAE5D,OAAO,MAAMC,uBAAuB,CAAC,EAAEC,QAAQ,EAAiC;IAC9E,MAAM,EAAED,oBAAoB,EAAE,GAAGD;IAEjC,OAAOC,qCAAuB,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/features/blocks/client/componentInline/components/InlineBlockContainer.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { useInlineBlockComponentContext } from '../index.js'\n\nexport const InlineBlockContainer = ({ children }: { children: React.ReactNode }) => {\n const { InlineBlockContainer } = useInlineBlockComponentContext()\n\n return InlineBlockContainer ? <InlineBlockContainer>{children}</InlineBlockContainer> : null\n}\n"],"names":["React","useInlineBlockComponentContext","InlineBlockContainer","children"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,8BAA8B,QAAQ,cAAa;AAE5D,OAAO,MAAMC,uBAAuB,CAAC,EAAEC,QAAQ,EAAiC;IAC9E,MAAM,EAAED,oBAAoB,EAAE,GAAGD;IAEjC,OAAOC,qCAAuB,QAACA;kBAAsBC;;;;;eAAmC;AAC1F,EAAC"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { useInlineBlockComponentContext } from '../index.js';
|
|
5
5
|
export const InlineBlockEditButton = ()=>{
|
|
6
6
|
const { EditButton } = useInlineBlockComponentContext();
|
|
7
|
-
return EditButton ? /*#__PURE__*/
|
|
7
|
+
return EditButton ? /*#__PURE__*/ _jsxDEV(EditButton, {}, void 0, false, {
|
|
8
|
+
fileName: "src/features/blocks/client/componentInline/components/InlineBlockEditButton.tsx",
|
|
9
|
+
lineNumber: 9,
|
|
10
|
+
columnNumber: 23
|
|
11
|
+
}, this) : null;
|
|
8
12
|
};
|
|
9
13
|
|
|
10
14
|
//# sourceMappingURL=InlineBlockEditButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/features/blocks/client/componentInline/components/InlineBlockEditButton.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { useInlineBlockComponentContext } from '../index.js'\n\nexport const InlineBlockEditButton = () => {\n const { EditButton } = useInlineBlockComponentContext()\n\n return EditButton ? <EditButton /> : null\n}\n"],"names":["React","useInlineBlockComponentContext","InlineBlockEditButton","EditButton"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,8BAA8B,QAAQ,cAAa;AAE5D,OAAO,MAAMC,wBAAwB;IACnC,MAAM,EAAEC,UAAU,EAAE,GAAGF;IAEvB,OAAOE,2BAAa,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/features/blocks/client/componentInline/components/InlineBlockEditButton.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { useInlineBlockComponentContext } from '../index.js'\n\nexport const InlineBlockEditButton = () => {\n const { EditButton } = useInlineBlockComponentContext()\n\n return EditButton ? <EditButton /> : null\n}\n"],"names":["React","useInlineBlockComponentContext","InlineBlockEditButton","EditButton"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,8BAA8B,QAAQ,cAAa;AAE5D,OAAO,MAAMC,wBAAwB;IACnC,MAAM,EAAEC,UAAU,EAAE,GAAGF;IAEvB,OAAOE,2BAAa,QAACA;;;;eAAgB;AACvC,EAAC"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { useInlineBlockComponentContext } from '../index.js';
|
|
5
5
|
export const InlineBlockLabel = ()=>{
|
|
6
6
|
const { Label } = useInlineBlockComponentContext();
|
|
7
|
-
return Label ? /*#__PURE__*/
|
|
7
|
+
return Label ? /*#__PURE__*/ _jsxDEV(Label, {}, void 0, false, {
|
|
8
|
+
fileName: "src/features/blocks/client/componentInline/components/InlineBlockLabel.tsx",
|
|
9
|
+
lineNumber: 9,
|
|
10
|
+
columnNumber: 18
|
|
11
|
+
}, this) : null;
|
|
8
12
|
};
|
|
9
13
|
|
|
10
14
|
//# sourceMappingURL=InlineBlockLabel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/features/blocks/client/componentInline/components/InlineBlockLabel.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { useInlineBlockComponentContext } from '../index.js'\n\nexport const InlineBlockLabel = () => {\n const { Label } = useInlineBlockComponentContext()\n\n return Label ? <Label /> : null\n}\n"],"names":["React","useInlineBlockComponentContext","InlineBlockLabel","Label"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,8BAA8B,QAAQ,cAAa;AAE5D,OAAO,MAAMC,mBAAmB;IAC9B,MAAM,EAAEC,KAAK,EAAE,GAAGF;IAElB,OAAOE,sBAAQ,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/features/blocks/client/componentInline/components/InlineBlockLabel.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { useInlineBlockComponentContext } from '../index.js'\n\nexport const InlineBlockLabel = () => {\n const { Label } = useInlineBlockComponentContext()\n\n return Label ? <Label /> : null\n}\n"],"names":["React","useInlineBlockComponentContext","InlineBlockLabel","Label"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,8BAA8B,QAAQ,cAAa;AAE5D,OAAO,MAAMC,mBAAmB;IAC9B,MAAM,EAAEC,KAAK,EAAE,GAAGF;IAElB,OAAOE,sBAAQ,QAACA;;;;eAAW;AAC7B,EAAC"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { useInlineBlockComponentContext } from '../index.js';
|
|
5
5
|
export const InlineBlockRemoveButton = ()=>{
|
|
6
6
|
const { RemoveButton } = useInlineBlockComponentContext();
|
|
7
|
-
return RemoveButton ? /*#__PURE__*/
|
|
7
|
+
return RemoveButton ? /*#__PURE__*/ _jsxDEV(RemoveButton, {}, void 0, false, {
|
|
8
|
+
fileName: "src/features/blocks/client/componentInline/components/InlineBlockRemoveButton.tsx",
|
|
9
|
+
lineNumber: 9,
|
|
10
|
+
columnNumber: 25
|
|
11
|
+
}, this) : null;
|
|
8
12
|
};
|
|
9
13
|
|
|
10
14
|
//# sourceMappingURL=InlineBlockRemoveButton.js.map
|
package/dist/features/blocks/client/componentInline/components/InlineBlockRemoveButton.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/features/blocks/client/componentInline/components/InlineBlockRemoveButton.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { useInlineBlockComponentContext } from '../index.js'\n\nexport const InlineBlockRemoveButton = () => {\n const { RemoveButton } = useInlineBlockComponentContext()\n\n return RemoveButton ? <RemoveButton /> : null\n}\n"],"names":["React","useInlineBlockComponentContext","InlineBlockRemoveButton","RemoveButton"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,8BAA8B,QAAQ,cAAa;AAE5D,OAAO,MAAMC,0BAA0B;IACrC,MAAM,EAAEC,YAAY,EAAE,GAAGF;IAEzB,OAAOE,6BAAe,
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/features/blocks/client/componentInline/components/InlineBlockRemoveButton.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { useInlineBlockComponentContext } from '../index.js'\n\nexport const InlineBlockRemoveButton = () => {\n const { RemoveButton } = useInlineBlockComponentContext()\n\n return RemoveButton ? <RemoveButton /> : null\n}\n"],"names":["React","useInlineBlockComponentContext","InlineBlockRemoveButton","RemoveButton"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,8BAA8B,QAAQ,cAAa;AAE5D,OAAO,MAAMC,0BAA0B;IACrC,MAAM,EAAEC,YAAY,EAAE,GAAGF;IAEzB,OAAOE,6BAAe,QAACA;;;;eAAkB;AAC3C,EAAC"}
|