@storybook/addon-docs 10.4.0-alpha.2 → 10.4.0-alpha.4

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.
@@ -998,12 +998,18 @@ var Wrapper = styled.div({
998
998
  setValue(updatedValue), onChange(updatedValue);
999
999
  }, [color, colorSpace, onChange]);
1000
1000
  return { value, realValue, updateValue, color, colorSpace, cycleColorSpace };
1001
- }, id = (value) => value.replace(/\s*/, "").toLowerCase(), usePresets = (presetColors, currentColor, colorSpace) => {
1001
+ }, id = (value) => value.replace(/\s*/, "").toLowerCase(), usePresets = (presetColors, currentColor, colorSpace, maxPresetColors = 27) => {
1002
1002
  let [selectedColors, setSelectedColors] = useState(currentColor?.valid ? [currentColor] : []);
1003
1003
  useEffect(() => {
1004
1004
  currentColor === void 0 && setSelectedColors([]);
1005
1005
  }, [currentColor]);
1006
- let presets = useMemo(() => (presetColors || []).map((preset) => typeof preset == "string" ? parseValue(preset) : preset.title ? { ...parseValue(preset.color), keyword: preset.title } : parseValue(preset.color)).concat(selectedColors).filter(Boolean).slice(-27), [presetColors, selectedColors]), addPreset = useCallback(
1006
+ let presets = useMemo(() => {
1007
+ let combined = (presetColors || []).map((preset) => typeof preset == "string" ? parseValue(preset) : preset.title ? { ...parseValue(preset.color), keyword: preset.title } : parseValue(preset.color)).concat(selectedColors).filter(Boolean);
1008
+ if (maxPresetColors === 0 || maxPresetColors === 1 / 0)
1009
+ return combined;
1010
+ let limit = Number.isInteger(maxPresetColors) && maxPresetColors > 0 ? maxPresetColors : 27;
1011
+ return combined.slice(-limit);
1012
+ }, [presetColors, selectedColors, maxPresetColors]), addPreset = useCallback(
1007
1013
  (color) => {
1008
1014
  color?.valid && (presets.some(
1009
1015
  (preset) => preset && preset[colorSpace] && id(preset[colorSpace] || "") === id(color[colorSpace] || "")
@@ -1020,13 +1026,14 @@ var Wrapper = styled.div({
1020
1026
  onFocus,
1021
1027
  onBlur,
1022
1028
  presetColors,
1029
+ maxPresetColors,
1023
1030
  startOpen = !1,
1024
1031
  argType
1025
1032
  }) => {
1026
1033
  let debouncedOnChange = useCallback(debounce(onChange, 200), [onChange]), { value, realValue, updateValue, color, colorSpace, cycleColorSpace } = useColorInput(
1027
1034
  initialValue,
1028
1035
  debouncedOnChange
1029
- ), { presets, addPreset } = usePresets(presetColors ?? [], color, colorSpace), Picker = ColorPicker[colorSpace], readOnly = !!argType?.table?.readonly, controlId = getControlId(name, storyId);
1036
+ ), { presets, addPreset } = usePresets(presetColors ?? [], color, colorSpace, maxPresetColors), Picker = ColorPicker[colorSpace], readOnly = !!argType?.table?.readonly, controlId = getControlId(name, storyId);
1030
1037
  return React.createElement(Wrapper, null, React.createElement("label", { htmlFor: controlId, className: "sb-sr-only" }, name), React.createElement(
1031
1038
  Input,
1032
1039
  {
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_uy221ieol0k from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_uy221ieol0k from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_uy221ieol0k from "node:module";
1
+ import CJS_COMPAT_NODE_URL_h7sdiuvmbga from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_h7sdiuvmbga from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_h7sdiuvmbga from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_uy221ieol0k.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_uy221ieol0k.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_uy221ieol0k.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_h7sdiuvmbga.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_h7sdiuvmbga.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_h7sdiuvmbga.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_uy221ieol0k from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_uy221ieol0k from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_uy221ieol0k from "node:module";
1
+ import CJS_COMPAT_NODE_URL_h7sdiuvmbga from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_h7sdiuvmbga from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_h7sdiuvmbga from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_uy221ieol0k.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_uy221ieol0k.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_uy221ieol0k.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_h7sdiuvmbga.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_h7sdiuvmbga.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_h7sdiuvmbga.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_uy221ieol0k from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_uy221ieol0k from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_uy221ieol0k from "node:module";
1
+ import CJS_COMPAT_NODE_URL_h7sdiuvmbga from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_h7sdiuvmbga from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_h7sdiuvmbga from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_uy221ieol0k.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_uy221ieol0k.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_uy221ieol0k.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_h7sdiuvmbga.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_h7sdiuvmbga.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_h7sdiuvmbga.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_uy221ieol0k.createRequire(import.meta.url);
12
12
  import {
13
13
  esm_default,
14
14
  stringify
15
- } from "./chunk-LPC6ITPH.js";
15
+ } from "./chunk-R2DQV6DS.js";
16
16
  import {
17
17
  visit
18
- } from "./chunk-YJE6VOO4.js";
18
+ } from "./chunk-3E2IT2IN.js";
19
19
  import {
20
20
  __commonJS,
21
21
  __export,
22
22
  __toESM
23
- } from "./chunk-B4MM326X.js";
23
+ } from "./chunk-743KTHK5.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_uy221ieol0k from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_uy221ieol0k from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_uy221ieol0k from "node:module";
1
+ import CJS_COMPAT_NODE_URL_h7sdiuvmbga from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_h7sdiuvmbga from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_h7sdiuvmbga from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_uy221ieol0k.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_uy221ieol0k.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_uy221ieol0k.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_h7sdiuvmbga.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_h7sdiuvmbga.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_h7sdiuvmbga.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_uy221ieol0k from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_uy221ieol0k from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_uy221ieol0k from "node:module";
1
+ import CJS_COMPAT_NODE_URL_h7sdiuvmbga from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_h7sdiuvmbga from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_h7sdiuvmbga from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_uy221ieol0k.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_uy221ieol0k.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_uy221ieol0k.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_h7sdiuvmbga.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_h7sdiuvmbga.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_h7sdiuvmbga.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-WYAX2X7R.js";
15
- import "./chunk-LPC6ITPH.js";
16
- import "./chunk-YJE6VOO4.js";
14
+ } from "./chunk-KEBC4KI4.js";
15
+ import "./chunk-R2DQV6DS.js";
16
+ import "./chunk-3E2IT2IN.js";
17
17
  import {
18
18
  __commonJS,
19
19
  __toESM
20
- } from "./chunk-B4MM326X.js";
20
+ } from "./chunk-743KTHK5.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-OV3P3BNS.js")).default, rehypeExternalLinks = (await import("./rehype-external-links-DBNDAUVA.js")).default;
1003
+ let filter = createFilter(/\.mdx$/), { presets } = options, mdxPluginOptions = (await presets.apply("options", {}))?.mdxPluginOptions, rehypeSlug = (await import("./rehype-slug-EJ4GATXA.js")).default, rehypeExternalLinks = (await import("./rehype-external-links-QZ37EM5K.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_uy221ieol0k from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_uy221ieol0k from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_uy221ieol0k from "node:module";
1
+ import CJS_COMPAT_NODE_URL_h7sdiuvmbga from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_h7sdiuvmbga from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_h7sdiuvmbga from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_uy221ieol0k.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_uy221ieol0k.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_uy221ieol0k.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_h7sdiuvmbga.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_h7sdiuvmbga.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_h7sdiuvmbga.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_uy221ieol0k.createRequire(import.meta.url);
12
12
  import {
13
13
  esm_default,
14
14
  parse
15
- } from "./chunk-LPC6ITPH.js";
15
+ } from "./chunk-R2DQV6DS.js";
16
16
  import {
17
17
  visit
18
- } from "./chunk-YJE6VOO4.js";
19
- import "./chunk-B4MM326X.js";
18
+ } from "./chunk-3E2IT2IN.js";
19
+ import "./chunk-743KTHK5.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_uy221ieol0k from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_uy221ieol0k from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_uy221ieol0k from "node:module";
1
+ import CJS_COMPAT_NODE_URL_h7sdiuvmbga from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_h7sdiuvmbga from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_h7sdiuvmbga from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_uy221ieol0k.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_uy221ieol0k.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_uy221ieol0k.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_h7sdiuvmbga.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_h7sdiuvmbga.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_h7sdiuvmbga.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-YJE6VOO4.js";
15
- import "./chunk-B4MM326X.js";
14
+ } from "./chunk-3E2IT2IN.js";
15
+ import "./chunk-743KTHK5.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
@@ -110,6 +110,7 @@ type PreviewProps = PropsWithChildren<{
110
110
  withToolbar?: boolean;
111
111
  className?: string;
112
112
  additionalActions?: ActionItem[];
113
+ onReloadStory?: () => void;
113
114
  }>;
114
115
  type Layout = 'padded' | 'fullscreen' | 'centered';
115
116
 
@@ -970,6 +971,14 @@ type PresetColor = ColorValue | {
970
971
  };
971
972
  interface ColorConfig {
972
973
  presetColors?: PresetColor[];
974
+ /**
975
+ * Maximum number of preset colors shown in the color picker. When the number of presets exceeds
976
+ * this value, the oldest presets are removed first (most-recently-used order). Set to `Infinity`
977
+ * or `0` to disable the limit and show all presets.
978
+ *
979
+ * @default 27
980
+ */
981
+ maxPresetColors?: number;
973
982
  /**
974
983
  * Whether the color picker should be open by default when rendered.
975
984
  *
package/dist/blocks.js CHANGED
@@ -2733,7 +2733,7 @@ var FilesControl = ({
2733
2733
  };
2734
2734
 
2735
2735
  // src/blocks/controls/index.tsx
2736
- var LazyColorControl = lazy(() => import("./_browser-chunks/Color-Q5GAO7KP.js")), ColorControl = (props) => React15.createElement(Suspense, { fallback: React15.createElement("div", null) }, React15.createElement(LazyColorControl, { ...props }));
2736
+ var LazyColorControl = lazy(() => import("./_browser-chunks/Color-23OOGO2C.js")), ColorControl = (props) => React15.createElement(Suspense, { fallback: React15.createElement("div", null) }, React15.createElement(LazyColorControl, { ...props }));
2737
2737
 
2738
2738
  // src/blocks/components/ArgsTable/ArgControl.tsx
2739
2739
  var Controls2 = {
@@ -4388,7 +4388,7 @@ var storyBlockIdFromId = ({ story, primary }) => `story--${story.id}${primary ?
4388
4388
  // src/blocks/components/Toolbar.tsx
4389
4389
  import React29 from "react";
4390
4390
  import { Button as Button6, Toolbar as SharedToolbar } from "storybook/internal/components";
4391
- import { ShareAltIcon, ZoomIcon, ZoomOutIcon, ZoomResetIcon } from "@storybook/icons";
4391
+ import { ShareAltIcon, SyncIcon, ZoomIcon, ZoomOutIcon, ZoomResetIcon } from "@storybook/icons";
4392
4392
  import { styled as styled21 } from "storybook/theming";
4393
4393
  var AbsoluteBar = styled21(SharedToolbar)({
4394
4394
  position: "absolute",
@@ -4409,7 +4409,24 @@ var AbsoluteBar = styled21(SharedToolbar)({
4409
4409
  margin: "0 7px",
4410
4410
  backgroundColor: theme.appBorderColor,
4411
4411
  animation: `${theme.animation.glow} 1.5s ease-in-out infinite`
4412
- })), Toolbar = ({ isLoading, storyId, zoom, resetZoom, ...rest }) => React29.createElement(AbsoluteBar, { innerStyle: { gap: 4, paddingInline: 7, justifyContent: "space-between" }, ...rest }, React29.createElement(Wrapper7, { key: "left" }, isLoading ? [1, 2, 3].map((key) => React29.createElement(IconPlaceholder, { key })) : React29.createElement(React29.Fragment, null, React29.createElement(
4412
+ })), Toolbar = ({
4413
+ isLoading,
4414
+ storyId,
4415
+ zoom,
4416
+ resetZoom,
4417
+ onReloadStory,
4418
+ ...rest
4419
+ }) => React29.createElement(AbsoluteBar, { innerStyle: { gap: 4, paddingInline: 7, justifyContent: "space-between" }, ...rest }, React29.createElement(Wrapper7, { key: "left" }, isLoading ? [1, 2, 3].map((key) => React29.createElement(IconPlaceholder, { key })) : React29.createElement(React29.Fragment, null, onReloadStory && React29.createElement(
4420
+ Button6,
4421
+ {
4422
+ padding: "small",
4423
+ variant: "ghost",
4424
+ key: "reload",
4425
+ onClick: onReloadStory,
4426
+ ariaLabel: "Reload story"
4427
+ },
4428
+ React29.createElement(SyncIcon, null)
4429
+ ), React29.createElement(
4413
4430
  Button6,
4414
4431
  {
4415
4432
  padding: "small",
@@ -4541,6 +4558,7 @@ var PositionedToolbar = styled22(Toolbar)({
4541
4558
  className,
4542
4559
  layout = "padded",
4543
4560
  inline = !1,
4561
+ onReloadStory,
4544
4562
  ...props
4545
4563
  }) => {
4546
4564
  let [expanded, setExpanded] = useState13(isExpanded), [copied, setCopied] = useState13(null), [scale, setScale] = useState13(1), additionalActionItems = useMemo3(
@@ -4572,7 +4590,8 @@ var PositionedToolbar = styled22(Toolbar)({
4572
4590
  border: !0,
4573
4591
  zoom: (z2) => setScale(scale * z2),
4574
4592
  resetZoom: () => setScale(1),
4575
- storyId: !isLoading && childProps ? getStoryId(childProps, context) : void 0
4593
+ storyId: !isLoading && childProps ? getStoryId(childProps, context) : void 0,
4594
+ onReloadStory
4576
4595
  }
4577
4596
  ),
4578
4597
  React30.createElement(ZoomContext.Provider, { value: { scale } }, React30.createElement(
@@ -5547,7 +5566,8 @@ var ArgTypesImpl = (props) => {
5547
5566
  }, ArgTypes = withMdxComponentOverride("ArgTypes", ArgTypesImpl);
5548
5567
 
5549
5568
  // src/blocks/blocks/Canvas.tsx
5550
- import React40, { useContext as useContext5 } from "react";
5569
+ import React40, { useCallback as useCallback7, useContext as useContext5 } from "react";
5570
+ import { FORCE_REMOUNT } from "storybook/internal/core-events";
5551
5571
 
5552
5572
  // src/blocks/blocks/Source.tsx
5553
5573
  import React39, { useContext as useContext4, useMemo as useMemo4 } from "react";
@@ -6674,7 +6694,9 @@ var CanvasImpl = (props) => {
6674
6694
  let docsContext = useContext5(DocsContext), sourceContext = useContext5(SourceContext), { of, source } = props;
6675
6695
  if ("of" in props && of === void 0)
6676
6696
  throw new Error("Unexpected `of={undefined}`, did you mistype a CSF file reference?");
6677
- let { story } = useOf(of || "story", ["story"]), sourceProps = useSourceProps({ ...source, ...of && { of } }, docsContext, sourceContext), layout = props.layout ?? story.parameters.layout ?? story.parameters.docs?.canvas?.layout ?? "padded", withToolbar = props.withToolbar ?? story.parameters.docs?.canvas?.withToolbar ?? !1, additionalActions = props.additionalActions ?? story.parameters.docs?.canvas?.additionalActions, sourceState = props.sourceState ?? story.parameters.docs?.canvas?.sourceState ?? "hidden", className = props.className ?? story.parameters.docs?.canvas?.className, inline = props.story?.inline ?? story.parameters?.docs?.story?.inline ?? !1;
6697
+ let { story } = useOf(of || "story", ["story"]), sourceProps = useSourceProps({ ...source, ...of && { of } }, docsContext, sourceContext), layout = props.layout ?? story.parameters.layout ?? story.parameters.docs?.canvas?.layout ?? "padded", withToolbar = props.withToolbar ?? story.parameters.docs?.canvas?.withToolbar ?? !1, additionalActions = props.additionalActions ?? story.parameters.docs?.canvas?.additionalActions, sourceState = props.sourceState ?? story.parameters.docs?.canvas?.sourceState ?? "hidden", className = props.className ?? story.parameters.docs?.canvas?.className, inline = props.story?.inline ?? story.parameters?.docs?.story?.inline ?? !1, handleReloadStory = useCallback7(() => {
6698
+ docsContext.channel.emit(FORCE_REMOUNT, { storyId: story.id });
6699
+ }, [docsContext.channel, story.id]);
6678
6700
  return React40.createElement(
6679
6701
  Preview,
6680
6702
  {
@@ -6684,7 +6706,8 @@ var CanvasImpl = (props) => {
6684
6706
  additionalActions,
6685
6707
  className,
6686
6708
  layout,
6687
- inline
6709
+ inline,
6710
+ onReloadStory: inline ? handleReloadStory : void 0
6688
6711
  },
6689
6712
  React40.createElement(Story2, { of: of || story.moduleExport, meta: props.meta, ...props.story })
6690
6713
  );
@@ -6695,7 +6718,7 @@ import React41, { useContext as useContext7 } from "react";
6695
6718
  import { filterArgTypes as filterArgTypes2 } from "storybook/preview-api";
6696
6719
 
6697
6720
  // src/blocks/blocks/useArgs.ts
6698
- import { useCallback as useCallback7, useEffect as useEffect13, useState as useState16 } from "react";
6721
+ import { useCallback as useCallback8, useEffect as useEffect13, useState as useState16 } from "react";
6699
6722
  import {
6700
6723
  RESET_STORY_ARGS,
6701
6724
  STORY_ARGS_UPDATED,
@@ -6714,10 +6737,10 @@ var useArgs = (story, context) => {
6714
6737
  };
6715
6738
  return context.channel.on(STORY_ARGS_UPDATED, onArgsUpdated), () => context.channel.off(STORY_ARGS_UPDATED, onArgsUpdated);
6716
6739
  }, [storyId, context.channel]);
6717
- let updateArgs = useCallback7(
6740
+ let updateArgs = useCallback8(
6718
6741
  (updatedArgs) => context.channel.emit(UPDATE_STORY_ARGS, { storyId, updatedArgs }),
6719
6742
  [storyId, context.channel]
6720
- ), resetArgs = useCallback7(
6743
+ ), resetArgs = useCallback8(
6721
6744
  (argNames) => context.channel.emit(RESET_STORY_ARGS, { storyId, argNames }),
6722
6745
  [storyId, context.channel]
6723
6746
  );
@@ -1,20 +1,20 @@
1
- import CJS_COMPAT_NODE_URL_uy221ieol0k from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_uy221ieol0k from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_uy221ieol0k from "node:module";
1
+ import CJS_COMPAT_NODE_URL_h7sdiuvmbga from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_h7sdiuvmbga from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_h7sdiuvmbga from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_uy221ieol0k.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_uy221ieol0k.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_uy221ieol0k.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_h7sdiuvmbga.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_h7sdiuvmbga.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_h7sdiuvmbga.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-WYAX2X7R.js";
15
- import "./_node-chunks/chunk-LPC6ITPH.js";
16
- import "./_node-chunks/chunk-YJE6VOO4.js";
17
- import "./_node-chunks/chunk-B4MM326X.js";
14
+ } from "./_node-chunks/chunk-KEBC4KI4.js";
15
+ import "./_node-chunks/chunk-R2DQV6DS.js";
16
+ import "./_node-chunks/chunk-3E2IT2IN.js";
17
+ import "./_node-chunks/chunk-743KTHK5.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_uy221ieol0k from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_uy221ieol0k from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_uy221ieol0k from "node:module";
1
+ import CJS_COMPAT_NODE_URL_h7sdiuvmbga from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_h7sdiuvmbga from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_h7sdiuvmbga from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_uy221ieol0k.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_uy221ieol0k.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_uy221ieol0k.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_h7sdiuvmbga.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_h7sdiuvmbga.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_h7sdiuvmbga.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-B4MM326X.js";
12
+ import "./_node-chunks/chunk-743KTHK5.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-OV3P3BNS.js")).default, rehypeExternalLinks = (await import("./_node-chunks/rehype-external-links-DBNDAUVA.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-EJ4GATXA.js")).default, rehypeExternalLinks = (await import("./_node-chunks/rehype-external-links-QZ37EM5K.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-NJJ5DLPT.js"), { react, reactDom, mdx } = await getResolvedReact(options), packageDeduplicationPlugin = {
391
+ let { plugins = [] } = config, { mdxPlugin } = await import("./_node-chunks/mdx-plugin-3C63SINZ.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.2",
3
+ "version": "10.4.0-alpha.4",
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.2",
90
+ "@storybook/csf-plugin": "10.4.0-alpha.4",
91
91
  "@storybook/icons": "^2.0.1",
92
- "@storybook/react-dom-shim": "10.4.0-alpha.2",
92
+ "@storybook/react-dom-shim": "10.4.0-alpha.4",
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.2"
119
+ "storybook": "^10.4.0-alpha.4"
120
120
  },
121
121
  "publishConfig": {
122
122
  "access": "public"