@uiw/copy-to-clipboard 1.0.16 → 1.0.18

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/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  Copy Text to Clipboard
2
2
  ===
3
3
 
4
+ [![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)
4
5
  ![No Dependencies](http://jaywcjlove.github.io/sb/status/no-dependencies.svg)
5
6
  [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/copy-to-clipboard.svg?style=flat)](https://www.npmjs.com/package/@uiw/copy-to-clipboard)
6
7
  [![Build & Deploy](https://github.com/uiwjs/copy-to-clipboard/workflows/Build/badge.svg)](https://github.com/uiwjs/react-codemirror/actions)
package/dist/badges.svg CHANGED
@@ -1,20 +1,20 @@
1
- <svg width="114.3" height="20" viewBox="0 0 1143 200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="coverage: 94.73%">
2
- <title>coverage: 94.73%</title>
3
- <linearGradient id="a" x2="0" y2="100%">
1
+ <svg width="103.3" height="20" viewBox="0 0 1033 200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="coverage: 100%">
2
+ <title>coverage: 100%</title>
3
+ <linearGradient id="LHgSq" x2="0" y2="100%">
4
4
  <stop offset="0" stop-opacity=".1" stop-color="#EEE"/>
5
5
  <stop offset="1" stop-opacity=".1"/>
6
6
  </linearGradient>
7
- <mask id="m"><rect width="1143" height="200" rx="30" fill="#FFF"/></mask>
8
- <g mask="url(#m)">
7
+ <mask id="nxGOP"><rect width="1033" height="200" rx="30" fill="#FFF"/></mask>
8
+ <g mask="url(#nxGOP)">
9
9
  <rect width="603" height="200" fill="#555"/>
10
- <rect width="540" height="200" fill="#97c40f" x="603"/>
11
- <rect width="1143" height="200" fill="url(#a)"/>
10
+ <rect width="430" height="200" fill="#49c31a" x="603"/>
11
+ <rect width="1033" height="200" fill="url(#LHgSq)"/>
12
12
  </g>
13
13
  <g aria-hidden="true" fill="#fff" text-anchor="start" font-family="Verdana,DejaVu Sans,sans-serif" font-size="110">
14
14
  <text x="60" y="148" textLength="503" fill="#000" opacity="0.25">coverage</text>
15
15
  <text x="50" y="138" textLength="503">coverage</text>
16
- <text x="658" y="148" textLength="440" fill="#000" opacity="0.25">94.73%</text>
17
- <text x="648" y="138" textLength="440">94.73%</text>
16
+ <text x="658" y="148" textLength="330" fill="#000" opacity="0.25">100%</text>
17
+ <text x="648" y="138" textLength="330">100%</text>
18
18
  </g>
19
19
 
20
20
  </svg>
@@ -1,8 +1,8 @@
1
1
  /**!
2
- * @uiw/copy-to-clipboard v1.0.16
2
+ * @uiw/copy-to-clipboard v1.0.18
3
3
  * Copy to clipboard.
4
4
  *
5
- * Copyright (c) 2023 Kenny Wang
5
+ * Copyright (c) 2025 Kenny Wang
6
6
  * https://github.com/uiwjs/copy-to-clipboard.git
7
7
  *
8
8
  * @website: https://uiwjs.github.io/copy-to-clipboard
@@ -1,8 +1,8 @@
1
1
  /**!
2
- * @uiw/copy-to-clipboard v1.0.16
2
+ * @uiw/copy-to-clipboard v1.0.18
3
3
  * Copy to clipboard.
4
4
  *
5
- * Copyright (c) 2023 Kenny Wang
5
+ * Copyright (c) 2025 Kenny Wang
6
6
  * https://github.com/uiwjs/copy-to-clipboard.git
7
7
  *
8
8
  * @website: https://uiwjs.github.io/copy-to-clipboard
@@ -1,8 +1,8 @@
1
1
  /**!
2
- * @uiw/copy-to-clipboard v1.0.16
2
+ * @uiw/copy-to-clipboard v1.0.18
3
3
  * Copy to clipboard.
4
4
  *
5
- * Copyright (c) 2023 Kenny Wang
5
+ * Copyright (c) 2025 Kenny Wang
6
6
  * https://github.com/uiwjs/copy-to-clipboard.git
7
7
  *
8
8
  * @website: https://uiwjs.github.io/copy-to-clipboard
@@ -1,3 +1,3 @@
1
- /*! @uiw/copy-to-clipboard v1.0.16 | MIT © 2023 Kenny Wang https://uiwjs.github.io/copy-to-clipboard */
2
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).copyTextToClipboard=t()}(this,(function(){"use strict";return function(e,t){if("undefined"==typeof document)return;const o=document.createElement("textarea");o.value=e,o.setAttribute("readonly",""),o.style={position:"absolute",left:"-9999px"},document.body.appendChild(o);const n=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);o.select();let d=!1;try{d=!!document.execCommand("copy")}catch(e){d=!1}document.body.removeChild(o),n&&document.getSelection&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(n)),t&&t(d)}}));
1
+ /*! @uiw/copy-to-clipboard v1.0.18 | MIT © 2025 Kenny Wang https://uiwjs.github.io/copy-to-clipboard */
2
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).copyTextToClipboard=t()}(this,function(){"use strict";return function(e,t){if("undefined"==typeof document)return;const o=document.createElement("textarea");o.value=e,o.setAttribute("readonly",""),o.style={position:"absolute",left:"-9999px"},document.body.appendChild(o);const n=document.getSelection().rangeCount>0&&document.getSelection().getRangeAt(0);o.select();let d=!1;try{d=!!document.execCommand("copy")}catch(e){d=!1}document.body.removeChild(o),n&&document.getSelection&&(document.getSelection().removeAllRanges(),document.getSelection().addRange(n)),t&&t(d)}});
3
3
  //# sourceMappingURL=copy-to-clipboard.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"copy-to-clipboard.umd.min.js","sources":["../src/main.js"],"sourcesContent":["/**\n * *** This styling is an extra step which is likely not required. ***\n * https://github.com/w3c/clipboard-apis/blob/master/explainer.adoc#writing-to-the-clipboard\n * \n * Why is it here? To ensure:\n * \n * 1. the element is able to have focus and selection.\n * 2. if element was to flash render it has minimal visual impact.\n * 3. less flakyness with selection and copying which **might** occur if\n * the textarea element is not visible.\n *\n * The likelihood is the element won't even render, not even a flash,\n * so some of these are just precautions. However in IE the element\n * is visible whilst the popup box asking the user for permission for\n * the web page to copy to the clipboard.\n * \n * Place in top-left corner of screen regardless of scroll position.\n *\n * @typedef CopyTextToClipboard\n * @property {(text: string, method?: (isCopy: boolean) => void) => void} void\n * @returns {void}\n * \n * @param {string} text \n * @param {CopyTextToClipboard} cb \n */\nexport default function copyTextToClipboard(text, cb) {\n if (typeof document === \"undefined\") return;\n const el = document.createElement('textarea');\n el.value = text;\n el.setAttribute('readonly', '');\n el.style = {\n position: 'absolute',\n left: '-9999px',\n }\n document.body.appendChild(el);\n const selected = document.getSelection().rangeCount > 0 ? document.getSelection().getRangeAt(0) : false;\n el.select();\n let isCopy = false;\n try {\n const successful = document.execCommand('copy');\n isCopy = !!successful;\n } catch (err) {\n isCopy = false;\n }\n document.body.removeChild(el);\n if (selected && document.getSelection) {\n document.getSelection().removeAllRanges();\n document.getSelection().addRange(selected);\n }\n cb && cb(isCopy);\n};\n"],"names":["text","cb","document","el","createElement","value","setAttribute","style","position","left","body","appendChild","selected","getSelection","rangeCount","getRangeAt","select","isCopy","execCommand","err","removeChild","removeAllRanges","addRange"],"mappings":";2PAyBe,SAA6BA,EAAMC,GAChD,GAAwB,oBAAbC,SAA0B,OACrC,MAAMC,EAAKD,SAASE,cAAc,YAClCD,EAAGE,MAAQL,EACXG,EAAGG,aAAa,WAAY,IAC5BH,EAAGI,MAAQ,CACTC,SAAU,WACVC,KAAM,WAERP,SAASQ,KAAKC,YAAYR,GAC1B,MAAMS,EAAWV,SAASW,eAAeC,WAAa,GAAIZ,SAASW,eAAeE,WAAW,GAC7FZ,EAAGa,SACH,IAAIC,GAAS,EACb,IAEEA,IADmBf,SAASgB,YAAY,OAEzC,CAAC,MAAOC,GACPF,GAAS,CACV,CACDf,SAASQ,KAAKU,YAAYjB,GACtBS,GAAYV,SAASW,eACvBX,SAASW,eAAeQ,kBACxBnB,SAASW,eAAeS,SAASV,IAEnCX,GAAMA,EAAGgB,EACX"}
1
+ {"version":3,"file":"copy-to-clipboard.umd.min.js","sources":["../src/main.js"],"sourcesContent":["/**\n * *** This styling is an extra step which is likely not required. ***\n * https://github.com/w3c/clipboard-apis/blob/master/explainer.adoc#writing-to-the-clipboard\n * \n * Why is it here? To ensure:\n * \n * 1. the element is able to have focus and selection.\n * 2. if element was to flash render it has minimal visual impact.\n * 3. less flakyness with selection and copying which **might** occur if\n * the textarea element is not visible.\n *\n * The likelihood is the element won't even render, not even a flash,\n * so some of these are just precautions. However in IE the element\n * is visible whilst the popup box asking the user for permission for\n * the web page to copy to the clipboard.\n * \n * Place in top-left corner of screen regardless of scroll position.\n *\n * @typedef CopyTextToClipboard\n * @property {(text: string, method?: (isCopy: boolean) => void) => void} void\n * @returns {void}\n * \n * @param {string} text \n * @param {CopyTextToClipboard} cb \n */\nexport default function copyTextToClipboard(text, cb) {\n if (typeof document === \"undefined\") return;\n const el = document.createElement('textarea');\n el.value = text;\n el.setAttribute('readonly', '');\n el.style = {\n position: 'absolute',\n left: '-9999px',\n }\n document.body.appendChild(el);\n const selected = document.getSelection().rangeCount > 0 ? document.getSelection().getRangeAt(0) : false;\n el.select();\n let isCopy = false;\n try {\n const successful = document.execCommand('copy');\n isCopy = !!successful;\n } catch (err) {\n isCopy = false;\n }\n document.body.removeChild(el);\n if (selected && document.getSelection) {\n document.getSelection().removeAllRanges();\n document.getSelection().addRange(selected);\n }\n cb && cb(isCopy);\n};\n"],"names":["text","cb","document","el","createElement","value","setAttribute","style","position","left","body","appendChild","selected","getSelection","rangeCount","getRangeAt","select","isCopy","execCommand","err","removeChild","removeAllRanges","addRange"],"mappings":";0PAyBe,SAA6BA,EAAMC,GAChD,GAAwB,oBAAbC,SAA0B,OACrC,MAAMC,EAAKD,SAASE,cAAc,YAClCD,EAAGE,MAAQL,EACXG,EAAGG,aAAa,WAAY,IAC5BH,EAAGI,MAAQ,CACTC,SAAU,WACVC,KAAM,WAERP,SAASQ,KAAKC,YAAYR,GAC1B,MAAMS,EAAWV,SAASW,eAAeC,WAAa,GAAIZ,SAASW,eAAeE,WAAW,GAC7FZ,EAAGa,SACH,IAAIC,GAAS,EACb,IAEEA,IADmBf,SAASgB,YAAY,OAEzC,CAAC,MAAOC,GACPF,GAAS,CACV,CACDf,SAASQ,KAAKU,YAAYjB,GACtBS,GAAYV,SAASW,eACvBX,SAASW,eAAeQ,kBACxBnB,SAASW,eAAeS,SAASV,IAEnCX,GAAMA,EAAGgB,EACX"}
package/dist/css/main.css CHANGED
@@ -1,17 +1,43 @@
1
1
  [data-color-mode*='dark'],
2
2
  [data-color-mode*='dark'] body {
3
3
  --color-header-bg: #3a3a3a8f;
4
- --color-header-border: #21262d;
4
+ --color-header-border: #21262d7a;
5
5
  --color-hover: #ffffff1c;
6
6
  --color-hoc-bg: #fffefe08;
7
+
8
+ --color-border-default: #d0d7de;
9
+ --color-accent-fg: #0969da;
10
+ --color-accent-emphasis: #0969da;
11
+ --color-danger-fg: #d1242f;
12
+ --color-danger-emphasis: #cf222e;
13
+ --color-attention-fg: #9a6700;
14
+ --color-attention-emphasis: #9a6700;
15
+ --color-done-fg: #8250df;
16
+ --color-done-emphasis: #8250df;
17
+ --color-success-fg: #1a7f37;
18
+ --color-success-emphasis: #1f883d;
19
+ --color-fg-muted: #8b949e;
7
20
  }
8
21
 
9
22
  [data-color-mode*='light'],
10
23
  [data-color-mode*='light'] body {
11
24
  --color-header-bg: #ffffff52;
12
- --color-header-border: #d3d3d3;
25
+ --color-header-border: #0000001c;
13
26
  --color-hover: #0000001a;
14
27
  --color-hoc-bg: #00000008;
28
+
29
+ --color-border-default: #30363d;
30
+ --color-accent-fg: #58a6ff;
31
+ --color-accent-emphasis: #1f6feb;
32
+ --color-danger-fg: #f85149;
33
+ --color-danger-emphasis: #da3633;
34
+ --color-attention-fg: #d29922;
35
+ --color-attention-emphasis: #9e6a03;
36
+ --color-done-fg: #a371f7;
37
+ --color-done-emphasis: #8957e5;
38
+ --color-success-fg: #3fb950;
39
+ --color-success-emphasis: #238636;
40
+ --color-fg-muted: #57606a;
15
41
  }
16
42
 
17
43
  *,
@@ -20,6 +46,17 @@
20
46
  box-sizing: border-box;
21
47
  }
22
48
 
49
+ ::-webkit-scrollbar {
50
+ background: transparent;
51
+ width: 8px;
52
+ height: 8px;
53
+ }
54
+
55
+ ::-webkit-scrollbar-thumb {
56
+ background: var(--color-fg-muted);
57
+ border-radius: 10px;
58
+ }
59
+
23
60
  html {
24
61
  scroll-behavior: smooth;
25
62
  }
@@ -212,10 +249,10 @@ section.article-footer a {
212
249
  align-items: center;
213
250
  }
214
251
 
215
- section.article-footer .edit-button {
252
+ .edit-button {
216
253
  padding-right: 8px;
217
254
  }
218
- section.article-footer .edit-button svg {
255
+ .edit-button svg {
219
256
  height: 15px;
220
257
  margin-right: 6px;
221
258
  }
@@ -256,3 +293,59 @@ section.article-footer .atime {
256
293
  color: var(--color-fg-muted);
257
294
  font-size: 14px;
258
295
  }
296
+
297
+ .markdown-alert {
298
+ border-left: 0.25em solid var(--borderColor-default, var(--color-border-default));
299
+ color: inherit;
300
+ margin-bottom: 16px;
301
+ padding: 0.5rem 1em;
302
+ }
303
+ .markdown-alert > :last-child {
304
+ margin-bottom: 0 !important;
305
+ }
306
+ .markdown-alert .markdown-alert-title {
307
+ align-items: center;
308
+ display: flex;
309
+ font-size: 14px;
310
+ font-weight: 500;
311
+ line-height: 1;
312
+ }
313
+ .markdown-alert .markdown-alert-title svg.octicon {
314
+ margin-right: 8px !important;
315
+ margin-right: var(--base-size-8, 8px) !important;
316
+ }
317
+ .markdown-alert.markdown-alert-note {
318
+ border-left-color: var(--borderColor-accent-emphasis, var(--color-accent-emphasis));
319
+ }
320
+ .markdown-alert.markdown-alert-note .markdown-alert-title {
321
+ color: var(--color-accent-fg);
322
+ color: var(--fgColor-accent, var(--color-accent-fg));
323
+ }
324
+ .markdown-alert.markdown-alert-tip {
325
+ border-left-color: var(--borderColor-success-emphasis, var(--color-success-emphasis));
326
+ }
327
+ .markdown-alert.markdown-alert-tip .markdown-alert-title {
328
+ color: var(--color-success-fg);
329
+ color: var(--fgColor-success, var(--color-success-fg));
330
+ }
331
+ .markdown-alert.markdown-alert-important {
332
+ border-left-color: var(--borderColor-done-emphasis, var(--color-done-emphasis));
333
+ }
334
+ .markdown-alert.markdown-alert-important .markdown-alert-title {
335
+ color: var(--color-done-fg);
336
+ color: var(--fgColor-done, var(--color-done-fg));
337
+ }
338
+ .markdown-alert.markdown-alert-warning {
339
+ border-left-color: var(--borderColor-attention-emphasis, var(--color-attention-emphasis));
340
+ }
341
+ .markdown-alert.markdown-alert-warning .markdown-alert-title {
342
+ color: var(--color-attention-fg);
343
+ color: var(--fgColor-attention, var(--color-attention-fg));
344
+ }
345
+ .markdown-alert.markdown-alert-caution {
346
+ border-left-color: var(--borderColor-danger-emphasis, var(--color-danger-emphasis));
347
+ }
348
+ .markdown-alert.markdown-alert-caution .markdown-alert-title {
349
+ color: var(--color-danger-fg);
350
+ color: var(--fgColor-danger, var(--color-danger-fg));
351
+ }
package/dist/index.html CHANGED
@@ -4,36 +4,51 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
- <title>Copy Text to Clipboard Copy Text to Clipboard 1.0.16</title>
7
+ <title>Copy Text to Clipboard Copy Text to Clipboard 1.0.18</title>
8
8
  <meta name="description" content="Why is it here? To ensure:">
9
9
  <meta name="keywords" content="copy,text,clipboard,browser,clipboard-copy,clipboard.js">
10
- <link rel="stylesheet" type="text/css" href="css/main.css?v=1.26.6">
11
- <link rel="stylesheet" type="text/css" href="css/tocbot.css?v=1.26.6">
12
- <link rel="stylesheet" type="text/css" href="css/media.css?v=1.26.6">
13
- <link rel="stylesheet" type="text/css" href="css/sidebar.css?v=1.26.6">
14
- <link rel="stylesheet" type="text/css" href="css/copy.css?v=1.26.6">
15
- <link rel="stylesheet" type="text/css" href="css/demo-preview.css?v=1.26.6">
10
+ <meta name="author" content="Kenny Wong">
11
+ <meta property="og:site_name" content="Copy Text to Clipboard <sup>1.0.18</sup>">
12
+ <meta property="og:url" content="https://wangchujiang.com/copy-to-clipboard/index.html">
13
+ <meta property="og:type" content="application">
14
+ <meta property="og:title" content="Copy Text to Clipboard <sup>1.0.18</sup>">
15
+ <meta property="og:description" content="Why is it here? To ensure:">
16
+ <meta property="twitter:site" content="@jaywcjlove">
17
+ <meta property="twitter:creator" content="jaywcjlove">
18
+ <meta property="twitter:title" content="Copy Text to Clipboard <sup>1.0.18</sup>">
19
+ <meta property="twitter:description" content="Why is it here? To ensure:">
20
+ <link rel="stylesheet" type="text/css" href="css/main.css?v=1.34.4">
21
+ <link rel="stylesheet" type="text/css" href="css/tocbot.css?v=1.34.4">
22
+ <link rel="stylesheet" type="text/css" href="css/media.css?v=1.34.4">
23
+ <link rel="stylesheet" type="text/css" href="css/sidebar.css?v=1.34.4">
24
+ <link rel="stylesheet" type="text/css" href="css/copy.css?v=1.34.4">
25
+ <link rel="stylesheet" type="text/css" href="css/demo-preview.css?v=1.34.4">
16
26
  <link rel="icon" href="data:image/png;base64,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" type="image/x-icon">
17
- <script src="js/copy.js?v=1.26.6"></script>
18
- <script src="js/dark-mode.js?v=1.26.6"></script>
19
- <script src="js/markdown-style.js?v=1.26.6"></script>
27
+ <script src="js/copy.js?v=1.34.4"></script>
28
+ <script src="js/dark-mode.js?v=1.34.4"></script>
29
+ <script src="js/markdown-style.js?v=1.34.4"></script>
20
30
  </head>
21
31
  <body id="idoctotop"><a href="#idoctotop" class="gototop">top</a>
22
32
  <header class="header">
23
- <article class="inner warpper"><a class="logo" href="index.html"><img alt="Copy Text to Clipboard <sup>1.0.16</sup> logo" src="data:image/png;base64,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">
24
- <span class="title">Copy Text to Clipboard <sup>1.0.16</sup></span></a>
33
+ <article class="inner warpper" style="max-width:720px;"><a class="logo" href="index.html"><img alt="Copy Text to Clipboard <sup>1.0.18</sup> logo" src="data:image/png;base64,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">
34
+ <span class="title">Copy Text to Clipboard <sup>1.0.18</sup></span></a>
25
35
  <div class="content">
26
- <ul class="menu"></ul><a href="https://github.com/uiwjs/copy-to-clipboard.git" target="_blank" rel="noopener noreferrer" title="Github" name="Github" class="github"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
36
+ <ul class="menu">
37
+ <li><a href="index.html" target="" class="active">Home</a></li>
38
+ <li><a href="https://wangchujiang.com/#/app" target="__blank" class="">Apps</a></li>
39
+ <li><a href="https://jaywcjlove.github.io/#/sponsor" target="__blank" class="">Sponsor</a></li>
40
+ </ul><a href="https://github.com/jaywcjlove/copy-to-clipboard" target="_blank" rel="noopener noreferrer" title="Github" name="Github" class="github"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
27
41
  <path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
28
42
  </svg></a>
29
43
  <dark-mode permanent=""></dark-mode>
30
44
  </div>
31
45
  </article>
32
46
  </header>
33
- <div class="warpper-content warpper">
34
- <markdown-style>
47
+ <div style="max-width:720px;" class="warpper-content warpper notocs">
48
+ <markdown-style theme-auto-switch-disabled="">
35
49
  <h1 id="copy-text-to-clipboard"><a aria-hidden="true" tabindex="-1" href="#copy-text-to-clipboard" class="anchor"><span class="icon icon-link"></span></a>Copy Text to Clipboard</h1>
36
50
  <p>
51
+ <a href="https://jaywcjlove.github.io/#/sponsor"><img src="https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee" alt="Buy me a coffee"></a>
37
52
  <img src="http://jaywcjlove.github.io/sb/status/no-dependencies.svg" alt="No Dependencies">
38
53
  <a href="https://www.npmjs.com/package/@uiw/copy-to-clipboard"><img src="https://img.shields.io/npm/dm/@uiw/copy-to-clipboard.svg?style=flat" alt="NPM Downloads"></a>
39
54
  <a href="https://github.com/uiwjs/react-codemirror/actions"><img src="https://github.com/uiwjs/copy-to-clipboard/workflows/Build/badge.svg" alt="Build &#x26; Deploy"></a>
@@ -86,21 +101,14 @@ copyTextToClipboard(&#x27;test&#x27;, (isCopy) => {
86
101
  <h3 id="license"><a aria-hidden="true" tabindex="-1" href="#license" class="anchor"><span class="icon icon-link"></span></a>License</h3>
87
102
  <p>Licensed under the MIT License.</p>
88
103
  </markdown-style>
89
- <nav class="tocs">
90
- <aside class="inner toc">
91
- <ol class="tocs-list">
92
- <li><a href="#usage" class="tocs-link">Usage</a></li>
93
- <li><a href="#contributors" class="tocs-link">Contributors</a>
94
- <ol class="tocs-list is-collapsed">
95
- <li><a href="#license" class="tocs-link">License</a></li>
96
- </ol>
97
- </li>
98
- </ol>
99
- </aside>
100
- </nav>
101
104
  </div>
102
- <script src="js/demo-preview.js?v=1.26.6"></script>
103
- <div class="footer warpper">Released under the MIT License. Copyright © 2023 Kenny Wong<br>Generated by <a href="https://github.com/jaywcjlove/idoc" target="_blank">idoc</a> v1.26.6</div>
104
- <script src="js/tocbot.js?v=1.26.6"></script>
105
+ <script src="js/demo-preview.js?v=1.34.4"></script>
106
+ <div class="footer warpper" style="max-width:720px;">
107
+ <a href="https://wangchujiang.com/#/app" target="_blank">App</a> •
108
+ <a href="https://wangchujiang.com/#/projects" target="_blank">Projects</a> •
109
+ <a href="https://wangchujiang.com/#/sponsor" target="_blank">Sponsor</a> •
110
+ <a href="https://wangchujiang.com/#/app" target="_blank">More Apps</a><br><br>Generated by <a href="https://github.com/jaywcjlove/idoc" target="_blank">idoc</a> v1.34.4
111
+ </div>
112
+ <script src="js/tocbot.js?v=1.34.4"></script>
105
113
  </body>
106
114
  </html>
package/dist/js/copy.js CHANGED
@@ -8,7 +8,7 @@ function copyTextToClipboard(text, cb) {
8
8
  el.style = {
9
9
  position: 'absolute',
10
10
  left: '-9999px',
11
- }
11
+ };
12
12
  document.body.appendChild(el);
13
13
  const selected = document.getSelection().rangeCount > 0 ? document.getSelection().getRangeAt(0) : false;
14
14
  el.select();
@@ -25,16 +25,16 @@ function copyTextToClipboard(text, cb) {
25
25
  document.getSelection().addRange(selected);
26
26
  }
27
27
  cb && cb(isCopy);
28
- };
28
+ }
29
29
 
30
30
  function copied(target, str) {
31
31
  target.classList.add('active');
32
32
  const input = target.parentElement.querySelector('input');
33
33
  if (input) {
34
- copyTextToClipboard(input.value || '', function() {
34
+ copyTextToClipboard(input.value || '', function () {
35
35
  setTimeout(() => {
36
36
  target.classList.remove('active');
37
37
  }, 2000);
38
38
  });
39
39
  }
40
- }
40
+ }
@@ -3,7 +3,7 @@ const demo = document.querySelectorAll('.idoc-demo-warpper .idoc-demo-previw');
3
3
  function getButton(elm, type = 'BUTTON') {
4
4
  let btn;
5
5
  do {
6
- elm = elm.nextElementSibling
6
+ elm = elm.nextElementSibling;
7
7
  if (elm.tagName === type) {
8
8
  btn = elm;
9
9
  elm = undefined;
@@ -19,13 +19,13 @@ if (demo && demo.length > 0) {
19
19
  if (button) {
20
20
  button.innerHTML = item.classList.contains('ishiden') ? 'Preview' : 'Show Code';
21
21
  if (item.tagName === 'DIV') {
22
- item.innerHTML = item.previousElementSibling.defaultValue
22
+ item.innerHTML = item.previousElementSibling.defaultValue;
23
23
  }
24
24
  button.onclick = () => {
25
25
  item.classList.toggle('ishiden');
26
26
  button.innerHTML = item.classList.contains('ishiden') ? 'Preview' : 'Show Code';
27
- }
27
+ };
28
28
  }
29
29
  }
30
30
  });
31
- }
31
+ }
@@ -0,0 +1,34 @@
1
+ (() => {
2
+ const targetElement = document.documentElement;
3
+ const defaultTheme = targetElement.getAttribute('data-color-mode');
4
+ changeGiscusTheme(defaultTheme);
5
+ const observer = new MutationObserver((mutationsList, observer) => {
6
+ for (const mutation of mutationsList) {
7
+ if (mutation.type === 'attributes') {
8
+ const value = targetElement.getAttribute('data-color-mode');
9
+ changeGiscusTheme(value);
10
+ }
11
+ }
12
+ });
13
+
14
+ observer.observe(targetElement, {
15
+ attributes: true,
16
+ attributeOldValue: true,
17
+ });
18
+
19
+ function changeGiscusTheme(theme = 'light') {
20
+ const iframe = document.querySelector('.giscus-frame');
21
+ if (iframe) {
22
+ const config = {
23
+ giscus: {
24
+ setConfig: {
25
+ theme: theme.toLocaleLowerCase(),
26
+ },
27
+ },
28
+ };
29
+ iframe.contentWindow.postMessage(config, 'https://giscus.app');
30
+ const script = document.querySelector('script[data-script-id="giscus"]');
31
+ script.setAttribute('data-theme', theme);
32
+ }
33
+ }
34
+ })();
@@ -1,3 +1,12 @@
1
+ /**
2
+ * Markdown Style
3
+ * @version 1.1.0
4
+ * @author 小弟调调
5
+ * https://github.com/jaywcjlove/markdown-style
6
+ *
7
+ * Integrate markdown styles into web components, Markdown CSS styles will not be conflicted.
8
+ * The minimal amount of CSS to replicate the GitHub Markdown style. Support dark-mode/night mode.
9
+ */
1
10
  const octiconLinkStyle = `
2
11
  markdown-style h1:hover a.anchor .icon-link:before,
3
12
  markdown-style h2:hover a.anchor .icon-link:before,
@@ -110,7 +119,7 @@ ${octiconLinkStyle}
110
119
  markdown-style {
111
120
  display: block;
112
121
  -webkit-text-size-adjust: 100%;
113
- font-family: -apple-system,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";
122
+ font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";
114
123
  font-size: 16px;
115
124
  line-height: 1.5;
116
125
  word-wrap: break-word;
@@ -578,6 +587,37 @@ markdown-style sup>a::before {
578
587
  markdown-style sup>a::after {
579
588
  content: "]";
580
589
  }
590
+ markdown-style .octicon-video .octicon.octicon-device-camera-video {
591
+ margin: 0 0.5rem 0 0.25rem;
592
+ }
593
+ markdown-style .octicon-video {
594
+ border: 1px solid var(--color-border-default) !important;
595
+ border-radius: 6px !important;
596
+ display: block;
597
+ }
598
+
599
+ markdown-style .octicon-video summary {
600
+ border-bottom: 1px solid var(--color-border-default) !important;
601
+ padding: 8px 16px !important;
602
+ cursor: pointer;
603
+ }
604
+
605
+ markdown-style .octicon-video > video {
606
+ display: block !important;
607
+ max-width: 100% !important;
608
+ padding: 2px;
609
+ box-sizing: border-box;
610
+ border-bottom-right-radius: 6px !important;
611
+ border-bottom-left-radius: 6px !important;
612
+ }
613
+
614
+ markdown-style details.octicon-video:not([open])>*:not(summary) {
615
+ display: none !important;
616
+ }
617
+
618
+ markdown-style details.octicon-video:not([open]) > summary {
619
+ border-bottom: 0 !important;
620
+ }
581
621
 
582
622
  markdown-style h1 .octicon-link,
583
623
  markdown-style h2 .octicon-link,
@@ -962,45 +1002,46 @@ markdown-style ::-webkit-calendar-picker-indicator {
962
1002
  <slot></slot>
963
1003
  `;
964
1004
  class MarkdownStyle extends HTMLElement {
965
- constructor() {
966
- super();
967
- this.shadow = this.attachShadow({ mode: 'open' });
968
- this.shadow.appendChild(__TEMPLATE__.content.cloneNode(true));
969
- const style = Array.prototype.slice
970
- .call(this.shadow.children)
971
- .find((item) => item.tagName === 'STYLE');
972
- if (style) {
973
- const id = '__MARKDOWN_STYLE__';
974
- const findStyle = document.getElementById(id);
975
- if (!findStyle) {
976
- style.id = id;
977
- document.head.append(style);
978
- }
979
- }
980
- }
981
- get theme() {
982
- const value = this.getAttribute('theme');
983
- return value === null ? '' : value;
1005
+ get theme() {
1006
+ const value = this.getAttribute('theme');
1007
+ return value === null ? '' : value;
1008
+ }
1009
+ set theme(name) {
1010
+ this.setAttribute('theme', name);
1011
+ }
1012
+ constructor() {
1013
+ super();
1014
+ this.shadow = this.attachShadow({ mode: 'open' });
1015
+ this.shadow.appendChild(__TEMPLATE__.content.cloneNode(true));
1016
+ const style = Array.prototype.slice.call(this.shadow.children).find((item) => item.tagName === 'STYLE');
1017
+ if (style) {
1018
+ const id = '__MARKDOWN_STYLE__';
1019
+ const findStyle = document.getElementById(id);
1020
+ if (!findStyle) {
1021
+ style.id = id;
1022
+ document.head.append(style);
1023
+ }
984
1024
  }
985
- set theme(name) {
986
- this.setAttribute('theme', name);
1025
+ }
1026
+ connectedCallback() {
1027
+ const disableThemeAutoSwitch = this.getAttribute('theme-auto-switch-disabled');
1028
+ if (disableThemeAutoSwitch == '' || (disableThemeAutoSwitch && disableThemeAutoSwitch.toLowerCase() === 'true')) {
1029
+ return;
987
1030
  }
988
- connectedCallback() {
989
- if (!this.theme) {
990
- const { colorMode } = document.documentElement.dataset;
991
- this.theme = colorMode;
992
- const observer = new MutationObserver((mutationsList, observer) => {
993
- this.theme = document.documentElement.dataset.colorMode;
994
- });
995
- observer.observe(document.documentElement, { attributes: true });
996
- window.matchMedia('(prefers-color-scheme: light)').onchange = (event) => {
997
- this.theme = event.matches ? 'light' : 'dark';
998
- };
999
- window.matchMedia('(prefers-color-scheme: dark)').onchange = (event) => {
1000
- this.theme = event.matches ? 'dark' : 'light';
1001
- };
1002
- }
1031
+ if (!this.theme) {
1032
+ const { colorMode } = document.documentElement.dataset;
1033
+ this.theme = colorMode;
1034
+ const observer = new MutationObserver((mutationsList, observer) => {
1035
+ this.theme = document.documentElement.dataset.colorMode;
1036
+ });
1037
+ observer.observe(document.documentElement, { attributes: true });
1038
+ window.matchMedia('(prefers-color-scheme: light)').onchange = (event) => {
1039
+ this.theme = event.matches ? 'light' : 'dark';
1040
+ };
1041
+ window.matchMedia('(prefers-color-scheme: dark)').onchange = (event) => {
1042
+ this.theme = event.matches ? 'dark' : 'light';
1043
+ };
1003
1044
  }
1045
+ }
1004
1046
  }
1005
1047
  customElements.define('markdown-style', MarkdownStyle);
1006
- //# sourceMappingURL=index.js.map
package/dist/js/tocbot.js CHANGED
@@ -1,11 +1,11 @@
1
- ;(() => {
1
+ (() => {
2
2
  function debounce(fn, delay = 1000) {
3
- let time = null
3
+ let time = null;
4
4
  function _debounce(...args) {
5
5
  if (time !== null) clearTimeout(time);
6
- time = setTimeout(() => fn.apply(this, args), delay)
6
+ time = setTimeout(() => fn.apply(this, args), delay);
7
7
  }
8
- return _debounce
8
+ return _debounce;
9
9
  }
10
10
 
11
11
  const scrollSmoothOffset = 56;
@@ -25,7 +25,7 @@
25
25
  location.hash = anchor.getAttribute('href');
26
26
  updateScroll();
27
27
  updateAnchor();
28
- tocsCollapse()
28
+ tocsCollapse();
29
29
  });
30
30
  });
31
31
  }
@@ -53,7 +53,7 @@
53
53
  if (element) {
54
54
  const tocElement = document.querySelector(`a.tocs-link[href='${decodeURIComponent(element.hash)}']`);
55
55
  if (tocElement) {
56
- updateAnchor(tocElement)
56
+ updateAnchor(tocElement);
57
57
  tocsCollapse(tocElement);
58
58
  } else {
59
59
  const first = document.querySelector('a.tocs-link[href*="#"]');
@@ -65,7 +65,7 @@
65
65
  }
66
66
  }
67
67
 
68
- document.addEventListener('scroll',debounce(scrollListener, 30), false);
68
+ document.addEventListener('scroll', debounce(scrollListener, 30), false);
69
69
 
70
70
  function updateAnchor(element) {
71
71
  const anchorContainer = document.querySelectorAll('.tocs aside.inner.toc a.tocs-link');
@@ -98,7 +98,12 @@
98
98
  if (!element) {
99
99
  element = document.querySelector(`a.tocs-link[href='${decodeURIComponent(location.hash)}']`);
100
100
  }
101
- if (element && element.parentElement && element.parentElement.tagName !== 'ASIDE' && !element.parentElement.classList.contains('toc')) {
101
+ if (
102
+ element &&
103
+ element.parentElement &&
104
+ element.parentElement.tagName !== 'ASIDE' &&
105
+ !element.parentElement.classList.contains('toc')
106
+ ) {
102
107
  isOpen(element.parentElement);
103
108
  if (element.parentElement.classList.contains('is-collapsed')) {
104
109
  element.parentElement.classList.add('is-open');
@@ -121,8 +126,7 @@
121
126
  updateSiderBarScroll();
122
127
  updateScroll();
123
128
  updateAnchor();
124
- tocsCollapse()
129
+ tocsCollapse();
125
130
  clearTimeout(timer);
126
131
  }, 100);
127
-
128
- })();
132
+ })();
@@ -9,7 +9,7 @@ var jumpToCode = (function init() {
9
9
  // We don't want to select elements that are direct descendants of another match
10
10
  var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > `
11
11
 
12
- // Selecter that finds elements on the page to which we can jump
12
+ // Selector that finds elements on the page to which we can jump
13
13
  var selector =
14
14
  fileListingElements.join(', ') +
15
15
  ', ' +
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">94.73% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>18/19</span>
28
+ <span class='fraction'>19/19</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">90% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>9/10</span>
35
+ <span class='fraction'>10/10</span>
36
36
  </div>
37
37
 
38
38
 
@@ -57,7 +57,7 @@
57
57
  <template id="filterTemplate">
58
58
  <div class="quiet">
59
59
  Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
60
+ <input type="search" id="fileSearch">
61
61
  </div>
62
62
  </template>
63
63
  </div>
@@ -80,13 +80,13 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file high" data-value="main.js"><a href="main.js.html">main.js</a></td>
83
- <td data-value="94.73" class="pic high">
84
- <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
83
+ <td data-value="100" class="pic high">
84
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
85
85
  </td>
86
- <td data-value="94.73" class="pct high">94.73%</td>
87
- <td data-value="19" class="abs high">18/19</td>
88
- <td data-value="90" class="pct high">90%</td>
89
- <td data-value="10" class="abs high">9/10</td>
86
+ <td data-value="100" class="pct high">100%</td>
87
+ <td data-value="19" class="abs high">19/19</td>
88
+ <td data-value="100" class="pct high">100%</td>
89
+ <td data-value="10" class="abs high">10/10</td>
90
90
  <td data-value="100" class="pct high">100%</td>
91
91
  <td data-value="1" class="abs high">1/1</td>
92
92
  <td data-value="100" class="pct high">100%</td>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2023-10-04T17:02:20.167Z
104
+ at 2025-12-12T14:53:50.709Z
105
105
  </div>
106
106
  <script src="prettify.js"></script>
107
107
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">94.73% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>18/19</span>
28
+ <span class='fraction'>19/19</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">90% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>9/10</span>
35
+ <span class='fraction'>10/10</span>
36
36
  </div>
37
37
 
38
38
 
@@ -57,7 +57,7 @@
57
57
  <template id="filterTemplate">
58
58
  <div class="quiet">
59
59
  Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
60
+ <input type="search" id="fileSearch">
61
61
  </div>
62
62
  </template>
63
63
  </div>
@@ -140,7 +140,7 @@
140
140
  <span class="cline-any cline-neutral">&nbsp;</span>
141
141
  <span class="cline-any cline-neutral">&nbsp;</span>
142
142
  <span class="cline-any cline-neutral">&nbsp;</span>
143
- <span class="cline-any cline-yes">3x</span>
143
+ <span class="cline-any cline-yes">4x</span>
144
144
  <span class="cline-any cline-yes">3x</span>
145
145
  <span class="cline-any cline-yes">3x</span>
146
146
  <span class="cline-any cline-yes">3x</span>
@@ -191,7 +191,7 @@
191
191
  * @param {CopyTextToClipboard} cb
192
192
  */
193
193
  export default function copyTextToClipboard(text, cb) {
194
- <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof document === "undefined") <span class="cstat-no" title="statement not covered" >return;</span>
194
+ if (typeof document === "undefined") return;
195
195
  const el = document.createElement('textarea');
196
196
  el.value = text;
197
197
  el.setAttribute('readonly', '');
@@ -223,7 +223,7 @@ export default function copyTextToClipboard(text, cb) {
223
223
  <div class='footer quiet pad2 space-top1 center small'>
224
224
  Code coverage generated by
225
225
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
226
- at 2023-10-04T17:02:20.167Z
226
+ at 2025-12-12T14:53:50.709Z
227
227
  </div>
228
228
  <script src="prettify.js"></script>
229
229
  <script>
@@ -27,17 +27,31 @@ var addSorting = (function() {
27
27
  function onFilterInput() {
28
28
  const searchValue = document.getElementById('fileSearch').value;
29
29
  const rows = document.getElementsByTagName('tbody')[0].children;
30
+
31
+ // Try to create a RegExp from the searchValue. If it fails (invalid regex),
32
+ // it will be treated as a plain text search
33
+ let searchRegex;
34
+ try {
35
+ searchRegex = new RegExp(searchValue, 'i'); // 'i' for case-insensitive
36
+ } catch (error) {
37
+ searchRegex = null;
38
+ }
39
+
30
40
  for (let i = 0; i < rows.length; i++) {
31
41
  const row = rows[i];
32
- if (
33
- row.textContent
34
- .toLowerCase()
35
- .includes(searchValue.toLowerCase())
36
- ) {
37
- row.style.display = '';
42
+ let isMatch = false;
43
+
44
+ if (searchRegex) {
45
+ // If a valid regex was created, use it for matching
46
+ isMatch = searchRegex.test(row.textContent);
38
47
  } else {
39
- row.style.display = 'none';
48
+ // Otherwise, fall back to the original plain text search
49
+ isMatch = row.textContent
50
+ .toLowerCase()
51
+ .includes(searchValue.toLowerCase());
40
52
  }
53
+
54
+ row.style.display = isMatch ? '' : 'none';
41
55
  }
42
56
  }
43
57
 
package/dist/sitemap.txt CHANGED
@@ -1 +1 @@
1
- https://uiwjs.github.io/copy-to-clipboard/index.html
1
+ https://wangchujiang.com/copy-to-clipboard/index.html
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@uiw/copy-to-clipboard",
3
- "version": "1.0.16",
3
+ "version": "1.0.18",
4
4
  "description": "Copy to clipboard.",
5
5
  "main": "dist/copy-to-clipboard.cjs.js",
6
6
  "module": "dist/copy-to-clipboard.esm.js",
7
7
  "browser": "dist/copy-to-clipboard.umd.js",
8
8
  "homepage": "https://uiwjs.github.io/copy-to-clipboard",
9
+ "funding": "https://jaywcjlove.github.io/#/sponsor",
9
10
  "types": "index.d.ts",
10
11
  "files": [
11
12
  "index.d.ts",