@payloadcms/richtext-lexical 3.77.0-canary.3 → 3.77.0-internal.0b6b4e4

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 (118) hide show
  1. package/dist/exports/client/Field-4IVB5SEE.js +2 -0
  2. package/dist/exports/client/Field-4IVB5SEE.js.map +7 -0
  3. package/dist/exports/client/bundled.css +1 -1
  4. package/dist/exports/client/chunk-CRVQNLN7.js +2 -0
  5. package/dist/exports/client/chunk-CRVQNLN7.js.map +7 -0
  6. package/dist/exports/client/chunk-UOYS7JHZ.js +12 -0
  7. package/dist/exports/client/chunk-UOYS7JHZ.js.map +7 -0
  8. package/dist/exports/client/componentInline-22F6QL2B.js +2 -0
  9. package/dist/exports/client/index.d.ts +1 -0
  10. package/dist/exports/client/index.d.ts.map +1 -1
  11. package/dist/exports/client/index.js +23 -23
  12. package/dist/exports/client/index.js.map +3 -3
  13. package/dist/exports/client/internal-client.d.ts +3 -0
  14. package/dist/exports/client/internal-client.d.ts.map +1 -0
  15. package/dist/exports/react/index.d.ts +3 -1
  16. package/dist/exports/react/index.d.ts.map +1 -1
  17. package/dist/exports/react/index.js +1 -0
  18. package/dist/exports/react/index.js.map +1 -1
  19. package/dist/features/blocks/client/component/BlockContent.d.ts +7 -4
  20. package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -1
  21. package/dist/features/blocks/client/component/BlockContent.js +9 -8
  22. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  23. package/dist/features/blocks/client/component/index.d.ts +20 -4
  24. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  25. package/dist/features/blocks/client/component/index.js +40 -11
  26. package/dist/features/blocks/client/component/index.js.map +1 -1
  27. package/dist/features/blocks/client/componentInline/index.d.ts +8 -14
  28. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  29. package/dist/features/blocks/client/componentInline/index.js +38 -9
  30. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  31. package/dist/features/blocks/client/nodes/BlocksNode.d.ts +4 -2
  32. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  33. package/dist/features/blocks/client/nodes/BlocksNode.js +3 -1
  34. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  35. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts +4 -2
  36. package/dist/features/blocks/client/nodes/InlineBlocksNode.d.ts.map +1 -1
  37. package/dist/features/blocks/client/nodes/InlineBlocksNode.js +3 -1
  38. package/dist/features/blocks/client/nodes/InlineBlocksNode.js.map +1 -1
  39. package/dist/features/converters/lexicalToJSX/Component/index.d.ts +6 -20
  40. package/dist/features/converters/lexicalToJSX/Component/index.d.ts.map +1 -1
  41. package/dist/features/converters/lexicalToJSX/Component/index.js +7 -5
  42. package/dist/features/converters/lexicalToJSX/Component/index.js.map +1 -1
  43. package/dist/features/converters/lexicalToJSX/converter/index.d.ts +17 -2
  44. package/dist/features/converters/lexicalToJSX/converter/index.d.ts.map +1 -1
  45. package/dist/features/converters/lexicalToJSX/converter/index.js +124 -4
  46. package/dist/features/converters/lexicalToJSX/converter/index.js.map +1 -1
  47. package/dist/features/converters/lexicalToJSX/converter/types.d.ts +14 -10
  48. package/dist/features/converters/lexicalToJSX/converter/types.d.ts.map +1 -1
  49. package/dist/features/converters/lexicalToJSX/converter/types.js.map +1 -1
  50. package/dist/features/debug/jsxConverter/client/plugin/index.js +1 -1
  51. package/dist/features/debug/jsxConverter/client/plugin/index.js.map +1 -1
  52. package/dist/field/Field.d.ts.map +1 -1
  53. package/dist/field/Field.js +15 -6
  54. package/dist/field/Field.js.map +1 -1
  55. package/dist/field/RichTextViewProvider.d.ts +85 -0
  56. package/dist/field/RichTextViewProvider.d.ts.map +1 -0
  57. package/dist/field/RichTextViewProvider.js +91 -0
  58. package/dist/field/RichTextViewProvider.js.map +1 -0
  59. package/dist/field/ViewSelector.d.ts +4 -0
  60. package/dist/field/ViewSelector.d.ts.map +1 -0
  61. package/dist/field/ViewSelector.js +89 -0
  62. package/dist/field/ViewSelector.js.map +1 -0
  63. package/dist/field/bundled.css +1 -1
  64. package/dist/field/index.d.ts +1 -0
  65. package/dist/field/index.d.ts.map +1 -1
  66. package/dist/field/index.js +64 -35
  67. package/dist/field/index.js.map +1 -1
  68. package/dist/field/rscEntry.d.ts +1 -1
  69. package/dist/field/rscEntry.d.ts.map +1 -1
  70. package/dist/field/rscEntry.js +12 -0
  71. package/dist/field/rscEntry.js.map +1 -1
  72. package/dist/index.d.ts +1 -1
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +3 -1
  75. package/dist/index.js.map +1 -1
  76. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  77. package/dist/lexical/LexicalEditor.js +2 -1
  78. package/dist/lexical/LexicalEditor.js.map +1 -1
  79. package/dist/lexical/LexicalProvider.d.ts.map +1 -1
  80. package/dist/lexical/LexicalProvider.js +12 -3
  81. package/dist/lexical/LexicalProvider.js.map +1 -1
  82. package/dist/lexical/config/client/sanitize.d.ts +1 -1
  83. package/dist/lexical/config/client/sanitize.d.ts.map +1 -1
  84. package/dist/lexical/config/client/sanitize.js +3 -2
  85. package/dist/lexical/config/client/sanitize.js.map +1 -1
  86. package/dist/lexical/config/types.d.ts +4 -0
  87. package/dist/lexical/config/types.d.ts.map +1 -1
  88. package/dist/lexical/config/types.js.map +1 -1
  89. package/dist/lexical/nodes/index.d.ts +12 -2
  90. package/dist/lexical/nodes/index.d.ts.map +1 -1
  91. package/dist/lexical/nodes/index.js +213 -2
  92. package/dist/lexical/nodes/index.js.map +1 -1
  93. package/dist/lexical/plugins/NodeViewOverridePlugin/index.d.ts +2 -0
  94. package/dist/lexical/plugins/NodeViewOverridePlugin/index.d.ts.map +1 -0
  95. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js +48 -0
  96. package/dist/lexical/plugins/NodeViewOverridePlugin/index.js.map +1 -0
  97. package/dist/lexical/plugins/SlashMenu/index.d.ts.map +1 -1
  98. package/dist/lexical/plugins/SlashMenu/index.js +14 -1
  99. package/dist/lexical/plugins/SlashMenu/index.js.map +1 -1
  100. package/dist/types.d.ts +329 -2
  101. package/dist/types.d.ts.map +1 -1
  102. package/dist/types.js.map +1 -1
  103. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  104. package/dist/utilities/generateImportMap.js +1 -0
  105. package/dist/utilities/generateImportMap.js.map +1 -1
  106. package/dist/validate/hasText.d.ts +6 -1
  107. package/dist/validate/hasText.d.ts.map +1 -1
  108. package/dist/validate/hasText.js +10 -4
  109. package/dist/validate/hasText.js.map +1 -1
  110. package/package.json +11 -6
  111. package/dist/exports/client/Field-HJGV32KA.js +0 -2
  112. package/dist/exports/client/Field-HJGV32KA.js.map +0 -7
  113. package/dist/exports/client/chunk-2S5Q7QYO.js +0 -2
  114. package/dist/exports/client/chunk-2S5Q7QYO.js.map +0 -7
  115. package/dist/exports/client/chunk-EZX4YW7S.js +0 -12
  116. package/dist/exports/client/chunk-EZX4YW7S.js.map +0 -7
  117. package/dist/exports/client/componentInline-NL25DNZ5.js +0 -2
  118. /package/dist/exports/client/{componentInline-NL25DNZ5.js.map → componentInline-22F6QL2B.js.map} +0 -0
@@ -0,0 +1,91 @@
1
+ 'use client';
2
+
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ import { useControllableState } from '@payloadcms/ui';
5
+ import React, { createContext, use, useMemo } from 'react';
6
+ const RichTextViewContext = /*#__PURE__*/createContext({
7
+ currentView: 'default',
8
+ inheritable: false,
9
+ setCurrentView: () => {}
10
+ });
11
+ /**
12
+ * Provider for managing richtext editor view state and its inheritance.
13
+ *
14
+ * Handles two key scenarios:
15
+ * 1. **Explicit view setting**: Wrap with `currentView` and `inheritable={true}` to force nested editors to a specific view
16
+ * 2. **View map inheritance**: Nested editors inherit `views` from parents, allowing view switching across the hierarchy
17
+ *
18
+ * When a nested editor inherits from a parent, its ViewSelector is hidden because the view is controlled by an ancestor.
19
+ *
20
+ * @example
21
+ * Force all nested richtext editors to use "frontend" view:
22
+ * ```tsx
23
+ * <RichTextViewProvider currentView="frontend" inheritable={true}>
24
+ * <MyForm /> {/* All richtext fields inside will use "frontend" view }
25
+ * </RichTextViewProvider>
26
+ * ```
27
+ */
28
+ export const RichTextViewProvider = args => {
29
+ const parentContext = useRichTextView();
30
+ // Track if this provider explicitly sets currentView (not just using the default)
31
+ const hasOwnExplicitView = args.currentView !== undefined;
32
+ const hasInheritedViews = parentContext.inheritable && Boolean(parentContext.hasExplicitCurrentView);
33
+ // This provider has explicit currentView if it sets one OR inherits one from parent
34
+ const hasExplicitCurrentView = hasOwnExplicitView || parentContext.inheritable && Boolean(parentContext.hasExplicitCurrentView);
35
+ const {
36
+ children,
37
+ currentView: currentViewFromProps,
38
+ inheritable,
39
+ views
40
+ } = {
41
+ children: args.children,
42
+ // Only inherit currentView if parent has an explicit one
43
+ currentView: parentContext.inheritable && parentContext.hasExplicitCurrentView ? parentContext.currentView : args.currentView,
44
+ // Propagate inheritable flag through the hierarchy
45
+ inheritable: parentContext.inheritable || args.inheritable,
46
+ // Only inherit views if parent has a views map
47
+ views: parentContext.inheritable && parentContext.views ? parentContext.views : args.views
48
+ };
49
+ const [currentView, setCurrentView] = useControllableState(currentViewFromProps, 'default');
50
+ const value = useMemo(() => {
51
+ const currentViewMap = views ? views[currentView] || views.default : undefined;
52
+ return {
53
+ currentView,
54
+ currentViewMap,
55
+ hasExplicitCurrentView,
56
+ hasInheritedViews,
57
+ inheritable,
58
+ setCurrentView,
59
+ views
60
+ };
61
+ }, [currentView, inheritable, hasExplicitCurrentView, hasInheritedViews, setCurrentView, views]);
62
+ return /*#__PURE__*/_jsx(RichTextViewContext, {
63
+ value: value,
64
+ children: children
65
+ });
66
+ };
67
+ /**
68
+ * Access the current richtext editor view context.
69
+ *
70
+ * Returns the active view name, node overrides, inheritance state, and a function to switch views.
71
+ *
72
+ * @example
73
+ * ```tsx
74
+ * function MyComponent() {
75
+ * const { currentView, currentViewMap, hasInheritedViews, setCurrentView } = useRichTextView()
76
+ *
77
+ * return (
78
+ * <div>
79
+ * <p>Active view: {currentView}</p>
80
+ * {hasInheritedViews && <p>View inherited from parent</p>}
81
+ * {currentViewMap?.heading && <p>Custom heading renderer active</p>}
82
+ * <button onClick={() => setCurrentView('frontend')}>Switch to frontend</button>
83
+ * </div>
84
+ * )
85
+ * }
86
+ * ```
87
+ */
88
+ export function useRichTextView() {
89
+ return use(RichTextViewContext);
90
+ }
91
+ //# sourceMappingURL=RichTextViewProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RichTextViewProvider.js","names":["useControllableState","React","createContext","use","useMemo","RichTextViewContext","currentView","inheritable","setCurrentView","RichTextViewProvider","args","parentContext","useRichTextView","hasOwnExplicitView","undefined","hasInheritedViews","Boolean","hasExplicitCurrentView","children","currentViewFromProps","views","value","currentViewMap","default","_jsx"],"sources":["../../src/field/RichTextViewProvider.tsx"],"sourcesContent":["'use client'\nimport { useControllableState } from '@payloadcms/ui'\nimport React, { createContext, use, useMemo } from 'react'\n\nimport type { LexicalEditorNodeMap, LexicalEditorViewMap } from '../types.js'\n\n/**\n * Context for managing richtext editor view state and inheritance.\n */\ntype RichTextViewContextType = {\n /**\n * The currently active view name (e.g., 'default', 'frontend', 'debug').\n */\n currentView: string\n /**\n * The resolved node map for the current view, containing rendering overrides for each node type.\n */\n currentViewMap?: LexicalEditorNodeMap\n /**\n * True if the current view was explicitly set (via prop) by this provider or an ancestor.\n * Used to distinguish intentional view settings from automatic defaults.\n */\n hasExplicitCurrentView?: boolean\n /**\n * True if this provider inherited its view from a parent provider.\n * When true, the ViewSelector is hidden because the view is controlled by an ancestor.\n */\n hasInheritedViews?: boolean\n /**\n * If true, nested richtext editors will inherit this provider's currentView and views.\n */\n inheritable?: boolean\n /**\n * Function to programmatically change the current view.\n */\n setCurrentView: (view: string) => void\n /**\n * Map of all available views for this editor. Each key is a view name, each value contains\n * admin config, node overrides, and lexical config for that view.\n */\n views?: LexicalEditorViewMap\n}\n\nconst RichTextViewContext = createContext<RichTextViewContextType>({\n currentView: 'default',\n inheritable: false,\n setCurrentView: () => {},\n})\n\n/**\n * Provider for managing richtext editor view state and its inheritance.\n *\n * Handles two key scenarios:\n * 1. **Explicit view setting**: Wrap with `currentView` and `inheritable={true}` to force nested editors to a specific view\n * 2. **View map inheritance**: Nested editors inherit `views` from parents, allowing view switching across the hierarchy\n *\n * When a nested editor inherits from a parent, its ViewSelector is hidden because the view is controlled by an ancestor.\n *\n * @example\n * Force all nested richtext editors to use \"frontend\" view:\n * ```tsx\n * <RichTextViewProvider currentView=\"frontend\" inheritable={true}>\n * <MyForm /> {/* All richtext fields inside will use \"frontend\" view }\n * </RichTextViewProvider>\n * ```\n */\nexport const RichTextViewProvider: React.FC<{\n children: React.ReactNode\n currentView?: string\n inheritable?: boolean\n views?: LexicalEditorViewMap\n}> = (args) => {\n const parentContext = useRichTextView()\n\n // Track if this provider explicitly sets currentView (not just using the default)\n const hasOwnExplicitView = args.currentView !== undefined\n\n const hasInheritedViews =\n parentContext.inheritable && Boolean(parentContext.hasExplicitCurrentView)\n\n // This provider has explicit currentView if it sets one OR inherits one from parent\n const hasExplicitCurrentView =\n hasOwnExplicitView ||\n (parentContext.inheritable && Boolean(parentContext.hasExplicitCurrentView))\n\n const {\n children,\n currentView: currentViewFromProps,\n inheritable,\n views,\n } = {\n children: args.children,\n // Only inherit currentView if parent has an explicit one\n currentView:\n parentContext.inheritable && parentContext.hasExplicitCurrentView\n ? parentContext.currentView\n : args.currentView,\n // Propagate inheritable flag through the hierarchy\n inheritable: parentContext.inheritable || args.inheritable,\n // Only inherit views if parent has a views map\n views: parentContext.inheritable && parentContext.views ? parentContext.views : args.views,\n }\n\n const [currentView, setCurrentView] = useControllableState(currentViewFromProps, 'default')\n\n const value = useMemo(() => {\n const currentViewMap = views ? views[currentView] || views.default : undefined\n return {\n currentView,\n currentViewMap,\n hasExplicitCurrentView,\n hasInheritedViews,\n inheritable,\n setCurrentView,\n views,\n }\n }, [currentView, inheritable, hasExplicitCurrentView, hasInheritedViews, setCurrentView, views])\n\n return <RichTextViewContext value={value}>{children}</RichTextViewContext>\n}\n\n/**\n * Access the current richtext editor view context.\n *\n * Returns the active view name, node overrides, inheritance state, and a function to switch views.\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const { currentView, currentViewMap, hasInheritedViews, setCurrentView } = useRichTextView()\n *\n * return (\n * <div>\n * <p>Active view: {currentView}</p>\n * {hasInheritedViews && <p>View inherited from parent</p>}\n * {currentViewMap?.heading && <p>Custom heading renderer active</p>}\n * <button onClick={() => setCurrentView('frontend')}>Switch to frontend</button>\n * </div>\n * )\n * }\n * ```\n */\nexport function useRichTextView(): RichTextViewContextType {\n return use(RichTextViewContext)\n}\n"],"mappings":"AAAA;;;AACA,SAASA,oBAAoB,QAAQ;AACrC,OAAOC,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,OAAO,QAAQ;AAyCnD,MAAMC,mBAAA,gBAAsBH,aAAA,CAAuC;EACjEI,WAAA,EAAa;EACbC,WAAA,EAAa;EACbC,cAAA,EAAgBA,CAAA,MAAO;AACzB;AAEA;;;;;;;;;;;;;;;;;AAiBA,OAAO,MAAMC,oBAAA,GAKPC,IAAA;EACJ,MAAMC,aAAA,GAAgBC,eAAA;EAEtB;EACA,MAAMC,kBAAA,GAAqBH,IAAA,CAAKJ,WAAW,KAAKQ,SAAA;EAEhD,MAAMC,iBAAA,GACJJ,aAAA,CAAcJ,WAAW,IAAIS,OAAA,CAAQL,aAAA,CAAcM,sBAAsB;EAE3E;EACA,MAAMA,sBAAA,GACJJ,kBAAA,IACCF,aAAA,CAAcJ,WAAW,IAAIS,OAAA,CAAQL,aAAA,CAAcM,sBAAsB;EAE5E,MAAM;IACJC,QAAQ;IACRZ,WAAA,EAAaa,oBAAoB;IACjCZ,WAAW;IACXa;EAAK,CACN,GAAG;IACFF,QAAA,EAAUR,IAAA,CAAKQ,QAAQ;IACvB;IACAZ,WAAA,EACEK,aAAA,CAAcJ,WAAW,IAAII,aAAA,CAAcM,sBAAsB,GAC7DN,aAAA,CAAcL,WAAW,GACzBI,IAAA,CAAKJ,WAAW;IACtB;IACAC,WAAA,EAAaI,aAAA,CAAcJ,WAAW,IAAIG,IAAA,CAAKH,WAAW;IAC1D;IACAa,KAAA,EAAOT,aAAA,CAAcJ,WAAW,IAAII,aAAA,CAAcS,KAAK,GAAGT,aAAA,CAAcS,KAAK,GAAGV,IAAA,CAAKU;EACvF;EAEA,MAAM,CAACd,WAAA,EAAaE,cAAA,CAAe,GAAGR,oBAAA,CAAqBmB,oBAAA,EAAsB;EAEjF,MAAME,KAAA,GAAQjB,OAAA,CAAQ;IACpB,MAAMkB,cAAA,GAAiBF,KAAA,GAAQA,KAAK,CAACd,WAAA,CAAY,IAAIc,KAAA,CAAMG,OAAO,GAAGT,SAAA;IACrE,OAAO;MACLR,WAAA;MACAgB,cAAA;MACAL,sBAAA;MACAF,iBAAA;MACAR,WAAA;MACAC,cAAA;MACAY;IACF;EACF,GAAG,CAACd,WAAA,EAAaC,WAAA,EAAaU,sBAAA,EAAwBF,iBAAA,EAAmBP,cAAA,EAAgBY,KAAA,CAAM;EAE/F,oBAAOI,IAAA,CAACnB,mBAAA;IAAoBgB,KAAA,EAAOA,KAAA;cAAQH;;AAC7C;AAEA;;;;;;;;;;;;;;;;;;;;;AAqBA,OAAO,SAASN,gBAAA;EACd,OAAOT,GAAA,CAAIE,mBAAA;AACb","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import './ViewSelector.scss';
3
+ export declare function ViewSelector(): null | React.ReactElement;
4
+ //# sourceMappingURL=ViewSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewSelector.d.ts","sourceRoot":"","sources":["../../src/field/ViewSelector.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,qBAAqB,CAAA;AAE5B,wBAAgB,YAAY,IAAI,IAAI,GAAG,KAAK,CAAC,YAAY,CAyDxD"}
@@ -0,0 +1,89 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
+ import { ChevronIcon, Popup, PopupList } from '@payloadcms/ui';
6
+ import React from 'react';
7
+ import { useRichTextView } from './RichTextViewProvider.js';
8
+ export function ViewSelector() {
9
+ const $ = _c(5);
10
+ const {
11
+ currentView,
12
+ setCurrentView,
13
+ views
14
+ } = useRichTextView();
15
+ if (!views || Object.keys(views).length === 0) {
16
+ return null;
17
+ }
18
+ let t0;
19
+ let t1;
20
+ if ($[0] !== currentView || $[1] !== setCurrentView || $[2] !== views) {
21
+ t1 = Symbol.for("react.early_return_sentinel");
22
+ bb0: {
23
+ const viewKeys = Object.keys(views);
24
+ const hasNonDefaultViews = viewKeys.some(_temp);
25
+ if (!hasNonDefaultViews) {
26
+ t1 = null;
27
+ break bb0;
28
+ }
29
+ const allViews = ["default", ...viewKeys.filter(_temp2)];
30
+ const currentViewLabel = currentView.charAt(0).toUpperCase() + currentView.slice(1);
31
+ t0 = _jsx("div", {
32
+ className: "lexical-view-selector",
33
+ children: _jsx(Popup, {
34
+ button: _jsxs("button", {
35
+ className: "lexical-view-selector__button",
36
+ type: "button",
37
+ children: [_jsx("span", {
38
+ className: "lexical-view-selector__label",
39
+ children: currentViewLabel
40
+ }), _jsx(ChevronIcon, {
41
+ className: "lexical-view-selector__icon"
42
+ })]
43
+ }),
44
+ buttonType: "custom",
45
+ horizontalAlign: "left",
46
+ render: t2 => {
47
+ const {
48
+ close
49
+ } = t2;
50
+ return _jsx(PopupList.ButtonGroup, {
51
+ children: allViews.map(viewName => {
52
+ const viewLabel = viewName.charAt(0).toUpperCase() + viewName.slice(1);
53
+ return _jsx(PopupList.Button, {
54
+ active: viewName === currentView,
55
+ disabled: viewName === currentView,
56
+ onClick: () => {
57
+ setCurrentView?.(viewName);
58
+ close();
59
+ },
60
+ children: viewLabel
61
+ }, viewName);
62
+ })
63
+ });
64
+ },
65
+ size: "large"
66
+ })
67
+ });
68
+ }
69
+ $[0] = currentView;
70
+ $[1] = setCurrentView;
71
+ $[2] = views;
72
+ $[3] = t0;
73
+ $[4] = t1;
74
+ } else {
75
+ t0 = $[3];
76
+ t1 = $[4];
77
+ }
78
+ if (t1 !== Symbol.for("react.early_return_sentinel")) {
79
+ return t1;
80
+ }
81
+ return t0;
82
+ }
83
+ function _temp2(key_0) {
84
+ return key_0 !== "default";
85
+ }
86
+ function _temp(key) {
87
+ return key !== "default";
88
+ }
89
+ //# sourceMappingURL=ViewSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewSelector.js","names":["c","_c","ChevronIcon","Popup","PopupList","React","useRichTextView","ViewSelector","$","currentView","setCurrentView","views","Object","keys","length","t0","t1","Symbol","for","bb0","viewKeys","hasNonDefaultViews","some","_temp","allViews","filter","_temp2","currentViewLabel","charAt","toUpperCase","slice","_jsx","className","children","button","_jsxs","type","horizontalAlign","render","t2","close","ButtonGroup","map","viewName","viewLabel","Button","active","disabled","onClick","key_0","key"],"sources":["../../src/field/ViewSelector.tsx"],"sourcesContent":["'use client'\nimport { ChevronIcon, Popup, PopupList } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { useRichTextView } from './RichTextViewProvider.js'\nimport './ViewSelector.scss'\n\nexport function ViewSelector(): null | React.ReactElement {\n const { currentView, setCurrentView, views } = useRichTextView()\n\n // Don't show if no views or only default exists\n if (!views || Object.keys(views).length === 0) {\n return null\n }\n\n const viewKeys = Object.keys(views)\n const hasNonDefaultViews = viewKeys.some((key) => key !== 'default')\n\n // If only 'default' exists, no need to show selector\n if (!hasNonDefaultViews) {\n return null\n }\n\n // Build list of available views\n const allViews = ['default', ...viewKeys.filter((key) => key !== 'default')]\n\n const currentViewLabel = currentView.charAt(0).toUpperCase() + currentView.slice(1)\n\n return (\n <div className=\"lexical-view-selector\">\n <Popup\n button={\n <button className=\"lexical-view-selector__button\" type=\"button\">\n <span className=\"lexical-view-selector__label\">{currentViewLabel}</span>\n <ChevronIcon className=\"lexical-view-selector__icon\" />\n </button>\n }\n buttonType=\"custom\"\n horizontalAlign=\"left\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n {allViews.map((viewName) => {\n const viewLabel = viewName.charAt(0).toUpperCase() + viewName.slice(1)\n\n return (\n <PopupList.Button\n active={viewName === currentView}\n disabled={viewName === currentView}\n key={viewName}\n onClick={() => {\n setCurrentView?.(viewName)\n close()\n }}\n >\n {viewLabel}\n </PopupList.Button>\n )\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"large\"\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,WAAW,EAAEC,KAAK,EAAEC,SAAS,QAAQ;AAC9C,OAAOC,KAAA,MAAW;AAElB,SAASC,eAAe,QAAQ;AAGhC,OAAO,SAAAC,aAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EACL;IAAAQ,WAAA;IAAAC,cAAA;IAAAC;EAAA,IAA+CL,eAAA;EAAA,IAG3C,CAACK,KAAA,IAASC,MAAA,CAAAC,IAAA,CAAYF,KAAA,EAAAG,MAAA,MAAkB;IAAA;EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAR,CAAA,QAAAC,WAAA,IAAAD,CAAA,QAAAE,cAAA,IAAAF,CAAA,QAAAG,KAAA;IASnCK,EAAA,GAAAC,MAAA,CAAAC,GAAA;IAAAC,GAAA;MALT,MAAAC,QAAA,GAAiBR,MAAA,CAAAC,IAAA,CAAYF,KAAA;MAC7B,MAAAU,kBAAA,GAA2BD,QAAA,CAAAE,IAAA,CAAAC,KAA+B;MAAA,KAGrDF,kBAAA;QACIL,EAAA;QAAA,MAAAG,GAAA;MAAA;MAIT,MAAAK,QAAA,IAAkB,cAAcJ,QAAA,CAAAK,MAAA,CAAAC,MAAiC;MAEjE,MAAAC,gBAAA,GAAyBlB,WAAA,CAAAmB,MAAA,EAAmB,EAAAC,WAAA,CAAc,IAAKpB,WAAA,CAAAqB,KAAA,EAAkB;MAG/Ef,EAAA,GAAAgB,IAAA,CAAC;QAAAC,SAAA,EAAc;QAAAC,QAAA,EACbF,IAAA,CAAA5B,KAAA;UAAA+B,MAAA,EAEIC,KAAA,CAAC;YAAAH,SAAA,EAAiB;YAAAI,IAAA,EAAqC;YAAAH,QAAA,GACrDF,IAAA,CAAC;cAAAC,SAAA,EAAe;cAAAC,QAAA,EAAgCN;YAAA,C,GAChDI,IAAA,CAAA7B,WAAA;cAAA8B,SAAA,EAAuB;YAAA,C;;sBAGhB;UAAAK,eAAA,EACK;UAAAC,MAAA,EAAAC,EAAA;YACP;cAAAC;YAAA,IAAAD,EAAS;YAAA,OAChBR,IAAA,CAAA3B,SAAA,CAAAqC,WAAA;cAAAR,QAAA,EACGT,QAAA,CAAAkB,GAAA,CAAAC,QAAA;gBACC,MAAAC,SAAA,GAAkBD,QAAA,CAAAf,MAAA,EAAgB,EAAAC,WAAA,CAAc,IAAKc,QAAA,CAAAb,KAAA,EAAe;gBAAA,OAGlEC,IAAA,CAAA3B,SAAA,CAAAyC,MAAA;kBAAAC,MAAA,EACUH,QAAA,KAAalC,WAAA;kBAAAsC,QAAA,EACXJ,QAAA,KAAalC,WAAA;kBAAAuC,OAAA,EAAAA,CAAA;oBAGrBtC,cAAA,GAAiBiC,QAAA;oBACjBH,KAAA;kBAAA;kBAAAP,QAAA,EAGDW;gBAAA,GANID,QAAA;cAAA,CASX;YAAA,C;;gBAGC;QAAA,C;;;;;;;;;;;;;;;SA/BT5B,E;;AAtBG,SAAAW,OAAAuB,KAAA;EAAA,OAiBoDC,KAAA,KAAQ;AAAA;AAjB5D,SAAA3B,MAAA2B,GAAA;EAAA,OAS6CA,GAAA,KAAQ;AAAA","ignoreList":[]}