@storybook/addon-docs 10.3.0-alpha.14 → 10.3.0-alpha.16

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.
@@ -903,6 +903,7 @@ var SourceSkeletonWrapper = styled2.div(({ theme }) => ({
903
903
  code,
904
904
  dark,
905
905
  format: format2 = !0,
906
+ copyable = !0,
906
907
  ...rest
907
908
  }) => {
908
909
  let { typography } = useTheme();
@@ -914,7 +915,7 @@ var SourceSkeletonWrapper = styled2.div(({ theme }) => ({
914
915
  StyledSyntaxHighlighter,
915
916
  {
916
917
  bordered: !0,
917
- copyable: !0,
918
+ copyable,
918
919
  format: format2,
919
920
  language: language ?? "jsx",
920
921
  className: "docblock-source sb-unstyled",
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_0qjumh14owwq from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_0qjumh14owwq from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_0qjumh14owwq from "node:module";
1
+ import CJS_COMPAT_NODE_URL_d606yzi0fr9 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_d606yzi0fr9 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_d606yzi0fr9 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_0qjumh14owwq.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_0qjumh14owwq.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_0qjumh14owwq.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_d606yzi0fr9.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_d606yzi0fr9.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_d606yzi0fr9.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_0qjumh14owwq from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_0qjumh14owwq from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_0qjumh14owwq from "node:module";
1
+ import CJS_COMPAT_NODE_URL_d606yzi0fr9 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_d606yzi0fr9 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_d606yzi0fr9 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_0qjumh14owwq.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_0qjumh14owwq.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_0qjumh14owwq.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_d606yzi0fr9.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_d606yzi0fr9.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_d606yzi0fr9.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_0qjumh14owwq from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_0qjumh14owwq from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_0qjumh14owwq from "node:module";
1
+ import CJS_COMPAT_NODE_URL_d606yzi0fr9 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_d606yzi0fr9 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_d606yzi0fr9 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_0qjumh14owwq.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_0qjumh14owwq.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_0qjumh14owwq.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_d606yzi0fr9.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_d606yzi0fr9.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_d606yzi0fr9.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_0qjumh14owwq from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_0qjumh14owwq from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_0qjumh14owwq from "node:module";
1
+ import CJS_COMPAT_NODE_URL_d606yzi0fr9 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_d606yzi0fr9 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_d606yzi0fr9 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_0qjumh14owwq.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_0qjumh14owwq.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_0qjumh14owwq.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_d606yzi0fr9.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_d606yzi0fr9.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_d606yzi0fr9.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -12,15 +12,15 @@ var require = CJS_COMPAT_NODE_MODULE_0qjumh14owwq.createRequire(import.meta.url)
12
12
  import {
13
13
  esm_default,
14
14
  stringify
15
- } from "./chunk-DG2BSJAG.js";
15
+ } from "./chunk-IJ4AAWQK.js";
16
16
  import {
17
17
  visit
18
- } from "./chunk-T64UD6HS.js";
18
+ } from "./chunk-NPPHCGX2.js";
19
19
  import {
20
20
  __commonJS,
21
21
  __export,
22
22
  __toESM
23
- } from "./chunk-B4BGY5QR.js";
23
+ } from "./chunk-FTJIU7GG.js";
24
24
 
25
25
  // ../../../node_modules/@mdx-js/mdx/node_modules/acorn-jsx/xhtml.js
26
26
  var require_xhtml = __commonJS({
@@ -1,23 +1,23 @@
1
- import CJS_COMPAT_NODE_URL_0qjumh14owwq from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_0qjumh14owwq from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_0qjumh14owwq from "node:module";
1
+ import CJS_COMPAT_NODE_URL_d606yzi0fr9 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_d606yzi0fr9 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_d606yzi0fr9 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_0qjumh14owwq.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_0qjumh14owwq.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_0qjumh14owwq.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_d606yzi0fr9.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_d606yzi0fr9.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_d606yzi0fr9.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
12
  import {
13
13
  compile
14
- } from "./chunk-VRODS5F5.js";
15
- import "./chunk-DG2BSJAG.js";
16
- import "./chunk-T64UD6HS.js";
14
+ } from "./chunk-QIEWXAM7.js";
15
+ import "./chunk-IJ4AAWQK.js";
16
+ import "./chunk-NPPHCGX2.js";
17
17
  import {
18
18
  __commonJS,
19
19
  __toESM
20
- } from "./chunk-B4BGY5QR.js";
20
+ } from "./chunk-FTJIU7GG.js";
21
21
 
22
22
  // ../../../node_modules/@rollup/pluginutils/node_modules/picomatch/lib/constants.js
23
23
  var require_constants = __commonJS({
@@ -1000,7 +1000,7 @@ var hasStringIsWellFormed = "isWellFormed" in String.prototype;
1000
1000
 
1001
1001
  // src/mdx-plugin.ts
1002
1002
  async function mdxPlugin(options) {
1003
- let filter = createFilter(/\.mdx$/), { presets } = options, mdxPluginOptions = (await presets.apply("options", {}))?.mdxPluginOptions, rehypeSlug = (await import("./rehype-slug-KGL7QB6M.js")).default, rehypeExternalLinks = (await import("./rehype-external-links-OAWV44V5.js")).default;
1003
+ let filter = createFilter(/\.mdx$/), { presets } = options, mdxPluginOptions = (await presets.apply("options", {}))?.mdxPluginOptions, rehypeSlug = (await import("./rehype-slug-RJL7J3JY.js")).default, rehypeExternalLinks = (await import("./rehype-external-links-SKFSJJ5B.js")).default;
1004
1004
  return {
1005
1005
  name: "storybook:mdx-plugin",
1006
1006
  enforce: "pre",
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_0qjumh14owwq from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_0qjumh14owwq from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_0qjumh14owwq from "node:module";
1
+ import CJS_COMPAT_NODE_URL_d606yzi0fr9 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_d606yzi0fr9 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_d606yzi0fr9 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_0qjumh14owwq.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_0qjumh14owwq.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_0qjumh14owwq.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_d606yzi0fr9.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_d606yzi0fr9.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_d606yzi0fr9.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -12,11 +12,11 @@ var require = CJS_COMPAT_NODE_MODULE_0qjumh14owwq.createRequire(import.meta.url)
12
12
  import {
13
13
  esm_default,
14
14
  parse
15
- } from "./chunk-DG2BSJAG.js";
15
+ } from "./chunk-IJ4AAWQK.js";
16
16
  import {
17
17
  visit
18
- } from "./chunk-T64UD6HS.js";
19
- import "./chunk-B4BGY5QR.js";
18
+ } from "./chunk-NPPHCGX2.js";
19
+ import "./chunk-FTJIU7GG.js";
20
20
 
21
21
  // ../../../node_modules/hast-util-is-element/lib/index.js
22
22
  var convertElement = (
@@ -1,18 +1,18 @@
1
- import CJS_COMPAT_NODE_URL_0qjumh14owwq from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_0qjumh14owwq from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_0qjumh14owwq from "node:module";
1
+ import CJS_COMPAT_NODE_URL_d606yzi0fr9 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_d606yzi0fr9 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_d606yzi0fr9 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_0qjumh14owwq.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_0qjumh14owwq.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_0qjumh14owwq.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_d606yzi0fr9.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_d606yzi0fr9.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_d606yzi0fr9.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
12
  import {
13
13
  visit
14
- } from "./chunk-T64UD6HS.js";
15
- import "./chunk-B4BGY5QR.js";
14
+ } from "./chunk-NPPHCGX2.js";
15
+ import "./chunk-FTJIU7GG.js";
16
16
 
17
17
  // ../../../node_modules/github-slugger/regex.js
18
18
  var regex = /[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2-\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF0-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D58-\u0D5E\u0D64\u0D65\u0D70-\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F2A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u180A\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DA-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u215F\u2189-\u24B5\u24EA-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u319F\u31C0-\u31EF\u3200-\u33FF\u4DC0-\u4DFF\u9FFD-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7C0\uA7C1\uA7CB-\uA7F4\uA828-\uA82B\uA82D-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD3F\uDD75-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEE1-\uDEFF\uDF20-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE40-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE7-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCFF\uDD28-\uDD2F\uDD3A-\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF1D-\uDF26\uDF28-\uDF2F\uDF51-\uDFAF\uDFC5-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC65\uDC70-\uDC7E\uDCBB-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCEA-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC5A-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83D\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDEBF\uDEFA-\uDFFF]|\uD83A[\uDCC5-\uDCCF\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDD2F\uDD4A-\uDD4F\uDD6A-\uDD6F\uDD8A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]/g;
package/dist/blocks.d.ts CHANGED
@@ -88,6 +88,8 @@ interface SourceCodeProps {
88
88
  format?: ComponentProps<typeof SyntaxHighlighter>['format'];
89
89
  /** Display the source snippet in a dark mode. */
90
90
  dark?: boolean;
91
+ /** Whether to show the copy button. Defaults to true. */
92
+ copyable?: boolean;
91
93
  }
92
94
  interface SourceProps$1 extends SourceCodeProps {
93
95
  isLoading?: boolean;
package/dist/blocks.js CHANGED
@@ -10,7 +10,7 @@ import {
10
10
  curriedOpacify$1,
11
11
  curriedTransparentize$1,
12
12
  rgba
13
- } from "./_browser-chunks/chunk-AAVP3AE4.js";
13
+ } from "./_browser-chunks/chunk-SPXYZZB5.js";
14
14
  import "./_browser-chunks/chunk-SL3VIQZ3.js";
15
15
 
16
16
  // src/blocks/components/ArgsTable/ArgsTable.tsx
@@ -1354,7 +1354,7 @@ var JsonArray = class extends Component {
1354
1354
  }
1355
1355
  handleRemoveItem(index) {
1356
1356
  return () => {
1357
- let { beforeRemoveAction, logger: logger4 } = this.props, { data, keyPath, nextDeep: deep } = this.state, oldValue = data[index];
1357
+ let { beforeRemoveAction, logger: logger5 } = this.props, { data, keyPath, nextDeep: deep } = this.state, oldValue = data[index];
1358
1358
  (beforeRemoveAction || Promise.resolve.bind(Promise))(index, keyPath, deep, oldValue).then(() => {
1359
1359
  let deltaUpdateResult = {
1360
1360
  keyPath,
@@ -1366,11 +1366,11 @@ var JsonArray = class extends Component {
1366
1366
  data.splice(index, 1), this.setState({ data });
1367
1367
  let { onUpdate, onDeltaUpdate } = this.props;
1368
1368
  onUpdate(keyPath[keyPath.length - 1], data), onDeltaUpdate(deltaUpdateResult);
1369
- }).catch(logger4.error);
1369
+ }).catch(logger5.error);
1370
1370
  };
1371
1371
  }
1372
1372
  handleAddValueAdd({ newValue }) {
1373
- let { data, keyPath = [], nextDeep: deep } = this.state, { beforeAddAction, logger: logger4 } = this.props, key = data.length;
1373
+ let { data, keyPath = [], nextDeep: deep } = this.state, { beforeAddAction, logger: logger5 } = this.props, key = data.length;
1374
1374
  (beforeAddAction || Promise.resolve.bind(Promise))(key, keyPath, deep, newValue).then(() => {
1375
1375
  data[key] = newValue, this.setState({
1376
1376
  data
@@ -1383,7 +1383,7 @@ var JsonArray = class extends Component {
1383
1383
  key,
1384
1384
  newValue
1385
1385
  });
1386
- }).catch(logger4.error);
1386
+ }).catch(logger5.error);
1387
1387
  }
1388
1388
  handleAddValueCancel() {
1389
1389
  this.setState({
@@ -1433,7 +1433,7 @@ var JsonArray = class extends Component {
1433
1433
  beforeRemoveAction,
1434
1434
  beforeAddAction,
1435
1435
  beforeUpdateAction,
1436
- logger: logger4,
1436
+ logger: logger5,
1437
1437
  onSubmitValueParser
1438
1438
  } = this.props, isReadOnly = readOnly(name, data, keyPath, deep, dataType), addItemButton = plusMenuElement && cloneElement2(plusMenuElement, {
1439
1439
  onClick: this.handleAddMode,
@@ -1467,7 +1467,7 @@ var JsonArray = class extends Component {
1467
1467
  beforeRemoveAction,
1468
1468
  beforeAddAction,
1469
1469
  beforeUpdateAction,
1470
- logger: logger4,
1470
+ logger: logger5,
1471
1471
  onSubmitValueParser
1472
1472
  }
1473
1473
  ))), !isReadOnly && addFormVisible && React9.createElement("div", { className: "rejt-add-form" }, React9.createElement(
@@ -1531,7 +1531,7 @@ var JsonFunctionValue = class extends Component {
1531
1531
  event.altKey || event.ctrlKey || event.metaKey || event.shiftKey || event.repeat || inputRef !== event.target || ((event.code === "Enter" || event.key === "Enter") && (event.preventDefault(), this.handleEdit()), (event.code === "Escape" || event.key === "Escape") && (event.preventDefault(), this.handleCancelEdit()));
1532
1532
  }
1533
1533
  handleEdit() {
1534
- let { handleUpdateValue, originalValue, logger: logger4, onSubmitValueParser, keyPath } = this.props, { inputRef, name, deep } = this.state;
1534
+ let { handleUpdateValue, originalValue, logger: logger5, onSubmitValueParser, keyPath } = this.props, { inputRef, name, deep } = this.state;
1535
1535
  if (!inputRef)
1536
1536
  return;
1537
1537
  let newValue = onSubmitValueParser(!0, keyPath, deep, name, inputRef.value), result = {
@@ -1540,7 +1540,7 @@ var JsonFunctionValue = class extends Component {
1540
1540
  };
1541
1541
  (handleUpdateValue || Promise.resolve.bind(Promise))(result).then(() => {
1542
1542
  isComponentWillChange(originalValue, newValue) || this.handleCancelEdit();
1543
- }).catch(logger4.error);
1543
+ }).catch(logger5.error);
1544
1544
  }
1545
1545
  handleEditMode() {
1546
1546
  this.setState({
@@ -1628,7 +1628,7 @@ var JsonNode = class extends Component {
1628
1628
  beforeRemoveAction,
1629
1629
  beforeAddAction,
1630
1630
  beforeUpdateAction,
1631
- logger: logger4,
1631
+ logger: logger5,
1632
1632
  onSubmitValueParser
1633
1633
  } = this.props, readOnlyTrue = () => !0, dataType = getObjectType(data);
1634
1634
  switch (dataType) {
@@ -1655,7 +1655,7 @@ var JsonNode = class extends Component {
1655
1655
  beforeRemoveAction,
1656
1656
  beforeAddAction,
1657
1657
  beforeUpdateAction,
1658
- logger: logger4,
1658
+ logger: logger5,
1659
1659
  onSubmitValueParser
1660
1660
  }
1661
1661
  );
@@ -1682,7 +1682,7 @@ var JsonNode = class extends Component {
1682
1682
  beforeRemoveAction,
1683
1683
  beforeAddAction,
1684
1684
  beforeUpdateAction,
1685
- logger: logger4,
1685
+ logger: logger5,
1686
1686
  onSubmitValueParser
1687
1687
  }
1688
1688
  );
@@ -1709,7 +1709,7 @@ var JsonNode = class extends Component {
1709
1709
  beforeRemoveAction,
1710
1710
  beforeAddAction,
1711
1711
  beforeUpdateAction,
1712
- logger: logger4,
1712
+ logger: logger5,
1713
1713
  onSubmitValueParser
1714
1714
  }
1715
1715
  );
@@ -1729,7 +1729,7 @@ var JsonNode = class extends Component {
1729
1729
  cancelButtonElement,
1730
1730
  inputElementGenerator,
1731
1731
  minusMenuElement,
1732
- logger: logger4,
1732
+ logger: logger5,
1733
1733
  onSubmitValueParser
1734
1734
  }
1735
1735
  );
@@ -1749,7 +1749,7 @@ var JsonNode = class extends Component {
1749
1749
  cancelButtonElement,
1750
1750
  inputElementGenerator,
1751
1751
  minusMenuElement,
1752
- logger: logger4,
1752
+ logger: logger5,
1753
1753
  onSubmitValueParser
1754
1754
  }
1755
1755
  );
@@ -1769,7 +1769,7 @@ var JsonNode = class extends Component {
1769
1769
  cancelButtonElement,
1770
1770
  inputElementGenerator,
1771
1771
  minusMenuElement,
1772
- logger: logger4,
1772
+ logger: logger5,
1773
1773
  onSubmitValueParser
1774
1774
  }
1775
1775
  );
@@ -1789,7 +1789,7 @@ var JsonNode = class extends Component {
1789
1789
  cancelButtonElement,
1790
1790
  inputElementGenerator,
1791
1791
  minusMenuElement,
1792
- logger: logger4,
1792
+ logger: logger5,
1793
1793
  onSubmitValueParser
1794
1794
  }
1795
1795
  );
@@ -1809,7 +1809,7 @@ var JsonNode = class extends Component {
1809
1809
  cancelButtonElement,
1810
1810
  inputElementGenerator,
1811
1811
  minusMenuElement,
1812
- logger: logger4,
1812
+ logger: logger5,
1813
1813
  onSubmitValueParser
1814
1814
  }
1815
1815
  );
@@ -1829,7 +1829,7 @@ var JsonNode = class extends Component {
1829
1829
  cancelButtonElement,
1830
1830
  inputElementGenerator,
1831
1831
  minusMenuElement,
1832
- logger: logger4,
1832
+ logger: logger5,
1833
1833
  onSubmitValueParser
1834
1834
  }
1835
1835
  );
@@ -1849,7 +1849,7 @@ var JsonNode = class extends Component {
1849
1849
  cancelButtonElement,
1850
1850
  textareaElementGenerator,
1851
1851
  minusMenuElement,
1852
- logger: logger4,
1852
+ logger: logger5,
1853
1853
  onSubmitValueParser
1854
1854
  }
1855
1855
  );
@@ -1869,7 +1869,7 @@ var JsonNode = class extends Component {
1869
1869
  cancelButtonElement,
1870
1870
  inputElementGenerator,
1871
1871
  minusMenuElement,
1872
- logger: logger4,
1872
+ logger: logger5,
1873
1873
  onSubmitValueParser
1874
1874
  }
1875
1875
  );
@@ -1918,7 +1918,7 @@ var JsonObject = class extends Component {
1918
1918
  });
1919
1919
  }
1920
1920
  handleAddValueAdd({ key, newValue }) {
1921
- let { data, keyPath = [], nextDeep: deep } = this.state, { beforeAddAction, logger: logger4 } = this.props;
1921
+ let { data, keyPath = [], nextDeep: deep } = this.state, { beforeAddAction, logger: logger5 } = this.props;
1922
1922
  (beforeAddAction || Promise.resolve.bind(Promise))(key, keyPath, deep, newValue).then(() => {
1923
1923
  data[key] = newValue, this.setState({
1924
1924
  data
@@ -1931,11 +1931,11 @@ var JsonObject = class extends Component {
1931
1931
  key,
1932
1932
  newValue
1933
1933
  });
1934
- }).catch(logger4.error);
1934
+ }).catch(logger5.error);
1935
1935
  }
1936
1936
  handleRemoveValue(key) {
1937
1937
  return () => {
1938
- let { beforeRemoveAction, logger: logger4 } = this.props, { data, keyPath = [], nextDeep: deep } = this.state, oldValue = data[key];
1938
+ let { beforeRemoveAction, logger: logger5 } = this.props, { data, keyPath = [], nextDeep: deep } = this.state, oldValue = data[key];
1939
1939
  (beforeRemoveAction || Promise.resolve.bind(Promise))(key, keyPath, deep, oldValue).then(() => {
1940
1940
  let deltaUpdateResult = {
1941
1941
  keyPath,
@@ -1947,7 +1947,7 @@ var JsonObject = class extends Component {
1947
1947
  delete data[key], this.setState({ data });
1948
1948
  let { onUpdate, onDeltaUpdate } = this.props;
1949
1949
  onUpdate(keyPath[keyPath.length - 1], data), onDeltaUpdate(deltaUpdateResult);
1950
- }).catch(logger4.error);
1950
+ }).catch(logger5.error);
1951
1951
  };
1952
1952
  }
1953
1953
  handleCollapseMode() {
@@ -1998,7 +1998,7 @@ var JsonObject = class extends Component {
1998
1998
  beforeRemoveAction,
1999
1999
  beforeAddAction,
2000
2000
  beforeUpdateAction,
2001
- logger: logger4,
2001
+ logger: logger5,
2002
2002
  onSubmitValueParser
2003
2003
  } = this.props, keyList = Object.getOwnPropertyNames(data), isReadOnly = readOnly(name, data, keyPath, deep, dataType), addItemButton = plusMenuElement && cloneElement2(plusMenuElement, {
2004
2004
  onClick: this.handleAddMode,
@@ -2031,7 +2031,7 @@ var JsonObject = class extends Component {
2031
2031
  beforeRemoveAction,
2032
2032
  beforeAddAction,
2033
2033
  beforeUpdateAction,
2034
- logger: logger4,
2034
+ logger: logger5,
2035
2035
  onSubmitValueParser
2036
2036
  }
2037
2037
  ));
@@ -2095,7 +2095,7 @@ var JsonValue = class extends Component {
2095
2095
  event.altKey || event.ctrlKey || event.metaKey || event.shiftKey || event.repeat || inputRef !== event.target || ((event.code === "Enter" || event.key === "Enter") && (event.preventDefault(), this.handleEdit()), (event.code === "Escape" || event.key === "Escape") && (event.preventDefault(), this.handleCancelEdit()));
2096
2096
  }
2097
2097
  handleEdit() {
2098
- let { handleUpdateValue, originalValue, logger: logger4, onSubmitValueParser, keyPath } = this.props, { inputRef, name, deep } = this.state;
2098
+ let { handleUpdateValue, originalValue, logger: logger5, onSubmitValueParser, keyPath } = this.props, { inputRef, name, deep } = this.state;
2099
2099
  if (!inputRef)
2100
2100
  return;
2101
2101
  let newValue = onSubmitValueParser(!0, keyPath, deep, name, inputRef.value), result = {
@@ -2104,7 +2104,7 @@ var JsonValue = class extends Component {
2104
2104
  };
2105
2105
  (handleUpdateValue || Promise.resolve.bind(Promise))(result).then(() => {
2106
2106
  isComponentWillChange(originalValue, newValue) || this.handleCancelEdit();
2107
- }).catch(logger4.error);
2107
+ }).catch(logger5.error);
2108
2108
  }
2109
2109
  handleEditMode() {
2110
2110
  this.setState({
@@ -2201,7 +2201,7 @@ var JsonTree = class extends Component2 {
2201
2201
  beforeRemoveAction,
2202
2202
  beforeAddAction,
2203
2203
  beforeUpdateAction,
2204
- logger: logger4,
2204
+ logger: logger5,
2205
2205
  onSubmitValueParser,
2206
2206
  fallback = null
2207
2207
  } = this.props, dataType = getObjectType(data), readOnlyFunction = readOnly;
@@ -2230,7 +2230,7 @@ var JsonTree = class extends Component2 {
2230
2230
  beforeRemoveAction,
2231
2231
  beforeAddAction,
2232
2232
  beforeUpdateAction,
2233
- logger: logger4 ?? {},
2233
+ logger: logger5 ?? {},
2234
2234
  onSubmitValueParser: onSubmitValueParser ?? ((val) => val)
2235
2235
  }
2236
2236
  )) : fallback;
@@ -3516,7 +3516,10 @@ var toGlobalSelector = (element) => `& :where(${element}:not(.sb-anchor, .sb-uns
3516
3516
  fontSize: "inherit",
3517
3517
  lineHeight: "24px",
3518
3518
  color: theme.color.secondary,
3519
- textDecoration: "none",
3519
+ // Ensure WCAG Level A compliance (SC 1.4.1), see https://www.w3.org/WAI/WCAG22/Techniques/failures/F73
3520
+ textDecoration: "underline",
3521
+ textDecorationThickness: "0.03125rem",
3522
+ textUnderlineOffset: "0.11em",
3520
3523
  "&.absent": {
3521
3524
  color: "#cc0000"
3522
3525
  },
@@ -3528,7 +3531,11 @@ var toGlobalSelector = (element) => `& :where(${element}:not(.sb-anchor, .sb-uns
3528
3531
  position: "absolute",
3529
3532
  top: 0,
3530
3533
  left: 0,
3531
- bottom: 0
3534
+ bottom: 0,
3535
+ textDecoration: "none"
3536
+ },
3537
+ "&.anchor:hover, &.anchor:focus": {
3538
+ textDecoration: "underline"
3532
3539
  }
3533
3540
  },
3534
3541
  [toGlobalSelector("blockquote")]: {
@@ -3830,8 +3837,324 @@ var toGlobalSelector = (element) => `& :where(${element}:not(.sb-anchor, .sb-uns
3830
3837
  })), DocsPageWrapper = ({ children, toc }) => React24.createElement(DocsWrapper, { className: "sbdocs sbdocs-wrapper" }, toc, React24.createElement(DocsContent, { className: "sbdocs sbdocs-content" }, children));
3831
3838
 
3832
3839
  // src/blocks/components/Preview.tsx
3833
- import React29, { Children, useCallback as useCallback6, useContext as useContext2, useState as useState13 } from "react";
3834
- import { ActionBar, Zoom } from "storybook/internal/components";
3840
+ import React29, { Children, useCallback as useCallback6, useContext as useContext2, useMemo as useMemo3, useState as useState13 } from "react";
3841
+ import { logger as logger4 } from "storybook/internal/client-logger";
3842
+ import { Bar, Button as Button7, ToggleButton as ToggleButton2, Zoom } from "storybook/internal/components";
3843
+ import { CopyIcon, MarkupIcon } from "@storybook/icons";
3844
+
3845
+ // ../../../node_modules/@react-aria/utils/dist/useLayoutEffect.mjs
3846
+ import $HgANd$react from "react";
3847
+ var $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c = typeof document < "u" ? $HgANd$react.useLayoutEffect : () => {
3848
+ };
3849
+
3850
+ // ../../../node_modules/@react-aria/utils/dist/useValueEffect.mjs
3851
+ import { useState as $fCAlL$useState, useRef as $fCAlL$useRef, useCallback as $fCAlL$useCallback } from "react";
3852
+
3853
+ // ../../../node_modules/@react-aria/utils/dist/useId.mjs
3854
+ import { useState as $eKkEp$useState, useRef as $eKkEp$useRef, useEffect as $eKkEp$useEffect, useCallback as $eKkEp$useCallback } from "react";
3855
+
3856
+ // ../../../node_modules/@react-aria/ssr/dist/SSRProvider.mjs
3857
+ import $670gB$react, { useContext as $670gB$useContext, useState as $670gB$useState, useMemo as $670gB$useMemo, useLayoutEffect as $670gB$useLayoutEffect, useRef as $670gB$useRef } from "react";
3858
+ var $b5e257d569688ac6$var$defaultContext = {
3859
+ prefix: String(Math.round(Math.random() * 1e10)),
3860
+ current: 0
3861
+ }, $b5e257d569688ac6$var$SSRContext = $670gB$react.createContext($b5e257d569688ac6$var$defaultContext), $b5e257d569688ac6$var$IsSSRContext = $670gB$react.createContext(!1);
3862
+ var $b5e257d569688ac6$var$canUseDOM = !!(typeof window < "u" && window.document && window.document.createElement), $b5e257d569688ac6$var$componentIds = /* @__PURE__ */ new WeakMap();
3863
+ function $b5e257d569688ac6$var$useCounter(isDisabled = !1) {
3864
+ let ctx = $670gB$useContext($b5e257d569688ac6$var$SSRContext), ref = $670gB$useRef(null);
3865
+ if (ref.current === null && !isDisabled) {
3866
+ var _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner, _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
3867
+ let currentOwner = (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = $670gB$react.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED === void 0 || (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner = _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner === void 0 ? void 0 : _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner.current;
3868
+ if (currentOwner) {
3869
+ let prevComponentValue = $b5e257d569688ac6$var$componentIds.get(currentOwner);
3870
+ prevComponentValue == null ? $b5e257d569688ac6$var$componentIds.set(currentOwner, {
3871
+ id: ctx.current,
3872
+ state: currentOwner.memoizedState
3873
+ }) : currentOwner.memoizedState !== prevComponentValue.state && (ctx.current = prevComponentValue.id, $b5e257d569688ac6$var$componentIds.delete(currentOwner));
3874
+ }
3875
+ ref.current = ++ctx.current;
3876
+ }
3877
+ return ref.current;
3878
+ }
3879
+ function $b5e257d569688ac6$var$useLegacySSRSafeId(defaultId) {
3880
+ let ctx = $670gB$useContext($b5e257d569688ac6$var$SSRContext);
3881
+ ctx === $b5e257d569688ac6$var$defaultContext && !$b5e257d569688ac6$var$canUseDOM && process.env.NODE_ENV !== "production" && console.warn("When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.");
3882
+ let counter = $b5e257d569688ac6$var$useCounter(!!defaultId), prefix = ctx === $b5e257d569688ac6$var$defaultContext && process.env.NODE_ENV === "test" ? "react-aria" : `react-aria${ctx.prefix}`;
3883
+ return defaultId || `${prefix}-${counter}`;
3884
+ }
3885
+ function $b5e257d569688ac6$var$useModernSSRSafeId(defaultId) {
3886
+ let id = $670gB$react.useId(), [didSSR] = $670gB$useState($b5e257d569688ac6$export$535bd6ca7f90a273()), prefix = didSSR || process.env.NODE_ENV === "test" ? "react-aria" : `react-aria${$b5e257d569688ac6$var$defaultContext.prefix}`;
3887
+ return defaultId || `${prefix}-${id}`;
3888
+ }
3889
+ var $b5e257d569688ac6$export$619500959fc48b26 = typeof $670gB$react.useId == "function" ? $b5e257d569688ac6$var$useModernSSRSafeId : $b5e257d569688ac6$var$useLegacySSRSafeId;
3890
+ function $b5e257d569688ac6$var$getSnapshot() {
3891
+ return !1;
3892
+ }
3893
+ function $b5e257d569688ac6$var$getServerSnapshot() {
3894
+ return !0;
3895
+ }
3896
+ function $b5e257d569688ac6$var$subscribe(onStoreChange) {
3897
+ return () => {
3898
+ };
3899
+ }
3900
+ function $b5e257d569688ac6$export$535bd6ca7f90a273() {
3901
+ return typeof $670gB$react.useSyncExternalStore == "function" ? $670gB$react.useSyncExternalStore($b5e257d569688ac6$var$subscribe, $b5e257d569688ac6$var$getSnapshot, $b5e257d569688ac6$var$getServerSnapshot) : $670gB$useContext($b5e257d569688ac6$var$IsSSRContext);
3902
+ }
3903
+
3904
+ // ../../../node_modules/@react-aria/utils/dist/useId.mjs
3905
+ var $bdb11010cef70236$var$canUseDOM = !!(typeof window < "u" && window.document && window.document.createElement), $bdb11010cef70236$export$d41a04c74483c6ef = /* @__PURE__ */ new Map(), $bdb11010cef70236$var$registry;
3906
+ typeof FinalizationRegistry < "u" && ($bdb11010cef70236$var$registry = new FinalizationRegistry((heldValue) => {
3907
+ $bdb11010cef70236$export$d41a04c74483c6ef.delete(heldValue);
3908
+ }));
3909
+ function $bdb11010cef70236$export$f680877a34711e37(defaultId) {
3910
+ let [value, setValue] = $eKkEp$useState(defaultId), nextId = $eKkEp$useRef(null), res = $b5e257d569688ac6$export$619500959fc48b26(value), cleanupRef = $eKkEp$useRef(null);
3911
+ if ($bdb11010cef70236$var$registry && $bdb11010cef70236$var$registry.register(cleanupRef, res), $bdb11010cef70236$var$canUseDOM) {
3912
+ let cacheIdRef = $bdb11010cef70236$export$d41a04c74483c6ef.get(res);
3913
+ cacheIdRef && !cacheIdRef.includes(nextId) ? cacheIdRef.push(nextId) : $bdb11010cef70236$export$d41a04c74483c6ef.set(res, [
3914
+ nextId
3915
+ ]);
3916
+ }
3917
+ return $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c(() => {
3918
+ let r2 = res;
3919
+ return () => {
3920
+ $bdb11010cef70236$var$registry && $bdb11010cef70236$var$registry.unregister(cleanupRef), $bdb11010cef70236$export$d41a04c74483c6ef.delete(r2);
3921
+ };
3922
+ }, [
3923
+ res
3924
+ ]), $eKkEp$useEffect(() => {
3925
+ let newId = nextId.current;
3926
+ return newId && setValue(newId), () => {
3927
+ newId && (nextId.current = null);
3928
+ };
3929
+ }), res;
3930
+ }
3931
+
3932
+ // ../../../node_modules/@react-aria/utils/dist/focusWithoutScrolling.mjs
3933
+ function $7215afc6de606d6b$export$de79e2c695e052f3(element) {
3934
+ if ($7215afc6de606d6b$var$supportsPreventScroll()) element.focus({
3935
+ preventScroll: !0
3936
+ });
3937
+ else {
3938
+ let scrollableElements = $7215afc6de606d6b$var$getScrollableElements(element);
3939
+ element.focus(), $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements);
3940
+ }
3941
+ }
3942
+ var $7215afc6de606d6b$var$supportsPreventScrollCached = null;
3943
+ function $7215afc6de606d6b$var$supportsPreventScroll() {
3944
+ if ($7215afc6de606d6b$var$supportsPreventScrollCached == null) {
3945
+ $7215afc6de606d6b$var$supportsPreventScrollCached = !1;
3946
+ try {
3947
+ document.createElement("div").focus({
3948
+ get preventScroll() {
3949
+ return $7215afc6de606d6b$var$supportsPreventScrollCached = !0, !0;
3950
+ }
3951
+ });
3952
+ } catch {
3953
+ }
3954
+ }
3955
+ return $7215afc6de606d6b$var$supportsPreventScrollCached;
3956
+ }
3957
+ function $7215afc6de606d6b$var$getScrollableElements(element) {
3958
+ let parent = element.parentNode, scrollableElements = [], rootScrollingElement = document.scrollingElement || document.documentElement;
3959
+ for (; parent instanceof HTMLElement && parent !== rootScrollingElement; )
3960
+ (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) && scrollableElements.push({
3961
+ element: parent,
3962
+ scrollTop: parent.scrollTop,
3963
+ scrollLeft: parent.scrollLeft
3964
+ }), parent = parent.parentNode;
3965
+ return rootScrollingElement instanceof HTMLElement && scrollableElements.push({
3966
+ element: rootScrollingElement,
3967
+ scrollTop: rootScrollingElement.scrollTop,
3968
+ scrollLeft: rootScrollingElement.scrollLeft
3969
+ }), scrollableElements;
3970
+ }
3971
+ function $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements) {
3972
+ for (let { element, scrollTop, scrollLeft } of scrollableElements)
3973
+ element.scrollTop = scrollTop, element.scrollLeft = scrollLeft;
3974
+ }
3975
+
3976
+ // ../../../node_modules/@react-aria/utils/dist/platform.mjs
3977
+ function $c87311424ea30a05$var$testUserAgent(re2) {
3978
+ var _window_navigator_userAgentData;
3979
+ if (typeof window > "u" || window.navigator == null) return !1;
3980
+ let brands = (_window_navigator_userAgentData = window.navigator.userAgentData) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.brands;
3981
+ return Array.isArray(brands) && brands.some((brand) => re2.test(brand.brand)) || re2.test(window.navigator.userAgent);
3982
+ }
3983
+ function $c87311424ea30a05$var$testPlatform(re2) {
3984
+ var _window_navigator_userAgentData;
3985
+ return typeof window < "u" && window.navigator != null ? re2.test(((_window_navigator_userAgentData = window.navigator.userAgentData) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.platform) || window.navigator.platform) : !1;
3986
+ }
3987
+ function $c87311424ea30a05$var$cached(fn) {
3988
+ if (process.env.NODE_ENV === "test") return fn;
3989
+ let res = null;
3990
+ return () => (res == null && (res = fn()), res);
3991
+ }
3992
+ var $c87311424ea30a05$export$9ac100e40613ea10 = $c87311424ea30a05$var$cached(function() {
3993
+ return $c87311424ea30a05$var$testPlatform(/^Mac/i);
3994
+ }), $c87311424ea30a05$export$186c6964ca17d99 = $c87311424ea30a05$var$cached(function() {
3995
+ return $c87311424ea30a05$var$testPlatform(/^iPhone/i);
3996
+ }), $c87311424ea30a05$export$7bef049ce92e4224 = $c87311424ea30a05$var$cached(function() {
3997
+ return $c87311424ea30a05$var$testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.
3998
+ $c87311424ea30a05$export$9ac100e40613ea10() && navigator.maxTouchPoints > 1;
3999
+ }), $c87311424ea30a05$export$fedb369cb70207f1 = $c87311424ea30a05$var$cached(function() {
4000
+ return $c87311424ea30a05$export$186c6964ca17d99() || $c87311424ea30a05$export$7bef049ce92e4224();
4001
+ }), $c87311424ea30a05$export$e1865c3bedcd822b = $c87311424ea30a05$var$cached(function() {
4002
+ return $c87311424ea30a05$export$9ac100e40613ea10() || $c87311424ea30a05$export$fedb369cb70207f1();
4003
+ }), $c87311424ea30a05$export$78551043582a6a98 = $c87311424ea30a05$var$cached(function() {
4004
+ return $c87311424ea30a05$var$testUserAgent(/AppleWebKit/i) && !$c87311424ea30a05$export$6446a186d09e379e();
4005
+ }), $c87311424ea30a05$export$6446a186d09e379e = $c87311424ea30a05$var$cached(function() {
4006
+ return $c87311424ea30a05$var$testUserAgent(/Chrome/i);
4007
+ }), $c87311424ea30a05$export$a11b0059900ceec8 = $c87311424ea30a05$var$cached(function() {
4008
+ return $c87311424ea30a05$var$testUserAgent(/Android/i);
4009
+ }), $c87311424ea30a05$export$b7d78993b74f766d = $c87311424ea30a05$var$cached(function() {
4010
+ return $c87311424ea30a05$var$testUserAgent(/Firefox/i);
4011
+ });
4012
+
4013
+ // ../../../node_modules/@react-aria/utils/dist/openLink.mjs
4014
+ import $g3jFn$react, { createContext as $g3jFn$createContext, useMemo as $g3jFn$useMemo, useContext as $g3jFn$useContext } from "react";
4015
+ var $ea8dcbcb9ea1b556$var$RouterContext = $g3jFn$createContext({
4016
+ isNative: !0,
4017
+ open: $ea8dcbcb9ea1b556$var$openSyntheticLink,
4018
+ useHref: (href) => href
4019
+ });
4020
+ function $ea8dcbcb9ea1b556$export$95185d699e05d4d7(target, modifiers, setOpening = !0) {
4021
+ var _window_event_type, _window_event;
4022
+ let { metaKey, ctrlKey, altKey, shiftKey } = modifiers;
4023
+ $c87311424ea30a05$export$b7d78993b74f766d() && (!((_window_event = window.event) === null || _window_event === void 0 || (_window_event_type = _window_event.type) === null || _window_event_type === void 0) && _window_event_type.startsWith("key")) && target.target === "_blank" && ($c87311424ea30a05$export$9ac100e40613ea10() ? metaKey = !0 : ctrlKey = !0);
4024
+ let event = $c87311424ea30a05$export$78551043582a6a98() && $c87311424ea30a05$export$9ac100e40613ea10() && !$c87311424ea30a05$export$7bef049ce92e4224() && process.env.NODE_ENV !== "test" ? new KeyboardEvent("keydown", {
4025
+ keyIdentifier: "Enter",
4026
+ metaKey,
4027
+ ctrlKey,
4028
+ altKey,
4029
+ shiftKey
4030
+ }) : new MouseEvent("click", {
4031
+ metaKey,
4032
+ ctrlKey,
4033
+ altKey,
4034
+ shiftKey,
4035
+ detail: 1,
4036
+ bubbles: !0,
4037
+ cancelable: !0
4038
+ });
4039
+ $ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = setOpening, $7215afc6de606d6b$export$de79e2c695e052f3(target), target.dispatchEvent(event), $ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = !1;
4040
+ }
4041
+ $ea8dcbcb9ea1b556$export$95185d699e05d4d7.isOpening = !1;
4042
+ function $ea8dcbcb9ea1b556$var$getSyntheticLink(target, open) {
4043
+ if (target instanceof HTMLAnchorElement) open(target);
4044
+ else if (target.hasAttribute("data-href")) {
4045
+ let link = document.createElement("a");
4046
+ link.href = target.getAttribute("data-href"), target.hasAttribute("data-target") && (link.target = target.getAttribute("data-target")), target.hasAttribute("data-rel") && (link.rel = target.getAttribute("data-rel")), target.hasAttribute("data-download") && (link.download = target.getAttribute("data-download")), target.hasAttribute("data-ping") && (link.ping = target.getAttribute("data-ping")), target.hasAttribute("data-referrer-policy") && (link.referrerPolicy = target.getAttribute("data-referrer-policy")), target.appendChild(link), open(link), target.removeChild(link);
4047
+ }
4048
+ }
4049
+ function $ea8dcbcb9ea1b556$var$openSyntheticLink(target, modifiers) {
4050
+ $ea8dcbcb9ea1b556$var$getSyntheticLink(target, (link) => $ea8dcbcb9ea1b556$export$95185d699e05d4d7(link, modifiers));
4051
+ }
4052
+
4053
+ // ../../../node_modules/@react-aria/utils/dist/runAfterTransition.mjs
4054
+ var $bbed8b41f857bcc0$var$transitionsByElement = /* @__PURE__ */ new Map(), $bbed8b41f857bcc0$var$transitionCallbacks = /* @__PURE__ */ new Set();
4055
+ function $bbed8b41f857bcc0$var$setupGlobalEvents() {
4056
+ if (typeof window > "u") return;
4057
+ function isTransitionEvent(event) {
4058
+ return "propertyName" in event;
4059
+ }
4060
+ let onTransitionStart = (e2) => {
4061
+ if (!isTransitionEvent(e2) || !e2.target) return;
4062
+ let transitions = $bbed8b41f857bcc0$var$transitionsByElement.get(e2.target);
4063
+ transitions || (transitions = /* @__PURE__ */ new Set(), $bbed8b41f857bcc0$var$transitionsByElement.set(e2.target, transitions), e2.target.addEventListener("transitioncancel", onTransitionEnd, {
4064
+ once: !0
4065
+ })), transitions.add(e2.propertyName);
4066
+ }, onTransitionEnd = (e2) => {
4067
+ if (!isTransitionEvent(e2) || !e2.target) return;
4068
+ let properties = $bbed8b41f857bcc0$var$transitionsByElement.get(e2.target);
4069
+ if (properties && (properties.delete(e2.propertyName), properties.size === 0 && (e2.target.removeEventListener("transitioncancel", onTransitionEnd), $bbed8b41f857bcc0$var$transitionsByElement.delete(e2.target)), $bbed8b41f857bcc0$var$transitionsByElement.size === 0)) {
4070
+ for (let cb of $bbed8b41f857bcc0$var$transitionCallbacks) cb();
4071
+ $bbed8b41f857bcc0$var$transitionCallbacks.clear();
4072
+ }
4073
+ };
4074
+ document.body.addEventListener("transitionrun", onTransitionStart), document.body.addEventListener("transitionend", onTransitionEnd);
4075
+ }
4076
+ typeof document < "u" && (document.readyState !== "loading" ? $bbed8b41f857bcc0$var$setupGlobalEvents() : document.addEventListener("DOMContentLoaded", $bbed8b41f857bcc0$var$setupGlobalEvents));
4077
+
4078
+ // ../../../node_modules/@react-aria/utils/dist/useDrag1D.mjs
4079
+ import { useRef as $1rnCS$useRef } from "react";
4080
+
4081
+ // ../../../node_modules/@react-aria/utils/dist/useGlobalListeners.mjs
4082
+ import { useRef as $lPAwt$useRef, useCallback as $lPAwt$useCallback, useEffect as $lPAwt$useEffect } from "react";
4083
+
4084
+ // ../../../node_modules/@react-aria/utils/dist/useObjectRef.mjs
4085
+ import { useRef as $gbmns$useRef, useCallback as $gbmns$useCallback, useMemo as $gbmns$useMemo } from "react";
4086
+
4087
+ // ../../../node_modules/@react-aria/utils/dist/useEffectEvent.mjs
4088
+ import $lmaYr$react, { useRef as $lmaYr$useRef, useCallback as $lmaYr$useCallback } from "react";
4089
+ var $8ae05eaa5c114e9c$var$_React_useInsertionEffect, $8ae05eaa5c114e9c$var$useEarlyEffect = ($8ae05eaa5c114e9c$var$_React_useInsertionEffect = $lmaYr$react.useInsertionEffect) !== null && $8ae05eaa5c114e9c$var$_React_useInsertionEffect !== void 0 ? $8ae05eaa5c114e9c$var$_React_useInsertionEffect : $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c;
4090
+
4091
+ // ../../../node_modules/@react-aria/utils/dist/useUpdateEffect.mjs
4092
+ import { useRef as $9vW05$useRef, useEffect as $9vW05$useEffect } from "react";
4093
+
4094
+ // ../../../node_modules/@react-aria/utils/dist/useUpdateLayoutEffect.mjs
4095
+ import { useRef as $azsE2$useRef } from "react";
4096
+
4097
+ // ../../../node_modules/@react-aria/utils/dist/useResizeObserver.mjs
4098
+ import { useEffect as $Vsl8o$useEffect } from "react";
4099
+
4100
+ // ../../../node_modules/@react-aria/utils/dist/useViewportSize.mjs
4101
+ import { useState as $fuDHA$useState, useEffect as $fuDHA$useEffect } from "react";
4102
+ var $5df64b3807dc15ee$var$visualViewport = typeof document < "u" && window.visualViewport;
4103
+
4104
+ // ../../../node_modules/@react-aria/utils/dist/useDescription.mjs
4105
+ import { useState as $hQ5Hp$useState } from "react";
4106
+
4107
+ // ../../../node_modules/@react-aria/utils/dist/useEvent.mjs
4108
+ import { useEffect as $ceQd6$useEffect } from "react";
4109
+
4110
+ // ../../../node_modules/@react-aria/utils/dist/useDeepMemo.mjs
4111
+ import { useRef as $jtQ6z$useRef } from "react";
4112
+
4113
+ // ../../../node_modules/@react-aria/utils/dist/useFormReset.mjs
4114
+ import { useEffect as $8rM3G$useEffect } from "react";
4115
+
4116
+ // ../../../node_modules/@react-aria/utils/dist/useLoadMore.mjs
4117
+ import { useRef as $hDRkU$useRef, useCallback as $hDRkU$useCallback } from "react";
4118
+
4119
+ // ../../../node_modules/@react-aria/utils/dist/useLoadMoreSentinel.mjs
4120
+ import { useRef as $7FoZl$useRef } from "react";
4121
+
4122
+ // ../../../node_modules/@react-aria/utils/dist/inertValue.mjs
4123
+ import { version as $iulvE$version } from "react";
4124
+
4125
+ // ../../../node_modules/@react-aria/utils/dist/animation.mjs
4126
+ import { flushSync as $jJMAe$flushSync } from "react-dom";
4127
+ import { useState as $jJMAe$useState, useCallback as $jJMAe$useCallback } from "react";
4128
+
4129
+ // ../../../node_modules/@react-aria/utils/dist/isElementVisible.mjs
4130
+ var $7d2416ea0959daaa$var$supportsCheckVisibility = typeof Element < "u" && "checkVisibility" in Element.prototype;
4131
+
4132
+ // ../../../node_modules/@react-aria/utils/dist/isFocusable.mjs
4133
+ var $b4b717babfbb907b$var$focusableElements = [
4134
+ "input:not([disabled]):not([type=hidden])",
4135
+ "select:not([disabled])",
4136
+ "textarea:not([disabled])",
4137
+ "button:not([disabled])",
4138
+ "a[href]",
4139
+ "area[href]",
4140
+ "summary",
4141
+ "iframe",
4142
+ "object",
4143
+ "embed",
4144
+ "audio[controls]",
4145
+ "video[controls]",
4146
+ '[contenteditable]:not([contenteditable^="false"])',
4147
+ "permission"
4148
+ ], $b4b717babfbb907b$var$FOCUSABLE_ELEMENT_SELECTOR = $b4b717babfbb907b$var$focusableElements.join(":not([hidden]),") + ",[tabindex]:not([disabled]):not([hidden])";
4149
+ $b4b717babfbb907b$var$focusableElements.push('[tabindex]:not([tabindex="-1"]):not([disabled])');
4150
+ var $b4b717babfbb907b$var$TABBABLE_ELEMENT_SELECTOR = $b4b717babfbb907b$var$focusableElements.join(':not([hidden]):not([tabindex="-1"]),');
4151
+
4152
+ // ../../../node_modules/@react-stately/utils/dist/useControlledState.mjs
4153
+ import $3whtM$react, { useState as $3whtM$useState, useRef as $3whtM$useRef, useEffect as $3whtM$useEffect, useReducer as $3whtM$useReducer, useCallback as $3whtM$useCallback } from "react";
4154
+ var $458b0a5536c1a7cf$var$_React_useInsertionEffect, $458b0a5536c1a7cf$var$useEarlyEffect = typeof document < "u" ? ($458b0a5536c1a7cf$var$_React_useInsertionEffect = $3whtM$react.useInsertionEffect) !== null && $458b0a5536c1a7cf$var$_React_useInsertionEffect !== void 0 ? $458b0a5536c1a7cf$var$_React_useInsertionEffect : $3whtM$react.useLayoutEffect : () => {
4155
+ };
4156
+
4157
+ // src/blocks/components/Preview.tsx
3835
4158
  import { styled as styled22 } from "storybook/theming";
3836
4159
 
3837
4160
  // src/blocks/blocks/DocsContext.ts
@@ -4122,7 +4445,10 @@ var ChildrenContainer = styled22.div(
4122
4445
  alignItems: "center"
4123
4446
  } : {},
4124
4447
  ({ columns }) => columns && columns > 1 ? { ".innerZoomElementWrapper > *": { minWidth: `calc(100% / ${columns} - 20px)` } } : {}
4125
- ), StyledSource = styled22(Source)(({ theme }) => ({
4448
+ ), ActionBar = styled22(Bar)({
4449
+ marginTop: -40,
4450
+ marginBottom: 40
4451
+ }), StyledSource = styled22(Source)(({ theme }) => ({
4126
4452
  margin: 0,
4127
4453
  borderTopLeftRadius: 0,
4128
4454
  borderTopRightRadius: 0,
@@ -4135,51 +4461,17 @@ var ChildrenContainer = styled22.div(
4135
4461
  background: theme.base === "light" ? "rgba(0, 0, 0, 0.85)" : curriedDarken$1(0.05, theme.background.content)
4136
4462
  }
4137
4463
  })), PreviewContainer = styled22.div(
4138
- ({ theme, withSource, isExpanded }) => ({
4464
+ ({ theme }) => ({
4139
4465
  position: "relative",
4140
4466
  overflow: "hidden",
4141
4467
  margin: "25px 0 40px",
4142
4468
  ...getBlockBackgroundStyle(theme),
4143
- borderBottomLeftRadius: withSource && isExpanded && 0,
4144
- borderBottomRightRadius: withSource && isExpanded && 0,
4145
- borderBottomWidth: isExpanded && 0,
4146
4469
  "h3 + &": {
4147
4470
  marginTop: "16px"
4148
4471
  }
4149
4472
  }),
4150
4473
  ({ withToolbar }) => withToolbar && { paddingTop: 40 }
4151
- ), getSource = (withSource, expanded, setExpanded) => {
4152
- switch (!0) {
4153
- case !!(withSource && withSource.error):
4154
- return {
4155
- source: null,
4156
- actionItem: {
4157
- title: "No code available",
4158
- className: "docblock-code-toggle docblock-code-toggle--disabled",
4159
- disabled: !0,
4160
- onClick: () => setExpanded(!1)
4161
- }
4162
- };
4163
- case expanded:
4164
- return {
4165
- source: React29.createElement(StyledSource, { ...withSource, dark: !0 }),
4166
- actionItem: {
4167
- title: "Hide code",
4168
- className: "docblock-code-toggle docblock-code-toggle--expanded",
4169
- onClick: () => setExpanded(!1)
4170
- }
4171
- };
4172
- default:
4173
- return {
4174
- source: React29.createElement(StyledSource, { ...withSource, dark: !0 }),
4175
- actionItem: {
4176
- title: "Show code",
4177
- className: "docblock-code-toggle",
4178
- onClick: () => setExpanded(!0)
4179
- }
4180
- };
4181
- }
4182
- };
4474
+ );
4183
4475
  function getChildProps(children) {
4184
4476
  if (Children.count(children) === 1) {
4185
4477
  let elt = children;
@@ -4194,10 +4486,7 @@ var PositionedToolbar = styled22(Toolbar)({
4194
4486
  left: 0,
4195
4487
  right: 0,
4196
4488
  height: 40
4197
- }), Relative = styled22.div({
4198
- overflow: "hidden",
4199
- position: "relative"
4200
- }), Preview = ({
4489
+ }), COPIED_LABEL_ANIMATION_DURATION = 2e3, Preview = ({
4201
4490
  isLoading,
4202
4491
  isColumn,
4203
4492
  columns,
@@ -4211,30 +4500,21 @@ var PositionedToolbar = styled22(Toolbar)({
4211
4500
  inline = !1,
4212
4501
  ...props
4213
4502
  }) => {
4214
- let [expanded, setExpanded] = useState13(isExpanded), { source, actionItem } = getSource(withSource, expanded, setExpanded), [scale, setScale] = useState13(1), previewClasses = [className].concat(["sbdocs", "sbdocs-preview", "sb-unstyled"]), defaultActionItems = withSource ? [actionItem] : [], [additionalActionItems, setAdditionalActionItems] = useState13(
4215
- additionalActions ? [...additionalActions] : []
4216
- ), actionItems = [...defaultActionItems, ...additionalActionItems], { window: globalWindow4 } = globalThis, context = useContext2(DocsContext), copyToClipboard = useCallback6(async (text) => {
4503
+ let [expanded, setExpanded] = useState13(isExpanded), [copied, setCopied] = useState13(null), [scale, setScale] = useState13(1), additionalActionItems = useMemo3(
4504
+ () => additionalActions ? [...additionalActions] : [],
4505
+ [additionalActions]
4506
+ ), sourceId = $bdb11010cef70236$export$f680877a34711e37(), previewClasses = [className].concat(["sbdocs", "sbdocs-preview", "sb-unstyled"]), context = useContext2(DocsContext), copyToClipboard = useCallback6(async (text) => {
4217
4507
  let { createCopyToClipboardFunction } = await import("storybook/internal/components");
4218
- createCopyToClipboardFunction();
4219
- }, []), onCopyCapture = (e2) => {
4220
- let selection = globalWindow4.getSelection();
4221
- selection && selection.type === "Range" || (e2.preventDefault(), additionalActionItems.filter((item) => item.title === "Copied").length === 0 && copyToClipboard(source?.props.code ?? "").then(() => {
4222
- setAdditionalActionItems([
4223
- ...additionalActionItems,
4224
- {
4225
- title: "Copied",
4226
- onClick: () => {
4227
- }
4228
- }
4229
- ]), globalWindow4.setTimeout(
4230
- () => setAdditionalActionItems(
4231
- additionalActionItems.filter((item) => item.title !== "Copied")
4232
- ),
4233
- 1500
4234
- );
4235
- }));
4236
- }, childProps = getChildProps(children);
4237
- return React29.createElement(
4508
+ await createCopyToClipboardFunction()(text);
4509
+ }, []), handleCopyCode = useCallback6(async () => {
4510
+ try {
4511
+ await copyToClipboard(withSource?.code ?? ""), setCopied("Copied!");
4512
+ } catch (err) {
4513
+ logger4.error(err), setCopied("Copy error!");
4514
+ }
4515
+ globalThis.window.setTimeout(() => setCopied(null), COPIED_LABEL_ANIMATION_DURATION);
4516
+ }, [copyToClipboard, withSource?.code]), childProps = getChildProps(children), hasSourceError = !!(withSource && withSource.error), hasValidSource = !!(withSource && !withSource.error);
4517
+ return React29.createElement(React29.Fragment, null, React29.createElement(
4238
4518
  PreviewContainer,
4239
4519
  {
4240
4520
  withSource,
@@ -4252,18 +4532,53 @@ var PositionedToolbar = styled22(Toolbar)({
4252
4532
  storyId: !isLoading && childProps ? getStoryId(childProps, context) : void 0
4253
4533
  }
4254
4534
  ),
4255
- React29.createElement(ZoomContext.Provider, { value: { scale } }, React29.createElement(Relative, { className: "docs-story", onCopyCapture: withSource && onCopyCapture }, React29.createElement(
4535
+ React29.createElement(ZoomContext.Provider, { value: { scale } }, React29.createElement(
4256
4536
  ChildrenContainer,
4257
4537
  {
4258
4538
  isColumn: isColumn || !Array.isArray(children),
4259
4539
  columns,
4260
4540
  layout,
4261
- inline
4541
+ inline,
4542
+ className: "docs-story"
4262
4543
  },
4263
4544
  React29.createElement(Zoom.Element, { centered: layout === "centered", scale: inline ? scale : 1 }, Array.isArray(children) ? children.map((child, i2) => React29.createElement("div", { key: i2 }, child)) : React29.createElement("div", null, children))
4264
- ), React29.createElement(ActionBar, { actionItems }))),
4265
- withSource && expanded && source
4266
- );
4545
+ )),
4546
+ hasValidSource && expanded && React29.createElement("div", { id: sourceId }, React29.createElement(StyledSource, { ...withSource, dark: !0, copyable: !1 }))
4547
+ ), (withSource || additionalActionItems.length > 0) && React29.createElement(ActionBar, { className: "sbdocs sbdocs-preview-actions", innerStyle: { paddingInline: 0 } }, hasSourceError && React29.createElement(
4548
+ Button7,
4549
+ {
4550
+ ariaLabel: !1,
4551
+ disabled: !0,
4552
+ variant: "ghost",
4553
+ className: "docblock-code-toggle docblock-code-toggle--disabled"
4554
+ },
4555
+ React29.createElement(MarkupIcon, null),
4556
+ " No code available"
4557
+ ), hasValidSource && React29.createElement(React29.Fragment, null, React29.createElement(
4558
+ ToggleButton2,
4559
+ {
4560
+ ariaLabel: !1,
4561
+ pressed: expanded,
4562
+ "aria-expanded": expanded,
4563
+ "aria-controls": sourceId,
4564
+ onClick: () => setExpanded(!expanded),
4565
+ variant: "ghost",
4566
+ className: `docblock-code-toggle${expanded ? " docblock-code-toggle--expanded" : ""}`
4567
+ },
4568
+ React29.createElement(MarkupIcon, null),
4569
+ " ",
4570
+ expanded ? "Hide code" : "Show code"
4571
+ ), React29.createElement(Button7, { ariaLabel: !1, variant: "ghost", onClick: handleCopyCode }, React29.createElement(CopyIcon, null), " ", copied ?? "Copy code")), additionalActionItems.map(({ title, className: className2, onClick, disabled }, index) => React29.createElement(
4572
+ Button7,
4573
+ {
4574
+ key: index,
4575
+ className: className2,
4576
+ onClick,
4577
+ disabled: !!disabled,
4578
+ variant: "ghost"
4579
+ },
4580
+ title
4581
+ ))));
4267
4582
  }, StyledPreview = styled22(Preview)(() => ({
4268
4583
  ".docs-story": {
4269
4584
  paddingTop: 32,
@@ -5192,7 +5507,7 @@ var ArgTypes = (props) => {
5192
5507
  import React39, { useContext as useContext5 } from "react";
5193
5508
 
5194
5509
  // src/blocks/blocks/Source.tsx
5195
- import React38, { useContext as useContext4, useMemo as useMemo3 } from "react";
5510
+ import React38, { useContext as useContext4, useMemo as useMemo4 } from "react";
5196
5511
  import { SourceType } from "storybook/internal/docs-tools";
5197
5512
 
5198
5513
  // src/blocks/blocks/SourceContainer.tsx
@@ -6279,7 +6594,7 @@ var getStorySource = (storyId, args, sourceContext) => {
6279
6594
  type === SourceType.AUTO && snippet && isArgsStory ? snippet : sourceParameters.originalSource || "", transformer = transformFromProps ?? sourceParameters.transform, transformedCode = transformer ? useTransformCode(code, transformer, storyContext) : code;
6280
6595
  return sourceParameters.code !== void 0 ? sourceParameters.code : transformedCode;
6281
6596
  }, useSourceProps = (props, docsContext, sourceContext) => {
6282
- let { of } = props, story = useMemo3(() => {
6597
+ let { of } = props, story = useMemo4(() => {
6283
6598
  if (of)
6284
6599
  return docsContext.resolveOf(of, ["story"]).story;
6285
6600
  try {
package/dist/manager.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Source
3
- } from "./_browser-chunks/chunk-AAVP3AE4.js";
3
+ } from "./_browser-chunks/chunk-SPXYZZB5.js";
4
4
  import "./_browser-chunks/chunk-SL3VIQZ3.js";
5
5
 
6
6
  // src/manager.tsx
@@ -1,20 +1,20 @@
1
- import CJS_COMPAT_NODE_URL_0qjumh14owwq from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_0qjumh14owwq from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_0qjumh14owwq from "node:module";
1
+ import CJS_COMPAT_NODE_URL_d606yzi0fr9 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_d606yzi0fr9 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_d606yzi0fr9 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_0qjumh14owwq.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_0qjumh14owwq.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_0qjumh14owwq.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_d606yzi0fr9.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_d606yzi0fr9.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_d606yzi0fr9.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
12
  import {
13
13
  compile
14
- } from "./_node-chunks/chunk-VRODS5F5.js";
15
- import "./_node-chunks/chunk-DG2BSJAG.js";
16
- import "./_node-chunks/chunk-T64UD6HS.js";
17
- import "./_node-chunks/chunk-B4BGY5QR.js";
14
+ } from "./_node-chunks/chunk-QIEWXAM7.js";
15
+ import "./_node-chunks/chunk-IJ4AAWQK.js";
16
+ import "./_node-chunks/chunk-NPPHCGX2.js";
17
+ import "./_node-chunks/chunk-FTJIU7GG.js";
18
18
 
19
19
  // src/mdx-loader.ts
20
20
  var DEFAULT_RENDERER = `
package/dist/preset.js CHANGED
@@ -1,15 +1,15 @@
1
- import CJS_COMPAT_NODE_URL_0qjumh14owwq from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_0qjumh14owwq from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_0qjumh14owwq from "node:module";
1
+ import CJS_COMPAT_NODE_URL_d606yzi0fr9 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_d606yzi0fr9 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_d606yzi0fr9 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_0qjumh14owwq.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_0qjumh14owwq.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_0qjumh14owwq.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_d606yzi0fr9.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_d606yzi0fr9.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_d606yzi0fr9.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
- import "./_node-chunks/chunk-B4BGY5QR.js";
12
+ import "./_node-chunks/chunk-FTJIU7GG.js";
13
13
 
14
14
  // src/preset.ts
15
15
  import { isAbsolute as isAbsolute2 } from "node:path";
@@ -17,6 +17,7 @@ import { fileURLToPath as fileURLToPath2 } from "node:url";
17
17
  import { logger as logger2 } from "storybook/internal/node-logger";
18
18
 
19
19
  // ../../core/src/shared/utils/module.ts
20
+ import { createRequire, register } from "node:module";
20
21
  import { fileURLToPath, pathToFileURL } from "node:url";
21
22
 
22
23
  // ../../../node_modules/exsolve/dist/index.mjs
@@ -208,7 +209,12 @@ var importMetaResolve = (...args) => typeof import.meta.resolve != "function" &&
208
209
  try {
209
210
  return dirname(fileURLToPath(importMetaResolve(join(pkg, "package.json"), parent)));
210
211
  } catch {
211
- return dirname(fileURLToPath(importMetaResolve(join(pkg, "package.json"))));
212
+ try {
213
+ return dirname(fileURLToPath(importMetaResolve(join(pkg, "package.json"))));
214
+ } catch {
215
+ let req = createRequire(parent ?? import.meta.url);
216
+ return dirname(req.resolve(join(pkg, "package.json")));
217
+ }
212
218
  }
213
219
  };
214
220
 
@@ -306,7 +312,7 @@ var getResolvedReact = async (options) => {
306
312
  };
307
313
  };
308
314
  async function webpack(webpackConfig = {}, options) {
309
- let { module = {} } = webpackConfig, { csfPluginOptions = {}, mdxPluginOptions = {} } = options, enrichCsf = await options.presets.apply("experimental_enrichCsf"), rehypeSlug = (await import("./_node-chunks/rehype-slug-KGL7QB6M.js")).default, rehypeExternalLinks = (await import("./_node-chunks/rehype-external-links-OAWV44V5.js")).default, mdxLoaderOptions = await options.presets.apply("mdxLoaderOptions", {
315
+ let { module = {} } = webpackConfig, { csfPluginOptions = {}, mdxPluginOptions = {} } = options, enrichCsf = await options.presets.apply("experimental_enrichCsf"), rehypeSlug = (await import("./_node-chunks/rehype-slug-RJL7J3JY.js")).default, rehypeExternalLinks = (await import("./_node-chunks/rehype-external-links-SKFSJJ5B.js")).default, mdxLoaderOptions = await options.presets.apply("mdxLoaderOptions", {
310
316
  ...mdxPluginOptions,
311
317
  mdxCompileOptions: {
312
318
  providerImportSource: import.meta.resolve("@storybook/addon-docs/mdx-react-shim"),
@@ -382,7 +388,7 @@ var docs = (input = {}, options) => {
382
388
  }, addons = [
383
389
  import.meta.resolve("@storybook/react-dom-shim/preset")
384
390
  ], viteFinal = async (config, options) => {
385
- let { plugins = [] } = config, { mdxPlugin } = await import("./_node-chunks/mdx-plugin-MPQORU3B.js"), { react, reactDom, mdx } = await getResolvedReact(options), packageDeduplicationPlugin = {
391
+ let { plugins = [] } = config, { mdxPlugin } = await import("./_node-chunks/mdx-plugin-VRQIMRCG.js"), { react, reactDom, mdx } = await getResolvedReact(options), packageDeduplicationPlugin = {
386
392
  name: "storybook:package-deduplication",
387
393
  enforce: "pre",
388
394
  config: () => ({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/addon-docs",
3
- "version": "10.3.0-alpha.14",
3
+ "version": "10.3.0-alpha.16",
4
4
  "description": "Storybook Docs: Document UI components automatically with stories and MDX",
5
5
  "keywords": [
6
6
  "docs",
@@ -87,9 +87,9 @@
87
87
  ],
88
88
  "dependencies": {
89
89
  "@mdx-js/react": "^3.0.0",
90
- "@storybook/csf-plugin": "10.3.0-alpha.14",
90
+ "@storybook/csf-plugin": "10.3.0-alpha.16",
91
91
  "@storybook/icons": "^2.0.1",
92
- "@storybook/react-dom-shim": "10.3.0-alpha.14",
92
+ "@storybook/react-dom-shim": "10.3.0-alpha.16",
93
93
  "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
94
94
  "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
95
95
  "ts-dedent": "^2.0.0"
@@ -116,7 +116,7 @@
116
116
  "vite": "^7.0.4"
117
117
  },
118
118
  "peerDependencies": {
119
- "storybook": "^10.3.0-alpha.14"
119
+ "storybook": "^10.3.0-alpha.16"
120
120
  },
121
121
  "publishConfig": {
122
122
  "access": "public"