storybook 9.0.0-rc.1 → 9.0.0-rc.2

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,73 +1,113 @@
1
- var ie = Object.defineProperty;
2
- var l = (i, o) => ie(i, "name", { value: o, configurable: !0 });
1
+ var pe = Object.defineProperty;
2
+ var c = (s, e) => pe(s, "name", { value: e, configurable: !0 });
3
3
 
4
4
  // src/highlight/preview.ts
5
- import { addons as te, definePreview as ue } from "storybook/preview-api";
5
+ import { addons as le, definePreview as fe } from "storybook/preview-api";
6
6
 
7
7
  // src/highlight/useHighlights.ts
8
- import { STORY_RENDER_PHASE_CHANGED as ce } from "storybook/internal/core-events";
8
+ import { STORY_RENDER_PHASE_CHANGED as he } from "storybook/internal/core-events";
9
9
 
10
10
  // src/highlight/constants.ts
11
- var B = "storybook/highlight", V = `${B}/add`, q = `${B}/remove`, z = `${B}/reset`, j = `${B}/scroll-into-view`, D = 2147483647;
11
+ var _ = "storybook/highlight", U = `${_}/add`, K = `${_}/remove`, J = `${_}/reset`, Q = `${_}/scroll-into-view`, F = 2147483647, L = 28;
12
+
13
+ // src/highlight/icons.ts
14
+ var G = {
15
+ chevronLeft: [
16
+ "M9.10355 10.1464C9.29882 10.3417 9.29882 10.6583 9.10355 10.8536C8.90829 11.0488 8.59171 11.0488 8.39645 10.8536L4.89645 7.35355C4.7011\
17
+ 8 7.15829 4.70118 6.84171 4.89645 6.64645L8.39645 3.14645C8.59171 2.95118 8.90829 2.95118 9.10355 3.14645C9.29882 3.34171 9.29882 3.65829 9.\
18
+ 10355 3.85355L5.95711 7L9.10355 10.1464Z"
19
+ ],
20
+ chevronRight: [
21
+ "M4.89645 10.1464C4.70118 10.3417 4.70118 10.6583 4.89645 10.8536C5.09171 11.0488 5.40829 11.0488 5.60355 10.8536L9.10355 7.35355C9.2988\
22
+ 2 7.15829 9.29882 6.84171 9.10355 6.64645L5.60355 3.14645C5.40829 2.95118 5.09171 2.95118 4.89645 3.14645C4.70118 3.34171 4.70118 3.65829 4.\
23
+ 89645 3.85355L8.04289 7L4.89645 10.1464Z"
24
+ ],
25
+ info: [
26
+ "M7 5.5a.5.5 0 01.5.5v4a.5.5 0 01-1 0V6a.5.5 0 01.5-.5zM7 4.5A.75.75 0 107 3a.75.75 0 000 1.5z",
27
+ "M7 14A7 7 0 107 0a7 7 0 000 14zm0-1A6 6 0 107 1a6 6 0 000 12z"
28
+ ],
29
+ shareAlt: [
30
+ "M2 1.004a1 1 0 00-1 1v10a1 1 0 001 1h10a1 1 0 001-1v-4.5a.5.5 0 00-1 0v4.5H2v-10h4.5a.5.5 0 000-1H2z",
31
+ "M7.354 7.357L12 2.711v1.793a.5.5 0 001 0v-3a.5.5 0 00-.5-.5h-3a.5.5 0 100 1h1.793L6.646 6.65a.5.5 0 10.708.707z"
32
+ ]
33
+ };
12
34
 
13
35
  // src/highlight/utils.ts
14
- var re = "svg,path,rect,circle,line,polyline,polygon,ellipse,text".split(","), x = /* @__PURE__ */ l((i, o, d) => {
15
- let c = re.includes(i) ? document.createElementNS("http://www.w3.org/2000/svg", i) : document.createElement(i);
16
- return Object.entries(o).forEach(([r, p]) => {
17
- /[A-Z]/.test(r) ? (r === "onClick" && (c.addEventListener("click", p), c.addEventListener("keydown", (u) => {
36
+ var ue = "svg,path,rect,circle,line,polyline,polygon,ellipse,text".split(","), b = /* @__PURE__ */ c((s, e = {}, d) => {
37
+ let l = ue.includes(s) ? document.createElementNS("http://www.w3.org/2000/svg", s) : document.createElement(s);
38
+ return Object.entries(e).forEach(([r, p]) => {
39
+ /[A-Z]/.test(r) ? (r === "onClick" && (l.addEventListener("click", p), l.addEventListener("keydown", (u) => {
18
40
  (u.key === "Enter" || u.key === " ") && (u.preventDefault(), p());
19
- })), r === "onMouseEnter" && c.addEventListener("mouseenter", p), r === "onMouseLeave" && c.addEventListener("mouseleave", p)) : c.setAttribute(
41
+ })), r === "onMouseEnter" && l.addEventListener("mouseenter", p), r === "onMouseLeave" && l.addEventListener("mouseleave", p)) : l.setAttribute(
20
42
  r, p);
21
43
  }), d?.forEach((r) => {
22
44
  if (!(r == null || r === !1))
23
45
  try {
24
- c.appendChild(r);
46
+ l.appendChild(r);
25
47
  } catch {
26
- c.appendChild(document.createTextNode(String(r)));
48
+ l.appendChild(document.createTextNode(String(r)));
27
49
  }
28
- }), c;
29
- }, "createElement"), Z = /* @__PURE__ */ l((i) => {
30
- if ("elements" in i) {
31
- let { elements: o, color: d, style: c } = i;
50
+ }), l;
51
+ }, "createElement"), k = /* @__PURE__ */ c((s) => G[s] && b(
52
+ "svg",
53
+ { width: "14", height: "14", viewBox: "0 0 14 14", xmlns: "http://www.w3.org/2000/svg" },
54
+ G[s].map(
55
+ (e) => b("path", {
56
+ fill: "currentColor",
57
+ "fill-rule": "evenodd",
58
+ "clip-rule": "evenodd",
59
+ d: e
60
+ })
61
+ )
62
+ ), "createIcon"), ee = /* @__PURE__ */ c((s) => {
63
+ if ("elements" in s) {
64
+ let { elements: l, color: r, style: p } = s;
32
65
  return {
33
- selectors: o,
66
+ id: void 0,
67
+ priority: 0,
68
+ selectors: l,
34
69
  styles: {
35
- outline: `2px ${c} ${d}`,
70
+ outline: `2px ${p} ${r}`,
36
71
  outlineOffset: "2px",
37
72
  boxShadow: "0 0 0 6px rgba(255,255,255,0.6)"
38
- }
73
+ },
74
+ menu: void 0
39
75
  };
40
76
  }
77
+ let { menu: e, ...d } = s;
41
78
  return {
79
+ id: void 0,
80
+ priority: 0,
42
81
  styles: {
43
82
  outline: "2px dashed #029cfd"
44
83
  },
45
- ...i
84
+ ...d,
85
+ menu: Array.isArray(e) ? e.every(Array.isArray) ? e : [e] : void 0
46
86
  };
47
- }, "convertLegacy"), le = /* @__PURE__ */ l((i) => i instanceof Function, "isFunction"), S = /* @__PURE__ */ new Map(), I = /* @__PURE__ */ new Map(),
48
- A = /* @__PURE__ */ new Map(), T = /* @__PURE__ */ l((i) => {
49
- let o = Symbol();
50
- return I.set(o, []), S.set(o, i), { get: /* @__PURE__ */ l(() => S.get(o), "get"), set: /* @__PURE__ */ l((u) => {
51
- let m = S.get(o), g = le(u) ? u(m) : u;
52
- g !== m && (S.set(o, g), I.get(o)?.forEach((w) => {
53
- A.get(w)?.(), A.set(w, w(g));
87
+ }, "normalizeOptions"), me = /* @__PURE__ */ c((s) => s instanceof Function, "isFunction"), S = /* @__PURE__ */ new Map(), C = /* @__PURE__ */ new Map(),
88
+ R = /* @__PURE__ */ new Map(), T = /* @__PURE__ */ c((s) => {
89
+ let e = Symbol();
90
+ return C.set(e, []), S.set(e, s), { get: /* @__PURE__ */ c(() => S.get(e), "get"), set: /* @__PURE__ */ c((u) => {
91
+ let m = S.get(e), f = me(u) ? u(m) : u;
92
+ f !== m && (S.set(e, f), C.get(e)?.forEach((E) => {
93
+ R.get(E)?.(), R.set(E, E(f));
54
94
  }));
55
- }, "set"), subscribe: /* @__PURE__ */ l((u) => (I.get(o)?.push(u), () => {
56
- let m = I.get(o);
57
- m && I.set(
58
- o,
59
- m.filter((g) => g !== u)
95
+ }, "set"), subscribe: /* @__PURE__ */ c((u) => (C.get(e)?.push(u), () => {
96
+ let m = C.get(e);
97
+ m && C.set(
98
+ e,
99
+ m.filter((f) => f !== u)
60
100
  );
61
- }), "subscribe"), teardown: /* @__PURE__ */ l(() => {
62
- I.get(o)?.forEach((u) => {
63
- A.get(u)?.(), A.delete(u);
64
- }), I.delete(o), S.delete(o);
101
+ }), "subscribe"), teardown: /* @__PURE__ */ c(() => {
102
+ C.get(e)?.forEach((u) => {
103
+ R.get(u)?.(), R.delete(u);
104
+ }), C.delete(e), S.delete(e);
65
105
  }, "teardown") };
66
- }, "useStore"), F = /* @__PURE__ */ l((i) => {
67
- let o = document.getElementById("storybook-root"), d = /* @__PURE__ */ new Map();
68
- for (let c of i) {
69
- let { priority: r = 0 } = c;
70
- for (let p of c.selectors) {
106
+ }, "useStore"), z = /* @__PURE__ */ c((s) => {
107
+ let e = document.getElementById("storybook-root"), d = /* @__PURE__ */ new Map();
108
+ for (let l of s) {
109
+ let { priority: r = 0 } = l;
110
+ for (let p of l.selectors) {
71
111
  let u = [
72
112
  ...document.querySelectorAll(
73
113
  // Elements matching the selector, excluding storybook elements and their descendants.
@@ -75,211 +115,189 @@ A = /* @__PURE__ */ new Map(), T = /* @__PURE__ */ l((i) => {
75
115
  `:is(${p}):not([id^="storybook-"], [id^="storybook-"] *, [class^="sb-"], [class^="sb-"] *)`
76
116
  ),
77
117
  // Elements matching the selector inside the storybook root, as these were excluded above.
78
- ...o?.querySelectorAll(p) || []
118
+ ...e?.querySelectorAll(p) || []
79
119
  ];
80
120
  for (let m of u) {
81
- let g = d.get(m);
82
- (!g || g.priority <= r) && d.set(m, {
83
- ...c,
121
+ let f = d.get(m);
122
+ (!f || f.priority <= r) && d.set(m, {
123
+ ...l,
84
124
  priority: r,
85
- selectors: Array.from(new Set((g?.selectors || []).concat(p)))
125
+ selectors: Array.from(new Set((f?.selectors || []).concat(p)))
86
126
  });
87
127
  }
88
128
  }
89
129
  }
90
130
  return d;
91
- }, "mapElements"), W = /* @__PURE__ */ l((i) => Array.from(i.entries()).map(([o, { selectors: d, styles: c, hoverStyles: r, focusStyles: p, menu: u }]) => {
92
- let { top: m, left: g, width: w, height: E } = o.getBoundingClientRect(), { position: v } = getComputedStyle(o);
131
+ }, "mapElements"), te = /* @__PURE__ */ c((s) => Array.from(s.entries()).map(([e, { selectors: d, styles: l, hoverStyles: r, focusStyles: p,
132
+ menu: u }]) => {
133
+ let { top: m, left: f, width: E, height: w } = e.getBoundingClientRect(), { position: v } = getComputedStyle(e);
93
134
  return {
94
- element: o,
135
+ element: e,
95
136
  selectors: d,
96
- styles: c,
137
+ styles: l,
97
138
  hoverStyles: r,
98
139
  focusStyles: p,
99
140
  menu: u,
100
141
  top: v === "fixed" ? m : m + window.scrollY,
101
- left: v === "fixed" ? g : g + window.scrollX,
102
- width: w,
103
- height: E
142
+ left: v === "fixed" ? f : f + window.scrollX,
143
+ width: E,
144
+ height: w
104
145
  };
105
- }).sort((o, d) => d.width * d.height - o.width * o.height), "mapBoxes"), _ = /* @__PURE__ */ l((i, o) => {
106
- let d = i.getBoundingClientRect(), { x: c, y: r } = o;
107
- return d?.top && d?.left && c >= d.left && c <= d.left + d.width && r >= d.top && r <= d.top + d.height;
108
- }, "isOverMenu"), N = /* @__PURE__ */ l((i, o, d) => {
109
- if (!o || !d)
146
+ }).sort((e, d) => d.width * d.height - e.width * e.height), "mapBoxes"), P = /* @__PURE__ */ c((s, e) => {
147
+ let d = s.getBoundingClientRect(), { x: l, y: r } = e;
148
+ return d?.top && d?.left && l >= d.left && l <= d.left + d.width && r >= d.top && r <= d.top + d.height;
149
+ }, "isOverMenu"), X = /* @__PURE__ */ c((s, e, d) => {
150
+ if (!e || !d)
110
151
  return !1;
111
- let { left: c, top: r, width: p, height: u } = i;
112
- (u === 0 || p === 0) && (c -= 10, r -= 10, p += 20, u += 20), o.style.position === "fixed" && (c += window.scrollX, r += window.scrollY);
113
- let { x: m, y: g } = d;
114
- return m >= c && m <= c + p && g >= r && g <= r + u;
115
- }, "isTargeted"), K = /* @__PURE__ */ l((i, o, d = {}) => {
116
- let { x: c, y: r } = o, { margin: p = 5, topOffset: u = 0, centered: m = !1 } = d, { scrollX: g, scrollY: w, innerHeight: E, innerWidth: v } = window,
117
- M = Math.min(
118
- i.style.position === "fixed" ? r - w : r,
119
- E - i.clientHeight - p - u + w
120
- ), H = m ? i.clientWidth / 2 : 0, C = i.style.position === "fixed" ? Math.max(Math.min(c - g, v - H - p), H + p) : Math.max(
121
- Math.min(c, v - H - p + g),
122
- H + p + g
152
+ let { left: l, top: r, width: p, height: u } = s;
153
+ u < L && (r = r - Math.round((L - u) / 2), u = L), p < L && (l = l - Math.round((L - p) / 2), p = L), e.style.position === "fixed" && (l +=
154
+ window.scrollX, r += window.scrollY);
155
+ let { x: m, y: f } = d;
156
+ return m >= l && m <= l + p && f >= r && f <= r + u;
157
+ }, "isTargeted"), oe = /* @__PURE__ */ c((s, e, d = {}) => {
158
+ let { x: l, y: r } = e, { margin: p = 5, topOffset: u = 0, centered: m = !1 } = d, { scrollX: f, scrollY: E, innerHeight: w, innerWidth: v } = window,
159
+ I = Math.min(
160
+ s.style.position === "fixed" ? r - E : r,
161
+ w - s.clientHeight - p - u + E
162
+ ), H = m ? s.clientWidth / 2 : 0, A = s.style.position === "fixed" ? Math.max(Math.min(l - f, v - H - p), H + p) : Math.max(
163
+ Math.min(l, v - H - p + f),
164
+ H + p + f
123
165
  );
124
- Object.assign(i.style, {
125
- ...C !== c && { left: `${C}px` },
126
- ...M !== r && { top: `${M}px` }
166
+ Object.assign(s.style, {
167
+ ...A !== l && { left: `${A}px` },
168
+ ...I !== r && { top: `${I}px` }
127
169
  });
128
- }, "keepInViewport"), G = /* @__PURE__ */ l((i) => {
129
- window.HTMLElement.prototype.hasOwnProperty("showPopover") && i.showPopover();
130
- }, "showPopover"), U = /* @__PURE__ */ l((i) => {
131
- window.HTMLElement.prototype.hasOwnProperty("showPopover") && i.hidePopover();
132
- }, "hidePopover"), J = /* @__PURE__ */ l((i) => ({
133
- top: i.top,
134
- left: i.left,
135
- width: i.width,
136
- height: i.height,
137
- selectors: i.selectors,
170
+ }, "keepInViewport"), V = /* @__PURE__ */ c((s) => {
171
+ window.HTMLElement.prototype.hasOwnProperty("showPopover") && s.showPopover();
172
+ }, "showPopover"), ne = /* @__PURE__ */ c((s) => {
173
+ window.HTMLElement.prototype.hasOwnProperty("showPopover") && s.hidePopover();
174
+ }, "hidePopover"), se = /* @__PURE__ */ c((s) => ({
175
+ top: s.top,
176
+ left: s.left,
177
+ width: s.width,
178
+ height: s.height,
179
+ selectors: s.selectors,
138
180
  element: {
139
181
  attributes: Object.fromEntries(
140
- Array.from(i.element.attributes).map((o) => [o.name, o.value])
182
+ Array.from(s.element.attributes).map((e) => [e.name, e.value])
141
183
  ),
142
- localName: i.element.localName,
143
- tagName: i.element.tagName,
144
- outerHTML: i.element.outerHTML
184
+ localName: s.element.localName,
185
+ tagName: s.element.tagName,
186
+ outerHTML: s.element.outerHTML
145
187
  }
146
188
  }), "getEventDetails");
147
189
 
148
190
  // src/highlight/useHighlights.ts
149
- var f = "storybook-highlights-menu", Q = "storybook-highlights-root", de = "storybook-root", ae = /* @__PURE__ */ l(() => x(
150
- "svg",
151
- { width: "14", height: "14", viewBox: "0 0 14 14", xmlns: "http://www.w3.org/2000/svg" },
152
- [
153
- x("path", {
154
- fillRule: "evenodd",
155
- clipRule: "evenodd",
156
- d: "M9.10355 10.1464C9.29882 10.3417 9.29882 10.6583 9.10355 10.8536C8.90829 11.0488 8.59171 11.0488 8.39645 10.8536L4.89645 7.35355C4\
157
- .70118 7.15829 4.70118 6.84171 4.89645 6.64645L8.39645 3.14645C8.59171 2.95118 8.90829 2.95118 9.10355 3.14645C9.29882 3.34171 9.29882 3.658\
158
- 29 9.10355 3.85355L5.95711 7L9.10355 10.1464Z",
159
- fill: "currentColor"
160
- })
161
- ]
162
- ), "chevronLeft"), pe = /* @__PURE__ */ l(() => x(
163
- "svg",
164
- { width: "14", height: "14", viewBox: "0 0 14 14", xmlns: "http://www.w3.org/2000/svg" },
165
- [
166
- x("path", {
167
- fillRule: "evenodd",
168
- clipRule: "evenodd",
169
- d: "M4.89645 10.1464C4.70118 10.3417 4.70118 10.6583 4.89645 10.8536C5.09171 11.0488 5.40829 11.0488 5.60355 10.8536L9.10355 7.35355C9\
170
- .29882 7.15829 9.29882 6.84171 9.10355 6.64645L5.60355 3.14645C5.40829 2.95118 5.09171 2.95118 4.89645 3.14645C4.70118 3.34171 4.70118 3.658\
171
- 29 4.89645 3.85355L8.04289 7L4.89645 10.1464Z",
172
- fill: "currentColor"
173
- })
174
- ]
175
- ), "chevronRight"), ee = /* @__PURE__ */ l((i) => {
191
+ var g = "storybook-highlights-menu", ie = "storybook-highlights-root", ge = "storybook-root", re = /* @__PURE__ */ c((s) => {
176
192
  if (globalThis.__STORYBOOK_HIGHLIGHT_INITIALIZED)
177
193
  return;
178
194
  globalThis.__STORYBOOK_HIGHLIGHT_INITIALIZED = !0;
179
- let { document: o } = globalThis, d = T([]), c = T(/* @__PURE__ */ new Map()), r = T([]), p = T(), u = T(), m = T([]), g = T([]), w = T(),
180
- E = T(), v = o.getElementById(Q);
195
+ let { document: e } = globalThis, d = T([]), l = T(/* @__PURE__ */ new Map()), r = T([]), p = T(), u = T(), m = T([]), f = T([]), E = T(),
196
+ w = T(), v = e.getElementById(ie);
181
197
  d.subscribe(() => {
182
- v || (v = x("div", { id: Q }), o.body.appendChild(v));
198
+ v || (v = b("div", { id: ie }), e.body.appendChild(v));
183
199
  }), d.subscribe((n) => {
184
- let e = o.getElementById(de);
185
- if (!e)
200
+ let t = e.getElementById(ge);
201
+ if (!t)
186
202
  return;
187
- c.set(F(n));
188
- let t = new MutationObserver(() => c.set(F(n)));
189
- return t.observe(e, { subtree: !0, childList: !0 }), () => {
190
- t.disconnect();
203
+ l.set(z(n));
204
+ let o = new MutationObserver(() => l.set(z(n)));
205
+ return o.observe(t, { subtree: !0, childList: !0 }), () => {
206
+ o.disconnect();
191
207
  };
192
- }), c.subscribe((n) => {
193
- let e = /* @__PURE__ */ l(() => requestAnimationFrame(() => r.set(W(n))), "updateBoxes"), t = new ResizeObserver(e);
194
- t.observe(o.body), Array.from(n.keys()).forEach((s) => t.observe(s));
195
- let a = Array.from(o.body.querySelectorAll("*")).filter((s) => {
196
- let { overflow: h, overflowX: b, overflowY: y } = window.getComputedStyle(s);
197
- return ["auto", "scroll"].some((L) => [h, b, y].includes(L));
208
+ }), l.subscribe((n) => {
209
+ let t = /* @__PURE__ */ c(() => requestAnimationFrame(() => r.set(te(n))), "updateBoxes"), o = new ResizeObserver(t);
210
+ o.observe(e.body), Array.from(n.keys()).forEach((i) => o.observe(i));
211
+ let a = Array.from(e.body.querySelectorAll("*")).filter((i) => {
212
+ let { overflow: h, overflowX: x, overflowY: y } = window.getComputedStyle(i);
213
+ return ["auto", "scroll"].some((M) => [h, x, y].includes(M));
198
214
  });
199
- return a.forEach((s) => s.addEventListener("scroll", e)), () => {
200
- t.disconnect(), a.forEach((s) => s.removeEventListener("scroll", e));
215
+ return a.forEach((i) => i.addEventListener("scroll", t)), () => {
216
+ o.disconnect(), a.forEach((i) => i.removeEventListener("scroll", t));
201
217
  };
202
- }), c.subscribe((n) => {
203
- let e = Array.from(n.keys()).filter(({ style: a }) => a.position === "sticky"), t = /* @__PURE__ */ l(() => requestAnimationFrame(() => {
218
+ }), l.subscribe((n) => {
219
+ let t = Array.from(n.keys()).filter(({ style: a }) => a.position === "sticky"), o = /* @__PURE__ */ c(() => requestAnimationFrame(() => {
204
220
  r.set(
205
- (a) => a.map((s) => {
206
- if (e.includes(s.element)) {
207
- let { top: h, left: b } = s.element.getBoundingClientRect();
208
- return { ...s, top: h + window.scrollY, left: b + window.scrollX };
221
+ (a) => a.map((i) => {
222
+ if (t.includes(i.element)) {
223
+ let { top: h, left: x } = i.element.getBoundingClientRect();
224
+ return { ...i, top: h + window.scrollY, left: x + window.scrollX };
209
225
  }
210
- return s;
226
+ return i;
211
227
  })
212
228
  );
213
229
  }), "updateBoxes");
214
- return o.addEventListener("scroll", t), () => o.removeEventListener("scroll", t);
215
- }), c.subscribe((n) => {
216
- m.set((e) => e.filter(({ element: t }) => n.has(t)));
230
+ return e.addEventListener("scroll", o), () => e.removeEventListener("scroll", o);
231
+ }), l.subscribe((n) => {
232
+ m.set((t) => t.filter(({ element: o }) => n.has(o)));
217
233
  }), m.subscribe((n) => {
218
- n.length ? (E.set((e) => n.some((t) => t.element === e?.element) ? e : void 0), w.set((e) => n.some((t) => t.element === e?.element) ? e :
219
- void 0)) : (E.set(void 0), w.set(void 0), p.set(void 0));
234
+ n.length ? (w.set((t) => n.some((o) => o.element === t?.element) ? t : void 0), E.set((t) => n.some((o) => o.element === t?.element) ? t :
235
+ void 0)) : (w.set(void 0), E.set(void 0), p.set(void 0));
220
236
  });
221
- let M = new Map(/* @__PURE__ */ new Map());
237
+ let I = new Map(/* @__PURE__ */ new Map());
222
238
  d.subscribe((n) => {
223
- n.forEach(({ keyframes: e }) => {
224
- if (e) {
225
- let t = M.get(e);
226
- t || (t = o.createElement("style"), t.setAttribute("data-highlight", "keyframes"), M.set(e, t), o.head.appendChild(t)), t.innerHTML =
227
- e;
239
+ n.forEach(({ keyframes: t }) => {
240
+ if (t) {
241
+ let o = I.get(t);
242
+ o || (o = e.createElement("style"), o.setAttribute("data-highlight", "keyframes"), I.set(t, o), e.head.appendChild(o)), o.innerHTML =
243
+ t;
228
244
  }
229
- }), M.forEach((e, t) => {
230
- n.some((a) => a.keyframes === t) || (e.remove(), M.delete(t));
245
+ }), I.forEach((t, o) => {
246
+ n.some((a) => a.keyframes === o) || (t.remove(), I.delete(o));
231
247
  });
232
248
  });
233
249
  let H = new Map(/* @__PURE__ */ new Map());
234
250
  r.subscribe((n) => {
235
- n.forEach((e) => {
236
- let t = H.get(e.element);
237
- if (v && !t) {
251
+ n.forEach((t) => {
252
+ let o = H.get(t.element);
253
+ if (v && !o) {
238
254
  let a = {
239
255
  popover: "manual",
240
- "data-highlight-dimensions": `w${e.width.toFixed(0)}h${e.height.toFixed(0)}`,
241
- "data-highlight-coordinates": `x${e.left.toFixed(0)}y${e.top.toFixed(0)}`
256
+ "data-highlight-dimensions": `w${t.width.toFixed(0)}h${t.height.toFixed(0)}`,
257
+ "data-highlight-coordinates": `x${t.left.toFixed(0)}y${t.top.toFixed(0)}`
242
258
  };
243
- t = v.appendChild(x("div", a)), H.set(e.element, t);
259
+ o = v.appendChild(
260
+ b("div", a, [b("div")])
261
+ ), H.set(t.element, o);
244
262
  }
245
- }), H.forEach((e, t) => {
246
- n.some(({ element: a }) => a === t) || (e.remove(), H.delete(t));
263
+ }), H.forEach((t, o) => {
264
+ n.some(({ element: a }) => a === o) || (t.remove(), H.delete(o));
247
265
  });
248
266
  }), r.subscribe((n) => {
249
- let e = n.filter((a) => a.menu);
250
- if (!e.length)
267
+ let t = n.filter((a) => a.menu);
268
+ if (!t.length)
251
269
  return;
252
- let t = /* @__PURE__ */ l((a) => {
270
+ let o = /* @__PURE__ */ c((a) => {
253
271
  requestAnimationFrame(() => {
254
- let s = o.getElementById(f), h = { x: a.pageX, y: a.pageY };
255
- if (s && !_(s, h)) {
256
- let b = e.filter((y) => {
257
- let L = H.get(y.element);
258
- return N(y, L, h);
272
+ let i = e.getElementById(g), h = { x: a.pageX, y: a.pageY };
273
+ if (i && !P(i, h)) {
274
+ let x = t.filter((y) => {
275
+ let M = H.get(y.element);
276
+ return X(y, M, h);
259
277
  });
260
- p.set(b.length ? h : void 0), m.set(b);
278
+ p.set(x.length ? h : void 0), m.set(x);
261
279
  }
262
280
  });
263
281
  }, "onClick");
264
- return o.addEventListener("click", t), () => o.removeEventListener("click", t);
282
+ return e.addEventListener("click", o), () => e.removeEventListener("click", o);
265
283
  });
266
- let C = /* @__PURE__ */ l(() => {
267
- let n = o.getElementById(f), e = u.get();
268
- !e || n && _(n, e) || g.set((t) => {
284
+ let A = /* @__PURE__ */ c(() => {
285
+ let n = e.getElementById(g), t = u.get();
286
+ !t || n && P(n, t) || f.set((o) => {
269
287
  let a = r.get().filter((y) => {
270
- let L = H.get(y.element);
271
- return N(y, L, e);
272
- }), s = t.filter((y) => a.includes(y)), h = a.filter((y) => !t.includes(y)), b = t.length - s.length;
273
- return h.length || b ? [...s, ...h] : t;
288
+ let M = H.get(y.element);
289
+ return X(y, M, t);
290
+ }), i = o.filter((y) => a.includes(y)), h = a.filter((y) => !o.includes(y)), x = o.length - i.length;
291
+ return h.length || x ? [...i, ...h] : o;
274
292
  });
275
293
  }, "updateHovered");
276
- u.subscribe(C), r.subscribe(C);
277
- let O = /* @__PURE__ */ l(() => {
278
- let n = E.get(), e = n ? [n] : m.get(), t = e.length === 1 ? e[0] : w.get(), a = p.get() !== void 0;
279
- r.get().forEach((s) => {
280
- let h = H.get(s.element);
294
+ u.subscribe(A), r.subscribe(A);
295
+ let $ = /* @__PURE__ */ c(() => {
296
+ let n = w.get(), t = n ? [n] : m.get(), o = t.length === 1 ? t[0] : E.get(), a = p.get() !== void 0;
297
+ r.get().forEach((i) => {
298
+ let h = H.get(i.element);
281
299
  if (h) {
282
- let b = t === s, y = a ? t ? b : e.includes(s) : g.get()?.includes(s);
300
+ let x = o === i, y = a ? o ? x : t.includes(i) : f.get()?.includes(i);
283
301
  Object.assign(h.style, {
284
302
  animation: "none",
285
303
  background: "transparent",
@@ -287,38 +305,49 @@ var f = "storybook-highlights-menu", Q = "storybook-highlights-root", de = "stor
287
305
  boxSizing: "border-box",
288
306
  outline: "none",
289
307
  outlineOffset: "0px",
290
- ...s.styles,
291
- ...y ? s.hoverStyles : {},
292
- ...b ? s.focusStyles : {},
293
- position: getComputedStyle(s.element).position === "fixed" ? "fixed" : "absolute",
294
- zIndex: D - 10,
295
- top: `${s.top}px`,
296
- left: `${s.left}px`,
297
- width: `${s.width}px`,
298
- height: `${s.height}px`,
308
+ ...i.styles,
309
+ ...y ? i.hoverStyles : {},
310
+ ...x ? i.focusStyles : {},
311
+ position: getComputedStyle(i.element).position === "fixed" ? "fixed" : "absolute",
312
+ zIndex: F - 10,
313
+ top: `${i.top}px`,
314
+ left: `${i.left}px`,
315
+ width: `${i.width}px`,
316
+ height: `${i.height}px`,
299
317
  margin: 0,
300
318
  padding: 0,
301
- cursor: s.menu ? "pointer" : "default",
302
- pointerEvents: s.menu ? "auto" : "none"
303
- }), G(h);
319
+ cursor: i.menu && y ? "pointer" : "default",
320
+ pointerEvents: i.menu ? "auto" : "none",
321
+ display: "flex",
322
+ alignItems: "center",
323
+ justifyContent: "center",
324
+ overflow: "visible"
325
+ }), Object.assign(h.children[0].style, {
326
+ width: "100%",
327
+ height: "100%",
328
+ minHeight: `${L}px`,
329
+ minWidth: `${L}px`,
330
+ boxSizing: "content-box",
331
+ padding: h.style.outlineWidth || "0px"
332
+ }), V(h);
304
333
  }
305
334
  });
306
335
  }, "updateBoxStyles");
307
- r.subscribe(O), m.subscribe(O), g.subscribe(O), w.subscribe(O), E.subscribe(O);
308
- let P = /* @__PURE__ */ l(() => {
336
+ r.subscribe($), m.subscribe($), f.subscribe($), E.subscribe($), w.subscribe($);
337
+ let Y = /* @__PURE__ */ c(() => {
309
338
  if (!v)
310
339
  return;
311
- let n = o.getElementById(f);
340
+ let n = e.getElementById(g);
312
341
  if (n)
313
342
  n.innerHTML = "";
314
343
  else {
315
- let s = { id: f, popover: "manual" };
316
- n = v.appendChild(x("div", s)), v.appendChild(
317
- x("style", {}, [
344
+ let i = { id: g, popover: "manual" };
345
+ n = v.appendChild(b("div", i)), v.appendChild(
346
+ b("style", {}, [
318
347
  `
319
- #${f} {
348
+ #${g} {
320
349
  position: absolute;
321
- z-index: ${D};
350
+ z-index: ${F};
322
351
  width: 300px;
323
352
  padding: 0px;
324
353
  margin: 15px 0 0 0;
@@ -332,18 +361,21 @@ ue", Helvetica, Arial, sans-serif;
332
361
  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.05), 0 5px 15px 0 rgba(0, 0, 0, 0.1);
333
362
  color: #2E3438;
334
363
  }
335
- #${f} ul {
364
+ #${g} ul {
336
365
  list-style: none;
337
- padding: 4px 0;
338
366
  margin: 0;
367
+ padding: 0;
368
+ }
369
+ #${g} > ul {
339
370
  max-height: 300px;
340
371
  overflow-y: auto;
372
+ padding: 4px 0;
341
373
  }
342
- #${f} li {
374
+ #${g} li {
343
375
  padding: 0 4px;
344
376
  margin: 0;
345
377
  }
346
- #${f} li > * {
378
+ #${g} li > :not(ul) {
347
379
  display: flex;
348
380
  padding: 8px;
349
381
  margin: 0;
@@ -351,7 +383,7 @@ ue", Helvetica, Arial, sans-serif;
351
383
  gap: 8px;
352
384
  border-radius: 4px;
353
385
  }
354
- #${f} button {
386
+ #${g} button {
355
387
  width: 100%;
356
388
  border: 0;
357
389
  background: transparent;
@@ -360,101 +392,120 @@ ue", Helvetica, Arial, sans-serif;
360
392
  font-family: inherit;
361
393
  font-size: inherit;
362
394
  }
363
- #${f} button:focus {
395
+ #${g} button:focus-visible {
364
396
  outline-color: #029CFD;
365
397
  }
366
- #${f} button:hover {
398
+ #${g} button:hover {
367
399
  background: rgba(2, 156, 253, 0.07);
368
400
  color: #029CFD;
369
401
  cursor: pointer;
370
402
  }
371
- #${f} li code {
403
+ #${g} li code {
372
404
  white-space: nowrap;
373
405
  overflow: hidden;
374
406
  text-overflow: ellipsis;
375
407
  line-height: 16px;
376
408
  font-size: 11px;
377
409
  }
378
- #${f} li svg {
379
- display: none;
410
+ #${g} li svg {
380
411
  flex-shrink: 0;
381
412
  margin: 1px;
382
413
  color: #73828C;
383
414
  }
384
- #${f} li > button:hover svg, #${f} li > button:focus svg {
415
+ #${g} li > button:hover svg, #${g} li > button:focus-visible svg {
385
416
  color: #029CFD;
386
417
  }
387
- #${f} li.selectable svg, #${f} li.selected svg {
418
+ #${g} .element-list li svg {
419
+ display: none;
420
+ }
421
+ #${g} li.selectable svg, #${g} li.selected svg {
388
422
  display: block;
389
423
  }
390
- #${f} .menu-list {
424
+ #${g} .menu-list {
391
425
  border-top: 1px solid rgba(38, 85, 115, 0.15);
392
426
  }
393
- #${f} .menu-list li:not(:last-child) {
427
+ #${g} .menu-list > li:not(:last-child) {
394
428
  padding-bottom: 4px;
395
429
  margin-bottom: 4px;
396
430
  border-bottom: 1px solid rgba(38, 85, 115, 0.15);
397
431
  }
398
- #${f} .menu-list li div {
432
+ #${g} .menu-items, #${g} .menu-items li {
433
+ padding: 0;
434
+ }
435
+ #${g} .menu-item {
399
436
  display: flex;
400
- flex-direction: column;
401
- align-items: flex-start;
402
- gap: 0;
403
437
  }
404
- #${f} .menu-list li small {
405
- color: #5C6870;
406
- font-size: 11px;
438
+ #${g} .menu-item-content {
439
+ display: flex;
440
+ flex-direction: column;
441
+ flex-grow: 1;
407
442
  }
408
443
  `
409
444
  ])
410
445
  );
411
446
  }
412
- let e = E.get(), t = e ? [e] : m.get();
413
- if (t.length && (n.style.position = getComputedStyle(t[0].element).position === "fixed" ? "fixed" : "absolute", n.appendChild(
414
- x(
447
+ let t = w.get(), o = t ? [t] : m.get();
448
+ if (o.length && (n.style.position = getComputedStyle(o[0].element).position === "fixed" ? "fixed" : "absolute", n.appendChild(
449
+ b(
415
450
  "ul",
416
451
  { class: "element-list" },
417
- t.map((s) => {
418
- let h = s.menu?.filter(
419
- ($) => !$.selectors || $.selectors.some((k) => s.selectors.includes(k))
420
- ), b = t.length > 1 && !!h?.length, y = b ? {
452
+ o.map((i) => {
453
+ let h = o.length > 1 && !!i.menu?.some(
454
+ (M) => M.some(
455
+ (O) => !O.selectors || O.selectors.some((B) => i.selectors.includes(B))
456
+ )
457
+ ), x = h ? {
421
458
  class: "selectable",
422
- onClick: /* @__PURE__ */ l(() => E.set(s), "onClick"),
423
- onMouseEnter: /* @__PURE__ */ l(() => w.set(s), "onMouseEnter"),
424
- onMouseLeave: /* @__PURE__ */ l(() => w.set(void 0), "onMouseLeave")
425
- } : e ? { class: "selected", onClick: /* @__PURE__ */ l(() => E.set(void 0), "onClick") } : {}, L = b || e;
426
- return x("li", y, [
427
- x(L ? "button" : "div", L ? { type: "button" } : {}, [
428
- e ? ae() : null,
429
- x("code", {}, [s.element.outerHTML]),
430
- b ? pe() : null
459
+ onClick: /* @__PURE__ */ c(() => w.set(i), "onClick"),
460
+ onMouseEnter: /* @__PURE__ */ c(() => E.set(i), "onMouseEnter"),
461
+ onMouseLeave: /* @__PURE__ */ c(() => E.set(void 0), "onMouseLeave")
462
+ } : t ? { class: "selected", onClick: /* @__PURE__ */ c(() => w.set(void 0), "onClick") } : {}, y = h || t;
463
+ return b("li", x, [
464
+ b(y ? "button" : "div", y ? { type: "button" } : {}, [
465
+ t ? k("chevronLeft") : null,
466
+ b("code", {}, [i.element.outerHTML]),
467
+ h ? k("chevronRight") : null
431
468
  ])
432
469
  ]);
433
470
  })
434
471
  )
435
- )), E.get() || m.get().length === 1) {
436
- let s = E.get() || m.get()[0], h = s.menu?.filter(
437
- (b) => !b.selectors || b.selectors.some((y) => s.selectors.includes(y))
472
+ )), w.get() || m.get().length === 1) {
473
+ let i = w.get() || m.get()[0], h = i.menu?.filter(
474
+ (x) => x.some(
475
+ (y) => !y.selectors || y.selectors.some((M) => i.selectors.includes(M))
476
+ )
438
477
  );
439
478
  h?.length && n.appendChild(
440
- x(
479
+ b(
441
480
  "ul",
442
481
  { class: "menu-list" },
443
- h.map(({ id: b, title: y, description: L, clickEvent: $ }) => {
444
- let k = $ && (() => i.emit($, b, J(s)));
445
- return x("li", {}, [
446
- x(
447
- k ? "button" : "div",
448
- k ? { type: "button", onClick: k } : {},
449
- [
450
- x("div", {}, [
451
- x("strong", {}, [y]),
452
- L && x("small", {}, [L])
453
- ])
454
- ]
482
+ h.map(
483
+ (x) => b("li", {}, [
484
+ b(
485
+ "ul",
486
+ { class: "menu-items" },
487
+ x.map(
488
+ ({ id: y, title: M, description: O, iconLeft: B, iconRight: q, clickEvent: W }) => {
489
+ let N = W && (() => s.emit(W, y, se(i)));
490
+ return b("li", {}, [
491
+ b(
492
+ N ? "button" : "div",
493
+ N ? { class: "menu-item", type: "button", onClick: N } : { class: "menu-item" },
494
+ [
495
+ B ? k(B) : null,
496
+ b("div", { class: "menu-item-content" }, [
497
+ b(O ? "strong" : "span", {}, [M]),
498
+ O && b("span", {}, [O])
499
+ ]),
500
+ q ? k(q) : null
501
+ ]
502
+ )
503
+ ]);
504
+ }
505
+ )
455
506
  )
456
- ]);
457
- })
507
+ ])
508
+ )
458
509
  )
459
510
  );
460
511
  }
@@ -463,41 +514,41 @@ ue", Helvetica, Arial, sans-serif;
463
514
  display: "block",
464
515
  left: `${n.style.position === "fixed" ? a.x - window.scrollX : a.x}px`,
465
516
  top: `${n.style.position === "fixed" ? a.y - window.scrollY : a.y}px`
466
- }), G(n), requestAnimationFrame(() => K(n, a, { topOffset: 15, centered: !0 }))) : (U(n), Object.assign(n.style, { display: "none" }));
517
+ }), V(n), requestAnimationFrame(() => oe(n, a, { topOffset: 15, centered: !0 }))) : (ne(n), Object.assign(n.style, { display: "none" }));
467
518
  }, "renderMenu");
468
- m.subscribe(P), E.subscribe(P);
469
- let oe = /* @__PURE__ */ l((n) => {
470
- let e = Z(n);
471
- d.set((t) => {
472
- let a = e.id ? t.filter((s) => s.id !== e.id) : t;
473
- return e.selectors?.length ? [...a, e] : a;
519
+ m.subscribe(Y), w.subscribe(Y);
520
+ let ce = /* @__PURE__ */ c((n) => {
521
+ let t = ee(n);
522
+ d.set((o) => {
523
+ let a = t.id ? o.filter((i) => i.id !== t.id) : o;
524
+ return t.selectors?.length ? [...a, t] : a;
474
525
  });
475
- }, "addHighlight"), R = /* @__PURE__ */ l((n) => {
476
- d.set((e) => e.filter((t) => t.id !== n));
477
- }, "removeHighlight"), X = /* @__PURE__ */ l(() => {
478
- d.set([]), c.set(/* @__PURE__ */ new Map()), r.set([]), p.set(void 0), u.set(void 0), m.set([]), g.set([]), w.set(void 0), E.set(void 0);
479
- }, "resetState"), Y, ne = /* @__PURE__ */ l((n, e) => {
480
- let t = "scrollIntoView-highlight";
481
- clearTimeout(Y), R(t);
482
- let a = o.querySelector(n);
526
+ }, "addHighlight"), D = /* @__PURE__ */ c((n) => {
527
+ n && d.set((t) => t.filter((o) => o.id !== n));
528
+ }, "removeHighlight"), Z = /* @__PURE__ */ c(() => {
529
+ d.set([]), l.set(/* @__PURE__ */ new Map()), r.set([]), p.set(void 0), u.set(void 0), m.set([]), f.set([]), E.set(void 0), w.set(void 0);
530
+ }, "resetState"), j, de = /* @__PURE__ */ c((n, t) => {
531
+ let o = "scrollIntoView-highlight";
532
+ clearTimeout(j), D(o);
533
+ let a = e.querySelector(n);
483
534
  if (!a) {
484
535
  console.warn(`Cannot scroll into view: ${n} not found`);
485
536
  return;
486
537
  }
487
- a.scrollIntoView({ behavior: "smooth", block: "center", ...e });
488
- let s = `kf-${Math.random().toString(36).substring(2, 15)}`;
538
+ a.scrollIntoView({ behavior: "smooth", block: "center", ...t });
539
+ let i = `kf-${Math.random().toString(36).substring(2, 15)}`;
489
540
  d.set((h) => [
490
541
  ...h,
491
542
  {
492
- id: t,
543
+ id: o,
493
544
  priority: 1e3,
494
545
  selectors: [n],
495
546
  styles: {
496
547
  outline: "2px solid #1EA7FD",
497
548
  outlineOffset: "-1px",
498
- animation: `${s} 3s linear forwards`
549
+ animation: `${i} 3s linear forwards`
499
550
  },
500
- keyframes: `@keyframes ${s} {
551
+ keyframes: `@keyframes ${i} {
501
552
  0% { outline: 2px solid #1EA7FD; }
502
553
  20% { outline: 2px solid #1EA7FD00; }
503
554
  40% { outline: 2px solid #1EA7FD; }
@@ -506,18 +557,18 @@ ue", Helvetica, Arial, sans-serif;
506
557
  100% { outline: 2px solid #1EA7FD00; }
507
558
  }`
508
559
  }
509
- ]), Y = setTimeout(() => R(t), 3500);
510
- }, "scrollIntoView"), se = /* @__PURE__ */ l((n) => {
560
+ ]), j = setTimeout(() => D(o), 3500);
561
+ }, "scrollIntoView"), ae = /* @__PURE__ */ c((n) => {
511
562
  requestAnimationFrame(() => u.set({ x: n.pageX, y: n.pageY }));
512
563
  }, "onMouseMove");
513
- o.body.addEventListener("mousemove", se), i.on(V, oe), i.on(q, R), i.on(z, X), i.on(j, ne), i.on(ce, ({ newPhase: n }) => {
514
- n === "loading" && X();
564
+ e.body.addEventListener("mousemove", ae), s.on(U, ce), s.on(K, D), s.on(J, Z), s.on(Q, de), s.on(he, ({ newPhase: n }) => {
565
+ n === "loading" && Z();
515
566
  });
516
567
  }, "useHighlights");
517
568
 
518
569
  // src/highlight/preview.ts
519
- globalThis?.FEATURES?.highlight && te?.ready && te.ready().then(ee);
520
- var Le = /* @__PURE__ */ l(() => ue({}), "default");
570
+ globalThis?.FEATURES?.highlight && le?.ready && le.ready().then(re);
571
+ var $e = /* @__PURE__ */ c(() => fe({}), "default");
521
572
  export {
522
- Le as default
573
+ $e as default
523
574
  };