storybook 9.0.0-alpha.2 → 9.0.0-alpha.21

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.
Files changed (162) hide show
  1. package/README.md +1 -1
  2. package/assets/docs/addon-backgrounds.gif +0 -0
  3. package/assets/docs/addon-controls-args-annotated.png +0 -0
  4. package/assets/docs/addon-controls-args-background-color.png +0 -0
  5. package/assets/docs/addon-controls-args-background-string.png +0 -0
  6. package/assets/docs/addon-controls-args-docs.png +0 -0
  7. package/assets/docs/addon-controls-args-logging.png +0 -0
  8. package/assets/docs/addon-controls-args-no-annotation.png +0 -0
  9. package/assets/docs/addon-controls-args-reflow-slider.png +0 -0
  10. package/assets/docs/addon-controls-args-reflow.png +0 -0
  11. package/assets/docs/addon-controls-args-template.png +0 -0
  12. package/assets/docs/addon-controls-expanded.png +0 -0
  13. package/assets/docs/addon-controls-hero.gif +0 -0
  14. package/assets/docs/addon-controls-install.png +0 -0
  15. package/assets/docs/hero.gif +0 -0
  16. package/assets/docs/highlight.png +0 -0
  17. package/assets/docs/viewport.png +0 -0
  18. package/assets/server/base-preview-head.html +1 -3
  19. package/bin/index.cjs +2 -2
  20. package/dist/actions/decorator.d.ts +6 -0
  21. package/dist/actions/decorator.js +134 -0
  22. package/dist/actions/index.cjs +123 -0
  23. package/dist/actions/index.d.ts +102 -0
  24. package/dist/actions/index.js +108 -0
  25. package/dist/actions/preview.cjs +161 -0
  26. package/dist/actions/preview.d.ts +54 -0
  27. package/dist/actions/preview.js +152 -0
  28. package/dist/babel/index.cjs +822 -816
  29. package/dist/babel/index.js +822 -816
  30. package/dist/backgrounds/index.cjs +148 -0
  31. package/dist/backgrounds/index.d.ts +91 -0
  32. package/dist/backgrounds/index.js +130 -0
  33. package/dist/backgrounds/preview.cjs +143 -0
  34. package/dist/backgrounds/preview.d.ts +54 -0
  35. package/dist/backgrounds/preview.js +127 -0
  36. package/dist/bin/index.cjs +49 -70
  37. package/dist/bin/index.js +49 -70
  38. package/dist/builder-manager/index.cjs +319 -326
  39. package/dist/builder-manager/index.js +576 -583
  40. package/dist/channels/index.cjs +1026 -981
  41. package/dist/channels/index.js +1258 -1207
  42. package/dist/cli/bin/index.cjs +483 -483
  43. package/dist/cli/bin/index.js +495 -495
  44. package/dist/cli/index.cjs +61735 -7590
  45. package/dist/cli/index.d.ts +25 -21
  46. package/dist/cli/index.js +61776 -7631
  47. package/dist/client-logger/index.cjs +56 -88
  48. package/dist/client-logger/index.js +41 -47
  49. package/dist/common/index.cjs +16137 -9085
  50. package/dist/common/index.d.ts +35 -30
  51. package/dist/common/index.js +16230 -9172
  52. package/dist/component-testing/index.cjs +23 -0
  53. package/dist/component-testing/index.d.ts +3 -0
  54. package/dist/component-testing/index.js +5 -0
  55. package/dist/component-testing/preview.cjs +40 -0
  56. package/dist/component-testing/preview.d.ts +5 -0
  57. package/dist/component-testing/preview.js +25 -0
  58. package/dist/components/index.cjs +16268 -24926
  59. package/dist/components/index.d.ts +98 -347
  60. package/dist/components/index.js +5905 -19177
  61. package/dist/controls/decorator.d.ts +5 -0
  62. package/dist/controls/decorator.js +8 -0
  63. package/dist/controls/index.cjs +26 -0
  64. package/dist/controls/index.d.ts +39 -0
  65. package/dist/controls/index.js +6 -0
  66. package/dist/controls/preview.cjs +26 -0
  67. package/dist/controls/preview.d.ts +54 -0
  68. package/dist/controls/preview.js +9 -0
  69. package/dist/core-events/index.cjs +91 -106
  70. package/dist/core-events/index.d.ts +139 -104
  71. package/dist/core-events/index.js +79 -94
  72. package/dist/core-server/index.cjs +13898 -13409
  73. package/dist/core-server/index.d.ts +270 -3
  74. package/dist/core-server/index.js +13981 -13497
  75. package/dist/core-server/presets/common-manager.css +170 -0
  76. package/dist/core-server/presets/common-manager.js +12149 -17
  77. package/dist/core-server/presets/common-preset.cjs +3009 -3155
  78. package/dist/core-server/presets/common-preset.js +2862 -3009
  79. package/dist/csf/index.cjs +76 -120
  80. package/dist/csf/index.d.ts +2 -6
  81. package/dist/csf/index.js +69 -113
  82. package/dist/csf-tools/index.cjs +412 -403
  83. package/dist/csf-tools/index.d.ts +0 -4
  84. package/dist/csf-tools/index.js +410 -401
  85. package/dist/docs-tools/index.cjs +2569 -575
  86. package/dist/docs-tools/index.d.ts +2 -2
  87. package/dist/docs-tools/index.js +2565 -564
  88. package/dist/highlight/index.cjs +27 -0
  89. package/dist/highlight/index.d.ts +61 -0
  90. package/dist/highlight/index.js +7 -0
  91. package/dist/highlight/preview.cjs +535 -0
  92. package/dist/highlight/preview.d.ts +54 -0
  93. package/dist/highlight/preview.js +519 -0
  94. package/dist/instrumenter/index.cjs +2207 -2342
  95. package/dist/instrumenter/index.d.ts +8 -7
  96. package/dist/instrumenter/index.js +2430 -2603
  97. package/dist/manager/globals-module-info.cjs +291 -151
  98. package/dist/manager/globals-module-info.d.ts +1 -1
  99. package/dist/manager/globals-module-info.js +275 -135
  100. package/dist/manager/globals-runtime.js +60263 -28383
  101. package/dist/manager/globals.cjs +23 -19
  102. package/dist/manager/globals.d.ts +8 -5
  103. package/dist/manager/globals.js +10 -6
  104. package/dist/manager/runtime.js +4625 -3921
  105. package/dist/manager-api/index.cjs +4228 -3833
  106. package/dist/manager-api/index.d.ts +398 -102
  107. package/dist/manager-api/index.js +3500 -3084
  108. package/dist/manager-errors.d.ts +25 -1
  109. package/dist/manager-errors.js +50 -30
  110. package/dist/measure/index.cjs +476 -0
  111. package/dist/measure/index.d.ts +66 -0
  112. package/dist/measure/index.js +464 -0
  113. package/dist/measure/preview.cjs +466 -0
  114. package/dist/measure/preview.d.ts +59 -0
  115. package/dist/measure/preview.js +450 -0
  116. package/dist/outline/index.cjs +528 -0
  117. package/dist/outline/index.d.ts +66 -0
  118. package/dist/outline/index.js +500 -0
  119. package/dist/outline/preview.cjs +518 -0
  120. package/dist/outline/preview.d.ts +59 -0
  121. package/dist/outline/preview.js +486 -0
  122. package/dist/preview/globals.cjs +21 -17
  123. package/dist/preview/globals.d.ts +4 -1
  124. package/dist/preview/globals.js +6 -2
  125. package/dist/preview/runtime.js +46311 -6614
  126. package/dist/preview-api/index.cjs +1363 -1899
  127. package/dist/preview-api/index.d.ts +81 -395
  128. package/dist/preview-api/index.js +1711 -2169
  129. package/dist/preview-errors.cjs +119 -88
  130. package/dist/preview-errors.d.ts +30 -2
  131. package/dist/preview-errors.js +192 -142
  132. package/dist/router/index.cjs +847 -871
  133. package/dist/router/index.js +193 -199
  134. package/dist/server-errors.cjs +188 -124
  135. package/dist/server-errors.d.ts +36 -2
  136. package/dist/server-errors.js +188 -124
  137. package/dist/telemetry/index.cjs +1056 -1979
  138. package/dist/telemetry/index.d.ts +26 -5
  139. package/dist/telemetry/index.js +1091 -2010
  140. package/dist/test/index.cjs +35686 -0
  141. package/dist/test/index.d.ts +186 -0
  142. package/dist/test/index.js +33840 -0
  143. package/dist/test/preview.cjs +15870 -0
  144. package/dist/test/preview.d.ts +48 -0
  145. package/dist/test/preview.js +14501 -0
  146. package/dist/test/spy.cjs +258 -0
  147. package/dist/test/spy.d.ts +66 -0
  148. package/dist/test/spy.js +240 -0
  149. package/dist/theming/create.cjs +79 -2269
  150. package/dist/theming/create.js +67 -841
  151. package/dist/theming/index.cjs +1065 -3232
  152. package/dist/theming/index.js +951 -1719
  153. package/dist/types/index.cjs +11 -12
  154. package/dist/types/index.d.ts +684 -163
  155. package/dist/types/index.js +1 -2
  156. package/dist/viewport/index.cjs +310 -0
  157. package/dist/viewport/index.d.ts +320 -0
  158. package/dist/viewport/index.js +290 -0
  159. package/dist/viewport/preview.cjs +35 -0
  160. package/dist/viewport/preview.d.ts +68 -0
  161. package/dist/viewport/preview.js +19 -0
  162. package/package.json +359 -12
@@ -0,0 +1,519 @@
1
+ var ce = Object.defineProperty;
2
+ var l = (s, e) => ce(s, "name", { value: e, configurable: !0 });
3
+
4
+ // src/highlight/preview.ts
5
+ import { addons as _, definePreview as ue } from "storybook/preview-api";
6
+
7
+ // src/highlight/useHighlights.ts
8
+ import { STORY_CHANGED as re } from "storybook/internal/core-events";
9
+
10
+ // src/highlight/constants.ts
11
+ var D = "storybook/highlight", G = `${D}/add`, ee = `${D}/remove`, X = `${D}/reset`, P = `${D}/scroll-into-view`, Y = 2147483647;
12
+
13
+ // src/highlight/utils.ts
14
+ var ae = "svg,path,rect,circle,line,polyline,polygon,ellipse,text".split(","), y = /* @__PURE__ */ l((s, e, d) => {
15
+ let c = ae.includes(s) ? document.createElementNS("http://www.w3.org/2000/svg", s) : document.createElement(s);
16
+ return Object.entries(e).forEach(([i, g]) => {
17
+ /[A-Z]/.test(i) ? (i === "onClick" && (c.addEventListener("click", g), c.addEventListener("keydown", (p) => {
18
+ (p.key === "Enter" || p.key === " ") && (p.preventDefault(), g());
19
+ })), i === "onMouseEnter" && c.addEventListener("mouseenter", g), i === "onMouseLeave" && c.addEventListener("mouseleave", g)) : c.setAttribute(
20
+ i, g);
21
+ }), d?.forEach((i) => {
22
+ if (!(i == null || i === !1))
23
+ try {
24
+ c.appendChild(i);
25
+ } catch {
26
+ c.appendChild(document.createTextNode(String(i)));
27
+ }
28
+ }), c;
29
+ }, "createElement"), te = /* @__PURE__ */ l((s) => {
30
+ if ("elements" in s) {
31
+ let { elements: e, color: d, style: c } = s;
32
+ return {
33
+ selectors: e,
34
+ styles: {
35
+ outline: `2px ${c} ${d}`,
36
+ outlineOffset: "2px",
37
+ boxShadow: "0 0 0 6px rgba(255,255,255,0.6)"
38
+ }
39
+ };
40
+ }
41
+ return s;
42
+ }, "convertLegacy"), de = /* @__PURE__ */ l((s) => s instanceof Function, "isFunction"), R = /* @__PURE__ */ new Map(), O = /* @__PURE__ */ new Map(),
43
+ F = /* @__PURE__ */ new Map(), T = /* @__PURE__ */ l((s) => {
44
+ let e = Symbol();
45
+ return O.set(e, []), R.set(e, s), { get: /* @__PURE__ */ l(() => R.get(e), "get"), set: /* @__PURE__ */ l((p) => {
46
+ let u = R.get(e), m = de(p) ? p(u) : p;
47
+ m !== u && (R.set(e, m), O.get(e)?.forEach((x) => {
48
+ F.get(x)?.(), F.set(x, x(m));
49
+ }));
50
+ }, "set"), subscribe: /* @__PURE__ */ l((p) => (O.get(e)?.push(p), () => {
51
+ let u = O.get(e);
52
+ u && O.set(
53
+ e,
54
+ u.filter((m) => m !== p)
55
+ );
56
+ }), "subscribe"), teardown: /* @__PURE__ */ l(() => {
57
+ O.get(e)?.forEach((p) => {
58
+ F.get(p)?.(), F.delete(p);
59
+ }), O.delete(e), R.delete(e);
60
+ }, "teardown") };
61
+ }, "useStore"), V = /* @__PURE__ */ l((s) => {
62
+ let e = document.getElementById("storybook-root"), d = /* @__PURE__ */ new Map();
63
+ for (let c of s) {
64
+ let { priority: i = 0, selectable: g = !!c.menu } = c;
65
+ for (let p of c.selectors)
66
+ for (let u of e?.querySelectorAll(p) || []) {
67
+ let m = d.get(u);
68
+ (!m || m.priority < i) && d.set(u, {
69
+ ...c,
70
+ priority: i,
71
+ selectors: (m?.selectors || []).concat(p),
72
+ selectable: g
73
+ });
74
+ }
75
+ }
76
+ return d;
77
+ }, "mapElements"), oe = /* @__PURE__ */ l((s) => Array.from(s.entries()).map(([e, { selectors: d, styles: c, hoverStyles: i, focusStyles: g,
78
+ selectable: p, menu: u }]) => {
79
+ let { top: m, left: x, width: E, height: M } = e.getBoundingClientRect(), { position: v } = getComputedStyle(e);
80
+ return {
81
+ element: e,
82
+ selectors: d,
83
+ selectable: p,
84
+ styles: c,
85
+ hoverStyles: i,
86
+ focusStyles: g,
87
+ menu: u,
88
+ top: v === "fixed" ? m : m + window.scrollY,
89
+ left: v === "fixed" ? x : x + window.scrollX,
90
+ width: E,
91
+ height: M
92
+ };
93
+ }).sort((e, d) => d.width * d.height - e.width * e.height), "mapBoxes"), q = /* @__PURE__ */ l((s, e) => {
94
+ let d = s.getBoundingClientRect(), { x: c, y: i } = e;
95
+ return d?.top && d?.left && c >= d.left && c <= d.left + d.width && i >= d.top && i <= d.top + d.height;
96
+ }, "isOverMenu"), z = /* @__PURE__ */ l((s, e, d) => {
97
+ if (!d)
98
+ return !1;
99
+ let { left: c, top: i, width: g, height: p } = s;
100
+ (p === 0 || g === 0) && (c -= 10, i -= 10, g += 20, p += 20), e.style.position === "fixed" && (c += window.scrollX, i += window.scrollY);
101
+ let { x: u, y: m } = d;
102
+ return u >= c && u <= c + g && m >= i && m <= i + p;
103
+ }, "isTargeted"), ne = /* @__PURE__ */ l((s, e, d = {}) => {
104
+ let { x: c, y: i } = e, { margin: g = 5, topOffset: p = 0, centered: u = !1 } = d, { scrollX: m, scrollY: x, innerHeight: E, innerWidth: M } = window,
105
+ v = Math.min(
106
+ s.style.position === "fixed" ? i - x : i,
107
+ E - s.clientHeight - g - p + x
108
+ ), w = u ? s.clientWidth / 2 : 0, H = s.style.position === "fixed" ? Math.max(Math.min(c - m, M - w - g), w + g) : Math.max(
109
+ Math.min(c, M - w - g + m),
110
+ w + g + m
111
+ );
112
+ Object.assign(s.style, {
113
+ ...H !== c && { left: `${H}px` },
114
+ ...v !== i && { top: `${v}px` }
115
+ });
116
+ }, "keepInViewport"), j = /* @__PURE__ */ l((s) => {
117
+ window.HTMLElement.prototype.hasOwnProperty("showPopover") && s.showPopover();
118
+ }, "showPopover"), se = /* @__PURE__ */ l((s) => {
119
+ window.HTMLElement.prototype.hasOwnProperty("showPopover") && s.hidePopover();
120
+ }, "hidePopover"), ie = /* @__PURE__ */ l((s) => ({
121
+ top: s.top,
122
+ left: s.left,
123
+ width: s.width,
124
+ height: s.height,
125
+ selectors: s.selectors,
126
+ element: {
127
+ attributes: Object.fromEntries(
128
+ Array.from(s.element.attributes).map((e) => [e.name, e.value])
129
+ ),
130
+ localName: s.element.localName,
131
+ tagName: s.element.tagName,
132
+ outerHTML: s.element.outerHTML
133
+ }
134
+ }), "getEventDetails");
135
+
136
+ // src/highlight/useHighlights.ts
137
+ var pe = /* @__PURE__ */ l(() => y(
138
+ "svg",
139
+ { width: "14", height: "14", viewBox: "0 0 14 14", xmlns: "http://www.w3.org/2000/svg" },
140
+ [
141
+ y("path", {
142
+ fillRule: "evenodd",
143
+ clipRule: "evenodd",
144
+ 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\
145
+ .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\
146
+ 29 9.10355 3.85355L5.95711 7L9.10355 10.1464Z",
147
+ fill: "currentColor"
148
+ })
149
+ ]
150
+ ), "chevronLeft"), ge = /* @__PURE__ */ l(() => y(
151
+ "svg",
152
+ { width: "14", height: "14", viewBox: "0 0 14 14", xmlns: "http://www.w3.org/2000/svg" },
153
+ [
154
+ y("path", {
155
+ fillRule: "evenodd",
156
+ clipRule: "evenodd",
157
+ 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\
158
+ .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\
159
+ 29 4.89645 3.85355L8.04289 7L4.89645 10.1464Z",
160
+ fill: "currentColor"
161
+ })
162
+ ]
163
+ ), "chevronRight"), le = /* @__PURE__ */ l(({
164
+ channel: s,
165
+ menuId: e = "storybook-highlights-menu",
166
+ rootId: d = "storybook-highlights-root",
167
+ storybookRootId: c = "storybook-root"
168
+ }) => {
169
+ globalThis.__STORYBOOK_HIGHLIGHT_TEARDOWN?.();
170
+ let { document: i } = globalThis, g = T([]), p = T(/* @__PURE__ */ new Map()), u = T([]), m = T(), x = T(), E = T([]), M = T([]), v = T(),
171
+ w = T(), H = i.getElementById(d);
172
+ g.subscribe(() => {
173
+ H || (H = y("div", { id: d }), i.body.appendChild(H));
174
+ }), g.subscribe((t) => {
175
+ let o = i.getElementById(c);
176
+ if (!o)
177
+ return;
178
+ p.set(V(t));
179
+ let n = new MutationObserver(() => p.set(V(t)));
180
+ return n.observe(o, { subtree: !0, childList: !0 }), () => {
181
+ n.disconnect();
182
+ };
183
+ }), p.subscribe((t) => {
184
+ let o = /* @__PURE__ */ l(() => requestAnimationFrame(() => u.set(oe(t))), "updateBoxes"), n = new ResizeObserver(o);
185
+ n.observe(i.body), Array.from(t.keys()).forEach((r) => n.observe(r));
186
+ let a = Array.from(i.body.querySelectorAll("*")).filter((r) => {
187
+ let { overflow: f, overflowX: h, overflowY: b } = window.getComputedStyle(r);
188
+ return ["auto", "scroll"].some((L) => [f, h, b].includes(L));
189
+ });
190
+ return a.forEach((r) => r.addEventListener("scroll", o)), () => {
191
+ n.disconnect(), a.forEach((r) => r.removeEventListener("scroll", o));
192
+ };
193
+ }), p.subscribe((t) => {
194
+ let o = Array.from(t.keys()).filter(({ style: a }) => a.position === "sticky"), n = /* @__PURE__ */ l(() => requestAnimationFrame(() => {
195
+ u.set(
196
+ (a) => a.map((r) => {
197
+ if (o.includes(r.element)) {
198
+ let { top: f, left: h } = r.element.getBoundingClientRect();
199
+ return { ...r, top: f + window.scrollY, left: h + window.scrollX };
200
+ }
201
+ return r;
202
+ })
203
+ );
204
+ }), "updateBoxes");
205
+ return i.addEventListener("scroll", n), () => i.removeEventListener("scroll", n);
206
+ }), p.subscribe((t) => {
207
+ E.set((o) => o.filter(({ element: n }) => t.has(n)));
208
+ }), E.subscribe((t) => {
209
+ t.length ? (w.set((o) => t.some((n) => n.element === o?.element) ? o : void 0), v.set((o) => t.some((n) => n.element === o?.element) ? o :
210
+ void 0)) : (w.set(void 0), v.set(void 0), m.set(void 0));
211
+ });
212
+ let $ = new Map(/* @__PURE__ */ new Map());
213
+ g.subscribe((t) => {
214
+ t.forEach(({ keyframes: o }) => {
215
+ if (o) {
216
+ let n = $.get(o);
217
+ n || (n = i.createElement("style"), n.setAttribute("data-highlight", "keyframes"), $.set(o, n), i.head.appendChild(n)), n.innerHTML =
218
+ o;
219
+ }
220
+ }), $.forEach((o, n) => {
221
+ t.some((a) => a.keyframes === n) || (o.remove(), $.delete(n));
222
+ });
223
+ });
224
+ let C = new Map(/* @__PURE__ */ new Map());
225
+ u.subscribe((t) => {
226
+ t.forEach((o) => {
227
+ let n = C.get(o.element);
228
+ if (H && !n) {
229
+ let a = {
230
+ popover: "manual",
231
+ "data-highlight-dimensions": `w${o.width.toFixed(0)}h${o.height.toFixed(0)}`,
232
+ "data-highlight-coordinates": `x${o.left.toFixed(0)}y${o.top.toFixed(0)}`
233
+ };
234
+ n = H.appendChild(y("div", a)), C.set(o.element, n);
235
+ }
236
+ }), C.forEach((o, n) => {
237
+ t.some(({ element: a }) => a === n) || (o.remove(), C.delete(n));
238
+ });
239
+ }), u.subscribe((t) => {
240
+ let o = t.filter((a) => a.selectable);
241
+ if (!o.length)
242
+ return;
243
+ let n = /* @__PURE__ */ l((a) => {
244
+ requestAnimationFrame(() => {
245
+ let r = i.getElementById(e), f = { x: a.pageX, y: a.pageY };
246
+ if (r && !q(r, f)) {
247
+ let h = o.filter((b) => {
248
+ let L = C.get(b.element);
249
+ return z(b, L, f);
250
+ });
251
+ m.set(h.length ? f : void 0), E.set(h);
252
+ }
253
+ });
254
+ }, "onClick");
255
+ return i.addEventListener("click", n), () => i.removeEventListener("click", n);
256
+ });
257
+ let W = /* @__PURE__ */ l(() => {
258
+ let t = i.getElementById(e), o = x.get();
259
+ !o || t && q(t, o) || M.set((n) => {
260
+ let a = u.get().filter((b) => {
261
+ let L = C.get(b.element);
262
+ return z(b, L, o);
263
+ }), r = n.filter((b) => a.includes(b)), f = a.filter((b) => !n.includes(b)), h = n.length - r.length;
264
+ return f.length || h ? [...r, ...f] : n;
265
+ });
266
+ }, "updateHovered");
267
+ x.subscribe(W), u.subscribe(W);
268
+ let k = /* @__PURE__ */ l(() => {
269
+ let t = w.get(), o = t ? [t] : E.get(), n = o.length === 1 ? o[0] : v.get(), a = m.get() !== void 0;
270
+ u.get().forEach((r) => {
271
+ let f = C.get(r.element);
272
+ if (f) {
273
+ let h = n === r, b = a ? n ? h : o.includes(r) : M.get()?.includes(r);
274
+ Object.assign(f.style, {
275
+ animation: "none",
276
+ background: "transparent",
277
+ border: "none",
278
+ boxSizing: "border-box",
279
+ outline: "none",
280
+ outlineOffset: "0px",
281
+ ...r.styles,
282
+ ...b ? r.hoverStyles : {},
283
+ ...h ? r.focusStyles : {},
284
+ position: getComputedStyle(r.element).position === "fixed" ? "fixed" : "absolute",
285
+ zIndex: Y - 10,
286
+ top: `${r.top}px`,
287
+ left: `${r.left}px`,
288
+ width: `${r.width}px`,
289
+ height: `${r.height}px`,
290
+ margin: 0,
291
+ padding: 0,
292
+ cursor: r.selectable ? "pointer" : "default",
293
+ pointerEvents: r.selectable ? "auto" : "none"
294
+ }), j(f);
295
+ }
296
+ });
297
+ }, "updateBoxStyles");
298
+ u.subscribe(k), E.subscribe(k), M.subscribe(k), v.subscribe(k), w.subscribe(k);
299
+ let Z = /* @__PURE__ */ l(() => {
300
+ if (!H)
301
+ return;
302
+ let t = i.getElementById(e);
303
+ if (t)
304
+ t.innerHTML = "";
305
+ else {
306
+ let r = { id: e, popover: "manual" };
307
+ t = H.appendChild(y("div", r)), H.appendChild(
308
+ y("style", {}, [
309
+ `
310
+ #${e} {
311
+ position: absolute;
312
+ z-index: ${Y};
313
+ width: 300px;
314
+ padding: 0px;
315
+ margin: 15px 0 0 0;
316
+ transform: translateX(-50%);
317
+ font-family: "Nunito Sans", -apple-system, ".SFNSText-Regular", "San Francisco", BlinkMacSystemFont, "Segoe UI", "Helvetica Ne\
318
+ ue", Helvetica, Arial, sans-serif;
319
+ font-size: 12px;
320
+ background: white;
321
+ border: none;
322
+ border-radius: 6px;
323
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.05), 0 5px 15px 0 rgba(0, 0, 0, 0.1);
324
+ color: #2E3438;
325
+ }
326
+ #${e} ul {
327
+ list-style: none;
328
+ padding: 4px 0;
329
+ margin: 0;
330
+ max-height: 300px;
331
+ overflow-y: auto;
332
+ }
333
+ #${e} li {
334
+ padding: 0 4px;
335
+ margin: 0;
336
+ }
337
+ #${e} li > * {
338
+ display: flex;
339
+ padding: 8px;
340
+ margin: 0;
341
+ align-items: center;
342
+ gap: 8px;
343
+ border-radius: 4px;
344
+ }
345
+ #${e} button {
346
+ width: 100%;
347
+ border: 0;
348
+ background: transparent;
349
+ color: inherit;
350
+ text-align: left;
351
+ font-family: inherit;
352
+ font-size: inherit;
353
+ }
354
+ #${e} button:focus {
355
+ outline-color: #029CFD;
356
+ }
357
+ #${e} button:hover {
358
+ background: rgba(2, 156, 253, 0.07);
359
+ color: #029CFD;
360
+ cursor: pointer;
361
+ }
362
+ #${e} li code {
363
+ white-space: nowrap;
364
+ overflow: hidden;
365
+ text-overflow: ellipsis;
366
+ line-height: 16px;
367
+ font-size: 11px;
368
+ }
369
+ #${e} li svg {
370
+ display: none;
371
+ flex-shrink: 0;
372
+ margin: 1px;
373
+ color: #73828C;
374
+ }
375
+ #${e} li > button:hover svg, #${e} li > button:focus svg {
376
+ color: #029CFD;
377
+ }
378
+ #${e} li.selectable svg, #${e} li.selected svg {
379
+ display: block;
380
+ }
381
+ #${e} .menu-list {
382
+ border-top: 1px solid rgba(38, 85, 115, 0.15);
383
+ }
384
+ #${e} .menu-list li:not(:last-child) {
385
+ padding-bottom: 4px;
386
+ margin-bottom: 4px;
387
+ border-bottom: 1px solid rgba(38, 85, 115, 0.15);
388
+ }
389
+ #${e} .menu-list li div {
390
+ display: flex;
391
+ flex-direction: column;
392
+ align-items: flex-start;
393
+ gap: 0;
394
+ }
395
+ #${e} .menu-list li small {
396
+ color: #5C6870;
397
+ font-size: 11px;
398
+ }
399
+ `
400
+ ])
401
+ );
402
+ }
403
+ let o = w.get(), n = o ? [o] : E.get();
404
+ if (n.length && (t.style.position = getComputedStyle(n[0].element).position === "fixed" ? "fixed" : "absolute", t.appendChild(
405
+ y(
406
+ "ul",
407
+ { class: "element-list" },
408
+ n.map((r) => {
409
+ let f = r.menu?.filter(
410
+ (B) => !B.selectors || B.selectors.some((S) => r.selectors.includes(S))
411
+ ), h = n.length > 1 && !!f?.length, b = h ? {
412
+ class: "selectable",
413
+ onClick: /* @__PURE__ */ l(() => w.set(r), "onClick"),
414
+ onMouseEnter: /* @__PURE__ */ l(() => v.set(r), "onMouseEnter"),
415
+ onMouseLeave: /* @__PURE__ */ l(() => v.set(void 0), "onMouseLeave")
416
+ } : o ? { class: "selected", onClick: /* @__PURE__ */ l(() => w.set(void 0), "onClick") } : {}, L = h || o;
417
+ return y("li", b, [
418
+ y(L ? "button" : "div", L ? { type: "button" } : {}, [
419
+ o ? pe() : null,
420
+ y("code", {}, [r.element.outerHTML]),
421
+ h ? ge() : null
422
+ ])
423
+ ]);
424
+ })
425
+ )
426
+ )), w.get() || E.get().length === 1) {
427
+ let r = w.get() || E.get()[0], f = r.menu?.filter(
428
+ (h) => !h.selectors || h.selectors.some((b) => r.selectors.includes(b))
429
+ );
430
+ f?.length && t.appendChild(
431
+ y(
432
+ "ul",
433
+ { class: "menu-list" },
434
+ f.map(({ id: h, title: b, description: L, clickEvent: B }) => {
435
+ let S = B && (() => s.emit(B, h, ie(r)));
436
+ return y("li", {}, [
437
+ y(
438
+ S ? "button" : "div",
439
+ S ? { type: "button", onClick: S } : {},
440
+ [
441
+ y("div", {}, [
442
+ y("strong", {}, [b]),
443
+ L && y("small", {}, [L])
444
+ ])
445
+ ]
446
+ )
447
+ ]);
448
+ })
449
+ )
450
+ );
451
+ }
452
+ let a = m.get();
453
+ a ? (Object.assign(t.style, {
454
+ display: "block",
455
+ left: `${t.style.position === "fixed" ? a.x - window.scrollX : a.x}px`,
456
+ top: `${t.style.position === "fixed" ? a.y - window.scrollY : a.y}px`
457
+ }), j(t), requestAnimationFrame(() => ne(t, a, { topOffset: 15, centered: !0 }))) : (se(t), Object.assign(t.style, { display: "none" }));
458
+ }, "renderMenu");
459
+ E.subscribe(Z), w.subscribe(Z);
460
+ let K = /* @__PURE__ */ l((t) => {
461
+ let o = te(t);
462
+ o.selectors?.length && g.set((n) => [...n, o]);
463
+ }, "addHighlight"), I = /* @__PURE__ */ l((t) => {
464
+ g.set((o) => o.filter((n) => n.id !== t));
465
+ }, "removeHighlight"), A = /* @__PURE__ */ l(() => {
466
+ g.set([]);
467
+ }, "clearHighlights"), N, J = /* @__PURE__ */ l((t, o) => {
468
+ let n = "scrollIntoView-highlight";
469
+ clearTimeout(N), I(n);
470
+ let a = i.querySelector(t);
471
+ if (!a) {
472
+ console.warn(`Cannot scroll into view: ${t} not found`);
473
+ return;
474
+ }
475
+ a.scrollIntoView({ behavior: "smooth", block: "center", ...o });
476
+ let r = `kf-${Math.random().toString(36).substring(2, 15)}`;
477
+ g.set((f) => [
478
+ ...f,
479
+ {
480
+ id: n,
481
+ priority: 1e3,
482
+ selectors: [t],
483
+ selectable: !1,
484
+ styles: {
485
+ outline: "2px solid #1EA7FD",
486
+ outlineOffset: "2px",
487
+ animation: `${r} 3s linear forwards`
488
+ },
489
+ keyframes: `@keyframes ${r} {
490
+ 0% { outline: 2px solid #1EA7FD; }
491
+ 20% { outline: 2px solid #1EA7FD00; }
492
+ 40% { outline: 2px solid #1EA7FD; }
493
+ 60% { outline: 2px solid #1EA7FD00; }
494
+ 80% { outline: 2px solid #1EA7FD; }
495
+ 100% { outline: 2px solid #1EA7FD00; }
496
+ }`
497
+ }
498
+ ]), N = setTimeout(() => I(n), 3500);
499
+ }, "scrollIntoView"), U = /* @__PURE__ */ l((t) => {
500
+ requestAnimationFrame(() => x.set({ x: t.pageX, y: t.pageY }));
501
+ }, "onMouseMove");
502
+ i.body.addEventListener("mousemove", U), s.on(G, K), s.on(ee, I), s.on(X, A), s.on(re, A), s.on(P, J);
503
+ let Q = /* @__PURE__ */ l(() => {
504
+ clearTimeout(N), i.body.removeEventListener("mousemove", U), s.off(G, K), s.off(X, A), s.off(re, A), s.off(P, J), g.teardown(), p.teardown(),
505
+ u.teardown(), E.teardown(), m.teardown(), x.teardown(), M.teardown(), v.teardown(), w.teardown(), $.forEach((t) => t.remove()), C.forEach(
506
+ (t) => t.remove()), i.getElementById(e)?.remove(), i.getElementById(d)?.remove();
507
+ }, "teardown");
508
+ return globalThis.__STORYBOOK_HIGHLIGHT_TEARDOWN = Q, Q;
509
+ }, "useHighlights");
510
+
511
+ // src/highlight/preview.ts
512
+ _ && _.ready && _.ready().then(() => {
513
+ let s = _.getChannel();
514
+ le({ channel: s });
515
+ });
516
+ var Te = /* @__PURE__ */ l(() => ue({}), "default");
517
+ export {
518
+ Te as default
519
+ };