@payloadcms/richtext-lexical 3.58.0 → 3.59.0-internal.56a1b3b

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.
Files changed (120) hide show
  1. package/dist/exports/client/{Field-U4WLAHNW.js → Field-2MCIQXRP.js} +2 -2
  2. package/dist/exports/client/bundled.css +1 -1
  3. package/dist/exports/client/chunk-K47TNP5J.js +2 -0
  4. package/dist/exports/client/chunk-K47TNP5J.js.map +7 -0
  5. package/dist/exports/client/chunk-TLQLXR6Q.js +12 -0
  6. package/dist/exports/client/chunk-TLQLXR6Q.js.map +7 -0
  7. package/dist/exports/client/componentInline-AGFSKAY4.js +2 -0
  8. package/dist/exports/client/index.d.ts +3 -0
  9. package/dist/exports/client/index.d.ts.map +1 -1
  10. package/dist/exports/client/index.js +35 -10
  11. package/dist/exports/client/index.js.map +4 -4
  12. package/dist/features/blocks/client/component/BlockContent.d.ts +52 -27
  13. package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -1
  14. package/dist/features/blocks/client/component/BlockContent.js +45 -51
  15. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  16. package/dist/features/blocks/client/component/components/BlockCollapsible.d.ts +2 -9
  17. package/dist/features/blocks/client/component/components/BlockCollapsible.d.ts.map +1 -1
  18. package/dist/features/blocks/client/component/components/BlockCollapsible.js +7 -25
  19. package/dist/features/blocks/client/component/components/BlockCollapsible.js.map +1 -1
  20. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  21. package/dist/features/blocks/client/component/index.js +62 -50
  22. package/dist/features/blocks/client/component/index.js.map +1 -1
  23. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  24. package/dist/features/blocks/client/componentInline/index.js +0 -1
  25. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  26. package/dist/features/blocks/client/index.d.ts.map +1 -1
  27. package/dist/features/blocks/client/index.js +5 -0
  28. package/dist/features/blocks/client/index.js.map +1 -1
  29. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts +6 -0
  30. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.d.ts.map +1 -0
  31. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js +24 -0
  32. package/dist/features/blocks/client/markdown/getLexicalToMarkdown.js.map +1 -0
  33. package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts +6 -0
  34. package/dist/features/blocks/client/markdown/getMarkdownToLexical.d.ts.map +1 -0
  35. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js +20 -0
  36. package/dist/features/blocks/client/markdown/getMarkdownToLexical.js.map +1 -0
  37. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts +12 -0
  38. package/dist/features/blocks/client/markdown/markdownTransformer.d.ts.map +1 -0
  39. package/dist/features/blocks/client/markdown/markdownTransformer.js +348 -0
  40. package/dist/features/blocks/client/markdown/markdownTransformer.js.map +1 -0
  41. package/dist/features/blocks/premade/CodeBlock/Component/Block.d.ts +5 -0
  42. package/dist/features/blocks/premade/CodeBlock/Component/Block.d.ts.map +1 -0
  43. package/dist/features/blocks/premade/CodeBlock/Component/Block.js +149 -0
  44. package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -0
  45. package/dist/features/blocks/premade/CodeBlock/Component/Code.d.ts +53 -0
  46. package/dist/features/blocks/premade/CodeBlock/Component/Code.d.ts.map +1 -0
  47. package/dist/features/blocks/premade/CodeBlock/Component/Code.js +84 -0
  48. package/dist/features/blocks/premade/CodeBlock/Component/Code.js.map +1 -0
  49. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.d.ts +4 -0
  50. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.d.ts.map +1 -0
  51. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js +17 -0
  52. package/dist/features/blocks/premade/CodeBlock/Component/Collapse/index.js.map +1 -0
  53. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.d.ts +4 -0
  54. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.d.ts.map +1 -0
  55. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js +26 -0
  56. package/dist/features/blocks/premade/CodeBlock/Component/FloatingCollapse/index.js.map +1 -0
  57. package/dist/features/blocks/premade/CodeBlock/converter.d.ts +7 -0
  58. package/dist/features/blocks/premade/CodeBlock/converter.d.ts.map +1 -0
  59. package/dist/features/blocks/premade/CodeBlock/converter.js +46 -0
  60. package/dist/features/blocks/premade/CodeBlock/converter.js.map +1 -0
  61. package/dist/features/blocks/premade/CodeBlock/converterClient.d.ts +2 -0
  62. package/dist/features/blocks/premade/CodeBlock/converterClient.d.ts.map +1 -0
  63. package/dist/features/blocks/premade/CodeBlock/converterClient.js +4 -0
  64. package/dist/features/blocks/premade/CodeBlock/converterClient.js.map +1 -0
  65. package/dist/features/blocks/premade/CodeBlock/index.d.ts +7 -0
  66. package/dist/features/blocks/premade/CodeBlock/index.d.ts.map +1 -0
  67. package/dist/features/blocks/premade/CodeBlock/index.js +52 -0
  68. package/dist/features/blocks/premade/CodeBlock/index.js.map +1 -0
  69. package/dist/features/blocks/server/index.js +1 -1
  70. package/dist/features/blocks/server/index.js.map +1 -1
  71. package/dist/features/blocks/server/markdown/getLexicalToMarkdown.d.ts +6 -0
  72. package/dist/features/blocks/server/markdown/getLexicalToMarkdown.d.ts.map +1 -0
  73. package/dist/features/blocks/server/markdown/getLexicalToMarkdown.js +27 -0
  74. package/dist/features/blocks/server/markdown/getLexicalToMarkdown.js.map +1 -0
  75. package/dist/features/blocks/server/markdown/getMarkdownToLexical.d.ts +7 -0
  76. package/dist/features/blocks/server/markdown/getMarkdownToLexical.d.ts.map +1 -0
  77. package/dist/features/blocks/server/markdown/getMarkdownToLexical.js +22 -0
  78. package/dist/features/blocks/server/markdown/getMarkdownToLexical.js.map +1 -0
  79. package/dist/features/blocks/server/markdown/linesFromMatchToContentAndPropsString.d.ts.map +1 -0
  80. package/dist/features/blocks/server/markdown/linesFromMatchToContentAndPropsString.js.map +1 -0
  81. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts +15 -0
  82. package/dist/features/blocks/server/markdown/markdownTransformer.d.ts.map +1 -0
  83. package/dist/features/blocks/server/{markdownTransformer.js → markdown/markdownTransformer.js} +6 -48
  84. package/dist/features/blocks/server/markdown/markdownTransformer.js.map +1 -0
  85. package/dist/field/bundled.css +1 -1
  86. package/dist/index.d.ts +1 -0
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js +1 -0
  89. package/dist/index.js.map +1 -1
  90. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -1
  91. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +5 -5
  92. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  93. package/dist/lexical/ui/icons/CodeBlock/index.d.ts.map +1 -1
  94. package/dist/lexical/ui/icons/CodeBlock/index.js +10 -15
  95. package/dist/lexical/ui/icons/CodeBlock/index.js.map +1 -1
  96. package/dist/lexical/ui/icons/Collapse/index.d.ts +3 -0
  97. package/dist/lexical/ui/icons/Collapse/index.d.ts.map +1 -0
  98. package/dist/lexical/ui/icons/Collapse/index.js +18 -0
  99. package/dist/lexical/ui/icons/Collapse/index.js.map +1 -0
  100. package/dist/utilities/jsx/collectTopLevelJSXInLines.js +2 -2
  101. package/dist/utilities/jsx/collectTopLevelJSXInLines.js.map +1 -1
  102. package/package.json +7 -7
  103. package/dist/exports/client/chunk-3BY5IZJD.js +0 -2
  104. package/dist/exports/client/chunk-3BY5IZJD.js.map +0 -7
  105. package/dist/exports/client/chunk-YCH4JNUH.js +0 -12
  106. package/dist/exports/client/chunk-YCH4JNUH.js.map +0 -7
  107. package/dist/exports/client/componentInline-7TPI7ZBC.js +0 -2
  108. package/dist/features/blocks/client/markdownTransformer.d.ts +0 -17
  109. package/dist/features/blocks/client/markdownTransformer.d.ts.map +0 -1
  110. package/dist/features/blocks/client/markdownTransformer.js +0 -144
  111. package/dist/features/blocks/client/markdownTransformer.js.map +0 -1
  112. package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.d.ts.map +0 -1
  113. package/dist/features/blocks/server/linesFromMatchToContentAndPropsString.js.map +0 -1
  114. package/dist/features/blocks/server/markdownTransformer.d.ts +0 -22
  115. package/dist/features/blocks/server/markdownTransformer.d.ts.map +0 -1
  116. package/dist/features/blocks/server/markdownTransformer.js.map +0 -1
  117. /package/dist/exports/client/{Field-U4WLAHNW.js.map → Field-2MCIQXRP.js.map} +0 -0
  118. /package/dist/exports/client/{componentInline-7TPI7ZBC.js.map → componentInline-AGFSKAY4.js.map} +0 -0
  119. /package/dist/features/blocks/server/{linesFromMatchToContentAndPropsString.d.ts → markdown/linesFromMatchToContentAndPropsString.d.ts} +0 -0
  120. /package/dist/features/blocks/server/{linesFromMatchToContentAndPropsString.js → markdown/linesFromMatchToContentAndPropsString.js} +0 -0
@@ -1,19 +1,56 @@
1
+ import type { CollapsibleProps } from '@payloadcms/ui/elements/Collapsible';
1
2
  import type { ClientField, FormState } from 'payload';
2
3
  import React from 'react';
3
- type Props = {
4
+ export type BlockCollapsibleProps = {
5
+ /**
6
+ * Replace the top-right portion of the header that renders the Edit and Remove buttons with custom content.
7
+ * If this property is provided, the `removeButton` and `editButton` properties are ignored.
8
+ */
9
+ Actions?: React.ReactNode;
10
+ children?: React.ReactNode;
11
+ /**
12
+ * Additional className to the collapsible wrapper
13
+ */
14
+ className?: string;
15
+ /**
16
+ * Props to pass to the underlying Collapsible component. You could use this to override the `Header` entirely, for example.
17
+ */
18
+ collapsibleProps?: Partial<CollapsibleProps>;
19
+ /**
20
+ * Whether to disable rendering the block name field in the header Label
21
+ * @default false
22
+ */
23
+ disableBlockName?: boolean;
24
+ /**
25
+ * Whether to show the Edit button
26
+ * If `Actions` is provided, this property is ignored.
27
+ * @default true
28
+ */
29
+ editButton?: boolean;
30
+ /**
31
+ * Replace the default Label component with a custom Label
32
+ */
33
+ Label?: React.ReactNode;
34
+ /**
35
+ * Replace the default Pill component component that's rendered within the default Label component with a custom Pill.
36
+ * This property has no effect if you provide a custom Label component via the `Label` property.
37
+ */
38
+ Pill?: React.ReactNode;
39
+ /**
40
+ * Whether to show the Remove button
41
+ * If `Actions` is provided, this property is ignored.
42
+ * @default true
43
+ */
44
+ removeButton?: boolean;
45
+ };
46
+ export type BlockCollapsibleWithErrorProps = {
47
+ errorCount?: number;
48
+ fieldHasErrors?: boolean;
49
+ } & BlockCollapsibleProps;
50
+ export type BlockContentProps = {
4
51
  baseClass: string;
5
52
  BlockDrawer: React.FC;
6
- Collapsible: React.FC<{
7
- children?: React.ReactNode;
8
- editButton?: boolean;
9
- errorCount?: number;
10
- fieldHasErrors?: boolean;
11
- /**
12
- * Override the default label with a custom label
13
- */
14
- Label?: React.ReactNode;
15
- removeButton?: boolean;
16
- }>;
53
+ Collapsible: React.FC<BlockCollapsibleWithErrorProps>;
17
54
  CustomBlock: React.ReactNode;
18
55
  EditButton: React.FC;
19
56
  errorCount: number;
@@ -23,26 +60,14 @@ type Props = {
23
60
  RemoveButton: React.FC;
24
61
  };
25
62
  type BlockComponentContextType = {
26
- BlockCollapsible?: React.FC<{
27
- children?: React.ReactNode;
28
- editButton?: boolean;
29
- /**
30
- * Override the default label with a custom label
31
- */
32
- Label?: React.ReactNode;
33
- removeButton?: boolean;
34
- }>;
35
- EditButton?: React.FC;
36
- initialState: false | FormState | undefined;
37
- nodeKey?: string;
38
- RemoveButton?: React.FC;
39
- };
63
+ BlockCollapsible: React.FC<BlockCollapsibleProps>;
64
+ } & Omit<BlockContentProps, 'Collapsible'>;
40
65
  export declare const useBlockComponentContext: () => BlockComponentContextType;
41
66
  /**
42
67
  * The actual content of the Block. This should be INSIDE a Form component,
43
68
  * scoped to the block. All format operations in here are thus scoped to the block's form, and
44
69
  * not the whole document.
45
70
  */
46
- export declare const BlockContent: React.FC<Props>;
71
+ export declare const BlockContent: React.FC<BlockContentProps>;
47
72
  export {};
48
73
  //# sourceMappingURL=BlockContent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockContent.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/client/component/BlockContent.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGrD,OAAO,KAAiC,MAAM,OAAO,CAAA;AAErD,KAAK,KAAK,GAAG;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,KAAK,CAAC,EAAE,CAAA;IACrB,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB;;WAEG;QACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACvB,YAAY,CAAC,EAAE,OAAO,CAAA;KACvB,CAAC,CAAA;IACF,WAAW,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B,UAAU,EAAE,KAAK,CAAC,EAAE,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,WAAW,EAAE,CAAA;IACzB,YAAY,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,CAAA;IAE3C,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,KAAK,CAAC,EAAE,CAAA;CACvB,CAAA;AAED,KAAK,yBAAyB,GAAG;IAC/B,gBAAgB,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB;;WAEG;QACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACvB,YAAY,CAAC,EAAE,OAAO,CAAA;KACvB,CAAC,CAAA;IACF,UAAU,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;IACrB,YAAY,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,CAAA;IAE3C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;CACxB,CAAA;AAMD,eAAO,MAAM,wBAAwB,iCAAyC,CAAA;AAE9E;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAmExC,CAAA"}
1
+ {"version":3,"file":"BlockContent.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/client/component/BlockContent.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGrD,OAAO,KAAiC,MAAM,OAAO,CAAA;AAErD,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC5C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,GAAG,qBAAqB,CAAA;AAEzB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,KAAK,CAAC,EAAE,CAAA;IACrB,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAA;IACrD,WAAW,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B,UAAU,EAAE,KAAK,CAAC,EAAE,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,WAAW,EAAE,CAAA;IACzB,YAAY,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,CAAA;IAE3C,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,KAAK,CAAC,EAAE,CAAA;CACvB,CAAA;AAED,KAAK,yBAAyB,GAAG;IAC/B,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAA;CAClD,GAAG,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAA;AAe1C,eAAO,MAAM,wBAAwB,iCAAyC,CAAA;AAE9E;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA2CpD,CAAA"}
@@ -5,7 +5,16 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { RenderFields, useFormSubmitted } from '@payloadcms/ui';
6
6
  import React, { createContext, useMemo } from 'react';
7
7
  const BlockComponentContext = /*#__PURE__*/createContext({
8
- initialState: false
8
+ baseClass: 'lexical-block',
9
+ BlockCollapsible: () => null,
10
+ BlockDrawer: () => null,
11
+ CustomBlock: null,
12
+ EditButton: () => null,
13
+ errorCount: 0,
14
+ formSchema: [],
15
+ initialState: false,
16
+ nodeKey: '',
17
+ RemoveButton: () => null
9
18
  });
10
19
  export const useBlockComponentContext = () => React.use(BlockComponentContext);
11
20
  /**
@@ -14,30 +23,33 @@ export const useBlockComponentContext = () => React.use(BlockComponentContext);
14
23
  * not the whole document.
15
24
  */
16
25
  export const BlockContent = props => {
17
- const $ = _c(13);
26
+ const $ = _c(4);
18
27
  const {
19
- BlockDrawer,
20
28
  Collapsible,
29
+ ...contextProps
30
+ } = props;
31
+ const {
32
+ BlockDrawer,
21
33
  CustomBlock,
22
- EditButton,
23
34
  errorCount,
24
- formSchema,
25
- initialState,
26
- nodeKey,
27
- RemoveButton
28
- } = props;
35
+ formSchema
36
+ } = contextProps;
29
37
  const hasSubmitted = useFormSubmitted();
30
38
  const fieldHasErrors = hasSubmitted && errorCount > 0;
31
39
  let t0;
32
40
  if ($[0] !== Collapsible || $[1] !== errorCount || $[2] !== fieldHasErrors) {
33
- t0 = props_0 => _jsx(Collapsible, {
34
- editButton: props_0.editButton,
35
- errorCount,
36
- fieldHasErrors,
37
- Label: props_0.Label,
38
- removeButton: props_0.removeButton,
39
- children: props_0.children
40
- });
41
+ t0 = props_0 => {
42
+ const {
43
+ children,
44
+ ...rest
45
+ } = props_0;
46
+ return _jsx(Collapsible, {
47
+ errorCount,
48
+ fieldHasErrors,
49
+ ...rest,
50
+ children
51
+ });
52
+ };
41
53
  $[0] = Collapsible;
42
54
  $[1] = errorCount;
43
55
  $[2] = fieldHasErrors;
@@ -46,39 +58,21 @@ export const BlockContent = props => {
46
58
  t0 = $[3];
47
59
  }
48
60
  const CollapsibleWithErrorProps = t0;
49
- let t1;
50
- if ($[4] !== BlockDrawer || $[5] !== CollapsibleWithErrorProps || $[6] !== CustomBlock || $[7] !== EditButton || $[8] !== RemoveButton || $[9] !== formSchema || $[10] !== initialState || $[11] !== nodeKey) {
51
- t1 = CustomBlock ? _jsxs(BlockComponentContext, {
52
- value: {
53
- BlockCollapsible: CollapsibleWithErrorProps,
54
- EditButton,
55
- initialState,
56
- nodeKey,
57
- RemoveButton
58
- },
59
- children: [CustomBlock, _jsx(BlockDrawer, {})]
60
- }) : _jsx(CollapsibleWithErrorProps, {
61
- children: _jsx(RenderFields, {
62
- fields: formSchema,
63
- forceRender: true,
64
- parentIndexPath: "",
65
- parentPath: "",
66
- parentSchemaPath: "",
67
- permissions: true
68
- })
69
- });
70
- $[4] = BlockDrawer;
71
- $[5] = CollapsibleWithErrorProps;
72
- $[6] = CustomBlock;
73
- $[7] = EditButton;
74
- $[8] = RemoveButton;
75
- $[9] = formSchema;
76
- $[10] = initialState;
77
- $[11] = nodeKey;
78
- $[12] = t1;
79
- } else {
80
- t1 = $[12];
81
- }
82
- return t1;
61
+ return CustomBlock ? _jsxs(BlockComponentContext, {
62
+ value: {
63
+ ...contextProps,
64
+ BlockCollapsible: CollapsibleWithErrorProps
65
+ },
66
+ children: [CustomBlock, _jsx(BlockDrawer, {})]
67
+ }) : _jsx(CollapsibleWithErrorProps, {
68
+ children: _jsx(RenderFields, {
69
+ fields: formSchema,
70
+ forceRender: true,
71
+ parentIndexPath: "",
72
+ parentPath: "",
73
+ parentSchemaPath: "",
74
+ permissions: true
75
+ })
76
+ });
83
77
  };
84
78
  //# sourceMappingURL=BlockContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockContent.js","names":["c","_c","RenderFields","useFormSubmitted","React","createContext","useMemo","BlockComponentContext","initialState","useBlockComponentContext","use","BlockContent","props","$","BlockDrawer","Collapsible","CustomBlock","EditButton","errorCount","formSchema","nodeKey","RemoveButton","hasSubmitted","fieldHasErrors","t0","props_0","_jsx","editButton","Label","removeButton","children","CollapsibleWithErrorProps","t1","_jsxs","value","BlockCollapsible","fields","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions"],"sources":["../../../../../src/features/blocks/client/component/BlockContent.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, FormState } from 'payload'\n\nimport { RenderFields, useFormSubmitted } from '@payloadcms/ui'\nimport React, { createContext, useMemo } from 'react'\n\ntype Props = {\n baseClass: string\n BlockDrawer: React.FC\n Collapsible: React.FC<{\n children?: React.ReactNode\n editButton?: boolean\n errorCount?: number\n fieldHasErrors?: boolean\n /**\n * Override the default label with a custom label\n */\n Label?: React.ReactNode\n removeButton?: boolean\n }>\n CustomBlock: React.ReactNode\n EditButton: React.FC\n errorCount: number\n formSchema: ClientField[]\n initialState: false | FormState | undefined\n\n nodeKey: string\n RemoveButton: React.FC\n}\n\ntype BlockComponentContextType = {\n BlockCollapsible?: React.FC<{\n children?: React.ReactNode\n editButton?: boolean\n /**\n * Override the default label with a custom label\n */\n Label?: React.ReactNode\n removeButton?: boolean\n }>\n EditButton?: React.FC\n initialState: false | FormState | undefined\n\n nodeKey?: string\n RemoveButton?: React.FC\n}\n\nconst BlockComponentContext = createContext<BlockComponentContextType>({\n initialState: false,\n})\n\nexport const useBlockComponentContext = () => React.use(BlockComponentContext)\n\n/**\n * The actual content of the Block. This should be INSIDE a Form component,\n * scoped to the block. All format operations in here are thus scoped to the block's form, and\n * not the whole document.\n */\nexport const BlockContent: React.FC<Props> = (props) => {\n const {\n BlockDrawer,\n Collapsible,\n CustomBlock,\n EditButton,\n errorCount,\n formSchema,\n initialState,\n nodeKey,\n RemoveButton,\n } = props\n\n const hasSubmitted = useFormSubmitted()\n\n const fieldHasErrors = hasSubmitted && errorCount > 0\n\n const CollapsibleWithErrorProps = useMemo(\n () =>\n (props: {\n children?: React.ReactNode\n editButton?: boolean\n\n /**\n * Override the default label with a custom label\n */\n Label?: React.ReactNode\n removeButton?: boolean\n }) => (\n <Collapsible\n editButton={props.editButton}\n errorCount={errorCount}\n fieldHasErrors={fieldHasErrors}\n Label={props.Label}\n removeButton={props.removeButton}\n >\n {props.children}\n </Collapsible>\n ),\n [Collapsible, fieldHasErrors, errorCount],\n )\n\n return CustomBlock ? (\n <BlockComponentContext\n value={{\n BlockCollapsible: CollapsibleWithErrorProps,\n EditButton,\n initialState,\n nodeKey,\n RemoveButton,\n }}\n >\n {CustomBlock}\n <BlockDrawer />\n </BlockComponentContext>\n ) : (\n <CollapsibleWithErrorProps>\n <RenderFields\n fields={formSchema}\n forceRender={true}\n parentIndexPath=\"\"\n parentPath={''}\n parentSchemaPath=\"\"\n permissions={true}\n />\n </CollapsibleWithErrorProps>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,YAAY,EAAEC,gBAAgB,QAAQ;AAC/C,OAAOC,KAAA,IAASC,aAAa,EAAEC,OAAO,QAAQ;AA2C9C,MAAMC,qBAAA,gBAAwBF,aAAA,CAAyC;EACrEG,YAAA,EAAc;AAChB;AAEA,OAAO,MAAMC,wBAAA,GAA2BA,CAAA,KAAML,KAAA,CAAMM,GAAG,CAACH,qBAAA;AAExD;;;;;AAKA,OAAO,MAAMI,YAAA,GAAgCC,KAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EAC3C;IAAAa,WAAA;IAAAC,WAAA;IAAAC,WAAA;IAAAC,UAAA;IAAAC,UAAA;IAAAC,UAAA;IAAAX,YAAA;IAAAY,OAAA;IAAAC;EAAA,IAUIT,KAAA;EAEJ,MAAAU,YAAA,GAAqBnB,gBAAA;EAErB,MAAAoB,cAAA,GAAuBD,YAAA,IAAgBJ,UAAA,IAAa;EAAA,IAAAM,EAAA;EAAA,IAAAX,CAAA,QAAAE,WAAA,IAAAF,CAAA,QAAAK,UAAA,IAAAL,CAAA,QAAAU,cAAA;IAIhDC,EAAA,GAAAC,OAAA,IAUEC,IAAA,CAACX,WAAA;MAAAY,UAAA,EACaf,OAAA,CAAAe,UAAA;MAAAT,UAAA;MAAAK,cAAA;MAAAK,KAAA,EAGLhB,OAAA,CAAAgB,KAAA;MAAAC,YAAA,EACOjB,OAAA,CAAAiB,YAAA;MAAAC,QAAA,EAEblB,OAAA,CAAAkB;IAAA,C;;;;;;;;EAnBT,MAAAC,yBAAA,GAEIP,E;EAoBuC,IAAAQ,EAAA;EAAA,IAAAnB,CAAA,QAAAC,WAAA,IAAAD,CAAA,QAAAkB,yBAAA,IAAAlB,CAAA,QAAAG,WAAA,IAAAH,CAAA,QAAAI,UAAA,IAAAJ,CAAA,QAAAQ,YAAA,IAAAR,CAAA,QAAAM,UAAA,IAAAN,CAAA,SAAAL,YAAA,IAAAK,CAAA,SAAAO,OAAA;IAGpCY,EAAA,GAAAhB,WAAA,GACLiB,KAAA,CAAA1B,qBAAA;MAAA2B,KAAA;QAAAC,gBAAA,EAEsBJ,yBAAA;QAAAd,UAAA;QAAAT,YAAA;QAAAY,OAAA;QAAAC;MAAA;MAAAS,QAAA,GAOnBd,WAAA,EACDU,IAAA,CAACZ,WAAA;IAAA,C,IAGHY,IAAA,CAACK,yBAAA;MAAAD,QAAA,EACCJ,IAAA,CAAAxB,YAAA;QAAAkC,MAAA,EACUjB,UAAA;QAAAkB,WAAA;QAAAC,eAAA,EAEQ;QAAAC,UAAA,EACJ;QAAAC,gBAAA,EACK;QAAAC,WAAA;MAAA,C;;;;;;;;;;;;;;SApBhBT,E;CAyBT","ignoreList":[]}
1
+ {"version":3,"file":"BlockContent.js","names":["c","_c","RenderFields","useFormSubmitted","React","createContext","useMemo","BlockComponentContext","baseClass","BlockCollapsible","BlockDrawer","CustomBlock","EditButton","errorCount","formSchema","initialState","nodeKey","RemoveButton","useBlockComponentContext","use","BlockContent","props","$","Collapsible","contextProps","hasSubmitted","fieldHasErrors","t0","props_0","children","rest","_jsx","CollapsibleWithErrorProps","_jsxs","value","fields","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions"],"sources":["../../../../../src/features/blocks/client/component/BlockContent.tsx"],"sourcesContent":["'use client'\nimport type { CollapsibleProps } from '@payloadcms/ui/elements/Collapsible'\nimport type { ClientField, FormState } from 'payload'\n\nimport { RenderFields, useFormSubmitted } from '@payloadcms/ui'\nimport React, { createContext, useMemo } from 'react'\n\nexport type BlockCollapsibleProps = {\n /**\n * Replace the top-right portion of the header that renders the Edit and Remove buttons with custom content.\n * If this property is provided, the `removeButton` and `editButton` properties are ignored.\n */\n Actions?: React.ReactNode\n children?: React.ReactNode\n /**\n * Additional className to the collapsible wrapper\n */\n className?: string\n /**\n * Props to pass to the underlying Collapsible component. You could use this to override the `Header` entirely, for example.\n */\n collapsibleProps?: Partial<CollapsibleProps>\n /**\n * Whether to disable rendering the block name field in the header Label\n * @default false\n */\n disableBlockName?: boolean\n /**\n * Whether to show the Edit button\n * If `Actions` is provided, this property is ignored.\n * @default true\n */\n editButton?: boolean\n /**\n * Replace the default Label component with a custom Label\n */\n Label?: React.ReactNode\n /**\n * Replace the default Pill component component that's rendered within the default Label component with a custom Pill.\n * This property has no effect if you provide a custom Label component via the `Label` property.\n */\n Pill?: React.ReactNode\n /**\n * Whether to show the Remove button\n * If `Actions` is provided, this property is ignored.\n * @default true\n */\n removeButton?: boolean\n}\n\nexport type BlockCollapsibleWithErrorProps = {\n errorCount?: number\n fieldHasErrors?: boolean\n} & BlockCollapsibleProps\n\nexport type BlockContentProps = {\n baseClass: string\n BlockDrawer: React.FC\n Collapsible: React.FC<BlockCollapsibleWithErrorProps>\n CustomBlock: React.ReactNode\n EditButton: React.FC\n errorCount: number\n formSchema: ClientField[]\n initialState: false | FormState | undefined\n\n nodeKey: string\n RemoveButton: React.FC\n}\n\ntype BlockComponentContextType = {\n BlockCollapsible: React.FC<BlockCollapsibleProps>\n} & Omit<BlockContentProps, 'Collapsible'>\n\nconst BlockComponentContext = createContext<BlockComponentContextType>({\n baseClass: 'lexical-block',\n BlockCollapsible: () => null,\n BlockDrawer: () => null,\n CustomBlock: null,\n EditButton: () => null,\n errorCount: 0,\n formSchema: [],\n initialState: false,\n nodeKey: '',\n RemoveButton: () => null,\n})\n\nexport const useBlockComponentContext = () => React.use(BlockComponentContext)\n\n/**\n * The actual content of the Block. This should be INSIDE a Form component,\n * scoped to the block. All format operations in here are thus scoped to the block's form, and\n * not the whole document.\n */\nexport const BlockContent: React.FC<BlockContentProps> = (props) => {\n const { Collapsible, ...contextProps } = props\n\n const { BlockDrawer, CustomBlock, errorCount, formSchema } = contextProps\n\n const hasSubmitted = useFormSubmitted()\n\n const fieldHasErrors = hasSubmitted && errorCount > 0\n\n const CollapsibleWithErrorProps = useMemo(\n () => (props: BlockCollapsibleProps) => {\n const { children, ...rest } = props\n return (\n <Collapsible errorCount={errorCount} fieldHasErrors={fieldHasErrors} {...rest}>\n {children}\n </Collapsible>\n )\n },\n [Collapsible, fieldHasErrors, errorCount],\n )\n\n return CustomBlock ? (\n <BlockComponentContext\n value={{\n ...contextProps,\n BlockCollapsible: CollapsibleWithErrorProps,\n }}\n >\n {CustomBlock}\n <BlockDrawer />\n </BlockComponentContext>\n ) : (\n <CollapsibleWithErrorProps>\n <RenderFields\n fields={formSchema}\n forceRender={true}\n parentIndexPath=\"\"\n parentPath={''}\n parentSchemaPath=\"\"\n permissions={true}\n />\n </CollapsibleWithErrorProps>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,SAASC,YAAY,EAAEC,gBAAgB,QAAQ;AAC/C,OAAOC,KAAA,IAASC,aAAa,EAAEC,OAAO,QAAQ;AAoE9C,MAAMC,qBAAA,gBAAwBF,aAAA,CAAyC;EACrEG,SAAA,EAAW;EACXC,gBAAA,EAAkBA,CAAA,KAAM;EACxBC,WAAA,EAAaA,CAAA,KAAM;EACnBC,WAAA,EAAa;EACbC,UAAA,EAAYA,CAAA,KAAM;EAClBC,UAAA,EAAY;EACZC,UAAA,EAAY,EAAE;EACdC,YAAA,EAAc;EACdC,OAAA,EAAS;EACTC,YAAA,EAAcA,CAAA,KAAM;AACtB;AAEA,OAAO,MAAMC,wBAAA,GAA2BA,CAAA,KAAMd,KAAA,CAAMe,GAAG,CAACZ,qBAAA;AAExD;;;;;AAKA,OAAO,MAAMa,YAAA,GAA4CC,KAAA;EAAA,MAAAC,CAAA,GAAArB,EAAA;EACvD;IAAAsB,WAAA;IAAA,GAAAC;EAAA,IAAyCH,KAAA;EAEzC;IAAAX,WAAA;IAAAC,WAAA;IAAAE,UAAA;IAAAC;EAAA,IAA6DU,YAAA;EAE7D,MAAAC,YAAA,GAAqBtB,gBAAA;EAErB,MAAAuB,cAAA,GAAuBD,YAAA,IAAgBZ,UAAA,IAAa;EAAA,IAAAc,EAAA;EAAA,IAAAL,CAAA,QAAAC,WAAA,IAAAD,CAAA,QAAAT,UAAA,IAAAS,CAAA,QAAAI,cAAA;IAG5CC,EAAA,GAAAC,OAAA;MACJ;QAAAC,QAAA;QAAA,GAAAC;MAAA,IAA8BT,OAAA;MAAA,OAE5BU,IAAA,CAACR,WAAA;QAAAV,UAAA;QAAAa,cAAA;QAAA,GAAwEI,IAAI;QAAAD;MAAA,C;;IAIjFP,CAAA,MAAAC,WAAA;IAAAD,CAAA,MAAAT,UAAA;IAAAS,CAAA,MAAAI,cAAA;IAAAJ,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EARF,MAAAU,yBAAA,GACQL,EAON;EACyC,OAGpChB,WAAA,GACLsB,KAAA,CAAA1B,qBAAA;IAAA2B,KAAA;MAAA,GAEOV,YAAY;MAAAf,gBAAA,EACGuB;IAAA;IAAAH,QAAA,GAGnBlB,WAAA,EACDoB,IAAA,CAACrB,WAAA;EAAA,C,IAGHqB,IAAA,CAACC,yBAAA;IAAAH,QAAA,EACCE,IAAA,CAAA7B,YAAA;MAAAiC,MAAA,EACUrB,UAAA;MAAAsB,WAAA;MAAAC,eAAA,EAEQ;MAAAC,UAAA,EACJ;MAAAC,gBAAA,EACK;MAAAC,WAAA;IAAA,C;;CAKzB","ignoreList":[]}
@@ -1,11 +1,4 @@
1
1
  import React from 'react';
2
- export declare const BlockCollapsible: React.FC<{
3
- children?: React.ReactNode;
4
- editButton?: boolean;
5
- /**
6
- * Override the default label with a custom label
7
- */
8
- Label?: React.ReactNode;
9
- removeButton?: boolean;
10
- }>;
2
+ import { type BlockCollapsibleProps } from '../BlockContent.js';
3
+ export declare const BlockCollapsible: React.FC<BlockCollapsibleProps>;
11
4
  //# sourceMappingURL=BlockCollapsible.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockCollapsible.d.ts","sourceRoot":"","sources":["../../../../../../src/features/blocks/client/component/components/BlockCollapsible.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAQA,CAAA"}
1
+ {"version":3,"file":"BlockCollapsible.d.ts","sourceRoot":"","sources":["../../../../../../src/features/blocks/client/component/components/BlockCollapsible.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,KAAK,qBAAqB,EAA4B,MAAM,oBAAoB,CAAA;AAEzF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAK5D,CAAA"}
@@ -1,37 +1,19 @@
1
1
  'use client';
2
2
 
3
- import { c as _c } from "react/compiler-runtime";
4
3
  import { jsx as _jsx } from "react/jsx-runtime";
5
4
  import React from 'react';
6
5
  import { useBlockComponentContext } from '../BlockContent.js';
7
- export const BlockCollapsible = t0 => {
8
- const $ = _c(6);
6
+ export const BlockCollapsible = props => {
9
7
  const {
10
8
  children,
11
- editButton,
12
- Label,
13
- removeButton
14
- } = t0;
9
+ ...rest
10
+ } = props;
15
11
  const {
16
12
  BlockCollapsible
17
13
  } = useBlockComponentContext();
18
- let t1;
19
- if ($[0] !== BlockCollapsible || $[1] !== Label || $[2] !== children || $[3] !== editButton || $[4] !== removeButton) {
20
- t1 = BlockCollapsible ? _jsx(BlockCollapsible, {
21
- editButton,
22
- Label,
23
- removeButton,
24
- children
25
- }) : null;
26
- $[0] = BlockCollapsible;
27
- $[1] = Label;
28
- $[2] = children;
29
- $[3] = editButton;
30
- $[4] = removeButton;
31
- $[5] = t1;
32
- } else {
33
- t1 = $[5];
34
- }
35
- return t1;
14
+ return BlockCollapsible ? _jsx(BlockCollapsible, {
15
+ ...rest,
16
+ children
17
+ }) : null;
36
18
  };
37
19
  //# sourceMappingURL=BlockCollapsible.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockCollapsible.js","names":["c","_c","React","useBlockComponentContext","BlockCollapsible","t0","$","children","editButton","Label","removeButton","t1","_jsx"],"sources":["../../../../../../src/features/blocks/client/component/components/BlockCollapsible.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { useBlockComponentContext } from '../BlockContent.js'\n\nexport const BlockCollapsible: React.FC<{\n children?: React.ReactNode\n editButton?: boolean\n\n /**\n * Override the default label with a custom label\n */\n Label?: React.ReactNode\n removeButton?: boolean\n}> = ({ children, editButton, Label, removeButton }) => {\n const { BlockCollapsible } = useBlockComponentContext()\n\n return BlockCollapsible ? (\n <BlockCollapsible editButton={editButton} Label={Label} removeButton={removeButton}>\n {children}\n </BlockCollapsible>\n ) : null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,MAAW;AAElB,SAASC,wBAAwB,QAAQ;AAEzC,OAAO,MAAMC,gBAAA,GASRC,EAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EAAC;IAAAM,QAAA;IAAAC,UAAA;IAAAC,KAAA;IAAAC;EAAA,IAAAL,EAA6C;EACjD;IAAAD;EAAA,IAA6BD,wBAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAL,CAAA,QAAAF,gBAAA,IAAAE,CAAA,QAAAG,KAAA,IAAAH,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAE,UAAA,IAAAF,CAAA,QAAAI,YAAA;IAEtBC,EAAA,GAAAP,gBAAA,GACLQ,IAAA,CAACR,gBAAA;MAAAI,UAAA;MAAAC,KAAA;MAAAC,YAAA;MAAAH;IAAA,C,QAGC;IAAAD,CAAA,MAAAF,gBAAA;IAAAE,CAAA,MAAAG,KAAA;IAAAH,CAAA,MAAAC,QAAA;IAAAD,CAAA,MAAAE,UAAA;IAAAF,CAAA,MAAAI,YAAA;IAAAJ,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAAA,OAJGK,EAIH;AAAA,CACN","ignoreList":[]}
1
+ {"version":3,"file":"BlockCollapsible.js","names":["React","useBlockComponentContext","BlockCollapsible","props","children","rest","_jsx"],"sources":["../../../../../../src/features/blocks/client/component/components/BlockCollapsible.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { type BlockCollapsibleProps, useBlockComponentContext } from '../BlockContent.js'\n\nexport const BlockCollapsible: React.FC<BlockCollapsibleProps> = (props) => {\n const { children, ...rest } = props\n const { BlockCollapsible } = useBlockComponentContext()\n\n return BlockCollapsible ? <BlockCollapsible {...rest}>{children}</BlockCollapsible> : null\n}\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,MAAW;AAElB,SAAqCC,wBAAwB,QAAQ;AAErE,OAAO,MAAMC,gBAAA,GAAoDC,KAAA;EAC/D;IAAAC,QAAA;IAAA,GAAAC;EAAA,IAA8BF,KAAA;EAC9B;IAAAD;EAAA,IAA6BD,wBAAA;EAAA,OAEtBC,gBAAA,GAAmBI,IAAA,CAACJ,gBAAA;IAAA,GAAqBG,IAAI;IAAAD;EAAA,C,QAAkC;AAAA,CACxF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/client/component/index.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAkD,MAAM,OAAO,CAAA;AAetE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAInE,OAAO,cAAc,CAAA;AAKrB,KAAK,KAAK,GAAG;IACX;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAiiB1C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/blocks/client/component/index.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAkD,MAAM,OAAO,CAAA;AAetE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAInE,OAAO,cAAc,CAAA;AAKrB,KAAK,KAAK,GAAG;IACX;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAgjB1C,CAAA"}
@@ -32,7 +32,6 @@ export const BlockComponent = props => {
32
32
  featureClientSchemaMap,
33
33
  field: parentLexicalRichTextField,
34
34
  initialLexicalFormState,
35
- permissions,
36
35
  readOnly,
37
36
  schemaPath
38
37
  },
@@ -62,10 +61,11 @@ export const BlockComponent = props => {
62
61
  setDocFieldPreferences
63
62
  } = useDocumentInfo();
64
63
  const [editor] = useLexicalComposerContext();
64
+ const blockType = formData.blockType;
65
65
  const {
66
66
  getFormState
67
67
  } = useServerFunctions();
68
- const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.${formData.blockType}.fields`;
68
+ const schemaFieldsPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.${blockType}.fields`;
69
69
  const [initialState, setInitialState] = React.useState(() => {
70
70
  return initialLexicalFormState?.[formData.id]?.formState ? {
71
71
  ...initialLexicalFormState?.[formData.id]?.formState,
@@ -91,10 +91,10 @@ export const BlockComponent = props => {
91
91
  }, [cacheBuster]);
92
92
  const [CustomLabel, setCustomLabel] = React.useState(
93
93
  // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve
94
- initialState?.['_components']?.customComponents?.BlockLabel);
94
+ initialState?.['_components']?.customComponents?.BlockLabel ?? undefined);
95
95
  const [CustomBlock, setCustomBlock] = React.useState(
96
96
  // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve
97
- initialState?.['_components']?.customComponents?.Block);
97
+ initialState?.['_components']?.customComponents?.Block ?? undefined);
98
98
  // Initial state for newly created blocks
99
99
  useEffect(() => {
100
100
  const abortController = new AbortController();
@@ -135,13 +135,13 @@ export const BlockComponent = props => {
135
135
  const node = $getNodeByKey(nodeKey);
136
136
  if (node && $isBlockNode(node)) {
137
137
  const newData = newFormStateData;
138
- newData.blockType = formData.blockType;
138
+ newData.blockType = blockType;
139
139
  node.setFields(newData, true);
140
140
  }
141
141
  });
142
142
  setInitialState(state);
143
- setCustomLabel(state._components?.customComponents?.BlockLabel);
144
- setCustomBlock(state._components?.customComponents?.Block);
143
+ setCustomLabel(state._components?.customComponents?.BlockLabel ?? undefined);
144
+ setCustomBlock(state._components?.customComponents?.Block ?? undefined);
145
145
  }
146
146
  };
147
147
  if (formData && !initialState) {
@@ -150,9 +150,9 @@ export const BlockComponent = props => {
150
150
  return () => {
151
151
  abortAndIgnore(abortController);
152
152
  };
153
- }, [getFormState, schemaFieldsPath, id, formData, editor, nodeKey, initialState, collectionSlug, globalSlug, getDocPreferences, parentDocumentFields]);
153
+ }, [getFormState, schemaFieldsPath, id, formData, editor, nodeKey, initialState, collectionSlug, globalSlug, getDocPreferences, parentDocumentFields, blockType]);
154
154
  const [isCollapsed, setIsCollapsed] = React.useState(initialLexicalFormState?.[formData.id]?.collapsed ?? false);
155
- const componentMapRenderedBlockPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.${formData.blockType}`;
155
+ const componentMapRenderedBlockPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks.${blockType}`;
156
156
  const clientSchemaMap = featureClientSchemaMap['blocks'];
157
157
  const blocksField = clientSchemaMap?.[componentMapRenderedBlockPath]?.[0];
158
158
  const clientBlock = blocksField.blockReferences ? typeof blocksField?.blockReferences?.[0] === 'string' ? config.blocksMap[blocksField?.blockReferences?.[0]] : blocksField?.blockReferences?.[0] : blocksField?.blocks?.[0];
@@ -199,14 +199,14 @@ export const BlockComponent = props => {
199
199
  const node_0 = $getNodeByKey(nodeKey);
200
200
  if (node_0 && $isBlockNode(node_0)) {
201
201
  const newData_0 = newFormStateData_0;
202
- newData_0.blockType = formData.blockType;
202
+ newData_0.blockType = blockType;
203
203
  node_0.setFields(newData_0, true);
204
204
  }
205
205
  });
206
206
  }, 0);
207
207
  if (submit) {
208
- setCustomLabel(newFormState._components?.customComponents?.BlockLabel);
209
- setCustomBlock(newFormState._components?.customComponents?.Block);
208
+ setCustomLabel(newFormState._components?.customComponents?.BlockLabel ?? undefined);
209
+ setCustomBlock(newFormState._components?.customComponents?.Block ?? undefined);
210
210
  let rowErrorCount = 0;
211
211
  for (const formField of Object.values(newFormState)) {
212
212
  if (formField?.valid === false) {
@@ -216,7 +216,7 @@ export const BlockComponent = props => {
216
216
  setErrorCount(rowErrorCount);
217
217
  }
218
218
  return newFormState;
219
- }, [getFormState, id, collectionSlug, getDocPreferences, globalSlug, schemaFieldsPath, formData.blockType, parentDocumentFields, editor, nodeKey]);
219
+ }, [getFormState, id, collectionSlug, getDocPreferences, globalSlug, schemaFieldsPath, blockType, parentDocumentFields, editor, nodeKey]);
220
220
  useEffect(() => {
221
221
  return () => {
222
222
  abortAndIgnore(onChangeAbortControllerRef.current);
@@ -284,51 +284,63 @@ export const BlockComponent = props => {
284
284
  tooltip: "Remove Block"
285
285
  }), [parentLexicalRichTextField?.admin?.readOnly, removeBlock]);
286
286
  const BlockCollapsible = useMemo(() => ({
287
+ Actions,
287
288
  children,
289
+ className,
290
+ collapsibleProps,
288
291
  disableBlockName,
289
292
  editButton,
290
293
  errorCount: errorCount_0,
291
294
  fieldHasErrors,
292
295
  Label,
296
+ Pill: CustomPill,
293
297
  removeButton
294
- }) => /*#__PURE__*/_jsx("div", {
295
- className: baseClass + ' ' + baseClass + '-' + formData.blockType,
296
- children: /*#__PURE__*/_jsx(Collapsible, {
297
- className: [`${baseClass}__row`, fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`].join(' '),
298
- collapsibleStyle: fieldHasErrors ? 'error' : 'default',
299
- header: /*#__PURE__*/_jsxs("div", {
300
- className: `${baseClass}__block-header`,
301
- children: [Label ?? CustomLabel ? Label ?? CustomLabel : /*#__PURE__*/_jsxs("div", {
302
- children: [/*#__PURE__*/_jsx(Pill, {
303
- className: `${baseClass}__block-pill ${baseClass}__block-pill-${formData?.blockType}`,
304
- pillStyle: "white",
305
- size: "small",
306
- children: blockDisplayName ?? formData?.blockType
307
- }), !disableBlockName && !clientBlock?.admin?.disableBlockName && /*#__PURE__*/_jsx(SectionTitle, {
308
- path: "blockName",
309
- readOnly: parentLexicalRichTextField?.admin?.readOnly || false
310
- }), fieldHasErrors && /*#__PURE__*/_jsx(ErrorPill, {
311
- count: errorCount_0 ?? 0,
312
- i18n: i18n,
313
- withMessage: true
298
+ }) => {
299
+ return /*#__PURE__*/_jsx("div", {
300
+ className: baseClass + ' ' + baseClass + '-' + blockType,
301
+ children: /*#__PURE__*/_jsx(Collapsible, {
302
+ className: [`${baseClass}__row`, fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`, className].filter(Boolean).join(' '),
303
+ collapsibleStyle: fieldHasErrors ? 'error' : 'default',
304
+ header: /*#__PURE__*/_jsxs("div", {
305
+ className: `${baseClass}__block-header`,
306
+ children: [typeof Label !== 'undefined' ? Label : typeof CustomLabel !== 'undefined' ? CustomLabel : /*#__PURE__*/_jsxs("div", {
307
+ className: `${baseClass}__block-label`,
308
+ children: [typeof CustomPill !== 'undefined' ? CustomPill : /*#__PURE__*/_jsx(Pill, {
309
+ className: `${baseClass}__block-pill ${baseClass}__block-pill-${blockType}`,
310
+ pillStyle: "white",
311
+ size: "small",
312
+ children: blockDisplayName ?? blockType
313
+ }), !disableBlockName && !clientBlock?.admin?.disableBlockName && /*#__PURE__*/_jsx(SectionTitle, {
314
+ path: "blockName",
315
+ readOnly: parentLexicalRichTextField?.admin?.readOnly || false
316
+ }), fieldHasErrors && /*#__PURE__*/_jsx(ErrorPill, {
317
+ count: errorCount_0 ?? 0,
318
+ i18n: i18n,
319
+ withMessage: true
320
+ })]
321
+ }), /*#__PURE__*/_jsx("div", {
322
+ className: `${baseClass}__block-actions`,
323
+ children: typeof Actions !== 'undefined' ? Actions : /*#__PURE__*/_jsxs(_Fragment, {
324
+ children: [CustomBlock && editButton !== false || !CustomBlock && editButton ? /*#__PURE__*/_jsx(EditButton, {}) : null, removeButton !== false && editor.isEditable() ? /*#__PURE__*/_jsx(RemoveButton, {}) : null]
325
+ })
314
326
  })]
315
- }), /*#__PURE__*/_jsxs("div", {
316
- children: [CustomBlock && editButton !== false || !CustomBlock && editButton ? /*#__PURE__*/_jsx(EditButton, {}) : null, removeButton !== false && editor.isEditable() ? /*#__PURE__*/_jsx(RemoveButton, {}) : null]
317
- })]
318
- }),
319
- isCollapsed: isCollapsed,
320
- onToggle: incomingCollapsedState => {
321
- onCollapsedChange(incomingCollapsedState);
322
- setIsCollapsed(incomingCollapsedState);
323
- },
324
- children: children
325
- }, 0)
326
- }), [CustomBlock, CustomLabel, EditButton, RemoveButton, blockDisplayName, clientBlock?.admin?.disableBlockName, editor, formData.blockType, i18n, isCollapsed, onCollapsedChange, parentLexicalRichTextField?.admin?.readOnly]);
327
+ }),
328
+ isCollapsed: isCollapsed,
329
+ onToggle: incomingCollapsedState => {
330
+ onCollapsedChange(incomingCollapsedState);
331
+ setIsCollapsed(incomingCollapsedState);
332
+ },
333
+ ...(collapsibleProps || {}),
334
+ children: children
335
+ }, 0)
336
+ });
337
+ }, [CustomBlock, CustomLabel, EditButton, RemoveButton, blockDisplayName, clientBlock?.admin?.disableBlockName, editor, blockType, i18n, isCollapsed, onCollapsedChange, parentLexicalRichTextField?.admin?.readOnly]);
338
+ const blockID = formData?.id;
327
339
  const BlockDrawer = useMemo(() => () => /*#__PURE__*/_jsx(EditDepthProvider, {
328
340
  children: /*#__PURE__*/_jsx(Drawer, {
329
341
  className: '',
330
342
  slug: drawerSlug,
331
- title: t(`lexical:blocks:inlineBlocks:${formData?.id ? 'edit' : 'create'}`, {
343
+ title: t(`lexical:blocks:inlineBlocks:${blockID ? 'edit' : 'create'}`, {
332
344
  label: blockDisplayName ?? t('lexical:blocks:inlineBlocks:label')
333
345
  }),
334
346
  children: initialState ? /*#__PURE__*/_jsxs(_Fragment, {
@@ -348,7 +360,7 @@ export const BlockComponent = props => {
348
360
  })]
349
361
  }) : null
350
362
  })
351
- }), [initialState, drawerSlug, blockDisplayName, t, clientBlock?.fields, schemaFieldsPath, permissions]);
363
+ }), [initialState, drawerSlug, blockID, blockDisplayName, t, clientBlock?.fields, schemaFieldsPath]);
352
364
  // Memoized Form JSX
353
365
  const Block = useMemo(() => {
354
366
  if (!initialState) {
@@ -370,7 +382,7 @@ export const BlockComponent = props => {
370
382
  onChange: [onChange],
371
383
  onSubmit: (formState_0, newData_1) => {
372
384
  // This is only called when form is submitted from drawer - usually only the case if the block has a custom Block component
373
- newData_1.blockType = formData.blockType;
385
+ newData_1.blockType = blockType;
374
386
  editor.update(() => {
375
387
  const node_1 = $getNodeByKey(nodeKey);
376
388
  if (node_1 && $isBlockNode(node_1)) {
@@ -394,7 +406,7 @@ export const BlockComponent = props => {
394
406
  RemoveButton: RemoveButton
395
407
  })
396
408
  });
397
- }, [BlockCollapsible, BlockDrawer, CustomBlock, clientBlock?.fields, RemoveButton, EditButton, editor, errorCount, toggleDrawer, clientBlock?.fields,
409
+ }, [BlockCollapsible, BlockDrawer, CustomBlock, blockType, RemoveButton, EditButton, editor, errorCount, toggleDrawer, clientBlock?.fields,
398
410
  // DO NOT ADD FORMDATA HERE! Adding formData will kick you out of sub block editors while writing.
399
411
  initialState, nodeKey, onChange, submitted]);
400
412
  if (!clientBlock) {
@@ -403,7 +415,7 @@ export const BlockComponent = props => {
403
415
  fieldHasErrors: true,
404
416
  children: /*#__PURE__*/_jsxs("div", {
405
417
  className: "lexical-block-not-found",
406
- children: ["Error: Block '", formData.blockType, "' not found in the config but exists in the lexical data"]
418
+ children: ["Error: Block '", blockType, "' not found in the config but exists in the lexical data"]
407
419
  })
408
420
  });
409
421
  }