@payloadcms/richtext-lexical 4.0.0-internal.f15737c → 4.0.0-internal.f2a04f7

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 (137) hide show
  1. package/dist/exports/client/{Field-MT4FK3IP.js → Field-W2ABOM7M.js} +2 -2
  2. package/dist/exports/client/{Field-MT4FK3IP.js.map → Field-W2ABOM7M.js.map} +3 -3
  3. package/dist/exports/client/chunk-E6LSRRP2.js +2 -0
  4. package/dist/exports/client/{chunk-ATPSL6IX.js.map → chunk-E6LSRRP2.js.map} +3 -3
  5. package/dist/exports/client/chunk-ZQX5HXUL.js +2 -0
  6. package/dist/exports/client/{chunk-43E5QYAA.js.map → chunk-ZQX5HXUL.js.map} +3 -3
  7. package/dist/exports/client/{component-D5QLYS7W.js → component-6DQLENIE.js} +2 -2
  8. package/dist/exports/client/{componentInline-ZEP5JPTC.js → componentInline-HNE5G4TE.js} +2 -2
  9. package/dist/exports/client/index.js +28 -28
  10. package/dist/exports/client/index.js.map +4 -4
  11. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  12. package/dist/features/blocks/client/component/index.js +32 -5
  13. package/dist/features/blocks/client/component/index.js.map +1 -1
  14. package/dist/features/blocks/client/nodes/BlocksNode.d.ts.map +1 -1
  15. package/dist/features/blocks/client/nodes/BlocksNode.js +0 -10
  16. package/dist/features/blocks/client/nodes/BlocksNode.js.map +1 -1
  17. package/dist/features/blocks/server/nodes/BlocksNode.d.ts.map +1 -1
  18. package/dist/features/blocks/server/nodes/BlocksNode.js +1 -12
  19. package/dist/features/blocks/server/nodes/BlocksNode.js.map +1 -1
  20. package/dist/features/blocks/server/nodes/InlineBlocksNode.js +2 -2
  21. package/dist/features/blocks/server/nodes/InlineBlocksNode.js.map +1 -1
  22. package/dist/features/blocks/server/schema.d.ts +2 -0
  23. package/dist/features/blocks/server/schema.d.ts.map +1 -1
  24. package/dist/features/blocks/server/schema.js +7 -9
  25. package/dist/features/blocks/server/schema.js.map +1 -1
  26. package/dist/features/blocks/server/validate.js +1 -1
  27. package/dist/features/blocks/server/validate.js.map +1 -1
  28. package/dist/features/converters/lexicalToHtml/async/converters/upload.js.map +1 -1
  29. package/dist/features/converters/lexicalToHtml/sync/converters/upload.js.map +1 -1
  30. package/dist/features/converters/lexicalToHtml/sync/types.d.ts.map +1 -1
  31. package/dist/features/converters/lexicalToHtml/sync/types.js.map +1 -1
  32. package/dist/features/converters/lexicalToJSX/converter/converters/upload.d.ts.map +1 -1
  33. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js +0 -1
  34. package/dist/features/converters/lexicalToJSX/converter/converters/upload.js.map +1 -1
  35. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts +11 -1
  36. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.d.ts.map +1 -1
  37. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js +17 -0
  38. package/dist/features/horizontalRule/client/nodes/HorizontalRuleNode.js.map +1 -1
  39. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js +2 -2
  40. package/dist/features/horizontalRule/server/nodes/HorizontalRuleNode.js.map +1 -1
  41. package/dist/features/horizontalRule/server/schema.d.ts +1 -0
  42. package/dist/features/horizontalRule/server/schema.d.ts.map +1 -1
  43. package/dist/features/horizontalRule/server/schema.js +6 -5
  44. package/dist/features/horizontalRule/server/schema.js.map +1 -1
  45. package/dist/features/indent/server/i18n.d.ts.map +1 -1
  46. package/dist/features/indent/server/i18n.js.map +1 -1
  47. package/dist/features/link/nodes/AutoLinkNode.d.ts.map +1 -1
  48. package/dist/features/link/nodes/AutoLinkNode.js +2 -10
  49. package/dist/features/link/nodes/AutoLinkNode.js.map +1 -1
  50. package/dist/features/link/nodes/LinkNode.d.ts.map +1 -1
  51. package/dist/features/link/nodes/LinkNode.js +2 -15
  52. package/dist/features/link/nodes/LinkNode.js.map +1 -1
  53. package/dist/features/link/server/validate.js +1 -1
  54. package/dist/features/link/server/validate.js.map +1 -1
  55. package/dist/features/lists/shared/schema.d.ts.map +1 -1
  56. package/dist/features/lists/shared/schema.js.map +1 -1
  57. package/dist/features/relationship/client/nodes/RelationshipNode.d.ts.map +1 -1
  58. package/dist/features/relationship/client/nodes/RelationshipNode.js +0 -3
  59. package/dist/features/relationship/client/nodes/RelationshipNode.js.map +1 -1
  60. package/dist/features/relationship/server/nodes/RelationshipNode.d.ts.map +1 -1
  61. package/dist/features/relationship/server/nodes/RelationshipNode.js +1 -5
  62. package/dist/features/relationship/server/nodes/RelationshipNode.js.map +1 -1
  63. package/dist/features/relationship/server/schema.d.ts +1 -0
  64. package/dist/features/relationship/server/schema.d.ts.map +1 -1
  65. package/dist/features/relationship/server/schema.js +4 -2
  66. package/dist/features/relationship/server/schema.js.map +1 -1
  67. package/dist/features/textState/defaultColors.js +1 -1
  68. package/dist/features/textState/defaultColors.js.map +1 -1
  69. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
  70. package/dist/features/toolbars/fixed/client/Toolbar/index.js +15 -0
  71. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  72. package/dist/features/toolbars/inline/client/Toolbar/index.d.ts.map +1 -1
  73. package/dist/features/toolbars/inline/client/Toolbar/index.js +15 -0
  74. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  75. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.d.ts +5 -0
  76. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.d.ts.map +1 -0
  77. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.js +79 -0
  78. package/dist/features/toolbars/shared/useToolbarKeyboardNavigation.js.map +1 -0
  79. package/dist/features/typesServer.d.ts +3 -3
  80. package/dist/features/typesServer.d.ts.map +1 -1
  81. package/dist/features/typesServer.js.map +1 -1
  82. package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
  83. package/dist/features/upload/client/nodes/UploadNode.js +0 -7
  84. package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
  85. package/dist/features/upload/server/index.d.ts +1 -1
  86. package/dist/features/upload/server/index.d.ts.map +1 -1
  87. package/dist/features/upload/server/index.js.map +1 -1
  88. package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
  89. package/dist/features/upload/server/nodes/UploadNode.js +1 -9
  90. package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
  91. package/dist/features/upload/server/schema.d.ts +2 -14
  92. package/dist/features/upload/server/schema.d.ts.map +1 -1
  93. package/dist/features/upload/server/schema.js +4 -2
  94. package/dist/features/upload/server/schema.js.map +1 -1
  95. package/dist/features/upload/server/validate.js +1 -1
  96. package/dist/features/upload/server/validate.js.map +1 -1
  97. package/dist/field/Diff/converters/upload/index.js.map +1 -1
  98. package/dist/field/Diff/index.d.ts.map +1 -1
  99. package/dist/field/Diff/index.js +2 -2
  100. package/dist/field/Diff/index.js.map +1 -1
  101. package/dist/field/bundled.css +1 -1
  102. package/dist/field/rscEntry.d.ts +2 -2
  103. package/dist/field/rscEntry.d.ts.map +1 -1
  104. package/dist/field/rscEntry.js.map +1 -1
  105. package/dist/index.d.ts +3 -3
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js.map +1 -1
  108. package/dist/lexical/ui/ContentEditable.d.ts.map +1 -1
  109. package/dist/lexical/ui/ContentEditable.js +16 -9
  110. package/dist/lexical/ui/ContentEditable.js.map +1 -1
  111. package/dist/types/builtInNodes.d.ts +1 -1
  112. package/dist/types/builtInNodes.d.ts.map +1 -1
  113. package/dist/types/builtInNodes.js +8 -3
  114. package/dist/types/builtInNodes.js.map +1 -1
  115. package/dist/types/index.d.ts +1 -4
  116. package/dist/types/index.d.ts.map +1 -1
  117. package/dist/types/index.js.map +1 -1
  118. package/dist/types/jsonSchemaHelpers.d.ts +5 -1
  119. package/dist/types/jsonSchemaHelpers.d.ts.map +1 -1
  120. package/dist/types/jsonSchemaHelpers.js +7 -2
  121. package/dist/types/jsonSchemaHelpers.js.map +1 -1
  122. package/dist/types/nodeTypes.d.ts +5 -0
  123. package/dist/types/nodeTypes.d.ts.map +1 -1
  124. package/dist/types/nodeTypes.js.map +1 -1
  125. package/dist/utilities/buildEditorState.d.ts.map +1 -1
  126. package/dist/utilities/buildEditorState.js.map +1 -1
  127. package/dist/utilities/buildInitialState.d.ts +2 -2
  128. package/dist/utilities/buildInitialState.d.ts.map +1 -1
  129. package/dist/utilities/buildInitialState.js.map +1 -1
  130. package/dist/utilities/generateImportMap.d.ts +2 -2
  131. package/dist/utilities/generateImportMap.d.ts.map +1 -1
  132. package/dist/utilities/generateImportMap.js.map +1 -1
  133. package/package.json +26 -26
  134. package/dist/exports/client/chunk-43E5QYAA.js +0 -2
  135. package/dist/exports/client/chunk-ATPSL6IX.js +0 -2
  136. /package/dist/exports/client/{component-D5QLYS7W.js.map → component-6DQLENIE.js.map} +0 -0
  137. /package/dist/exports/client/{componentInline-ZEP5JPTC.js.map → componentInline-HNE5G4TE.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"LinkNode.js","names":["addClassNamesToElement","isHTMLAnchorElement","ObjectID","$applyNodeReplacement","$createTextNode","$getSelection","$isElementNode","$isRangeSelection","createCommand","ElementNode","SUPPORTED_URL_PROTOCOLS","Set","LinkNode","__fields","__id","constructor","id","fields","linkType","newTab","key","clone","node","__key","getType","importDOM","a","conversion","$convertAnchorElement","priority","importJSON","serializedNode","$createLinkNode","updateFromJSON","version","doc","value","default","toHexString","canBeEmpty","canInsertTextAfter","canInsertTextBefore","createDOM","config","element","document","createElement","href","sanitizeUrl","url","target","rel","manageRel","theme","link","exportJSON","getFields","returnObject","type","getID","extractWithChild","child","selection","destination","anchorNode","anchor","getNode","focusNode","focus","isParentOf","getTextContent","length","getLatest","insertNewAfter","restoreSelection","getParentOrThrow","linkNode","append","isInline","parsedUrl","URL","has","protocol","e","setFields","writable","getWritable","setID","updateDOM","prevNode","removeAttribute","_serializedNode","domNode","content","textContent","getAttribute","$isLinkNode","TOGGLE_LINK_COMMAND","$toggleLink","payload","selectedNodes","nodes","extract","forEach","parent","getParent","children","getChildren","insertBefore","remove","firstNode","$getLinkAncestor","text","getLastChild","prevParent","is","getPreviousSibling","insertAfter","$getAncestor","ancestor","predicate","input","action","result","mutableInput","includes","re","RegExp","replace","trim"],"sources":["../../../../src/features/link/nodes/LinkNode.ts"],"sourcesContent":["import type {\n BaseSelection,\n DOMConversionMap,\n DOMConversionOutput,\n EditorConfig,\n ElementNode as ElementNodeType,\n LexicalCommand,\n LexicalNode,\n LexicalUpdateJSON,\n NodeKey,\n RangeSelection,\n SerializedElementNode,\n} from 'lexical'\n\nimport { addClassNamesToElement, isHTMLAnchorElement } from '@lexical/utils'\nimport ObjectID from 'bson-objectid'\nimport {\n $applyNodeReplacement,\n $createTextNode,\n $getSelection,\n $isElementNode,\n $isRangeSelection,\n createCommand,\n ElementNode,\n} from 'lexical'\n\nimport type { LinkPayload } from '../client/plugins/floatingLinkEditor/types.js'\nimport type { LinkFields, SerializedLinkNode } from '../server/schema.js'\n\nconst SUPPORTED_URL_PROTOCOLS = new Set(['http:', 'https:', 'mailto:', 'sms:', 'tel:'])\n\n/** @noInheritDoc */\nexport class LinkNode extends ElementNode {\n __fields: LinkFields\n __id: string\n\n constructor({\n id,\n fields = {\n linkType: 'custom',\n newTab: false,\n },\n key,\n }: {\n fields?: LinkFields\n id: string\n key?: NodeKey\n }) {\n super(key)\n this.__fields = fields\n this.__id = id\n }\n\n static override clone(node: LinkNode): LinkNode {\n return new this({\n id: node.__id,\n fields: node.__fields,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'link'\n }\n\n static override importDOM(): DOMConversionMap | null {\n return {\n a: (node: Node) => ({\n conversion: $convertAnchorElement,\n priority: 1,\n }),\n }\n }\n\n static override importJSON(\n serializedNode: Record<string, unknown> & SerializedLinkNode,\n ): LinkNode {\n const node = $createLinkNode({}).updateFromJSON(serializedNode)\n\n /**\n * @todo remove this in 4.0\n */\n if (\n serializedNode.version === 1 &&\n typeof serializedNode.fields?.doc?.value === 'object' &&\n serializedNode.fields?.doc?.value?.id\n ) {\n serializedNode.fields.doc.value = serializedNode.fields.doc.value.id\n serializedNode.version = 2\n }\n\n if (serializedNode.version === 2 && !serializedNode.id) {\n serializedNode.id = new ObjectID.default().toHexString()\n serializedNode.version = 3\n }\n return node\n }\n\n override canBeEmpty(): false {\n return false\n }\n\n override canInsertTextAfter(): false {\n return false\n }\n\n override canInsertTextBefore(): false {\n return false\n }\n\n override createDOM(config: EditorConfig): HTMLAnchorElement {\n const element = document.createElement('a')\n if (this.__fields?.linkType === 'custom') {\n element.href = this.sanitizeUrl(this.__fields.url ?? '')\n }\n if (this.__fields?.newTab ?? false) {\n element.target = '_blank'\n }\n\n if (this.__fields?.newTab === true && this.__fields?.linkType === 'custom') {\n element.rel = manageRel(element.rel, 'add', 'noopener')\n }\n\n addClassNamesToElement(element, config.theme.link)\n return element\n }\n\n override exportJSON(): SerializedLinkNode {\n const fields = this.getFields()\n\n if (fields?.linkType === 'internal') {\n delete fields.url\n } else if (fields?.linkType === 'custom') {\n delete fields.doc\n }\n\n const returnObject: SerializedLinkNode = {\n ...super.exportJSON(),\n type: 'link',\n fields,\n version: 3,\n }\n const id = this.getID()\n if (id) {\n returnObject.id = id\n }\n return returnObject\n }\n\n override extractWithChild(\n child: LexicalNode,\n selection: BaseSelection,\n destination: 'clone' | 'html',\n ): boolean {\n if (!$isRangeSelection(selection)) {\n return false\n }\n\n const anchorNode = selection.anchor.getNode()\n const focusNode = selection.focus.getNode()\n\n return (\n this.isParentOf(anchorNode) &&\n this.isParentOf(focusNode) &&\n selection.getTextContent().length > 0\n )\n }\n\n getFields(): LinkFields {\n return this.getLatest().__fields\n }\n\n getID(): string {\n return this.getLatest().__id\n }\n\n override insertNewAfter(\n selection: RangeSelection,\n restoreSelection = true,\n ): ElementNodeType | null {\n const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection)\n if ($isElementNode(element)) {\n const linkNode = $createLinkNode({ fields: this.__fields })\n element.append(linkNode)\n return linkNode\n }\n return null\n }\n\n override isInline(): true {\n return true\n }\n\n sanitizeUrl(url: string): string {\n try {\n const parsedUrl = new URL(url)\n\n if (!SUPPORTED_URL_PROTOCOLS.has(parsedUrl.protocol)) {\n return 'about:blank'\n }\n } catch (e) {\n return 'https://'\n }\n return url\n }\n\n setFields(fields: LinkFields): this {\n const writable = this.getWritable()\n writable.__fields = fields\n return writable\n }\n\n setID(id: string): this {\n const writable = this.getWritable()\n writable.__id = id\n return writable\n }\n\n override updateDOM(prevNode: this, anchor: HTMLAnchorElement, config: EditorConfig): boolean {\n const url = this.__fields?.url\n const newTab = this.__fields?.newTab\n if (url != null && url !== prevNode.__fields?.url && this.__fields?.linkType === 'custom') {\n anchor.href = url\n }\n if (this.__fields?.linkType === 'internal' && prevNode.__fields?.linkType === 'custom') {\n anchor.removeAttribute('href')\n }\n\n // TODO: not 100% sure why we're settign rel to '' - revisit\n // Start rel config here, then check newTab below\n if (anchor.rel == null) {\n anchor.rel = ''\n }\n\n if (newTab !== prevNode.__fields?.newTab) {\n if (newTab ?? false) {\n anchor.target = '_blank'\n if (this.__fields?.linkType === 'custom') {\n anchor.rel = manageRel(anchor.rel, 'add', 'noopener')\n }\n } else {\n anchor.removeAttribute('target')\n anchor.rel = manageRel(anchor.rel, 'remove', 'noopener')\n }\n }\n\n return false\n }\n\n override updateFromJSON(_serializedNode: LexicalUpdateJSON<SerializedElementNode>): this {\n const serializedNode = _serializedNode as unknown as SerializedLinkNode\n return super\n .updateFromJSON(serializedNode)\n .setFields(serializedNode.fields)\n .setID(serializedNode.id as string)\n }\n}\n\nfunction $convertAnchorElement(domNode: Node): DOMConversionOutput {\n let node: LinkNode | null = null\n if (isHTMLAnchorElement(domNode)) {\n const content = domNode.textContent\n if (content !== null && content !== '') {\n node = $createLinkNode({\n id: new ObjectID.default().toHexString(),\n fields: {\n doc: null,\n linkType: 'custom',\n newTab: domNode.getAttribute('target') === '_blank',\n url: domNode.getAttribute('href') ?? '',\n },\n })\n }\n }\n return { node }\n}\n\nexport function $createLinkNode({ id, fields }: { fields?: LinkFields; id?: string }): LinkNode {\n return $applyNodeReplacement(\n new LinkNode({\n id: id ?? new ObjectID.default().toHexString(),\n fields,\n }),\n )\n}\n\nexport function $isLinkNode(node: LexicalNode | null | undefined): node is LinkNode {\n return node instanceof LinkNode\n}\n\nexport const TOGGLE_LINK_COMMAND: LexicalCommand<LinkPayload | null> =\n createCommand('TOGGLE_LINK_COMMAND')\n\nexport function $toggleLink(payload: ({ fields: LinkFields } & LinkPayload) | null): void {\n const selection = $getSelection()\n\n if (!$isRangeSelection(selection) && (payload === null || !payload.selectedNodes?.length)) {\n return\n }\n const nodes = $isRangeSelection(selection)\n ? selection.extract()\n : payload === null\n ? []\n : payload.selectedNodes\n\n if (payload === null) {\n // Remove LinkNodes\n nodes?.forEach((node) => {\n const parent = node.getParent()\n\n if ($isLinkNode(parent)) {\n const children = parent.getChildren()\n\n children.forEach((child) => {\n parent.insertBefore(child)\n })\n\n parent.remove()\n }\n })\n\n return\n }\n // Add or merge LinkNodes\n if (nodes?.length === 1) {\n const firstNode = nodes[0]!\n // if the first node is a LinkNode or if its\n // parent is a LinkNode, we update the URL, target and rel.\n const linkNode: LinkNode | null = $isLinkNode(firstNode)\n ? firstNode\n : $getLinkAncestor(firstNode)\n if (linkNode !== null) {\n linkNode.setFields(payload.fields)\n\n if (payload.text != null && payload.text !== linkNode.getTextContent()) {\n // remove all children and add child with new textcontent:\n linkNode.append($createTextNode(payload.text))\n linkNode.getChildren().forEach((child) => {\n if (child !== linkNode.getLastChild()) {\n child.remove()\n }\n })\n }\n return\n }\n }\n\n let prevParent: ElementNodeType | LinkNode | null = null\n let linkNode: LinkNode | null = null\n\n nodes?.forEach((node) => {\n const parent = node.getParent()\n\n if (parent === linkNode || parent === null || ($isElementNode(node) && !node.isInline())) {\n return\n }\n\n if ($isLinkNode(parent)) {\n linkNode = parent\n parent.setFields(payload.fields)\n if (payload.text != null && payload.text !== parent.getTextContent()) {\n // remove all children and add child with new textcontent:\n parent.append($createTextNode(payload.text))\n parent.getChildren().forEach((child) => {\n if (child !== parent.getLastChild()) {\n child.remove()\n }\n })\n }\n return\n }\n\n if (!parent.is(prevParent)) {\n prevParent = parent\n linkNode = $createLinkNode({ fields: payload.fields })\n\n if ($isLinkNode(parent)) {\n if (node.getPreviousSibling() === null) {\n parent.insertBefore(linkNode)\n } else {\n parent.insertAfter(linkNode)\n }\n } else {\n node.insertBefore(linkNode)\n }\n }\n\n if ($isLinkNode(node)) {\n if (node.is(linkNode)) {\n return\n }\n if (linkNode !== null) {\n const children = node.getChildren()\n linkNode.append(...children)\n }\n\n node.remove()\n return\n }\n\n if (linkNode !== null) {\n linkNode.append(node)\n }\n })\n}\n\nfunction $getLinkAncestor(node: LexicalNode): LinkNode | null {\n return $getAncestor(node, (ancestor) => $isLinkNode(ancestor)) as LinkNode\n}\n\nfunction $getAncestor(\n node: LexicalNode,\n predicate: (ancestor: LexicalNode) => boolean,\n): LexicalNode | null {\n let parent: LexicalNode | null = node\n while (parent !== null) {\n parent = parent.getParent()\n if (parent === null || predicate(parent)) {\n break\n }\n }\n return parent\n}\n\nfunction manageRel(input: string, action: 'add' | 'remove', value: string): string {\n let result: string\n let mutableInput = `${input}`\n if (action === 'add') {\n // if we somehow got out of sync - clean up\n if (mutableInput.includes(value)) {\n const re = new RegExp(value, 'g')\n mutableInput = mutableInput.replace(re, '').trim()\n }\n mutableInput = mutableInput.trim()\n result = mutableInput.length === 0 ? `${value}` : `${mutableInput} ${value}`\n } else {\n const re = new RegExp(value, 'g')\n result = mutableInput.replace(re, '').trim()\n }\n return result\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"LinkNode.js","names":["addClassNamesToElement","isHTMLAnchorElement","ObjectID","$applyNodeReplacement","$createTextNode","$getSelection","$isElementNode","$isRangeSelection","createCommand","ElementNode","SUPPORTED_URL_PROTOCOLS","Set","LinkNode","__fields","__id","constructor","id","fields","linkType","newTab","key","clone","node","__key","getType","importDOM","a","conversion","$convertAnchorElement","priority","importJSON","serializedNode","$createLinkNode","updateFromJSON","canBeEmpty","canInsertTextAfter","canInsertTextBefore","createDOM","config","element","document","createElement","href","sanitizeUrl","url","target","rel","manageRel","theme","link","exportJSON","getFields","doc","returnObject","type","getID","extractWithChild","child","selection","destination","anchorNode","anchor","getNode","focusNode","focus","isParentOf","getTextContent","length","getLatest","insertNewAfter","restoreSelection","getParentOrThrow","linkNode","append","isInline","parsedUrl","URL","has","protocol","e","setFields","writable","getWritable","setID","updateDOM","prevNode","removeAttribute","_serializedNode","domNode","content","textContent","default","toHexString","getAttribute","$isLinkNode","TOGGLE_LINK_COMMAND","$toggleLink","payload","selectedNodes","nodes","extract","forEach","parent","getParent","children","getChildren","insertBefore","remove","firstNode","$getLinkAncestor","text","getLastChild","prevParent","is","getPreviousSibling","insertAfter","$getAncestor","ancestor","predicate","input","action","value","result","mutableInput","includes","re","RegExp","replace","trim"],"sources":["../../../../src/features/link/nodes/LinkNode.ts"],"sourcesContent":["import type {\n BaseSelection,\n DOMConversionMap,\n DOMConversionOutput,\n EditorConfig,\n ElementNode as ElementNodeType,\n LexicalCommand,\n LexicalNode,\n LexicalUpdateJSON,\n NodeKey,\n RangeSelection,\n SerializedElementNode,\n} from 'lexical'\n\nimport { addClassNamesToElement, isHTMLAnchorElement } from '@lexical/utils'\nimport ObjectID from 'bson-objectid'\nimport {\n $applyNodeReplacement,\n $createTextNode,\n $getSelection,\n $isElementNode,\n $isRangeSelection,\n createCommand,\n ElementNode,\n} from 'lexical'\n\nimport type { LinkPayload } from '../client/plugins/floatingLinkEditor/types.js'\nimport type { LinkFields, SerializedLinkNode } from '../server/schema.js'\n\nconst SUPPORTED_URL_PROTOCOLS = new Set(['http:', 'https:', 'mailto:', 'sms:', 'tel:'])\n\n/** @noInheritDoc */\nexport class LinkNode extends ElementNode {\n __fields: LinkFields\n __id: string\n\n constructor({\n id,\n fields = {\n linkType: 'custom',\n newTab: false,\n },\n key,\n }: {\n fields?: LinkFields\n id: string\n key?: NodeKey\n }) {\n super(key)\n this.__fields = fields\n this.__id = id\n }\n\n static override clone(node: LinkNode): LinkNode {\n return new this({\n id: node.__id,\n fields: node.__fields,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'link'\n }\n\n static override importDOM(): DOMConversionMap | null {\n return {\n a: (node: Node) => ({\n conversion: $convertAnchorElement,\n priority: 1,\n }),\n }\n }\n\n static override importJSON(\n serializedNode: Record<string, unknown> & SerializedLinkNode,\n ): LinkNode {\n return $createLinkNode({}).updateFromJSON(serializedNode)\n }\n\n override canBeEmpty(): false {\n return false\n }\n\n override canInsertTextAfter(): false {\n return false\n }\n\n override canInsertTextBefore(): false {\n return false\n }\n\n override createDOM(config: EditorConfig): HTMLAnchorElement {\n const element = document.createElement('a')\n if (this.__fields?.linkType === 'custom') {\n element.href = this.sanitizeUrl(this.__fields.url ?? '')\n }\n if (this.__fields?.newTab ?? false) {\n element.target = '_blank'\n }\n\n if (this.__fields?.newTab === true && this.__fields?.linkType === 'custom') {\n element.rel = manageRel(element.rel, 'add', 'noopener')\n }\n\n addClassNamesToElement(element, config.theme.link)\n return element\n }\n\n override exportJSON(): SerializedLinkNode {\n const fields = this.getFields()\n\n if (fields?.linkType === 'internal') {\n delete fields.url\n } else if (fields?.linkType === 'custom') {\n delete fields.doc\n }\n\n const returnObject: SerializedLinkNode = {\n ...super.exportJSON(),\n type: 'link',\n fields,\n }\n const id = this.getID()\n if (id) {\n returnObject.id = id\n }\n return returnObject\n }\n\n override extractWithChild(\n child: LexicalNode,\n selection: BaseSelection,\n destination: 'clone' | 'html',\n ): boolean {\n if (!$isRangeSelection(selection)) {\n return false\n }\n\n const anchorNode = selection.anchor.getNode()\n const focusNode = selection.focus.getNode()\n\n return (\n this.isParentOf(anchorNode) &&\n this.isParentOf(focusNode) &&\n selection.getTextContent().length > 0\n )\n }\n\n getFields(): LinkFields {\n return this.getLatest().__fields\n }\n\n getID(): string {\n return this.getLatest().__id\n }\n\n override insertNewAfter(\n selection: RangeSelection,\n restoreSelection = true,\n ): ElementNodeType | null {\n const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection)\n if ($isElementNode(element)) {\n const linkNode = $createLinkNode({ fields: this.__fields })\n element.append(linkNode)\n return linkNode\n }\n return null\n }\n\n override isInline(): true {\n return true\n }\n\n sanitizeUrl(url: string): string {\n try {\n const parsedUrl = new URL(url)\n\n if (!SUPPORTED_URL_PROTOCOLS.has(parsedUrl.protocol)) {\n return 'about:blank'\n }\n } catch (e) {\n return 'https://'\n }\n return url\n }\n\n setFields(fields: LinkFields): this {\n const writable = this.getWritable()\n writable.__fields = fields\n return writable\n }\n\n setID(id: string): this {\n const writable = this.getWritable()\n writable.__id = id\n return writable\n }\n\n override updateDOM(prevNode: this, anchor: HTMLAnchorElement, config: EditorConfig): boolean {\n const url = this.__fields?.url\n const newTab = this.__fields?.newTab\n if (url != null && url !== prevNode.__fields?.url && this.__fields?.linkType === 'custom') {\n anchor.href = url\n }\n if (this.__fields?.linkType === 'internal' && prevNode.__fields?.linkType === 'custom') {\n anchor.removeAttribute('href')\n }\n\n // TODO: not 100% sure why we're settign rel to '' - revisit\n // Start rel config here, then check newTab below\n if (anchor.rel == null) {\n anchor.rel = ''\n }\n\n if (newTab !== prevNode.__fields?.newTab) {\n if (newTab ?? false) {\n anchor.target = '_blank'\n if (this.__fields?.linkType === 'custom') {\n anchor.rel = manageRel(anchor.rel, 'add', 'noopener')\n }\n } else {\n anchor.removeAttribute('target')\n anchor.rel = manageRel(anchor.rel, 'remove', 'noopener')\n }\n }\n\n return false\n }\n\n override updateFromJSON(_serializedNode: LexicalUpdateJSON<SerializedElementNode>): this {\n const serializedNode = _serializedNode as unknown as SerializedLinkNode\n return super\n .updateFromJSON(serializedNode)\n .setFields(serializedNode.fields)\n .setID(serializedNode.id as string)\n }\n}\n\nfunction $convertAnchorElement(domNode: Node): DOMConversionOutput {\n let node: LinkNode | null = null\n if (isHTMLAnchorElement(domNode)) {\n const content = domNode.textContent\n if (content !== null && content !== '') {\n node = $createLinkNode({\n id: new ObjectID.default().toHexString(),\n fields: {\n doc: null,\n linkType: 'custom',\n newTab: domNode.getAttribute('target') === '_blank',\n url: domNode.getAttribute('href') ?? '',\n },\n })\n }\n }\n return { node }\n}\n\nexport function $createLinkNode({ id, fields }: { fields?: LinkFields; id?: string }): LinkNode {\n return $applyNodeReplacement(\n new LinkNode({\n id: id ?? new ObjectID.default().toHexString(),\n fields,\n }),\n )\n}\n\nexport function $isLinkNode(node: LexicalNode | null | undefined): node is LinkNode {\n return node instanceof LinkNode\n}\n\nexport const TOGGLE_LINK_COMMAND: LexicalCommand<LinkPayload | null> =\n createCommand('TOGGLE_LINK_COMMAND')\n\nexport function $toggleLink(payload: ({ fields: LinkFields } & LinkPayload) | null): void {\n const selection = $getSelection()\n\n if (!$isRangeSelection(selection) && (payload === null || !payload.selectedNodes?.length)) {\n return\n }\n const nodes = $isRangeSelection(selection)\n ? selection.extract()\n : payload === null\n ? []\n : payload.selectedNodes\n\n if (payload === null) {\n // Remove LinkNodes\n nodes?.forEach((node) => {\n const parent = node.getParent()\n\n if ($isLinkNode(parent)) {\n const children = parent.getChildren()\n\n children.forEach((child) => {\n parent.insertBefore(child)\n })\n\n parent.remove()\n }\n })\n\n return\n }\n // Add or merge LinkNodes\n if (nodes?.length === 1) {\n const firstNode = nodes[0]!\n // if the first node is a LinkNode or if its\n // parent is a LinkNode, we update the URL, target and rel.\n const linkNode: LinkNode | null = $isLinkNode(firstNode)\n ? firstNode\n : $getLinkAncestor(firstNode)\n if (linkNode !== null) {\n linkNode.setFields(payload.fields)\n\n if (payload.text != null && payload.text !== linkNode.getTextContent()) {\n // remove all children and add child with new textcontent:\n linkNode.append($createTextNode(payload.text))\n linkNode.getChildren().forEach((child) => {\n if (child !== linkNode.getLastChild()) {\n child.remove()\n }\n })\n }\n return\n }\n }\n\n let prevParent: ElementNodeType | LinkNode | null = null\n let linkNode: LinkNode | null = null\n\n nodes?.forEach((node) => {\n const parent = node.getParent()\n\n if (parent === linkNode || parent === null || ($isElementNode(node) && !node.isInline())) {\n return\n }\n\n if ($isLinkNode(parent)) {\n linkNode = parent\n parent.setFields(payload.fields)\n if (payload.text != null && payload.text !== parent.getTextContent()) {\n // remove all children and add child with new textcontent:\n parent.append($createTextNode(payload.text))\n parent.getChildren().forEach((child) => {\n if (child !== parent.getLastChild()) {\n child.remove()\n }\n })\n }\n return\n }\n\n if (!parent.is(prevParent)) {\n prevParent = parent\n linkNode = $createLinkNode({ fields: payload.fields })\n\n if ($isLinkNode(parent)) {\n if (node.getPreviousSibling() === null) {\n parent.insertBefore(linkNode)\n } else {\n parent.insertAfter(linkNode)\n }\n } else {\n node.insertBefore(linkNode)\n }\n }\n\n if ($isLinkNode(node)) {\n if (node.is(linkNode)) {\n return\n }\n if (linkNode !== null) {\n const children = node.getChildren()\n linkNode.append(...children)\n }\n\n node.remove()\n return\n }\n\n if (linkNode !== null) {\n linkNode.append(node)\n }\n })\n}\n\nfunction $getLinkAncestor(node: LexicalNode): LinkNode | null {\n return $getAncestor(node, (ancestor) => $isLinkNode(ancestor)) as LinkNode\n}\n\nfunction $getAncestor(\n node: LexicalNode,\n predicate: (ancestor: LexicalNode) => boolean,\n): LexicalNode | null {\n let parent: LexicalNode | null = node\n while (parent !== null) {\n parent = parent.getParent()\n if (parent === null || predicate(parent)) {\n break\n }\n }\n return parent\n}\n\nfunction manageRel(input: string, action: 'add' | 'remove', value: string): string {\n let result: string\n let mutableInput = `${input}`\n if (action === 'add') {\n // if we somehow got out of sync - clean up\n if (mutableInput.includes(value)) {\n const re = new RegExp(value, 'g')\n mutableInput = mutableInput.replace(re, '').trim()\n }\n mutableInput = mutableInput.trim()\n result = mutableInput.length === 0 ? `${value}` : `${mutableInput} ${value}`\n } else {\n const re = new RegExp(value, 'g')\n result = mutableInput.replace(re, '').trim()\n }\n return result\n}\n"],"mappings":"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","ignoreList":[]}
@@ -24,7 +24,7 @@ export const linkValidation = (props, sanitizedFieldsWithoutText) => {
24
24
  fields: sanitizedFieldsWithoutText,
25
25
  fieldSchemaMap: undefined,
26
26
  initialBlockData: node.fields,
27
- operation: operation === 'create' || operation === 'update' ? operation : 'update',
27
+ operation,
28
28
  permissions: {},
29
29
  preferences,
30
30
  renderAllFields: false,
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","names":["fieldSchemasToFormState","linkValidation","props","sanitizedFieldsWithoutText","node","validation","options","id","collectionSlug","data","operation","preferences","req","result","fields","documentData","fieldSchemaMap","undefined","initialBlockData","permissions","renderAllFields","schemaPath","errorPathsSet","Set","fieldKey","fieldState","errorPaths","length","errorPath","add","Array","from","join"],"sources":["../../../../src/features/link/server/validate.ts"],"sourcesContent":["import type { Field } from 'payload'\n\nimport { fieldSchemasToFormState } from '@payloadcms/ui/forms/fieldSchemasToFormState'\n\nimport type { NodeValidation } from '../../typesServer.js'\nimport type { LinkFeatureServerProps } from './index.js'\nimport type { SerializedAutoLinkNode, SerializedLinkNode } from './schema.js'\n\nexport const linkValidation = (\n props: LinkFeatureServerProps,\n sanitizedFieldsWithoutText: Field[],\n): NodeValidation<SerializedAutoLinkNode | SerializedLinkNode> => {\n return async ({\n node,\n validation: {\n options: { id, collectionSlug, data, operation, preferences, req },\n },\n }) => {\n /**\n * Run fieldSchemasToFormState as that properly validates link fields and link sub-fields\n */\n\n const result = await fieldSchemasToFormState({\n id,\n collectionSlug,\n data: node.fields,\n documentData: data,\n fields: sanitizedFieldsWithoutText, // Sanitized in feature.server.ts\n fieldSchemaMap: undefined,\n initialBlockData: node.fields,\n operation: operation === 'create' || operation === 'update' ? operation : 'update',\n permissions: {},\n preferences,\n renderAllFields: false,\n req,\n schemaPath: '',\n })\n\n const errorPathsSet = new Set<string>()\n for (const fieldKey in result) {\n const fieldState = result[fieldKey]\n if (fieldState?.errorPaths?.length) {\n for (const errorPath of fieldState.errorPaths) {\n errorPathsSet.add(errorPath)\n }\n }\n }\n const errorPaths = Array.from(errorPathsSet)\n\n if (errorPaths.length) {\n return 'The following fields are invalid: ' + errorPaths.join(', ')\n }\n\n return true\n }\n}\n"],"mappings":"AAEA,SAASA,uBAAuB,QAAQ;AAMxC,OAAO,MAAMC,cAAA,GAAiBA,CAC5BC,KAAA,EACAC,0BAAA;EAEA,OAAO,OAAO;IACZC,IAAI;IACJC,UAAA,EAAY;MACVC,OAAA,EAAS;QAAEC,EAAE;QAAEC,cAAc;QAAEC,IAAI;QAAEC,SAAS;QAAEC,WAAW;QAAEC;MAAG;IAAE;EACnE,CACF;IACC;;;IAIA,MAAMC,MAAA,GAAS,MAAMb,uBAAA,CAAwB;MAC3CO,EAAA;MACAC,cAAA;MACAC,IAAA,EAAML,IAAA,CAAKU,MAAM;MACjBC,YAAA,EAAcN,IAAA;MACdK,MAAA,EAAQX,0BAAA;MACRa,cAAA,EAAgBC,SAAA;MAChBC,gBAAA,EAAkBd,IAAA,CAAKU,MAAM;MAC7BJ,SAAA,EAAWA,SAAA,KAAc,YAAYA,SAAA,KAAc,WAAWA,SAAA,GAAY;MAC1ES,WAAA,EAAa,CAAC;MACdR,WAAA;MACAS,eAAA,EAAiB;MACjBR,GAAA;MACAS,UAAA,EAAY;IACd;IAEA,MAAMC,aAAA,GAAgB,IAAIC,GAAA;IAC1B,KAAK,MAAMC,QAAA,IAAYX,MAAA,EAAQ;MAC7B,MAAMY,UAAA,GAAaZ,MAAM,CAACW,QAAA,CAAS;MACnC,IAAIC,UAAA,EAAYC,UAAA,EAAYC,MAAA,EAAQ;QAClC,KAAK,MAAMC,SAAA,IAAaH,UAAA,CAAWC,UAAU,EAAE;UAC7CJ,aAAA,CAAcO,GAAG,CAACD,SAAA;QACpB;MACF;IACF;IACA,MAAMF,UAAA,GAAaI,KAAA,CAAMC,IAAI,CAACT,aAAA;IAE9B,IAAII,UAAA,CAAWC,MAAM,EAAE;MACrB,OAAO,uCAAuCD,UAAA,CAAWM,IAAI,CAAC;IAChE;IAEA,OAAO;EACT;AACF","ignoreList":[]}
1
+ {"version":3,"file":"validate.js","names":["fieldSchemasToFormState","linkValidation","props","sanitizedFieldsWithoutText","node","validation","options","id","collectionSlug","data","operation","preferences","req","result","fields","documentData","fieldSchemaMap","undefined","initialBlockData","permissions","renderAllFields","schemaPath","errorPathsSet","Set","fieldKey","fieldState","errorPaths","length","errorPath","add","Array","from","join"],"sources":["../../../../src/features/link/server/validate.ts"],"sourcesContent":["import type { Field } from 'payload'\n\nimport { fieldSchemasToFormState } from '@payloadcms/ui/forms/fieldSchemasToFormState'\n\nimport type { NodeValidation } from '../../typesServer.js'\nimport type { LinkFeatureServerProps } from './index.js'\nimport type { SerializedAutoLinkNode, SerializedLinkNode } from './schema.js'\n\nexport const linkValidation = (\n props: LinkFeatureServerProps,\n sanitizedFieldsWithoutText: Field[],\n): NodeValidation<SerializedAutoLinkNode | SerializedLinkNode> => {\n return async ({\n node,\n validation: {\n options: { id, collectionSlug, data, operation, preferences, req },\n },\n }) => {\n /**\n * Run fieldSchemasToFormState as that properly validates link fields and link sub-fields\n */\n\n const result = await fieldSchemasToFormState({\n id,\n collectionSlug,\n data: node.fields,\n documentData: data,\n fields: sanitizedFieldsWithoutText, // Sanitized in feature.server.ts\n fieldSchemaMap: undefined,\n initialBlockData: node.fields,\n operation,\n permissions: {},\n preferences,\n renderAllFields: false,\n req,\n schemaPath: '',\n })\n\n const errorPathsSet = new Set<string>()\n for (const fieldKey in result) {\n const fieldState = result[fieldKey]\n if (fieldState?.errorPaths?.length) {\n for (const errorPath of fieldState.errorPaths) {\n errorPathsSet.add(errorPath)\n }\n }\n }\n const errorPaths = Array.from(errorPathsSet)\n\n if (errorPaths.length) {\n return 'The following fields are invalid: ' + errorPaths.join(', ')\n }\n\n return true\n }\n}\n"],"mappings":"AAEA,SAASA,uBAAuB,QAAQ;AAMxC,OAAO,MAAMC,cAAA,GAAiBA,CAC5BC,KAAA,EACAC,0BAAA;EAEA,OAAO,OAAO;IACZC,IAAI;IACJC,UAAA,EAAY;MACVC,OAAA,EAAS;QAAEC,EAAE;QAAEC,cAAc;QAAEC,IAAI;QAAEC,SAAS;QAAEC,WAAW;QAAEC;MAAG;IAAE;EACnE,CACF;IACC;;;IAIA,MAAMC,MAAA,GAAS,MAAMb,uBAAA,CAAwB;MAC3CO,EAAA;MACAC,cAAA;MACAC,IAAA,EAAML,IAAA,CAAKU,MAAM;MACjBC,YAAA,EAAcN,IAAA;MACdK,MAAA,EAAQX,0BAAA;MACRa,cAAA,EAAgBC,SAAA;MAChBC,gBAAA,EAAkBd,IAAA,CAAKU,MAAM;MAC7BJ,SAAA;MACAS,WAAA,EAAa,CAAC;MACdR,WAAA;MACAS,eAAA,EAAiB;MACjBR,GAAA;MACAS,UAAA,EAAY;IACd;IAEA,MAAMC,aAAA,GAAgB,IAAIC,GAAA;IAC1B,KAAK,MAAMC,QAAA,IAAYX,MAAA,EAAQ;MAC7B,MAAMY,UAAA,GAAaZ,MAAM,CAACW,QAAA,CAAS;MACnC,IAAIC,UAAA,EAAYC,UAAA,EAAYC,MAAA,EAAQ;QAClC,KAAK,MAAMC,SAAA,IAAaH,UAAA,CAAWC,UAAU,EAAE;UAC7CJ,aAAA,CAAcO,GAAG,CAACD,SAAA;QACpB;MACF;IACF;IACA,MAAMF,UAAA,GAAaI,KAAA,CAAMC,IAAI,CAACT,aAAA;IAE9B,IAAII,UAAA,CAAWC,MAAM,EAAE;MACrB,OAAO,uCAAuCD,UAAA,CAAWM,IAAI,CAAC;IAChE;IAEA,OAAO;EACT;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/features/lists/shared/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEpD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,MAAM,WAAW,sBAAsB,CACrC,SAAS,SAAS,qBAAqB,GAAG,qBAAqB,CAC/D,SAAQ,4BAA4B,CAAC,SAAS,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,kBAAkB,CAAC,SAAS,SAAS,qBAAqB,GAAG,qBAAqB,CACjG,SAAQ,4BAA4B,CAAC,SAAS,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,IAAI,GAAG,IAAI,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAkBD,eAAO,MAAM,kBAAkB,EAAE,YAiBhC,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,YAepC,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/features/lists/shared/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEpD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,MAAM,WAAW,sBAAsB,CACrC,SAAS,SAAS,qBAAqB,GAAG,qBAAqB,CAC/D,SAAQ,4BAA4B,CAAC,SAAS,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,kBAAkB,CACjC,SAAS,SAAS,qBAAqB,GAAG,qBAAqB,CAC/D,SAAQ,4BAA4B,CAAC,SAAS,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,IAAI,GAAG,IAAI,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAkBD,eAAO,MAAM,kBAAkB,EAAE,YAiBhC,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,YAepC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","names":["SERIALIZED_LIST_NODE_TS","SERIALIZED_LIST_ITEM_NODE_TS","listNodeJSONSchema","elementNodeSchema","nodeUnionName","typeStringDefinitions","add","nodeType","properties","checked","type","listType","enum","start","tag","required","tsType","listItemNodeJSONSchema","value"],"sources":["../../../../src/features/lists/shared/schema.ts"],"sourcesContent":["import type { SerializedLexicalNode } from 'lexical'\n\nimport type { SerializedLexicalElementBase } from '../../../types/nodeTypes.js'\nimport type { JSONSchemaFn } from '../../typesServer.js'\n\nexport interface SerializedListItemNode<\n TChildren extends SerializedLexicalNode = SerializedLexicalNode,\n> extends SerializedLexicalElementBase<TChildren> {\n checked?: boolean\n type: 'listitem'\n value: number\n}\n\nexport interface SerializedListNode<TChildren extends SerializedLexicalNode = SerializedLexicalNode>\n extends SerializedLexicalElementBase<TChildren> {\n checked?: boolean\n listType: 'bullet' | 'check' | 'number'\n start: number\n tag: 'ol' | 'ul'\n type: 'list'\n}\n\n/** MUST stay byte-for-byte in sync with the runtime `SerializedListNode` declared above. */\nconst SERIALIZED_LIST_NODE_TS = `export interface SerializedListNode<TChildren> extends SerializedLexicalElementBase<TChildren> {\n type: 'list';\n checked?: boolean;\n listType: 'number' | 'bullet' | 'check';\n start: number;\n tag: 'ul' | 'ol';\n}`\n\n/** MUST stay byte-for-byte in sync with the runtime `SerializedListItemNode` declared above. */\nconst SERIALIZED_LIST_ITEM_NODE_TS = `export interface SerializedListItemNode<TChildren> extends SerializedLexicalElementBase<TChildren> {\n type: 'listitem';\n checked?: boolean;\n value: number;\n}`\n\nexport const listNodeJSONSchema: JSONSchemaFn = ({\n elementNodeSchema,\n nodeUnionName,\n typeStringDefinitions,\n}) => {\n typeStringDefinitions.add(SERIALIZED_LIST_NODE_TS)\n return elementNodeSchema({\n nodeType: 'list',\n properties: {\n checked: { type: 'boolean' },\n listType: { type: 'string', enum: ['number', 'bullet', 'check'] },\n start: { type: 'integer' },\n tag: { type: 'string', enum: ['ul', 'ol'] },\n },\n required: ['listType', 'start', 'tag'],\n tsType: `SerializedListNode<${nodeUnionName}>`,\n })\n}\n\nexport const listItemNodeJSONSchema: JSONSchemaFn = ({\n elementNodeSchema,\n nodeUnionName,\n typeStringDefinitions,\n}) => {\n typeStringDefinitions.add(SERIALIZED_LIST_ITEM_NODE_TS)\n return elementNodeSchema({\n nodeType: 'listitem',\n properties: {\n checked: { type: 'boolean' },\n value: { type: 'integer' },\n },\n required: ['value'],\n tsType: `SerializedListItemNode<${nodeUnionName}>`,\n })\n}\n"],"mappings":"AAsBA,4FACA,MAAMA,uBAAA,GAA0B;;;;;;EAM9B;AAEF;AACA,MAAMC,4BAAA,GAA+B;;;;EAInC;AAEF,OAAO,MAAMC,kBAAA,GAAmCA,CAAC;EAC/CC,iBAAiB;EACjBC,aAAa;EACbC;AAAqB,CACtB;EACCA,qBAAA,CAAsBC,GAAG,CAACN,uBAAA;EAC1B,OAAOG,iBAAA,CAAkB;IACvBI,QAAA,EAAU;IACVC,UAAA,EAAY;MACVC,OAAA,EAAS;QAAEC,IAAA,EAAM;MAAU;MAC3BC,QAAA,EAAU;QAAED,IAAA,EAAM;QAAUE,IAAA,EAAM,CAAC,UAAU,UAAU;MAAS;MAChEC,KAAA,EAAO;QAAEH,IAAA,EAAM;MAAU;MACzBI,GAAA,EAAK;QAAEJ,IAAA,EAAM;QAAUE,IAAA,EAAM,CAAC,MAAM;MAAM;IAC5C;IACAG,QAAA,EAAU,CAAC,YAAY,SAAS,MAAM;IACtCC,MAAA,EAAQ,sBAAsBZ,aAAA;EAChC;AACF;AAEA,OAAO,MAAMa,sBAAA,GAAuCA,CAAC;EACnDd,iBAAiB;EACjBC,aAAa;EACbC;AAAqB,CACtB;EACCA,qBAAA,CAAsBC,GAAG,CAACL,4BAAA;EAC1B,OAAOE,iBAAA,CAAkB;IACvBI,QAAA,EAAU;IACVC,UAAA,EAAY;MACVC,OAAA,EAAS;QAAEC,IAAA,EAAM;MAAU;MAC3BQ,KAAA,EAAO;QAAER,IAAA,EAAM;MAAU;IAC3B;IACAK,QAAA,EAAU,CAAC,QAAQ;IACnBC,MAAA,EAAQ,0BAA0BZ,aAAA;EACpC;AACF","ignoreList":[]}
1
+ {"version":3,"file":"schema.js","names":["SERIALIZED_LIST_NODE_TS","SERIALIZED_LIST_ITEM_NODE_TS","listNodeJSONSchema","elementNodeSchema","nodeUnionName","typeStringDefinitions","add","nodeType","properties","checked","type","listType","enum","start","tag","required","tsType","listItemNodeJSONSchema","value"],"sources":["../../../../src/features/lists/shared/schema.ts"],"sourcesContent":["import type { SerializedLexicalNode } from 'lexical'\n\nimport type { SerializedLexicalElementBase } from '../../../types/nodeTypes.js'\nimport type { JSONSchemaFn } from '../../typesServer.js'\n\nexport interface SerializedListItemNode<\n TChildren extends SerializedLexicalNode = SerializedLexicalNode,\n> extends SerializedLexicalElementBase<TChildren> {\n checked?: boolean\n type: 'listitem'\n value: number\n}\n\nexport interface SerializedListNode<\n TChildren extends SerializedLexicalNode = SerializedLexicalNode,\n> extends SerializedLexicalElementBase<TChildren> {\n checked?: boolean\n listType: 'bullet' | 'check' | 'number'\n start: number\n tag: 'ol' | 'ul'\n type: 'list'\n}\n\n/** MUST stay byte-for-byte in sync with the runtime `SerializedListNode` declared above. */\nconst SERIALIZED_LIST_NODE_TS = `export interface SerializedListNode<TChildren> extends SerializedLexicalElementBase<TChildren> {\n type: 'list';\n checked?: boolean;\n listType: 'number' | 'bullet' | 'check';\n start: number;\n tag: 'ul' | 'ol';\n}`\n\n/** MUST stay byte-for-byte in sync with the runtime `SerializedListItemNode` declared above. */\nconst SERIALIZED_LIST_ITEM_NODE_TS = `export interface SerializedListItemNode<TChildren> extends SerializedLexicalElementBase<TChildren> {\n type: 'listitem';\n checked?: boolean;\n value: number;\n}`\n\nexport const listNodeJSONSchema: JSONSchemaFn = ({\n elementNodeSchema,\n nodeUnionName,\n typeStringDefinitions,\n}) => {\n typeStringDefinitions.add(SERIALIZED_LIST_NODE_TS)\n return elementNodeSchema({\n nodeType: 'list',\n properties: {\n checked: { type: 'boolean' },\n listType: { type: 'string', enum: ['number', 'bullet', 'check'] },\n start: { type: 'integer' },\n tag: { type: 'string', enum: ['ul', 'ol'] },\n },\n required: ['listType', 'start', 'tag'],\n tsType: `SerializedListNode<${nodeUnionName}>`,\n })\n}\n\nexport const listItemNodeJSONSchema: JSONSchemaFn = ({\n elementNodeSchema,\n nodeUnionName,\n typeStringDefinitions,\n}) => {\n typeStringDefinitions.add(SERIALIZED_LIST_ITEM_NODE_TS)\n return elementNodeSchema({\n nodeType: 'listitem',\n properties: {\n checked: { type: 'boolean' },\n value: { type: 'integer' },\n },\n required: ['value'],\n tsType: `SerializedListItemNode<${nodeUnionName}>`,\n })\n}\n"],"mappings":"AAuBA,4FACA,MAAMA,uBAAA,GAA0B;;;;;;EAM9B;AAEF;AACA,MAAMC,4BAAA,GAA+B;;;;EAInC;AAEF,OAAO,MAAMC,kBAAA,GAAmCA,CAAC;EAC/CC,iBAAiB;EACjBC,aAAa;EACbC;AAAqB,CACtB;EACCA,qBAAA,CAAsBC,GAAG,CAACN,uBAAA;EAC1B,OAAOG,iBAAA,CAAkB;IACvBI,QAAA,EAAU;IACVC,UAAA,EAAY;MACVC,OAAA,EAAS;QAAEC,IAAA,EAAM;MAAU;MAC3BC,QAAA,EAAU;QAAED,IAAA,EAAM;QAAUE,IAAA,EAAM,CAAC,UAAU,UAAU;MAAS;MAChEC,KAAA,EAAO;QAAEH,IAAA,EAAM;MAAU;MACzBI,GAAA,EAAK;QAAEJ,IAAA,EAAM;QAAUE,IAAA,EAAM,CAAC,MAAM;MAAM;IAC5C;IACAG,QAAA,EAAU,CAAC,YAAY,SAAS,MAAM;IACtCC,MAAA,EAAQ,sBAAsBZ,aAAA;EAChC;AACF;AAEA,OAAO,MAAMa,sBAAA,GAAuCA,CAAC;EACnDd,iBAAiB;EACjBC,aAAa;EACbC;AAAqB,CACtB;EACCA,qBAAA,CAAsBC,GAAG,CAACL,4BAAA;EAC1B,OAAOE,iBAAA,CAAkB;IACvBI,QAAA,EAAU;IACVC,UAAA,EAAY;MACVC,OAAA,EAAS;QAAEC,IAAA,EAAM;MAAU;MAC3BQ,KAAA,EAAO;QAAER,IAAA,EAAM;MAAU;IAC3B;IACAK,QAAA,EAAU,CAAC,QAAQ;IACnBC,MAAA,EAAQ,0BAA0BZ,aAAA;EACpC;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"RelationshipNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/relationship/client/nodes/RelationshipNode.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAEL,KAAK,gBAAgB,EAErB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAE1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAsB/E,qBAAa,gBAAiB,SAAQ,sBAAsB;IAC1D,OAAgB,KAAK,CAAC,IAAI,EAAE,sBAAsB,GAAG,sBAAsB,CAE1E;IAED,OAAgB,OAAO,IAAI,MAAM,CAEhC;IAED,OAAgB,SAAS,IAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,IAAI,CAenE;IAED,OAAgB,UAAU,CAAC,cAAc,EAAE,0BAA0B,GAAG,gBAAgB,CAYvF;IAEQ,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CAS1E;IAEQ,UAAU,IAAI,0BAA0B,CAEhD;CACF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,gBAAgB,GAAG,gBAAgB,CAMhF;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,gBAAgB,GAAG,SAAS,GACtD,IAAI,IAAI,gBAAgB,CAE1B"}
1
+ {"version":3,"file":"RelationshipNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/relationship/client/nodes/RelationshipNode.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAEL,KAAK,gBAAgB,EAErB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAE1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAsB/E,qBAAa,gBAAiB,SAAQ,sBAAsB;IAC1D,OAAgB,KAAK,CAAC,IAAI,EAAE,sBAAsB,GAAG,sBAAsB,CAE1E;IAED,OAAgB,OAAO,IAAI,MAAM,CAEhC;IAED,OAAgB,SAAS,IAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,IAAI,CAenE;IAED,OAAgB,UAAU,CAAC,cAAc,EAAE,0BAA0B,GAAG,gBAAgB,CAQvF;IAEQ,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CAS1E;IAEQ,UAAU,IAAI,0BAA0B,CAEhD;CACF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,gBAAgB,GAAG,gBAAgB,CAMhF;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,gBAAgB,GAAG,SAAS,GACtD,IAAI,IAAI,gBAAgB,CAE1B"}
@@ -42,9 +42,6 @@ export class RelationshipNode extends RelationshipServerNode {
42
42
  };
43
43
  }
44
44
  static importJSON(serializedNode) {
45
- if (serializedNode.version === 1 && serializedNode?.value?.id) {
46
- serializedNode.value = serializedNode.value.id;
47
- }
48
45
  const importedData = {
49
46
  relationTo: serializedNode.relationTo,
50
47
  value: serializedNode.value
@@ -1 +1 @@
1
- {"version":3,"file":"RelationshipNode.js","names":["$applyNodeReplacement","React","RelationshipServerNode","RelationshipComponent","lazy","then","module","default","$relationshipElementToNode","domNode","id","getAttribute","relationTo","node","$createRelationshipNode","value","RelationshipNode","clone","getType","importDOM","div","hasAttribute","conversion","priority","importJSON","serializedNode","version","importedData","setFormat","format","decorate","editor","config","_jsx","className","theme","relationship","data","__data","__format","nodeKey","getKey","exportJSON","$isRelationshipNode"],"sources":["../../../../../src/features/relationship/client/nodes/RelationshipNode.tsx"],"sourcesContent":["'use client'\nimport type { JSX } from 'react'\n\nimport {\n $applyNodeReplacement,\n type DOMConversionMap,\n type DOMConversionOutput,\n type EditorConfig,\n type LexicalEditor,\n type LexicalNode,\n} from 'lexical'\nimport * as React from 'react'\n\nimport type { RelationshipData, SerializedRelationshipNode } from '../../server/schema.js'\n\nimport { RelationshipServerNode } from '../../server/nodes/RelationshipNode.js'\n\nconst RelationshipComponent = React.lazy(() =>\n import('../components/RelationshipComponent.js').then((module) => ({\n default: module.RelationshipComponent,\n })),\n)\n\nfunction $relationshipElementToNode(domNode: HTMLDivElement): DOMConversionOutput | null {\n const id = domNode.getAttribute('data-lexical-relationship-id')\n const relationTo = domNode.getAttribute('data-lexical-relationship-relationTo')\n\n if (id != null && relationTo != null) {\n const node = $createRelationshipNode({\n relationTo,\n value: id,\n })\n return { node }\n }\n return null\n}\n\nexport class RelationshipNode extends RelationshipServerNode {\n static override clone(node: RelationshipServerNode): RelationshipServerNode {\n return super.clone(node)\n }\n\n static override getType(): string {\n return super.getType()\n }\n\n static override importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {\n div: (domNode: HTMLDivElement) => {\n if (\n !domNode.hasAttribute('data-lexical-relationship-relationTo') ||\n !domNode.hasAttribute('data-lexical-relationship-id')\n ) {\n return null\n }\n return {\n conversion: $relationshipElementToNode,\n priority: 2,\n }\n },\n }\n }\n\n static override importJSON(serializedNode: SerializedRelationshipNode): RelationshipNode {\n if (serializedNode.version === 1 && (serializedNode?.value as unknown as { id: string })?.id) {\n serializedNode.value = (serializedNode.value as unknown as { id: string }).id\n }\n\n const importedData: RelationshipData = {\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n const node = $createRelationshipNode(importedData)\n node.setFormat(serializedNode.format)\n return node\n }\n\n override decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element {\n return (\n <RelationshipComponent\n className={config.theme.relationship ?? 'LexicalEditorTheme__relationship'}\n data={this.__data}\n format={this.__format}\n nodeKey={this.getKey()}\n />\n )\n }\n\n override exportJSON(): SerializedRelationshipNode {\n return super.exportJSON()\n }\n}\n\nexport function $createRelationshipNode(data: RelationshipData): RelationshipNode {\n return $applyNodeReplacement(\n new RelationshipNode({\n data,\n }),\n )\n}\n\nexport function $isRelationshipNode(\n node: LexicalNode | null | RelationshipNode | undefined,\n): node is RelationshipNode {\n return node instanceof RelationshipNode\n}\n"],"mappings":"AAAA;;;AAGA,SACEA,qBAAqB,QAMhB;AACP,YAAYC,KAAA,MAAW;AAIvB,SAASC,sBAAsB,QAAQ;AAEvC,MAAMC,qBAAA,gBAAwBF,KAAA,CAAMG,IAAI,CAAC,MACvC,MAAM,CAAC,0CAA0CC,IAAI,CAAEC,MAAA,KAAY;EACjEC,OAAA,EAASD,MAAA,CAAOH;AAClB;AAGF,SAASK,2BAA2BC,OAAuB;EACzD,MAAMC,EAAA,GAAKD,OAAA,CAAQE,YAAY,CAAC;EAChC,MAAMC,UAAA,GAAaH,OAAA,CAAQE,YAAY,CAAC;EAExC,IAAID,EAAA,IAAM,QAAQE,UAAA,IAAc,MAAM;IACpC,MAAMC,IAAA,GAAOC,uBAAA,CAAwB;MACnCF,UAAA;MACAG,KAAA,EAAOL;IACT;IACA,OAAO;MAAEG;IAAK;EAChB;EACA,OAAO;AACT;AAEA,OAAO,MAAMG,gBAAA,SAAyBd,sBAAA;EACpC,OAAgBe,MAAMJ,IAA4B,EAA0B;IAC1E,OAAO,KAAK,CAACI,KAAA,CAAMJ,IAAA;EACrB;EAEA,OAAgBK,QAAA,EAAkB;IAChC,OAAO,KAAK,CAACA,OAAA;EACf;EAEA,OAAgBC,UAAA,EAAqD;IACnE,OAAO;MACLC,GAAA,EAAMX,OAAA;QACJ,IACE,CAACA,OAAA,CAAQY,YAAY,CAAC,2CACtB,CAACZ,OAAA,CAAQY,YAAY,CAAC,iCACtB;UACA,OAAO;QACT;QACA,OAAO;UACLC,UAAA,EAAYd,0BAAA;UACZe,QAAA,EAAU;QACZ;MACF;IACF;EACF;EAEA,OAAgBC,WAAWC,cAA0C,EAAoB;IACvF,IAAIA,cAAA,CAAeC,OAAO,KAAK,KAAMD,cAAA,EAAgBV,KAAA,EAAqCL,EAAA,EAAI;MAC5Fe,cAAA,CAAeV,KAAK,GAAGU,cAAC,CAAeV,KAAK,CAA+BL,EAAE;IAC/E;IAEA,MAAMiB,YAAA,GAAiC;MACrCf,UAAA,EAAYa,cAAA,CAAeb,UAAU;MACrCG,KAAA,EAAOU,cAAA,CAAeV;IACxB;IACA,MAAMF,IAAA,GAAOC,uBAAA,CAAwBa,YAAA;IACrCd,IAAA,CAAKe,SAAS,CAACH,cAAA,CAAeI,MAAM;IACpC,OAAOhB,IAAA;EACT;EAESiB,SAASC,MAAqB,EAAEC,MAAoB,EAAe;IAC1E,oBACEC,IAAA,CAAC9B,qBAAA;MACC+B,SAAA,EAAWF,MAAA,CAAOG,KAAK,CAACC,YAAY,IAAI;MACxCC,IAAA,EAAM,IAAI,CAACC,MAAM;MACjBT,MAAA,EAAQ,IAAI,CAACU,QAAQ;MACrBC,OAAA,EAAS,IAAI,CAACC,MAAM;;EAG1B;EAESC,WAAA,EAAyC;IAChD,OAAO,KAAK,CAACA,UAAA;EACf;AACF;AAEA,OAAO,SAAS5B,wBAAwBuB,IAAsB;EAC5D,OAAOrC,qBAAA,CACL,IAAIgB,gBAAA,CAAiB;IACnBqB;EACF;AAEJ;AAEA,OAAO,SAASM,oBACd9B,IAAuD;EAEvD,OAAOA,IAAA,YAAgBG,gBAAA;AACzB","ignoreList":[]}
1
+ {"version":3,"file":"RelationshipNode.js","names":["$applyNodeReplacement","React","RelationshipServerNode","RelationshipComponent","lazy","then","module","default","$relationshipElementToNode","domNode","id","getAttribute","relationTo","node","$createRelationshipNode","value","RelationshipNode","clone","getType","importDOM","div","hasAttribute","conversion","priority","importJSON","serializedNode","importedData","setFormat","format","decorate","editor","config","_jsx","className","theme","relationship","data","__data","__format","nodeKey","getKey","exportJSON","$isRelationshipNode"],"sources":["../../../../../src/features/relationship/client/nodes/RelationshipNode.tsx"],"sourcesContent":["'use client'\nimport type { JSX } from 'react'\n\nimport {\n $applyNodeReplacement,\n type DOMConversionMap,\n type DOMConversionOutput,\n type EditorConfig,\n type LexicalEditor,\n type LexicalNode,\n} from 'lexical'\nimport * as React from 'react'\n\nimport type { RelationshipData, SerializedRelationshipNode } from '../../server/schema.js'\n\nimport { RelationshipServerNode } from '../../server/nodes/RelationshipNode.js'\n\nconst RelationshipComponent = React.lazy(() =>\n import('../components/RelationshipComponent.js').then((module) => ({\n default: module.RelationshipComponent,\n })),\n)\n\nfunction $relationshipElementToNode(domNode: HTMLDivElement): DOMConversionOutput | null {\n const id = domNode.getAttribute('data-lexical-relationship-id')\n const relationTo = domNode.getAttribute('data-lexical-relationship-relationTo')\n\n if (id != null && relationTo != null) {\n const node = $createRelationshipNode({\n relationTo,\n value: id,\n })\n return { node }\n }\n return null\n}\n\nexport class RelationshipNode extends RelationshipServerNode {\n static override clone(node: RelationshipServerNode): RelationshipServerNode {\n return super.clone(node)\n }\n\n static override getType(): string {\n return super.getType()\n }\n\n static override importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {\n div: (domNode: HTMLDivElement) => {\n if (\n !domNode.hasAttribute('data-lexical-relationship-relationTo') ||\n !domNode.hasAttribute('data-lexical-relationship-id')\n ) {\n return null\n }\n return {\n conversion: $relationshipElementToNode,\n priority: 2,\n }\n },\n }\n }\n\n static override importJSON(serializedNode: SerializedRelationshipNode): RelationshipNode {\n const importedData: RelationshipData = {\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n const node = $createRelationshipNode(importedData)\n node.setFormat(serializedNode.format)\n return node\n }\n\n override decorate(editor: LexicalEditor, config: EditorConfig): JSX.Element {\n return (\n <RelationshipComponent\n className={config.theme.relationship ?? 'LexicalEditorTheme__relationship'}\n data={this.__data}\n format={this.__format}\n nodeKey={this.getKey()}\n />\n )\n }\n\n override exportJSON(): SerializedRelationshipNode {\n return super.exportJSON()\n }\n}\n\nexport function $createRelationshipNode(data: RelationshipData): RelationshipNode {\n return $applyNodeReplacement(\n new RelationshipNode({\n data,\n }),\n )\n}\n\nexport function $isRelationshipNode(\n node: LexicalNode | null | RelationshipNode | undefined,\n): node is RelationshipNode {\n return node instanceof RelationshipNode\n}\n"],"mappings":"AAAA;;;AAGA,SACEA,qBAAqB,QAMhB;AACP,YAAYC,KAAA,MAAW;AAIvB,SAASC,sBAAsB,QAAQ;AAEvC,MAAMC,qBAAA,gBAAwBF,KAAA,CAAMG,IAAI,CAAC,MACvC,MAAM,CAAC,0CAA0CC,IAAI,CAAEC,MAAA,KAAY;EACjEC,OAAA,EAASD,MAAA,CAAOH;AAClB;AAGF,SAASK,2BAA2BC,OAAuB;EACzD,MAAMC,EAAA,GAAKD,OAAA,CAAQE,YAAY,CAAC;EAChC,MAAMC,UAAA,GAAaH,OAAA,CAAQE,YAAY,CAAC;EAExC,IAAID,EAAA,IAAM,QAAQE,UAAA,IAAc,MAAM;IACpC,MAAMC,IAAA,GAAOC,uBAAA,CAAwB;MACnCF,UAAA;MACAG,KAAA,EAAOL;IACT;IACA,OAAO;MAAEG;IAAK;EAChB;EACA,OAAO;AACT;AAEA,OAAO,MAAMG,gBAAA,SAAyBd,sBAAA;EACpC,OAAgBe,MAAMJ,IAA4B,EAA0B;IAC1E,OAAO,KAAK,CAACI,KAAA,CAAMJ,IAAA;EACrB;EAEA,OAAgBK,QAAA,EAAkB;IAChC,OAAO,KAAK,CAACA,OAAA;EACf;EAEA,OAAgBC,UAAA,EAAqD;IACnE,OAAO;MACLC,GAAA,EAAMX,OAAA;QACJ,IACE,CAACA,OAAA,CAAQY,YAAY,CAAC,2CACtB,CAACZ,OAAA,CAAQY,YAAY,CAAC,iCACtB;UACA,OAAO;QACT;QACA,OAAO;UACLC,UAAA,EAAYd,0BAAA;UACZe,QAAA,EAAU;QACZ;MACF;IACF;EACF;EAEA,OAAgBC,WAAWC,cAA0C,EAAoB;IACvF,MAAMC,YAAA,GAAiC;MACrCd,UAAA,EAAYa,cAAA,CAAeb,UAAU;MACrCG,KAAA,EAAOU,cAAA,CAAeV;IACxB;IACA,MAAMF,IAAA,GAAOC,uBAAA,CAAwBY,YAAA;IACrCb,IAAA,CAAKc,SAAS,CAACF,cAAA,CAAeG,MAAM;IACpC,OAAOf,IAAA;EACT;EAESgB,SAASC,MAAqB,EAAEC,MAAoB,EAAe;IAC1E,oBACEC,IAAA,CAAC7B,qBAAA;MACC8B,SAAA,EAAWF,MAAA,CAAOG,KAAK,CAACC,YAAY,IAAI;MACxCC,IAAA,EAAM,IAAI,CAACC,MAAM;MACjBT,MAAA,EAAQ,IAAI,CAACU,QAAQ;MACrBC,OAAA,EAAS,IAAI,CAACC,MAAM;;EAG1B;EAESC,WAAA,EAAyC;IAChD,OAAO,KAAK,CAACA,UAAA;EACf;AACF;AAEA,OAAO,SAAS3B,wBAAwBsB,IAAsB;EAC5D,OAAOpC,qBAAA,CACL,IAAIgB,gBAAA,CAAiB;IACnBoB;EACF;AAEJ;AAEA,OAAO,SAASM,oBACd7B,IAAuD;EAEvD,OAAOA,IAAA,YAAgBG,gBAAA;AACzB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"RelationshipNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/relationship/server/nodes/RelationshipNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AAEhF,OAAO,EAEL,KAAK,gBAAgB,EAErB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,OAAO,EACb,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AAgBhF,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,MAAM,EAAE,gBAAgB,CAAA;IAExB,YAAY,EACV,IAAI,EACJ,MAAM,EACN,GAAG,GACJ,EAAE;QACD,IAAI,EAAE,gBAAgB,CAAA;QACtB,MAAM,CAAC,EAAE,iBAAiB,CAAA;QAC1B,GAAG,CAAC,EAAE,OAAO,CAAA;KACd,EAGA;IAED,OAAgB,KAAK,CAAC,IAAI,EAAE,sBAAsB,GAAG,sBAAsB,CAM1E;IAED,OAAgB,OAAO,IAAI,MAAM,CAEhC;IAED,OAAgB,SAAS,IAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,IAAI,CAenE;IAED,OAAgB,UAAU,CAAC,cAAc,EAAE,0BAA0B,GAAG,sBAAsB,CAY7F;IAED,MAAM,CAAC,QAAQ,IAAI,KAAK,CAEvB;IAEQ,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW,CAIrD;IAEQ,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CAE5E;IAEQ,SAAS,IAAI,eAAe,CAWpC;IAEQ,UAAU,IAAI,0BAA0B,CAOhD;IAED,OAAO,IAAI,gBAAgB,CAE1B;IAEQ,cAAc,IAAI,MAAM,CAEhC;IAED,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAGpC;CACF;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,gBAAgB,GAAG,sBAAsB,CAM5F;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,sBAAsB,GAAG,SAAS,GAC5D,IAAI,IAAI,sBAAsB,CAEhC"}
1
+ {"version":3,"file":"RelationshipNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/relationship/server/nodes/RelationshipNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AAEhF,OAAO,EAEL,KAAK,gBAAgB,EAErB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,OAAO,EACb,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AAgBhF,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,MAAM,EAAE,gBAAgB,CAAA;IAExB,YAAY,EACV,IAAI,EACJ,MAAM,EACN,GAAG,GACJ,EAAE;QACD,IAAI,EAAE,gBAAgB,CAAA;QACtB,MAAM,CAAC,EAAE,iBAAiB,CAAA;QAC1B,GAAG,CAAC,EAAE,OAAO,CAAA;KACd,EAGA;IAED,OAAgB,KAAK,CAAC,IAAI,EAAE,sBAAsB,GAAG,sBAAsB,CAM1E;IAED,OAAgB,OAAO,IAAI,MAAM,CAEhC;IAED,OAAgB,SAAS,IAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,IAAI,CAenE;IAED,OAAgB,UAAU,CAAC,cAAc,EAAE,0BAA0B,GAAG,sBAAsB,CAQ7F;IAED,MAAM,CAAC,QAAQ,IAAI,KAAK,CAEvB;IAEQ,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW,CAIrD;IAEQ,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CAE5E;IAEQ,SAAS,IAAI,eAAe,CAWpC;IAEQ,UAAU,IAAI,0BAA0B,CAMhD;IAED,OAAO,IAAI,gBAAgB,CAE1B;IAEQ,cAAc,IAAI,MAAM,CAEhC;IAED,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAGpC;CACF;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,gBAAgB,GAAG,sBAAsB,CAM5F;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,sBAAsB,GAAG,SAAS,GAC5D,IAAI,IAAI,sBAAsB,CAEhC"}
@@ -49,9 +49,6 @@ export class RelationshipServerNode extends DecoratorBlockNode {
49
49
  };
50
50
  }
51
51
  static importJSON(serializedNode) {
52
- if (serializedNode.version === 1 && serializedNode?.value?.id) {
53
- serializedNode.value = serializedNode.value.id;
54
- }
55
52
  const importedData = {
56
53
  relationTo: serializedNode.relationTo,
57
54
  value: serializedNode.value
@@ -85,8 +82,7 @@ export class RelationshipServerNode extends DecoratorBlockNode {
85
82
  return {
86
83
  ...super.exportJSON(),
87
84
  ...this.getData(),
88
- type: 'relationship',
89
- version: 2
85
+ type: 'relationship'
90
86
  };
91
87
  }
92
88
  getData() {
@@ -1 +1 @@
1
- {"version":3,"file":"RelationshipNode.js","names":["DecoratorBlockNode","addClassNamesToElement","$applyNodeReplacement","$relationshipElementToServerNode","domNode","id","getAttribute","relationTo","node","$createServerRelationshipNode","value","RelationshipServerNode","__data","constructor","data","format","key","clone","__format","__key","getType","importDOM","div","hasAttribute","conversion","priority","importJSON","serializedNode","version","importedData","setFormat","isInline","createDOM","config","element","document","createElement","theme","relationship","decorate","_editor","_config","exportDOM","setAttribute","String","text","createTextNode","getTextContent","append","exportJSON","getData","type","getLatest","setData","writable","getWritable","$isServerRelationshipNode"],"sources":["../../../../../src/features/relationship/server/nodes/RelationshipNode.tsx"],"sourcesContent":["import type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport { addClassNamesToElement } from '@lexical/utils'\nimport {\n $applyNodeReplacement,\n type DOMConversionMap,\n type DOMConversionOutput,\n type DOMExportOutput,\n type EditorConfig,\n type ElementFormatType,\n type LexicalEditor,\n type LexicalNode,\n type NodeKey,\n} from 'lexical'\n\nimport type { RelationshipData, SerializedRelationshipNode } from '../schema.js'\n\nfunction $relationshipElementToServerNode(domNode: HTMLDivElement): DOMConversionOutput | null {\n const id = domNode.getAttribute('data-lexical-relationship-id')\n const relationTo = domNode.getAttribute('data-lexical-relationship-relationTo')\n\n if (id != null && relationTo != null) {\n const node = $createServerRelationshipNode({\n relationTo,\n value: id,\n })\n return { node }\n }\n return null\n}\n\nexport class RelationshipServerNode extends DecoratorBlockNode {\n __data: RelationshipData\n\n constructor({\n data,\n format,\n key,\n }: {\n data: RelationshipData\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__data = data\n }\n\n static override clone(node: RelationshipServerNode): RelationshipServerNode {\n return new this({\n data: node.__data,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'relationship'\n }\n\n static override importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {\n div: (domNode: HTMLDivElement) => {\n if (\n !domNode.hasAttribute('data-lexical-relationship-relationTo') ||\n !domNode.hasAttribute('data-lexical-relationship-id')\n ) {\n return null\n }\n return {\n conversion: $relationshipElementToServerNode,\n priority: 2,\n }\n },\n }\n }\n\n static override importJSON(serializedNode: SerializedRelationshipNode): RelationshipServerNode {\n if (serializedNode.version === 1 && (serializedNode?.value as unknown as { id: string })?.id) {\n serializedNode.value = (serializedNode.value as unknown as { id: string }).id\n }\n\n const importedData: RelationshipData = {\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n const node = $createServerRelationshipNode(importedData)\n node.setFormat(serializedNode.format)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n override createDOM(config?: EditorConfig): HTMLElement {\n const element = document.createElement('div')\n addClassNamesToElement(element, config?.theme?.relationship)\n return element\n }\n\n override decorate(_editor: LexicalEditor, _config: EditorConfig): JSX.Element {\n return null as unknown as JSX.Element\n }\n\n override exportDOM(): DOMExportOutput {\n const element = document.createElement('div')\n element.setAttribute(\n 'data-lexical-relationship-id',\n String(typeof this.__data?.value === 'object' ? this.__data?.value?.id : this.__data?.value),\n )\n element.setAttribute('data-lexical-relationship-relationTo', this.__data?.relationTo)\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n override exportJSON(): SerializedRelationshipNode {\n return {\n ...super.exportJSON(),\n ...this.getData(),\n type: 'relationship',\n version: 2,\n }\n }\n\n getData(): RelationshipData {\n return this.getLatest().__data\n }\n\n override getTextContent(): string {\n return `${this.__data?.relationTo} relation to ${typeof this.__data?.value === 'object' ? this.__data?.value?.id : this.__data?.value}`\n }\n\n setData(data: RelationshipData): void {\n const writable = this.getWritable()\n writable.__data = data\n }\n}\n\nexport function $createServerRelationshipNode(data: RelationshipData): RelationshipServerNode {\n return $applyNodeReplacement(\n new RelationshipServerNode({\n data,\n }),\n )\n}\n\nexport function $isServerRelationshipNode(\n node: LexicalNode | null | RelationshipServerNode | undefined,\n): node is RelationshipServerNode {\n return node instanceof RelationshipServerNode\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"RelationshipNode.js","names":["DecoratorBlockNode","addClassNamesToElement","$applyNodeReplacement","$relationshipElementToServerNode","domNode","id","getAttribute","relationTo","node","$createServerRelationshipNode","value","RelationshipServerNode","__data","constructor","data","format","key","clone","__format","__key","getType","importDOM","div","hasAttribute","conversion","priority","importJSON","serializedNode","importedData","setFormat","isInline","createDOM","config","element","document","createElement","theme","relationship","decorate","_editor","_config","exportDOM","setAttribute","String","text","createTextNode","getTextContent","append","exportJSON","getData","type","getLatest","setData","writable","getWritable","$isServerRelationshipNode"],"sources":["../../../../../src/features/relationship/server/nodes/RelationshipNode.tsx"],"sourcesContent":["import type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport { addClassNamesToElement } from '@lexical/utils'\nimport {\n $applyNodeReplacement,\n type DOMConversionMap,\n type DOMConversionOutput,\n type DOMExportOutput,\n type EditorConfig,\n type ElementFormatType,\n type LexicalEditor,\n type LexicalNode,\n type NodeKey,\n} from 'lexical'\n\nimport type { RelationshipData, SerializedRelationshipNode } from '../schema.js'\n\nfunction $relationshipElementToServerNode(domNode: HTMLDivElement): DOMConversionOutput | null {\n const id = domNode.getAttribute('data-lexical-relationship-id')\n const relationTo = domNode.getAttribute('data-lexical-relationship-relationTo')\n\n if (id != null && relationTo != null) {\n const node = $createServerRelationshipNode({\n relationTo,\n value: id,\n })\n return { node }\n }\n return null\n}\n\nexport class RelationshipServerNode extends DecoratorBlockNode {\n __data: RelationshipData\n\n constructor({\n data,\n format,\n key,\n }: {\n data: RelationshipData\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__data = data\n }\n\n static override clone(node: RelationshipServerNode): RelationshipServerNode {\n return new this({\n data: node.__data,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static override getType(): string {\n return 'relationship'\n }\n\n static override importDOM(): DOMConversionMap<HTMLDivElement> | null {\n return {\n div: (domNode: HTMLDivElement) => {\n if (\n !domNode.hasAttribute('data-lexical-relationship-relationTo') ||\n !domNode.hasAttribute('data-lexical-relationship-id')\n ) {\n return null\n }\n return {\n conversion: $relationshipElementToServerNode,\n priority: 2,\n }\n },\n }\n }\n\n static override importJSON(serializedNode: SerializedRelationshipNode): RelationshipServerNode {\n const importedData: RelationshipData = {\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n const node = $createServerRelationshipNode(importedData)\n node.setFormat(serializedNode.format)\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n override createDOM(config?: EditorConfig): HTMLElement {\n const element = document.createElement('div')\n addClassNamesToElement(element, config?.theme?.relationship)\n return element\n }\n\n override decorate(_editor: LexicalEditor, _config: EditorConfig): JSX.Element {\n return null as unknown as JSX.Element\n }\n\n override exportDOM(): DOMExportOutput {\n const element = document.createElement('div')\n element.setAttribute(\n 'data-lexical-relationship-id',\n String(typeof this.__data?.value === 'object' ? this.__data?.value?.id : this.__data?.value),\n )\n element.setAttribute('data-lexical-relationship-relationTo', this.__data?.relationTo)\n\n const text = document.createTextNode(this.getTextContent())\n element.append(text)\n return { element }\n }\n\n override exportJSON(): SerializedRelationshipNode {\n return {\n ...super.exportJSON(),\n ...this.getData(),\n type: 'relationship',\n }\n }\n\n getData(): RelationshipData {\n return this.getLatest().__data\n }\n\n override getTextContent(): string {\n return `${this.__data?.relationTo} relation to ${typeof this.__data?.value === 'object' ? this.__data?.value?.id : this.__data?.value}`\n }\n\n setData(data: RelationshipData): void {\n const writable = this.getWritable()\n writable.__data = data\n }\n}\n\nexport function $createServerRelationshipNode(data: RelationshipData): RelationshipServerNode {\n return $applyNodeReplacement(\n new RelationshipServerNode({\n data,\n }),\n )\n}\n\nexport function $isServerRelationshipNode(\n node: LexicalNode | null | RelationshipServerNode | undefined,\n): node is RelationshipServerNode {\n return node instanceof RelationshipServerNode\n}\n"],"mappings":"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","ignoreList":[]}
@@ -22,6 +22,7 @@ export type SerializedRelationshipNode<TSlugs extends CollectionSlug = NonUpload
22
22
  }[TSlugs] & {
23
23
  format: LexicalElementFormat;
24
24
  type: 'relationship';
25
+ /** @deprecated Ignored when loading. Typed as required only to match Lexical's types: rich text sent through the API, CLI or MCP may not contain it. */
25
26
  version: number;
26
27
  };
27
28
  export declare const createRelationshipNodeJSONSchema: (props: RelationshipFeatureServerProps) => JSONSchemaFn;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/features/relationship/server/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAA;AAIhE,MAAM,MAAM,gBAAgB,GAAG;KAC5B,eAAe,IAAI,cAAc,GAAG;QACnC,UAAU,EAAE,eAAe,CAAA;QAC3B,KAAK,EAAE,sBAAsB,CAAC,eAAe,CAAC,GAAG,uBAAuB,CAAC,eAAe,CAAC,CAAA;KAC1F;CACF,CAAC,cAAc,CAAC,CAAA;AAEjB;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC,SAAS;IAC5F,KAAK;CACN,GACG,cAAc,GACd,OAAO,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAA;AAEjD,MAAM,MAAM,0BAA0B,CAAC,MAAM,SAAS,cAAc,GAAG,uBAAuB,IAAI;KAC/F,KAAK,IAAI,MAAM,GAAG;QACjB,UAAU,EAAE,KAAK,CAAA;QACjB,KAAK,EAAE,sBAAsB,CAAC,KAAK,CAAC,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAA;KACtE;CACF,CAAC,MAAM,CAAC,GAAG;IACV,MAAM,EAAE,oBAAoB,CAAA;IAC5B,IAAI,EAAE,cAAc,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AA0BD,eAAO,MAAM,gCAAgC,UACnC,8BAA8B,KAAG,YAiDxC,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/features/relationship/server/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAA;AAIhE,MAAM,MAAM,gBAAgB,GAAG;KAC5B,eAAe,IAAI,cAAc,GAAG;QACnC,UAAU,EAAE,eAAe,CAAA;QAC3B,KAAK,EAAE,sBAAsB,CAAC,eAAe,CAAC,GAAG,uBAAuB,CAAC,eAAe,CAAC,CAAA;KAC1F;CACF,CAAC,cAAc,CAAC,CAAA;AAEjB;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC,SAAS;IAC5F,KAAK;CACN,GACG,cAAc,GACd,OAAO,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAA;AAEjD,MAAM,MAAM,0BAA0B,CAAC,MAAM,SAAS,cAAc,GAAG,uBAAuB,IAAI;KAC/F,KAAK,IAAI,MAAM,GAAG;QACjB,UAAU,EAAE,KAAK,CAAA;QACjB,KAAK,EAAE,sBAAsB,CAAC,KAAK,CAAC,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAA;KACtE;CACF,CAAC,MAAM,CAAC,GAAG;IACV,MAAM,EAAE,oBAAoB,CAAA;IAC5B,IAAI,EAAE,cAAc,CAAA;IACpB,wJAAwJ;IACxJ,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AA4BD,eAAO,MAAM,gCAAgC,UACnC,8BAA8B,KAAG,YAiDxC,CAAA"}
@@ -3,6 +3,7 @@ import { formatSchema, versionSchema } from '../../../types/jsonSchemaHelpers.js
3
3
  const SERIALIZED_RELATIONSHIP_NODE_TS = `export type SerializedRelationshipNode<TSlugs extends keyof Config['collections']> = {
4
4
  type: 'relationship';
5
5
  format: LexicalElementFormat;
6
+ /** @deprecated Ignored when loading. Typed as required only to match Lexical's types: rich text sent through the API, CLI or MCP may not contain it. */
6
7
  version: number;
7
8
  } & {
8
9
  [TSlug in TSlugs]: {
@@ -14,6 +15,7 @@ const SERIALIZED_RELATIONSHIP_NODE_TS = `export type SerializedRelationshipNode<
14
15
  const SERIALIZED_RELATIONSHIP_NODE_INPUT_TS = `export type SerializedRelationshipNodeInput<TSlugs extends keyof Config['collections']> = {
15
16
  type: 'relationship';
16
17
  format: LexicalElementFormat;
18
+ /** @deprecated Ignored when loading. Typed as required only to match Lexical's types: rich text sent through the API, CLI or MCP may not contain it. */
17
19
  version: number;
18
20
  } & {
19
21
  [TSlug in TSlugs]: {
@@ -59,7 +61,7 @@ export const createRelationshipNodeJSONSchema = props => ({
59
61
  },
60
62
  version: versionSchema
61
63
  },
62
- required: ['format', 'relationTo', 'type', 'value', 'version']
64
+ required: ['format', 'relationTo', 'type', 'value']
63
65
  };
64
66
  });
65
67
  let schema;
@@ -74,7 +76,7 @@ export const createRelationshipNodeJSONSchema = props => ({
74
76
  },
75
77
  version: versionSchema
76
78
  },
77
- required: ['type', 'version']
79
+ required: ['type']
78
80
  };
79
81
  } else {
80
82
  const slugUnion = enabledCollectionSlugs.map(slug => `'${slug}'`).join(' | ');
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","names":["formatSchema","versionSchema","SERIALIZED_RELATIONSHIP_NODE_TS","SERIALIZED_RELATIONSHIP_NODE_INPUT_TS","createRelationshipNodeJSONSchema","props","collectionIDFieldTypes","typeStringDefinitions","variant","isInput","add","enabledCollectionSlugs","variants","map","slug","idType","type","additionalProperties","properties","const","format","relationTo","value","description","oneOf","$ref","version","required","schema","length","slugUnion","join","baseSchema","tsName","tsType"],"sources":["../../../../src/features/relationship/server/schema.ts"],"sourcesContent":["import type { JSONSchema4 } from 'json-schema'\nimport type {\n CollectionSlug,\n DataFromCollectionSlug,\n IDTypeForCollectionSlug,\n UploadCollectionSlug,\n} from 'payload'\n\nimport type { LexicalElementFormat } from '../../../types/nodeTypes.js'\nimport type { JSONSchemaFn } from '../../typesServer.js'\nimport type { RelationshipFeatureServerProps } from './index.js'\n\nimport { formatSchema, versionSchema } from '../../../types/jsonSchemaHelpers.js'\n\nexport type RelationshipData = {\n [TCollectionSlug in CollectionSlug]: {\n relationTo: TCollectionSlug\n value: DataFromCollectionSlug<TCollectionSlug> | IDTypeForCollectionSlug<TCollectionSlug>\n }\n}[CollectionSlug]\n\n/**\n * Exclude upload collection slugs. This matches runtime behavior, as well as the json schema.\n */\nexport type NonUploadCollectionSlug = [Exclude<CollectionSlug, UploadCollectionSlug>] extends [\n never,\n]\n ? CollectionSlug\n : Exclude<CollectionSlug, UploadCollectionSlug>\n\nexport type SerializedRelationshipNode<TSlugs extends CollectionSlug = NonUploadCollectionSlug> = {\n [TSlug in TSlugs]: {\n relationTo: TSlug\n value: DataFromCollectionSlug<TSlug> | IDTypeForCollectionSlug<TSlug>\n }\n}[TSlugs] & {\n format: LexicalElementFormat\n type: 'relationship'\n version: number\n}\n\n/** MUST stay byte-for-byte in sync with the runtime `SerializedRelationshipNode` declared above. */\nconst SERIALIZED_RELATIONSHIP_NODE_TS = `export type SerializedRelationshipNode<TSlugs extends keyof Config['collections']> = {\n type: 'relationship';\n format: LexicalElementFormat;\n version: number;\n} & {\n [TSlug in TSlugs]: {\n relationTo: TSlug;\n value: Config['collections'][TSlug]['id'] | Config['collections'][TSlug];\n };\n}[TSlugs];`\n\n/** Input variant of `SerializedRelationshipNode`: `value` is ID-only (you only ever write an ID). */\nconst SERIALIZED_RELATIONSHIP_NODE_INPUT_TS = `export type SerializedRelationshipNodeInput<TSlugs extends keyof Config['collections']> = {\n type: 'relationship';\n format: LexicalElementFormat;\n version: number;\n} & {\n [TSlug in TSlugs]: {\n relationTo: TSlug;\n value: Config['collections'][TSlug]['id'];\n };\n}[TSlugs];`\n\nexport const createRelationshipNodeJSONSchema =\n (props: RelationshipFeatureServerProps): JSONSchemaFn =>\n ({ collectionIDFieldTypes, typeStringDefinitions, variant }) => {\n const isInput = variant === 'input'\n typeStringDefinitions.add(\n isInput ? SERIALIZED_RELATIONSHIP_NODE_INPUT_TS : SERIALIZED_RELATIONSHIP_NODE_TS,\n )\n const { enabledCollectionSlugs } = props\n\n const variants: JSONSchema4[] = enabledCollectionSlugs.map((slug) => {\n const idType: 'number' | 'string' = collectionIDFieldTypes[slug] ?? 'string'\n return {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', const: 'relationship' },\n format: formatSchema,\n relationTo: { type: 'string', const: slug },\n value: isInput\n ? { type: idType, description: 'The related document ID.' }\n : {\n description:\n 'The related document by ID (string or number). Populated to the full document when read at depth > 0.',\n oneOf: [{ type: idType }, { $ref: `#/$defs/${slug}` }],\n },\n version: versionSchema,\n },\n required: ['format', 'relationTo', 'type', 'value', 'version'],\n }\n })\n\n let schema: JSONSchema4\n if (variants.length === 0) {\n schema = {\n type: 'object',\n additionalProperties: true,\n properties: {\n type: { type: 'string', const: 'relationship' },\n version: versionSchema,\n },\n required: ['type', 'version'],\n }\n } else {\n const slugUnion = enabledCollectionSlugs.map((slug) => `'${slug}'`).join(' | ')\n const baseSchema: JSONSchema4 = variants.length === 1 ? variants[0]! : { oneOf: variants }\n const tsName = isInput ? 'SerializedRelationshipNodeInput' : 'SerializedRelationshipNode'\n schema = { ...baseSchema, tsType: `${tsName}<${slugUnion}>` }\n }\n\n return schema\n }\n"],"mappings":"AAYA,SAASA,YAAY,EAAEC,aAAa,QAAQ;AA6B5C;AACA,MAAMC,+BAAA,GAAkC;;;;;;;;;WAS7B;AAEX;AACA,MAAMC,qCAAA,GAAwC;;;;;;;;;WASnC;AAEX,OAAO,MAAMC,gCAAA,GACVC,KAAA,IACD,CAAC;EAAEC,sBAAsB;EAAEC,qBAAqB;EAAEC;AAAO,CAAE;EACzD,MAAMC,OAAA,GAAUD,OAAA,KAAY;EAC5BD,qBAAA,CAAsBG,GAAG,CACvBD,OAAA,GAAUN,qCAAA,GAAwCD,+BAAA;EAEpD,MAAM;IAAES;EAAsB,CAAE,GAAGN,KAAA;EAEnC,MAAMO,QAAA,GAA0BD,sBAAA,CAAuBE,GAAG,CAAEC,IAAA;IAC1D,MAAMC,MAAA,GAA8BT,sBAAsB,CAACQ,IAAA,CAAK,IAAI;IACpE,OAAO;MACLE,IAAA,EAAM;MACNC,oBAAA,EAAsB;MACtBC,UAAA,EAAY;QACVF,IAAA,EAAM;UAAEA,IAAA,EAAM;UAAUG,KAAA,EAAO;QAAe;QAC9CC,MAAA,EAAQpB,YAAA;QACRqB,UAAA,EAAY;UAAEL,IAAA,EAAM;UAAUG,KAAA,EAAOL;QAAK;QAC1CQ,KAAA,EAAOb,OAAA,GACH;UAAEO,IAAA,EAAMD,MAAA;UAAQQ,WAAA,EAAa;QAA2B,IACxD;UACEA,WAAA,EACE;UACFC,KAAA,EAAO,CAAC;YAAER,IAAA,EAAMD;UAAO,GAAG;YAAEU,IAAA,EAAM,WAAWX,IAAA;UAAO;QACtD;QACJY,OAAA,EAASzB;MACX;MACA0B,QAAA,EAAU,CAAC,UAAU,cAAc,QAAQ,SAAS;IACtD;EACF;EAEA,IAAIC,MAAA;EACJ,IAAIhB,QAAA,CAASiB,MAAM,KAAK,GAAG;IACzBD,MAAA,GAAS;MACPZ,IAAA,EAAM;MACNC,oBAAA,EAAsB;MACtBC,UAAA,EAAY;QACVF,IAAA,EAAM;UAAEA,IAAA,EAAM;UAAUG,KAAA,EAAO;QAAe;QAC9CO,OAAA,EAASzB;MACX;MACA0B,QAAA,EAAU,CAAC,QAAQ;IACrB;EACF,OAAO;IACL,MAAMG,SAAA,GAAYnB,sBAAA,CAAuBE,GAAG,CAAEC,IAAA,IAAS,IAAIA,IAAA,GAAO,EAAEiB,IAAI,CAAC;IACzE,MAAMC,UAAA,GAA0BpB,QAAA,CAASiB,MAAM,KAAK,IAAIjB,QAAQ,CAAC,EAAE,GAAI;MAAEY,KAAA,EAAOZ;IAAS;IACzF,MAAMqB,MAAA,GAASxB,OAAA,GAAU,oCAAoC;IAC7DmB,MAAA,GAAS;MAAE,GAAGI,UAAU;MAAEE,MAAA,EAAQ,GAAGD,MAAA,IAAUH,SAAA;IAAa;EAC9D;EAEA,OAAOF,MAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"schema.js","names":["formatSchema","versionSchema","SERIALIZED_RELATIONSHIP_NODE_TS","SERIALIZED_RELATIONSHIP_NODE_INPUT_TS","createRelationshipNodeJSONSchema","props","collectionIDFieldTypes","typeStringDefinitions","variant","isInput","add","enabledCollectionSlugs","variants","map","slug","idType","type","additionalProperties","properties","const","format","relationTo","value","description","oneOf","$ref","version","required","schema","length","slugUnion","join","baseSchema","tsName","tsType"],"sources":["../../../../src/features/relationship/server/schema.ts"],"sourcesContent":["import type { JSONSchema4 } from 'json-schema'\nimport type {\n CollectionSlug,\n DataFromCollectionSlug,\n IDTypeForCollectionSlug,\n UploadCollectionSlug,\n} from 'payload'\n\nimport type { LexicalElementFormat } from '../../../types/nodeTypes.js'\nimport type { JSONSchemaFn } from '../../typesServer.js'\nimport type { RelationshipFeatureServerProps } from './index.js'\n\nimport { formatSchema, versionSchema } from '../../../types/jsonSchemaHelpers.js'\n\nexport type RelationshipData = {\n [TCollectionSlug in CollectionSlug]: {\n relationTo: TCollectionSlug\n value: DataFromCollectionSlug<TCollectionSlug> | IDTypeForCollectionSlug<TCollectionSlug>\n }\n}[CollectionSlug]\n\n/**\n * Exclude upload collection slugs. This matches runtime behavior, as well as the json schema.\n */\nexport type NonUploadCollectionSlug = [Exclude<CollectionSlug, UploadCollectionSlug>] extends [\n never,\n]\n ? CollectionSlug\n : Exclude<CollectionSlug, UploadCollectionSlug>\n\nexport type SerializedRelationshipNode<TSlugs extends CollectionSlug = NonUploadCollectionSlug> = {\n [TSlug in TSlugs]: {\n relationTo: TSlug\n value: DataFromCollectionSlug<TSlug> | IDTypeForCollectionSlug<TSlug>\n }\n}[TSlugs] & {\n format: LexicalElementFormat\n type: 'relationship'\n /** @deprecated Ignored when loading. Typed as required only to match Lexical's types: rich text sent through the API, CLI or MCP may not contain it. */\n version: number\n}\n\n/** MUST stay byte-for-byte in sync with the runtime `SerializedRelationshipNode` declared above. */\nconst SERIALIZED_RELATIONSHIP_NODE_TS = `export type SerializedRelationshipNode<TSlugs extends keyof Config['collections']> = {\n type: 'relationship';\n format: LexicalElementFormat;\n /** @deprecated Ignored when loading. Typed as required only to match Lexical's types: rich text sent through the API, CLI or MCP may not contain it. */\n version: number;\n} & {\n [TSlug in TSlugs]: {\n relationTo: TSlug;\n value: Config['collections'][TSlug]['id'] | Config['collections'][TSlug];\n };\n}[TSlugs];`\n\n/** Input variant of `SerializedRelationshipNode`: `value` is ID-only (you only ever write an ID). */\nconst SERIALIZED_RELATIONSHIP_NODE_INPUT_TS = `export type SerializedRelationshipNodeInput<TSlugs extends keyof Config['collections']> = {\n type: 'relationship';\n format: LexicalElementFormat;\n /** @deprecated Ignored when loading. Typed as required only to match Lexical's types: rich text sent through the API, CLI or MCP may not contain it. */\n version: number;\n} & {\n [TSlug in TSlugs]: {\n relationTo: TSlug;\n value: Config['collections'][TSlug]['id'];\n };\n}[TSlugs];`\n\nexport const createRelationshipNodeJSONSchema =\n (props: RelationshipFeatureServerProps): JSONSchemaFn =>\n ({ collectionIDFieldTypes, typeStringDefinitions, variant }) => {\n const isInput = variant === 'input'\n typeStringDefinitions.add(\n isInput ? SERIALIZED_RELATIONSHIP_NODE_INPUT_TS : SERIALIZED_RELATIONSHIP_NODE_TS,\n )\n const { enabledCollectionSlugs } = props\n\n const variants: JSONSchema4[] = enabledCollectionSlugs.map((slug) => {\n const idType: 'number' | 'string' = collectionIDFieldTypes[slug] ?? 'string'\n return {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: { type: 'string', const: 'relationship' },\n format: formatSchema,\n relationTo: { type: 'string', const: slug },\n value: isInput\n ? { type: idType, description: 'The related document ID.' }\n : {\n description:\n 'The related document by ID (string or number). Populated to the full document when read at depth > 0.',\n oneOf: [{ type: idType }, { $ref: `#/$defs/${slug}` }],\n },\n version: versionSchema,\n },\n required: ['format', 'relationTo', 'type', 'value'],\n }\n })\n\n let schema: JSONSchema4\n if (variants.length === 0) {\n schema = {\n type: 'object',\n additionalProperties: true,\n properties: {\n type: { type: 'string', const: 'relationship' },\n version: versionSchema,\n },\n required: ['type'],\n }\n } else {\n const slugUnion = enabledCollectionSlugs.map((slug) => `'${slug}'`).join(' | ')\n const baseSchema: JSONSchema4 = variants.length === 1 ? variants[0]! : { oneOf: variants }\n const tsName = isInput ? 'SerializedRelationshipNodeInput' : 'SerializedRelationshipNode'\n schema = { ...baseSchema, tsType: `${tsName}<${slugUnion}>` }\n }\n\n return schema\n }\n"],"mappings":"AAYA,SAASA,YAAY,EAAEC,aAAa,QAAQ;AA8B5C;AACA,MAAMC,+BAAA,GAAkC;;;;;;;;;;WAU7B;AAEX;AACA,MAAMC,qCAAA,GAAwC;;;;;;;;;;WAUnC;AAEX,OAAO,MAAMC,gCAAA,GACVC,KAAA,IACD,CAAC;EAAEC,sBAAsB;EAAEC,qBAAqB;EAAEC;AAAO,CAAE;EACzD,MAAMC,OAAA,GAAUD,OAAA,KAAY;EAC5BD,qBAAA,CAAsBG,GAAG,CACvBD,OAAA,GAAUN,qCAAA,GAAwCD,+BAAA;EAEpD,MAAM;IAAES;EAAsB,CAAE,GAAGN,KAAA;EAEnC,MAAMO,QAAA,GAA0BD,sBAAA,CAAuBE,GAAG,CAAEC,IAAA;IAC1D,MAAMC,MAAA,GAA8BT,sBAAsB,CAACQ,IAAA,CAAK,IAAI;IACpE,OAAO;MACLE,IAAA,EAAM;MACNC,oBAAA,EAAsB;MACtBC,UAAA,EAAY;QACVF,IAAA,EAAM;UAAEA,IAAA,EAAM;UAAUG,KAAA,EAAO;QAAe;QAC9CC,MAAA,EAAQpB,YAAA;QACRqB,UAAA,EAAY;UAAEL,IAAA,EAAM;UAAUG,KAAA,EAAOL;QAAK;QAC1CQ,KAAA,EAAOb,OAAA,GACH;UAAEO,IAAA,EAAMD,MAAA;UAAQQ,WAAA,EAAa;QAA2B,IACxD;UACEA,WAAA,EACE;UACFC,KAAA,EAAO,CAAC;YAAER,IAAA,EAAMD;UAAO,GAAG;YAAEU,IAAA,EAAM,WAAWX,IAAA;UAAO;QACtD;QACJY,OAAA,EAASzB;MACX;MACA0B,QAAA,EAAU,CAAC,UAAU,cAAc,QAAQ;IAC7C;EACF;EAEA,IAAIC,MAAA;EACJ,IAAIhB,QAAA,CAASiB,MAAM,KAAK,GAAG;IACzBD,MAAA,GAAS;MACPZ,IAAA,EAAM;MACNC,oBAAA,EAAsB;MACtBC,UAAA,EAAY;QACVF,IAAA,EAAM;UAAEA,IAAA,EAAM;UAAUG,KAAA,EAAO;QAAe;QAC9CO,OAAA,EAASzB;MACX;MACA0B,QAAA,EAAU,CAAC;IACb;EACF,OAAO;IACL,MAAMG,SAAA,GAAYnB,sBAAA,CAAuBE,GAAG,CAAEC,IAAA,IAAS,IAAIA,IAAA,GAAO,EAAEiB,IAAI,CAAC;IACzE,MAAMC,UAAA,GAA0BpB,QAAA,CAASiB,MAAM,KAAK,IAAIjB,QAAQ,CAAC,EAAE,GAAI;MAAEY,KAAA,EAAOZ;IAAS;IACzF,MAAMqB,MAAA,GAASxB,OAAA,GAAU,oCAAoC;IAC7DmB,MAAA,GAAS;MAAE,GAAGI,UAAU;MAAEE,MAAA,EAAQ,GAAGD,MAAA,IAAUH,SAAA;IAAa;EAC9D;EAEA,OAAOF,MAAA;AACT","ignoreList":[]}
@@ -291,7 +291,7 @@ const tailwindColors = {
291
291
  '950': 'oklch(0.141 0.005 285.823)'
292
292
  }
293
293
  };
294
- // prettier-ignore
294
+ // oxfmt-ignore
295
295
  /* eslint-disable perfectionist/sort-objects */
296
296
  export const defaultColors = {
297
297
  text: {
@@ -1 +1 @@
1
- {"version":3,"file":"defaultColors.js","names":["tailwindColors","amber","black","blue","current","cyan","emerald","fuchsia","gray","green","indigo","inherit","lime","neutral","orange","pink","purple","red","rose","sky","slate","stone","teal","transparent","violet","white","yellow","zinc","defaultColors","text","css","label","background"],"sources":["../../../src/features/textState/defaultColors.ts"],"sourcesContent":["import type { StateValues } from './feature.server.js'\n\nconst tailwindColors = {\n amber: {\n '50': 'oklch(0.987 0.022 95.277)',\n '100': 'oklch(0.962 0.059 95.617)',\n '200': 'oklch(0.924 0.12 95.746)',\n '300': 'oklch(0.879 0.169 91.605)',\n '400': 'oklch(0.828 0.189 84.429)',\n '500': 'oklch(0.769 0.188 70.08)',\n '600': 'oklch(0.666 0.179 58.318)',\n '700': 'oklch(0.555 0.163 48.998)',\n '800': 'oklch(0.473 0.137 46.201)',\n '900': 'oklch(0.414 0.112 45.904)',\n '950': 'oklch(0.279 0.077 45.635)',\n },\n black: '#000',\n blue: {\n '50': 'oklch(0.97 0.014 254.604)',\n '100': 'oklch(0.932 0.032 255.585)',\n '200': 'oklch(0.882 0.059 254.128)',\n '300': 'oklch(0.809 0.105 251.813)',\n '400': 'oklch(0.707 0.165 254.624)',\n '500': 'oklch(0.623 0.214 259.815)',\n '600': 'oklch(0.546 0.245 262.881)',\n '700': 'oklch(0.488 0.243 264.376)',\n '800': 'oklch(0.424 0.199 265.638)',\n '900': 'oklch(0.379 0.146 265.522)',\n '950': 'oklch(0.282 0.091 267.935)',\n },\n current: 'currentColor',\n cyan: {\n '50': 'oklch(0.984 0.019 200.873)',\n '100': 'oklch(0.956 0.045 203.388)',\n '200': 'oklch(0.917 0.08 205.041)',\n '300': 'oklch(0.865 0.127 207.078)',\n '400': 'oklch(0.789 0.154 211.53)',\n '500': 'oklch(0.715 0.143 215.221)',\n '600': 'oklch(0.609 0.126 221.723)',\n '700': 'oklch(0.52 0.105 223.128)',\n '800': 'oklch(0.45 0.085 224.283)',\n '900': 'oklch(0.398 0.07 227.392)',\n '950': 'oklch(0.302 0.056 229.695)',\n },\n emerald: {\n '50': 'oklch(0.979 0.021 166.113)',\n '100': 'oklch(0.95 0.052 163.051)',\n '200': 'oklch(0.905 0.093 164.15)',\n '300': 'oklch(0.845 0.143 164.978)',\n '400': 'oklch(0.765 0.177 163.223)',\n '500': 'oklch(0.696 0.17 162.48)',\n '600': 'oklch(0.596 0.145 163.225)',\n '700': 'oklch(0.508 0.118 165.612)',\n '800': 'oklch(0.432 0.095 166.913)',\n '900': 'oklch(0.378 0.077 168.94)',\n '950': 'oklch(0.262 0.051 172.552)',\n },\n fuchsia: {\n '50': 'oklch(0.977 0.017 320.058)',\n '100': 'oklch(0.952 0.037 318.852)',\n '200': 'oklch(0.903 0.076 319.62)',\n '300': 'oklch(0.833 0.145 321.434)',\n '400': 'oklch(0.74 0.238 322.16)',\n '500': 'oklch(0.667 0.295 322.15)',\n '600': 'oklch(0.591 0.293 322.896)',\n '700': 'oklch(0.518 0.253 323.949)',\n '800': 'oklch(0.452 0.211 324.591)',\n '900': 'oklch(0.401 0.17 325.612)',\n '950': 'oklch(0.293 0.136 325.661)',\n },\n gray: {\n '50': 'oklch(0.985 0.002 247.839)',\n '100': 'oklch(0.967 0.003 264.542)',\n '200': 'oklch(0.928 0.006 264.531)',\n '300': 'oklch(0.872 0.01 258.338)',\n '400': 'oklch(0.707 0.022 261.325)',\n '500': 'oklch(0.551 0.027 264.364)',\n '600': 'oklch(0.446 0.03 256.802)',\n '700': 'oklch(0.373 0.034 259.733)',\n '800': 'oklch(0.278 0.033 256.848)',\n '900': 'oklch(0.21 0.034 264.665)',\n '950': 'oklch(0.13 0.028 261.692)',\n },\n green: {\n '50': 'oklch(0.982 0.018 155.826)',\n '100': 'oklch(0.962 0.044 156.743)',\n '200': 'oklch(0.925 0.084 155.995)',\n '300': 'oklch(0.871 0.15 154.449)',\n '400': 'oklch(0.792 0.209 151.711)',\n '500': 'oklch(0.723 0.219 149.579)',\n '600': 'oklch(0.627 0.194 149.214)',\n '700': 'oklch(0.527 0.154 150.069)',\n '800': 'oklch(0.448 0.119 151.328)',\n '900': 'oklch(0.393 0.095 152.535)',\n '950': 'oklch(0.266 0.065 152.934)',\n },\n indigo: {\n '50': 'oklch(0.962 0.018 272.314)',\n '100': 'oklch(0.93 0.034 272.788)',\n '200': 'oklch(0.87 0.065 274.039)',\n '300': 'oklch(0.785 0.115 274.713)',\n '400': 'oklch(0.673 0.182 276.935)',\n '500': 'oklch(0.585 0.233 277.117)',\n '600': 'oklch(0.511 0.262 276.966)',\n '700': 'oklch(0.457 0.24 277.023)',\n '800': 'oklch(0.398 0.195 277.366)',\n '900': 'oklch(0.359 0.144 278.697)',\n '950': 'oklch(0.257 0.09 281.288)',\n },\n inherit: 'inherit',\n lime: {\n '50': 'oklch(0.986 0.031 120.757)',\n '100': 'oklch(0.967 0.067 122.328)',\n '200': 'oklch(0.938 0.127 124.321)',\n '300': 'oklch(0.897 0.196 126.665)',\n '400': 'oklch(0.841 0.238 128.85)',\n '500': 'oklch(0.768 0.233 130.85)',\n '600': 'oklch(0.648 0.2 131.684)',\n '700': 'oklch(0.532 0.157 131.589)',\n '800': 'oklch(0.453 0.124 130.933)',\n '900': 'oklch(0.405 0.101 131.063)',\n '950': 'oklch(0.274 0.072 132.109)',\n },\n neutral: {\n '50': 'oklch(0.985 0 0)',\n '100': 'oklch(0.97 0 0)',\n '200': 'oklch(0.922 0 0)',\n '300': 'oklch(0.87 0 0)',\n '400': 'oklch(0.708 0 0)',\n '500': 'oklch(0.556 0 0)',\n '600': 'oklch(0.439 0 0)',\n '700': 'oklch(0.371 0 0)',\n '800': 'oklch(0.269 0 0)',\n '900': 'oklch(0.205 0 0)',\n '950': 'oklch(0.145 0 0)',\n },\n orange: {\n '50': 'oklch(0.98 0.016 73.684)',\n '100': 'oklch(0.954 0.038 75.164)',\n '200': 'oklch(0.901 0.076 70.697)',\n '300': 'oklch(0.837 0.128 66.29)',\n '400': 'oklch(0.75 0.183 55.934)',\n '500': 'oklch(0.705 0.213 47.604)',\n '600': 'oklch(0.646 0.222 41.116)',\n '700': 'oklch(0.553 0.195 38.402)',\n '800': 'oklch(0.47 0.157 37.304)',\n '900': 'oklch(0.408 0.123 38.172)',\n '950': 'oklch(0.266 0.079 36.259)',\n },\n pink: {\n '50': 'oklch(0.971 0.014 343.198)',\n '100': 'oklch(0.948 0.028 342.258)',\n '200': 'oklch(0.899 0.061 343.231)',\n '300': 'oklch(0.823 0.12 346.018)',\n '400': 'oklch(0.718 0.202 349.761)',\n '500': 'oklch(0.656 0.241 354.308)',\n '600': 'oklch(0.592 0.249 0.584)',\n '700': 'oklch(0.525 0.223 3.958)',\n '800': 'oklch(0.459 0.187 3.815)',\n '900': 'oklch(0.408 0.153 2.432)',\n '950': 'oklch(0.284 0.109 3.907)',\n },\n purple: {\n '50': 'oklch(0.977 0.014 308.299)',\n '100': 'oklch(0.946 0.033 307.174)',\n '200': 'oklch(0.902 0.063 306.703)',\n '300': 'oklch(0.827 0.119 306.383)',\n '400': 'oklch(0.714 0.203 305.504)',\n '500': 'oklch(0.627 0.265 303.9)',\n '600': 'oklch(0.558 0.288 302.321)',\n '700': 'oklch(0.496 0.265 301.924)',\n '800': 'oklch(0.438 0.218 303.724)',\n '900': 'oklch(0.381 0.176 304.987)',\n '950': 'oklch(0.291 0.149 302.717)',\n },\n red: {\n '50': 'oklch(0.971 0.013 17.38)',\n '100': 'oklch(0.936 0.032 17.717)',\n '200': 'oklch(0.885 0.062 18.334)',\n '300': 'oklch(0.808 0.114 19.571)',\n '400': 'oklch(0.704 0.191 22.216)',\n '500': 'oklch(0.637 0.237 25.331)',\n '600': 'oklch(0.577 0.245 27.325)',\n '700': 'oklch(0.505 0.213 27.518)',\n '800': 'oklch(0.444 0.177 26.899)',\n '900': 'oklch(0.396 0.141 25.723)',\n '950': 'oklch(0.258 0.092 26.042)',\n },\n rose: {\n '50': 'oklch(0.969 0.015 12.422)',\n '100': 'oklch(0.941 0.03 12.58)',\n '200': 'oklch(0.892 0.058 10.001)',\n '300': 'oklch(0.81 0.117 11.638)',\n '400': 'oklch(0.712 0.194 13.428)',\n '500': 'oklch(0.645 0.246 16.439)',\n '600': 'oklch(0.586 0.253 17.585)',\n '700': 'oklch(0.514 0.222 16.935)',\n '800': 'oklch(0.455 0.188 13.697)',\n '900': 'oklch(0.41 0.159 10.272)',\n '950': 'oklch(0.271 0.105 12.094)',\n },\n sky: {\n '50': 'oklch(0.977 0.013 236.62)',\n '100': 'oklch(0.951 0.026 236.824)',\n '200': 'oklch(0.901 0.058 230.902)',\n '300': 'oklch(0.828 0.111 230.318)',\n '400': 'oklch(0.746 0.16 232.661)',\n '500': 'oklch(0.685 0.169 237.323)',\n '600': 'oklch(0.588 0.158 241.966)',\n '700': 'oklch(0.5 0.134 242.749)',\n '800': 'oklch(0.443 0.11 240.79)',\n '900': 'oklch(0.391 0.09 240.876)',\n '950': 'oklch(0.293 0.066 243.157)',\n },\n slate: {\n '50': 'oklch(0.984 0.003 247.858)',\n '100': 'oklch(0.968 0.007 247.896)',\n '200': 'oklch(0.929 0.013 255.508)',\n '300': 'oklch(0.869 0.022 252.894)',\n '400': 'oklch(0.704 0.04 256.788)',\n '500': 'oklch(0.554 0.046 257.417)',\n '600': 'oklch(0.446 0.043 257.281)',\n '700': 'oklch(0.372 0.044 257.287)',\n '800': 'oklch(0.279 0.041 260.031)',\n '900': 'oklch(0.208 0.042 265.755)',\n '950': 'oklch(0.129 0.042 264.695)',\n },\n stone: {\n '50': 'oklch(0.985 0.001 106.423)',\n '100': 'oklch(0.97 0.001 106.424)',\n '200': 'oklch(0.923 0.003 48.717)',\n '300': 'oklch(0.869 0.005 56.366)',\n '400': 'oklch(0.709 0.01 56.259)',\n '500': 'oklch(0.553 0.013 58.071)',\n '600': 'oklch(0.444 0.011 73.639)',\n '700': 'oklch(0.374 0.01 67.558)',\n '800': 'oklch(0.268 0.007 34.298)',\n '900': 'oklch(0.216 0.006 56.043)',\n '950': 'oklch(0.147 0.004 49.25)',\n },\n teal: {\n '50': 'oklch(0.984 0.014 180.72)',\n '100': 'oklch(0.953 0.051 180.801)',\n '200': 'oklch(0.91 0.096 180.426)',\n '300': 'oklch(0.855 0.138 181.071)',\n '400': 'oklch(0.777 0.152 181.912)',\n '500': 'oklch(0.704 0.14 182.503)',\n '600': 'oklch(0.6 0.118 184.704)',\n '700': 'oklch(0.511 0.096 186.391)',\n '800': 'oklch(0.437 0.078 188.216)',\n '900': 'oklch(0.386 0.063 188.416)',\n '950': 'oklch(0.277 0.046 192.524)',\n },\n transparent: 'transparent',\n violet: {\n '50': 'oklch(0.969 0.016 293.756)',\n '100': 'oklch(0.943 0.029 294.588)',\n '200': 'oklch(0.894 0.057 293.283)',\n '300': 'oklch(0.811 0.111 293.571)',\n '400': 'oklch(0.702 0.183 293.541)',\n '500': 'oklch(0.606 0.25 292.717)',\n '600': 'oklch(0.541 0.281 293.009)',\n '700': 'oklch(0.491 0.27 292.581)',\n '800': 'oklch(0.432 0.232 292.759)',\n '900': 'oklch(0.38 0.189 293.745)',\n '950': 'oklch(0.283 0.141 291.089)',\n },\n white: '#fff',\n yellow: {\n '50': 'oklch(0.987 0.026 102.212)',\n '100': 'oklch(0.973 0.071 103.193)',\n '200': 'oklch(0.945 0.129 101.54)',\n '300': 'oklch(0.905 0.182 98.111)',\n '400': 'oklch(0.852 0.199 91.936)',\n '500': 'oklch(0.795 0.184 86.047)',\n '600': 'oklch(0.681 0.162 75.834)',\n '700': 'oklch(0.554 0.135 66.442)',\n '800': 'oklch(0.476 0.114 61.907)',\n '900': 'oklch(0.421 0.095 57.708)',\n '950': 'oklch(0.286 0.066 53.813)',\n },\n zinc: {\n '50': 'oklch(0.985 0 0)',\n '100': 'oklch(0.967 0.001 286.375)',\n '200': 'oklch(0.92 0.004 286.32)',\n '300': 'oklch(0.871 0.006 286.286)',\n '400': 'oklch(0.705 0.015 286.067)',\n '500': 'oklch(0.552 0.016 285.938)',\n '600': 'oklch(0.442 0.017 285.786)',\n '700': 'oklch(0.37 0.013 285.805)',\n '800': 'oklch(0.274 0.006 286.033)',\n '900': 'oklch(0.21 0.006 285.885)',\n '950': 'oklch(0.141 0.005 285.823)',\n },\n}\n\n// prettier-ignore\n/* eslint-disable perfectionist/sort-objects */\nexport const defaultColors = {\n text: {\n 'text-red': { css: { 'color': `light-dark(${tailwindColors.red[600]}, ${tailwindColors.red[400]})`, }, label: 'Red' },\n 'text-orange': { css: { 'color': `light-dark(${tailwindColors.orange[600]}, ${tailwindColors.orange[400]})`, }, label: 'Orange' },\n 'text-yellow': { css: { 'color': `light-dark(${tailwindColors.yellow[700]}, ${tailwindColors.yellow[300]})`, }, label: 'Yellow' },\n 'text-green': { css: { 'color': `light-dark(${tailwindColors.green[700]}, ${tailwindColors.green[400]})`, }, label: 'Green' },\n 'text-blue': { css: { 'color': `light-dark(${tailwindColors.blue[600]}, ${tailwindColors.blue[400]})`, }, label: 'Blue' },\n 'text-purple': { css: { 'color': `light-dark(${tailwindColors.purple[600]}, ${tailwindColors.purple[400]})`, }, label: 'Purple' },\n 'text-pink': { css: { 'color': `light-dark(${tailwindColors.pink[600]}, ${tailwindColors.pink[400]})`, }, label: 'Pink' },\n } satisfies StateValues,\n background: {\n 'bg-red': { css: { 'background-color': `light-dark(${tailwindColors.red[400]}, ${tailwindColors.red[600]})`, }, label: 'Red' },\n 'bg-orange': { css: { 'background-color': `light-dark(${tailwindColors.orange[400]}, ${tailwindColors.orange[600]})`, }, label: 'Orange' },\n 'bg-yellow': { css: { 'background-color': `light-dark(${tailwindColors.yellow[300]}, ${tailwindColors.yellow[700]})`, }, label: 'Yellow' },\n 'bg-green': { css: { 'background-color': `light-dark(${tailwindColors.green[400]}, ${tailwindColors.green[700]})`, }, label: 'Green' },\n 'bg-blue': { css: { 'background-color': `light-dark(${tailwindColors.blue[400]}, ${tailwindColors.blue[600]})`, }, label: 'Blue' },\n 'bg-purple': { css: { 'background-color': `light-dark(${tailwindColors.purple[400]}, ${tailwindColors.purple[600]})`, }, label: 'Purple' },\n 'bg-pink': { css: { 'background-color': `light-dark(${tailwindColors.pink[400]}, ${tailwindColors.pink[600]})`, }, label: 'Pink' },\n } satisfies StateValues\n }\n"],"mappings":"AAEA,MAAMA,cAAA,GAAiB;EACrBC,KAAA,EAAO;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,KAAA,EAAO;EACPC,IAAA,EAAM;IACJ,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,OAAA,EAAS;EACTC,IAAA,EAAM;IACJ,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,OAAA,EAAS;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,OAAA,EAAS;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,IAAA,EAAM;IACJ,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,KAAA,EAAO;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,MAAA,EAAQ;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,OAAA,EAAS;EACTC,IAAA,EAAM;IACJ,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,OAAA,EAAS;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,MAAA,EAAQ;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,IAAA,EAAM;IACJ,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,MAAA,EAAQ;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,GAAA,EAAK;IACH,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,IAAA,EAAM;IACJ,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,GAAA,EAAK;IACH,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,KAAA,EAAO;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,KAAA,EAAO;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,O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","ignoreList":[]}
1
+ {"version":3,"file":"defaultColors.js","names":["tailwindColors","amber","black","blue","current","cyan","emerald","fuchsia","gray","green","indigo","inherit","lime","neutral","orange","pink","purple","red","rose","sky","slate","stone","teal","transparent","violet","white","yellow","zinc","defaultColors","text","css","label","background"],"sources":["../../../src/features/textState/defaultColors.ts"],"sourcesContent":["import type { StateValues } from './feature.server.js'\n\nconst tailwindColors = {\n amber: {\n '50': 'oklch(0.987 0.022 95.277)',\n '100': 'oklch(0.962 0.059 95.617)',\n '200': 'oklch(0.924 0.12 95.746)',\n '300': 'oklch(0.879 0.169 91.605)',\n '400': 'oklch(0.828 0.189 84.429)',\n '500': 'oklch(0.769 0.188 70.08)',\n '600': 'oklch(0.666 0.179 58.318)',\n '700': 'oklch(0.555 0.163 48.998)',\n '800': 'oklch(0.473 0.137 46.201)',\n '900': 'oklch(0.414 0.112 45.904)',\n '950': 'oklch(0.279 0.077 45.635)',\n },\n black: '#000',\n blue: {\n '50': 'oklch(0.97 0.014 254.604)',\n '100': 'oklch(0.932 0.032 255.585)',\n '200': 'oklch(0.882 0.059 254.128)',\n '300': 'oklch(0.809 0.105 251.813)',\n '400': 'oklch(0.707 0.165 254.624)',\n '500': 'oklch(0.623 0.214 259.815)',\n '600': 'oklch(0.546 0.245 262.881)',\n '700': 'oklch(0.488 0.243 264.376)',\n '800': 'oklch(0.424 0.199 265.638)',\n '900': 'oklch(0.379 0.146 265.522)',\n '950': 'oklch(0.282 0.091 267.935)',\n },\n current: 'currentColor',\n cyan: {\n '50': 'oklch(0.984 0.019 200.873)',\n '100': 'oklch(0.956 0.045 203.388)',\n '200': 'oklch(0.917 0.08 205.041)',\n '300': 'oklch(0.865 0.127 207.078)',\n '400': 'oklch(0.789 0.154 211.53)',\n '500': 'oklch(0.715 0.143 215.221)',\n '600': 'oklch(0.609 0.126 221.723)',\n '700': 'oklch(0.52 0.105 223.128)',\n '800': 'oklch(0.45 0.085 224.283)',\n '900': 'oklch(0.398 0.07 227.392)',\n '950': 'oklch(0.302 0.056 229.695)',\n },\n emerald: {\n '50': 'oklch(0.979 0.021 166.113)',\n '100': 'oklch(0.95 0.052 163.051)',\n '200': 'oklch(0.905 0.093 164.15)',\n '300': 'oklch(0.845 0.143 164.978)',\n '400': 'oklch(0.765 0.177 163.223)',\n '500': 'oklch(0.696 0.17 162.48)',\n '600': 'oklch(0.596 0.145 163.225)',\n '700': 'oklch(0.508 0.118 165.612)',\n '800': 'oklch(0.432 0.095 166.913)',\n '900': 'oklch(0.378 0.077 168.94)',\n '950': 'oklch(0.262 0.051 172.552)',\n },\n fuchsia: {\n '50': 'oklch(0.977 0.017 320.058)',\n '100': 'oklch(0.952 0.037 318.852)',\n '200': 'oklch(0.903 0.076 319.62)',\n '300': 'oklch(0.833 0.145 321.434)',\n '400': 'oklch(0.74 0.238 322.16)',\n '500': 'oklch(0.667 0.295 322.15)',\n '600': 'oklch(0.591 0.293 322.896)',\n '700': 'oklch(0.518 0.253 323.949)',\n '800': 'oklch(0.452 0.211 324.591)',\n '900': 'oklch(0.401 0.17 325.612)',\n '950': 'oklch(0.293 0.136 325.661)',\n },\n gray: {\n '50': 'oklch(0.985 0.002 247.839)',\n '100': 'oklch(0.967 0.003 264.542)',\n '200': 'oklch(0.928 0.006 264.531)',\n '300': 'oklch(0.872 0.01 258.338)',\n '400': 'oklch(0.707 0.022 261.325)',\n '500': 'oklch(0.551 0.027 264.364)',\n '600': 'oklch(0.446 0.03 256.802)',\n '700': 'oklch(0.373 0.034 259.733)',\n '800': 'oklch(0.278 0.033 256.848)',\n '900': 'oklch(0.21 0.034 264.665)',\n '950': 'oklch(0.13 0.028 261.692)',\n },\n green: {\n '50': 'oklch(0.982 0.018 155.826)',\n '100': 'oklch(0.962 0.044 156.743)',\n '200': 'oklch(0.925 0.084 155.995)',\n '300': 'oklch(0.871 0.15 154.449)',\n '400': 'oklch(0.792 0.209 151.711)',\n '500': 'oklch(0.723 0.219 149.579)',\n '600': 'oklch(0.627 0.194 149.214)',\n '700': 'oklch(0.527 0.154 150.069)',\n '800': 'oklch(0.448 0.119 151.328)',\n '900': 'oklch(0.393 0.095 152.535)',\n '950': 'oklch(0.266 0.065 152.934)',\n },\n indigo: {\n '50': 'oklch(0.962 0.018 272.314)',\n '100': 'oklch(0.93 0.034 272.788)',\n '200': 'oklch(0.87 0.065 274.039)',\n '300': 'oklch(0.785 0.115 274.713)',\n '400': 'oklch(0.673 0.182 276.935)',\n '500': 'oklch(0.585 0.233 277.117)',\n '600': 'oklch(0.511 0.262 276.966)',\n '700': 'oklch(0.457 0.24 277.023)',\n '800': 'oklch(0.398 0.195 277.366)',\n '900': 'oklch(0.359 0.144 278.697)',\n '950': 'oklch(0.257 0.09 281.288)',\n },\n inherit: 'inherit',\n lime: {\n '50': 'oklch(0.986 0.031 120.757)',\n '100': 'oklch(0.967 0.067 122.328)',\n '200': 'oklch(0.938 0.127 124.321)',\n '300': 'oklch(0.897 0.196 126.665)',\n '400': 'oklch(0.841 0.238 128.85)',\n '500': 'oklch(0.768 0.233 130.85)',\n '600': 'oklch(0.648 0.2 131.684)',\n '700': 'oklch(0.532 0.157 131.589)',\n '800': 'oklch(0.453 0.124 130.933)',\n '900': 'oklch(0.405 0.101 131.063)',\n '950': 'oklch(0.274 0.072 132.109)',\n },\n neutral: {\n '50': 'oklch(0.985 0 0)',\n '100': 'oklch(0.97 0 0)',\n '200': 'oklch(0.922 0 0)',\n '300': 'oklch(0.87 0 0)',\n '400': 'oklch(0.708 0 0)',\n '500': 'oklch(0.556 0 0)',\n '600': 'oklch(0.439 0 0)',\n '700': 'oklch(0.371 0 0)',\n '800': 'oklch(0.269 0 0)',\n '900': 'oklch(0.205 0 0)',\n '950': 'oklch(0.145 0 0)',\n },\n orange: {\n '50': 'oklch(0.98 0.016 73.684)',\n '100': 'oklch(0.954 0.038 75.164)',\n '200': 'oklch(0.901 0.076 70.697)',\n '300': 'oklch(0.837 0.128 66.29)',\n '400': 'oklch(0.75 0.183 55.934)',\n '500': 'oklch(0.705 0.213 47.604)',\n '600': 'oklch(0.646 0.222 41.116)',\n '700': 'oklch(0.553 0.195 38.402)',\n '800': 'oklch(0.47 0.157 37.304)',\n '900': 'oklch(0.408 0.123 38.172)',\n '950': 'oklch(0.266 0.079 36.259)',\n },\n pink: {\n '50': 'oklch(0.971 0.014 343.198)',\n '100': 'oklch(0.948 0.028 342.258)',\n '200': 'oklch(0.899 0.061 343.231)',\n '300': 'oklch(0.823 0.12 346.018)',\n '400': 'oklch(0.718 0.202 349.761)',\n '500': 'oklch(0.656 0.241 354.308)',\n '600': 'oklch(0.592 0.249 0.584)',\n '700': 'oklch(0.525 0.223 3.958)',\n '800': 'oklch(0.459 0.187 3.815)',\n '900': 'oklch(0.408 0.153 2.432)',\n '950': 'oklch(0.284 0.109 3.907)',\n },\n purple: {\n '50': 'oklch(0.977 0.014 308.299)',\n '100': 'oklch(0.946 0.033 307.174)',\n '200': 'oklch(0.902 0.063 306.703)',\n '300': 'oklch(0.827 0.119 306.383)',\n '400': 'oklch(0.714 0.203 305.504)',\n '500': 'oklch(0.627 0.265 303.9)',\n '600': 'oklch(0.558 0.288 302.321)',\n '700': 'oklch(0.496 0.265 301.924)',\n '800': 'oklch(0.438 0.218 303.724)',\n '900': 'oklch(0.381 0.176 304.987)',\n '950': 'oklch(0.291 0.149 302.717)',\n },\n red: {\n '50': 'oklch(0.971 0.013 17.38)',\n '100': 'oklch(0.936 0.032 17.717)',\n '200': 'oklch(0.885 0.062 18.334)',\n '300': 'oklch(0.808 0.114 19.571)',\n '400': 'oklch(0.704 0.191 22.216)',\n '500': 'oklch(0.637 0.237 25.331)',\n '600': 'oklch(0.577 0.245 27.325)',\n '700': 'oklch(0.505 0.213 27.518)',\n '800': 'oklch(0.444 0.177 26.899)',\n '900': 'oklch(0.396 0.141 25.723)',\n '950': 'oklch(0.258 0.092 26.042)',\n },\n rose: {\n '50': 'oklch(0.969 0.015 12.422)',\n '100': 'oklch(0.941 0.03 12.58)',\n '200': 'oklch(0.892 0.058 10.001)',\n '300': 'oklch(0.81 0.117 11.638)',\n '400': 'oklch(0.712 0.194 13.428)',\n '500': 'oklch(0.645 0.246 16.439)',\n '600': 'oklch(0.586 0.253 17.585)',\n '700': 'oklch(0.514 0.222 16.935)',\n '800': 'oklch(0.455 0.188 13.697)',\n '900': 'oklch(0.41 0.159 10.272)',\n '950': 'oklch(0.271 0.105 12.094)',\n },\n sky: {\n '50': 'oklch(0.977 0.013 236.62)',\n '100': 'oklch(0.951 0.026 236.824)',\n '200': 'oklch(0.901 0.058 230.902)',\n '300': 'oklch(0.828 0.111 230.318)',\n '400': 'oklch(0.746 0.16 232.661)',\n '500': 'oklch(0.685 0.169 237.323)',\n '600': 'oklch(0.588 0.158 241.966)',\n '700': 'oklch(0.5 0.134 242.749)',\n '800': 'oklch(0.443 0.11 240.79)',\n '900': 'oklch(0.391 0.09 240.876)',\n '950': 'oklch(0.293 0.066 243.157)',\n },\n slate: {\n '50': 'oklch(0.984 0.003 247.858)',\n '100': 'oklch(0.968 0.007 247.896)',\n '200': 'oklch(0.929 0.013 255.508)',\n '300': 'oklch(0.869 0.022 252.894)',\n '400': 'oklch(0.704 0.04 256.788)',\n '500': 'oklch(0.554 0.046 257.417)',\n '600': 'oklch(0.446 0.043 257.281)',\n '700': 'oklch(0.372 0.044 257.287)',\n '800': 'oklch(0.279 0.041 260.031)',\n '900': 'oklch(0.208 0.042 265.755)',\n '950': 'oklch(0.129 0.042 264.695)',\n },\n stone: {\n '50': 'oklch(0.985 0.001 106.423)',\n '100': 'oklch(0.97 0.001 106.424)',\n '200': 'oklch(0.923 0.003 48.717)',\n '300': 'oklch(0.869 0.005 56.366)',\n '400': 'oklch(0.709 0.01 56.259)',\n '500': 'oklch(0.553 0.013 58.071)',\n '600': 'oklch(0.444 0.011 73.639)',\n '700': 'oklch(0.374 0.01 67.558)',\n '800': 'oklch(0.268 0.007 34.298)',\n '900': 'oklch(0.216 0.006 56.043)',\n '950': 'oklch(0.147 0.004 49.25)',\n },\n teal: {\n '50': 'oklch(0.984 0.014 180.72)',\n '100': 'oklch(0.953 0.051 180.801)',\n '200': 'oklch(0.91 0.096 180.426)',\n '300': 'oklch(0.855 0.138 181.071)',\n '400': 'oklch(0.777 0.152 181.912)',\n '500': 'oklch(0.704 0.14 182.503)',\n '600': 'oklch(0.6 0.118 184.704)',\n '700': 'oklch(0.511 0.096 186.391)',\n '800': 'oklch(0.437 0.078 188.216)',\n '900': 'oklch(0.386 0.063 188.416)',\n '950': 'oklch(0.277 0.046 192.524)',\n },\n transparent: 'transparent',\n violet: {\n '50': 'oklch(0.969 0.016 293.756)',\n '100': 'oklch(0.943 0.029 294.588)',\n '200': 'oklch(0.894 0.057 293.283)',\n '300': 'oklch(0.811 0.111 293.571)',\n '400': 'oklch(0.702 0.183 293.541)',\n '500': 'oklch(0.606 0.25 292.717)',\n '600': 'oklch(0.541 0.281 293.009)',\n '700': 'oklch(0.491 0.27 292.581)',\n '800': 'oklch(0.432 0.232 292.759)',\n '900': 'oklch(0.38 0.189 293.745)',\n '950': 'oklch(0.283 0.141 291.089)',\n },\n white: '#fff',\n yellow: {\n '50': 'oklch(0.987 0.026 102.212)',\n '100': 'oklch(0.973 0.071 103.193)',\n '200': 'oklch(0.945 0.129 101.54)',\n '300': 'oklch(0.905 0.182 98.111)',\n '400': 'oklch(0.852 0.199 91.936)',\n '500': 'oklch(0.795 0.184 86.047)',\n '600': 'oklch(0.681 0.162 75.834)',\n '700': 'oklch(0.554 0.135 66.442)',\n '800': 'oklch(0.476 0.114 61.907)',\n '900': 'oklch(0.421 0.095 57.708)',\n '950': 'oklch(0.286 0.066 53.813)',\n },\n zinc: {\n '50': 'oklch(0.985 0 0)',\n '100': 'oklch(0.967 0.001 286.375)',\n '200': 'oklch(0.92 0.004 286.32)',\n '300': 'oklch(0.871 0.006 286.286)',\n '400': 'oklch(0.705 0.015 286.067)',\n '500': 'oklch(0.552 0.016 285.938)',\n '600': 'oklch(0.442 0.017 285.786)',\n '700': 'oklch(0.37 0.013 285.805)',\n '800': 'oklch(0.274 0.006 286.033)',\n '900': 'oklch(0.21 0.006 285.885)',\n '950': 'oklch(0.141 0.005 285.823)',\n },\n}\n\n// oxfmt-ignore\n/* eslint-disable perfectionist/sort-objects */\nexport const defaultColors = {\n text: {\n 'text-red': { css: { 'color': `light-dark(${tailwindColors.red[600]}, ${tailwindColors.red[400]})`, }, label: 'Red' },\n 'text-orange': { css: { 'color': `light-dark(${tailwindColors.orange[600]}, ${tailwindColors.orange[400]})`, }, label: 'Orange' },\n 'text-yellow': { css: { 'color': `light-dark(${tailwindColors.yellow[700]}, ${tailwindColors.yellow[300]})`, }, label: 'Yellow' },\n 'text-green': { css: { 'color': `light-dark(${tailwindColors.green[700]}, ${tailwindColors.green[400]})`, }, label: 'Green' },\n 'text-blue': { css: { 'color': `light-dark(${tailwindColors.blue[600]}, ${tailwindColors.blue[400]})`, }, label: 'Blue' },\n 'text-purple': { css: { 'color': `light-dark(${tailwindColors.purple[600]}, ${tailwindColors.purple[400]})`, }, label: 'Purple' },\n 'text-pink': { css: { 'color': `light-dark(${tailwindColors.pink[600]}, ${tailwindColors.pink[400]})`, }, label: 'Pink' },\n } satisfies StateValues,\n background: {\n 'bg-red': { css: { 'background-color': `light-dark(${tailwindColors.red[400]}, ${tailwindColors.red[600]})`, }, label: 'Red' },\n 'bg-orange': { css: { 'background-color': `light-dark(${tailwindColors.orange[400]}, ${tailwindColors.orange[600]})`, }, label: 'Orange' },\n 'bg-yellow': { css: { 'background-color': `light-dark(${tailwindColors.yellow[300]}, ${tailwindColors.yellow[700]})`, }, label: 'Yellow' },\n 'bg-green': { css: { 'background-color': `light-dark(${tailwindColors.green[400]}, ${tailwindColors.green[700]})`, }, label: 'Green' },\n 'bg-blue': { css: { 'background-color': `light-dark(${tailwindColors.blue[400]}, ${tailwindColors.blue[600]})`, }, label: 'Blue' },\n 'bg-purple': { css: { 'background-color': `light-dark(${tailwindColors.purple[400]}, ${tailwindColors.purple[600]})`, }, label: 'Purple' },\n 'bg-pink': { css: { 'background-color': `light-dark(${tailwindColors.pink[400]}, ${tailwindColors.pink[600]})`, }, label: 'Pink' },\n } satisfies StateValues\n }\n"],"mappings":"AAEA,MAAMA,cAAA,GAAiB;EACrBC,KAAA,EAAO;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,KAAA,EAAO;EACPC,IAAA,EAAM;IACJ,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,OAAA,EAAS;EACTC,IAAA,EAAM;IACJ,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,OAAA,EAAS;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,OAAA,EAAS;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,IAAA,EAAM;IACJ,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,KAAA,EAAO;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,MAAA,EAAQ;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,OAAA,EAAS;EACTC,IAAA,EAAM;IACJ,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,OAAA,EAAS;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,MAAA,EAAQ;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,IAAA,EAAM;IACJ,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,MAAA,EAAQ;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,GAAA,EAAK;IACH,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,IAAA,EAAM;IACJ,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,GAAA,EAAK;IACH,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,KAAA,EAAO;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;EACT;EACAC,KAAA,EAAO;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,O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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/toolbars/fixed/client/Toolbar/index.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAOrE,OAAO,aAAa,CAAA;AA6PpB,eAAO,MAAM,kBAAkB,EAAE,eAAe,CAAC,wBAAwB,CAuCxE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/toolbars/fixed/client/Toolbar/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAQrE,OAAO,aAAa,CAAA;AAuQpB,eAAO,MAAM,kBAAkB,EAAE,eAAe,CAAC,wBAAwB,CAuCxE,CAAA"}
@@ -4,12 +4,14 @@ import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
6
6
  import { useLexicalEditable } from '@lexical/react/useLexicalEditable';
7
+ import { getTranslation } from '@payloadcms/translations';
7
8
  import { useScrollInfo, useThrottledEffect, useTranslation } from '@payloadcms/ui';
8
9
  import * as React from 'react';
9
10
  import { useMemo } from 'react';
10
11
  import { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider.js';
11
12
  import { ToolbarButton } from '../../../shared/ToolbarButton/index.js';
12
13
  import { ToolbarDropdown } from '../../../shared/ToolbarDropdown/index.js';
14
+ import { useToolbarKeyboardNavigation } from '../../../shared/useToolbarKeyboardNavigation.js';
13
15
  import { useToolbarStates } from '../../../shared/useToolbarStates.js';
14
16
  import { useRedirectVerticalWheelToHorizontalScroll } from './horizontalWheelScroll.js';
15
17
  import './index.css';
@@ -126,6 +128,16 @@ function FixedToolbar({
126
128
  parentWithFixedToolbar
127
129
  }) {
128
130
  const currentToolbarRef = React.useRef(null);
131
+ const keyboardNavigationOptions = useMemo(() => ({
132
+ toolbarRef: currentToolbarRef
133
+ }), []);
134
+ const {
135
+ fieldProps
136
+ } = useEditorConfigContext();
137
+ const {
138
+ i18n
139
+ } = useTranslation();
140
+ useToolbarKeyboardNavigation(keyboardNavigationOptions);
129
141
  const isEditable = useLexicalEditable();
130
142
  const {
131
143
  y
@@ -176,6 +188,7 @@ function FixedToolbar({
176
188
  }
177
189
  }, 50, [currentToolbarRef, parentToolbarElem, y]);
178
190
  return /*#__PURE__*/_jsx("div", {
191
+ "aria-label": getTranslation(fieldProps.field.label || fieldProps.path, i18n) || fieldProps.path,
179
192
  className: "fixed-toolbar",
180
193
  onFocus: event => {
181
194
  // Prevent other focus events being triggered. Otherwise, if this was to be clicked while in a child editor,
@@ -183,8 +196,10 @@ function FixedToolbar({
183
196
  event.stopPropagation();
184
197
  },
185
198
  ref: currentToolbarRef,
199
+ role: "toolbar",
186
200
  children: isEditable && /*#__PURE__*/_jsx("div", {
187
201
  className: "fixed-toolbar__scroll",
202
+ tabIndex: -1,
188
203
  children: editorConfig?.features && editorConfig.features?.toolbarFixed?.groups.map((group, i) => {
189
204
  return /*#__PURE__*/_jsx(ToolbarGroupComponent, {
190
205
  anchorElem: anchorElem,