@jogak/ui 0.1.0-alpha.11 → 0.1.0-alpha.14.1
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/CHANGELOG.md +15 -0
- package/dist/index.cjs +6 -6
- package/dist/index.mjs +650 -529
- package/dist/lib/adapter-for.d.ts +17 -0
- package/package.json +2 -2
- package/src/app/preview-frame.tsx +21 -4
- package/src/components/Controls/index.tsx +36 -0
- package/src/components/Preview/format-usage.ts +4 -1
- package/src/components/Preview/index.tsx +66 -10
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,21 @@ All notable changes to Jogak packages are documented here. The repository follow
|
|
|
5
5
|
|
|
6
6
|
Version numbers apply to all packages in the workspace (synchronized release).
|
|
7
7
|
|
|
8
|
+
## [0.1.0-alpha.14.1] — 2026-05-11
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **`adapterFor()` dispatch 라우터** (`src/lib/adapter-for.ts`): framework별 어댑터를 dynamic import + Map 캐시로 lazy 로드. 단위 테스트 14건.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- **Preview / preview-frame의 hardcoded `reactAdapter` 제거**: 11개 호출을 `adapterFor(entry.meta.framework ?? 'react')`로 교체. React-only 사용자는 vue/svelte 모듈을 받지 않음.
|
|
17
|
+
- **Preview iframe-aware**: `previewIsolation === 'iframe'`일 때 `useEntry` skipHydrate로 chrome scope에서 component import를 건너뛰고 synthetic entry로 IframeMount에 위임.
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- **`format-usage`의 `component=null` 처리**: iframe isolation 모드 synthetic entry는 component=null. `resolveComponentName`이 title 마지막 segment fallback으로 직행.
|
|
22
|
+
|
|
8
23
|
## [0.1.0-alpha.10.3] — 2026-05-11
|
|
9
24
|
|
|
10
25
|
### Fixed
|
package/dist/index.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),i=require("react"),C=require("@jogak/core"),h=require("@jogak/core/renderers/react"),E=require("prism-react-renderer"),X=require("react-dom");function B(o){var e,t,r="";if(typeof o=="string"||typeof o=="number")r+=o;else if(typeof o=="object")if(Array.isArray(o)){var g=o.length;for(e=0;e<g;e++)o[e]&&(t=B(o[e]))&&(r&&(r+=" "),r+=t)}else for(t in o)o[t]&&(r&&(r+=" "),r+=t);return r}function w(){for(var o,e,t=0,r="",g=arguments.length;t<g;t++)(o=arguments[t])&&(e=B(o))&&(r&&(r+=" "),r+=e);return r}function W({selectedEntryId:o,selectedJogakName:e,onSelect:t}){const[r,g]=i.useState(""),{metaTree:n,searchMeta:s}=h.useRegistryMeta(),l=r.trim().length>0?s(r):null;return a.jsxs("aside",{"data-testid":"sidebar",className:"jogak:flex jogak:flex-col jogak:h-full jogak:overflow-auto jogak:border-r jogak:border-[var(--jogak-color-border)]",children:[a.jsx("div",{className:"jogak:p-3 jogak:border-b jogak:border-[var(--jogak-color-border)]",children:a.jsx("input",{type:"search",placeholder:"Search components...",value:r,onChange:c=>{g(c.target.value)},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)]","aria-label":"Search components"})}),a.jsx("nav",{className:"jogak:flex-1 jogak:overflow-auto jogak:py-2",children:l!==null?a.jsx(Y,{metas:l,selectedEntryId:o,selectedJogakName:e,onSelect:t}):a.jsx(D,{node:n,selectedEntryId:o,selectedJogakName:e,onSelect:t})})]})}function Y({metas:o,selectedEntryId:e,selectedJogakName:t,onSelect:r}){return o.length===0?a.jsx("p",{className:"jogak:px-3 jogak:text-[var(--jogak-color-fg-subtle)] jogak:text-[13px]",children:"No results"}):a.jsx("ul",{className:"jogak:list-none jogak:m-0 jogak:p-0",children:o.map(g=>a.jsx("li",{children:a.jsx(z,{meta:g,selectedEntryId:e,selectedJogakName:t,onSelect:r,indent:0})},g.id))})}function D({node:o,selectedEntryId:e,selectedJogakName:t,onSelect:r,depth:g=0}){return a.jsx("ul",{className:"jogak:list-none jogak:m-0 jogak:pr-0 jogak:py-0 jogak:pl-[var(--jogak-tree-pl)]",style:{"--jogak-tree-pl":`${g*12}px`},children:Object.entries(o).map(([n,s])=>a.jsx("li",{children:"id"in s?a.jsx(z,{meta:s,selectedEntryId:e,selectedJogakName:t,onSelect:r,indent:0}):a.jsx(Z,{label:n,node:s,selectedEntryId:e,selectedJogakName:t,onSelect:r,depth:g+1})},n))})}function Z({label:o,node:e,selectedEntryId:t,selectedJogakName:r,onSelect:g,depth:n}){const[s,l]=i.useState(!0);return a.jsxs("div",{children:[a.jsxs("button",{type:"button",onClick:()=>{l(c=>!c)},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","aria-expanded":s,children:[a.jsx("span",{children:s?"▾":"▸"}),o]}),s&&a.jsx(D,{node:e,selectedEntryId:t,selectedJogakName:r,onSelect:g,depth:n})]})}function z({meta:o,selectedEntryId:e,selectedJogakName:t,onSelect:r,indent:g}){const n=o.id===e,[s,l]=i.useState(n);i.useEffect(()=>{n&&l(!0)},[n]);const c=o.title.split("/").pop()??o.title,d=16+g*12;return a.jsxs("div",{children:[a.jsxs("button",{type:"button",onClick:()=>{if(n)l(j=>!j);else{l(!0);const j=o.jogakNames[0];j!==void 0&&r(o.id,j)}},className:w("jogak:flex jogak:items-center jogak:gap-1.5 jogak:w-full jogak:pr-3 jogak:py-[5px]","jogak:pl-[var(--jogak-entry-pl)]","jogak:border-none jogak:cursor-pointer jogak:text-left jogak:text-[13px]",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"),style:{"--jogak-entry-pl":`${d}px`},"aria-expanded":s,children:[a.jsx("span",{className:"jogak:text-[10px] jogak:shrink-0 jogak:leading-none",children:s?"▾":"▸"}),c]}),s&&a.jsx("ul",{className:"jogak:list-none jogak:m-0 jogak:p-0",children:o.jogakNames.map(j=>{const k=n&&j===t;return a.jsx("li",{children:a.jsx("button",{type:"button",onClick:()=>{r(o.id,j)},className:w("jogak:block jogak:w-full jogak:text-left jogak:pr-3 jogak:py-1","jogak:pl-[var(--jogak-jogak-pl)]","jogak:border-none jogak:cursor-pointer jogak:text-[12px]",k?"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"),style:{"--jogak-jogak-pl":`${d+18}px`},"aria-current":k?"true":void 0,children:j})},j)})})]})}function K(o,e){const t=e==null?void 0:e.control,r=(e==null?void 0:e.action)!==void 0&&e.action!==!1,g=(e==null?void 0:e.type)==="function"||typeof o=="function";return r||g?"action":t==="boolean"||typeof o=="boolean"?"boolean":t==="number"||t==="range"||typeof o=="number"?"number":t==="select"||t==="radio"||(e==null?void 0:e.options)!==void 0&&e.options.length>0?"select":t==="text"||t==="color"||typeof o=="string"?"text":"json"}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]",A="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)]";function T({argKey:o,value:e,argType:t,onArgChange:r}){switch(K(e,t)){case"boolean":return a.jsx("input",{type:"checkbox",checked:e===!0,onChange:n=>{r(o,n.target.checked)},className:"jogak:cursor-pointer jogak:w-4 jogak:h-4 jogak:accent-[var(--jogak-color-accent)]"});case"number":return a.jsx("input",{type:"number",value:typeof e=="number"?e:"",onChange:n=>{r(o,n.target.valueAsNumber)},className:R});case"select":{const n=(t==null?void 0:t.options)??[];return a.jsx("select",{value:String(e??""),onChange:s=>{r(o,s.target.value)},className:R,children:n.map(s=>a.jsx("option",{value:String(s),children:String(s)},String(s)))})}case"text":return a.jsx("input",{type:"text",value:typeof e=="string"?e:String(e??""),onChange:n=>{r(o,n.target.value)},className:R});case"action":return a.jsx("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)"});case"json":return a.jsx("code",{className:"jogak:text-[12px] jogak:text-[var(--jogak-color-fg-muted)] jogak:font-[family-name:var(--jogak-font-mono)]",children:JSON.stringify(e)})}}function H({args:o,argTypes:e,onArgChange:t}){const g=Array.from(new Set([...Object.keys(o),...Object.keys(e)])).map(n=>[n,o[n]]);return a.jsxs("div",{className:"jogak:border-t-2 jogak:border-[var(--jogak-color-border)]",children:[a.jsx("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"}),g.length===0?a.jsx("div",{className:"jogak:px-5 jogak:py-3 jogak:text-[var(--jogak-color-fg-subtle)] jogak:text-[13px]",children:"No args defined"}):a.jsxs("table",{className:"jogak:w-full jogak:border-collapse jogak:text-[13px]",children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{className:A,children:"Name"}),a.jsx("th",{className:A,children:"Control"}),a.jsx("th",{className:A,children:"Description"})]})}),a.jsx("tbody",{children:g.map(([n,s])=>{const l=e[n];return a.jsxs("tr",{children:[a.jsx("td",{className:w(_,"jogak:font-[family-name:var(--jogak-font-mono)] jogak:text-[12px] jogak:text-[var(--jogak-color-fg)] jogak:whitespace-nowrap"),children:n}),a.jsx("td",{className:_,children:a.jsx(T,{argKey:n,value:s,argType:l,onArgChange:t})}),a.jsx("td",{className:w(_,"jogak:text-[var(--jogak-color-fg-subtle)]"),children:(l==null?void 0:l.description)??""})]},n)})})]})]})}function oo(o){if(o.length===0)return"()";try{return o.map(e=>{var t;if(e===null)return"null";if(e===void 0)return"undefined";if(typeof e=="function")return"[Function]";if(typeof e=="object"){const r=((t=e.constructor)==null?void 0:t.name)??"Object";return r!=="Object"&&r!=="Array"?`[${r}]`:JSON.stringify(e)}return JSON.stringify(e)}).join(", ")}catch{return"[unserializable]"}}function eo(o){const e=new Date(o),t=e.getHours().toString().padStart(2,"0"),r=e.getMinutes().toString().padStart(2,"0"),g=e.getSeconds().toString().padStart(2,"0"),n=e.getMilliseconds().toString().padStart(3,"0");return`${t}:${r}:${g}.${n}`}function F(){const[o,e]=i.useState(()=>C.defaultActionChannel.getLogs());i.useEffect(()=>C.defaultActionChannel.subscribe(e),[]);const t=o.length===0;return a.jsxs("div",{className:"jogak:h-full jogak:flex jogak:flex-col",children:[a.jsxs("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:[a.jsxs("span",{children:["Actions ",o.length>0&&`(${o.length.toString()})`]}),a.jsx("button",{type:"button",onClick:()=>{C.defaultActionChannel.clear()},disabled:t,className:w("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",t?"jogak:text-[var(--jogak-color-fg-subtle)] jogak:cursor-default":"jogak:text-[var(--jogak-color-fg)] jogak:cursor-pointer"),children:"Clear"})]}),a.jsx("div",{className:"jogak:flex-1 jogak:overflow-auto",children:t?a.jsx("div",{className:"jogak:px-5 jogak:py-3 jogak:text-[var(--jogak-color-fg-subtle)] jogak:text-[13px] jogak:leading-none",children:"함수 prop이 호출되면 여기에 기록됩니다"}):a.jsx("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(r=>a.jsxs("li",{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)]",children:[a.jsx("span",{className:"jogak:text-[var(--jogak-color-fg-subtle)] jogak:text-[11px] jogak:min-w-[92px]",children:eo(r.timestamp)}),a.jsx("span",{className:"jogak:text-[var(--jogak-color-violet)] jogak:font-semibold",children:r.name}),a.jsxs("span",{className:"jogak:text-[var(--jogak-color-fg)] jogak:break-all jogak:flex-1",children:["(",oo(r.args),")"]})]},r.id))})})]})}function ao({children:o,className:e,style:t,"data-testid":r}){const g=i.useRef(null),[n,s]=i.useState(null);return i.useEffect(()=>{const l=g.current;if(l===null)return;const c=l.shadowRoot??l.attachShadow({mode:"open"});s(c)},[]),a.jsx("div",{ref:g,className:e,"data-testid":r,style:t,children:n!==null?X.createPortal(o,n):null})}function to({entry:o,args:e,userPreviewUrl:t,previewEntryPath:r,className:g,"data-testid":n}){const s=i.useRef(null),[l,c]=i.useState(!1),d=t!==""?`${t}${r}`:"/preview-frame.html";return i.useEffect(()=>{const j=k=>{const p=s.current;if(p===null||k.source!==p.contentWindow)return;const f=k.data;f==null||typeof f!="object"||f.type==="jogak:ready"&&c(!0)};return window.addEventListener("message",j),()=>{window.removeEventListener("message",j)}},[]),i.useEffect(()=>{var k;if(!l)return;const j=s.current;j!==null&&((k=j.contentWindow)==null||k.postMessage({type:"jogak:setProps",entryId:o.id,args:e},"*"))},[l,o,e]),i.useEffect(()=>{const j=s.current;return()=>{j!==null&&queueMicrotask(()=>{var k;(k=j.contentWindow)==null||k.postMessage({type:"jogak:unmount"},"*")})}},[]),a.jsx("iframe",{ref:s,src:d,title:"Preview",className:g,"data-testid":n})}const ro=60;function no(o,e){const t=so(o),{children:r,restProps:g}=go(e),n=Object.entries(g).filter(([,k])=>k!==void 0).map(([k,p])=>lo(k,p)),s=jo(r),l=s!==null,c=n.length===0?"":" "+n.join(" "),d=l?`<${t}${c}>${s??""}</${t}>`:`<${t}${c} />`;if(d.length<=ro&&!d.includes(`
|
|
2
|
-
`))return d;const
|
|
3
|
-
`+
|
|
1
|
+
"use strict";var oo=Object.create;var z=Object.defineProperty;var eo=Object.getOwnPropertyDescriptor;var ao=Object.getOwnPropertyNames;var to=Object.getPrototypeOf,ro=Object.prototype.hasOwnProperty;var no=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of ao(e))!ro.call(o,n)&&n!==t&&z(o,n,{get:()=>e[n],enumerable:!(r=eo(e,n))||r.enumerable});return o};var $=(o,e,t)=>(t=o!=null?oo(to(o)):{},no(e||!o||!o.__esModule?z(t,"default",{value:o,enumerable:!0}):t,o));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),j=require("react"),S=require("@jogak/core"),E=require("@jogak/core/renderers/react"),L=require("prism-react-renderer"),so=require("react-dom");function F(o){var e,t,r="";if(typeof o=="string"||typeof o=="number")r+=o;else if(typeof o=="object")if(Array.isArray(o)){var n=o.length;for(e=0;e<n;e++)o[e]&&(t=F(o[e]))&&(r&&(r+=" "),r+=t)}else for(t in o)o[t]&&(r&&(r+=" "),r+=t);return r}function h(){for(var o,e,t=0,r="",n=arguments.length;t<n;t++)(o=arguments[t])&&(e=F(o))&&(r&&(r+=" "),r+=e);return r}function U({selectedEntryId:o,selectedJogakName:e,onSelect:t}){const[r,n]=j.useState(""),{metaTree:g,searchMeta:s}=E.useRegistryMeta(),l=r.trim().length>0?s(r):null;return a.jsxs("aside",{"data-testid":"sidebar",className:"jogak:flex jogak:flex-col jogak:h-full jogak:overflow-auto jogak:border-r jogak:border-[var(--jogak-color-border)]",children:[a.jsx("div",{className:"jogak:p-3 jogak:border-b jogak:border-[var(--jogak-color-border)]",children:a.jsx("input",{type:"search",placeholder:"Search components...",value:r,onChange:i=>{n(i.target.value)},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)]","aria-label":"Search components"})}),a.jsx("nav",{className:"jogak:flex-1 jogak:overflow-auto jogak:py-2",children:l!==null?a.jsx(go,{metas:l,selectedEntryId:o,selectedJogakName:e,onSelect:t}):a.jsx(G,{node:g,selectedEntryId:o,selectedJogakName:e,onSelect:t})})]})}function go({metas:o,selectedEntryId:e,selectedJogakName:t,onSelect:r}){return o.length===0?a.jsx("p",{className:"jogak:px-3 jogak:text-[var(--jogak-color-fg-subtle)] jogak:text-[13px]",children:"No results"}):a.jsx("ul",{className:"jogak:list-none jogak:m-0 jogak:p-0",children:o.map(n=>a.jsx("li",{children:a.jsx(I,{meta:n,selectedEntryId:e,selectedJogakName:t,onSelect:r,indent:0})},n.id))})}function G({node:o,selectedEntryId:e,selectedJogakName:t,onSelect:r,depth:n=0}){return a.jsx("ul",{className:"jogak:list-none jogak:m-0 jogak:pr-0 jogak:py-0 jogak:pl-[var(--jogak-tree-pl)]",style:{"--jogak-tree-pl":`${n*12}px`},children:Object.entries(o).map(([g,s])=>a.jsx("li",{children:"id"in s?a.jsx(I,{meta:s,selectedEntryId:e,selectedJogakName:t,onSelect:r,indent:0}):a.jsx(lo,{label:g,node:s,selectedEntryId:e,selectedJogakName:t,onSelect:r,depth:n+1})},g))})}function lo({label:o,node:e,selectedEntryId:t,selectedJogakName:r,onSelect:n,depth:g}){const[s,l]=j.useState(!0);return a.jsxs("div",{children:[a.jsxs("button",{type:"button",onClick:()=>{l(i=>!i)},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","aria-expanded":s,children:[a.jsx("span",{children:s?"▾":"▸"}),o]}),s&&a.jsx(G,{node:e,selectedEntryId:t,selectedJogakName:r,onSelect:n,depth:g})]})}function I({meta:o,selectedEntryId:e,selectedJogakName:t,onSelect:r,indent:n}){const g=o.id===e,[s,l]=j.useState(g);j.useEffect(()=>{g&&l(!0)},[g]);const i=o.title.split("/").pop()??o.title,d=16+n*12;return a.jsxs("div",{children:[a.jsxs("button",{type:"button",onClick:()=>{if(g)l(c=>!c);else{l(!0);const c=o.jogakNames[0];c!==void 0&&r(o.id,c)}},className:h("jogak:flex jogak:items-center jogak:gap-1.5 jogak:w-full jogak:pr-3 jogak:py-[5px]","jogak:pl-[var(--jogak-entry-pl)]","jogak:border-none jogak:cursor-pointer jogak:text-left jogak:text-[13px]",g?"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"),style:{"--jogak-entry-pl":`${d}px`},"aria-expanded":s,children:[a.jsx("span",{className:"jogak:text-[10px] jogak:shrink-0 jogak:leading-none",children:s?"▾":"▸"}),i]}),s&&a.jsx("ul",{className:"jogak:list-none jogak:m-0 jogak:p-0",children:o.jogakNames.map(c=>{const k=g&&c===t;return a.jsx("li",{children:a.jsx("button",{type:"button",onClick:()=>{r(o.id,c)},className:h("jogak:block jogak:w-full jogak:text-left jogak:pr-3 jogak:py-1","jogak:pl-[var(--jogak-jogak-pl)]","jogak:border-none jogak:cursor-pointer jogak:text-[12px]",k?"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"),style:{"--jogak-jogak-pl":`${d+18}px`},"aria-current":k?"true":void 0,children:c})},c)})})]})}const B=new Map,M=new Map;async function A(o){const e=o,t=B.get(e);if(t!==void 0)return t;const r=M.get(e);if(r!==void 0)return r;const n=io(e);M.set(e,n);try{const g=await n;return B.set(e,g),g}finally{M.delete(e)}}async function io(o){switch(o){case"react":case"next":return(await import("@jogak/core/renderers/react")).reactAdapter;case"vue":return(await import("@jogak/core/renderers/vue")).vueAdapter;case"svelte":return(await import("@jogak/core/renderers/svelte")).svelteAdapter;case"web-components":{const e=await import("@jogak/core/renderers/web-components");return ko(e.defineJogakElement)}default:throw new Error(`[jogak/ui] Unknown framework: '${o}'. Expected one of: 'react' | 'next' | 'vue' | 'svelte' | 'web-components'.`)}}function jo(o){return`jogak-${o.toLowerCase().replace(/[^a-z0-9]+/gu,"-").replace(/^-+|-+$/gu,"")||"entry"}`}function co(o){return o==null?null:typeof o=="string"?o:typeof o=="number"||typeof o=="boolean"?String(o):typeof o=="function"||typeof o=="object"?null:String(o)}function ko(o){return{framework:"web-components",render(e,t,r){const n=r,g=jo(e.id);o(g,e);let s=n._jogakWCElement;(s===void 0||n._jogakWCTagName!==g)&&(s!==void 0&&s.remove(),s=document.createElement(g),r.replaceChildren(s),n._jogakWCElement=s,n._jogakWCTagName=g);for(const[l,i]of Object.entries(t)){const d=co(i);d===null?s.removeAttribute(l):s.setAttribute(l,d)}},unmount(e){const t=e,r=t._jogakWCElement;r!==void 0&&r.remove(),delete t._jogakWCElement,delete t._jogakWCTagName}}}function uo(o,e){const t=e==null?void 0:e.control,r=(e==null?void 0:e.action)!==void 0&&e.action!==!1,n=(e==null?void 0:e.type)==="function"||typeof o=="function";return r||n?"action":t==="boolean"||typeof o=="boolean"?"boolean":t==="number"||t==="range"||typeof o=="number"?"number":t==="select"||t==="radio"||(e==null?void 0:e.options)!==void 0&&e.options.length>0?"select":t==="text"||t==="color"||typeof o=="string"?"text":"json"}const O="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]",R="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)]";function fo({argKey:o,value:e,argType:t,onArgChange:r}){switch(uo(e,t)){case"boolean":return a.jsx("input",{type:"checkbox",checked:e===!0,onChange:g=>{r(o,g.target.checked)},className:"jogak:cursor-pointer jogak:w-4 jogak:h-4 jogak:accent-[var(--jogak-color-accent)]"});case"number":return a.jsx("input",{type:"number",value:typeof e=="number"?e:"",onChange:g=>{r(o,g.target.valueAsNumber)},className:O});case"select":{const g=(t==null?void 0:t.options)??[];return a.jsx("select",{value:String(e??""),onChange:s=>{r(o,s.target.value)},className:O,children:g.map(s=>a.jsx("option",{value:String(s),children:String(s)},String(s)))})}case"text":return a.jsx("input",{type:"text",value:typeof e=="string"?e:String(e??""),onChange:g=>{r(o,g.target.value)},className:O});case"action":return a.jsx("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)"});case"json":return a.jsx("code",{className:"jogak:text-[12px] jogak:text-[var(--jogak-color-fg-muted)] jogak:font-[family-name:var(--jogak-font-mono)]",children:JSON.stringify(e)})}}function Q({args:o,argTypes:e,onArgChange:t}){const n=Array.from(new Set([...Object.keys(o),...Object.keys(e)])).map(s=>[s,o[s]]),g=n.some(([s])=>{var l;return((l=e[s])==null?void 0:l.defaultValue)!==void 0});return a.jsxs("div",{className:"jogak:border-t-2 jogak:border-[var(--jogak-color-border)]",children:[a.jsx("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"}),n.length===0?a.jsx("div",{className:"jogak:px-5 jogak:py-3 jogak:text-[var(--jogak-color-fg-subtle)] jogak:text-[13px]",children:"No args defined"}):a.jsxs("table",{className:"jogak:w-full jogak:border-collapse jogak:text-[13px]",children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{className:R,children:"Name"}),a.jsx("th",{className:R,children:"Control"}),g&&a.jsx("th",{className:R,children:"Default"}),a.jsx("th",{className:R,children:"Description"})]})}),a.jsx("tbody",{children:n.map(([s,l])=>{const i=e[s];return a.jsxs("tr",{children:[a.jsx("td",{className:h(_,"jogak:font-[family-name:var(--jogak-font-mono)] jogak:text-[12px] jogak:text-[var(--jogak-color-fg)] jogak:whitespace-nowrap"),children:s}),a.jsx("td",{className:_,children:a.jsx(fo,{argKey:s,value:l,argType:i,onArgChange:t})}),g&&a.jsx("td",{className:h(_,"jogak:font-[family-name:var(--jogak-font-mono)] jogak:text-[12px] jogak:text-[var(--jogak-color-fg-muted)] jogak:whitespace-nowrap"),children:(i==null?void 0:i.defaultValue)!==void 0?po(i.defaultValue):""}),a.jsx("td",{className:h(_,"jogak:text-[var(--jogak-color-fg-subtle)]"),children:(i==null?void 0:i.description)??""})]},s)})})]})]})}function po(o){if(typeof o=="string")return`'${o}'`;if(typeof o=="number"||typeof o=="boolean"||o===null)return String(o);try{return JSON.stringify(o)}catch{return String(o)}}function mo(o){if(o.length===0)return"()";try{return o.map(e=>{var t;if(e===null)return"null";if(e===void 0)return"undefined";if(typeof e=="function")return"[Function]";if(typeof e=="object"){const r=((t=e.constructor)==null?void 0:t.name)??"Object";return r!=="Object"&&r!=="Array"?`[${r}]`:JSON.stringify(e)}return JSON.stringify(e)}).join(", ")}catch{return"[unserializable]"}}function xo(o){const e=new Date(o),t=e.getHours().toString().padStart(2,"0"),r=e.getMinutes().toString().padStart(2,"0"),n=e.getSeconds().toString().padStart(2,"0"),g=e.getMilliseconds().toString().padStart(3,"0");return`${t}:${r}:${n}.${g}`}function X(){const[o,e]=j.useState(()=>S.defaultActionChannel.getLogs());j.useEffect(()=>S.defaultActionChannel.subscribe(e),[]);const t=o.length===0;return a.jsxs("div",{className:"jogak:h-full jogak:flex jogak:flex-col",children:[a.jsxs("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:[a.jsxs("span",{children:["Actions ",o.length>0&&`(${o.length.toString()})`]}),a.jsx("button",{type:"button",onClick:()=>{S.defaultActionChannel.clear()},disabled:t,className:h("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",t?"jogak:text-[var(--jogak-color-fg-subtle)] jogak:cursor-default":"jogak:text-[var(--jogak-color-fg)] jogak:cursor-pointer"),children:"Clear"})]}),a.jsx("div",{className:"jogak:flex-1 jogak:overflow-auto",children:t?a.jsx("div",{className:"jogak:px-5 jogak:py-3 jogak:text-[var(--jogak-color-fg-subtle)] jogak:text-[13px] jogak:leading-none",children:"함수 prop이 호출되면 여기에 기록됩니다"}):a.jsx("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(r=>a.jsxs("li",{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)]",children:[a.jsx("span",{className:"jogak:text-[var(--jogak-color-fg-subtle)] jogak:text-[11px] jogak:min-w-[92px]",children:xo(r.timestamp)}),a.jsx("span",{className:"jogak:text-[var(--jogak-color-violet)] jogak:font-semibold",children:r.name}),a.jsxs("span",{className:"jogak:text-[var(--jogak-color-fg)] jogak:break-all jogak:flex-1",children:["(",mo(r.args),")"]})]},r.id))})})]})}function bo({children:o,className:e,style:t,"data-testid":r}){const n=j.useRef(null),[g,s]=j.useState(null);return j.useEffect(()=>{const l=n.current;if(l===null)return;const i=l.shadowRoot??l.attachShadow({mode:"open"});s(i)},[]),a.jsx("div",{ref:n,className:e,"data-testid":r,style:t,children:g!==null?so.createPortal(o,g):null})}function ho({entry:o,args:e,userPreviewUrl:t,previewEntryPath:r,className:n,"data-testid":g}){const s=j.useRef(null),[l,i]=j.useState(!1),d=t!==""?`${t}${r}`:"/preview-frame.html";return j.useEffect(()=>{const c=k=>{const f=s.current;if(f===null||k.source!==f.contentWindow)return;const p=k.data;p==null||typeof p!="object"||p.type==="jogak:ready"&&i(!0)};return window.addEventListener("message",c),()=>{window.removeEventListener("message",c)}},[]),j.useEffect(()=>{var k;if(!l)return;const c=s.current;c!==null&&((k=c.contentWindow)==null||k.postMessage({type:"jogak:setProps",entryId:o.id,args:e},"*"))},[l,o,e]),j.useEffect(()=>{const c=s.current;return()=>{c!==null&&queueMicrotask(()=>{var k;(k=c.contentWindow)==null||k.postMessage({type:"jogak:unmount"},"*")})}},[]),a.jsx("iframe",{ref:s,src:d,title:"Preview",className:n,"data-testid":g})}const vo=60;function wo(o,e){const t=No(o),{children:r,restProps:n}=yo(e),g=Object.entries(n).filter(([,k])=>k!==void 0).map(([k,f])=>Co(k,f)),s=So(r),l=s!==null,i=g.length===0?"":" "+g.join(" "),d=l?`<${t}${i}>${s??""}</${t}>`:`<${t}${i} />`;if(d.length<=vo&&!d.includes(`
|
|
2
|
+
`))return d;const c=g.length===0?"":`
|
|
3
|
+
`+g.join(`
|
|
4
4
|
`)+`
|
|
5
5
|
`;if(l){const k=(s??"").split(`
|
|
6
|
-
`).map(
|
|
7
|
-
`);return`<${t}${
|
|
6
|
+
`).map(f=>` ${f}`).join(`
|
|
7
|
+
`);return`<${t}${c}>
|
|
8
8
|
${k}
|
|
9
|
-
</${t}>`}return`<${t}${j}/>`}function so(o){const e=o.meta.component;if(e!==void 0){if(typeof e.displayName=="string"&&e.displayName.length>0)return e.displayName;if(typeof e.name=="string"&&e.name.length>0)return e.name}const t=o.title.split("/").pop();return t!==void 0&&t.length>0?t:"Component"}function go(o){const{children:e,...t}=o;return{children:e,restProps:t}}function jo(o){return o==null?null:typeof o=="string"?o.length===0?null:o:typeof o=="number"||typeof o=="bigint"?`{${o.toString()}}`:typeof o=="boolean"?null:`{${I(o)}}`}function lo(o,e){if(e===!0)return o;if(e===!1)return`${o}={false}`;if(e===null)return`${o}={null}`;if(typeof e=="string"){const t=e.replace(/"/gu,""");return`${o}="${t}"`}return typeof e=="number"||typeof e=="bigint"?`${o}={${e.toString()}}`:typeof e=="function"?`${o}={fn}`:`${o}={${I(e)}}`}function I(o){try{return JSON.stringify(o)}catch{return String(o)}}const U={mobile:375,tablet:768,desktop:"none"},io={mobile:"Mobile",tablet:"Tablet",desktop:"Desktop"},P={white:{"--jogak-canvas-bg":"#ffffff","--jogak-canvas-bg-image":"none","--jogak-canvas-bg-size":"auto","--jogak-canvas-bg-position":"0 0"},dark:{"--jogak-canvas-bg":"#1f2937","--jogak-canvas-bg-image":"none","--jogak-canvas-bg-size":"auto","--jogak-canvas-bg-position":"0 0"},transparent:{"--jogak-canvas-bg":"#ffffff","--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%)","--jogak-canvas-bg-size":"16px 16px","--jogak-canvas-bg-position":"0 0, 0 8px, 8px -8px, -8px 0px"}},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)]";function co(o){return E.themes[o]??E.themes.vsDark}function G({entryId:o,jogakName:e,overrideArgs:t,onArgChange:r,onReset:g,codeTheme:n,onResolveJogak:s,previewIsolation:l="iframe",userPreviewUrl:c="",previewEntryPath:d="/__jogak_preview__/index.html"}){const j=h.useEntry(o),[k,p]=i.useState("desktop"),[f,y]=i.useState("white"),[N,b]=i.useState("controls"),v=co(n);return j.status==="unknown"?a.jsxs("div",{"data-testid":"preview-not-found",className:"jogak:p-6 jogak:text-[var(--jogak-color-error)]",children:["Entry not found: ",o]}):j.status==="error"?a.jsxs("div",{"data-testid":"preview-error",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",children:[a.jsxs("div",{className:"jogak:font-semibold",children:["Failed to load entry: ",o]}),a.jsx("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:j.error.message})]}):j.status==="loading"?a.jsx(ko,{meta:j.meta,jogakName:e,viewport:k,bgMode:f,onViewportChange:p,onBgModeChange:y}):a.jsx(uo,{entry:j.entry,jogakName:e,overrideArgs:t,onArgChange:r,onReset:g,onResolveJogak:s,viewport:k,bgMode:f,bottomTab:N,onViewportChange:p,onBgModeChange:y,onBottomTabChange:b,prismTheme:v,previewIsolation:l,userPreviewUrl:c,previewEntryPath:d})}function ko({meta:o,jogakName:e,viewport:t,bgMode:r,onViewportChange:g,onBgModeChange:n}){const s=e??o.jogakNames[0]??"...",l=U[t];return a.jsxs("div",{"data-testid":"preview-loading",className:"jogak:flex jogak:flex-col jogak:h-full",children:[a.jsx(Q,{title:o.title,jogakName:s,viewport:t,bgMode:r,onViewportChange:g,onBgModeChange:n,showReset:!1,onReset:()=>{}}),a.jsx("div",{className:`jogak:flex-1 jogak:overflow-auto jogak:min-h-[320px] ${L}`,style:P[r],children:a.jsx("div",{className:"jogak:mx-auto jogak:p-6 jogak:max-w-[var(--jogak-canvas-mw)]",style:{"--jogak-canvas-mw":l==="none"?"100%":`${l}px`},children:a.jsxs("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:["Loading ",o.title,"…"]})})})]})}function uo({entry:o,jogakName:e,overrideArgs:t,onArgChange:r,onReset:g,onResolveJogak:n,viewport:s,bgMode:l,bottomTab:c,onViewportChange:d,onBgModeChange:j,onBottomTabChange:k,prismTheme:p,previewIsolation:f,userPreviewUrl:y,previewEntryPath:N}){var J;const b=e??((J=o.jogaks[0])==null?void 0:J.name)??null;if(i.useEffect(()=>{e===null&&b!==null&&n!==void 0&&n(o.id,b)},[e,b,o.id,n]),b===null)return a.jsxs("div",{className:"jogak:p-6 jogak:text-[var(--jogak-color-error)]",children:["Entry has no jogaks: ",o.id]});const v=o.jogaks.find(S=>S.name===b);if(v===void 0)return a.jsxs("div",{className:"jogak:p-6 jogak:text-[var(--jogak-color-error)]",children:["Jogak not found: ",b]});const $={...v.args??{},...t},u={...o.meta.argTypes??{},...v.argTypes??{}},x=Object.keys(t).length>0,m=U[s];return a.jsxs("div",{className:"jogak:flex jogak:flex-col jogak:h-full",children:[a.jsx(Q,{title:o.title,jogakName:v.name,viewport:s,bgMode:l,onViewportChange:d,onBgModeChange:j,showReset:x,onReset:g}),a.jsx("div",{className:`jogak:flex-1 jogak:overflow-auto jogak:min-h-[320px] ${L}`,style:P[l],children:a.jsx("div",{"data-jogak-content":!0,className:"jogak:mx-auto jogak:p-6 jogak:max-w-[var(--jogak-canvas-mw)]",style:{"--jogak-canvas-mw":m==="none"?"100%":`${m}px`},children:a.jsx(po,{entry:o,args:$,theme:p,previewIsolation:f,userPreviewUrl:y,previewEntryPath:N},`${o.id}/${v.name}`)})}),a.jsxs("div",{"data-testid":"bottom-panel",className:"jogak:h-[260px] jogak:shrink-0 jogak:flex jogak:flex-col jogak:border-t-2 jogak:border-[var(--jogak-color-border)]",children:[a.jsx("div",{role:"tablist",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",children:["controls","actions"].map(S=>{const q=c===S;return a.jsx("button",{type:"button",role:"tab","aria-selected":q,onClick:()=>{k(S)},className:w("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",q?"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"),children:S},S)})}),a.jsx("div",{className:"jogak:flex-1 jogak:min-h-0 jogak:overflow-auto",children:c==="controls"?a.jsx(H,{args:$,argTypes:u,onArgChange:r}):a.jsx(F,{})})]})]})}function Q({title:o,jogakName:e,viewport:t,bgMode:r,onViewportChange:g,onBgModeChange:n,showReset:s,onReset:l}){return a.jsxs("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:[a.jsxs("div",{className:"jogak:flex-1 jogak:text-[13px]",children:[a.jsx("span",{className:"jogak:text-[var(--jogak-color-fg-subtle)]",children:o}),a.jsx("span",{className:"jogak:text-[var(--jogak-color-border-strong)] jogak:mx-1.5 jogak:leading-none",children:"/"}),a.jsx("span",{className:"jogak:text-[var(--jogak-color-fg-strong)] jogak:font-semibold",children:e})]}),a.jsx("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(c=>a.jsx("button",{type:"button",onClick:()=>{g(c)},"aria-pressed":t===c,className:w("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",t===c?"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"),children:io[c]},c))}),a.jsx("div",{className:"jogak:flex jogak:gap-1 jogak:items-center",children:["white","dark","transparent"].map(c=>a.jsx("button",{type:"button",onClick:()=>{n(c)},"aria-pressed":r===c,"aria-label":`${c} background`,className:w("jogak:w-5 jogak:h-5 jogak:rounded-[var(--jogak-radius-md)] jogak:border-2 jogak:cursor-pointer jogak:p-0 jogak:shrink-0",L,r===c?"jogak:border-[var(--jogak-color-accent)]":"jogak:border-[var(--jogak-color-border-strong)]"),style:P[c]},c))}),s&&a.jsx("button",{type:"button",onClick:l,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",children:"Reset"})]})}function po({entry:o,args:e,theme:t,previewIsolation:r,userPreviewUrl:g,previewEntryPath:n}){const[s,l]=i.useState(!1),c=no(o,e),d=a.jsxs("div",{className:"jogak:relative",children:[a.jsx(fo,{entry:o,args:e,previewIsolation:r,userPreviewUrl:g,previewEntryPath:n}),a.jsx("button",{type:"button",onClick:()=>{l(j=>!j)},"aria-pressed":s,"aria-label":s?"Hide source code":"Show source code",className:w("jogak:absolute jogak:bottom-2 jogak:right-2 jogak:px-[9px] jogak:py-1","jogak:text-[11px] jogak:font-[family-name:var(--jogak-font-mono)] jogak:font-semibold jogak:tracking-[0.02em]","jogak:text-[var(--jogak-color-bg)] jogak:border-none jogak:rounded-[5px] jogak:cursor-pointer","jogak:shadow-[0_1px_4px_rgba(0,0,0,0.2)] jogak:transition-[background-color] jogak:duration-150 jogak:leading-none",s?"jogak:bg-[var(--jogak-color-accent)]":"jogak:bg-[#1e293b]"),children:"</>"})]});return a.jsxs("div",{children:[d,s&&a.jsx("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:a.jsx(bo,{source:c,theme:t})})]})}const M="jogak:border jogak:border-dashed jogak:border-[var(--jogak-color-border)] jogak:rounded-[var(--jogak-radius-xl)] jogak:p-4 jogak:pb-9";function fo({entry:o,args:e,previewIsolation:t,userPreviewUrl:r,previewEntryPath:g}){return t==="shadow"?a.jsx(ao,{"data-testid":"preview-content",className:M,children:a.jsx(mo,{entry:o,args:e})}):t==="iframe"?a.jsx(to,{entry:o,args:e,userPreviewUrl:r,previewEntryPath:g,"data-testid":"preview-content",className:`${M} jogak:block jogak:w-full jogak:bg-transparent jogak:min-h-[256px]`}):a.jsx(xo,{entry:o,args:e})}function xo({entry:o,args:e}){const t=i.useRef(null);return i.useEffect(()=>{const r=t.current;if(r!==null)return h.reactAdapter.render(o,e,r),()=>{queueMicrotask(()=>{h.reactAdapter.unmount(r)})}},[o]),i.useEffect(()=>{const r=t.current;r!==null&&h.reactAdapter.render(o,e,r)},[o,e]),a.jsx("div",{ref:t,"data-testid":"preview-content",className:M})}function mo({entry:o,args:e}){const t=i.useRef(null);return i.useEffect(()=>{const r=t.current;if(r!==null)return h.reactAdapter.render(o,e,r),()=>{queueMicrotask(()=>{h.reactAdapter.unmount(r)})}},[o]),i.useEffect(()=>{const r=t.current;r!==null&&h.reactAdapter.render(o,e,r)},[o,e]),a.jsx("div",{ref:t,"data-testid":"preview-content-shadow"})}function bo({source:o,theme:e}){const[t,r]=i.useState(!1),g=e.plain.backgroundColor??"#1e293b";if(o===void 0)return a.jsx("div",{className:"jogak:h-full jogak:flex jogak:items-center jogak:justify-center jogak:bg-[var(--jogak-source-bg)] jogak:text-[#94a3b8] jogak:text-[13px]",style:{"--jogak-source-bg":g},children:"Source not available"});const n=()=>{navigator.clipboard.writeText(o).then(()=>{r(!0),setTimeout(()=>{r(!1)},2e3)})};return a.jsxs("div",{className:"jogak:relative jogak:h-full",children:[a.jsx("button",{type:"button",onClick:n,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",children:t?"✓ Copied":"Copy"}),a.jsx(E.Highlight,{code:o.trim(),language:"tsx",theme:e,children:({style:s,tokens:l,getLineProps:c,getTokenProps:d})=>a.jsx("pre",{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",style:s,children:l.map((j,k)=>a.jsxs("div",{...c({line:j}),className:"jogak:flex jogak:pr-6",style:c({line:j}).style,children:[a.jsx("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:k+1}),a.jsx("span",{children:j.map((p,f)=>a.jsx("span",{...d({token:p})},f))})]},k))})})]})}function V(){if(typeof window>"u")return null;const o=new URLSearchParams(window.location.search),e=o.get("entry");if(e===null)return null;const t=o.get("jogak");return{entryId:e,jogakName:t}}function ho(o,e){const t=new URLSearchParams;t.set("entry",o),t.set("jogak",e),window.history.pushState({},"",`?${t.toString()}`)}function vo({entries:o,metas:e,codeTheme:t="vsDark",previewIsolation:r="iframe",userPreviewUrl:g="",previewEntryPath:n="/__jogak_preview__/index.html",userViteUrl:s}={}){const l=g!==""?g:s??"",c=i.useMemo(()=>{if(o!==void 0){e!==void 0&&console.warn("[jogak] JogakApp received both `entries` and `metas` — `entries` (eager) takes precedence.");const u=new C.ComponentRegistry;for(const x of o)u.register(x);return u}if(e!==void 0)for(const u of e)C.defaultRegistry.registerMeta(u);return C.defaultRegistry},[o,e]),d=i.useMemo(()=>V(),[]),[j,k]=i.useState((d==null?void 0:d.entryId)??null),[p,f]=i.useState((d==null?void 0:d.jogakName)??null),[y,N]=i.useState({});i.useEffect(()=>{const u=()=>{const x=V();x!==null?(k(x.entryId),f(x.jogakName),N({})):(k(null),f(null))};return window.addEventListener("popstate",u),()=>{window.removeEventListener("popstate",u)}},[]);const b=i.useCallback((u,x)=>{k(u),f(x),N({}),ho(u,x)},[]),v=i.useCallback((u,x)=>{if(k(m=>m===u?u:m),f(m=>m??x),typeof window<"u"){const m=new URLSearchParams(window.location.search);m.get("entry")===u&&m.get("jogak")===null&&(m.set("jogak",x),window.history.replaceState({},"",`?${m.toString()}`))}},[]),O=i.useCallback((u,x)=>{N(m=>({...m,[u]:x}))},[]),$=i.useCallback(()=>{N({})},[]);return a.jsx(h.JogakProvider,{registry:c,children:a.jsxs("div",{"data-jogak-shell":!0,className:"jogak:grid jogak:grid-cols-[260px_1fr] jogak:h-dvh jogak:overflow-hidden",children:[a.jsx(W,{selectedEntryId:j,selectedJogakName:p,onSelect:b}),a.jsx("main",{className:"jogak:overflow-hidden jogak:min-h-0",children:j!==null?a.jsx(G,{entryId:j,jogakName:p,overrideArgs:y,onArgChange:O,onReset:$,codeTheme:t,onResolveJogak:v,previewIsolation:r,userPreviewUrl:l,previewEntryPath:n}):a.jsx("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"})})]})})}function wo(){const o=h.useRegistry(),e=i.useMemo(()=>o.getAll(),[o]),t=i.useMemo(()=>o.getTree(),[o]),r=i.useMemo(()=>g=>o.search(g),[o]);return{entries:e,tree:t,search:r}}exports.Actions=F;exports.Controls=H;exports.JogakApp=vo;exports.Preview=G;exports.Sidebar=W;exports.useRegistry=wo;
|
|
9
|
+
</${t}>`}return`<${t}${c}/>`}function No(o){const e=o.meta.component;if(e!=null){if(typeof e.displayName=="string"&&e.displayName.length>0)return e.displayName;if(typeof e.name=="string"&&e.name.length>0)return e.name}const t=o.title.split("/").pop();return t!==void 0&&t.length>0?t:"Component"}function yo(o){const{children:e,...t}=o;return{children:e,restProps:t}}function So(o){return o==null?null:typeof o=="string"?o.length===0?null:o:typeof o=="number"||typeof o=="bigint"?`{${o.toString()}}`:typeof o=="boolean"?null:`{${Y(o)}}`}function Co(o,e){if(e===!0)return o;if(e===!1)return`${o}={false}`;if(e===null)return`${o}={null}`;if(typeof e=="string"){const t=e.replace(/"/gu,""");return`${o}="${t}"`}return typeof e=="number"||typeof e=="bigint"?`${o}={${e.toString()}}`:typeof e=="function"?`${o}={fn}`:`${o}={${Y(e)}}`}function Y(o){try{return JSON.stringify(o)}catch{return String(o)}}const Z={mobile:375,tablet:768,desktop:"none"},$o={mobile:"Mobile",tablet:"Tablet",desktop:"Desktop"},W={white:{"--jogak-canvas-bg":"#ffffff","--jogak-canvas-bg-image":"none","--jogak-canvas-bg-size":"auto","--jogak-canvas-bg-position":"0 0"},dark:{"--jogak-canvas-bg":"#1f2937","--jogak-canvas-bg-image":"none","--jogak-canvas-bg-size":"auto","--jogak-canvas-bg-position":"0 0"},transparent:{"--jogak-canvas-bg":"#ffffff","--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%)","--jogak-canvas-bg-size":"16px 16px","--jogak-canvas-bg-position":"0 0, 0 8px, 8px -8px, -8px 0px"}},V="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)]";function Ro(o){return L.themes[o]??L.themes.vsDark}function K({entryId:o,jogakName:e,overrideArgs:t,onArgChange:r,onReset:n,codeTheme:g,onResolveJogak:s,previewIsolation:l="iframe",userPreviewUrl:i="",previewEntryPath:d="/__jogak_preview__/index.html"}){const c=E.useEntry(o,{skipHydrate:l==="iframe"}),[k,f]=j.useState("desktop"),[p,N]=j.useState("white"),[w,b]=j.useState("controls"),v=Ro(g);return c.status==="unknown"?a.jsxs("div",{"data-testid":"preview-not-found",className:"jogak:p-6 jogak:text-[var(--jogak-color-error)]",children:["Entry not found: ",o]}):c.status==="error"?a.jsxs("div",{"data-testid":"preview-error",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",children:[a.jsxs("div",{className:"jogak:font-semibold",children:["Failed to load entry: ",o]}),a.jsx("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:c.error.message})]}):c.status==="loading"?a.jsx(_o,{meta:c.meta,jogakName:e,viewport:k,bgMode:p,onViewportChange:f,onBgModeChange:N}):a.jsx(Ao,{entry:c.entry,jogakName:e,overrideArgs:t,onArgChange:r,onReset:n,onResolveJogak:s,viewport:k,bgMode:p,bottomTab:w,onViewportChange:f,onBgModeChange:N,onBottomTabChange:b,prismTheme:v,previewIsolation:l,userPreviewUrl:i,previewEntryPath:d})}function _o({meta:o,jogakName:e,viewport:t,bgMode:r,onViewportChange:n,onBgModeChange:g}){const s=e??o.jogakNames[0]??"...",l=Z[t];return a.jsxs("div",{"data-testid":"preview-loading",className:"jogak:flex jogak:flex-col jogak:h-full",children:[a.jsx(T,{title:o.title,jogakName:s,viewport:t,bgMode:r,onViewportChange:n,onBgModeChange:g,showReset:!1,onReset:()=>{}}),a.jsx("div",{className:`jogak:flex-1 jogak:overflow-auto jogak:min-h-[320px] ${V}`,style:W[r],children:a.jsx("div",{className:"jogak:mx-auto jogak:p-6 jogak:max-w-[var(--jogak-canvas-mw)]",style:{"--jogak-canvas-mw":l==="none"?"100%":`${l}px`},children:a.jsxs("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:["Loading ",o.title,"…"]})})})]})}function Ao({entry:o,jogakName:e,overrideArgs:t,onArgChange:r,onReset:n,onResolveJogak:g,viewport:s,bgMode:l,bottomTab:i,onViewportChange:d,onBgModeChange:c,onBottomTabChange:k,prismTheme:f,previewIsolation:p,userPreviewUrl:N,previewEntryPath:w}){var q;const b=e??((q=o.jogaks[0])==null?void 0:q.name)??null;if(j.useEffect(()=>{e===null&&b!==null&&g!==void 0&&g(o.id,b)},[e,b,o.id,g]),b===null)return a.jsxs("div",{className:"jogak:p-6 jogak:text-[var(--jogak-color-error)]",children:["Entry has no jogaks: ",o.id]});const v=o.jogaks.find(y=>y.name===b);if(v===void 0)return a.jsxs("div",{className:"jogak:p-6 jogak:text-[var(--jogak-color-error)]",children:["Jogak not found: ",b]});const C={...v.args??{},...t},u={...o.meta.argTypes??{},...v.argTypes??{}},m=Object.keys(t).length>0,x=Z[s];return a.jsxs("div",{className:"jogak:flex jogak:flex-col jogak:h-full",children:[a.jsx(T,{title:o.title,jogakName:v.name,viewport:s,bgMode:l,onViewportChange:d,onBgModeChange:c,showReset:m,onReset:n}),a.jsx("div",{className:`jogak:flex-1 jogak:overflow-auto jogak:min-h-[320px] ${V}`,style:W[l],children:a.jsx("div",{"data-jogak-content":!0,className:"jogak:mx-auto jogak:p-6 jogak:max-w-[var(--jogak-canvas-mw)]",style:{"--jogak-canvas-mw":x==="none"?"100%":`${x}px`},children:a.jsx(Eo,{entry:o,args:C,theme:f,previewIsolation:p,userPreviewUrl:N,previewEntryPath:w},`${o.id}/${v.name}`)})}),a.jsxs("div",{"data-testid":"bottom-panel",className:"jogak:h-[260px] jogak:shrink-0 jogak:flex jogak:flex-col jogak:border-t-2 jogak:border-[var(--jogak-color-border)]",children:[a.jsx("div",{role:"tablist",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",children:["controls","actions"].map(y=>{const D=i===y;return a.jsx("button",{type:"button",role:"tab","aria-selected":D,onClick:()=>{k(y)},className:h("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",D?"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"),children:y},y)})}),a.jsx("div",{className:"jogak:flex-1 jogak:min-h-0 jogak:overflow-auto",children:i==="controls"?a.jsx(Q,{args:C,argTypes:u,onArgChange:r}):a.jsx(X,{})})]})]})}function T({title:o,jogakName:e,viewport:t,bgMode:r,onViewportChange:n,onBgModeChange:g,showReset:s,onReset:l}){return a.jsxs("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:[a.jsxs("div",{className:"jogak:flex-1 jogak:text-[13px]",children:[a.jsx("span",{className:"jogak:text-[var(--jogak-color-fg-subtle)]",children:o}),a.jsx("span",{className:"jogak:text-[var(--jogak-color-border-strong)] jogak:mx-1.5 jogak:leading-none",children:"/"}),a.jsx("span",{className:"jogak:text-[var(--jogak-color-fg-strong)] jogak:font-semibold",children:e})]}),a.jsx("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(i=>a.jsx("button",{type:"button",onClick:()=>{n(i)},"aria-pressed":t===i,className:h("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",t===i?"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"),children:$o[i]},i))}),a.jsx("div",{className:"jogak:flex jogak:gap-1 jogak:items-center",children:["white","dark","transparent"].map(i=>a.jsx("button",{type:"button",onClick:()=>{g(i)},"aria-pressed":r===i,"aria-label":`${i} background`,className:h("jogak:w-5 jogak:h-5 jogak:rounded-[var(--jogak-radius-md)] jogak:border-2 jogak:cursor-pointer jogak:p-0 jogak:shrink-0",V,r===i?"jogak:border-[var(--jogak-color-accent)]":"jogak:border-[var(--jogak-color-border-strong)]"),style:W[i]},i))}),s&&a.jsx("button",{type:"button",onClick:l,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",children:"Reset"})]})}function Eo({entry:o,args:e,theme:t,previewIsolation:r,userPreviewUrl:n,previewEntryPath:g}){const[s,l]=j.useState(!1),i=wo(o,e),d=a.jsxs("div",{className:"jogak:relative",children:[a.jsx(Mo,{entry:o,args:e,previewIsolation:r,userPreviewUrl:n,previewEntryPath:g}),a.jsx("button",{type:"button",onClick:()=>{l(c=>!c)},"aria-pressed":s,"aria-label":s?"Hide source code":"Show source code",className:h("jogak:absolute jogak:bottom-2 jogak:right-2 jogak:px-[9px] jogak:py-1","jogak:text-[11px] jogak:font-[family-name:var(--jogak-font-mono)] jogak:font-semibold jogak:tracking-[0.02em]","jogak:text-[var(--jogak-color-bg)] jogak:border-none jogak:rounded-[5px] jogak:cursor-pointer","jogak:shadow-[0_1px_4px_rgba(0,0,0,0.2)] jogak:transition-[background-color] jogak:duration-150 jogak:leading-none",s?"jogak:bg-[var(--jogak-color-accent)]":"jogak:bg-[#1e293b]"),children:"</>"})]});return a.jsxs("div",{children:[d,s&&a.jsx("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:a.jsx(Po,{source:i,theme:t})})]})}const P="jogak:border jogak:border-dashed jogak:border-[var(--jogak-color-border)] jogak:rounded-[var(--jogak-radius-xl)] jogak:p-4 jogak:pb-9";function Mo({entry:o,args:e,previewIsolation:t,userPreviewUrl:r,previewEntryPath:n}){return t==="shadow"?a.jsx(bo,{"data-testid":"preview-content",className:P,children:a.jsx(Lo,{entry:o,args:e})}):t==="iframe"?a.jsx(ho,{entry:o,args:e,userPreviewUrl:r,previewEntryPath:n,"data-testid":"preview-content",className:`${P} jogak:block jogak:w-full jogak:bg-transparent jogak:min-h-[256px]`}):a.jsx(Oo,{entry:o,args:e})}function Oo({entry:o,args:e}){const t=j.useRef(null),r=j.useRef(null);return j.useEffect(()=>{const n=t.current;if(n===null)return;let g=!1;const s=o.meta.framework??"react";return A(s).then(l=>{g||(r.current=l,l.render(o,e,n))}),()=>{g=!0;const l=r.current;l!==null&&queueMicrotask(()=>{l.unmount(n)})}},[o]),j.useEffect(()=>{const n=t.current;if(n===null)return;let g=!1;const s=r.current;if(s!==null){s.render(o,e,n);return}const l=o.meta.framework??"react";return A(l).then(i=>{g||(r.current=i,i.render(o,e,n))}),()=>{g=!0}},[o,e]),a.jsx("div",{ref:t,"data-testid":"preview-content",className:P})}function Lo({entry:o,args:e}){const t=j.useRef(null),r=j.useRef(null);return j.useEffect(()=>{const n=t.current;if(n===null)return;let g=!1;const s=o.meta.framework??"react";return A(s).then(l=>{g||(r.current=l,l.render(o,e,n))}),()=>{g=!0;const l=r.current;l!==null&&queueMicrotask(()=>{l.unmount(n)})}},[o]),j.useEffect(()=>{const n=t.current;if(n===null)return;let g=!1;const s=r.current;if(s!==null){s.render(o,e,n);return}const l=o.meta.framework??"react";return A(l).then(i=>{g||(r.current=i,i.render(o,e,n))}),()=>{g=!0}},[o,e]),a.jsx("div",{ref:t,"data-testid":"preview-content-shadow"})}function Po({source:o,theme:e}){const[t,r]=j.useState(!1),n=e.plain.backgroundColor??"#1e293b";if(o===void 0)return a.jsx("div",{className:"jogak:h-full jogak:flex jogak:items-center jogak:justify-center jogak:bg-[var(--jogak-source-bg)] jogak:text-[#94a3b8] jogak:text-[13px]",style:{"--jogak-source-bg":n},children:"Source not available"});const g=()=>{navigator.clipboard.writeText(o).then(()=>{r(!0),setTimeout(()=>{r(!1)},2e3)})};return a.jsxs("div",{className:"jogak:relative jogak:h-full",children:[a.jsx("button",{type:"button",onClick:g,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",children:t?"✓ Copied":"Copy"}),a.jsx(L.Highlight,{code:o.trim(),language:"tsx",theme:e,children:({style:s,tokens:l,getLineProps:i,getTokenProps:d})=>a.jsx("pre",{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",style:s,children:l.map((c,k)=>a.jsxs("div",{...i({line:c}),className:"jogak:flex jogak:pr-6",style:i({line:c}).style,children:[a.jsx("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:k+1}),a.jsx("span",{children:c.map((f,p)=>a.jsx("span",{...d({token:f})},p))})]},k))})})]})}function H(){if(typeof window>"u")return null;const o=new URLSearchParams(window.location.search),e=o.get("entry");if(e===null)return null;const t=o.get("jogak");return{entryId:e,jogakName:t}}function Wo(o,e){const t=new URLSearchParams;t.set("entry",o),t.set("jogak",e),window.history.pushState({},"",`?${t.toString()}`)}function Vo({entries:o,metas:e,codeTheme:t="vsDark",previewIsolation:r="iframe",userPreviewUrl:n="",previewEntryPath:g="/__jogak_preview__/index.html",userViteUrl:s}={}){const l=n!==""?n:s??"",i=j.useMemo(()=>{if(o!==void 0){e!==void 0&&console.warn("[jogak] JogakApp received both `entries` and `metas` — `entries` (eager) takes precedence.");const u=new S.ComponentRegistry;for(const m of o)u.register(m);return u}if(e!==void 0)for(const u of e)S.defaultRegistry.registerMeta(u);return S.defaultRegistry},[o,e]),d=j.useMemo(()=>H(),[]),[c,k]=j.useState((d==null?void 0:d.entryId)??null),[f,p]=j.useState((d==null?void 0:d.jogakName)??null),[N,w]=j.useState({});j.useEffect(()=>{const u=()=>{const m=H();m!==null?(k(m.entryId),p(m.jogakName),w({})):(k(null),p(null))};return window.addEventListener("popstate",u),()=>{window.removeEventListener("popstate",u)}},[]);const b=j.useCallback((u,m)=>{k(u),p(m),w({}),Wo(u,m)},[]),v=j.useCallback((u,m)=>{if(k(x=>x===u?u:x),p(x=>x??m),typeof window<"u"){const x=new URLSearchParams(window.location.search);x.get("entry")===u&&x.get("jogak")===null&&(x.set("jogak",m),window.history.replaceState({},"",`?${x.toString()}`))}},[]),J=j.useCallback((u,m)=>{w(x=>({...x,[u]:m}))},[]),C=j.useCallback(()=>{w({})},[]);return a.jsx(E.JogakProvider,{registry:i,children:a.jsxs("div",{"data-jogak-shell":!0,className:"jogak:grid jogak:grid-cols-[260px_1fr] jogak:h-dvh jogak:overflow-hidden",children:[a.jsx(U,{selectedEntryId:c,selectedJogakName:f,onSelect:b}),a.jsx("main",{className:"jogak:overflow-hidden jogak:min-h-0",children:c!==null?a.jsx(K,{entryId:c,jogakName:f,overrideArgs:N,onArgChange:J,onReset:C,codeTheme:t,onResolveJogak:v,previewIsolation:r,userPreviewUrl:l,previewEntryPath:g}):a.jsx("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"})})]})})}function Jo(){const o=E.useRegistry(),e=j.useMemo(()=>o.getAll(),[o]),t=j.useMemo(()=>o.getTree(),[o]),r=j.useMemo(()=>n=>o.search(n),[o]);return{entries:e,tree:t,search:r}}exports.Actions=X;exports.Controls=Q;exports.JogakApp=Vo;exports.Preview=K;exports.Sidebar=U;exports.useRegistry=Jo;
|