@readme/markdown 9.0.2 → 9.0.3

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.
@@ -11,29 +11,47 @@ const traverse = (node: Node, callback: (element: Node) => void) => {
11
11
  });
12
12
  };
13
13
 
14
- const TailwindStyle = ({ children }: React.PropsWithChildren<unknown>) => {
14
+ interface Props {
15
+ children: React.ReactNode;
16
+ darkModeDataAttribute?: boolean;
17
+ }
18
+
19
+ const TailwindStyle = ({ children, darkModeDataAttribute }: Props) => {
15
20
  const [stylesheet, setStylesheet] = useState('');
16
- const classes = useRef(new Set<string>());
21
+ const classesSet = useRef(new Set<string>());
17
22
  const ref = useRef<HTMLStyleElement>(null);
23
+ const [classes, setClasses] = useState<string[]>([]);
18
24
 
19
25
  const addClasses = useCallback((element: Node) => {
20
26
  if (!(element instanceof HTMLElement)) return;
21
27
 
22
28
  element.classList.forEach(className => {
23
- classes.current.add(className);
29
+ classesSet.current.add(className);
24
30
  });
25
31
  }, []);
26
32
 
27
- const updateStylesheet = useCallback(async () => {
28
- const candidates = classes.current;
29
- if (candidates.size === 0) return;
33
+ /*
34
+ * @note: regenerate stylesheet
35
+ */
36
+ useEffect(() => {
37
+ const run = async () => {
38
+ if (classes.length === 0) {
39
+ setStylesheet('');
40
+ return;
41
+ }
42
+
43
+ const sheet = await tailwindCompiler(classes, {
44
+ prefix: `.${tailwindPrefix}`,
45
+ darkModeDataAttribute,
46
+ });
47
+ /* @note: don't insert an empty stylesheet */
48
+ if (sheet.css.match(/^@layer utilities;/m)) return;
30
49
 
31
- const sheet = await tailwindCompiler(Array.from(candidates), { prefix: `.${tailwindPrefix}` });
32
- /* @note: don't insert an empty stylesheet */
33
- if (sheet.css.match(/^@layer utilities;/m)) return;
50
+ setStylesheet(sheet.css);
51
+ };
34
52
 
35
- setStylesheet(sheet.css);
36
- }, []);
53
+ run();
54
+ }, [classes, darkModeDataAttribute]);
37
55
 
38
56
  /*
39
57
  * @note: execute once on load
@@ -42,8 +60,8 @@ const TailwindStyle = ({ children }: React.PropsWithChildren<unknown>) => {
42
60
  if (!ref.current) return;
43
61
 
44
62
  ref.current.parentElement.querySelectorAll(`.${tailwindPrefix}`).forEach(child => traverse(child, addClasses));
45
- updateStylesheet();
46
- });
63
+ setClasses(Array.from(classesSet.current));
64
+ }, [addClasses]);
47
65
 
48
66
  /*
49
67
  * @note: observe for changes
@@ -70,7 +88,7 @@ const TailwindStyle = ({ children }: React.PropsWithChildren<unknown>) => {
70
88
  }
71
89
 
72
90
  if (shouldUpdate) {
73
- updateStylesheet();
91
+ setClasses(Array.from(classesSet.current));
74
92
  }
75
93
  });
76
94
  });
@@ -84,7 +102,7 @@ const TailwindStyle = ({ children }: React.PropsWithChildren<unknown>) => {
84
102
 
85
103
  // eslint-disable-next-line consistent-return
86
104
  return () => observer.disconnect();
87
- }, [addClasses, updateStylesheet]);
105
+ }, [addClasses]);
88
106
 
89
107
  return (
90
108
  <>
@@ -1,3 +1,7 @@
1
1
  import React from 'react';
2
- declare const TailwindStyle: ({ children }: React.PropsWithChildren<unknown>) => React.JSX.Element;
2
+ interface Props {
3
+ children: React.ReactNode;
4
+ darkModeDataAttribute?: boolean;
5
+ }
6
+ declare const TailwindStyle: ({ children, darkModeDataAttribute }: Props) => React.JSX.Element;
3
7
  export default TailwindStyle;
@@ -4,5 +4,6 @@ declare const components: {
4
4
  MultipleExports: string;
5
5
  TailwindRootTest: string;
6
6
  Steps: string;
7
+ DarkMode: string;
7
8
  };
8
9
  export default components;
package/dist/main.js CHANGED
@@ -18720,21 +18720,26 @@ async function loadStylesheet(id, base) {
18720
18720
  async function loadModule() {
18721
18721
  throw new Error('The browser build does not support plugins or config files.');
18722
18722
  }
18723
- async function createCompiler() {
18724
- const css = `
18723
+ async function createCompiler({ darkModeDataAttribute }) {
18724
+ let css = `
18725
18725
  @layer theme, base, components, utilities;
18726
18726
 
18727
18727
  @import "tailwindcss/theme.css" layer(theme);
18728
18728
  @import "tailwindcss/utilities.css" layer(utilities);
18729
18729
  `;
18730
+ if (darkModeDataAttribute) {
18731
+ css += `
18732
+
18733
+ @custom-variant dark (&:where([data-theme=dark], [data-theme=dark] *));`;
18734
+ }
18730
18735
  return tl(css, {
18731
18736
  base: '/',
18732
18737
  loadStylesheet,
18733
18738
  loadModule,
18734
18739
  });
18735
18740
  }
18736
- async function tailwindCompiler(classes, { prefix }) {
18737
- const compiler = await createCompiler();
18741
+ async function tailwindCompiler(classes, { prefix, darkModeDataAttribute }) {
18742
+ const compiler = await createCompiler({ darkModeDataAttribute });
18738
18743
  const css = compiler.build(Array.from(classes));
18739
18744
  return lib_postcss([postcss_prefix_selector_default()({ prefix })]).process(css, { from: undefined });
18740
18745
  }
@@ -18749,27 +18754,38 @@ const traverse = (node, callback) => {
18749
18754
  traverse(child, callback);
18750
18755
  });
18751
18756
  };
18752
- const TailwindStyle = ({ children }) => {
18757
+ const TailwindStyle = ({ children, darkModeDataAttribute }) => {
18753
18758
  const [stylesheet, setStylesheet] = (0,external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_.useState)('');
18754
- const classes = (0,external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_.useRef)(new Set());
18759
+ const classesSet = (0,external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_.useRef)(new Set());
18755
18760
  const ref = (0,external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_.useRef)(null);
18761
+ const [classes, setClasses] = (0,external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_.useState)([]);
18756
18762
  const addClasses = (0,external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_.useCallback)((element) => {
18757
18763
  if (!(element instanceof HTMLElement))
18758
18764
  return;
18759
18765
  element.classList.forEach(className => {
18760
- classes.current.add(className);
18766
+ classesSet.current.add(className);
18761
18767
  });
18762
18768
  }, []);
18763
- const updateStylesheet = (0,external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_.useCallback)(async () => {
18764
- const candidates = classes.current;
18765
- if (candidates.size === 0)
18766
- return;
18767
- const sheet = await tailwindCompiler(Array.from(candidates), { prefix: `.${tailwindPrefix}` });
18768
- /* @note: don't insert an empty stylesheet */
18769
- if (sheet.css.match(/^@layer utilities;/m))
18770
- return;
18771
- setStylesheet(sheet.css);
18772
- }, []);
18769
+ /*
18770
+ * @note: regenerate stylesheet
18771
+ */
18772
+ (0,external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_.useEffect)(() => {
18773
+ const run = async () => {
18774
+ if (classes.length === 0) {
18775
+ setStylesheet('');
18776
+ return;
18777
+ }
18778
+ const sheet = await tailwindCompiler(classes, {
18779
+ prefix: `.${tailwindPrefix}`,
18780
+ darkModeDataAttribute,
18781
+ });
18782
+ /* @note: don't insert an empty stylesheet */
18783
+ if (sheet.css.match(/^@layer utilities;/m))
18784
+ return;
18785
+ setStylesheet(sheet.css);
18786
+ };
18787
+ run();
18788
+ }, [classes, darkModeDataAttribute]);
18773
18789
  /*
18774
18790
  * @note: execute once on load
18775
18791
  */
@@ -18777,8 +18793,8 @@ const TailwindStyle = ({ children }) => {
18777
18793
  if (!ref.current)
18778
18794
  return;
18779
18795
  ref.current.parentElement.querySelectorAll(`.${tailwindPrefix}`).forEach(child => traverse(child, addClasses));
18780
- updateStylesheet();
18781
- });
18796
+ setClasses(Array.from(classesSet.current));
18797
+ }, [addClasses]);
18782
18798
  /*
18783
18799
  * @note: observe for changes
18784
18800
  */
@@ -18803,7 +18819,7 @@ const TailwindStyle = ({ children }) => {
18803
18819
  shouldUpdate = true;
18804
18820
  }
18805
18821
  if (shouldUpdate) {
18806
- updateStylesheet();
18822
+ setClasses(Array.from(classesSet.current));
18807
18823
  }
18808
18824
  });
18809
18825
  });
@@ -18815,7 +18831,7 @@ const TailwindStyle = ({ children }) => {
18815
18831
  });
18816
18832
  // eslint-disable-next-line consistent-return
18817
18833
  return () => observer.disconnect();
18818
- }, [addClasses, updateStylesheet]);
18834
+ }, [addClasses]);
18819
18835
  return (external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_default().createElement((external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_default()).Fragment, null,
18820
18836
  external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_default().createElement("style", { ref: ref, "data-tailwind-stylesheet": true }, stylesheet),
18821
18837
  children));
@@ -83755,7 +83771,7 @@ const compile_compile = async (text, { components = {}, copyButtons, useTailwind
83755
83771
  ...opts,
83756
83772
  });
83757
83773
  const string = String(vfile)
83758
- .replace(/await import\(_resolveDynamicMdxSpecifier\(('react'|"react")\)\)/, 'arguments[0].imports.React')
83774
+ .replaceAll(/await import\(_resolveDynamicMdxSpecifier\(('react'|"react")\)\)/g, 'arguments[0].imports.React')
83759
83775
  .replace('"use strict";', '"use strict";\nconst { user } = arguments[0].imports;\n');
83760
83776
  return string;
83761
83777
  }
package/dist/main.node.js CHANGED
@@ -21749,21 +21749,26 @@ async function loadStylesheet(id, base) {
21749
21749
  async function loadModule() {
21750
21750
  throw new Error('The browser build does not support plugins or config files.');
21751
21751
  }
21752
- async function createCompiler() {
21753
- const css = `
21752
+ async function createCompiler({ darkModeDataAttribute }) {
21753
+ let css = `
21754
21754
  @layer theme, base, components, utilities;
21755
21755
 
21756
21756
  @import "tailwindcss/theme.css" layer(theme);
21757
21757
  @import "tailwindcss/utilities.css" layer(utilities);
21758
21758
  `;
21759
+ if (darkModeDataAttribute) {
21760
+ css += `
21761
+
21762
+ @custom-variant dark (&:where([data-theme=dark], [data-theme=dark] *));`;
21763
+ }
21759
21764
  return tl(css, {
21760
21765
  base: '/',
21761
21766
  loadStylesheet,
21762
21767
  loadModule,
21763
21768
  });
21764
21769
  }
21765
- async function tailwindCompiler(classes, { prefix }) {
21766
- const compiler = await createCompiler();
21770
+ async function tailwindCompiler(classes, { prefix, darkModeDataAttribute }) {
21771
+ const compiler = await createCompiler({ darkModeDataAttribute });
21767
21772
  const css = compiler.build(Array.from(classes));
21768
21773
  return lib_postcss([postcss_prefix_selector_default()({ prefix })]).process(css, { from: undefined });
21769
21774
  }
@@ -21778,27 +21783,38 @@ const traverse = (node, callback) => {
21778
21783
  traverse(child, callback);
21779
21784
  });
21780
21785
  };
21781
- const TailwindStyle = ({ children }) => {
21786
+ const TailwindStyle = ({ children, darkModeDataAttribute }) => {
21782
21787
  const [stylesheet, setStylesheet] = (0,external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_.useState)('');
21783
- const classes = (0,external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_.useRef)(new Set());
21788
+ const classesSet = (0,external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_.useRef)(new Set());
21784
21789
  const ref = (0,external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_.useRef)(null);
21790
+ const [classes, setClasses] = (0,external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_.useState)([]);
21785
21791
  const addClasses = (0,external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_.useCallback)((element) => {
21786
21792
  if (!(element instanceof HTMLElement))
21787
21793
  return;
21788
21794
  element.classList.forEach(className => {
21789
- classes.current.add(className);
21795
+ classesSet.current.add(className);
21790
21796
  });
21791
21797
  }, []);
21792
- const updateStylesheet = (0,external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_.useCallback)(async () => {
21793
- const candidates = classes.current;
21794
- if (candidates.size === 0)
21795
- return;
21796
- const sheet = await tailwindCompiler(Array.from(candidates), { prefix: `.${tailwindPrefix}` });
21797
- /* @note: don't insert an empty stylesheet */
21798
- if (sheet.css.match(/^@layer utilities;/m))
21799
- return;
21800
- setStylesheet(sheet.css);
21801
- }, []);
21798
+ /*
21799
+ * @note: regenerate stylesheet
21800
+ */
21801
+ (0,external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_.useEffect)(() => {
21802
+ const run = async () => {
21803
+ if (classes.length === 0) {
21804
+ setStylesheet('');
21805
+ return;
21806
+ }
21807
+ const sheet = await tailwindCompiler(classes, {
21808
+ prefix: `.${tailwindPrefix}`,
21809
+ darkModeDataAttribute,
21810
+ });
21811
+ /* @note: don't insert an empty stylesheet */
21812
+ if (sheet.css.match(/^@layer utilities;/m))
21813
+ return;
21814
+ setStylesheet(sheet.css);
21815
+ };
21816
+ run();
21817
+ }, [classes, darkModeDataAttribute]);
21802
21818
  /*
21803
21819
  * @note: execute once on load
21804
21820
  */
@@ -21806,8 +21822,8 @@ const TailwindStyle = ({ children }) => {
21806
21822
  if (!ref.current)
21807
21823
  return;
21808
21824
  ref.current.parentElement.querySelectorAll(`.${tailwindPrefix}`).forEach(child => traverse(child, addClasses));
21809
- updateStylesheet();
21810
- });
21825
+ setClasses(Array.from(classesSet.current));
21826
+ }, [addClasses]);
21811
21827
  /*
21812
21828
  * @note: observe for changes
21813
21829
  */
@@ -21832,7 +21848,7 @@ const TailwindStyle = ({ children }) => {
21832
21848
  shouldUpdate = true;
21833
21849
  }
21834
21850
  if (shouldUpdate) {
21835
- updateStylesheet();
21851
+ setClasses(Array.from(classesSet.current));
21836
21852
  }
21837
21853
  });
21838
21854
  });
@@ -21844,7 +21860,7 @@ const TailwindStyle = ({ children }) => {
21844
21860
  });
21845
21861
  // eslint-disable-next-line consistent-return
21846
21862
  return () => observer.disconnect();
21847
- }, [addClasses, updateStylesheet]);
21863
+ }, [addClasses]);
21848
21864
  return (external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_default().createElement((external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_default()).Fragment, null,
21849
21865
  external_amd_react_commonjs_react_commonjs2_react_root_React_umd_react_default().createElement("style", { ref: ref, "data-tailwind-stylesheet": true }, stylesheet),
21850
21866
  children));
@@ -88347,7 +88363,7 @@ const compile_compile = async (text, { components = {}, copyButtons, useTailwind
88347
88363
  ...opts,
88348
88364
  });
88349
88365
  const string = String(vfile)
88350
- .replace(/await import\(_resolveDynamicMdxSpecifier\(('react'|"react")\)\)/, 'arguments[0].imports.React')
88366
+ .replaceAll(/await import\(_resolveDynamicMdxSpecifier\(('react'|"react")\)\)/g, 'arguments[0].imports.React')
88351
88367
  .replace('"use strict";', '"use strict";\nconst { user } = arguments[0].imports;\n');
88352
88368
  return string;
88353
88369
  }