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

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,1219 +1,902 @@
1
- import { jsxs as c, jsx as n } from "react/jsx-runtime";
2
- import { useState as x, useEffect as v, useRef as V, useMemo as w, useCallback as R } from "react";
3
- import { defaultActionChannel as z, ComponentRegistry as U, defaultRegistry as F } from "@jogak/core";
4
- import { useRegistryMeta as _, useEntry as G, reactAdapter as j, JogakProvider as T, useRegistry as q } from "@jogak/react";
5
- import { themes as L, Highlight as Q } from "prism-react-renderer";
6
- function Y({
7
- selectedEntryId: e,
8
- selectedJogakName: t,
9
- onSelect: o
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) {
7
+ var a, r, t = "";
8
+ if (typeof o == "string" || typeof o == "number") t += o;
9
+ 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);
12
+ } else for (r in o) o[r] && (t && (t += " "), t += r);
13
+ return t;
14
+ }
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);
17
+ return t;
18
+ }
19
+ function K({
20
+ selectedEntryId: o,
21
+ selectedJogakName: a,
22
+ onSelect: r
10
23
  }) {
11
- const [i, d] = x(""), { metaTree: r, searchMeta: a } = _(), l = i.trim().length > 0 ? a(i) : null;
12
- return /* @__PURE__ */ c(
24
+ const [t, g] = f(""), { metaTree: n, searchMeta: k } = q(), s = t.trim().length > 0 ? k(t) : null;
25
+ return /* @__PURE__ */ j(
13
26
  "aside",
14
27
  {
15
28
  "data-testid": "sidebar",
16
- style: {
17
- borderRight: "1px solid #e5e7eb",
18
- height: "100%",
19
- overflow: "auto",
20
- display: "flex",
21
- flexDirection: "column"
22
- },
29
+ className: "jogak:flex jogak:flex-col jogak:h-full jogak:overflow-auto jogak:border-r jogak:border-[var(--jogak-color-border)]",
23
30
  children: [
24
- /* @__PURE__ */ n("div", { style: { padding: "12px", borderBottom: "1px solid #e5e7eb" }, children: /* @__PURE__ */ n(
31
+ /* @__PURE__ */ e("div", { className: "jogak:p-3 jogak:border-b jogak:border-[var(--jogak-color-border)]", children: /* @__PURE__ */ e(
25
32
  "input",
26
33
  {
27
34
  type: "search",
28
35
  placeholder: "Search components...",
29
- value: i,
30
- onChange: (s) => {
31
- d(s.target.value);
32
- },
33
- style: {
34
- width: "100%",
35
- padding: "6px 8px",
36
- border: "1px solid #d1d5db",
37
- borderRadius: 4
36
+ value: t,
37
+ onChange: (l) => {
38
+ g(l.target.value);
38
39
  },
40
+ 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)]",
39
41
  "aria-label": "Search components"
40
42
  }
41
43
  ) }),
42
- /* @__PURE__ */ n("nav", { style: { flex: 1, overflow: "auto", padding: "8px 0" }, children: l !== null ? /* @__PURE__ */ n(
43
- X,
44
+ /* @__PURE__ */ e("nav", { className: "jogak:flex-1 jogak:overflow-auto jogak:py-2", children: s !== null ? /* @__PURE__ */ e(
45
+ T,
44
46
  {
45
- metas: l,
46
- selectedEntryId: e,
47
- selectedJogakName: t,
48
- onSelect: o
47
+ metas: s,
48
+ selectedEntryId: o,
49
+ selectedJogakName: a,
50
+ onSelect: r
49
51
  }
50
- ) : /* @__PURE__ */ n(
51
- H,
52
+ ) : /* @__PURE__ */ e(
53
+ D,
52
54
  {
53
- node: r,
54
- selectedEntryId: e,
55
- selectedJogakName: t,
56
- onSelect: o
55
+ node: n,
56
+ selectedEntryId: o,
57
+ selectedJogakName: a,
58
+ onSelect: r
57
59
  }
58
60
  ) })
59
61
  ]
60
62
  }
61
63
  );
62
64
  }
63
- function X({
64
- metas: e,
65
- selectedEntryId: t,
66
- selectedJogakName: o,
67
- onSelect: i
65
+ function T({
66
+ metas: o,
67
+ selectedEntryId: a,
68
+ selectedJogakName: r,
69
+ onSelect: t
68
70
  }) {
69
- return e.length === 0 ? /* @__PURE__ */ n("p", { style: { padding: "0 12px", color: "#9ca3af", fontSize: 13 }, children: "No results" }) : /* @__PURE__ */ n("ul", { style: { listStyle: "none", margin: 0, padding: 0 }, children: e.map((d) => /* @__PURE__ */ n("li", { children: /* @__PURE__ */ n(
70
- D,
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,
71
73
  {
72
- meta: d,
73
- selectedEntryId: t,
74
- selectedJogakName: o,
75
- onSelect: i,
74
+ meta: g,
75
+ selectedEntryId: a,
76
+ selectedJogakName: r,
77
+ onSelect: t,
76
78
  indent: 0
77
79
  }
78
- ) }, d.id)) });
80
+ ) }, g.id)) });
79
81
  }
80
- function H({
81
- node: e,
82
- selectedEntryId: t,
83
- selectedJogakName: o,
84
- onSelect: i,
85
- depth: d = 0
82
+ function D({
83
+ node: o,
84
+ selectedEntryId: a,
85
+ selectedJogakName: r,
86
+ onSelect: t,
87
+ depth: g = 0
86
88
  }) {
87
- return /* @__PURE__ */ n(
89
+ return /* @__PURE__ */ e(
88
90
  "ul",
89
91
  {
90
- style: {
91
- listStyle: "none",
92
- margin: 0,
93
- padding: `0 0 0 ${d * 12}px`
94
- },
95
- children: Object.entries(e).map(([r, a]) => /* @__PURE__ */ n("li", { children: "id" in a ? /* @__PURE__ */ n(
96
- D,
92
+ 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,
97
96
  {
98
- meta: a,
99
- selectedEntryId: t,
100
- selectedJogakName: o,
101
- onSelect: i,
97
+ meta: k,
98
+ selectedEntryId: a,
99
+ selectedJogakName: r,
100
+ onSelect: t,
102
101
  indent: 0
103
102
  }
104
- ) : /* @__PURE__ */ n(
105
- Z,
103
+ ) : /* @__PURE__ */ e(
104
+ oo,
106
105
  {
107
- label: r,
108
- node: a,
109
- selectedEntryId: t,
110
- selectedJogakName: o,
111
- onSelect: i,
112
- depth: d + 1
106
+ label: n,
107
+ node: k,
108
+ selectedEntryId: a,
109
+ selectedJogakName: r,
110
+ onSelect: t,
111
+ depth: g + 1
113
112
  }
114
- ) }, r))
113
+ ) }, n))
115
114
  }
116
115
  );
117
116
  }
118
- function Z({
119
- label: e,
120
- node: t,
121
- selectedEntryId: o,
122
- selectedJogakName: i,
123
- onSelect: d,
124
- depth: r
117
+ function oo({
118
+ label: o,
119
+ node: a,
120
+ selectedEntryId: r,
121
+ selectedJogakName: t,
122
+ onSelect: g,
123
+ depth: n
125
124
  }) {
126
- const [a, l] = x(!0);
127
- return /* @__PURE__ */ c("div", { children: [
128
- /* @__PURE__ */ c(
125
+ const [k, s] = f(!0);
126
+ return /* @__PURE__ */ j("div", { children: [
127
+ /* @__PURE__ */ j(
129
128
  "button",
130
129
  {
131
130
  type: "button",
132
131
  onClick: () => {
133
- l((s) => !s);
134
- },
135
- style: {
136
- display: "flex",
137
- alignItems: "center",
138
- gap: 4,
139
- width: "100%",
140
- padding: "4px 12px",
141
- background: "none",
142
- border: "none",
143
- cursor: "pointer",
144
- fontSize: 12,
145
- fontWeight: 600,
146
- color: "#6b7280",
147
- textTransform: "uppercase",
148
- letterSpacing: "0.05em"
132
+ s((l) => !l);
149
133
  },
150
- "aria-expanded": a,
134
+ 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,
151
136
  children: [
152
- /* @__PURE__ */ n("span", { children: a ? "▾" : "▸" }),
153
- e
137
+ /* @__PURE__ */ e("span", { children: k ? "▾" : "▸" }),
138
+ o
154
139
  ]
155
140
  }
156
141
  ),
157
- a && /* @__PURE__ */ n(
158
- H,
142
+ k && /* @__PURE__ */ e(
143
+ D,
159
144
  {
160
- node: t,
161
- selectedEntryId: o,
162
- selectedJogakName: i,
163
- onSelect: d,
164
- depth: r
145
+ node: a,
146
+ selectedEntryId: r,
147
+ selectedJogakName: t,
148
+ onSelect: g,
149
+ depth: n
165
150
  }
166
151
  )
167
152
  ] });
168
153
  }
169
- function D({
170
- meta: e,
171
- selectedEntryId: t,
172
- selectedJogakName: o,
173
- onSelect: i,
174
- indent: d
154
+ function F({
155
+ meta: o,
156
+ selectedEntryId: a,
157
+ selectedJogakName: r,
158
+ onSelect: t,
159
+ indent: g
175
160
  }) {
176
- const r = e.id === t, [a, l] = x(r);
177
- v(() => {
178
- r && l(!0);
179
- }, [r]);
180
- const s = e.title.split("/").pop() ?? e.title, m = 16 + d * 12;
181
- return /* @__PURE__ */ c("div", { children: [
182
- /* @__PURE__ */ c(
161
+ const n = o.id === a, [k, s] = f(n);
162
+ w(() => {
163
+ n && s(!0);
164
+ }, [n]);
165
+ const l = o.title.split("/").pop() ?? o.title, b = 16 + g * 12;
166
+ return /* @__PURE__ */ j("div", { children: [
167
+ /* @__PURE__ */ j(
183
168
  "button",
184
169
  {
185
170
  type: "button",
186
171
  onClick: () => {
187
- if (r)
188
- l((p) => !p);
172
+ if (n)
173
+ s((i) => !i);
189
174
  else {
190
- l(!0);
191
- const p = e.jogakNames[0];
192
- p !== void 0 && i(e.id, p);
175
+ s(!0);
176
+ const i = o.jogakNames[0];
177
+ i !== void 0 && t(o.id, i);
193
178
  }
194
179
  },
195
- style: {
196
- display: "flex",
197
- alignItems: "center",
198
- gap: 6,
199
- width: "100%",
200
- padding: `5px 12px 5px ${m}px`,
201
- background: r ? "#eff6ff" : "none",
202
- border: "none",
203
- cursor: "pointer",
204
- fontSize: 13,
205
- color: r ? "#2563eb" : "#374151",
206
- fontWeight: r ? 500 : 400,
207
- textAlign: "left"
208
- },
209
- "aria-expanded": a,
180
+ className: h(
181
+ "jogak:flex jogak:items-center jogak:gap-1.5 jogak:w-full jogak:pr-3 jogak:py-[5px]",
182
+ "jogak:pl-[var(--jogak-entry-pl)]",
183
+ "jogak:border-none jogak:cursor-pointer jogak:text-left jogak:text-[13px]",
184
+ 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
+ style: { "--jogak-entry-pl": `${b}px` },
187
+ "aria-expanded": k,
210
188
  children: [
211
- /* @__PURE__ */ n("span", { style: { fontSize: 10, flexShrink: 0, lineHeight: 1 }, children: a ? "▾" : "▸" }),
212
- s
189
+ /* @__PURE__ */ e("span", { className: "jogak:text-[10px] jogak:shrink-0 jogak:leading-none", children: k ? "▾" : "▸" }),
190
+ l
213
191
  ]
214
192
  }
215
193
  ),
216
- a && /* @__PURE__ */ n("ul", { style: { listStyle: "none", margin: 0, padding: 0 }, children: e.jogakNames.map((p) => {
217
- const h = r && p === o;
218
- return /* @__PURE__ */ n("li", { children: /* @__PURE__ */ n(
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;
196
+ return /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
219
197
  "button",
220
198
  {
221
199
  type: "button",
222
200
  onClick: () => {
223
- i(e.id, p);
201
+ t(o.id, i);
224
202
  },
225
- style: {
226
- display: "block",
227
- width: "100%",
228
- textAlign: "left",
229
- padding: `4px 12px 4px ${m + 18}px`,
230
- background: h ? "#dbeafe" : "none",
231
- border: "none",
232
- cursor: "pointer",
233
- fontSize: 12,
234
- color: h ? "#1d4ed8" : "#6b7280",
235
- fontWeight: h ? 500 : 400
236
- },
237
- "aria-current": h ? "true" : void 0,
238
- children: p
203
+ className: h(
204
+ "jogak:block jogak:w-full jogak:text-left jogak:pr-3 jogak:py-1",
205
+ "jogak:pl-[var(--jogak-jogak-pl)]",
206
+ "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
+ ),
209
+ style: { "--jogak-jogak-pl": `${b + 18}px` },
210
+ "aria-current": u ? "true" : void 0,
211
+ children: i
239
212
  }
240
- ) }, p);
213
+ ) }, i);
241
214
  }) })
242
215
  ] });
243
216
  }
244
- function K(e, t) {
245
- const o = t == null ? void 0 : t.control, i = (t == null ? void 0 : t.action) !== void 0 && t.action !== !1, d = (t == null ? void 0 : t.type) === "function" || typeof e == "function";
246
- return i || d ? "action" : o === "boolean" || typeof e == "boolean" ? "boolean" : o === "number" || o === "range" || typeof e == "number" ? "number" : o === "select" || o === "radio" || (t == null ? void 0 : t.options) !== void 0 && t.options.length > 0 ? "select" : o === "text" || o === "color" || typeof e == "string" ? "text" : "json";
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";
247
220
  }
248
- function ee({ argKey: e, value: t, argType: o, onArgChange: i }) {
249
- switch (K(t, o)) {
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)) {
250
224
  case "boolean":
251
- return /* @__PURE__ */ n(
225
+ return /* @__PURE__ */ e(
252
226
  "input",
253
227
  {
254
228
  type: "checkbox",
255
- checked: t === !0,
256
- onChange: (r) => {
257
- i(e, r.target.checked);
229
+ checked: a === !0,
230
+ onChange: (n) => {
231
+ t(o, n.target.checked);
258
232
  },
259
- style: { cursor: "pointer", width: 16, height: 16, accentColor: "#2563eb" }
233
+ className: "jogak:cursor-pointer jogak:w-4 jogak:h-4 jogak:accent-[var(--jogak-color-accent)]"
260
234
  }
261
235
  );
262
236
  case "number":
263
- return /* @__PURE__ */ n(
237
+ return /* @__PURE__ */ e(
264
238
  "input",
265
239
  {
266
240
  type: "number",
267
- value: typeof t == "number" ? t : "",
268
- onChange: (r) => {
269
- i(e, r.target.valueAsNumber);
241
+ value: typeof a == "number" ? a : "",
242
+ onChange: (n) => {
243
+ t(o, n.target.valueAsNumber);
270
244
  },
271
- style: W
245
+ className: R
272
246
  }
273
247
  );
274
248
  case "select": {
275
- const r = (o == null ? void 0 : o.options) ?? [];
276
- return /* @__PURE__ */ n(
249
+ const n = (r == null ? void 0 : r.options) ?? [];
250
+ return /* @__PURE__ */ e(
277
251
  "select",
278
252
  {
279
- value: String(t ?? ""),
280
- onChange: (a) => {
281
- i(e, a.target.value);
253
+ value: String(a ?? ""),
254
+ onChange: (k) => {
255
+ t(o, k.target.value);
282
256
  },
283
- style: W,
284
- children: r.map((a) => /* @__PURE__ */ n("option", { value: String(a), children: String(a) }, String(a)))
257
+ className: R,
258
+ children: n.map((k) => /* @__PURE__ */ e("option", { value: String(k), children: String(k) }, String(k)))
285
259
  }
286
260
  );
287
261
  }
288
262
  case "text":
289
- return /* @__PURE__ */ n(
263
+ return /* @__PURE__ */ e(
290
264
  "input",
291
265
  {
292
266
  type: "text",
293
- value: typeof t == "string" ? t : String(t ?? ""),
294
- onChange: (r) => {
295
- i(e, r.target.value);
267
+ value: typeof a == "string" ? a : String(a ?? ""),
268
+ onChange: (n) => {
269
+ t(o, n.target.value);
296
270
  },
297
- style: W
271
+ className: R
298
272
  }
299
273
  );
300
274
  case "action":
301
- return /* @__PURE__ */ n(
302
- "span",
303
- {
304
- style: {
305
- display: "inline-block",
306
- padding: "2px 8px",
307
- fontSize: 11,
308
- fontWeight: 600,
309
- color: "#7c3aed",
310
- background: "#f5f3ff",
311
- border: "1px solid #ddd6fe",
312
- borderRadius: 4,
313
- fontFamily: "monospace"
314
- },
315
- children: "(action)"
316
- }
317
- );
275
+ return /* @__PURE__ */ e("span", { className: "jogak:inline-block jogak:px-2 jogak:py-0.5 jogak:text-[11px] jogak:font-semibold jogak:text-[var(--jogak-color-violet)] jogak:bg-[var(--jogak-color-violet-bg)] jogak:border jogak:border-[var(--jogak-color-violet-border)] jogak:rounded-[var(--jogak-radius-md)] jogak:font-[family-name:var(--jogak-font-mono)] jogak:leading-none", children: "(action)" });
318
276
  case "json":
319
- return /* @__PURE__ */ n("code", { style: { fontSize: 12, color: "#6b7280", fontFamily: "monospace" }, children: JSON.stringify(t) });
277
+ 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) });
320
278
  }
321
279
  }
322
- const W = {
323
- padding: "4px 8px",
324
- border: "1px solid #d1d5db",
325
- borderRadius: 4,
326
- fontSize: 13,
327
- width: "100%",
328
- maxWidth: 280
329
- }, A = {
330
- padding: "6px 20px",
331
- textAlign: "left",
332
- color: "#6b7280",
333
- fontWeight: 500,
334
- fontSize: 12,
335
- borderBottom: "1px solid #e5e7eb"
336
- }, B = {
337
- padding: "8px 20px",
338
- verticalAlign: "middle",
339
- borderBottom: "1px solid #f3f4f6"
340
- };
341
- function te({ args: e, argTypes: t, onArgChange: o }) {
342
- const d = Array.from(/* @__PURE__ */ new Set([...Object.keys(e), ...Object.keys(t)])).map((r) => [r, e[r]]);
343
- return /* @__PURE__ */ c("div", { style: { borderTop: "2px solid #e5e7eb" }, children: [
344
- /* @__PURE__ */ n(
345
- "div",
346
- {
347
- style: {
348
- padding: "6px 20px",
349
- fontSize: 11,
350
- fontWeight: 700,
351
- color: "#9ca3af",
352
- textTransform: "uppercase",
353
- letterSpacing: "0.08em",
354
- borderBottom: "1px solid #e5e7eb",
355
- background: "#f9fafb"
356
- },
357
- children: "Controls"
358
- }
359
- ),
360
- d.length === 0 ? /* @__PURE__ */ n("div", { style: { padding: "12px 20px", color: "#9ca3af", fontSize: 13 }, children: "No args defined" }) : /* @__PURE__ */ c("table", { style: { width: "100%", borderCollapse: "collapse", fontSize: 13 }, children: [
361
- /* @__PURE__ */ n("thead", { children: /* @__PURE__ */ c("tr", { children: [
362
- /* @__PURE__ */ n("th", { style: A, children: "Name" }),
363
- /* @__PURE__ */ n("th", { style: A, children: "Control" }),
364
- /* @__PURE__ */ n("th", { style: A, children: "Description" })
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: [
283
+ /* @__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" })
365
289
  ] }) }),
366
- /* @__PURE__ */ n("tbody", { children: d.map(([r, a]) => {
367
- const l = t[r];
368
- return /* @__PURE__ */ c("tr", { children: [
369
- /* @__PURE__ */ n(
290
+ /* @__PURE__ */ e("tbody", { children: g.map(([n, k]) => {
291
+ const s = a[n];
292
+ return /* @__PURE__ */ j("tr", { children: [
293
+ /* @__PURE__ */ e(
370
294
  "td",
371
295
  {
372
- style: {
373
- ...B,
374
- fontFamily: "monospace",
375
- fontSize: 12,
376
- color: "#374151",
377
- whiteSpace: "nowrap"
378
- },
379
- children: r
296
+ className: h(
297
+ $,
298
+ "jogak:font-[family-name:var(--jogak-font-mono)] jogak:text-[12px] jogak:text-[var(--jogak-color-fg)] jogak:whitespace-nowrap"
299
+ ),
300
+ children: n
380
301
  }
381
302
  ),
382
- /* @__PURE__ */ n("td", { style: B, children: /* @__PURE__ */ n(
383
- ee,
303
+ /* @__PURE__ */ e("td", { className: $, children: /* @__PURE__ */ e(
304
+ eo,
384
305
  {
385
- argKey: r,
386
- value: a,
387
- argType: l,
388
- onArgChange: o
306
+ argKey: n,
307
+ value: k,
308
+ argType: s,
309
+ onArgChange: r
389
310
  }
390
311
  ) }),
391
- /* @__PURE__ */ n("td", { style: { ...B, color: "#9ca3af" }, children: (l == null ? void 0 : l.description) ?? "" })
392
- ] }, r);
312
+ /* @__PURE__ */ e("td", { className: h($, "jogak:text-[var(--jogak-color-fg-subtle)]"), children: (s == null ? void 0 : s.description) ?? "" })
313
+ ] }, n);
393
314
  }) })
394
315
  ] })
395
316
  ] });
396
317
  }
397
- function ne(e) {
398
- if (e.length === 0) return "()";
318
+ function to(o) {
319
+ if (o.length === 0) return "()";
399
320
  try {
400
- return e.map((t) => {
401
- var o;
402
- if (t === null) return "null";
403
- if (t === void 0) return "undefined";
404
- if (typeof t == "function") return "[Function]";
405
- if (typeof t == "object") {
406
- const i = ((o = t.constructor) == null ? void 0 : o.name) ?? "Object";
407
- return i !== "Object" && i !== "Array" ? `[${i}]` : JSON.stringify(t);
321
+ return o.map((a) => {
322
+ var r;
323
+ if (a === null) return "null";
324
+ if (a === void 0) return "undefined";
325
+ if (typeof a == "function") return "[Function]";
326
+ if (typeof a == "object") {
327
+ const t = ((r = a.constructor) == null ? void 0 : r.name) ?? "Object";
328
+ return t !== "Object" && t !== "Array" ? `[${t}]` : JSON.stringify(a);
408
329
  }
409
- return JSON.stringify(t);
330
+ return JSON.stringify(a);
410
331
  }).join(", ");
411
332
  } catch {
412
333
  return "[unserializable]";
413
334
  }
414
335
  }
415
- function oe(e) {
416
- const t = new Date(e), o = t.getHours().toString().padStart(2, "0"), i = t.getMinutes().toString().padStart(2, "0"), d = t.getSeconds().toString().padStart(2, "0"), r = t.getMilliseconds().toString().padStart(3, "0");
417
- return `${o}:${i}:${d}.${r}`;
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}`;
418
339
  }
419
- function re() {
420
- const [e, t] = x(() => z.getLogs());
421
- return v(() => z.subscribe(t), []), /* @__PURE__ */ c("div", { style: { height: "100%", display: "flex", flexDirection: "column" }, children: [
422
- /* @__PURE__ */ c(
423
- "div",
424
- {
425
- style: {
426
- padding: "6px 20px",
427
- fontSize: 11,
428
- fontWeight: 700,
429
- color: "#9ca3af",
430
- textTransform: "uppercase",
431
- letterSpacing: "0.08em",
432
- borderBottom: "1px solid #e5e7eb",
433
- background: "#f9fafb",
434
- display: "flex",
435
- alignItems: "center",
436
- justifyContent: "space-between",
437
- flexShrink: 0
438
- },
439
- children: [
440
- /* @__PURE__ */ c("span", { children: [
441
- "Actions ",
442
- e.length > 0 && `(${e.length.toString()})`
443
- ] }),
444
- /* @__PURE__ */ n(
445
- "button",
446
- {
447
- type: "button",
448
- onClick: () => {
449
- z.clear();
450
- },
451
- disabled: e.length === 0,
452
- style: {
453
- fontSize: 10,
454
- fontWeight: 600,
455
- padding: "2px 8px",
456
- border: "1px solid #d1d5db",
457
- borderRadius: 3,
458
- background: "#fff",
459
- color: e.length === 0 ? "#9ca3af" : "#374151",
460
- cursor: e.length === 0 ? "default" : "pointer",
461
- textTransform: "none",
462
- letterSpacing: 0
463
- },
464
- children: "Clear"
465
- }
466
- )
467
- ]
468
- }
469
- ),
470
- /* @__PURE__ */ n("div", { style: { flex: 1, overflow: "auto" }, children: e.length === 0 ? /* @__PURE__ */ n(
471
- "div",
472
- {
473
- style: {
474
- padding: "12px 20px",
475
- color: "#9ca3af",
476
- fontSize: 13
477
- },
478
- children: "함수 prop이 호출되면 여기에 기록됩니다"
479
- }
480
- ) : /* @__PURE__ */ n("ul", { style: { listStyle: "none", margin: 0, padding: 0, fontFamily: "monospace", fontSize: 12 }, children: e.map((o) => /* @__PURE__ */ c(
340
+ function go() {
341
+ const [o, a] = f(() => S.getLogs());
342
+ w(() => S.subscribe(a), []);
343
+ 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: [
347
+ "Actions ",
348
+ o.length > 0 && `(${o.length.toString()})`
349
+ ] }),
350
+ /* @__PURE__ */ e(
351
+ "button",
352
+ {
353
+ type: "button",
354
+ onClick: () => {
355
+ S.clear();
356
+ },
357
+ disabled: r,
358
+ className: h(
359
+ "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
+ r ? "jogak:text-[var(--jogak-color-fg-subtle)] jogak:cursor-default" : "jogak:text-[var(--jogak-color-fg)] jogak:cursor-pointer"
361
+ ),
362
+ children: "Clear"
363
+ }
364
+ )
365
+ ] }),
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(
481
367
  "li",
482
368
  {
483
- style: {
484
- display: "flex",
485
- alignItems: "baseline",
486
- gap: 10,
487
- padding: "6px 20px",
488
- borderBottom: "1px solid #f3f4f6"
489
- },
369
+ 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)]",
490
370
  children: [
491
- /* @__PURE__ */ n("span", { style: { color: "#9ca3af", fontSize: 11, minWidth: 92 }, children: oe(o.timestamp) }),
492
- /* @__PURE__ */ n("span", { style: { color: "#7c3aed", fontWeight: 600 }, children: o.name }),
493
- /* @__PURE__ */ c("span", { style: { color: "#374151", wordBreak: "break-all", flex: 1 }, 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-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: [
494
374
  "(",
495
- ne(o.args),
375
+ to(t.args),
496
376
  ")"
497
377
  ] })
498
378
  ]
499
379
  },
500
- o.id
380
+ t.id
501
381
  )) }) })
502
382
  ] });
503
383
  }
504
- const N = {
384
+ const U = {
505
385
  mobile: 375,
506
386
  tablet: 768,
507
387
  desktop: "none"
508
- }, ie = {
388
+ }, so = {
509
389
  mobile: "Mobile",
510
390
  tablet: "Tablet",
511
391
  desktop: "Desktop"
512
- }, M = {
513
- white: { background: "#ffffff" },
514
- dark: { background: "#1f2937" },
392
+ }, O = {
393
+ white: {
394
+ "--jogak-canvas-bg": "#ffffff",
395
+ "--jogak-canvas-bg-image": "none",
396
+ "--jogak-canvas-bg-size": "auto",
397
+ "--jogak-canvas-bg-position": "0 0"
398
+ },
399
+ dark: {
400
+ "--jogak-canvas-bg": "#1f2937",
401
+ "--jogak-canvas-bg-image": "none",
402
+ "--jogak-canvas-bg-size": "auto",
403
+ "--jogak-canvas-bg-position": "0 0"
404
+ },
515
405
  transparent: {
516
- backgroundImage: [
517
- "linear-gradient(45deg, #e2e8f0 25%, transparent 25%)",
518
- "linear-gradient(-45deg, #e2e8f0 25%, transparent 25%)",
519
- "linear-gradient(45deg, transparent 75%, #e2e8f0 75%)",
520
- "linear-gradient(-45deg, transparent 75%, #e2e8f0 75%)"
521
- ].join(", "),
522
- backgroundSize: "16px 16px",
523
- backgroundPosition: "0 0, 0 8px, 8px -8px, -8px 0px",
524
- backgroundColor: "#ffffff"
406
+ "--jogak-canvas-bg": "#ffffff",
407
+ "--jogak-canvas-bg-image": "linear-gradient(45deg, #e2e8f0 25%, transparent 25%), linear-gradient(-45deg, #e2e8f0 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #e2e8f0 75%), linear-gradient(-45deg, transparent 75%, #e2e8f0 75%)",
408
+ "--jogak-canvas-bg-size": "16px 16px",
409
+ "--jogak-canvas-bg-position": "0 0, 0 8px, 8px -8px, -8px 0px"
525
410
  }
526
- }, I = 320;
527
- function de(e) {
528
- return L[e] ?? L.vsDark;
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;
529
414
  }
530
- function le({
531
- entryId: e,
532
- jogakName: t,
533
- overrideArgs: o,
534
- onArgChange: i,
535
- onReset: d,
536
- codeTheme: r,
537
- onResolveJogak: a
415
+ function lo({
416
+ entryId: o,
417
+ jogakName: a,
418
+ overrideArgs: r,
419
+ onArgChange: t,
420
+ onReset: g,
421
+ codeTheme: n,
422
+ onResolveJogak: k
538
423
  }) {
539
- const l = G(e), [s, m] = x("desktop"), [p, h] = x("white"), [S, b] = x("controls"), y = de(r);
540
- return l.status === "unknown" ? /* @__PURE__ */ c("div", { "data-testid": "preview-not-found", style: { padding: 24, color: "#ef4444" }, children: [
541
- "Entry not found: ",
542
- e
543
- ] }) : l.status === "error" ? /* @__PURE__ */ c(
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(
426
+ "div",
427
+ {
428
+ "data-testid": "preview-not-found",
429
+ className: "jogak:p-6 jogak:text-[var(--jogak-color-error)]",
430
+ children: [
431
+ "Entry not found: ",
432
+ o
433
+ ]
434
+ }
435
+ ) : s.status === "error" ? /* @__PURE__ */ j(
544
436
  "div",
545
437
  {
546
438
  "data-testid": "preview-error",
547
- style: {
548
- padding: 24,
549
- color: "#b91c1c",
550
- background: "#fef2f2",
551
- height: "100%",
552
- display: "flex",
553
- flexDirection: "column",
554
- gap: 12,
555
- alignItems: "flex-start"
556
- },
439
+ 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",
557
440
  children: [
558
- /* @__PURE__ */ c("div", { style: { fontWeight: 600 }, children: [
441
+ /* @__PURE__ */ j("div", { className: "jogak:font-semibold", children: [
559
442
  "Failed to load entry: ",
560
- e
443
+ o
561
444
  ] }),
562
- /* @__PURE__ */ n(
563
- "pre",
564
- {
565
- style: {
566
- margin: 0,
567
- padding: 12,
568
- background: "#fff",
569
- border: "1px solid #fecaca",
570
- borderRadius: 6,
571
- fontSize: 12,
572
- whiteSpace: "pre-wrap",
573
- maxWidth: "100%"
574
- },
575
- children: l.error.message
576
- }
577
- )
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 })
578
446
  ]
579
447
  }
580
- ) : l.status === "loading" ? /* @__PURE__ */ n(
581
- ae,
448
+ ) : s.status === "loading" ? /* @__PURE__ */ e(
449
+ jo,
582
450
  {
583
- meta: l.meta,
584
- jogakName: t,
585
- viewport: s,
586
- bgMode: p,
587
- onViewportChange: m,
588
- onBgModeChange: h
451
+ meta: s.meta,
452
+ jogakName: a,
453
+ viewport: l,
454
+ bgMode: i,
455
+ onViewportChange: b,
456
+ onBgModeChange: u
589
457
  }
590
- ) : /* @__PURE__ */ n(
591
- se,
458
+ ) : /* @__PURE__ */ e(
459
+ io,
592
460
  {
593
- entry: l.entry,
594
- jogakName: t,
595
- overrideArgs: o,
596
- onArgChange: i,
597
- onReset: d,
598
- onResolveJogak: a,
599
- viewport: s,
600
- bgMode: p,
601
- bottomTab: S,
602
- onViewportChange: m,
603
- onBgModeChange: h,
604
- onBottomTabChange: b,
605
- prismTheme: y
461
+ entry: s.entry,
462
+ jogakName: a,
463
+ overrideArgs: r,
464
+ 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
606
474
  }
607
475
  );
608
476
  }
609
- function ae({
610
- meta: e,
611
- jogakName: t,
612
- viewport: o,
613
- bgMode: i,
614
- onViewportChange: d,
615
- onBgModeChange: r
477
+ function jo({
478
+ meta: o,
479
+ jogakName: a,
480
+ viewport: r,
481
+ bgMode: t,
482
+ onViewportChange: g,
483
+ onBgModeChange: n
616
484
  }) {
617
- const a = t ?? e.jogakNames[0] ?? "...", l = N[o];
618
- return /* @__PURE__ */ c(
485
+ const k = a ?? o.jogakNames[0] ?? "...", s = U[r];
486
+ return /* @__PURE__ */ j(
619
487
  "div",
620
488
  {
621
489
  "data-testid": "preview-loading",
622
- style: { display: "flex", flexDirection: "column", height: "100%" },
490
+ className: "jogak:flex jogak:flex-col jogak:h-full",
623
491
  children: [
624
- /* @__PURE__ */ n(
625
- J,
492
+ /* @__PURE__ */ e(
493
+ W,
626
494
  {
627
- title: e.title,
628
- jogakName: a,
629
- viewport: o,
630
- bgMode: i,
631
- onViewportChange: d,
632
- onBgModeChange: r,
495
+ title: o.title,
496
+ jogakName: k,
497
+ viewport: r,
498
+ bgMode: t,
499
+ onViewportChange: g,
500
+ onBgModeChange: n,
633
501
  showReset: !1,
634
502
  onReset: () => {
635
503
  }
636
504
  }
637
505
  ),
638
- /* @__PURE__ */ n(
506
+ /* @__PURE__ */ e(
639
507
  "div",
640
508
  {
641
- style: {
642
- flex: 1,
643
- minHeight: I,
644
- overflow: "auto",
645
- ...M[i]
646
- },
647
- children: /* @__PURE__ */ n(
509
+ className: `jogak:flex-1 jogak:overflow-auto jogak:min-h-[320px] ${L}`,
510
+ style: O[t],
511
+ children: /* @__PURE__ */ e(
648
512
  "div",
649
513
  {
514
+ className: "jogak:mx-auto jogak:p-6 jogak:max-w-[var(--jogak-canvas-mw)]",
650
515
  style: {
651
- maxWidth: l === "none" ? "100%" : l,
652
- margin: "0 auto",
653
- padding: 24
516
+ "--jogak-canvas-mw": s === "none" ? "100%" : `${s}px`
654
517
  },
655
- children: /* @__PURE__ */ c(
656
- "div",
657
- {
658
- style: {
659
- border: "1px dashed #e5e7eb",
660
- borderRadius: 8,
661
- padding: 16,
662
- minHeight: I - 64,
663
- display: "flex",
664
- alignItems: "center",
665
- justifyContent: "center",
666
- color: "#9ca3af",
667
- fontSize: 13,
668
- background: "linear-gradient(90deg, rgba(229,231,235,0) 0%, rgba(229,231,235,0.45) 50%, rgba(229,231,235,0) 100%)",
669
- backgroundSize: "200% 100%",
670
- animation: "jogakSkeleton 1.4s ease-in-out infinite"
671
- },
672
- children: [
673
- "Loading ",
674
- e.title,
675
- "…"
676
- ]
677
- }
678
- )
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: [
519
+ "Loading ",
520
+ o.title,
521
+ "…"
522
+ ] })
679
523
  }
680
524
  )
681
525
  }
682
- ),
683
- /* @__PURE__ */ n("style", { children: "@keyframes jogakSkeleton { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }" })
526
+ )
684
527
  ]
685
528
  }
686
529
  );
687
530
  }
688
- function se({
689
- entry: e,
690
- jogakName: t,
691
- overrideArgs: o,
692
- onArgChange: i,
693
- onReset: d,
694
- onResolveJogak: r,
695
- viewport: a,
696
- bgMode: l,
697
- bottomTab: s,
698
- onViewportChange: m,
699
- onBgModeChange: p,
700
- onBottomTabChange: h,
701
- prismTheme: S
531
+ function io({
532
+ entry: o,
533
+ jogakName: a,
534
+ overrideArgs: r,
535
+ onArgChange: t,
536
+ onReset: g,
537
+ onResolveJogak: n,
538
+ viewport: k,
539
+ bgMode: s,
540
+ bottomTab: l,
541
+ onViewportChange: b,
542
+ onBgModeChange: i,
543
+ onBottomTabChange: u,
544
+ prismTheme: v
702
545
  }) {
703
- var $;
704
- const b = t ?? (($ = e.jogaks[0]) == null ? void 0 : $.name) ?? null;
705
- if (v(() => {
706
- t === null && b !== null && r !== void 0 && r(e.id, b);
707
- }, [t, b, e.id, r]), b === null)
708
- return /* @__PURE__ */ c("div", { style: { padding: 24, color: "#ef4444" }, children: [
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: [
709
552
  "Entry has no jogaks: ",
710
- e.id
553
+ o.id
711
554
  ] });
712
- const y = e.jogaks.find((k) => k.name === b);
713
- if (y === void 0)
714
- return /* @__PURE__ */ c("div", { style: { padding: 24, color: "#ef4444" }, children: [
555
+ const x = o.jogaks.find((N) => N.name === m);
556
+ if (x === void 0)
557
+ return /* @__PURE__ */ j("div", { className: "jogak:p-6 jogak:text-[var(--jogak-color-error)]", children: [
715
558
  "Jogak not found: ",
716
- b
559
+ m
717
560
  ] });
718
- const u = { ...y.args ?? {}, ...o }, g = {
719
- ...e.meta.argTypes ?? {},
720
- ...y.argTypes ?? {}
721
- }, P = Object.keys(o).length > 0, O = N[a];
722
- return /* @__PURE__ */ c("div", { style: { display: "flex", flexDirection: "column", height: "100%" }, children: [
723
- /* @__PURE__ */ n(
724
- J,
561
+ const d = { ...x.args ?? {}, ...r }, p = {
562
+ ...o.meta.argTypes ?? {},
563
+ ...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: [
566
+ /* @__PURE__ */ e(
567
+ W,
725
568
  {
726
- title: e.title,
727
- jogakName: y.name,
728
- viewport: a,
729
- bgMode: l,
730
- onViewportChange: m,
731
- onBgModeChange: p,
732
- showReset: P,
733
- onReset: d
569
+ title: o.title,
570
+ jogakName: x.name,
571
+ viewport: k,
572
+ bgMode: s,
573
+ onViewportChange: b,
574
+ onBgModeChange: i,
575
+ showReset: G,
576
+ onReset: g
734
577
  }
735
578
  ),
736
- /* @__PURE__ */ n(
579
+ /* @__PURE__ */ e(
737
580
  "div",
738
581
  {
739
- style: {
740
- flex: 1,
741
- minHeight: I,
742
- overflow: "auto",
743
- ...M[l]
744
- },
745
- children: /* @__PURE__ */ n(
582
+ className: `jogak:flex-1 jogak:overflow-auto jogak:min-h-[320px] ${L}`,
583
+ style: O[s],
584
+ children: /* @__PURE__ */ e(
746
585
  "div",
747
586
  {
748
587
  "data-jogak-content": !0,
588
+ className: "jogak:mx-auto jogak:p-6 jogak:max-w-[var(--jogak-canvas-mw)]",
749
589
  style: {
750
- maxWidth: O === "none" ? "100%" : O,
751
- margin: "0 auto",
752
- padding: 24
590
+ "--jogak-canvas-mw": E === "none" ? "100%" : `${E}px`
753
591
  },
754
- children: /* @__PURE__ */ n(
755
- ce,
592
+ children: /* @__PURE__ */ e(
593
+ co,
756
594
  {
757
- entry: e,
758
- args: u,
759
- source: e.source,
760
- theme: S
595
+ entry: o,
596
+ args: d,
597
+ source: o.source,
598
+ theme: v
761
599
  },
762
- `${e.id}/${y.name}`
600
+ `${o.id}/${x.name}`
763
601
  )
764
602
  }
765
603
  )
766
604
  }
767
605
  ),
768
- /* @__PURE__ */ c(
606
+ /* @__PURE__ */ j(
769
607
  "div",
770
608
  {
771
- style: {
772
- height: 260,
773
- flexShrink: 0,
774
- display: "flex",
775
- flexDirection: "column",
776
- borderTop: "2px solid #e5e7eb"
777
- },
609
+ "data-testid": "bottom-panel",
610
+ className: "jogak:h-[260px] jogak:shrink-0 jogak:flex jogak:flex-col jogak:border-t-2 jogak:border-[var(--jogak-color-border)]",
778
611
  children: [
779
- /* @__PURE__ */ n(
612
+ /* @__PURE__ */ e(
780
613
  "div",
781
614
  {
782
615
  role: "tablist",
783
- style: {
784
- display: "flex",
785
- gap: 4,
786
- padding: "4px 12px 0",
787
- background: "#fff",
788
- borderBottom: "1px solid #e5e7eb",
789
- flexShrink: 0
790
- },
791
- children: ["controls", "actions"].map((k) => {
792
- const C = s === k;
793
- return /* @__PURE__ */ n(
616
+ 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;
619
+ return /* @__PURE__ */ e(
794
620
  "button",
795
621
  {
796
622
  type: "button",
797
623
  role: "tab",
798
- "aria-selected": C,
624
+ "aria-selected": P,
799
625
  onClick: () => {
800
- h(k);
626
+ u(N);
801
627
  },
802
- style: {
803
- padding: "6px 14px",
804
- fontSize: 12,
805
- fontWeight: C ? 600 : 500,
806
- color: C ? "#111827" : "#6b7280",
807
- background: "transparent",
808
- border: "none",
809
- borderBottom: C ? "2px solid #2563eb" : "2px solid transparent",
810
- marginBottom: -1,
811
- cursor: "pointer",
812
- textTransform: "capitalize"
813
- },
814
- children: k
628
+ className: h(
629
+ "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"
631
+ ),
632
+ children: N
815
633
  },
816
- k
634
+ N
817
635
  );
818
636
  })
819
637
  }
820
638
  ),
821
- /* @__PURE__ */ n("div", { style: { flex: 1, minHeight: 0, overflow: "auto" }, children: s === "controls" ? /* @__PURE__ */ n(
822
- te,
639
+ /* @__PURE__ */ e("div", { className: "jogak:flex-1 jogak:min-h-0 jogak:overflow-auto", children: l === "controls" ? /* @__PURE__ */ e(
640
+ ro,
823
641
  {
824
- args: u,
825
- argTypes: g,
826
- onArgChange: i
642
+ args: d,
643
+ argTypes: p,
644
+ onArgChange: t
827
645
  }
828
- ) : /* @__PURE__ */ n(re, {}) })
646
+ ) : /* @__PURE__ */ e(go, {}) })
829
647
  ]
830
648
  }
831
649
  )
832
650
  ] });
833
651
  }
834
- function J({
835
- title: e,
836
- jogakName: t,
837
- viewport: o,
838
- bgMode: i,
839
- onViewportChange: d,
840
- onBgModeChange: r,
841
- showReset: a,
842
- onReset: l
652
+ function W({
653
+ title: o,
654
+ jogakName: a,
655
+ viewport: r,
656
+ bgMode: t,
657
+ onViewportChange: g,
658
+ onBgModeChange: n,
659
+ showReset: k,
660
+ onReset: s
843
661
  }) {
844
- return /* @__PURE__ */ c(
845
- "div",
846
- {
847
- style: {
848
- display: "flex",
849
- alignItems: "center",
850
- gap: 10,
851
- padding: "7px 14px",
852
- borderBottom: "1px solid #e5e7eb",
853
- background: "#fff",
854
- flexShrink: 0
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: [
664
+ /* @__PURE__ */ e("span", { className: "jogak:text-[var(--jogak-color-fg-subtle)]", children: o }),
665
+ /* @__PURE__ */ e("span", { className: "jogak:text-[var(--jogak-color-border-strong)] jogak:mx-1.5 jogak:leading-none", children: "/" }),
666
+ /* @__PURE__ */ e("span", { className: "jogak:text-[var(--jogak-color-fg-strong)] jogak:font-semibold", children: a })
667
+ ] }),
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(
669
+ "button",
670
+ {
671
+ type: "button",
672
+ onClick: () => {
673
+ g(l);
674
+ },
675
+ "aria-pressed": r === l,
676
+ className: h(
677
+ "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"
679
+ ),
680
+ children: so[l]
855
681
  },
856
- children: [
857
- /* @__PURE__ */ c("div", { style: { flex: 1, fontSize: 13 }, children: [
858
- /* @__PURE__ */ n("span", { style: { color: "#9ca3af" }, children: e }),
859
- /* @__PURE__ */ n("span", { style: { color: "#d1d5db", margin: "0 6px" }, children: "/" }),
860
- /* @__PURE__ */ n("span", { style: { color: "#111827", fontWeight: 600 }, children: t })
861
- ] }),
862
- /* @__PURE__ */ n(
863
- "div",
864
- {
865
- style: {
866
- display: "flex",
867
- gap: 2,
868
- background: "#f3f4f6",
869
- borderRadius: 6,
870
- padding: 2
871
- },
872
- children: ["mobile", "tablet", "desktop"].map((s) => /* @__PURE__ */ n(
873
- "button",
874
- {
875
- type: "button",
876
- onClick: () => {
877
- d(s);
878
- },
879
- "aria-pressed": o === s,
880
- style: {
881
- padding: "3px 9px",
882
- fontSize: 12,
883
- border: "none",
884
- borderRadius: 4,
885
- cursor: "pointer",
886
- background: o === s ? "#fff" : "transparent",
887
- color: o === s ? "#111827" : "#6b7280",
888
- fontWeight: o === s ? 600 : 400,
889
- boxShadow: o === s ? "0 1px 2px rgba(0,0,0,0.08)" : "none",
890
- transition: "all 0.1s"
891
- },
892
- children: ie[s]
893
- },
894
- s
895
- ))
896
- }
682
+ l
683
+ )) }),
684
+ /* @__PURE__ */ e("div", { className: "jogak:flex jogak:gap-1 jogak:items-center", children: ["white", "dark", "transparent"].map((l) => /* @__PURE__ */ e(
685
+ "button",
686
+ {
687
+ type: "button",
688
+ onClick: () => {
689
+ n(l);
690
+ },
691
+ "aria-pressed": t === l,
692
+ "aria-label": `${l} background`,
693
+ className: h(
694
+ "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)]"
897
697
  ),
898
- /* @__PURE__ */ n("div", { style: { display: "flex", gap: 4, alignItems: "center" }, children: ["white", "dark", "transparent"].map((s) => /* @__PURE__ */ n(
899
- "button",
900
- {
901
- type: "button",
902
- onClick: () => {
903
- r(s);
904
- },
905
- "aria-pressed": i === s,
906
- "aria-label": `${s} background`,
907
- style: {
908
- width: 20,
909
- height: 20,
910
- borderRadius: 4,
911
- border: i === s ? "2px solid #2563eb" : "2px solid #d1d5db",
912
- cursor: "pointer",
913
- padding: 0,
914
- flexShrink: 0,
915
- ...M[s]
916
- }
917
- },
918
- s
919
- )) }),
920
- a && /* @__PURE__ */ n(
921
- "button",
922
- {
923
- type: "button",
924
- onClick: l,
925
- style: {
926
- padding: "3px 10px",
927
- fontSize: 12,
928
- border: "1px solid #d1d5db",
929
- borderRadius: 4,
930
- background: "#fff",
931
- cursor: "pointer",
932
- color: "#374151"
933
- },
934
- children: "Reset"
935
- }
936
- )
937
- ]
938
- }
939
- );
698
+ style: O[l]
699
+ },
700
+ l
701
+ )) }),
702
+ k && /* @__PURE__ */ e(
703
+ "button",
704
+ {
705
+ type: "button",
706
+ onClick: s,
707
+ 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
+ children: "Reset"
709
+ }
710
+ )
711
+ ] });
940
712
  }
941
- function ce({ entry: e, args: t, source: o, theme: i }) {
942
- const d = V(null), [r, a] = x(!1);
943
- return v(() => {
944
- const l = d.current;
945
- if (l !== null)
946
- return j.render(e, t, l), () => {
947
- j.unmount(l);
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);
948
720
  };
949
- }, [e]), v(() => {
950
- const l = d.current;
951
- l !== null && j.render(e, t, l);
952
- }, [e, t]), /* @__PURE__ */ c("div", { children: [
953
- /* @__PURE__ */ c("div", { style: { position: "relative" }, children: [
954
- /* @__PURE__ */ n(
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(
955
727
  "div",
956
728
  {
957
- ref: d,
729
+ ref: g,
958
730
  "data-testid": "preview-content",
959
- style: {
960
- border: "1px dashed #e5e7eb",
961
- borderRadius: 8,
962
- padding: 16,
963
- paddingBottom: 36
964
- }
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"
965
732
  }
966
733
  ),
967
- /* @__PURE__ */ n(
734
+ /* @__PURE__ */ e(
968
735
  "button",
969
736
  {
970
737
  type: "button",
971
738
  onClick: () => {
972
- a((l) => !l);
973
- },
974
- "aria-pressed": r,
975
- "aria-label": r ? "Hide source code" : "Show source code",
976
- style: {
977
- position: "absolute",
978
- bottom: 8,
979
- right: 8,
980
- padding: "4px 9px",
981
- fontSize: 11,
982
- fontFamily: "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",
983
- fontWeight: 600,
984
- letterSpacing: "0.02em",
985
- background: r ? "#2563eb" : "#1e293b",
986
- color: "#fff",
987
- border: "none",
988
- borderRadius: 5,
989
- cursor: "pointer",
990
- boxShadow: "0 1px 4px rgba(0,0,0,0.2)",
991
- transition: "background 0.15s"
739
+ k((s) => !s);
992
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
+ ),
993
750
  children: "</>"
994
751
  }
995
752
  )
996
753
  ] }),
997
- r && /* @__PURE__ */ n(
998
- "div",
999
- {
1000
- style: {
1001
- marginTop: 8,
1002
- borderRadius: 8,
1003
- overflow: "hidden",
1004
- height: 320,
1005
- boxShadow: "0 0 0 1px rgba(0,0,0,0.08), 0 4px 16px rgba(0,0,0,0.12)"
1006
- },
1007
- children: /* @__PURE__ */ n(pe, { source: o, theme: i })
1008
- }
1009
- )
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 }) })
1010
755
  ] });
1011
756
  }
1012
- function pe({ source: e, theme: t }) {
1013
- const [o, i] = x(!1), d = t.plain.backgroundColor ?? "#1e293b";
1014
- return e === void 0 ? /* @__PURE__ */ n(
757
+ function po({ source: o, theme: a }) {
758
+ const [r, t] = f(!1), g = a.plain.backgroundColor ?? "#1e293b";
759
+ return o === void 0 ? /* @__PURE__ */ e(
1015
760
  "div",
1016
761
  {
1017
- style: {
1018
- height: "100%",
1019
- display: "flex",
1020
- alignItems: "center",
1021
- justifyContent: "center",
1022
- background: d,
1023
- color: "#94a3b8",
1024
- fontSize: 13
1025
- },
762
+ 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 },
1026
764
  children: "Source not available"
1027
765
  }
1028
- ) : /* @__PURE__ */ c("div", { style: { position: "relative", height: "100%" }, children: [
1029
- /* @__PURE__ */ n(
766
+ ) : /* @__PURE__ */ j("div", { className: "jogak:relative jogak:h-full", children: [
767
+ /* @__PURE__ */ e(
1030
768
  "button",
1031
769
  {
1032
770
  type: "button",
1033
771
  onClick: () => {
1034
- navigator.clipboard.writeText(e).then(() => {
1035
- i(!0), setTimeout(() => {
1036
- i(!1);
772
+ navigator.clipboard.writeText(o).then(() => {
773
+ t(!0), setTimeout(() => {
774
+ t(!1);
1037
775
  }, 2e3);
1038
776
  });
1039
777
  },
1040
- style: {
1041
- position: "absolute",
1042
- top: 10,
1043
- right: 12,
1044
- zIndex: 1,
1045
- padding: "3px 9px",
1046
- fontSize: 11,
1047
- background: "rgba(255,255,255,0.1)",
1048
- color: "#e2e8f0",
1049
- border: "1px solid rgba(255,255,255,0.18)",
1050
- borderRadius: 4,
1051
- cursor: "pointer"
1052
- },
1053
- children: o ? "✓ Copied" : "Copy"
778
+ className: "jogak:absolute jogak:top-[10px] jogak:right-3 jogak:z-[1] jogak:px-[9px] jogak:py-[3px] jogak:text-[11px] jogak:bg-[rgba(255,255,255,0.1)] jogak:text-[#e2e8f0] jogak:border jogak:border-[rgba(255,255,255,0.18)] jogak:rounded-[var(--jogak-radius-md)] jogak:cursor-pointer jogak:leading-none",
779
+ children: r ? "✓ Copied" : "Copy"
1054
780
  }
1055
781
  ),
1056
- /* @__PURE__ */ n(Q, { code: e.trim(), language: "tsx", theme: t, children: ({ style: a, tokens: l, getLineProps: s, getTokenProps: m }) => /* @__PURE__ */ n(
782
+ /* @__PURE__ */ e(Z, { code: o.trim(), language: "tsx", theme: a, children: ({ style: k, tokens: s, getLineProps: l, getTokenProps: b }) => /* @__PURE__ */ e(
1057
783
  "pre",
1058
784
  {
1059
- style: {
1060
- ...a,
1061
- margin: 0,
1062
- padding: "12px 0",
1063
- fontSize: 12.5,
1064
- lineHeight: 1.7,
1065
- fontFamily: "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",
1066
- height: "100%",
1067
- boxSizing: "border-box",
1068
- overflow: "auto"
1069
- },
1070
- children: l.map((p, h) => /* @__PURE__ */ c(
785
+ 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(
1071
788
  "div",
1072
789
  {
1073
- ...s({ line: p }),
1074
- style: {
1075
- ...s({ line: p }).style,
1076
- display: "flex",
1077
- paddingRight: 24
1078
- },
790
+ ...l({ line: i }),
791
+ className: "jogak:flex jogak:pr-6",
792
+ style: l({ line: i }).style,
1079
793
  children: [
1080
- /* @__PURE__ */ n(
1081
- "span",
1082
- {
1083
- style: {
1084
- userSelect: "none",
1085
- minWidth: 40,
1086
- paddingLeft: 14,
1087
- paddingRight: 14,
1088
- textAlign: "right",
1089
- color: "rgba(148,163,184,0.45)",
1090
- flexShrink: 0
1091
- },
1092
- children: h + 1
1093
- }
1094
- ),
1095
- /* @__PURE__ */ n("span", { children: p.map((S, b) => /* @__PURE__ */ n("span", { ...m({ token: S }) }, b)) })
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)) })
1096
796
  ]
1097
797
  },
1098
- h
798
+ u
1099
799
  ))
1100
800
  }
1101
801
  ) })
1102
802
  ] });
1103
803
  }
1104
- function E() {
804
+ function M() {
1105
805
  if (typeof window > "u") return null;
1106
- const e = new URLSearchParams(window.location.search), t = e.get("entry");
1107
- if (t === null) return null;
1108
- const o = e.get("jogak");
1109
- return { entryId: t, jogakName: o };
806
+ const o = new URLSearchParams(window.location.search), a = o.get("entry");
807
+ if (a === null) return null;
808
+ const r = o.get("jogak");
809
+ return { entryId: a, jogakName: r };
1110
810
  }
1111
- function fe(e, t) {
1112
- const o = new URLSearchParams();
1113
- o.set("entry", e), o.set("jogak", t), window.history.pushState({}, "", `?${o.toString()}`);
811
+ function uo(o, a) {
812
+ const r = new URLSearchParams();
813
+ r.set("entry", o), r.set("jogak", a), window.history.pushState({}, "", `?${r.toString()}`);
1114
814
  }
1115
- function me({
1116
- entries: e,
1117
- metas: t,
1118
- codeTheme: o = "vsDark"
815
+ function vo({
816
+ entries: o,
817
+ metas: a,
818
+ codeTheme: r = "vsDark"
1119
819
  } = {}) {
1120
- const i = w(() => {
1121
- if (e !== void 0) {
1122
- t !== void 0 && console.warn(
820
+ const t = y(() => {
821
+ if (o !== void 0) {
822
+ a !== void 0 && console.warn(
1123
823
  "[jogak] JogakApp received both `entries` and `metas` — `entries` (eager) takes precedence."
1124
824
  );
1125
- const f = new U();
1126
- for (const u of e) f.register(u);
1127
- return f;
825
+ const c = new I();
826
+ for (const d of o) c.register(d);
827
+ return c;
1128
828
  }
1129
- if (t !== void 0)
1130
- for (const f of t) F.registerMeta(f);
1131
- return F;
1132
- }, [e, t]), d = w(() => E(), []), [r, a] = x(
1133
- (d == null ? void 0 : d.entryId) ?? null
1134
- ), [l, s] = x(
1135
- (d == null ? void 0 : d.jogakName) ?? null
1136
- ), [m, p] = x({});
1137
- v(() => {
1138
- const f = () => {
1139
- const u = E();
1140
- u !== null ? (a(u.entryId), s(u.jogakName), p({})) : (a(null), s(null));
829
+ 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));
1141
841
  };
1142
- return window.addEventListener("popstate", f), () => {
1143
- window.removeEventListener("popstate", f);
842
+ return window.addEventListener("popstate", c), () => {
843
+ window.removeEventListener("popstate", c);
1144
844
  };
1145
845
  }, []);
1146
- const h = R((f, u) => {
1147
- a(f), s(u), p({}), fe(f, u);
1148
- }, []), S = R((f, u) => {
1149
- if (a((g) => g === f ? f : g), s((g) => g ?? u), typeof window < "u") {
1150
- const g = new URLSearchParams(window.location.search);
1151
- g.get("entry") === f && g.get("jogak") === null && (g.set("jogak", u), window.history.replaceState({}, "", `?${g.toString()}`));
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()}`));
1152
852
  }
1153
- }, []), b = R((f, u) => {
1154
- p((g) => ({ ...g, [f]: u }));
1155
- }, []), y = R(() => {
1156
- p({});
853
+ }, []), m = C((c, d) => {
854
+ i((p) => ({ ...p, [c]: d }));
855
+ }, []), x = C(() => {
856
+ i({});
1157
857
  }, []);
1158
- return /* @__PURE__ */ n(T, { registry: i, children: /* @__PURE__ */ c(
858
+ return /* @__PURE__ */ e(X, { registry: t, children: /* @__PURE__ */ j(
1159
859
  "div",
1160
860
  {
1161
861
  "data-jogak-shell": !0,
1162
- style: {
1163
- display: "grid",
1164
- gridTemplateColumns: "260px 1fr",
1165
- height: "100dvh",
1166
- overflow: "hidden"
1167
- },
862
+ className: "jogak:grid jogak:grid-cols-[260px_1fr] jogak:h-dvh jogak:overflow-hidden",
1168
863
  children: [
1169
- /* @__PURE__ */ n(
1170
- Y,
864
+ /* @__PURE__ */ e(
865
+ K,
1171
866
  {
1172
- selectedEntryId: r,
1173
- selectedJogakName: l,
1174
- onSelect: h
867
+ selectedEntryId: n,
868
+ selectedJogakName: s,
869
+ onSelect: u
1175
870
  }
1176
871
  ),
1177
- /* @__PURE__ */ n("main", { style: { overflow: "hidden", minHeight: 0 }, children: r !== null ? /* @__PURE__ */ n(
1178
- le,
872
+ /* @__PURE__ */ e("main", { className: "jogak:overflow-hidden jogak:min-h-0", children: n !== null ? /* @__PURE__ */ e(
873
+ lo,
1179
874
  {
1180
- entryId: r,
1181
- jogakName: l,
1182
- overrideArgs: m,
1183
- onArgChange: b,
1184
- onReset: y,
1185
- codeTheme: o,
1186
- onResolveJogak: S
875
+ entryId: n,
876
+ jogakName: s,
877
+ overrideArgs: b,
878
+ onArgChange: m,
879
+ onReset: x,
880
+ codeTheme: r,
881
+ onResolveJogak: v
1187
882
  }
1188
- ) : /* @__PURE__ */ n(
1189
- "div",
1190
- {
1191
- style: {
1192
- display: "flex",
1193
- alignItems: "center",
1194
- justifyContent: "center",
1195
- height: "100%",
1196
- color: "#9ca3af"
1197
- },
1198
- children: "Select a component from the sidebar"
1199
- }
1200
- ) })
883
+ ) : /* @__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" }) })
1201
884
  ]
1202
885
  }
1203
886
  ) });
1204
887
  }
1205
- function ye() {
1206
- const e = q(), t = w(() => e.getAll(), [e]), o = w(() => e.getTree(), [e]), i = w(
1207
- () => (d) => e.search(d),
1208
- [e]
888
+ function No() {
889
+ const o = Y(), a = y(() => o.getAll(), [o]), r = y(() => o.getTree(), [o]), t = y(
890
+ () => (g) => o.search(g),
891
+ [o]
1209
892
  );
1210
- return { entries: t, tree: o, search: i };
893
+ return { entries: a, tree: r, search: t };
1211
894
  }
1212
895
  export {
1213
- re as Actions,
1214
- te as Controls,
1215
- me as JogakApp,
1216
- le as Preview,
1217
- Y as Sidebar,
1218
- ye as useRegistry
896
+ go as Actions,
897
+ ro as Controls,
898
+ vo as JogakApp,
899
+ lo as Preview,
900
+ K as Sidebar,
901
+ No as useRegistry
1219
902
  };