@crystallize/design-system 1.24.43 → 1.24.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @crystallize/design-system
2
2
 
3
+ ## 1.24.44
4
+
5
+ ### Patch Changes
6
+
7
+ - 5dce464: Fix format with prettier in the richtext editor
8
+
3
9
  ## 1.24.43
4
10
 
5
11
  ### Patch Changes
package/dist/index.js CHANGED
@@ -38418,11 +38418,12 @@ ${n}`;
38418
38418
  // src/rich-text-editor/plugins/CodeActionMenuPlugin/components/PrettierButton/index.tsx
38419
38419
  async function loadPrettierParserByLang(lang) {
38420
38420
  const dynamicImport = PRETTIER_PARSER_MODULES[lang];
38421
- return await dynamicImport();
38421
+ const parser = await dynamicImport();
38422
+ return parser?.default || parser;
38422
38423
  }
38423
38424
  async function loadPrettierFormat() {
38424
- const { format } = await Promise.resolve().then(() => __toESM(require_standalone()));
38425
- return format;
38425
+ const prettier = await Promise.resolve().then(() => __toESM(require_standalone()));
38426
+ return prettier?.default?.format || prettier?.format;
38426
38427
  }
38427
38428
  function canBePrettier(lang) {
38428
38429
  return LANG_CAN_BE_PRETTIER.includes(lang);
@@ -38440,6 +38441,19 @@ function PrettierButton({ lang, editor, getCodeDOMNode }) {
38440
38441
  const tr = useTr();
38441
38442
  async function handleClick() {
38442
38443
  const codeDOMNode = getCodeDOMNode();
38444
+ if (!codeDOMNode) {
38445
+ return;
38446
+ }
38447
+ let content = "";
38448
+ editor.update(() => {
38449
+ const codeNode = (0, import_lexical5.$getNearestNodeFromDOMNode)(codeDOMNode);
38450
+ if ((0, import_code5.$isCodeNode)(codeNode)) {
38451
+ content = codeNode.getTextContent();
38452
+ }
38453
+ });
38454
+ if (content === "") {
38455
+ return;
38456
+ }
38443
38457
  try {
38444
38458
  const format = await loadPrettierFormat();
38445
38459
  const options = getPrettierOptions(lang);
@@ -38447,16 +38461,14 @@ function PrettierButton({ lang, editor, getCodeDOMNode }) {
38447
38461
  if (!codeDOMNode) {
38448
38462
  return;
38449
38463
  }
38464
+ const parsed = await format(content, options);
38465
+ const formattedCode = parsed.replace(/[\r\n]+$/, "");
38450
38466
  editor.update(() => {
38451
38467
  const codeNode = (0, import_lexical5.$getNearestNodeFromDOMNode)(codeDOMNode);
38452
38468
  if ((0, import_code5.$isCodeNode)(codeNode)) {
38453
- const content = codeNode.getTextContent();
38454
- let parsed = "";
38455
- parsed = format(content, options);
38456
- parsed = parsed.replace(/[\r\n]+$/, "");
38457
- if (parsed !== "") {
38469
+ if (formattedCode !== "") {
38458
38470
  const selection = codeNode.select(0);
38459
- selection.insertText(parsed);
38471
+ selection.insertText(formattedCode);
38460
38472
  setSyntaxError("");
38461
38473
  setTipsVisible(false);
38462
38474
  }
package/dist/index.mjs CHANGED
@@ -488,7 +488,7 @@ function Tag({
488
488
  // src/rich-text-editor/index.tsx
489
489
  import { lazy, Suspense } from "react";
490
490
  import { jsx as jsx15 } from "react/jsx-runtime";
491
- var LazyRichTextEditor = lazy(() => import("./rich-text-editor-FTDWUJL3.mjs"));
491
+ var LazyRichTextEditor = lazy(() => import("./rich-text-editor-NIDZLNDY.mjs"));
492
492
  var RichTextEditor = (props) => {
493
493
  return /* @__PURE__ */ jsx15(Suspense, {
494
494
  fallback: null,
@@ -675,11 +675,12 @@ var PRETTIER_PARSER_MODULES = {
675
675
  };
676
676
  async function loadPrettierParserByLang(lang) {
677
677
  const dynamicImport = PRETTIER_PARSER_MODULES[lang];
678
- return await dynamicImport();
678
+ const parser = await dynamicImport();
679
+ return parser?.default || parser;
679
680
  }
680
681
  async function loadPrettierFormat() {
681
- const { format } = await import("./standalone-AR2ENVE7.mjs");
682
- return format;
682
+ const prettier = await import("./standalone-AR2ENVE7.mjs");
683
+ return prettier?.default?.format || prettier?.format;
683
684
  }
684
685
  var PRETTIER_OPTIONS_BY_LANG = {
685
686
  css: {
@@ -712,6 +713,19 @@ function PrettierButton({ lang, editor, getCodeDOMNode }) {
712
713
  const tr = useTr();
713
714
  async function handleClick() {
714
715
  const codeDOMNode = getCodeDOMNode();
716
+ if (!codeDOMNode) {
717
+ return;
718
+ }
719
+ let content = "";
720
+ editor.update(() => {
721
+ const codeNode = $getNearestNodeFromDOMNode2(codeDOMNode);
722
+ if ($isCodeNode3(codeNode)) {
723
+ content = codeNode.getTextContent();
724
+ }
725
+ });
726
+ if (content === "") {
727
+ return;
728
+ }
715
729
  try {
716
730
  const format = await loadPrettierFormat();
717
731
  const options = getPrettierOptions(lang);
@@ -719,16 +733,14 @@ function PrettierButton({ lang, editor, getCodeDOMNode }) {
719
733
  if (!codeDOMNode) {
720
734
  return;
721
735
  }
736
+ const parsed = await format(content, options);
737
+ const formattedCode = parsed.replace(/[\r\n]+$/, "");
722
738
  editor.update(() => {
723
739
  const codeNode = $getNearestNodeFromDOMNode2(codeDOMNode);
724
740
  if ($isCodeNode3(codeNode)) {
725
- const content = codeNode.getTextContent();
726
- let parsed = "";
727
- parsed = format(content, options);
728
- parsed = parsed.replace(/[\r\n]+$/, "");
729
- if (parsed !== "") {
741
+ if (formattedCode !== "") {
730
742
  const selection = codeNode.select(0);
731
- selection.insertText(parsed);
743
+ selection.insertText(formattedCode);
732
744
  setSyntaxError("");
733
745
  setTipsVisible(false);
734
746
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crystallize/design-system",
3
- "version": "1.24.43",
3
+ "version": "1.24.44",
4
4
  "types": "./dist/index.d.ts",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -30,12 +30,13 @@ type LanguagesType = keyof typeof PRETTIER_PARSER_MODULES;
30
30
 
31
31
  async function loadPrettierParserByLang(lang: string) {
32
32
  const dynamicImport = PRETTIER_PARSER_MODULES[lang as LanguagesType];
33
- return await dynamicImport();
33
+ const parser = await dynamicImport();
34
+ return parser?.default || parser;
34
35
  }
35
36
 
36
37
  async function loadPrettierFormat() {
37
- const { format } = await import('prettier/standalone');
38
- return format;
38
+ const prettier = await import('prettier/standalone');
39
+ return prettier?.default?.format || prettier?.format;
39
40
  }
40
41
 
41
42
  const PRETTIER_OPTIONS_BY_LANG: Record<string, Options> = {
@@ -75,6 +76,20 @@ export function PrettierButton({ lang, editor, getCodeDOMNode }: Props) {
75
76
 
76
77
  async function handleClick(): Promise<void> {
77
78
  const codeDOMNode = getCodeDOMNode();
79
+ if (!codeDOMNode) {
80
+ return;
81
+ }
82
+
83
+ let content = '';
84
+ editor.update(() => {
85
+ const codeNode = $getNearestNodeFromDOMNode(codeDOMNode);
86
+ if ($isCodeNode(codeNode)) {
87
+ content = codeNode.getTextContent();
88
+ }
89
+ });
90
+ if (content === '') {
91
+ return;
92
+ }
78
93
 
79
94
  try {
80
95
  const format = await loadPrettierFormat();
@@ -85,26 +100,21 @@ export function PrettierButton({ lang, editor, getCodeDOMNode }: Props) {
85
100
  return;
86
101
  }
87
102
 
103
+ const parsed = await format(content, options);
104
+ /**
105
+ * Remove EOF from prettier output. This is useful when
106
+ * using prettier on files, but becomes weird when the code
107
+ * is embedded within a larger portion of text (like we do)
108
+ */
109
+ const formattedCode = parsed.replace(/[\r\n]+$/, '');
110
+
88
111
  editor.update(() => {
89
112
  const codeNode = $getNearestNodeFromDOMNode(codeDOMNode);
90
113
 
91
114
  if ($isCodeNode(codeNode)) {
92
- const content = codeNode.getTextContent();
93
-
94
- let parsed = '';
95
-
96
- parsed = format(content, options);
97
-
98
- /**
99
- * Remove EOF from prettier output. This is useful when
100
- * using prettier on files, but becomes weird when the code
101
- * is embedded within a larger portion of text (like we do)
102
- */
103
- parsed = parsed.replace(/[\r\n]+$/, '');
104
-
105
- if (parsed !== '') {
115
+ if (formattedCode !== '') {
106
116
  const selection = codeNode.select(0);
107
- selection.insertText(parsed);
117
+ selection.insertText(formattedCode);
108
118
  setSyntaxError('');
109
119
  setTipsVisible(false);
110
120
  }