@storybook/addon-docs 10.4.0-alpha.0 → 10.4.0-alpha.1

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.
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getControlId
3
- } from "./chunk-CYSK6WYR.js";
3
+ } from "./chunk-S2IHWCOG.js";
4
4
  import {
5
5
  __commonJS,
6
6
  __toESM
@@ -1014,6 +1014,7 @@ var Wrapper = styled.div({
1014
1014
  return { presets, addPreset };
1015
1015
  }, ColorControl = ({
1016
1016
  name,
1017
+ storyId,
1017
1018
  value: initialValue,
1018
1019
  onChange,
1019
1020
  onFocus,
@@ -1025,7 +1026,7 @@ var Wrapper = styled.div({
1025
1026
  let debouncedOnChange = useCallback(debounce(onChange, 200), [onChange]), { value, realValue, updateValue, color, colorSpace, cycleColorSpace } = useColorInput(
1026
1027
  initialValue,
1027
1028
  debouncedOnChange
1028
- ), { presets, addPreset } = usePresets(presetColors ?? [], color, colorSpace), Picker = ColorPicker[colorSpace], readOnly = !!argType?.table?.readonly, controlId = getControlId(name);
1029
+ ), { presets, addPreset } = usePresets(presetColors ?? [], color, colorSpace), Picker = ColorPicker[colorSpace], readOnly = !!argType?.table?.readonly, controlId = getControlId(name, storyId);
1029
1030
  return React.createElement(Wrapper, null, React.createElement("label", { htmlFor: controlId, className: "sb-sr-only" }, name), React.createElement(
1030
1031
  Input,
1031
1032
  {
@@ -0,0 +1,13 @@
1
+ // src/blocks/controls/helpers.ts
2
+ var getControlId = (value, storyId) => {
3
+ let base = value.replace(/\s+/g, "-");
4
+ return storyId ? `control-${storyId}-${base}` : `control-${base}`;
5
+ }, getControlSetterButtonId = (value, storyId) => {
6
+ let base = value.replace(/\s+/g, "-");
7
+ return storyId ? `set-${storyId}-${base}` : `set-${base}`;
8
+ };
9
+
10
+ export {
11
+ getControlId,
12
+ getControlSetterButtonId
13
+ };
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_on6o02dgj0e from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_on6o02dgj0e from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_on6o02dgj0e from "node:module";
1
+ import CJS_COMPAT_NODE_URL_mbyf8gwq1e from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_mbyf8gwq1e from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_mbyf8gwq1e from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_on6o02dgj0e.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_on6o02dgj0e.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_on6o02dgj0e.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_mbyf8gwq1e.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_mbyf8gwq1e.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_mbyf8gwq1e.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_on6o02dgj0e from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_on6o02dgj0e from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_on6o02dgj0e from "node:module";
1
+ import CJS_COMPAT_NODE_URL_mbyf8gwq1e from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_mbyf8gwq1e from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_mbyf8gwq1e from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_on6o02dgj0e.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_on6o02dgj0e.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_on6o02dgj0e.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_mbyf8gwq1e.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_mbyf8gwq1e.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_mbyf8gwq1e.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_on6o02dgj0e.createRequire(import.meta.url);
12
12
  import {
13
13
  esm_default,
14
14
  stringify
15
- } from "./chunk-IZ4IIMQ3.js";
15
+ } from "./chunk-O3IP3EYZ.js";
16
16
  import {
17
17
  visit
18
- } from "./chunk-6ARKSHGI.js";
18
+ } from "./chunk-3CQLJTS4.js";
19
19
  import {
20
20
  __commonJS,
21
21
  __export,
22
22
  __toESM
23
- } from "./chunk-NYEJA2CZ.js";
23
+ } from "./chunk-UBUIPEWJ.js";
24
24
 
25
25
  // ../../../node_modules/@mdx-js/mdx/node_modules/acorn-jsx/xhtml.js
26
26
  var require_xhtml = __commonJS({
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_on6o02dgj0e from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_on6o02dgj0e from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_on6o02dgj0e from "node:module";
1
+ import CJS_COMPAT_NODE_URL_mbyf8gwq1e from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_mbyf8gwq1e from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_mbyf8gwq1e from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_on6o02dgj0e.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_on6o02dgj0e.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_on6o02dgj0e.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_mbyf8gwq1e.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_mbyf8gwq1e.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_mbyf8gwq1e.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_on6o02dgj0e from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_on6o02dgj0e from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_on6o02dgj0e from "node:module";
1
+ import CJS_COMPAT_NODE_URL_mbyf8gwq1e from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_mbyf8gwq1e from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_mbyf8gwq1e from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_on6o02dgj0e.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_on6o02dgj0e.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_on6o02dgj0e.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_mbyf8gwq1e.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_mbyf8gwq1e.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_mbyf8gwq1e.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -1,23 +1,23 @@
1
- import CJS_COMPAT_NODE_URL_on6o02dgj0e from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_on6o02dgj0e from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_on6o02dgj0e from "node:module";
1
+ import CJS_COMPAT_NODE_URL_mbyf8gwq1e from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_mbyf8gwq1e from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_mbyf8gwq1e from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_on6o02dgj0e.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_on6o02dgj0e.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_on6o02dgj0e.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_mbyf8gwq1e.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_mbyf8gwq1e.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_mbyf8gwq1e.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-73YLCN4K.js";
15
- import "./chunk-IZ4IIMQ3.js";
16
- import "./chunk-6ARKSHGI.js";
14
+ } from "./chunk-FOXFKJUT.js";
15
+ import "./chunk-O3IP3EYZ.js";
16
+ import "./chunk-3CQLJTS4.js";
17
17
  import {
18
18
  __commonJS,
19
19
  __toESM
20
- } from "./chunk-NYEJA2CZ.js";
20
+ } from "./chunk-UBUIPEWJ.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-YLZUJAH7.js")).default, rehypeExternalLinks = (await import("./rehype-external-links-WELLNDNO.js")).default;
1003
+ let filter = createFilter(/\.mdx$/), { presets } = options, mdxPluginOptions = (await presets.apply("options", {}))?.mdxPluginOptions, rehypeSlug = (await import("./rehype-slug-WTB7POBJ.js")).default, rehypeExternalLinks = (await import("./rehype-external-links-PGJMHXWX.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_on6o02dgj0e from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_on6o02dgj0e from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_on6o02dgj0e from "node:module";
1
+ import CJS_COMPAT_NODE_URL_mbyf8gwq1e from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_mbyf8gwq1e from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_mbyf8gwq1e from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_on6o02dgj0e.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_on6o02dgj0e.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_on6o02dgj0e.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_mbyf8gwq1e.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_mbyf8gwq1e.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_mbyf8gwq1e.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_on6o02dgj0e.createRequire(import.meta.url);
12
12
  import {
13
13
  esm_default,
14
14
  parse
15
- } from "./chunk-IZ4IIMQ3.js";
15
+ } from "./chunk-O3IP3EYZ.js";
16
16
  import {
17
17
  visit
18
- } from "./chunk-6ARKSHGI.js";
19
- import "./chunk-NYEJA2CZ.js";
18
+ } from "./chunk-3CQLJTS4.js";
19
+ import "./chunk-UBUIPEWJ.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_on6o02dgj0e from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_on6o02dgj0e from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_on6o02dgj0e from "node:module";
1
+ import CJS_COMPAT_NODE_URL_mbyf8gwq1e from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_mbyf8gwq1e from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_mbyf8gwq1e from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_on6o02dgj0e.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_on6o02dgj0e.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_on6o02dgj0e.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_mbyf8gwq1e.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_mbyf8gwq1e.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_mbyf8gwq1e.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-6ARKSHGI.js";
15
- import "./chunk-NYEJA2CZ.js";
14
+ } from "./chunk-3CQLJTS4.js";
15
+ import "./chunk-UBUIPEWJ.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
@@ -56,6 +56,7 @@ interface ArgsTableOptionProps {
56
56
  initialExpandedArgs?: boolean;
57
57
  isLoading?: boolean;
58
58
  sort?: SortType;
59
+ storyId?: string;
59
60
  }
60
61
  interface ArgsTableDataProps {
61
62
  rows: ArgTypes$1;
@@ -951,6 +952,7 @@ declare const HeadersMdx: {};
951
952
 
952
953
  interface ControlProps<T> {
953
954
  name: string;
955
+ storyId?: string;
954
956
  value?: T;
955
957
  defaultValue?: T;
956
958
  argType?: ArgType;
package/dist/blocks.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getControlId,
3
3
  getControlSetterButtonId
4
- } from "./_browser-chunks/chunk-CYSK6WYR.js";
4
+ } from "./_browser-chunks/chunk-S2IHWCOG.js";
5
5
  import {
6
6
  EmptyBlock,
7
7
  Source,
@@ -659,6 +659,7 @@ var Label = styled.label(({ theme }) => ({
659
659
  }
660
660
  })), parse = (value) => value === "true", BooleanControl = ({
661
661
  name,
662
+ storyId,
662
663
  value,
663
664
  onChange,
664
665
  onBlur,
@@ -673,13 +674,13 @@ var Label = styled.label(({ theme }) => ({
673
674
  ariaLabel: !1,
674
675
  variant: "outline",
675
676
  size: "medium",
676
- id: getControlSetterButtonId(name),
677
+ id: getControlSetterButtonId(name, storyId),
677
678
  onClick: onSetFalse,
678
679
  disabled: readonly
679
680
  },
680
681
  "Set boolean"
681
682
  );
682
- let controlId = getControlId(name), parsedValue = typeof value == "string" ? parse(value) : value;
683
+ let controlId = getControlId(name, storyId), parsedValue = typeof value == "string" ? parse(value) : value;
683
684
  return React.createElement(Label, { "aria-disabled": readonly, htmlFor: controlId, "aria-label": name }, React.createElement(
684
685
  "input",
685
686
  {
@@ -734,7 +735,15 @@ var parseDate = (value) => {
734
735
  "div:last-of-type": {
735
736
  flex: 3
736
737
  }
737
- }), DateControl = ({ name, value, onChange, onFocus, onBlur, argType }) => {
738
+ }), DateControl = ({
739
+ name,
740
+ storyId,
741
+ value,
742
+ onChange,
743
+ onFocus,
744
+ onBlur,
745
+ argType
746
+ }) => {
738
747
  let [valid, setValid] = useState(!0), dateRef = useRef(), timeRef = useRef(), readonly = !!argType?.table?.readonly;
739
748
  useEffect(() => {
740
749
  valid !== !1 && (dateRef && dateRef.current && (dateRef.current.value = value ? formatDate(value) : ""), timeRef && timeRef.current && (timeRef.current.value = value ? formatTime(value) : ""));
@@ -753,7 +762,7 @@ var parseDate = (value) => {
753
762
  result.setHours(parsed.getHours()), result.setMinutes(parsed.getMinutes());
754
763
  let time = result.getTime();
755
764
  time && onChange(time), setValid(!!time);
756
- }, controlId = getControlId(name);
765
+ }, controlId = getControlId(name, storyId);
757
766
  return React2.createElement(FlexSpaced, null, React2.createElement("legend", { className: "sb-sr-only" }, name), React2.createElement("label", { htmlFor: `${controlId}-date`, className: "sb-sr-only" }, "Date"), React2.createElement(
758
767
  FormInput,
759
768
  {
@@ -795,6 +804,7 @@ var Wrapper = styled3.label({
795
804
  background: theme.base === "light" ? theme.color.lighter : "transparent"
796
805
  })), NumberControl = ({
797
806
  name,
807
+ storyId,
798
808
  value,
799
809
  onChange,
800
810
  min,
@@ -830,7 +840,7 @@ var Wrapper = styled3.label({
830
840
  ariaLabel: !1,
831
841
  variant: "outline",
832
842
  size: "medium",
833
- id: getControlSetterButtonId(name),
843
+ id: getControlSetterButtonId(name, storyId),
834
844
  onClick: onForceVisible,
835
845
  disabled: readonly
836
846
  },
@@ -839,7 +849,7 @@ var Wrapper = styled3.label({
839
849
  FormInput2,
840
850
  {
841
851
  ref: htmlElRef,
842
- id: getControlId(name),
852
+ id: getControlId(name, storyId),
843
853
  type: "number",
844
854
  onChange: handleChange,
845
855
  size: "flex",
@@ -907,6 +917,7 @@ var Wrapper2 = styled4.fieldset(
907
917
  }
908
918
  })), CheckboxControl = ({
909
919
  name,
920
+ storyId,
910
921
  options,
911
922
  value,
912
923
  onChange,
@@ -922,7 +933,7 @@ var Wrapper2 = styled4.fieldset(
922
933
  useEffect3(() => {
923
934
  setSelected(selectedKeys(value || [], options));
924
935
  }, [value]);
925
- let controlId = getControlId(name);
936
+ let controlId = getControlId(name, storyId);
926
937
  return React4.createElement(Wrapper2, { $isInline: isInline }, React4.createElement("legend", { className: "sb-sr-only" }, name), Object.keys(options).map((key, index) => {
927
938
  let id = `${controlId}-${index}`;
928
939
  return React4.createElement(Label2, { key: id, htmlFor: id, $readOnly: readonly }, React4.createElement(
@@ -978,6 +989,7 @@ var Wrapper3 = styled5.fieldset(
978
989
  }
979
990
  })), RadioControl = ({
980
991
  name,
992
+ storyId,
981
993
  options,
982
994
  value,
983
995
  onChange,
@@ -986,7 +998,7 @@ var Wrapper3 = styled5.fieldset(
986
998
  }) => {
987
999
  if (!options)
988
1000
  return logger2.warn(`Radio with no options: ${name}`), React5.createElement(React5.Fragment, null, "-");
989
- let selection = selectedKey(value, options), controlId = getControlId(name), readonly = !!argType?.table?.readonly;
1001
+ let selection = selectedKey(value, options), controlId = getControlId(name, storyId), readonly = !!argType?.table?.readonly;
990
1002
  return React5.createElement(Wrapper3, { isInline }, React5.createElement("legend", { className: "sb-sr-only" }, name), Object.keys(options).map((key, index) => {
991
1003
  let id = `${controlId}-${index}`;
992
1004
  return React5.createElement(Label3, { key: id, htmlFor: id, $readOnly: readonly }, React5.createElement(
@@ -1080,16 +1092,16 @@ var styleResets = {
1080
1092
  fill: theme.textMutedColor
1081
1093
  }
1082
1094
  }
1083
- })), NO_SELECTION = "Choose option...", SingleSelect = ({ name, value, options, onChange, argType }) => {
1095
+ })), NO_SELECTION = "Choose option...", SingleSelect = ({ name, storyId, value, options, onChange, argType }) => {
1084
1096
  let handleChange = (e2) => {
1085
1097
  onChange(options[e2.currentTarget.value]);
1086
- }, selection = selectedKey(value, options) || NO_SELECTION, controlId = getControlId(name), readonly = !!argType?.table?.readonly;
1098
+ }, selection = selectedKey(value, options) || NO_SELECTION, controlId = getControlId(name, storyId), readonly = !!argType?.table?.readonly;
1087
1099
  return React6.createElement(SelectWrapper, null, React6.createElement(ChevronSmallDownIcon, null), React6.createElement("label", { htmlFor: controlId, className: "sb-sr-only" }, name), React6.createElement(OptionsSelect, { disabled: readonly, id: controlId, value: selection, onChange: handleChange }, React6.createElement("option", { disabled: selection === NO_SELECTION, key: "no-selection" }, NO_SELECTION), Object.keys(options).map((key) => React6.createElement("option", { key, value: key }, key))));
1088
- }, MultiSelect = ({ name, value, options, onChange, argType }) => {
1100
+ }, MultiSelect = ({ name, storyId, value, options, onChange, argType }) => {
1089
1101
  let handleChange = (e2) => {
1090
1102
  let selection2 = Array.from(e2.currentTarget.options).filter((option) => option.selected).map((option) => option.value);
1091
1103
  onChange(selectedValues(selection2, options));
1092
- }, selection = selectedKeys(value, options), controlId = getControlId(name), readonly = !!argType?.table?.readonly;
1104
+ }, selection = selectedKeys(value, options), controlId = getControlId(name, storyId), readonly = !!argType?.table?.readonly;
1093
1105
  return React6.createElement(SelectWrapper, null, React6.createElement("label", { htmlFor: controlId, className: "sb-sr-only" }, name), React6.createElement(
1094
1106
  OptionsSelect,
1095
1107
  {
@@ -2386,7 +2398,7 @@ var { window: globalWindow } = globalThis, Wrapper4 = styled8.div(({ theme }) =>
2386
2398
  event.currentTarget.dispatchEvent(new globalWindow.KeyboardEvent("keydown", ENTER_EVENT));
2387
2399
  }, selectValue = (event) => {
2388
2400
  event.currentTarget.select();
2389
- }, ObjectControl = ({ name, value, onChange, argType }) => {
2401
+ }, ObjectControl = ({ name, storyId, value, onChange, argType }) => {
2390
2402
  let theme = useTheme(), data = useMemo(() => value && cloneDeep(value), [value]), hasData = data != null, [showRaw, setShowRaw] = useState4(!hasData), [parseError, setParseError] = useState4(null), readonly = !!argType?.table?.readonly, updateRaw = useCallback3(
2391
2403
  (raw) => {
2392
2404
  try {
@@ -2409,7 +2421,7 @@ var { window: globalWindow } = globalThis, Wrapper4 = styled8.div(({ theme }) =>
2409
2421
  {
2410
2422
  ariaLabel: !1,
2411
2423
  disabled: readonly,
2412
- id: getControlSetterButtonId(name),
2424
+ id: getControlSetterButtonId(name, storyId),
2413
2425
  onClick: onForceVisible
2414
2426
  },
2415
2427
  "Set object"
@@ -2418,7 +2430,7 @@ var { window: globalWindow } = globalThis, Wrapper4 = styled8.div(({ theme }) =>
2418
2430
  RawInput,
2419
2431
  {
2420
2432
  ref: htmlElRef,
2421
- id: getControlId(name),
2433
+ id: getControlId(name, storyId),
2422
2434
  minRows: 3,
2423
2435
  name,
2424
2436
  key: jsonString,
@@ -2584,6 +2596,7 @@ function getNumberOfDecimalPlaces(number) {
2584
2596
  }
2585
2597
  var RangeControl = ({
2586
2598
  name,
2599
+ storyId,
2587
2600
  value,
2588
2601
  onChange,
2589
2602
  min = 0,
@@ -2595,7 +2608,7 @@ var RangeControl = ({
2595
2608
  }) => {
2596
2609
  let handleChange = (event) => {
2597
2610
  onChange(parse2(event.target.value));
2598
- }, hasValue = value !== void 0, numberOFDecimalsPlaces = useMemo2(() => getNumberOfDecimalPlaces(step), [step]), readonly = !!argType?.table?.readonly, controlId = getControlId(name);
2611
+ }, hasValue = value !== void 0, numberOFDecimalsPlaces = useMemo2(() => getNumberOfDecimalPlaces(step), [step]), readonly = !!argType?.table?.readonly, controlId = getControlId(name, storyId);
2599
2612
  return React12.createElement(RangeWrapper, { readOnly: readonly }, React12.createElement("label", { htmlFor: controlId, className: "sb-sr-only" }, name), React12.createElement(RangeLabel, null, min), React12.createElement(
2600
2613
  RangeInput,
2601
2614
  {
@@ -2626,6 +2639,7 @@ var Wrapper5 = styled10.label({
2626
2639
  color: isMaxed ? "red" : void 0
2627
2640
  })), TextControl = ({
2628
2641
  name,
2642
+ storyId,
2629
2643
  value,
2630
2644
  onChange,
2631
2645
  onFocus,
@@ -2646,7 +2660,7 @@ var Wrapper5 = styled10.label({
2646
2660
  variant: "outline",
2647
2661
  size: "medium",
2648
2662
  disabled: readonly,
2649
- id: getControlSetterButtonId(name),
2663
+ id: getControlSetterButtonId(name, storyId),
2650
2664
  onClick: onForceVisible
2651
2665
  },
2652
2666
  "Set string"
@@ -2655,7 +2669,7 @@ var Wrapper5 = styled10.label({
2655
2669
  return React13.createElement(Wrapper5, null, React13.createElement(
2656
2670
  Form4.Textarea,
2657
2671
  {
2658
- id: getControlId(name),
2672
+ id: getControlId(name, storyId),
2659
2673
  maxLength,
2660
2674
  onChange: handleChange,
2661
2675
  disabled: readonly,
@@ -2686,6 +2700,7 @@ function revokeOldUrls(urls) {
2686
2700
  var FilesControl = ({
2687
2701
  onChange,
2688
2702
  name,
2703
+ storyId,
2689
2704
  accept = "image/*",
2690
2705
  value,
2691
2706
  argType
@@ -2700,7 +2715,7 @@ var FilesControl = ({
2700
2715
  useEffect5(() => {
2701
2716
  value == null && inputElement.current && (inputElement.current.value = "");
2702
2717
  }, [value, name]);
2703
- let controlId = getControlId(name);
2718
+ let controlId = getControlId(name, storyId);
2704
2719
  return React14.createElement(React14.Fragment, null, React14.createElement("label", { htmlFor: controlId, className: "sb-sr-only" }, name), React14.createElement(
2705
2720
  FileInput,
2706
2721
  {
@@ -2718,7 +2733,7 @@ var FilesControl = ({
2718
2733
  };
2719
2734
 
2720
2735
  // src/blocks/controls/index.tsx
2721
- var LazyColorControl = lazy(() => import("./_browser-chunks/Color-FRDS63T2.js")), ColorControl = (props) => React15.createElement(Suspense, { fallback: React15.createElement("div", null) }, React15.createElement(LazyColorControl, { ...props }));
2736
+ var LazyColorControl = lazy(() => import("./_browser-chunks/Color-Q5GAO7KP.js")), ColorControl = (props) => React15.createElement(Suspense, { fallback: React15.createElement("div", null) }, React15.createElement(LazyColorControl, { ...props }));
2722
2737
 
2723
2738
  // src/blocks/components/ArgsTable/ArgControl.tsx
2724
2739
  var Controls2 = {
@@ -2737,7 +2752,7 @@ var Controls2 = {
2737
2752
  range: RangeControl,
2738
2753
  text: TextControl,
2739
2754
  file: FilesControl
2740
- }, NoControl = () => React16.createElement(React16.Fragment, null, "-"), ArgControl = ({ row, arg, updateArgs, isHovered }) => {
2755
+ }, NoControl = () => React16.createElement(React16.Fragment, null, "-"), ArgControl = ({ row, arg, updateArgs, isHovered, storyId }) => {
2741
2756
  let { key, control } = row, [isFocused, setFocused] = useState6(!1), [boxedValue, setBoxedValue] = useState6({ value: arg });
2742
2757
  useEffect6(() => {
2743
2758
  isFocused || setBoxedValue({ value: arg });
@@ -2758,7 +2773,15 @@ var Controls2 = {
2758
2773
  "Setup controls"
2759
2774
  ) : React16.createElement(NoControl, null);
2760
2775
  }
2761
- let props = { name: key, argType: row, value: boxedValue.value, onChange, onBlur, onFocus }, Control = Controls2[control.type] || NoControl;
2776
+ let props = {
2777
+ name: key,
2778
+ storyId,
2779
+ argType: row,
2780
+ value: boxedValue.value,
2781
+ onChange,
2782
+ onBlur,
2783
+ onFocus
2784
+ }, Control = Controls2[control.type] || NoControl;
2762
2785
  return React16.createElement(Control, { ...props, ...control, controlType: control.type });
2763
2786
  };
2764
2787
 
@@ -3367,7 +3390,8 @@ var sortFns = {
3367
3390
  inTabPanel,
3368
3391
  initialExpandedArgs,
3369
3392
  sort = "none",
3370
- isLoading
3393
+ isLoading,
3394
+ storyId
3371
3395
  } = props;
3372
3396
  if ("error" in props) {
3373
3397
  let { error } = props;
@@ -3386,7 +3410,7 @@ var sortFns = {
3386
3410
  return React23.createElement(Empty, { inAddonPanel });
3387
3411
  let colSpan = 1;
3388
3412
  updateArgs && (colSpan += 1), compact2 || (colSpan += 2);
3389
- let expandable = Object.keys(groups.sections).length > 0, common = { updateArgs, compact: compact2, inAddonPanel, initialExpandedArgs };
3413
+ let expandable = Object.keys(groups.sections).length > 0, common = { updateArgs, compact: compact2, inAddonPanel, initialExpandedArgs, storyId };
3390
3414
  return React23.createElement(ResetWrapper, null, React23.createElement(TablePositionWrapper, null, updateArgs && !isLoading && resetArgs && React23.createElement(ButtonPositionWrapper, null, React23.createElement(
3391
3415
  StyledButton,
3392
3416
  {
@@ -6734,6 +6758,7 @@ var ControlsImpl = (props) => {
6734
6758
  return Object.keys(filteredArgTypes).length > 0 || Object.keys(args).length > 0 ? React41.createElement(
6735
6759
  ArgsTable,
6736
6760
  {
6761
+ storyId: story.id,
6737
6762
  rows: filteredArgTypes,
6738
6763
  sort,
6739
6764
  args,
@@ -6762,7 +6787,8 @@ var ControlsImpl = (props) => {
6762
6787
  args,
6763
6788
  globals,
6764
6789
  updateArgs,
6765
- resetArgs
6790
+ resetArgs,
6791
+ storyId: story.id
6766
6792
  }
6767
6793
  );
6768
6794
  }, Controls3 = withMdxComponentOverride("Controls", ControlsImpl);
@@ -1,20 +1,20 @@
1
- import CJS_COMPAT_NODE_URL_on6o02dgj0e from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_on6o02dgj0e from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_on6o02dgj0e from "node:module";
1
+ import CJS_COMPAT_NODE_URL_mbyf8gwq1e from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_mbyf8gwq1e from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_mbyf8gwq1e from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_on6o02dgj0e.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_on6o02dgj0e.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_on6o02dgj0e.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_mbyf8gwq1e.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_mbyf8gwq1e.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_mbyf8gwq1e.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-73YLCN4K.js";
15
- import "./_node-chunks/chunk-IZ4IIMQ3.js";
16
- import "./_node-chunks/chunk-6ARKSHGI.js";
17
- import "./_node-chunks/chunk-NYEJA2CZ.js";
14
+ } from "./_node-chunks/chunk-FOXFKJUT.js";
15
+ import "./_node-chunks/chunk-O3IP3EYZ.js";
16
+ import "./_node-chunks/chunk-3CQLJTS4.js";
17
+ import "./_node-chunks/chunk-UBUIPEWJ.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_on6o02dgj0e from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_on6o02dgj0e from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_on6o02dgj0e from "node:module";
1
+ import CJS_COMPAT_NODE_URL_mbyf8gwq1e from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_mbyf8gwq1e from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_mbyf8gwq1e from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_on6o02dgj0e.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_on6o02dgj0e.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_on6o02dgj0e.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_mbyf8gwq1e.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_mbyf8gwq1e.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_mbyf8gwq1e.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-NYEJA2CZ.js";
12
+ import "./_node-chunks/chunk-UBUIPEWJ.js";
13
13
 
14
14
  // src/preset.ts
15
15
  import { isAbsolute as isAbsolute2 } from "node:path";
@@ -312,7 +312,7 @@ var getResolvedReact = async (options) => {
312
312
  };
313
313
  };
314
314
  async function webpack(webpackConfig = {}, options) {
315
- let { module = {} } = webpackConfig, { csfPluginOptions = {}, mdxPluginOptions = {} } = options, enrichCsf = await options.presets.apply("experimental_enrichCsf"), rehypeSlug = (await import("./_node-chunks/rehype-slug-YLZUJAH7.js")).default, rehypeExternalLinks = (await import("./_node-chunks/rehype-external-links-WELLNDNO.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-WTB7POBJ.js")).default, rehypeExternalLinks = (await import("./_node-chunks/rehype-external-links-PGJMHXWX.js")).default, mdxLoaderOptions = await options.presets.apply("mdxLoaderOptions", {
316
316
  ...mdxPluginOptions,
317
317
  mdxCompileOptions: {
318
318
  providerImportSource: import.meta.resolve("@storybook/addon-docs/mdx-react-shim"),
@@ -388,7 +388,7 @@ var docs = (input = {}, options) => {
388
388
  }, addons = [
389
389
  import.meta.resolve("@storybook/react-dom-shim/preset")
390
390
  ], viteFinal = async (config, options) => {
391
- let { plugins = [] } = config, { mdxPlugin } = await import("./_node-chunks/mdx-plugin-JZ3SHCGE.js"), { react, reactDom, mdx } = await getResolvedReact(options), packageDeduplicationPlugin = {
391
+ let { plugins = [] } = config, { mdxPlugin } = await import("./_node-chunks/mdx-plugin-YVVOIQAZ.js"), { react, reactDom, mdx } = await getResolvedReact(options), packageDeduplicationPlugin = {
392
392
  name: "storybook:package-deduplication",
393
393
  enforce: "pre",
394
394
  config: () => ({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/addon-docs",
3
- "version": "10.4.0-alpha.0",
3
+ "version": "10.4.0-alpha.1",
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.4.0-alpha.0",
90
+ "@storybook/csf-plugin": "10.4.0-alpha.1",
91
91
  "@storybook/icons": "^2.0.1",
92
- "@storybook/react-dom-shim": "10.4.0-alpha.0",
92
+ "@storybook/react-dom-shim": "10.4.0-alpha.1",
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.4.0-alpha.0"
119
+ "storybook": "^10.4.0-alpha.1"
120
120
  },
121
121
  "publishConfig": {
122
122
  "access": "public"
@@ -1,7 +0,0 @@
1
- // src/blocks/controls/helpers.ts
2
- var getControlId = (value) => `control-${value.replace(/\s+/g, "-")}`, getControlSetterButtonId = (value) => `set-${value.replace(/\s+/g, "-")}`;
3
-
4
- export {
5
- getControlId,
6
- getControlSetterButtonId
7
- };