storybook 9.0.0-rc.1 → 9.0.0-rc.3

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