@jogak/ui 0.1.0-alpha.5 → 0.1.0-alpha.7

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.
package/dist/index.mjs CHANGED
@@ -1,28 +1,29 @@
1
- import { jsxs as j, jsx as e } from "react/jsx-runtime";
2
- import { useState as f, useEffect as w, useRef as H, useMemo as y, useCallback as C } from "react";
3
- import { defaultActionChannel as S, ComponentRegistry as I, defaultRegistry as V } from "@jogak/core";
4
- import { useRegistryMeta as q, useEntry as Q, reactAdapter as A, JogakProvider as X, useRegistry as Y } from "@jogak/react";
5
- import { themes as B, Highlight as Z } from "prism-react-renderer";
6
- function z(o) {
1
+ import { jsxs as c, jsx as e } from "react/jsx-runtime";
2
+ import { useState as m, useEffect as b, useRef as _, useMemo as C, useCallback as R } from "react";
3
+ import { defaultActionChannel as A, ComponentRegistry as X, defaultRegistry as W } from "@jogak/core";
4
+ import { useRegistryMeta as Y, useEntry as Z, reactAdapter as S, JogakProvider as K, useRegistry as T } from "@jogak/react";
5
+ import { themes as z, Highlight as oo } from "prism-react-renderer";
6
+ import { createPortal as ao } from "react-dom";
7
+ function F(o) {
7
8
  var a, r, t = "";
8
9
  if (typeof o == "string" || typeof o == "number") t += o;
9
10
  else if (typeof o == "object") if (Array.isArray(o)) {
10
- var g = o.length;
11
- for (a = 0; a < g; a++) o[a] && (r = z(o[a])) && (t && (t += " "), t += r);
11
+ var l = o.length;
12
+ for (a = 0; a < l; a++) o[a] && (r = F(o[a])) && (t && (t += " "), t += r);
12
13
  } else for (r in o) o[r] && (t && (t += " "), t += r);
13
14
  return t;
14
15
  }
15
- function h() {
16
- for (var o, a, r = 0, t = "", g = arguments.length; r < g; r++) (o = arguments[r]) && (a = z(o)) && (t && (t += " "), t += a);
16
+ function v() {
17
+ for (var o, a, r = 0, t = "", l = arguments.length; r < l; r++) (o = arguments[r]) && (a = F(o)) && (t && (t += " "), t += a);
17
18
  return t;
18
19
  }
19
- function K({
20
+ function eo({
20
21
  selectedEntryId: o,
21
22
  selectedJogakName: a,
22
23
  onSelect: r
23
24
  }) {
24
- const [t, g] = f(""), { metaTree: n, searchMeta: k } = q(), s = t.trim().length > 0 ? k(t) : null;
25
- return /* @__PURE__ */ j(
25
+ const [t, l] = m(""), { metaTree: n, searchMeta: s } = Y(), k = t.trim().length > 0 ? s(t) : null;
26
+ return /* @__PURE__ */ c(
26
27
  "aside",
27
28
  {
28
29
  "data-testid": "sidebar",
@@ -34,23 +35,23 @@ function K({
34
35
  type: "search",
35
36
  placeholder: "Search components...",
36
37
  value: t,
37
- onChange: (l) => {
38
- g(l.target.value);
38
+ onChange: (g) => {
39
+ l(g.target.value);
39
40
  },
40
41
  className: "jogak:w-full jogak:px-2 jogak:py-1.5 jogak:border jogak:border-[var(--jogak-color-border-strong)] jogak:rounded-[var(--jogak-radius-md)]",
41
42
  "aria-label": "Search components"
42
43
  }
43
44
  ) }),
44
- /* @__PURE__ */ e("nav", { className: "jogak:flex-1 jogak:overflow-auto jogak:py-2", children: s !== null ? /* @__PURE__ */ e(
45
- T,
45
+ /* @__PURE__ */ e("nav", { className: "jogak:flex-1 jogak:overflow-auto jogak:py-2", children: k !== null ? /* @__PURE__ */ e(
46
+ ro,
46
47
  {
47
- metas: s,
48
+ metas: k,
48
49
  selectedEntryId: o,
49
50
  selectedJogakName: a,
50
51
  onSelect: r
51
52
  }
52
53
  ) : /* @__PURE__ */ e(
53
- D,
54
+ H,
54
55
  {
55
56
  node: n,
56
57
  selectedEntryId: o,
@@ -62,137 +63,137 @@ function K({
62
63
  }
63
64
  );
64
65
  }
65
- function T({
66
+ function ro({
66
67
  metas: o,
67
68
  selectedEntryId: a,
68
69
  selectedJogakName: r,
69
70
  onSelect: t
70
71
  }) {
71
- return o.length === 0 ? /* @__PURE__ */ e("p", { className: "jogak:px-3 jogak:text-[var(--jogak-color-fg-subtle)] jogak:text-[13px]", children: "No results" }) : /* @__PURE__ */ e("ul", { className: "jogak:list-none jogak:m-0 jogak:p-0", children: o.map((g) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
72
- F,
72
+ return o.length === 0 ? /* @__PURE__ */ e("p", { className: "jogak:px-3 jogak:text-[var(--jogak-color-fg-subtle)] jogak:text-[13px]", children: "No results" }) : /* @__PURE__ */ e("ul", { className: "jogak:list-none jogak:m-0 jogak:p-0", children: o.map((l) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
73
+ U,
73
74
  {
74
- meta: g,
75
+ meta: l,
75
76
  selectedEntryId: a,
76
77
  selectedJogakName: r,
77
78
  onSelect: t,
78
79
  indent: 0
79
80
  }
80
- ) }, g.id)) });
81
+ ) }, l.id)) });
81
82
  }
82
- function D({
83
+ function H({
83
84
  node: o,
84
85
  selectedEntryId: a,
85
86
  selectedJogakName: r,
86
87
  onSelect: t,
87
- depth: g = 0
88
+ depth: l = 0
88
89
  }) {
89
90
  return /* @__PURE__ */ e(
90
91
  "ul",
91
92
  {
92
93
  className: "jogak:list-none jogak:m-0 jogak:pr-0 jogak:py-0 jogak:pl-[var(--jogak-tree-pl)]",
93
- style: { "--jogak-tree-pl": `${g * 12}px` },
94
- children: Object.entries(o).map(([n, k]) => /* @__PURE__ */ e("li", { children: "id" in k ? /* @__PURE__ */ e(
95
- F,
94
+ style: { "--jogak-tree-pl": `${l * 12}px` },
95
+ children: Object.entries(o).map(([n, s]) => /* @__PURE__ */ e("li", { children: "id" in s ? /* @__PURE__ */ e(
96
+ U,
96
97
  {
97
- meta: k,
98
+ meta: s,
98
99
  selectedEntryId: a,
99
100
  selectedJogakName: r,
100
101
  onSelect: t,
101
102
  indent: 0
102
103
  }
103
104
  ) : /* @__PURE__ */ e(
104
- oo,
105
+ to,
105
106
  {
106
107
  label: n,
107
- node: k,
108
+ node: s,
108
109
  selectedEntryId: a,
109
110
  selectedJogakName: r,
110
111
  onSelect: t,
111
- depth: g + 1
112
+ depth: l + 1
112
113
  }
113
114
  ) }, n))
114
115
  }
115
116
  );
116
117
  }
117
- function oo({
118
+ function to({
118
119
  label: o,
119
120
  node: a,
120
121
  selectedEntryId: r,
121
122
  selectedJogakName: t,
122
- onSelect: g,
123
+ onSelect: l,
123
124
  depth: n
124
125
  }) {
125
- const [k, s] = f(!0);
126
- return /* @__PURE__ */ j("div", { children: [
127
- /* @__PURE__ */ j(
126
+ const [s, k] = m(!0);
127
+ return /* @__PURE__ */ c("div", { children: [
128
+ /* @__PURE__ */ c(
128
129
  "button",
129
130
  {
130
131
  type: "button",
131
132
  onClick: () => {
132
- s((l) => !l);
133
+ k((g) => !g);
133
134
  },
134
135
  className: "jogak:flex jogak:items-center jogak:gap-1 jogak:w-full jogak:px-3 jogak:py-1 jogak:bg-transparent jogak:border-none jogak:cursor-pointer jogak:text-[12px] jogak:font-semibold jogak:text-[var(--jogak-color-fg-muted)] jogak:uppercase jogak:tracking-wider",
135
- "aria-expanded": k,
136
+ "aria-expanded": s,
136
137
  children: [
137
- /* @__PURE__ */ e("span", { children: k ? "▾" : "▸" }),
138
+ /* @__PURE__ */ e("span", { children: s ? "▾" : "▸" }),
138
139
  o
139
140
  ]
140
141
  }
141
142
  ),
142
- k && /* @__PURE__ */ e(
143
- D,
143
+ s && /* @__PURE__ */ e(
144
+ H,
144
145
  {
145
146
  node: a,
146
147
  selectedEntryId: r,
147
148
  selectedJogakName: t,
148
- onSelect: g,
149
+ onSelect: l,
149
150
  depth: n
150
151
  }
151
152
  )
152
153
  ] });
153
154
  }
154
- function F({
155
+ function U({
155
156
  meta: o,
156
157
  selectedEntryId: a,
157
158
  selectedJogakName: r,
158
159
  onSelect: t,
159
- indent: g
160
+ indent: l
160
161
  }) {
161
- const n = o.id === a, [k, s] = f(n);
162
- w(() => {
163
- n && s(!0);
162
+ const n = o.id === a, [s, k] = m(n);
163
+ b(() => {
164
+ n && k(!0);
164
165
  }, [n]);
165
- const l = o.title.split("/").pop() ?? o.title, b = 16 + g * 12;
166
- return /* @__PURE__ */ j("div", { children: [
167
- /* @__PURE__ */ j(
166
+ const g = o.title.split("/").pop() ?? o.title, j = 16 + l * 12;
167
+ return /* @__PURE__ */ c("div", { children: [
168
+ /* @__PURE__ */ c(
168
169
  "button",
169
170
  {
170
171
  type: "button",
171
172
  onClick: () => {
172
173
  if (n)
173
- s((i) => !i);
174
+ k((i) => !i);
174
175
  else {
175
- s(!0);
176
+ k(!0);
176
177
  const i = o.jogakNames[0];
177
178
  i !== void 0 && t(o.id, i);
178
179
  }
179
180
  },
180
- className: h(
181
+ className: v(
181
182
  "jogak:flex jogak:items-center jogak:gap-1.5 jogak:w-full jogak:pr-3 jogak:py-[5px]",
182
183
  "jogak:pl-[var(--jogak-entry-pl)]",
183
184
  "jogak:border-none jogak:cursor-pointer jogak:text-left jogak:text-[13px]",
184
185
  n ? "jogak:bg-[var(--jogak-color-accent-bg)] jogak:text-[var(--jogak-color-accent)] jogak:font-medium" : "jogak:bg-transparent jogak:text-[var(--jogak-color-fg)] jogak:font-normal"
185
186
  ),
186
- style: { "--jogak-entry-pl": `${b}px` },
187
- "aria-expanded": k,
187
+ style: { "--jogak-entry-pl": `${j}px` },
188
+ "aria-expanded": s,
188
189
  children: [
189
- /* @__PURE__ */ e("span", { className: "jogak:text-[10px] jogak:shrink-0 jogak:leading-none", children: k ? "▾" : "▸" }),
190
- l
190
+ /* @__PURE__ */ e("span", { className: "jogak:text-[10px] jogak:shrink-0 jogak:leading-none", children: s ? "▾" : "▸" }),
191
+ g
191
192
  ]
192
193
  }
193
194
  ),
194
- k && /* @__PURE__ */ e("ul", { className: "jogak:list-none jogak:m-0 jogak:p-0", children: o.jogakNames.map((i) => {
195
- const u = n && i === r;
195
+ s && /* @__PURE__ */ e("ul", { className: "jogak:list-none jogak:m-0 jogak:p-0", children: o.jogakNames.map((i) => {
196
+ const p = n && i === r;
196
197
  return /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
197
198
  "button",
198
199
  {
@@ -200,27 +201,27 @@ function F({
200
201
  onClick: () => {
201
202
  t(o.id, i);
202
203
  },
203
- className: h(
204
+ className: v(
204
205
  "jogak:block jogak:w-full jogak:text-left jogak:pr-3 jogak:py-1",
205
206
  "jogak:pl-[var(--jogak-jogak-pl)]",
206
207
  "jogak:border-none jogak:cursor-pointer jogak:text-[12px]",
207
- u ? "jogak:bg-[var(--jogak-color-accent-bg-soft)] jogak:text-[var(--jogak-color-accent-fg)] jogak:font-medium" : "jogak:bg-transparent jogak:text-[var(--jogak-color-fg-muted)] jogak:font-normal"
208
+ p ? "jogak:bg-[var(--jogak-color-accent-bg-soft)] jogak:text-[var(--jogak-color-accent-fg)] jogak:font-medium" : "jogak:bg-transparent jogak:text-[var(--jogak-color-fg-muted)] jogak:font-normal"
208
209
  ),
209
- style: { "--jogak-jogak-pl": `${b + 18}px` },
210
- "aria-current": u ? "true" : void 0,
210
+ style: { "--jogak-jogak-pl": `${j + 18}px` },
211
+ "aria-current": p ? "true" : void 0,
211
212
  children: i
212
213
  }
213
214
  ) }, i);
214
215
  }) })
215
216
  ] });
216
217
  }
217
- function ao(o, a) {
218
- const r = a == null ? void 0 : a.control, t = (a == null ? void 0 : a.action) !== void 0 && a.action !== !1, g = (a == null ? void 0 : a.type) === "function" || typeof o == "function";
219
- return t || g ? "action" : r === "boolean" || typeof o == "boolean" ? "boolean" : r === "number" || r === "range" || typeof o == "number" ? "number" : r === "select" || r === "radio" || (a == null ? void 0 : a.options) !== void 0 && a.options.length > 0 ? "select" : r === "text" || r === "color" || typeof o == "string" ? "text" : "json";
218
+ function no(o, a) {
219
+ const r = a == null ? void 0 : a.control, t = (a == null ? void 0 : a.action) !== void 0 && a.action !== !1, l = (a == null ? void 0 : a.type) === "function" || typeof o == "function";
220
+ return t || l ? "action" : r === "boolean" || typeof o == "boolean" ? "boolean" : r === "number" || r === "range" || typeof o == "number" ? "number" : r === "select" || r === "radio" || (a == null ? void 0 : a.options) !== void 0 && a.options.length > 0 ? "select" : r === "text" || r === "color" || typeof o == "string" ? "text" : "json";
220
221
  }
221
- const R = "jogak:px-2 jogak:py-1 jogak:border jogak:border-[var(--jogak-color-border-strong)] jogak:rounded-[var(--jogak-radius-md)] jogak:text-[13px] jogak:w-full jogak:max-w-[280px]", _ = "jogak:px-5 jogak:py-1.5 jogak:text-left jogak:text-[var(--jogak-color-fg-muted)] jogak:font-medium jogak:text-[12px] jogak:border-b jogak:border-[var(--jogak-color-border)]", $ = "jogak:px-5 jogak:py-2 jogak:align-middle jogak:border-b jogak:border-[var(--jogak-color-border-muted)]";
222
- function eo({ argKey: o, value: a, argType: r, onArgChange: t }) {
223
- switch (ao(a, r)) {
222
+ const $ = "jogak:px-2 jogak:py-1 jogak:border jogak:border-[var(--jogak-color-border-strong)] jogak:rounded-[var(--jogak-radius-md)] jogak:text-[13px] jogak:w-full jogak:max-w-[280px]", L = "jogak:px-5 jogak:py-1.5 jogak:text-left jogak:text-[var(--jogak-color-fg-muted)] jogak:font-medium jogak:text-[12px] jogak:border-b jogak:border-[var(--jogak-color-border)]", O = "jogak:px-5 jogak:py-2 jogak:align-middle jogak:border-b jogak:border-[var(--jogak-color-border-muted)]";
223
+ function go({ argKey: o, value: a, argType: r, onArgChange: t }) {
224
+ switch (no(a, r)) {
224
225
  case "boolean":
225
226
  return /* @__PURE__ */ e(
226
227
  "input",
@@ -242,7 +243,7 @@ function eo({ argKey: o, value: a, argType: r, onArgChange: t }) {
242
243
  onChange: (n) => {
243
244
  t(o, n.target.valueAsNumber);
244
245
  },
245
- className: R
246
+ className: $
246
247
  }
247
248
  );
248
249
  case "select": {
@@ -251,11 +252,11 @@ function eo({ argKey: o, value: a, argType: r, onArgChange: t }) {
251
252
  "select",
252
253
  {
253
254
  value: String(a ?? ""),
254
- onChange: (k) => {
255
- t(o, k.target.value);
255
+ onChange: (s) => {
256
+ t(o, s.target.value);
256
257
  },
257
- className: R,
258
- children: n.map((k) => /* @__PURE__ */ e("option", { value: String(k), children: String(k) }, String(k)))
258
+ className: $,
259
+ children: n.map((s) => /* @__PURE__ */ e("option", { value: String(s), children: String(s) }, String(s)))
259
260
  }
260
261
  );
261
262
  }
@@ -268,7 +269,7 @@ function eo({ argKey: o, value: a, argType: r, onArgChange: t }) {
268
269
  onChange: (n) => {
269
270
  t(o, n.target.value);
270
271
  },
271
- className: R
272
+ className: $
272
273
  }
273
274
  );
274
275
  case "action":
@@ -277,45 +278,45 @@ function eo({ argKey: o, value: a, argType: r, onArgChange: t }) {
277
278
  return /* @__PURE__ */ e("code", { className: "jogak:text-[12px] jogak:text-[var(--jogak-color-fg-muted)] jogak:font-[family-name:var(--jogak-font-mono)]", children: JSON.stringify(a) });
278
279
  }
279
280
  }
280
- function ro({ args: o, argTypes: a, onArgChange: r }) {
281
- const g = Array.from(/* @__PURE__ */ new Set([...Object.keys(o), ...Object.keys(a)])).map((n) => [n, o[n]]);
282
- return /* @__PURE__ */ j("div", { className: "jogak:border-t-2 jogak:border-[var(--jogak-color-border)]", children: [
281
+ function so({ args: o, argTypes: a, onArgChange: r }) {
282
+ const l = Array.from(/* @__PURE__ */ new Set([...Object.keys(o), ...Object.keys(a)])).map((n) => [n, o[n]]);
283
+ return /* @__PURE__ */ c("div", { className: "jogak:border-t-2 jogak:border-[var(--jogak-color-border)]", children: [
283
284
  /* @__PURE__ */ e("div", { className: "jogak:px-5 jogak:py-1.5 jogak:text-[11px] jogak:font-bold jogak:text-[var(--jogak-color-fg-subtle)] jogak:uppercase jogak:tracking-[0.08em] jogak:border-b jogak:border-[var(--jogak-color-border)] jogak:bg-[var(--jogak-color-bg-subtle)]", children: "Controls" }),
284
- g.length === 0 ? /* @__PURE__ */ e("div", { className: "jogak:px-5 jogak:py-3 jogak:text-[var(--jogak-color-fg-subtle)] jogak:text-[13px]", children: "No args defined" }) : /* @__PURE__ */ j("table", { className: "jogak:w-full jogak:border-collapse jogak:text-[13px]", children: [
285
- /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ j("tr", { children: [
286
- /* @__PURE__ */ e("th", { className: _, children: "Name" }),
287
- /* @__PURE__ */ e("th", { className: _, children: "Control" }),
288
- /* @__PURE__ */ e("th", { className: _, children: "Description" })
285
+ l.length === 0 ? /* @__PURE__ */ e("div", { className: "jogak:px-5 jogak:py-3 jogak:text-[var(--jogak-color-fg-subtle)] jogak:text-[13px]", children: "No args defined" }) : /* @__PURE__ */ c("table", { className: "jogak:w-full jogak:border-collapse jogak:text-[13px]", children: [
286
+ /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ c("tr", { children: [
287
+ /* @__PURE__ */ e("th", { className: L, children: "Name" }),
288
+ /* @__PURE__ */ e("th", { className: L, children: "Control" }),
289
+ /* @__PURE__ */ e("th", { className: L, children: "Description" })
289
290
  ] }) }),
290
- /* @__PURE__ */ e("tbody", { children: g.map(([n, k]) => {
291
- const s = a[n];
292
- return /* @__PURE__ */ j("tr", { children: [
291
+ /* @__PURE__ */ e("tbody", { children: l.map(([n, s]) => {
292
+ const k = a[n];
293
+ return /* @__PURE__ */ c("tr", { children: [
293
294
  /* @__PURE__ */ e(
294
295
  "td",
295
296
  {
296
- className: h(
297
- $,
297
+ className: v(
298
+ O,
298
299
  "jogak:font-[family-name:var(--jogak-font-mono)] jogak:text-[12px] jogak:text-[var(--jogak-color-fg)] jogak:whitespace-nowrap"
299
300
  ),
300
301
  children: n
301
302
  }
302
303
  ),
303
- /* @__PURE__ */ e("td", { className: $, children: /* @__PURE__ */ e(
304
- eo,
304
+ /* @__PURE__ */ e("td", { className: O, children: /* @__PURE__ */ e(
305
+ go,
305
306
  {
306
307
  argKey: n,
307
- value: k,
308
- argType: s,
308
+ value: s,
309
+ argType: k,
309
310
  onArgChange: r
310
311
  }
311
312
  ) }),
312
- /* @__PURE__ */ e("td", { className: h($, "jogak:text-[var(--jogak-color-fg-subtle)]"), children: (s == null ? void 0 : s.description) ?? "" })
313
+ /* @__PURE__ */ e("td", { className: v(O, "jogak:text-[var(--jogak-color-fg-subtle)]"), children: (k == null ? void 0 : k.description) ?? "" })
313
314
  ] }, n);
314
315
  }) })
315
316
  ] })
316
317
  ] });
317
318
  }
318
- function to(o) {
319
+ function lo(o) {
319
320
  if (o.length === 0) return "()";
320
321
  try {
321
322
  return o.map((a) => {
@@ -333,17 +334,17 @@ function to(o) {
333
334
  return "[unserializable]";
334
335
  }
335
336
  }
336
- function no(o) {
337
- const a = new Date(o), r = a.getHours().toString().padStart(2, "0"), t = a.getMinutes().toString().padStart(2, "0"), g = a.getSeconds().toString().padStart(2, "0"), n = a.getMilliseconds().toString().padStart(3, "0");
338
- return `${r}:${t}:${g}.${n}`;
337
+ function ko(o) {
338
+ const a = new Date(o), r = a.getHours().toString().padStart(2, "0"), t = a.getMinutes().toString().padStart(2, "0"), l = a.getSeconds().toString().padStart(2, "0"), n = a.getMilliseconds().toString().padStart(3, "0");
339
+ return `${r}:${t}:${l}.${n}`;
339
340
  }
340
- function go() {
341
- const [o, a] = f(() => S.getLogs());
342
- w(() => S.subscribe(a), []);
341
+ function co() {
342
+ const [o, a] = m(() => A.getLogs());
343
+ b(() => A.subscribe(a), []);
343
344
  const r = o.length === 0;
344
- return /* @__PURE__ */ j("div", { className: "jogak:h-full jogak:flex jogak:flex-col", children: [
345
- /* @__PURE__ */ j("div", { className: "jogak:px-5 jogak:py-1.5 jogak:text-[11px] jogak:font-bold jogak:text-[var(--jogak-color-fg-subtle)] jogak:uppercase jogak:tracking-[0.08em] jogak:border-b jogak:border-[var(--jogak-color-border)] jogak:bg-[var(--jogak-color-bg-subtle)] jogak:flex jogak:items-center jogak:justify-between jogak:shrink-0", children: [
346
- /* @__PURE__ */ j("span", { children: [
345
+ return /* @__PURE__ */ c("div", { className: "jogak:h-full jogak:flex jogak:flex-col", children: [
346
+ /* @__PURE__ */ c("div", { className: "jogak:px-5 jogak:py-1.5 jogak:text-[11px] jogak:font-bold jogak:text-[var(--jogak-color-fg-subtle)] jogak:uppercase jogak:tracking-[0.08em] jogak:border-b jogak:border-[var(--jogak-color-border)] jogak:bg-[var(--jogak-color-bg-subtle)] jogak:flex jogak:items-center jogak:justify-between jogak:shrink-0", children: [
347
+ /* @__PURE__ */ c("span", { children: [
347
348
  "Actions ",
348
349
  o.length > 0 && `(${o.length.toString()})`
349
350
  ] }),
@@ -352,10 +353,10 @@ function go() {
352
353
  {
353
354
  type: "button",
354
355
  onClick: () => {
355
- S.clear();
356
+ A.clear();
356
357
  },
357
358
  disabled: r,
358
- className: h(
359
+ className: v(
359
360
  "jogak:text-[10px] jogak:font-semibold jogak:px-2 jogak:py-0.5 jogak:border jogak:border-[var(--jogak-color-border-strong)] jogak:rounded-[var(--jogak-radius-sm)] jogak:bg-[var(--jogak-color-bg)] jogak:normal-case jogak:tracking-normal",
360
361
  r ? "jogak:text-[var(--jogak-color-fg-subtle)] jogak:cursor-default" : "jogak:text-[var(--jogak-color-fg)] jogak:cursor-pointer"
361
362
  ),
@@ -363,16 +364,16 @@ function go() {
363
364
  }
364
365
  )
365
366
  ] }),
366
- /* @__PURE__ */ e("div", { className: "jogak:flex-1 jogak:overflow-auto", children: r ? /* @__PURE__ */ e("div", { className: "jogak:px-5 jogak:py-3 jogak:text-[var(--jogak-color-fg-subtle)] jogak:text-[13px] jogak:leading-none", children: "함수 prop이 호출되면 여기에 기록됩니다" }) : /* @__PURE__ */ e("ul", { className: "jogak:list-none jogak:m-0 jogak:p-0 jogak:font-[family-name:var(--jogak-font-mono)] jogak:text-[12px]", children: o.map((t) => /* @__PURE__ */ j(
367
+ /* @__PURE__ */ e("div", { className: "jogak:flex-1 jogak:overflow-auto", children: r ? /* @__PURE__ */ e("div", { className: "jogak:px-5 jogak:py-3 jogak:text-[var(--jogak-color-fg-subtle)] jogak:text-[13px] jogak:leading-none", children: "함수 prop이 호출되면 여기에 기록됩니다" }) : /* @__PURE__ */ e("ul", { className: "jogak:list-none jogak:m-0 jogak:p-0 jogak:font-[family-name:var(--jogak-font-mono)] jogak:text-[12px]", children: o.map((t) => /* @__PURE__ */ c(
367
368
  "li",
368
369
  {
369
370
  className: "jogak:flex jogak:items-baseline jogak:gap-[10px] jogak:px-5 jogak:py-1.5 jogak:border-b jogak:border-[var(--jogak-color-border-muted)]",
370
371
  children: [
371
- /* @__PURE__ */ e("span", { className: "jogak:text-[var(--jogak-color-fg-subtle)] jogak:text-[11px] jogak:min-w-[92px]", children: no(t.timestamp) }),
372
+ /* @__PURE__ */ e("span", { className: "jogak:text-[var(--jogak-color-fg-subtle)] jogak:text-[11px] jogak:min-w-[92px]", children: ko(t.timestamp) }),
372
373
  /* @__PURE__ */ e("span", { className: "jogak:text-[var(--jogak-color-violet)] jogak:font-semibold", children: t.name }),
373
- /* @__PURE__ */ j("span", { className: "jogak:text-[var(--jogak-color-fg)] jogak:break-all jogak:flex-1", children: [
374
+ /* @__PURE__ */ c("span", { className: "jogak:text-[var(--jogak-color-fg)] jogak:break-all jogak:flex-1", children: [
374
375
  "(",
375
- to(t.args),
376
+ lo(t.args),
376
377
  ")"
377
378
  ] })
378
379
  ]
@@ -381,15 +382,91 @@ function go() {
381
382
  )) }) })
382
383
  ] });
383
384
  }
384
- const U = {
385
+ function jo({
386
+ children: o,
387
+ className: a,
388
+ style: r,
389
+ "data-testid": t
390
+ }) {
391
+ const l = _(null), [n, s] = m(null);
392
+ return b(() => {
393
+ const k = l.current;
394
+ if (k === null) return;
395
+ let g;
396
+ k.shadowRoot !== null ? g = k.shadowRoot : g = k.attachShadow({ mode: "open" }), s(g), G(g);
397
+ const j = io(g);
398
+ return () => {
399
+ j.disconnect();
400
+ };
401
+ }, []), /* @__PURE__ */ e(
402
+ "div",
403
+ {
404
+ ref: l,
405
+ className: a,
406
+ "data-testid": t,
407
+ style: r,
408
+ children: n !== null ? ao(o, n) : null
409
+ }
410
+ );
411
+ }
412
+ function G(o) {
413
+ const a = [];
414
+ for (const r of Array.from(document.styleSheets))
415
+ try {
416
+ const t = r.cssRules, l = new CSSStyleSheet(), n = Array.from(t).map((s) => s.cssText).join(`
417
+ `);
418
+ l.replaceSync(n), a.push(l);
419
+ } catch {
420
+ }
421
+ o.adoptedStyleSheets = a;
422
+ }
423
+ function io(o) {
424
+ const a = new MutationObserver(() => {
425
+ G(o);
426
+ });
427
+ return a.observe(document.head, { childList: !0, subtree: !0 }), a;
428
+ }
429
+ function uo({
430
+ entry: o,
431
+ args: a,
432
+ className: r,
433
+ "data-testid": t
434
+ }) {
435
+ const l = _(null), n = _(!1);
436
+ return b(() => {
437
+ const s = l.current;
438
+ if (s === null) return;
439
+ const k = () => {
440
+ var g, j;
441
+ n.current = !0, (j = (g = s.contentWindow) == null ? void 0 : g.__jogak_setProps__) == null || j.call(g, { entry: o, args: a });
442
+ };
443
+ return s.addEventListener("load", k), () => {
444
+ var g, j;
445
+ s.removeEventListener("load", k), (j = (g = s.contentWindow) == null ? void 0 : g.__jogak_unmount__) == null || j.call(g);
446
+ };
447
+ }, []), b(() => {
448
+ var s, k, g;
449
+ n.current && ((g = (k = (s = l.current) == null ? void 0 : s.contentWindow) == null ? void 0 : k.__jogak_setProps__) == null || g.call(k, { entry: o, args: a }));
450
+ }, [o, a]), /* @__PURE__ */ e(
451
+ "iframe",
452
+ {
453
+ ref: l,
454
+ src: "/preview-frame.html",
455
+ title: "Preview",
456
+ className: r,
457
+ "data-testid": t
458
+ }
459
+ );
460
+ }
461
+ const I = {
385
462
  mobile: 375,
386
463
  tablet: 768,
387
464
  desktop: "none"
388
- }, so = {
465
+ }, po = {
389
466
  mobile: "Mobile",
390
467
  tablet: "Tablet",
391
468
  desktop: "Desktop"
392
- }, O = {
469
+ }, P = {
393
470
  white: {
394
471
  "--jogak-canvas-bg": "#ffffff",
395
472
  "--jogak-canvas-bg-image": "none",
@@ -408,21 +485,22 @@ const U = {
408
485
  "--jogak-canvas-bg-size": "16px 16px",
409
486
  "--jogak-canvas-bg-position": "0 0, 0 8px, 8px -8px, -8px 0px"
410
487
  }
411
- }, L = "jogak:bg-[var(--jogak-canvas-bg)] jogak:bg-[image:var(--jogak-canvas-bg-image)] jogak:bg-[length:var(--jogak-canvas-bg-size)] jogak:bg-[position:var(--jogak-canvas-bg-position)]";
412
- function ko(o) {
413
- return B[o] ?? B.vsDark;
488
+ }, M = "jogak:bg-[var(--jogak-canvas-bg)] jogak:bg-[image:var(--jogak-canvas-bg-image)] jogak:bg-[length:var(--jogak-canvas-bg-size)] jogak:bg-[position:var(--jogak-canvas-bg-position)]";
489
+ function fo(o) {
490
+ return z[o] ?? z.vsDark;
414
491
  }
415
- function lo({
492
+ function mo({
416
493
  entryId: o,
417
494
  jogakName: a,
418
495
  overrideArgs: r,
419
496
  onArgChange: t,
420
- onReset: g,
497
+ onReset: l,
421
498
  codeTheme: n,
422
- onResolveJogak: k
499
+ onResolveJogak: s,
500
+ previewIsolation: k = "none"
423
501
  }) {
424
- const s = Q(o), [l, b] = f("desktop"), [i, u] = f("white"), [v, m] = f("controls"), x = ko(n);
425
- return s.status === "unknown" ? /* @__PURE__ */ j(
502
+ const g = Z(o), [j, i] = m("desktop"), [p, w] = m("white"), [N, h] = m("controls"), x = fo(n);
503
+ return g.status === "unknown" ? /* @__PURE__ */ c(
426
504
  "div",
427
505
  {
428
506
  "data-testid": "preview-not-found",
@@ -432,71 +510,72 @@ function lo({
432
510
  o
433
511
  ]
434
512
  }
435
- ) : s.status === "error" ? /* @__PURE__ */ j(
513
+ ) : g.status === "error" ? /* @__PURE__ */ c(
436
514
  "div",
437
515
  {
438
516
  "data-testid": "preview-error",
439
517
  className: "jogak:p-6 jogak:text-[var(--jogak-color-error-fg)] jogak:bg-[var(--jogak-color-bg-error)] jogak:h-full jogak:flex jogak:flex-col jogak:gap-3 jogak:items-start",
440
518
  children: [
441
- /* @__PURE__ */ j("div", { className: "jogak:font-semibold", children: [
519
+ /* @__PURE__ */ c("div", { className: "jogak:font-semibold", children: [
442
520
  "Failed to load entry: ",
443
521
  o
444
522
  ] }),
445
- /* @__PURE__ */ e("pre", { className: "jogak:m-0 jogak:p-3 jogak:bg-[var(--jogak-color-bg)] jogak:border jogak:border-[var(--jogak-color-error-border)] jogak:rounded-[var(--jogak-radius-lg)] jogak:text-[12px] jogak:whitespace-pre-wrap jogak:max-w-full", children: s.error.message })
523
+ /* @__PURE__ */ e("pre", { className: "jogak:m-0 jogak:p-3 jogak:bg-[var(--jogak-color-bg)] jogak:border jogak:border-[var(--jogak-color-error-border)] jogak:rounded-[var(--jogak-radius-lg)] jogak:text-[12px] jogak:whitespace-pre-wrap jogak:max-w-full", children: g.error.message })
446
524
  ]
447
525
  }
448
- ) : s.status === "loading" ? /* @__PURE__ */ e(
449
- jo,
526
+ ) : g.status === "loading" ? /* @__PURE__ */ e(
527
+ bo,
450
528
  {
451
- meta: s.meta,
529
+ meta: g.meta,
452
530
  jogakName: a,
453
- viewport: l,
454
- bgMode: i,
455
- onViewportChange: b,
456
- onBgModeChange: u
531
+ viewport: j,
532
+ bgMode: p,
533
+ onViewportChange: i,
534
+ onBgModeChange: w
457
535
  }
458
536
  ) : /* @__PURE__ */ e(
459
- io,
537
+ ho,
460
538
  {
461
- entry: s.entry,
539
+ entry: g.entry,
462
540
  jogakName: a,
463
541
  overrideArgs: r,
464
542
  onArgChange: t,
465
- onReset: g,
466
- onResolveJogak: k,
467
- viewport: l,
468
- bgMode: i,
469
- bottomTab: v,
470
- onViewportChange: b,
471
- onBgModeChange: u,
472
- onBottomTabChange: m,
473
- prismTheme: x
543
+ onReset: l,
544
+ onResolveJogak: s,
545
+ viewport: j,
546
+ bgMode: p,
547
+ bottomTab: N,
548
+ onViewportChange: i,
549
+ onBgModeChange: w,
550
+ onBottomTabChange: h,
551
+ prismTheme: x,
552
+ previewIsolation: k
474
553
  }
475
554
  );
476
555
  }
477
- function jo({
556
+ function bo({
478
557
  meta: o,
479
558
  jogakName: a,
480
559
  viewport: r,
481
560
  bgMode: t,
482
- onViewportChange: g,
561
+ onViewportChange: l,
483
562
  onBgModeChange: n
484
563
  }) {
485
- const k = a ?? o.jogakNames[0] ?? "...", s = U[r];
486
- return /* @__PURE__ */ j(
564
+ const s = a ?? o.jogakNames[0] ?? "...", k = I[r];
565
+ return /* @__PURE__ */ c(
487
566
  "div",
488
567
  {
489
568
  "data-testid": "preview-loading",
490
569
  className: "jogak:flex jogak:flex-col jogak:h-full",
491
570
  children: [
492
571
  /* @__PURE__ */ e(
493
- W,
572
+ q,
494
573
  {
495
574
  title: o.title,
496
- jogakName: k,
575
+ jogakName: s,
497
576
  viewport: r,
498
577
  bgMode: t,
499
- onViewportChange: g,
578
+ onViewportChange: l,
500
579
  onBgModeChange: n,
501
580
  showReset: !1,
502
581
  onReset: () => {
@@ -506,16 +585,16 @@ function jo({
506
585
  /* @__PURE__ */ e(
507
586
  "div",
508
587
  {
509
- className: `jogak:flex-1 jogak:overflow-auto jogak:min-h-[320px] ${L}`,
510
- style: O[t],
588
+ className: `jogak:flex-1 jogak:overflow-auto jogak:min-h-[320px] ${M}`,
589
+ style: P[t],
511
590
  children: /* @__PURE__ */ e(
512
591
  "div",
513
592
  {
514
593
  className: "jogak:mx-auto jogak:p-6 jogak:max-w-[var(--jogak-canvas-mw)]",
515
594
  style: {
516
- "--jogak-canvas-mw": s === "none" ? "100%" : `${s}px`
595
+ "--jogak-canvas-mw": k === "none" ? "100%" : `${k}px`
517
596
  },
518
- children: /* @__PURE__ */ j("div", { className: "jogak-skeleton-shimmer jogak:border jogak:border-dashed jogak:border-[var(--jogak-color-border)] jogak:rounded-[var(--jogak-radius-xl)] jogak:p-4 jogak:flex jogak:items-center jogak:justify-center jogak:text-[var(--jogak-color-fg-subtle)] jogak:text-[13px] jogak:min-h-[256px]", children: [
597
+ children: /* @__PURE__ */ c("div", { className: "jogak-skeleton-shimmer jogak:border jogak:border-dashed jogak:border-[var(--jogak-color-border)] jogak:rounded-[var(--jogak-radius-xl)] jogak:p-4 jogak:flex jogak:items-center jogak:justify-center jogak:text-[var(--jogak-color-fg-subtle)] jogak:text-[13px] jogak:min-h-[256px]", children: [
519
598
  "Loading ",
520
599
  o.title,
521
600
  "…"
@@ -528,74 +607,76 @@ function jo({
528
607
  }
529
608
  );
530
609
  }
531
- function io({
610
+ function ho({
532
611
  entry: o,
533
612
  jogakName: a,
534
613
  overrideArgs: r,
535
614
  onArgChange: t,
536
- onReset: g,
615
+ onReset: l,
537
616
  onResolveJogak: n,
538
- viewport: k,
539
- bgMode: s,
540
- bottomTab: l,
541
- onViewportChange: b,
617
+ viewport: s,
618
+ bgMode: k,
619
+ bottomTab: g,
620
+ onViewportChange: j,
542
621
  onBgModeChange: i,
543
- onBottomTabChange: u,
544
- prismTheme: v
622
+ onBottomTabChange: p,
623
+ prismTheme: w,
624
+ previewIsolation: N
545
625
  }) {
546
- var J;
547
- const m = a ?? ((J = o.jogaks[0]) == null ? void 0 : J.name) ?? null;
548
- if (w(() => {
549
- a === null && m !== null && n !== void 0 && n(o.id, m);
550
- }, [a, m, o.id, n]), m === null)
551
- return /* @__PURE__ */ j("div", { className: "jogak:p-6 jogak:text-[var(--jogak-color-error)]", children: [
626
+ var V;
627
+ const h = a ?? ((V = o.jogaks[0]) == null ? void 0 : V.name) ?? null;
628
+ if (b(() => {
629
+ a === null && h !== null && n !== void 0 && n(o.id, h);
630
+ }, [a, h, o.id, n]), h === null)
631
+ return /* @__PURE__ */ c("div", { className: "jogak:p-6 jogak:text-[var(--jogak-color-error)]", children: [
552
632
  "Entry has no jogaks: ",
553
633
  o.id
554
634
  ] });
555
- const x = o.jogaks.find((N) => N.name === m);
635
+ const x = o.jogaks.find((y) => y.name === h);
556
636
  if (x === void 0)
557
- return /* @__PURE__ */ j("div", { className: "jogak:p-6 jogak:text-[var(--jogak-color-error)]", children: [
637
+ return /* @__PURE__ */ c("div", { className: "jogak:p-6 jogak:text-[var(--jogak-color-error)]", children: [
558
638
  "Jogak not found: ",
559
- m
639
+ h
560
640
  ] });
561
- const d = { ...x.args ?? {}, ...r }, p = {
641
+ const u = { ...x.args ?? {}, ...r }, f = {
562
642
  ...o.meta.argTypes ?? {},
563
643
  ...x.argTypes ?? {}
564
- }, G = Object.keys(r).length > 0, E = U[k];
565
- return /* @__PURE__ */ j("div", { className: "jogak:flex jogak:flex-col jogak:h-full", children: [
644
+ }, Q = Object.keys(r).length > 0, J = I[s];
645
+ return /* @__PURE__ */ c("div", { className: "jogak:flex jogak:flex-col jogak:h-full", children: [
566
646
  /* @__PURE__ */ e(
567
- W,
647
+ q,
568
648
  {
569
649
  title: o.title,
570
650
  jogakName: x.name,
571
- viewport: k,
572
- bgMode: s,
573
- onViewportChange: b,
651
+ viewport: s,
652
+ bgMode: k,
653
+ onViewportChange: j,
574
654
  onBgModeChange: i,
575
- showReset: G,
576
- onReset: g
655
+ showReset: Q,
656
+ onReset: l
577
657
  }
578
658
  ),
579
659
  /* @__PURE__ */ e(
580
660
  "div",
581
661
  {
582
- className: `jogak:flex-1 jogak:overflow-auto jogak:min-h-[320px] ${L}`,
583
- style: O[s],
662
+ className: `jogak:flex-1 jogak:overflow-auto jogak:min-h-[320px] ${M}`,
663
+ style: P[k],
584
664
  children: /* @__PURE__ */ e(
585
665
  "div",
586
666
  {
587
667
  "data-jogak-content": !0,
588
668
  className: "jogak:mx-auto jogak:p-6 jogak:max-w-[var(--jogak-canvas-mw)]",
589
669
  style: {
590
- "--jogak-canvas-mw": E === "none" ? "100%" : `${E}px`
670
+ "--jogak-canvas-mw": J === "none" ? "100%" : `${J}px`
591
671
  },
592
672
  children: /* @__PURE__ */ e(
593
- co,
673
+ xo,
594
674
  {
595
675
  entry: o,
596
- args: d,
676
+ args: u,
597
677
  source: o.source,
598
- theme: v
678
+ theme: w,
679
+ previewIsolation: N
599
680
  },
600
681
  `${o.id}/${x.name}`
601
682
  )
@@ -603,7 +684,7 @@ function io({
603
684
  )
604
685
  }
605
686
  ),
606
- /* @__PURE__ */ j(
687
+ /* @__PURE__ */ c(
607
688
  "div",
608
689
  {
609
690
  "data-testid": "bottom-panel",
@@ -614,156 +695,199 @@ function io({
614
695
  {
615
696
  role: "tablist",
616
697
  className: "jogak:flex jogak:gap-1 jogak:pt-1 jogak:px-3 jogak:pb-0 jogak:bg-[var(--jogak-color-bg)] jogak:border-b jogak:border-[var(--jogak-color-border)] jogak:shrink-0",
617
- children: ["controls", "actions"].map((N) => {
618
- const P = l === N;
698
+ children: ["controls", "actions"].map((y) => {
699
+ const B = g === y;
619
700
  return /* @__PURE__ */ e(
620
701
  "button",
621
702
  {
622
703
  type: "button",
623
704
  role: "tab",
624
- "aria-selected": P,
705
+ "aria-selected": B,
625
706
  onClick: () => {
626
- u(N);
707
+ p(y);
627
708
  },
628
- className: h(
709
+ className: v(
629
710
  "jogak:px-[14px] jogak:py-[6px] jogak:text-[12px] jogak:bg-transparent jogak:border-x-0 jogak:border-t-0 jogak:border-b-2 jogak:border-solid jogak:-mb-px jogak:cursor-pointer jogak:capitalize",
630
- P ? "jogak:font-semibold jogak:text-[var(--jogak-color-fg-strong)] jogak:border-[var(--jogak-color-accent)]" : "jogak:font-medium jogak:text-[var(--jogak-color-fg-muted)] jogak:border-transparent"
711
+ B ? "jogak:font-semibold jogak:text-[var(--jogak-color-fg-strong)] jogak:border-[var(--jogak-color-accent)]" : "jogak:font-medium jogak:text-[var(--jogak-color-fg-muted)] jogak:border-transparent"
631
712
  ),
632
- children: N
713
+ children: y
633
714
  },
634
- N
715
+ y
635
716
  );
636
717
  })
637
718
  }
638
719
  ),
639
- /* @__PURE__ */ e("div", { className: "jogak:flex-1 jogak:min-h-0 jogak:overflow-auto", children: l === "controls" ? /* @__PURE__ */ e(
640
- ro,
720
+ /* @__PURE__ */ e("div", { className: "jogak:flex-1 jogak:min-h-0 jogak:overflow-auto", children: g === "controls" ? /* @__PURE__ */ e(
721
+ so,
641
722
  {
642
- args: d,
643
- argTypes: p,
723
+ args: u,
724
+ argTypes: f,
644
725
  onArgChange: t
645
726
  }
646
- ) : /* @__PURE__ */ e(go, {}) })
727
+ ) : /* @__PURE__ */ e(co, {}) })
647
728
  ]
648
729
  }
649
730
  )
650
731
  ] });
651
732
  }
652
- function W({
733
+ function q({
653
734
  title: o,
654
735
  jogakName: a,
655
736
  viewport: r,
656
737
  bgMode: t,
657
- onViewportChange: g,
738
+ onViewportChange: l,
658
739
  onBgModeChange: n,
659
- showReset: k,
660
- onReset: s
740
+ showReset: s,
741
+ onReset: k
661
742
  }) {
662
- return /* @__PURE__ */ j("div", { className: "jogak:flex jogak:items-center jogak:gap-[10px] jogak:px-[14px] jogak:py-[7px] jogak:border-b jogak:border-[var(--jogak-color-border)] jogak:bg-[var(--jogak-color-bg)] jogak:shrink-0", children: [
663
- /* @__PURE__ */ j("div", { className: "jogak:flex-1 jogak:text-[13px]", children: [
743
+ return /* @__PURE__ */ c("div", { className: "jogak:flex jogak:items-center jogak:gap-[10px] jogak:px-[14px] jogak:py-[7px] jogak:border-b jogak:border-[var(--jogak-color-border)] jogak:bg-[var(--jogak-color-bg)] jogak:shrink-0", children: [
744
+ /* @__PURE__ */ c("div", { className: "jogak:flex-1 jogak:text-[13px]", children: [
664
745
  /* @__PURE__ */ e("span", { className: "jogak:text-[var(--jogak-color-fg-subtle)]", children: o }),
665
746
  /* @__PURE__ */ e("span", { className: "jogak:text-[var(--jogak-color-border-strong)] jogak:mx-1.5 jogak:leading-none", children: "/" }),
666
747
  /* @__PURE__ */ e("span", { className: "jogak:text-[var(--jogak-color-fg-strong)] jogak:font-semibold", children: a })
667
748
  ] }),
668
- /* @__PURE__ */ e("div", { className: "jogak:flex jogak:gap-0.5 jogak:bg-[var(--jogak-color-bg-subtle)] jogak:rounded-[var(--jogak-radius-lg)] jogak:p-0.5", children: ["mobile", "tablet", "desktop"].map((l) => /* @__PURE__ */ e(
749
+ /* @__PURE__ */ e("div", { className: "jogak:flex jogak:gap-0.5 jogak:bg-[var(--jogak-color-bg-subtle)] jogak:rounded-[var(--jogak-radius-lg)] jogak:p-0.5", children: ["mobile", "tablet", "desktop"].map((g) => /* @__PURE__ */ e(
669
750
  "button",
670
751
  {
671
752
  type: "button",
672
753
  onClick: () => {
673
- g(l);
754
+ l(g);
674
755
  },
675
- "aria-pressed": r === l,
676
- className: h(
756
+ "aria-pressed": r === g,
757
+ className: v(
677
758
  "jogak:px-[9px] jogak:py-[3px] jogak:text-[12px] jogak:border-none jogak:rounded-[var(--jogak-radius-md)] jogak:cursor-pointer jogak:transition-all jogak:duration-100",
678
- r === l ? "jogak:bg-[var(--jogak-color-bg-elevated)] jogak:text-[var(--jogak-color-fg-strong)] jogak:font-semibold jogak:shadow-[0_1px_2px_rgba(0,0,0,0.08)]" : "jogak:bg-transparent jogak:text-[var(--jogak-color-fg-muted)] jogak:font-normal jogak:shadow-none"
759
+ r === g ? "jogak:bg-[var(--jogak-color-bg-elevated)] jogak:text-[var(--jogak-color-fg-strong)] jogak:font-semibold jogak:shadow-[0_1px_2px_rgba(0,0,0,0.08)]" : "jogak:bg-transparent jogak:text-[var(--jogak-color-fg-muted)] jogak:font-normal jogak:shadow-none"
679
760
  ),
680
- children: so[l]
761
+ children: po[g]
681
762
  },
682
- l
763
+ g
683
764
  )) }),
684
- /* @__PURE__ */ e("div", { className: "jogak:flex jogak:gap-1 jogak:items-center", children: ["white", "dark", "transparent"].map((l) => /* @__PURE__ */ e(
765
+ /* @__PURE__ */ e("div", { className: "jogak:flex jogak:gap-1 jogak:items-center", children: ["white", "dark", "transparent"].map((g) => /* @__PURE__ */ e(
685
766
  "button",
686
767
  {
687
768
  type: "button",
688
769
  onClick: () => {
689
- n(l);
770
+ n(g);
690
771
  },
691
- "aria-pressed": t === l,
692
- "aria-label": `${l} background`,
693
- className: h(
772
+ "aria-pressed": t === g,
773
+ "aria-label": `${g} background`,
774
+ className: v(
694
775
  "jogak:w-5 jogak:h-5 jogak:rounded-[var(--jogak-radius-md)] jogak:border-2 jogak:cursor-pointer jogak:p-0 jogak:shrink-0",
695
- L,
696
- t === l ? "jogak:border-[var(--jogak-color-accent)]" : "jogak:border-[var(--jogak-color-border-strong)]"
776
+ M,
777
+ t === g ? "jogak:border-[var(--jogak-color-accent)]" : "jogak:border-[var(--jogak-color-border-strong)]"
697
778
  ),
698
- style: O[l]
779
+ style: P[g]
699
780
  },
700
- l
781
+ g
701
782
  )) }),
702
- k && /* @__PURE__ */ e(
783
+ s && /* @__PURE__ */ e(
703
784
  "button",
704
785
  {
705
786
  type: "button",
706
- onClick: s,
787
+ onClick: k,
707
788
  className: "jogak:px-[10px] jogak:py-[3px] jogak:text-[12px] jogak:border jogak:border-[var(--jogak-color-border-strong)] jogak:rounded-[var(--jogak-radius-md)] jogak:bg-[var(--jogak-color-bg)] jogak:cursor-pointer jogak:text-[var(--jogak-color-fg)] jogak:leading-none",
708
789
  children: "Reset"
709
790
  }
710
791
  )
711
792
  ] });
712
793
  }
713
- function co({ entry: o, args: a, source: r, theme: t }) {
714
- const g = H(null), [n, k] = f(!1);
715
- return w(() => {
716
- const s = g.current;
717
- if (s !== null)
718
- return A.render(o, a, s), () => {
719
- A.unmount(s);
720
- };
721
- }, [o]), w(() => {
722
- const s = g.current;
723
- s !== null && A.render(o, a, s);
724
- }, [o, a]), /* @__PURE__ */ j("div", { children: [
725
- /* @__PURE__ */ j("div", { className: "jogak:relative", children: [
726
- /* @__PURE__ */ e(
727
- "div",
728
- {
729
- ref: g,
730
- "data-testid": "preview-content",
731
- className: "jogak:border jogak:border-dashed jogak:border-[var(--jogak-color-border)] jogak:rounded-[var(--jogak-radius-xl)] jogak:p-4 jogak:pb-9"
732
- }
733
- ),
734
- /* @__PURE__ */ e(
735
- "button",
736
- {
737
- type: "button",
738
- onClick: () => {
739
- k((s) => !s);
740
- },
741
- "aria-pressed": n,
742
- "aria-label": n ? "Hide source code" : "Show source code",
743
- className: h(
744
- "jogak:absolute jogak:bottom-2 jogak:right-2 jogak:px-[9px] jogak:py-1",
745
- "jogak:text-[11px] jogak:font-[family-name:var(--jogak-font-mono)] jogak:font-semibold jogak:tracking-[0.02em]",
746
- "jogak:text-[var(--jogak-color-bg)] jogak:border-none jogak:rounded-[5px] jogak:cursor-pointer",
747
- "jogak:shadow-[0_1px_4px_rgba(0,0,0,0.2)] jogak:transition-[background-color] jogak:duration-150 jogak:leading-none",
748
- n ? "jogak:bg-[var(--jogak-color-accent)]" : "jogak:bg-[#1e293b]"
749
- ),
750
- children: "</>"
751
- }
752
- )
753
- ] }),
754
- n && /* @__PURE__ */ e("div", { className: "jogak:mt-2 jogak:rounded-[var(--jogak-radius-xl)] jogak:overflow-hidden jogak:h-[320px] jogak:shadow-[0_0_0_1px_rgba(0,0,0,0.08),_0_4px_16px_rgba(0,0,0,0.12)]", children: /* @__PURE__ */ e(po, { source: r, theme: t }) })
794
+ function xo({ entry: o, args: a, source: r, theme: t, previewIsolation: l }) {
795
+ const [n, s] = m(!1), k = /* @__PURE__ */ c("div", { className: "jogak:relative", children: [
796
+ /* @__PURE__ */ e(
797
+ vo,
798
+ {
799
+ entry: o,
800
+ args: a,
801
+ previewIsolation: l
802
+ }
803
+ ),
804
+ /* @__PURE__ */ e(
805
+ "button",
806
+ {
807
+ type: "button",
808
+ onClick: () => {
809
+ s((g) => !g);
810
+ },
811
+ "aria-pressed": n,
812
+ "aria-label": n ? "Hide source code" : "Show source code",
813
+ className: v(
814
+ "jogak:absolute jogak:bottom-2 jogak:right-2 jogak:px-[9px] jogak:py-1",
815
+ "jogak:text-[11px] jogak:font-[family-name:var(--jogak-font-mono)] jogak:font-semibold jogak:tracking-[0.02em]",
816
+ "jogak:text-[var(--jogak-color-bg)] jogak:border-none jogak:rounded-[5px] jogak:cursor-pointer",
817
+ "jogak:shadow-[0_1px_4px_rgba(0,0,0,0.2)] jogak:transition-[background-color] jogak:duration-150 jogak:leading-none",
818
+ n ? "jogak:bg-[var(--jogak-color-accent)]" : "jogak:bg-[#1e293b]"
819
+ ),
820
+ children: "</>"
821
+ }
822
+ )
755
823
  ] });
824
+ return /* @__PURE__ */ c("div", { children: [
825
+ k,
826
+ n && /* @__PURE__ */ e("div", { className: "jogak:mt-2 jogak:rounded-[var(--jogak-radius-xl)] jogak:overflow-hidden jogak:h-[320px] jogak:shadow-[0_0_0_1px_rgba(0,0,0,0.08),_0_4px_16px_rgba(0,0,0,0.12)]", children: /* @__PURE__ */ e(yo, { source: r, theme: t }) })
827
+ ] });
828
+ }
829
+ const E = "jogak:border jogak:border-dashed jogak:border-[var(--jogak-color-border)] jogak:rounded-[var(--jogak-radius-xl)] jogak:p-4 jogak:pb-9";
830
+ function vo({ entry: o, args: a, previewIsolation: r }) {
831
+ return r === "shadow" ? /* @__PURE__ */ e(
832
+ jo,
833
+ {
834
+ "data-testid": "preview-content",
835
+ className: E,
836
+ children: /* @__PURE__ */ e(No, { entry: o, args: a })
837
+ }
838
+ ) : r === "iframe" ? /* @__PURE__ */ e(
839
+ uo,
840
+ {
841
+ entry: o,
842
+ args: a,
843
+ "data-testid": "preview-content",
844
+ className: `${E} jogak:block jogak:w-full jogak:bg-transparent jogak:min-h-[256px]`
845
+ }
846
+ ) : /* @__PURE__ */ e(wo, { entry: o, args: a });
847
+ }
848
+ function wo({ entry: o, args: a }) {
849
+ const r = _(null);
850
+ return b(() => {
851
+ const t = r.current;
852
+ if (t !== null)
853
+ return S.render(o, a, t), () => {
854
+ S.unmount(t);
855
+ };
856
+ }, [o]), b(() => {
857
+ const t = r.current;
858
+ t !== null && S.render(o, a, t);
859
+ }, [o, a]), /* @__PURE__ */ e(
860
+ "div",
861
+ {
862
+ ref: r,
863
+ "data-testid": "preview-content",
864
+ className: E
865
+ }
866
+ );
867
+ }
868
+ function No({ entry: o, args: a }) {
869
+ const r = _(null);
870
+ return b(() => {
871
+ const t = r.current;
872
+ if (t !== null)
873
+ return S.render(o, a, t), () => {
874
+ S.unmount(t);
875
+ };
876
+ }, [o]), b(() => {
877
+ const t = r.current;
878
+ t !== null && S.render(o, a, t);
879
+ }, [o, a]), /* @__PURE__ */ e("div", { ref: r, "data-testid": "preview-content-shadow" });
756
880
  }
757
- function po({ source: o, theme: a }) {
758
- const [r, t] = f(!1), g = a.plain.backgroundColor ?? "#1e293b";
881
+ function yo({ source: o, theme: a }) {
882
+ const [r, t] = m(!1), l = a.plain.backgroundColor ?? "#1e293b";
759
883
  return o === void 0 ? /* @__PURE__ */ e(
760
884
  "div",
761
885
  {
762
886
  className: "jogak:h-full jogak:flex jogak:items-center jogak:justify-center jogak:bg-[var(--jogak-source-bg)] jogak:text-[#94a3b8] jogak:text-[13px]",
763
- style: { "--jogak-source-bg": g },
887
+ style: { "--jogak-source-bg": l },
764
888
  children: "Source not available"
765
889
  }
766
- ) : /* @__PURE__ */ j("div", { className: "jogak:relative jogak:h-full", children: [
890
+ ) : /* @__PURE__ */ c("div", { className: "jogak:relative jogak:h-full", children: [
767
891
  /* @__PURE__ */ e(
768
892
  "button",
769
893
  {
@@ -779,124 +903,126 @@ function po({ source: o, theme: a }) {
779
903
  children: r ? "✓ Copied" : "Copy"
780
904
  }
781
905
  ),
782
- /* @__PURE__ */ e(Z, { code: o.trim(), language: "tsx", theme: a, children: ({ style: k, tokens: s, getLineProps: l, getTokenProps: b }) => /* @__PURE__ */ e(
906
+ /* @__PURE__ */ e(oo, { code: o.trim(), language: "tsx", theme: a, children: ({ style: s, tokens: k, getLineProps: g, getTokenProps: j }) => /* @__PURE__ */ e(
783
907
  "pre",
784
908
  {
785
909
  className: "jogak:m-0 jogak:py-3 jogak:px-0 jogak:text-[12.5px] jogak:leading-[1.7] jogak:font-[family-name:var(--jogak-font-mono)] jogak:h-full jogak:box-border jogak:overflow-auto",
786
- style: k,
787
- children: s.map((i, u) => /* @__PURE__ */ j(
910
+ style: s,
911
+ children: k.map((i, p) => /* @__PURE__ */ c(
788
912
  "div",
789
913
  {
790
- ...l({ line: i }),
914
+ ...g({ line: i }),
791
915
  className: "jogak:flex jogak:pr-6",
792
- style: l({ line: i }).style,
916
+ style: g({ line: i }).style,
793
917
  children: [
794
- /* @__PURE__ */ e("span", { className: "jogak:select-none jogak:min-w-10 jogak:pl-[14px] jogak:pr-[14px] jogak:text-right jogak:text-[rgba(148,163,184,0.45)] jogak:shrink-0 jogak:leading-[1.7]", children: u + 1 }),
795
- /* @__PURE__ */ e("span", { children: i.map((v, m) => /* @__PURE__ */ e("span", { ...b({ token: v }) }, m)) })
918
+ /* @__PURE__ */ e("span", { className: "jogak:select-none jogak:min-w-10 jogak:pl-[14px] jogak:pr-[14px] jogak:text-right jogak:text-[rgba(148,163,184,0.45)] jogak:shrink-0 jogak:leading-[1.7]", children: p + 1 }),
919
+ /* @__PURE__ */ e("span", { children: i.map((w, N) => /* @__PURE__ */ e("span", { ...j({ token: w }) }, N)) })
796
920
  ]
797
921
  },
798
- u
922
+ p
799
923
  ))
800
924
  }
801
925
  ) })
802
926
  ] });
803
927
  }
804
- function M() {
928
+ function D() {
805
929
  if (typeof window > "u") return null;
806
930
  const o = new URLSearchParams(window.location.search), a = o.get("entry");
807
931
  if (a === null) return null;
808
932
  const r = o.get("jogak");
809
933
  return { entryId: a, jogakName: r };
810
934
  }
811
- function uo(o, a) {
935
+ function So(o, a) {
812
936
  const r = new URLSearchParams();
813
937
  r.set("entry", o), r.set("jogak", a), window.history.pushState({}, "", `?${r.toString()}`);
814
938
  }
815
- function vo({
939
+ function Oo({
816
940
  entries: o,
817
941
  metas: a,
818
- codeTheme: r = "vsDark"
942
+ codeTheme: r = "vsDark",
943
+ previewIsolation: t = "none"
819
944
  } = {}) {
820
- const t = y(() => {
945
+ const l = C(() => {
821
946
  if (o !== void 0) {
822
947
  a !== void 0 && console.warn(
823
948
  "[jogak] JogakApp received both `entries` and `metas` — `entries` (eager) takes precedence."
824
949
  );
825
- const c = new I();
826
- for (const d of o) c.register(d);
827
- return c;
950
+ const d = new X();
951
+ for (const u of o) d.register(u);
952
+ return d;
828
953
  }
829
954
  if (a !== void 0)
830
- for (const c of a) V.registerMeta(c);
831
- return V;
832
- }, [o, a]), g = y(() => M(), []), [n, k] = f(
833
- (g == null ? void 0 : g.entryId) ?? null
834
- ), [s, l] = f(
835
- (g == null ? void 0 : g.jogakName) ?? null
836
- ), [b, i] = f({});
837
- w(() => {
838
- const c = () => {
839
- const d = M();
840
- d !== null ? (k(d.entryId), l(d.jogakName), i({})) : (k(null), l(null));
955
+ for (const d of a) W.registerMeta(d);
956
+ return W;
957
+ }, [o, a]), n = C(() => D(), []), [s, k] = m(
958
+ (n == null ? void 0 : n.entryId) ?? null
959
+ ), [g, j] = m(
960
+ (n == null ? void 0 : n.jogakName) ?? null
961
+ ), [i, p] = m({});
962
+ b(() => {
963
+ const d = () => {
964
+ const u = D();
965
+ u !== null ? (k(u.entryId), j(u.jogakName), p({})) : (k(null), j(null));
841
966
  };
842
- return window.addEventListener("popstate", c), () => {
843
- window.removeEventListener("popstate", c);
967
+ return window.addEventListener("popstate", d), () => {
968
+ window.removeEventListener("popstate", d);
844
969
  };
845
970
  }, []);
846
- const u = C((c, d) => {
847
- k(c), l(d), i({}), uo(c, d);
848
- }, []), v = C((c, d) => {
849
- if (k((p) => p === c ? c : p), l((p) => p ?? d), typeof window < "u") {
850
- const p = new URLSearchParams(window.location.search);
851
- p.get("entry") === c && p.get("jogak") === null && (p.set("jogak", d), window.history.replaceState({}, "", `?${p.toString()}`));
971
+ const w = R((d, u) => {
972
+ k(d), j(u), p({}), So(d, u);
973
+ }, []), N = R((d, u) => {
974
+ if (k((f) => f === d ? d : f), j((f) => f ?? u), typeof window < "u") {
975
+ const f = new URLSearchParams(window.location.search);
976
+ f.get("entry") === d && f.get("jogak") === null && (f.set("jogak", u), window.history.replaceState({}, "", `?${f.toString()}`));
852
977
  }
853
- }, []), m = C((c, d) => {
854
- i((p) => ({ ...p, [c]: d }));
855
- }, []), x = C(() => {
856
- i({});
978
+ }, []), h = R((d, u) => {
979
+ p((f) => ({ ...f, [d]: u }));
980
+ }, []), x = R(() => {
981
+ p({});
857
982
  }, []);
858
- return /* @__PURE__ */ e(X, { registry: t, children: /* @__PURE__ */ j(
983
+ return /* @__PURE__ */ e(K, { registry: l, children: /* @__PURE__ */ c(
859
984
  "div",
860
985
  {
861
986
  "data-jogak-shell": !0,
862
987
  className: "jogak:grid jogak:grid-cols-[260px_1fr] jogak:h-dvh jogak:overflow-hidden",
863
988
  children: [
864
989
  /* @__PURE__ */ e(
865
- K,
990
+ eo,
866
991
  {
867
- selectedEntryId: n,
868
- selectedJogakName: s,
869
- onSelect: u
992
+ selectedEntryId: s,
993
+ selectedJogakName: g,
994
+ onSelect: w
870
995
  }
871
996
  ),
872
- /* @__PURE__ */ e("main", { className: "jogak:overflow-hidden jogak:min-h-0", children: n !== null ? /* @__PURE__ */ e(
873
- lo,
997
+ /* @__PURE__ */ e("main", { className: "jogak:overflow-hidden jogak:min-h-0", children: s !== null ? /* @__PURE__ */ e(
998
+ mo,
874
999
  {
875
- entryId: n,
876
- jogakName: s,
877
- overrideArgs: b,
878
- onArgChange: m,
1000
+ entryId: s,
1001
+ jogakName: g,
1002
+ overrideArgs: i,
1003
+ onArgChange: h,
879
1004
  onReset: x,
880
1005
  codeTheme: r,
881
- onResolveJogak: v
1006
+ onResolveJogak: N,
1007
+ previewIsolation: t
882
1008
  }
883
1009
  ) : /* @__PURE__ */ e("div", { className: "jogak:flex jogak:items-center jogak:justify-center jogak:h-full jogak:text-[var(--jogak-color-fg-subtle)]", children: "Select a component from the sidebar" }) })
884
1010
  ]
885
1011
  }
886
1012
  ) });
887
1013
  }
888
- function No() {
889
- const o = Y(), a = y(() => o.getAll(), [o]), r = y(() => o.getTree(), [o]), t = y(
890
- () => (g) => o.search(g),
1014
+ function Eo() {
1015
+ const o = T(), a = C(() => o.getAll(), [o]), r = C(() => o.getTree(), [o]), t = C(
1016
+ () => (l) => o.search(l),
891
1017
  [o]
892
1018
  );
893
1019
  return { entries: a, tree: r, search: t };
894
1020
  }
895
1021
  export {
896
- go as Actions,
897
- ro as Controls,
898
- vo as JogakApp,
899
- lo as Preview,
900
- K as Sidebar,
901
- No as useRegistry
1022
+ co as Actions,
1023
+ so as Controls,
1024
+ Oo as JogakApp,
1025
+ mo as Preview,
1026
+ eo as Sidebar,
1027
+ Eo as useRegistry
902
1028
  };