renku 0.0.11 → 0.0.13
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/async-context.browser.d.ts +13 -0
- package/dist/async-context.browser.js +1 -0
- package/dist/async-context.server.d.ts +13 -0
- package/dist/async-context.server.js +1 -0
- package/dist/{async-generator-to-readable-stream-5pOhiwD8.js → async-generator-to-readable-stream-SYqrIInH.js} +1 -1
- package/dist/{auth-4756QcgX.js → auth-CFd7zVNL.js} +1 -1
- package/dist/auth.js +1 -1
- package/dist/bash-complete.js +1 -1
- package/dist/bun.d.ts +1 -3
- package/dist/bun.js +1 -1
- package/dist/cli.js +1 -1
- package/dist/client.js +3 -1
- package/dist/{cloudflare-DarCw7vT.js → cloudflare-D6q_bWsO.js} +1 -1
- package/dist/cloudflare.d.ts +2 -2
- package/dist/cloudflare.js +1 -1
- package/dist/cloudflare.worker.d.ts +2 -2
- package/dist/cloudflare.worker.js +1 -1
- package/dist/{context-C1t1GsoU.js → context-C8lLS_E1.js} +1 -1
- package/dist/context-store-D9atdfKO.js +1 -0
- package/dist/create-computed-DTLDV6XM.js +1 -0
- package/dist/create-context-Ccu6Wido.js +1 -0
- package/dist/create-signal-2H8hjZy6.js +1 -0
- package/dist/data.d.ts +18 -18
- package/dist/data.js +1 -1
- package/dist/dom.d.ts +1 -1
- package/dist/dom.js +1 -1
- package/dist/{effect-Bd9_A9t9.js → effect-CQrGu-8V.js} +1 -1
- package/dist/{index-DWK1eOW-.d.ts → index-B747aB5c.d.ts} +5 -5
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/jsx-dev-runtime.js +1 -1
- package/dist/jsx-runtime.js +1 -1
- package/dist/jsx-to-virtual-node-CMwF0-OF.js +1 -0
- package/dist/{register-server-function-C48-V7Zl.d.ts → register-server-function-RuJLKnp7.d.ts} +0 -1
- package/dist/render-dom-node-drdl_pap.js +1 -0
- package/dist/server.d.ts +1 -1
- package/dist/theme.css +114 -46
- package/dist/{types-BYprbzJ7.d.ts → types-B2azyMGn.d.ts} +6 -6
- package/dist/ui.d.ts +58 -83
- package/dist/ui.js +1 -1
- package/package.json +24 -13
- package/dist/context-store-ptQxy_Tf.js +0 -1
- package/dist/create-computed-lI_3nbQK.js +0 -1
- package/dist/create-context-HSD02vmk.js +0 -1
- package/dist/create-loader-MWloSurG.js +0 -1
- package/dist/jsx-runtime-CwvSR9n_.js +0 -0
- package/dist/jsx-to-virtual-node-CKXtqFFH.js +0 -1
- package/dist/render-dom-node-BMsKFUby.js +0 -1
- /package/dist/{create-element-CkxIHf8j.js → create-element-Cir0MD8J.js} +0 -0
- /package/dist/{fragment-Be4WKiZ3.js → fragment-DqC2avbk.js} +0 -0
- /package/dist/{get-route-vX5hwL4r.js → get-route--eZsPlal.js} +0 -0
- /package/dist/{signal-store-0zk-69gB.js → signal-store-B0_cH-Uu.js} +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/reactivity/async-context.browser.d.ts
|
|
2
|
+
declare class AsyncContextVariable<T> {
|
|
3
|
+
#private;
|
|
4
|
+
get(): T | undefined;
|
|
5
|
+
set(value: T | undefined): void;
|
|
6
|
+
run<R>(value: T, fn: () => R): R;
|
|
7
|
+
}
|
|
8
|
+
type AsyncContextObject = {
|
|
9
|
+
Variable: typeof AsyncContextVariable;
|
|
10
|
+
};
|
|
11
|
+
declare const AsyncContext: AsyncContextObject;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { AsyncContext, AsyncContextVariable };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=class{#e;get(){return this.#e}set(e){this.#e=e}run(e,t){let n=this.#e;this.#e=e;try{return t()}finally{this.#e=n}}};const t={Variable:e};export{t as AsyncContext,e as AsyncContextVariable};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/reactivity/async-context.server.d.ts
|
|
2
|
+
declare class AsyncContextVariable<T> {
|
|
3
|
+
#private;
|
|
4
|
+
get(): T | undefined;
|
|
5
|
+
set(_value: T | undefined): void;
|
|
6
|
+
run<R>(value: T, fn: () => R): R;
|
|
7
|
+
}
|
|
8
|
+
type AsyncContextObject = {
|
|
9
|
+
Variable: typeof AsyncContextVariable;
|
|
10
|
+
};
|
|
11
|
+
declare const AsyncContext: AsyncContextObject;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { AsyncContext, AsyncContextVariable };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{AsyncLocalStorage as e}from"node:async_hooks";var t=class{#e=new e;get(){return this.#e.getStore()}set(e){throw Error(`Cannot set AsyncContext value on server. Use run().`)}run(e,t){return this.#e.run(e,t)}};const n={Variable:t};export{n as AsyncContext,t as AsyncContextVariable};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./signal-store-
|
|
1
|
+
import{n as e}from"./signal-store-B0_cH-Uu.js";import{t}from"./jsx-to-virtual-node-CMwF0-OF.js";async function*n(e){yield`<!DOCTYPE html>`;for await(let t of e)t[1]&&(yield t[1])}async function*r(e){for await(let t of e)t[0]&&(yield t[0])}async function*i(e){let n=new Set(e.map(e=>e.then(({index:e,node:n})=>({index:e,virtualNode:t({node:n,asyncComponents:[]})})).catch(e=>({error:e}))));for(;n.size>0;){let e=await Promise.race(n);for(let t of n)t.then(r=>{r===e&&n.delete(t)}).catch(r=>{r===e&&n.delete(t)});`virtualNode`in e&&(yield e)}}async function*a({key:t,val:n,trailingComma:r,output:i}){if(typeof n==`string`||typeof n==`number`){t===`className`&&(t=`class`);let e=typeof n==`number`?String(n):`"${String(n)}"`;return yield i(`${r?`,`:``}"${t}":${e}`,` ${t}="${String(n)}"`),!0}if(n instanceof e.State||n instanceof e.Computed)return yield i(`${r?`,`:``}"${t}":"${String(n.get())}"`,` ${t}="${String(n.get())}"`),!0;if(Array.isArray(n)){let a=n.map(t=>t instanceof e.State||t instanceof e.Computed?String(t.get()):String(t)).join(` `);return yield i(`${r?`,`:``}"${t}":"${a}"`,` ${t}="${a}"`),!0}}const o=new Set([`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`link`,`meta`,`source`,`track`,`wbr`]);async function*s({virtualNode:e,asyncVirtualNodes:t,leadingComma:n=!1,rscBuffer:r=[]}){let i=(e,t)=>(e&&r.push(e),[e,t]),c=(e,t)=>i(e,null);if(Array.isArray(e))for(let i of e)yield*s({virtualNode:i,asyncVirtualNodes:t,leadingComma:n,rscBuffer:r}),n=!0;else if(e?.type===`element`){yield i(`${n?`,`:``}["E","${e.value}",${e.key?`"${e.key}"`:`null`},{`,`<${e.value}`);let c=!0;for(let[t,n]of Object.entries(e.props))t!==`children`&&(yield*a({key:t,val:n,trailingComma:!c,output:i}))&&(c=!1);if(yield i(null,o.has(e.value)?` />`:`>`),e.children.length>0){let n=!0;yield i(`${c?``:`,`}"children":[`,null);for(let i of e.children)(yield*s({virtualNode:i,asyncVirtualNodes:t,leadingComma:!n,rscBuffer:r}))&&(n=!1);e.value!==`html`&&(yield i(`]`,null))}if(e.value===`body`){if(r.length>0){let e=r.join(``);r.length=0,yield[null,`<script>(self.__RSC||=[]).push(\`${e}}]]}]\`);<\/script>`]}yield[`}]]}]`,null];for await(let e of t){let n=[];yield[`
|
|
2
2
|
`,`<template data-id="async-template-${e.index}">`],yield*s({virtualNode:e.virtualNode,asyncVirtualNodes:t,leadingComma:!1,rscBuffer:n}),yield[null,`</template>`],yield[null,`<script>(self.__RSC||=[]).push(\`${n.join(``)}\`);<\/script>`],yield[null,`<script>
|
|
3
3
|
(() => {
|
|
4
4
|
const placeholder = document.querySelector(\`${`template[data-id="async-placeholder-${e.index}"]`}\`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./context-store-
|
|
1
|
+
import{t as e}from"./context-store-D9atdfKO.js";const t=Symbol(`auth-context`),n=()=>({sessionId:null,userId:null}),r=()=>{let r=e.get(t);if(r)return r;let i=n();return e.set(t,i),i};export{t as n,n as r,r as t};
|
package/dist/auth.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./context-store-
|
|
1
|
+
import"./context-store-D9atdfKO.js";import{t as e}from"./auth-CFd7zVNL.js";export{e as auth};
|
package/dist/bash-complete.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
-
import{n as e,t}from"./context-
|
|
2
|
+
import{n as e,t}from"./context-C8lLS_E1.js";import{proposeCompletions as n}from"@stricli/core";const r=process.argv.slice(3);process.env.COMP_LINE?.endsWith(` `)&&r.push(``),await n(e,r,t(process));try{for(let{completion:i}of await n(e,r,t(process)))process.stdout.write(`${i}\n`)}catch{}
|
package/dist/bun.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { Bake, BunPlugin } from "bun";
|
|
2
|
-
|
|
3
1
|
//#region src/bun/render.d.ts
|
|
4
|
-
declare const render: (request: Request, routeMetadata: Bake.RouteMetadata) => Promise<Response>;
|
|
2
|
+
declare const render: (request: Request, routeMetadata: Bake$1.RouteMetadata) => Promise<Response>;
|
|
5
3
|
//#endregion
|
|
6
4
|
//#region src/bun/types.d.ts
|
|
7
5
|
type RenkuBunBake = (props: {
|
package/dist/bun.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./context-store-
|
|
1
|
+
import"./context-store-D9atdfKO.js";import{i as e,n as t,r as n,t as r}from"./async-generator-to-readable-stream-SYqrIInH.js";import"./signal-store-B0_cH-Uu.js";import"./jsx-to-virtual-node-CMwF0-OF.js";import"./effect-CQrGu-8V.js";import"./fragment-DqC2avbk.js";const i=async(i,a)=>{let{styles:o,modules:s,pageModule:c,layouts:l}=a,u=await c.default();for(let e of l)u=await e.default({children:[u],_renku:{styles:o,modules:s}});let d=t(u);if(i.headers.get(`Accept`)===`text/x-component`){let e=n(d);return new Response(r(e),{headers:{"Content-Type":`text/x-component`}})}let f=e(d);return new Response(r(f),{headers:{"Content-Type":`text/html`}})},a=({plugins:e})=>({app:{framework:{fileSystemRouterTypes:[{root:`./pages`,serverEntryPoint:`renku/bun`,clientEntryPoint:`renku/client`,style:`nextjs-pages`,layouts:!0,extensions:[`ts`,`tsx`,`md`,`mdx`]}],serverComponents:{separateSSRGraph:!1,serverRuntimeImportSource:`renku/server`},plugins:e}}});export{i as render,a as renku};
|
package/dist/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
-
import{n as e,t}from"./context-
|
|
2
|
+
import{n as e,t}from"./context-C8lLS_E1.js";import{run as n}from"@stricli/core";await n(e,process.argv.slice(2),t(process));
|
package/dist/client.js
CHANGED
|
@@ -1 +1,3 @@
|
|
|
1
|
-
import"./context-store-
|
|
1
|
+
import"./context-store-D9atdfKO.js";import"./signal-store-B0_cH-Uu.js";import{n as e}from"./jsx-to-virtual-node-CMwF0-OF.js";import"./effect-CQrGu-8V.js";import"./fragment-DqC2avbk.js";import{n as t,t as n}from"./render-dom-node-drdl_pap.js";const r=e=>Array.isArray(e)&&e[0]===`A`,i=e=>Array.isArray(e)&&e[0]===`C`,a=e=>Array.isArray(e)&&e[0]===`E`,o=e=>{if(a(e)){let t=[],{children:n,...r}=e[3];if(n)for(let e of n)t.push(o(e));return{type:`element`,value:e[1],key:e[2],props:r,children:t}}return r(e)?{type:`async`,key:e[1],index:e[2]}:i(e)?{type:`client`,key:e[1],path:e[2],name:e[3],props:e[4]}:typeof e==`string`||typeof e==`number`?{type:`text`,value:String(e)}:null},s=(r,i)=>{if(i?.type===`element`&&i.value.toLowerCase()===r.tagName.toLowerCase()){i.domNode=r;for(let[a,o]of i.children.entries()){let c=r.childNodes[a];if(c)if(o?.type===`element`)c instanceof HTMLElement&&s(c,o);else if(o?.type===`text`){if(c.textContent===o.value)o.domNode=c;else if(c.nodeType===Node.TEXT_NODE){let e=``;for(let t of i.children)if(t?.type===`text`)e+=t.value;else if(t?.type===`signal`)e+=String(t.value.get());else if(t?.type===`element`)break;c.textContent===e&&(o.domNode=c)}}else o?.type===`signal`?c.textContent===String(o.value.get())&&(o.domNode=c):o?.type===`async`?c.nodeType===Node.COMMENT_NODE&&(o.domNode=c):o?.type===`client`&&c.nodeType===Node.COMMENT_NODE&&(o.domNode=c,import(o.path).then(r=>{let i=e({fn:r[o.name],key:o.key,props:o.props,asyncComponents:[],clientComponents:[]});Array.isArray(i)?t({domNode:c,virtualNode:i,replace:!0}):n({domNode:c,virtualNode:i,replace:!0})}))}}},c={mode:`hydrate`,rootApplied:!1,pendingAsyncPlaceholders:[],pendingClientPlaceholders:[]},l=()=>{c.pendingAsyncPlaceholders=Array.from(document.querySelectorAll(`template[data-id^="async-placeholder-"]`))},u=()=>{let e=[],t=document.createTreeWalker(document.documentElement,NodeFilter.SHOW_COMMENT),n=t.nextNode();for(;n;)n.nodeValue?.trim()===`CLIENT`&&e.push(n),n=t.nextNode();c.pendingClientPlaceholders=e},d=e=>{let t=o(e);t&&(c.mode===`hydrate`?document.documentElement instanceof HTMLElement&&s(document.documentElement,t):n({domNode:document.documentElement,virtualNode:t,replace:!0}),l(),u(),c.rootApplied=!0)},f=e=>a(e)&&e[1]===`html`,p=(e,r)=>{Array.isArray(r)?t({domNode:e,virtualNode:r,replace:!0}):n({domNode:e,virtualNode:r,replace:!0})},m=(r,i)=>{import(i.path).then(a=>{let o=e({fn:a[i.name],key:i.key,props:i.props,asyncComponents:[],clientComponents:[]});Array.isArray(o)?t({domNode:r,virtualNode:o,replace:!0}):n({domNode:r,virtualNode:o,replace:!0})})},h=e=>{let t=c.pendingAsyncPlaceholders.shift();if(!t)return;let n=o(e);n&&p(t,n)},g=e=>{let t=c.pendingClientPlaceholders.shift();if(!t)return;let n=o(e);!n||n.type!==`client`||m(t,n)},_=()=>{c.mode=`hydrate`,c.rootApplied=!1,c.pendingAsyncPlaceholders=[],c.pendingClientPlaceholders=[]},v=()=>{c.mode=`replace`,c.rootApplied=!1,c.pendingAsyncPlaceholders=[],c.pendingClientPlaceholders=[]},y=e=>{let t=e.trim();if(!t)return;let n;try{n=JSON.parse(t)}catch(e){console.error(`Failed to parse RSC chunk:`,e);return}if(a(n)){!c.rootApplied&&f(n)?d(n):c.rootApplied&&h(n);return}if(i(n)){if(!c.rootApplied)return;g(n);return}r(n)},b=async e=>{console.log(`🧭`,`Loading`,e.pathname);let t=await fetch(e.pathname,{headers:{Accept:`text/x-component`}});if(!t.body){console.error(`🧭`,`No body returned`);return}v();let n=t.body.getReader(),r=new TextDecoder,i=``;for(;;){let{value:e,done:t}=await n.read();if(t)break;i+=r.decode(e,{stream:!0});let a=i.indexOf(`
|
|
2
|
+
`);for(;a!==-1;){let e=i.slice(0,a).trim();e&&y(e),i=i.slice(a+1),a=i.indexOf(`
|
|
3
|
+
`)}}let a=i.trim();a&&y(a)},x=e=>!e.canIntercept||e.hashChange||!!e.downloadRequest||!!e.formData||e.destination.sameDocument;window.navigation.addEventListener(`navigate`,e=>{if(x(e))return;let t=new URL(e.destination.url);console.log(`🧭`,`Intercepted nav to`,t.pathname),e.intercept({async handler(){await b(t)}})}),window.__RSC||=[],_();for(let e of window.__RSC)y(e);const S=window.__RSC.push.bind(window.__RSC);window.__RSC.push=e=>{let t=S(e);return y(e),t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./context-store-
|
|
1
|
+
import{t as e}from"./context-store-D9atdfKO.js";import{n as t,r as n,t as r}from"./auth-CFd7zVNL.js";import{i,n as a,r as o,t as s}from"./async-generator-to-readable-stream-SYqrIInH.js";import{n as c,t as l}from"./get-route--eZsPlal.js";import{newWorkersRpcResponse as u}from"capnweb";import{clientEntry as d}from"virtual:renku";const f=({namespace:e,name:t,ws:n})=>async(r,i)=>{if(console.log(`🔥`,`DO handler`,typeof t),n){let e=r.headers.get(`Upgrade`);if(!e||e!==`websocket`)return new Response(`Durable Object expected Upgrade: websocket`,{status:426})}if(typeof t==`function`){let e=r.clone();t=await t(e)}return i[e].getByName(t).fetch(r)},p=({rpName:e,sessionExpiryInMinutes:t})=>{t??=60;let n=e=>e*60*1e3;return{"/validate-session":{GET:async(e,t,n)=>r().sessionId?Response.json({isAuthenticated:!0}):Response.json({isAuthenticated:!1})},"/logout":{POST:async(e,t,i)=>{let a=r();a.sessionId&&await t.AUTH_DO.getByName(`session:${a.sessionId}`).logout();let o=new Date(Date.now()-n(10)).toUTCString();return new Response(null,{headers:{"Set-Cookie":`sessionId=; Path=/; SameSite=Strict; Secure; Expires=${o}`}})},GET:async(e,t,i)=>{let a=r();a.sessionId&&await t.AUTH_DO.getByName(`session:${a.sessionId}`).logout();let o=new Date(Date.now()-n(10)).toUTCString();return new Response(null,{status:302,headers:{Location:`/`,"Set-Cookie":`sessionId=; Path=/; SameSite=Strict; Secure; Expires=${o}`}})}},"/creation-options":{POST:async(t,n,r)=>{let{email:i}=await t.json(),a=crypto.randomUUID(),o=n.AUTH_DO.getByName(`user:${a}`),s=new URL(t.url).hostname,c=await o.creationOptions({id:a,email:i,rpId:s,rpName:e});return Response.json(c)}},"/validate-creation":{POST:async(e,t,n)=>{let{name:r,credential:i}=await e.json();return await t.AUTH_DO.getByName(`user:${r}`).validateCreation({name:r,credential:i}),Response.json({ok:!0})}},"/request-options":{POST:async(e,t,n)=>{let r=new URL(e.url).hostname,i=crypto.randomUUID(),a=await t.AUTH_DO.getByName(`challenge:${i}`).requestOptions({rpId:r});return Response.json({id:i,options:a})}},"/validate-request":{POST:async(e,r,i)=>{let{id:a,credential:o}=await e.json(),s=await r.AUTH_DO.getByName(`challenge:${a}`).validateRequest({credential:o,sessionExpiryInMinutes:t});if(s){let e=new Date(Date.now()+n(t)).toUTCString();return Response.json({success:!0},{headers:{"Set-Cookie":`sessionId=${s}; Path=/; SameSite=Strict; Secure; Expires=${e}`}})}return Response.json({error:!0})}}}},m=e=>{let t={};if(!e)return t;let n=e.split(`;`);for(let e of n){let n=e.indexOf(`=`);if(n===-1)continue;let r=e.slice(0,n).trim(),i=e.slice(n+1).trim();r&&(t[r]=i)}return t},h=async({request:e,env:t,authFn:n})=>{let i=r(),a=m(e.headers.get(`cookie`));if(`sessionId`in a&&a.sessionId){if(i.sessionId=a.sessionId,t?.AUTH_DO){let e=await t.AUTH_DO.getByName(`session:${i.sessionId}`).validateSession({sessionExpiryInMinutes:1440});e&&(i.userId=e.userId)}}else i.sessionId=null;return n?n({request:e,authContext:i}):!0},g=[`favicon.ico`,`.well-known`],_=({routes:r})=>async(f,p,m)=>{let _=new Map([[t,n()]]);return e.run(_,async()=>{let e=new URL(f.url),t=e.pathname.split(`/`),n=t[1];if(n&&g.includes(n))return new Response(null,{status:404});let _=l({request:f,routes:r});console.log(`routingResult`,_);let v=await h({request:f,env:p,authFn:_?_.auth:null});if(v!==!0)return v||new Response(null,{status:401});if(n===`@renku`){if(t[2]===`rpc`&&t[3]&&t[4]){let e=decodeURIComponent(t[3]),n=decodeURIComponent(t[4]);import.meta.env.DEV||(e=`/assets/functions/${e}.js`),console.log(`☎️ Server function was called:`,e,n);let r=(await import(e))[n];return u(f,r)}return new Response(null,{status:404})}if(!_)return console.warn(`No routing result`,e.pathname),new Response(null,{status:404});if(_.api){let e=Object.assign(f,{params:_.params});if(!p)throw Error(`Missing env for API route handler.`);return _.api(e,p,m)}let y=await c(_.route,_.params);if(y instanceof Response)return y;if(y==null)return new Response(null,{status:404});let b={styles:[],modules:[]};import.meta.env.DEV?(b.modules.push(`/@vite/client`),b.modules.push(`/@renku/client`)):d&&b.modules.push(d);for(let e of _.layouts){let t=await c(e,{children:y,_renku:b});if(t instanceof Response)return t;if(t==null)return new Response(null,{status:404});y=t}let x=a(y);if(f.headers.get(`Accept`)===`text/x-component`){let e=s(o(x));return new Response(e,{headers:{"Content-Type":`text/x-component`}})}let S=s(i(x));return new Response(S,{headers:{"Content-Type":`text/html`}})})},v=({routes:e,queue:t})=>({fetch:_({routes:e}),queue:t});export{p as n,f as r,v as t};
|
package/dist/cloudflare.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./signal-CqB2Ey1W.js";
|
|
2
2
|
import "./types-C7G4uVGb.js";
|
|
3
|
-
import { t as Routes } from "./types-
|
|
4
|
-
import { n as getAuthRoutes, r as durableObjectHandler, t as renku } from "./index-
|
|
3
|
+
import { t as Routes } from "./types-B2azyMGn.js";
|
|
4
|
+
import { n as getAuthRoutes, r as durableObjectHandler, t as renku } from "./index-B747aB5c.js";
|
|
5
5
|
export { Routes, durableObjectHandler, getAuthRoutes, renku };
|
package/dist/cloudflare.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./context-store-
|
|
1
|
+
import"./context-store-D9atdfKO.js";import"./auth-CFd7zVNL.js";import"./async-generator-to-readable-stream-SYqrIInH.js";import"./signal-store-B0_cH-Uu.js";import"./jsx-to-virtual-node-CMwF0-OF.js";import"./effect-CQrGu-8V.js";import"./fragment-DqC2avbk.js";import{n as e,r as t,t as n}from"./cloudflare-D6q_bWsO.js";export{t as durableObjectHandler,e as getAuthRoutes,n as renku};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "./signal-CqB2Ey1W.js";
|
|
2
2
|
import "./types-C7G4uVGb.js";
|
|
3
|
-
import { t as Routes } from "./types-
|
|
4
|
-
import { n as getAuthRoutes, r as durableObjectHandler, t as renku } from "./index-
|
|
3
|
+
import { t as Routes } from "./types-B2azyMGn.js";
|
|
4
|
+
import { n as getAuthRoutes, r as durableObjectHandler, t as renku } from "./index-B747aB5c.js";
|
|
5
5
|
import { DurableObject } from "cloudflare:workers";
|
|
6
6
|
|
|
7
7
|
//#region src/cloudflare/durable-objects/auth.d.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./context-store-
|
|
1
|
+
import"./context-store-D9atdfKO.js";import"./auth-CFd7zVNL.js";import"./async-generator-to-readable-stream-SYqrIInH.js";import"./signal-store-B0_cH-Uu.js";import"./jsx-to-virtual-node-CMwF0-OF.js";import"./effect-CQrGu-8V.js";import"./fragment-DqC2avbk.js";import{n as e,r as t,t as n}from"./cloudflare-D6q_bWsO.js";import{DurableObject as r}from"cloudflare:workers";const i=e=>{let t=e.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(Math.ceil(e.length/4)*4,`=`),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r},a=e=>btoa(String.fromCharCode(...e)).replace(/=/g,``).replace(/\+/g,`-`).replace(/\//g,`_`);var o=class extends r{challenge=null;constructor(e,t){super(e,t)}createChallenge(){let e=new Uint8Array(16);return self.crypto.getRandomValues(e),this.challenge=a(e),this.challenge}creationOptions({id:e,email:t,rpId:n,rpName:r}){let i=this.createChallenge();return{user:{id:e,name:t,displayName:t},challenge:i,rp:{id:n,name:r},pubKeyCredParams:[{type:`public-key`,alg:-7},{type:`public-key`,alg:-257}]}}async validateCreation({name:e,credential:t}){console.log(`validate`,t);let n=new TextDecoder,r=i(t.response.clientDataJSON),a=JSON.parse(n.decode(r));return a.type===`webauthn.create`&&this.challenge===a.challenge?(this.ctx.storage.kv.put(`credential:${t.id}`,t),this.ctx.storage.kv.put(`name`,e),await this.env.AUTH_DO.getByName(`credential:${t.id}`).storeCredential({name:e,credential:t}),!0):!1}storeCredential({name:e,credential:t}){this.ctx.storage.kv.put(`name`,e),this.ctx.storage.kv.put(`credential`,t)}getChallenge(){return this.challenge}requestOptions({rpId:e}){return{challenge:this.createChallenge(),rpId:e}}async validateRequest({credential:e,sessionExpiryInMinutes:t}){return this.challenge?this.env.AUTH_DO.getByName(`credential:${e.id}`).validateCredential({challenge:this.challenge,credential:e,sessionExpiryInMinutes:t}):!1}async validateCredential({challenge:e,credential:t,sessionExpiryInMinutes:n}){let r=new TextDecoder,a=this.ctx.storage.kv.get(`name`),o=this.ctx.storage.kv.get(`credential`),s=i(t.response.clientDataJSON),c=JSON.parse(r.decode(s));if(console.log(`validateCredential`,{challenge:e,credential:t,clientData:c,storedCredential:o,name:a}),a&&e===c.challenge){let e=crypto.randomUUID();return await this.env.AUTH_DO.getByName(`session:${e}`).createSession({userId:a,sessionExpiryInMinutes:n}),e}return!1}setExpiry(e){this.ctx.storage.kv.put(`expiry`,Date.now()+e*60*1e3)}createSession({userId:e,sessionExpiryInMinutes:t}){this.ctx.storage.kv.put(`userId`,e),this.setExpiry(t)}getUserId(){let e=this.ctx.storage.kv.get(`userId`);return e||(e=crypto.randomUUID(),this.ctx.storage.kv.put(`userId`,e)),e}validateSession({sessionExpiryInMinutes:e}){let t=this.ctx.storage.kv.get(`expiry`),n=this.ctx.storage.kv.get(`userId`);return n&&t&&Date.now()<t?(this.setExpiry(e),{userId:n}):!1}logout(){this.ctx.storage.kv.delete(`userId`)}};export{o as AuthDO,t as durableObjectHandler,e as getAuthRoutes,n as renku};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{buildApplication as e,buildCommand as t,buildRouteMap as n}from"@stricli/core";import{buildInstallCommand as r,buildUninstallCommand as i}from"@stricli/auto-complete";import a from"node:fs";import o from"node:os";import s from"node:path";var c=`renku`,l=`0.0.
|
|
1
|
+
import{buildApplication as e,buildCommand as t,buildRouteMap as n}from"@stricli/core";import{buildInstallCommand as r,buildUninstallCommand as i}from"@stricli/auto-complete";import a from"node:fs";import o from"node:os";import s from"node:path";var c=`renku`,l=`0.0.13`,u=`Renku`;const d=n({routes:{ios:t({loader:async()=>{let{ios:e}=await import(`./impl-O6JZ4waj.js`);return e},parameters:{positional:{kind:`tuple`,parameters:[]},flags:{foo:{kind:`parsed`,optional:!0,parse:String,brief:`Foo`}}},docs:{brief:`Nested ios command`}}),sim:t({loader:async()=>{let{sim:e}=await import(`./impl-O6JZ4waj.js`);return e},parameters:{positional:{kind:`tuple`,parameters:[]},flags:{foo:{kind:`parsed`,optional:!0,parse:String,brief:`Foo`}}},docs:{brief:`Nested sim command`}}),android:t({loader:async()=>{let{android:e}=await import(`./impl-O6JZ4waj.js`);return e},parameters:{positional:{kind:`tuple`,parameters:[]},flags:{foo:{kind:`parsed`,optional:!0,parse:String,brief:`Foo`}}},docs:{brief:`Nested android command`}})},docs:{brief:`Native app generation`}}),f=n({routes:{foo:t({loader:async()=>{let{foo:e}=await import(`./impl-qmFhldR7.js`);return e},parameters:{positional:{kind:`tuple`,parameters:[]},flags:{foo:{kind:`parsed`,optional:!0,parse:String,brief:`Foo`}}},docs:{brief:`Nested foo command`}}),bar:t({loader:async()=>{let{bar:e}=await import(`./impl-qmFhldR7.js`);return e},parameters:{positional:{kind:`tuple`,parameters:[]},flags:{foo:{kind:`parsed`,optional:!0,parse:String,brief:`Foo`}}},docs:{brief:`Nested bar command`}})},docs:{brief:`Nested commands`}}),p=e(n({routes:{subdir:t({loader:async()=>import(`./impl-D9kbwKWf.js`),parameters:{positional:{kind:`tuple`,parameters:[]},flags:{foo:{kind:`parsed`,optional:!0,parse:String,brief:`Foo`}}},docs:{brief:`Command in subdirectory`}}),nested:f,native:d,install:r(`renku`,{bash:`__renku_bash_complete`}),uninstall:i(`renku`,{bash:!0})},docs:{brief:u,hideRoute:{install:!0,uninstall:!0}}}),{name:c,versionInfo:{currentVersion:l}});function m(e){return{process:e,os:o,fs:a,path:s}}export{p as n,m as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{AsyncContext as e}from"#renku/async-context";const t=new e.Variable,n={get current(){return t.get()},set current(e){t.set(e)},run(e,n){return t.run(e,n)},set(e,n){let r=t.get();r||(r=new Map,t.set(r)),r.set(e,n)},get(e){return t.get()?.get(e)}};export{n as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./signal-store-B0_cH-Uu.js";import{t}from"./create-signal-2H8hjZy6.js";function n(e,n){let r=t({status:`loading`,error:!1,data:null});return r.get().status===`loading`&&e().then(async e=>{if(!n)r.set({status:`success`,error:!1,data:e});else{let t=n(e),i=t instanceof Promise?await t:t;r.set({status:`success`,error:!1,data:i})}}).catch(e=>r.set({status:`error`,error:e,data:null})),r}const r=t=>new e.Computed(t);export{n,r as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./context-store-D9atdfKO.js";const t=t=>{let n=Symbol(`renku-context`);return{set:t=>{e.set(n,t)},get:()=>{let r=e.get(n);if(r===void 0&&t!==void 0)return t;if(r===void 0)throw Error(`Context value not found. Make sure to use provide() in a parent component.`);return r}}};export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./signal-store-B0_cH-Uu.js";const t=t=>e.get(t);export{t};
|
package/dist/data.d.ts
CHANGED
|
@@ -64,7 +64,7 @@ declare class MessageQueue {
|
|
|
64
64
|
}
|
|
65
65
|
//#endregion
|
|
66
66
|
//#region src/data/collection/collection.d.ts
|
|
67
|
-
declare class Collection<T extends Schema, K
|
|
67
|
+
declare class Collection<T extends Schema, K extends keyof T> {
|
|
68
68
|
#private;
|
|
69
69
|
constructor({
|
|
70
70
|
name,
|
|
@@ -73,32 +73,32 @@ declare class Collection<T extends Schema, K$1 extends keyof T> {
|
|
|
73
73
|
messageQueue
|
|
74
74
|
}: {
|
|
75
75
|
name: string;
|
|
76
|
-
obj: T[K
|
|
76
|
+
obj: T[K];
|
|
77
77
|
clientId: string;
|
|
78
78
|
messageQueue: MessageQueue;
|
|
79
79
|
});
|
|
80
|
-
mock(): Item<T[K
|
|
81
|
-
get items(): Signal.State<Item<T[K
|
|
80
|
+
mock(): Item<T[K]>;
|
|
81
|
+
get items(): Signal.State<Item<T[K]>[]>;
|
|
82
82
|
query({
|
|
83
83
|
filter,
|
|
84
84
|
limit,
|
|
85
85
|
first
|
|
86
|
-
}?: QueryParams<T, K
|
|
87
|
-
first(params?: Omit<QueryParams<T, K
|
|
88
|
-
all(): Signal.Computed<Item<T[K
|
|
89
|
-
add(item: Item<T[K
|
|
90
|
-
loadItems(items: Item<T[K
|
|
86
|
+
}?: QueryParams<T, K>): Signal.Computed<Item<T[K]>[]>;
|
|
87
|
+
first(params?: Omit<QueryParams<T, K>, "single" | "limit">): Signal.Computed<Item<T[K]> | undefined>;
|
|
88
|
+
all(): Signal.Computed<Item<T[K]>[]>;
|
|
89
|
+
add(item: Item<T[K]>): Item<T[K]>;
|
|
90
|
+
loadItems(items: Item<T[K]>[]): void;
|
|
91
91
|
}
|
|
92
92
|
//#endregion
|
|
93
93
|
//#region src/data/collection/remote-collection.d.ts
|
|
94
|
-
declare class RemoteCollection<T extends Schema, K
|
|
94
|
+
declare class RemoteCollection<T extends Schema, K extends keyof T> extends RpcTarget {
|
|
95
95
|
#private;
|
|
96
|
-
constructor(collection: Collection<T, K
|
|
97
|
-
get items(): Item<T[K
|
|
98
|
-
query(params?: QueryParams<T, K
|
|
99
|
-
first(params?: Omit<QueryParams<T, K
|
|
100
|
-
all(): Item<T[K
|
|
101
|
-
add(item: Item<T[K
|
|
96
|
+
constructor(collection: Collection<T, K>);
|
|
97
|
+
get items(): Item<T[K]>[];
|
|
98
|
+
query(params?: QueryParams<T, K>): Item<T[K]>[];
|
|
99
|
+
first(params?: Omit<QueryParams<T, K>, "single" | "limit">): Item<T[K]> | undefined;
|
|
100
|
+
all(): Item<T[K]>[];
|
|
101
|
+
add(item: Item<T[K]>): void;
|
|
102
102
|
}
|
|
103
103
|
//#endregion
|
|
104
104
|
//#region src/data/collection/types.d.ts
|
|
@@ -118,8 +118,8 @@ type Item<T extends ObjectSchema> = { [K in keyof T as T[K] extends {
|
|
|
118
118
|
};
|
|
119
119
|
type Collections<T extends Schema> = { [K in keyof T]: Collection<T, K> };
|
|
120
120
|
type RemoteCollections<T extends Schema> = { [K in keyof T]: RemoteCollection<T, K> };
|
|
121
|
-
type QueryParams<T extends Schema, K
|
|
122
|
-
filter?: (item: Item<T[K
|
|
121
|
+
type QueryParams<T extends Schema, K extends keyof T> = {
|
|
122
|
+
filter?: (item: Item<T[K]>) => boolean;
|
|
123
123
|
limit?: number;
|
|
124
124
|
first?: boolean;
|
|
125
125
|
};
|
package/dist/data.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./signal-store-
|
|
1
|
+
import"./signal-store-B0_cH-Uu.js";import{t as e}from"./create-signal-2H8hjZy6.js";import{n as t,t as n}from"./create-computed-DTLDV6XM.js";import{RpcTarget as r}from"capnweb";const i=e=>{switch(e){case`string`:return`TEXT`;case`number`:return`INTEGER`;case`boolean`:return`INTEGER`;default:throw Error(`Unsupported type: ${String(e)}`)}},a=e=>{let t=``;for(let[n,r]of Object.entries(e).filter(([e])=>e!==`~standard`)){let e=Object.entries(r).filter(([e])=>e!==`~standard`).map(([e,t])=>`${e} ${i(t.type)}`).join(`, `);e&&(t+=`CREATE TABLE IF NOT EXISTS obj_${n} (${e});`)}return t+=`CREATE TABLE IF NOT EXISTS __renku (id TEXT NOT NULL PRIMARY KEY, value TEXT NOT NULL);`,t+=`INSERT INTO __renku (id, value) VALUES ('client_id', '${crypto.randomUUID()}') ON CONFLICT (id) DO NOTHING;`,t+=`CREATE TABLE IF NOT EXISTS __crdt (id TEXT NOT NULL PRIMARY KEY, timestamp TEXT NOT NULL, client TEXT NOT NULL, object TEXT NOT NULL, item TEXT NOT NULL, updates TEXT);`,t},o=({db:e,schema:t})=>{let n=a(t);e.exec(n);let r=e.query(`SELECT value FROM __renku WHERE id = 'client_id' LIMIT 1`);if(!r[0])throw Error(`Client ID not found`);e.clientId=r[0].value},s=({client:e,object:t,item:n})=>{let{id:r,...i}=n;return{id:crypto.randomUUID(),timestamp:Date.now().toString(),client:e,object:t,item:r,updates:JSON.stringify(i)}};var c=class{#e=new Set;subscribe(e){return this.#e.add(e),()=>{this.#e.delete(e)}}#t(e){console.log(`this.#subscriptions`,this.#e);for(let t of this.#e){if(t.filter&&!t.filter(e))continue;console.log(`✉️`,`Dispatching`,t.label);let n=t.subscriber(e);n instanceof Promise&&n.catch(e=>{console.error(`MessageQueue subscriber failed.`,e)})}}add(e){this.#t(e)}},l=class{#e;#t;#n;#r=e([]);#i;constructor({name:e,obj:t,clientId:n,messageQueue:r}){this.#e=n,this.#t=e,this.#n=t,this.#i=r,this.#i.subscribe({subscriber:e=>this.#a(e),filter:e=>e.object===this.#t,label:`Collection: ${this.#t}`})}mock(){return Object.entries(this.#n).reduce((e,[t,n])=>(e[t]=n.mock?n.mock():void 0,e),{})}#a(e){let t=this.#r.get(),n=t.findIndex(t=>t.id===e.item);if(e.updates===`DELETE`){if(n<0)return;let e=t.slice();e.splice(n,1),this.#r.set(e);return}let r=JSON.parse(e.updates),i={...n>=0?t[n]:void 0,...r,id:e.item};if(n>=0){let e=t.slice();e[n]=i,this.#r.set(e);return}this.#r.set(t.concat(i))}get items(){return this.#r}query({filter:e,limit:t,first:r}={}){return n(()=>{let n=this.#r.get().filter(e||(()=>!0));return(t||r)&&(n=n.slice(0,r?1:t)),n})}first(e={}){return e.first=!0,n(()=>{let t=this.query(e).get();return t.length>0?t[0]:void 0})}all(){return this.query()}add(e){let t=s({client:this.#e,object:this.#t,item:e});return this.#i.add(t),e}loadItems(e){this.#r.set(e)}};const u=({schema:e,clientId:t,messageQueue:n})=>Object.entries(e).reduce((e,[r,i])=>{let a=r;return e[a]=new l({name:r,obj:i,clientId:t,messageQueue:n}),e},{});var d=class extends r{#e;constructor(e){super(),this.#e=e}get items(){return this.#e.items.get()}query(e={}){return this.#e.query(e).get()}first(e={}){return this.#e.first(e).get()}all(){return this.query()}add(e){this.#e.add(e)}};const f=e=>{let t=Object.entries(e).reduce((e,[t,n])=>{let r=t;return e[r]=new d(n),e},{});return console.log(`remoteCollections:`,t),t},p=e=>t=>{e.transaction(e=>{if(e.exec(`INSERT INTO __crdt (id, timestamp, client, object, item, updates) VALUES (?, ?, ?, ?, ?, ?);`,t.id,t.timestamp,t.client,t.object,t.item,t.updates),t.updates===`DELETE`)e.exec(`DELETE FROM obj_${t.object} WHERE id = ?;`,t.item);else{let n=[t.item],r=JSON.parse(t.updates),i=[`id`].concat(Object.keys(r));n.push(...Object.values(r));let a=`INSERT INTO obj_${t.object} (${i.join(`, `)}) VALUES (${n.map(()=>`?`).join(`, `)});`;e.exec(a,...n)}})};var m=class extends r{#e;#t;#n;messageQueue=new c;#r;#i;#a=!1;constructor({schema:e,db:t}){super(),this.#e=e,t?(this.#n=t,this.#t=this.#n.clientId,this.messageQueue.subscribe({subscriber:p(this.#n),label:`Local database (Client ID: ${this.#t})`})):this.#t=crypto.randomUUID(),this.#r=u({schema:this.#e,clientId:this.#t,messageQueue:this.messageQueue}),this.#i=f(this.#r)}get _collections(){return this.#r}get _remoteCollections(){return this.#i}get _db(){return this.#n}_rehydrateCollectionsFromDb(){if(!(!this.#n||this.#a)){for(let e of Object.keys(this.#e)){let t=e,n=this.#n.query(`SELECT * FROM obj_${e}`)??[];this.#r[t].loadItems(n)}this.#a=!0}}get schema(){return this.#e}get clientId(){return this.#t}ingest(e){console.log(`📳📳📳`,`Ingest`,e),this.messageQueue.add(e)}async[Symbol.dispose](){console.log(`🗑️🗑️🗑️`,`Data RPC disposing (Client ID: ${this.clientId})`)}},h=class e extends m{#e;#t;constructor({schema:e,db:t,remote:n}){if(super({schema:e,db:t}),this.#e=n,this.#e){this.#e.connect({clientId:this.clientId,ingest:this.ingest.bind(this)}).then(e=>(this.#t=e,this.load())).catch(e=>{console.error(`Remote connect or load failed:`,e)});let e=this.messageQueue.subscribe({subscriber:async e=>{await this.#e?.ingest(e),console.log(`Send to remote`,e)},filter:e=>e.client===this.clientId,label:`Remote`});this.#e.onRpcBroken(()=>{console.log(`Remote connection broken, unsubscribing ...`),e()})}}static async client({schema:t,remote:n}){return new e({schema:t,db:!1,remote:n})}static signal({schema:e,remote:n}){return t(()=>this.client({schema:e,remote:n}))}get collections(){return this._collections}async load(){if(!this.#e)return;let e=await this.#e.load();for(let t of Object.keys(e)){let n=t,r=e[n];this._collections[n].loadItems(r)}}async[Symbol.dispose](){console.log(`🗑️ Client Data RPC disposing (CID: ${this.clientId})`),this.#t&&await this.#t()}};const g=e=>{let t={exec:(t,...n)=>e.sql.exec(t,...n),query:(t,...n)=>e.sql.exec(t,...n).toArray(),transaction:n=>e.transactionSync(()=>n(t))};return t};var _=class e extends m{constructor({schema:e,db:t}){super({schema:e,db:t}),this._rehydrateCollectionsFromDb()}static durableObject({schema:t,storage:n}){let r=g(n);return o({db:r,schema:t}),new e({schema:t,db:r})}get collections(){return this._rehydrateCollectionsFromDb(),this._remoteCollections}load(){this._rehydrateCollectionsFromDb();let e={};for(let t of Object.keys(this.schema)){let n=t;e[n]=this._db?.query(`SELECT * FROM obj_${t}`)??[]}return e}async connect({clientId:e,ingest:t}){console.log(`📳📳📳`,`connect from`,e,t),t.onRpcBroken(()=>{console.log(`📳📳📳`,e,`Ingest RPC broken`)});let n=t.dup();return console.log(`Subscribing client`,e),this.messageQueue.subscribe({subscriber:async e=>await n({...e,id:`${e.id}-CONNECT-${crypto.randomUUID()}`}),filter:t=>t.client!==e,label:`Client: ${e}`})}};const v=e=>e;function y(e){let t={};return t.type=e.type,t}function b(e){let t=t=>{if(t.target!==`draft-2020-12`&&t.target!==`draft-07`)throw Error(`Unsupported JSON Schema target: ${t.target}. Supported targets: draft-2020-12, draft-07`);let n={},r=[];for(let[t,i]of Object.entries(e))n[t]=y(i),i.required===!0&&r.push(t);let i={$schema:t.target===`draft-2020-12`?`https://json-schema.org/draft/2020-12/schema`:`http://json-schema.org/draft-07/schema#`,type:`object`,properties:n,additionalProperties:!1};return r.length>0&&(i.required=r),i};return{input:t,output:t}}function x(e,t,n){return e.type===`string`?typeof t==`string`?{value:t}:{issues:[{message:`Expected string for ${n}, got ${typeof t}`}]}:e.type===`number`?typeof t==`number`?{value:t}:{issues:[{message:`Expected number for ${n}, got ${typeof t}`}]}:e.type===`boolean`?typeof t==`boolean`?{value:t}:{issues:[{message:`Expected boolean for ${n}, got ${typeof t}`}]}:{issues:[{message:`Unknown property type for ${n}`}]}}function S(e,t){return n=>{if(typeof n!=`object`||!n||Array.isArray(n))return{issues:[{message:`Expected object for ${e}, got ${typeof n}`}]};let r=n,i=[];for(let[e,n]of Object.entries(t)){if(n.required&&!(e in r)){i.push({message:`Missing required field: ${e}`,path:[e]});continue}if(e in r){let t=x(n,r[e],e);if(t.issues)for(let n of t.issues)i.push({...n,path:[e,...n.path||[]]})}}return i.length>0?{issues:i}:{value:r}}}function C(e,t){return x(e,t,`property`)}const w=e=>{let t={};for(let[n,r]of Object.entries(e))t[n]={...r,"~standard":{version:1,vendor:`renku`,validate:S(n,r),jsonSchema:b(r),types:{input:void 0,output:void 0}}};return t},T={type:`string`,required:!0,unique:!0,mock:()=>crypto.randomUUID().toString()};export{h as ClientData,_ as ServerData,w as enhancedSchema,T as id,v as schema,C as validatePropertyValue};
|
package/dist/dom.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "./signal-CqB2Ey1W.js";
|
|
2
2
|
import { a as RenkuNode, n as FunctionComponent, s as SuspenseComponent } from "./types-C7G4uVGb.js";
|
|
3
|
-
import { t as Routes } from "./types-
|
|
3
|
+
import { t as Routes } from "./types-B2azyMGn.js";
|
|
4
4
|
|
|
5
5
|
//#region src/router/router.d.ts
|
|
6
6
|
declare const Router: FunctionComponent<{
|
package/dist/dom.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./context-store-
|
|
1
|
+
import"./context-store-D9atdfKO.js";import"./signal-store-B0_cH-Uu.js";import{r as e,t}from"./jsx-to-virtual-node-CMwF0-OF.js";import"./effect-CQrGu-8V.js";import"./fragment-DqC2avbk.js";import{n,t as r}from"./render-dom-node-drdl_pap.js";import{n as i,t as a}from"./get-route--eZsPlal.js";import{jsx as o}from"#renku/jsx-runtime";const s=async({routes:e})=>{let t=a({request:new Request(window.location.href),routes:e});if(!t||t.api)return o(`div`,{children:`Not Found`});let n=await i(t.route,t.params);if(n instanceof Response||n==null)return o(`div`,{children:`Not Found`});for(let e of t.layouts){let t=await i(e,{children:n});if(t instanceof Response||t==null)return o(`div`,{children:`Not Found`});n=t}return n},c=(e,i)=>{let a=t({node:e});i.replaceChildren(),Array.isArray(a)?n({domNode:i,virtualNode:a}):r({domNode:i,virtualNode:a})},l=Object.assign(({fallback:e,children:t})=>(console.log(`Suspense`,{fallback:e,children:t}),{fallback:e,children:t}),{[e]:!0});export{s as Router,l as Suspense,c as render};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./signal-store-
|
|
1
|
+
import{n as e}from"./signal-store-B0_cH-Uu.js";let t=!0;const n=new e.subtle.Watcher(()=>{t&&(t=!1,queueMicrotask(r))});function r(){t=!0;for(let e of n.getPending())e.get();n.watch()}const i=t=>{let r,i=new e.Computed(()=>{typeof r==`function`&&r();let e=t();r=typeof e==`function`?e:void 0});return n.watch(i),i.get(),()=>{n.unwatch(i),typeof r==`function`&&r(),r=void 0}};export{i as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as Routes } from "./types-
|
|
1
|
+
import { t as Routes } from "./types-B2azyMGn.js";
|
|
2
2
|
|
|
3
3
|
//#region src/cloudflare/durable-object-handler.d.ts
|
|
4
4
|
declare const durableObjectHandler: ({
|
|
@@ -19,12 +19,12 @@ interface AuthOptions {
|
|
|
19
19
|
declare const getAuthRoutes: (options: AuthOptions) => Routes<Env>;
|
|
20
20
|
//#endregion
|
|
21
21
|
//#region src/cloudflare/renku.d.ts
|
|
22
|
-
declare const renku: <Env
|
|
22
|
+
declare const renku: <Env = unknown>({
|
|
23
23
|
routes,
|
|
24
24
|
queue
|
|
25
25
|
}: {
|
|
26
|
-
routes: Routes<Env
|
|
27
|
-
queue?: ExportedHandlerQueueHandler<Env
|
|
28
|
-
}) => ExportedHandler<Env
|
|
26
|
+
routes: Routes<Env>;
|
|
27
|
+
queue?: ExportedHandlerQueueHandler<Env>;
|
|
28
|
+
}) => ExportedHandler<Env>;
|
|
29
29
|
//#endregion
|
|
30
30
|
export { getAuthRoutes as n, durableObjectHandler as r, renku as t };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as Signal } from "./signal-CqB2Ey1W.js";
|
|
2
2
|
import { a as RenkuNode, i as LayoutComponent, n as FunctionComponent, o as Fragment } from "./types-C7G4uVGb.js";
|
|
3
|
-
import { t as Routes } from "./types-
|
|
3
|
+
import { t as Routes } from "./types-B2azyMGn.js";
|
|
4
4
|
import { a as RpcTarget, i as RpcStub, n as Loader, r as RpcCompatible, t as Context } from "./types-dktP5VqD.js";
|
|
5
|
-
import { t as registerServerFunction } from "./register-server-function-
|
|
5
|
+
import { t as registerServerFunction } from "./register-server-function-RuJLKnp7.js";
|
|
6
6
|
|
|
7
7
|
//#region src/reactivity/create-computed.d.ts
|
|
8
8
|
declare const createComputed: <T>(fn: () => T) => Signal.Computed<T>;
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./context-store-
|
|
1
|
+
import"./context-store-D9atdfKO.js";import{n as e}from"./signal-store-B0_cH-Uu.js";import{t}from"./effect-CQrGu-8V.js";import{t as n}from"./fragment-DqC2avbk.js";import{t as r}from"./create-signal-2H8hjZy6.js";import{n as i,t as a}from"./create-computed-DTLDV6XM.js";import{t as o}from"./create-context-Ccu6Wido.js";import{t as s}from"./register-server-function-B1SlD-tr.js";import{RpcStub as c,RpcTarget as l}from"capnweb";const u=(e,t)=>i(()=>fetch(e).then(async e=>await t(e))),d=(e,n=!0)=>i(async()=>{let i=await e(),a=r(await i.get());return i.subscribe(e=>a.set(e)),t(()=>{n&&i.set(a.get())}),a});var f=class extends l{#e;#t=new Set;#n;constructor(e,t){super(),this.#e=e,this.#n=t}get(){return this.#e}async set(e){this.#n&&(e=this.#n(e)),this.#e=e;for(let t of this.#t)try{await t(e)}catch(e){console.error(`Error in subscriber:`,e),this.#t.delete(t)}}subscribe(e){return this.#t.add(e.dup()),new Promise((t,n)=>{e.onRpcBroken(t=>{this.#t.delete(e),n(t)})})}};export{n as Fragment,f as RemoteSignal,c as RpcStub,l as RpcTarget,e as Signal,a as createComputed,o as createContext,u as createFetched,i as createLoader,d as createRemoteSignal,r as createSignal,t as effect,s as registerServerFunction};
|
package/dist/jsx-dev-runtime.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./fragment-
|
|
1
|
+
import{t as e}from"./fragment-DqC2avbk.js";import{t}from"./create-element-Cir0MD8J.js";const n=(e,n,r,i,a,o)=>t(e,n,r);export{e as Fragment,n as jsxDEV};
|
package/dist/jsx-runtime.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./fragment-
|
|
1
|
+
import{t as e}from"./fragment-DqC2avbk.js";import{t}from"./create-element-Cir0MD8J.js";export{e as Fragment,t as jsx,t as jsxs};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./context-store-D9atdfKO.js";import{n as t,t as n}from"./signal-store-B0_cH-Uu.js";import{t as r}from"./effect-CQrGu-8V.js";import{n as i}from"./fragment-DqC2avbk.js";const a=Symbol(`renku:suspense`),o=e=>e&&typeof e.type==`function`&&e.type[a]===!0,s=({fn:t,key:i,props:a,asyncComponents:o,clientComponents:s})=>{let c=null,l=null,d=e=>{c=e,l&&l(e)},f=[],p=e.current,m=p?new Map(p):new Map;return r(()=>{n.set(f),d(e.run(m,()=>{let e=t(a);if(e instanceof Promise){let t=s.length+o.length+1;return o.push(new Promise(n=>{e.then(e=>{n({index:t,node:e})})})),{type:`async`,key:i,promise:e,index:t}}return u({node:e,asyncComponents:o,clientComponents:s})}))}),{type:`effect`,value:c,addCallback:e=>{l=e}}},c=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&`type`in e&&typeof e.type==`function`&&e.type[i]===!0,l=({node:e,asyncComponents:t=[],clientComponents:n=[]})=>{let r=[];if(Array.isArray(e))for(let i of e)r.push(...l({node:i,asyncComponents:t,clientComponents:n}));else if(e)if(c(e)){let i=e.type(e.props);r.push(...l({node:i,asyncComponents:t,clientComponents:n}))}else{let i=u({node:e,asyncComponents:t,clientComponents:n});Array.isArray(i)?r.push(...i):r.push(i)}return r},u=({node:e,asyncComponents:n=[],clientComponents:r=[]})=>{if(Array.isArray(e))return l({node:e,asyncComponents:n,clientComponents:r});if(e==null)return null;if(typeof e==`string`||typeof e==`number`)return{type:`text`,value:String(e)};if(e instanceof t.Computed||e instanceof t.State)return{type:`signal`,value:e};if(typeof e==`object`){if(typeof e.type==`function`){if(o(e)){console.log(`🚨`,`Suspense`,e);let t=l({node:e.props.children,asyncComponents:n,clientComponents:r}),i=l({node:e.props.fallback,asyncComponents:n,clientComponents:r});return{type:`suspense`,key:e.key,suspended:t,fallback:i}}return s({fn:e.type,key:e.key,props:e.props,asyncComponents:n,clientComponents:r})}if(typeof e.type==`object`&&e.type.type===`client`)return r.push({path:e.type.path,name:e.type.name}),{type:`client`,key:e.key,props:e.props,path:e.type.path,name:e.type.name};if(typeof e.type==`string`){let{children:t,...i}=e.props,a=l({node:t,asyncComponents:n,clientComponents:r});return{type:`element`,key:e.key,value:e.type,props:i,children:a}}}return console.warn(`⚠️`,`UNHANDLED NODE TYPE`,e),null};export{s as n,a as r,u as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./signal-store-B0_cH-Uu.js";import{t}from"./jsx-to-virtual-node-CMwF0-OF.js";import{t as n}from"./effect-CQrGu-8V.js";function r({domNode:e,virtualNode:t,replace:n=!1}){let r=[];for(let i of t){let t=o({domNode:e,virtualNode:i,replace:n});n=!1,r.push(t)}return r}const i=({element:t,key:r,val:i})=>{typeof i==`function`?r.startsWith(`on`)&&t.addEventListener(r.slice(2),i):typeof i==`string`||typeof i==`number`?(r===`className`&&(r=`class`),t.setAttribute(r,String(i))):i instanceof e.State||i instanceof e.Computed?n(()=>{t.setAttribute(r,String(i.get()))}):Array.isArray(i)?n(()=>{let n=i.map(t=>t instanceof e.State||t instanceof e.Computed?String(t.get()):String(t)).join(` `);t.setAttribute(r,n)}):typeof i==`boolean`&&(i?t.setAttribute(r,``):t.removeAttribute(r))},a=({domNode:e,newVirtualNode:t,oldVirtualNode:n})=>{let r=e=>e&&`key`in e?e.key??null:null;if(t&&n)if(t.type===n.type){if(t.type===`effect`&&n.type===`effect`)return n.domNode&&(t.domNode=o({domNode:n.domNode,virtualNode:t,replace:!0})??void 0),e;if(t.type===`element`&&n.type===`element`)if(t.value===n.value){let s=e,c=n.props?Object.keys(n.props).filter(e=>!(e in t.props)):[];c.length&&c.map(e=>s.removeAttribute(e));for(let[e,r]of Object.entries(t.props))if(e!==`children`&&e!==`key`)if(n.props&&e in n.props){let t=n.props[e];typeof r==`function`||(Array.isArray(r)&&Array.isArray(t)?JSON.stringify(r)!==JSON.stringify(t)&&i({element:s,key:e,val:r}):n.props[e]!==r&&i({element:s,key:e,val:r}))}else i({element:s,key:e,val:r});if(t.children.length){let e=0,i=n.children?[...n.children]:[];for(let n=0;n<t.children.length;n++){let c=t.children[n];if(c){let t=i[n-e];if(t?.domNode)if(r(c)===r(t))c.domNode=t.domNode,a({domNode:t.domNode,newVirtualNode:c,oldVirtualNode:t});else{let n=r(c),o=i.findIndex(e=>r(e)===n),l=o>-1?i[o]:null;l?.domNode&&(s.moveBefore(l.domNode,t.domNode),c.domNode=l.domNode,e++,a({domNode:l.domNode,newVirtualNode:c,oldVirtualNode:l}),i.splice(o,1))}else{let t=n-e,r=s.childNodes[t];o(r?{domNode:r,virtualNode:c,replace:!0}:{domNode:s,virtualNode:c})}i[n-e]=null}}if(i.length+e>t.children.length)for(let n=t.children.length;n<i.length+e;n++){let t=i[n-e]?.domNode;t&&s.removeChild(t)}}else n.children?.length&&s.replaceChildren()}else console.log(`Different node types`),n.domNode&&o({domNode:n.domNode,virtualNode:t,replace:!0});else t.type===`text`&&n.type===`text`&&t.value!==n.value&&(t.domNode=n.domNode,t.domNode.nodeValue=t.value)}else console.warn(`Different node types`),n.domNode&&o({domNode:n.domNode,virtualNode:t,replace:!0});else console.warn(`Old or new node is null`);return e};function o({domNode:e,virtualNode:s,replace:c=!1}){if(!s)return null;let l=[`svg`,`path`,`circle`];if(s.type===`element`){let t=l.includes(s.value)?document.createElementNS(`http://www.w3.org/2000/svg`,s.value):document.createElement(s.value);if(s.domNode=t,s.props.ref){let e=s.props.ref;console.log(`has ref`,e.get()),e.set(s.domNode),console.log(`assigned ref`,s.domNode),console.log(`has ref`,e.get())}for(let[e,n]of Object.entries(s.props))e!==`children`&&e!==`key`&&e!==`ref`&&i({element:t,key:e,val:n});if(s.children)for(let e of s.children)o({domNode:t,virtualNode:e});if(e===document.documentElement)document.documentElement.replaceWith(t);else{let n=e.parentNode;c&&n?n.replaceChild(t,e):e.appendChild(t)}return t}if(s.type===`async`){let n=document.createElement(`template`);return s.domNode=n,s.index!==void 0&&(n.dataset.id=`async-placeholder-${s.index}`),e.appendChild(n),s.promise?.then(e=>{let i=t({node:e});Array.isArray(i)?r({domNode:n,virtualNode:i,replace:!0}):o({domNode:n,virtualNode:i,replace:!0})}),n}if(s.type===`client`){let t=document.createComment(`CLIENT`);return s.domNode=t,e.appendChild(t),t}if(s.type===`text`){let t=document.createTextNode(s.value);return s.domNode=t,e.appendChild(t),t}if(s.type===`signal`){let t=s.value,r=document.createTextNode(``);return s.domNode=r,n(()=>{r.textContent=String(t.get())}),e.appendChild(r),r}if(s.type===`suspense`){let t=document.createTextNode(``);t.textContent=`SUSPENSE`;let n=document.createElement(`div`);if(n.appendChild(t),s.domNode=n,console.log(`render suspense`,e,t),e===document.documentElement)document.documentElement.replaceWith(n);else{let t=e.parentNode;c&&t?t.replaceChild(n,e):e.appendChild(n)}return n}if(s.type===`effect`){let t=s.value,n=null,i=null,l=t=>{Array.isArray(t)?r({domNode:e,virtualNode:t,replace:c}):n?(n=a({domNode:n,newVirtualNode:t,oldVirtualNode:i}),i=t,s.domNode=n):(n=o({domNode:e,virtualNode:t,replace:c}),i=t,s.domNode=n,t=null)};s.addCallback(l),l(t)}return null}export{r as n,o as t};
|
package/dist/server.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "./signal-CqB2Ey1W.js";
|
|
2
2
|
import { t as ClientComponent } from "./types-C7G4uVGb.js";
|
|
3
|
-
import { t as registerServerFunction } from "./register-server-function-
|
|
3
|
+
import { t as registerServerFunction } from "./register-server-function-RuJLKnp7.js";
|
|
4
4
|
|
|
5
5
|
//#region src/server/register-client-reference.d.ts
|
|
6
6
|
declare const registerClientReference: (_fn: () => void, path: string, name: string) => ClientComponent;
|
package/dist/theme.css
CHANGED
|
@@ -1,59 +1,127 @@
|
|
|
1
1
|
/* https://tailwindcss.com/docs/dark-mode#using-a-data-attribute */
|
|
2
2
|
@custom-variant dark (&:where([data-theme=dark], [data-theme=dark] *));
|
|
3
|
+
/* @custom-variant dark (&:is(.dark *)); */
|
|
3
4
|
|
|
4
|
-
@theme {
|
|
5
|
-
|
|
6
|
-
--
|
|
7
|
-
--
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
--
|
|
11
|
-
--
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
--color-
|
|
15
|
-
--color-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
--color-
|
|
19
|
-
--color-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
--color-
|
|
23
|
-
--color-
|
|
5
|
+
@theme inline {
|
|
6
|
+
--radius-sm: calc(var(--radius) - 4px);
|
|
7
|
+
--radius-md: calc(var(--radius) - 2px);
|
|
8
|
+
--radius-lg: var(--radius);
|
|
9
|
+
--radius-xl: calc(var(--radius) + 4px);
|
|
10
|
+
--radius-2xl: calc(var(--radius) + 8px);
|
|
11
|
+
--radius-3xl: calc(var(--radius) + 12px);
|
|
12
|
+
--radius-4xl: calc(var(--radius) + 16px);
|
|
13
|
+
--color-background: var(--background);
|
|
14
|
+
--color-foreground: var(--foreground);
|
|
15
|
+
--color-card: var(--card);
|
|
16
|
+
--color-card-foreground: var(--card-foreground);
|
|
17
|
+
--color-popover: var(--popover);
|
|
18
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
19
|
+
--color-primary: var(--primary);
|
|
20
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
21
|
+
--color-secondary: var(--secondary);
|
|
22
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
23
|
+
--color-muted: var(--muted);
|
|
24
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
25
|
+
--color-accent: var(--accent);
|
|
26
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
27
|
+
--color-destructive: var(--destructive);
|
|
28
|
+
--color-border: var(--border);
|
|
29
|
+
--color-input: var(--input);
|
|
30
|
+
--color-ring: var(--ring);
|
|
31
|
+
--color-chart-1: var(--chart-1);
|
|
32
|
+
--color-chart-2: var(--chart-2);
|
|
33
|
+
--color-chart-3: var(--chart-3);
|
|
34
|
+
--color-chart-4: var(--chart-4);
|
|
35
|
+
--color-chart-5: var(--chart-5);
|
|
36
|
+
--color-sidebar: var(--sidebar);
|
|
37
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
38
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
39
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
40
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
41
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
42
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
43
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
44
|
+
}
|
|
24
45
|
|
|
25
|
-
|
|
26
|
-
--
|
|
27
|
-
--
|
|
46
|
+
:root {
|
|
47
|
+
--radius: 0.625rem;
|
|
48
|
+
--background: oklch(1 0 0);
|
|
49
|
+
--foreground: oklch(0.145 0 0);
|
|
50
|
+
--card: oklch(1 0 0);
|
|
51
|
+
--card-foreground: oklch(0.145 0 0);
|
|
52
|
+
--popover: oklch(1 0 0);
|
|
53
|
+
--popover-foreground: oklch(0.145 0 0);
|
|
54
|
+
--primary: oklch(0.205 0 0);
|
|
55
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
56
|
+
--secondary: oklch(0.97 0 0);
|
|
57
|
+
--secondary-foreground: oklch(0.205 0 0);
|
|
58
|
+
--muted: oklch(0.97 0 0);
|
|
59
|
+
--muted-foreground: oklch(0.556 0 0);
|
|
60
|
+
--accent: oklch(0.97 0 0);
|
|
61
|
+
--accent-foreground: oklch(0.205 0 0);
|
|
62
|
+
--destructive: oklch(0.577 0.245 27.325);
|
|
63
|
+
--border: oklch(0.922 0 0);
|
|
64
|
+
--input: oklch(0.922 0 0);
|
|
65
|
+
--ring: oklch(0.708 0 0);
|
|
66
|
+
--chart-1: oklch(0.646 0.222 41.116);
|
|
67
|
+
--chart-2: oklch(0.6 0.118 184.704);
|
|
68
|
+
--chart-3: oklch(0.398 0.07 227.392);
|
|
69
|
+
--chart-4: oklch(0.828 0.189 84.429);
|
|
70
|
+
--chart-5: oklch(0.769 0.188 70.08);
|
|
71
|
+
--sidebar: oklch(0.985 0 0);
|
|
72
|
+
--sidebar-foreground: oklch(0.145 0 0);
|
|
73
|
+
--sidebar-primary: oklch(0.205 0 0);
|
|
74
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
75
|
+
--sidebar-accent: oklch(0.97 0 0);
|
|
76
|
+
--sidebar-accent-foreground: oklch(0.205 0 0);
|
|
77
|
+
--sidebar-border: oklch(0.922 0 0);
|
|
78
|
+
--sidebar-ring: oklch(0.708 0 0);
|
|
28
79
|
}
|
|
29
80
|
|
|
30
81
|
@layer theme {
|
|
31
82
|
* {
|
|
32
83
|
@variant dark {
|
|
33
|
-
|
|
34
|
-
--
|
|
35
|
-
--
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
--
|
|
39
|
-
--
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
--
|
|
43
|
-
--
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
--
|
|
47
|
-
--
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
--
|
|
51
|
-
--
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
--
|
|
55
|
-
--
|
|
84
|
+
--background: oklch(0.145 0 0);
|
|
85
|
+
--foreground: oklch(0.985 0 0);
|
|
86
|
+
--card: oklch(0.205 0 0);
|
|
87
|
+
--card-foreground: oklch(0.985 0 0);
|
|
88
|
+
--popover: oklch(0.205 0 0);
|
|
89
|
+
--popover-foreground: oklch(0.985 0 0);
|
|
90
|
+
--primary: oklch(0.922 0 0);
|
|
91
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
92
|
+
--secondary: oklch(0.269 0 0);
|
|
93
|
+
--secondary-foreground: oklch(0.985 0 0);
|
|
94
|
+
--muted: oklch(0.269 0 0);
|
|
95
|
+
--muted-foreground: oklch(0.708 0 0);
|
|
96
|
+
--accent: oklch(0.269 0 0);
|
|
97
|
+
--accent-foreground: oklch(0.985 0 0);
|
|
98
|
+
--destructive: oklch(0.704 0.191 22.216);
|
|
99
|
+
--border: oklch(1 0 0 / 10%);
|
|
100
|
+
--input: oklch(1 0 0 / 15%);
|
|
101
|
+
--ring: oklch(0.556 0 0);
|
|
102
|
+
--chart-1: oklch(0.488 0.243 264.376);
|
|
103
|
+
--chart-2: oklch(0.696 0.17 162.48);
|
|
104
|
+
--chart-3: oklch(0.769 0.188 70.08);
|
|
105
|
+
--chart-4: oklch(0.627 0.265 303.9);
|
|
106
|
+
--chart-5: oklch(0.645 0.246 16.439);
|
|
107
|
+
--sidebar: oklch(0.205 0 0);
|
|
108
|
+
--sidebar-foreground: oklch(0.985 0 0);
|
|
109
|
+
--sidebar-primary: oklch(0.488 0.243 264.376);
|
|
110
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
111
|
+
--sidebar-accent: oklch(0.269 0 0);
|
|
112
|
+
--sidebar-accent-foreground: oklch(0.985 0 0);
|
|
113
|
+
--sidebar-border: oklch(1 0 0 / 10%);
|
|
114
|
+
--sidebar-ring: oklch(0.556 0 0);
|
|
56
115
|
}
|
|
57
116
|
}
|
|
58
117
|
}
|
|
59
118
|
|
|
119
|
+
@layer base {
|
|
120
|
+
* {
|
|
121
|
+
@apply border-border outline-ring/50;
|
|
122
|
+
}
|
|
123
|
+
body {
|
|
124
|
+
@apply bg-background text-foreground;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
@@ -10,11 +10,11 @@ type AugmentedRequest<Params extends ParamsBase> = Request & {
|
|
|
10
10
|
params: Partial<Params>;
|
|
11
11
|
};
|
|
12
12
|
type ParamsBase = Record<string, string>;
|
|
13
|
-
type ApiHandler<Params extends ParamsBase, Env = unknown
|
|
14
|
-
type MethodRoute<Params extends ParamsBase, Env = unknown
|
|
15
|
-
GET?: ApiHandler<Params, Env
|
|
16
|
-
POST?: ApiHandler<Params, Env
|
|
17
|
-
ALL?: ApiHandler<Params, Env
|
|
13
|
+
type ApiHandler<Params extends ParamsBase, Env = unknown> = (request: AugmentedRequest<Params>, env: Env, ctx: unknown) => Response | Promise<Response>;
|
|
14
|
+
type MethodRoute<Params extends ParamsBase, Env = unknown> = {
|
|
15
|
+
GET?: ApiHandler<Params, Env> | ResolvableRouteModule<Params>;
|
|
16
|
+
POST?: ApiHandler<Params, Env>;
|
|
17
|
+
ALL?: ApiHandler<Params, Env>;
|
|
18
18
|
};
|
|
19
19
|
type RouteModule<Params> = {
|
|
20
20
|
default: FunctionComponent<Params>;
|
|
@@ -22,7 +22,7 @@ type RouteModule<Params> = {
|
|
|
22
22
|
type RouteModulePromise<Params> = Promise<RouteModule<Params>>;
|
|
23
23
|
type RouteModuleLoader<Params> = () => Promise<RouteModule<Params>>;
|
|
24
24
|
type ResolvableRouteModule<Params> = RouteModule<Params> | RouteModulePromise<Params> | RouteModuleLoader<Params>;
|
|
25
|
-
type Route<Params extends ParamsBase = any, Env = unknown> = FunctionComponent<Params> | ResolvableRouteModule<Params> | MethodRoute<Params, Env
|
|
25
|
+
type Route<Params extends ParamsBase = any, Env = unknown> = FunctionComponent<Params> | ResolvableRouteModule<Params> | MethodRoute<Params, Env>;
|
|
26
26
|
interface Routes<Env = unknown> {
|
|
27
27
|
auth?: AuthFn;
|
|
28
28
|
layout?: Route<any, Env>;
|
package/dist/ui.d.ts
CHANGED
|
@@ -1,106 +1,91 @@
|
|
|
1
1
|
import "./signal-CqB2Ey1W.js";
|
|
2
2
|
import { n as FunctionComponent } from "./types-C7G4uVGb.js";
|
|
3
3
|
|
|
4
|
-
//#region src/ui/types.d.ts
|
|
5
|
-
type Size = "sm" | "md" | "lg";
|
|
6
|
-
type Variant = "solid" | "outline" | "soft" | "ghost";
|
|
7
|
-
type SemanticColor = "primary" | "secondary" | "info" | "success" | "warning" | "danger";
|
|
8
|
-
//#endregion
|
|
9
4
|
//#region src/ui/accordion/types.d.ts
|
|
10
|
-
type
|
|
11
|
-
type
|
|
12
|
-
type
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class?: string | string[];
|
|
18
|
-
multiple?: boolean;
|
|
5
|
+
type AccordionType = "single" | "multiple";
|
|
6
|
+
type AccordionProps = {
|
|
7
|
+
type: AccordionType;
|
|
8
|
+
defaultValue?: string | string[];
|
|
9
|
+
collapsible?: boolean;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
class?: string | string[];
|
|
19
12
|
} & Partial<Omit<HTMLDivElement, "children">>;
|
|
20
13
|
type AccordionItemProps = {
|
|
21
|
-
|
|
22
|
-
variant?: AccordionVariant;
|
|
23
|
-
color?: AccordionColor;
|
|
14
|
+
disabled?: boolean;
|
|
24
15
|
class?: string | string[];
|
|
25
16
|
} & Partial<Omit<HTMLDivElement, "children">>;
|
|
26
|
-
type
|
|
27
|
-
|
|
28
|
-
variant?: AccordionVariant;
|
|
29
|
-
color?: AccordionColor;
|
|
17
|
+
type AccordionTriggerProps = {
|
|
18
|
+
value: string;
|
|
30
19
|
class?: string | string[];
|
|
31
|
-
} & Partial<Omit<
|
|
32
|
-
type
|
|
33
|
-
|
|
34
|
-
variant?: AccordionVariant;
|
|
35
|
-
color?: AccordionColor;
|
|
20
|
+
} & Partial<Omit<HTMLButtonElement, "children">>;
|
|
21
|
+
type AccordionContentProps = {
|
|
22
|
+
value: string;
|
|
36
23
|
class?: string | string[];
|
|
37
24
|
} & Partial<Omit<HTMLDivElement, "children">>;
|
|
38
25
|
//#endregion
|
|
39
26
|
//#region src/ui/accordion/accordion.d.ts
|
|
40
|
-
declare const Accordion:
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
Panel: FunctionComponent<AccordionPanelProps>;
|
|
45
|
-
};
|
|
27
|
+
declare const Accordion: FunctionComponent<AccordionProps>;
|
|
28
|
+
declare const AccordionItem: FunctionComponent<AccordionItemProps>;
|
|
29
|
+
declare const AccordionTrigger: FunctionComponent<AccordionTriggerProps>;
|
|
30
|
+
declare const AccordionContent: FunctionComponent<AccordionContentProps>;
|
|
46
31
|
//#endregion
|
|
47
32
|
//#region src/ui/badge/types.d.ts
|
|
48
|
-
type
|
|
49
|
-
type BadgeVariant = Variant;
|
|
50
|
-
type BadgeColor = SemanticColor;
|
|
33
|
+
type BadgeVariant = "default" | "secondary" | "destructive" | "outline";
|
|
51
34
|
type BadgeProps = {
|
|
52
|
-
size?: BadgeSize;
|
|
53
35
|
variant?: BadgeVariant;
|
|
54
|
-
color?: BadgeColor;
|
|
55
|
-
pill?: boolean;
|
|
56
36
|
class?: string | string[];
|
|
57
|
-
} & Partial<Omit<
|
|
37
|
+
} & Partial<Omit<HTMLSpanElement, "children">>;
|
|
58
38
|
//#endregion
|
|
59
39
|
//#region src/ui/badge/badge.d.ts
|
|
60
40
|
declare const Badge: FunctionComponent<BadgeProps>;
|
|
61
41
|
//#endregion
|
|
62
42
|
//#region src/ui/button/types.d.ts
|
|
63
|
-
type
|
|
64
|
-
type
|
|
65
|
-
type ButtonColor = SemanticColor;
|
|
43
|
+
type ButtonVariant = "default" | "outline" | "secondary" | "ghost" | "destructive" | "link";
|
|
44
|
+
type ButtonSize = "default" | "sm" | "lg" | "icon" | "icon-sm" | "icon-lg";
|
|
66
45
|
type ButtonProps = {
|
|
67
46
|
size?: ButtonSize;
|
|
68
47
|
variant?: ButtonVariant;
|
|
69
|
-
color?: ButtonColor;
|
|
70
48
|
class?: string | string[];
|
|
71
49
|
} & Partial<Omit<HTMLButtonElement, "children">>;
|
|
72
50
|
//#endregion
|
|
73
51
|
//#region src/ui/button/button.d.ts
|
|
74
52
|
declare const Button: FunctionComponent<ButtonProps>;
|
|
75
53
|
//#endregion
|
|
54
|
+
//#region src/ui/checkbox/types.d.ts
|
|
55
|
+
type CheckboxProps = {
|
|
56
|
+
checked?: boolean;
|
|
57
|
+
defaultChecked?: boolean;
|
|
58
|
+
onCheckedChange?: (checked: boolean) => void;
|
|
59
|
+
disabled?: boolean;
|
|
60
|
+
required?: boolean;
|
|
61
|
+
name?: string;
|
|
62
|
+
value?: string;
|
|
63
|
+
class?: string | string[];
|
|
64
|
+
} & Partial<Omit<HTMLInputElement, "children" | "checked" | "defaultChecked" | "onChange" | "disabled" | "required" | "name" | "value">>;
|
|
65
|
+
//#endregion
|
|
66
|
+
//#region src/ui/checkbox/checkbox.d.ts
|
|
67
|
+
declare const Checkbox: FunctionComponent<CheckboxProps>;
|
|
68
|
+
//#endregion
|
|
69
|
+
//#region src/ui/form/types.d.ts
|
|
70
|
+
type FormProps = {
|
|
71
|
+
onSubmit?: (event: Event) => void;
|
|
72
|
+
action?: string;
|
|
73
|
+
method?: "get" | "post" | "put" | "patch" | "delete";
|
|
74
|
+
enctype?: string;
|
|
75
|
+
class?: string | string[];
|
|
76
|
+
} & Partial<Omit<HTMLFormElement, "children" | "onSubmit" | "action" | "method" | "enctype">>;
|
|
77
|
+
//#endregion
|
|
78
|
+
//#region src/ui/form/form.d.ts
|
|
79
|
+
declare const Form: FunctionComponent<FormProps>;
|
|
80
|
+
//#endregion
|
|
76
81
|
//#region src/ui/input/types.d.ts
|
|
77
|
-
type InputSize = Size;
|
|
78
|
-
type InputVariant = Variant;
|
|
79
|
-
type InputColor = SemanticColor;
|
|
80
82
|
type InputProps = {
|
|
81
|
-
size?: InputSize;
|
|
82
|
-
variant?: InputVariant;
|
|
83
|
-
color?: InputColor;
|
|
84
83
|
class?: string | string[];
|
|
85
|
-
} & Partial<
|
|
84
|
+
} & Partial<HTMLInputElement>;
|
|
86
85
|
//#endregion
|
|
87
86
|
//#region src/ui/input/input.d.ts
|
|
88
87
|
declare const Input: FunctionComponent<InputProps>;
|
|
89
88
|
//#endregion
|
|
90
|
-
//#region src/ui/textarea/types.d.ts
|
|
91
|
-
type TextareaSize = Size;
|
|
92
|
-
type TextareaVariant = Variant;
|
|
93
|
-
type TextareaColor = SemanticColor;
|
|
94
|
-
type TextareaProps = {
|
|
95
|
-
size?: TextareaSize;
|
|
96
|
-
variant?: TextareaVariant;
|
|
97
|
-
color?: TextareaColor;
|
|
98
|
-
class?: string | string[];
|
|
99
|
-
} & Partial<Omit<HTMLTextAreaElement, "children">>;
|
|
100
|
-
//#endregion
|
|
101
|
-
//#region src/ui/textarea/textarea.d.ts
|
|
102
|
-
declare const Textarea: FunctionComponent<TextareaProps>;
|
|
103
|
-
//#endregion
|
|
104
89
|
//#region src/ui/table/types.d.ts
|
|
105
90
|
type TableProps = {
|
|
106
91
|
class?: string | string[];
|
|
@@ -128,23 +113,13 @@ type TableCaptionProps = {
|
|
|
128
113
|
} & Partial<Omit<HTMLTableCaptionElement, "children">>;
|
|
129
114
|
//#endregion
|
|
130
115
|
//#region src/ui/table/table.d.ts
|
|
131
|
-
declare const Table:
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
Caption: FunctionComponent<TableCaptionProps>;
|
|
140
|
-
};
|
|
141
|
-
//#endregion
|
|
142
|
-
//#region src/ui/form/types.d.ts
|
|
143
|
-
type FormProps = {
|
|
144
|
-
class?: string | string[];
|
|
145
|
-
} & Partial<Omit<HTMLFormElement, "children">>;
|
|
146
|
-
//#endregion
|
|
147
|
-
//#region src/ui/form/form.d.ts
|
|
148
|
-
declare const Form: FunctionComponent<FormProps>;
|
|
116
|
+
declare const Table: FunctionComponent<TableProps>;
|
|
117
|
+
declare const TableHeader: FunctionComponent<TableHeaderProps>;
|
|
118
|
+
declare const TableBody: FunctionComponent<TableBodyProps>;
|
|
119
|
+
declare const TableFooter: FunctionComponent<TableFooterProps>;
|
|
120
|
+
declare const TableRow: FunctionComponent<TableRowProps>;
|
|
121
|
+
declare const TableHead: FunctionComponent<TableHeadProps>;
|
|
122
|
+
declare const TableCell: FunctionComponent<TableCellProps>;
|
|
123
|
+
declare const TableCaption: FunctionComponent<TableCaptionProps>;
|
|
149
124
|
//#endregion
|
|
150
|
-
export { Accordion,
|
|
125
|
+
export { Accordion, AccordionContent, AccordionContentProps, AccordionItem, AccordionItemProps, AccordionProps, AccordionTrigger, AccordionTriggerProps, AccordionType, Badge, BadgeProps, BadgeVariant, Button, ButtonProps, ButtonSize, ButtonVariant, Checkbox, CheckboxProps, Form, FormProps, Input, InputProps, Table, TableBody, TableBodyProps, TableCaption, TableCaptionProps, TableCell, TableCellProps, TableFooter, TableFooterProps, TableHead, TableHeadProps, TableHeader, TableHeaderProps, TableProps, TableRow, TableRowProps };
|
package/dist/ui.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./context-store-ptQxy_Tf.js";import"./signal-store-0zk-69gB.js";import"./fragment-Be4WKiZ3.js";import{n as e,t}from"./create-computed-lI_3nbQK.js";import{t as n}from"./create-element-CkxIHf8j.js";import"./jsx-runtime-CwvSR9n_.js";import{t as r}from"./create-context-HSD02vmk.js";const i=r(),a=({children:e})=>{let{isOpen:t,toggle:r}=i.get();return n(`button`,{onclick:r,class:[t.get()?`text-green-500`:`text-red-500`],children:e})},o=r(),s={Root:({children:t,multiple:r=!1})=>{let i=e(null);return o.set({openPanel:i,multiple:r}),n(`div`,{class:[`flex flex-col`],children:t})},Item:({children:r})=>{let a=Symbol(`AccordionItem`),{openPanel:s,multiple:c}=o.get(),l=e(!1),u=t(()=>c?l.get():a===s.get());return i.set({isOpen:u,toggle:()=>{l.set(!l.get()),s.set(a)}}),n(`div`,{class:[`flex flex-col`],children:r})},Header:a,Panel:({children:e})=>{let{isOpen:t}=i.get();return n(`div`,{class:[t.get()?`block`:`hidden`],children:e})}},c={primary:{solid:`border border-primary-foreground bg-primary-foreground text-primary-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-primary-foreground bg-transparent text-primary-foreground transition-colors hover:bg-primary-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-primary-background text-primary-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-primary-foreground transition-colors hover:bg-primary-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-foreground disabled:pointer-events-none disabled:opacity-50`},secondary:{solid:`border border-secondary-foreground bg-secondary-foreground text-secondary-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-secondary-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-secondary-foreground bg-transparent text-secondary-foreground transition-colors hover:bg-secondary-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-secondary-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-secondary-background text-secondary-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-secondary-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-secondary-foreground transition-colors hover:bg-secondary-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-secondary-foreground disabled:pointer-events-none disabled:opacity-50`},info:{solid:`border border-info-foreground bg-info-foreground text-info-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-info-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-info-foreground bg-transparent text-info-foreground transition-colors hover:bg-info-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-info-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-info-background text-info-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-info-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-info-foreground transition-colors hover:bg-info-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-info-foreground disabled:pointer-events-none disabled:opacity-50`},success:{solid:`border border-success-foreground bg-success-foreground text-success-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-success-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-success-foreground bg-transparent text-success-foreground transition-colors hover:bg-success-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-success-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-success-background text-success-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-success-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-success-foreground transition-colors hover:bg-success-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-success-foreground disabled:pointer-events-none disabled:opacity-50`},warning:{solid:`border border-warning-foreground bg-warning-foreground text-warning-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warning-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-warning-foreground bg-transparent text-warning-foreground transition-colors hover:bg-warning-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warning-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-warning-background text-warning-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warning-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-warning-foreground transition-colors hover:bg-warning-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warning-foreground disabled:pointer-events-none disabled:opacity-50`},danger:{solid:`border border-danger-foreground bg-danger-foreground text-danger-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-danger-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-danger-foreground bg-transparent text-danger-foreground transition-colors hover:bg-danger-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-danger-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-danger-background text-danger-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-danger-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-danger-foreground transition-colors hover:bg-danger-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-danger-foreground disabled:pointer-events-none disabled:opacity-50`}},l={sm:`px-3 py-1.5 text-sm font-medium rounded`,md:`px-4 py-2 text-base font-medium rounded-md`,lg:`px-6 py-3 text-lg font-medium rounded-lg`},u=({size:e=`md`,variant:t=`solid`,color:r=`primary`,pill:i=!1,children:a})=>{let o=c[r][t],s=l[e];return n(`span`,{class:[`inline-flex items-center gap-1 font-medium`,`align-middle leading-none`,s,o,i?`rounded-full`:`rounded-md`],children:a})},d={primary:{solid:`border border-primary-foreground bg-primary-foreground text-primary-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-primary-foreground bg-transparent text-primary-foreground transition-colors hover:bg-primary-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-primary-background text-primary-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-primary-foreground transition-colors hover:bg-primary-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-foreground disabled:pointer-events-none disabled:opacity-50`},secondary:{solid:`border border-secondary-foreground bg-secondary-foreground text-secondary-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-secondary-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-secondary-foreground bg-transparent text-secondary-foreground transition-colors hover:bg-secondary-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-secondary-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-secondary-background text-secondary-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-secondary-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-secondary-foreground transition-colors hover:bg-secondary-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-secondary-foreground disabled:pointer-events-none disabled:opacity-50`},info:{solid:`border border-info-foreground bg-info-foreground text-info-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-info-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-info-foreground bg-transparent text-info-foreground transition-colors hover:bg-info-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-info-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-info-background text-info-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-info-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-info-foreground transition-colors hover:bg-info-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-info-foreground disabled:pointer-events-none disabled:opacity-50`},success:{solid:`border border-success-foreground bg-success-foreground text-success-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-success-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-success-foreground bg-transparent text-success-foreground transition-colors hover:bg-success-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-success-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-success-background text-success-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-success-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-success-foreground transition-colors hover:bg-success-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-success-foreground disabled:pointer-events-none disabled:opacity-50`},warning:{solid:`border border-warning-foreground bg-warning-foreground text-warning-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warning-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-warning-foreground bg-transparent text-warning-foreground transition-colors hover:bg-warning-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warning-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-warning-background text-warning-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warning-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-warning-foreground transition-colors hover:bg-warning-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warning-foreground disabled:pointer-events-none disabled:opacity-50`},danger:{solid:`border border-danger-foreground bg-danger-foreground text-danger-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-danger-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-danger-foreground bg-transparent text-danger-foreground transition-colors hover:bg-danger-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-danger-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-danger-background text-danger-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-danger-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-danger-foreground transition-colors hover:bg-danger-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-danger-foreground disabled:pointer-events-none disabled:opacity-50`}},f={sm:`px-3 py-1.5 text-sm font-medium rounded`,md:`px-4 py-2 text-base font-medium rounded-md`,lg:`px-6 py-3 text-lg font-medium rounded-lg`},p=({color:e=`primary`,size:t=`md`,variant:r=`solid`,children:i,...a})=>{let o=d[e][r],s=f[t];return n(`button`,{class:[`inline-flex items-center justify-center font-medium transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50`,s,o],...a,children:i})},m={primary:{solid:`border border-primary-foreground bg-primary-foreground text-primary-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-primary-foreground bg-transparent text-primary-foreground transition-colors hover:bg-primary-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-primary-background text-primary-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-primary-foreground transition-colors hover:bg-primary-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-foreground disabled:pointer-events-none disabled:opacity-50`},secondary:{solid:`border border-secondary-foreground bg-secondary-foreground text-secondary-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-secondary-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-secondary-foreground bg-transparent text-secondary-foreground transition-colors hover:bg-secondary-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-secondary-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-secondary-background text-secondary-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-secondary-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-secondary-foreground transition-colors hover:bg-secondary-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-secondary-foreground disabled:pointer-events-none disabled:opacity-50`},info:{solid:`border border-info-foreground bg-info-foreground text-info-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-info-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-info-foreground bg-transparent text-info-foreground transition-colors hover:bg-info-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-info-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-info-background text-info-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-info-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-info-foreground transition-colors hover:bg-info-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-info-foreground disabled:pointer-events-none disabled:opacity-50`},success:{solid:`border border-success-foreground bg-success-foreground text-success-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-success-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-success-foreground bg-transparent text-success-foreground transition-colors hover:bg-success-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-success-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-success-background text-success-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-success-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-success-foreground transition-colors hover:bg-success-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-success-foreground disabled:pointer-events-none disabled:opacity-50`},warning:{solid:`border border-warning-foreground bg-warning-foreground text-warning-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warning-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-warning-foreground bg-transparent text-warning-foreground transition-colors hover:bg-warning-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warning-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-warning-background text-warning-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warning-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-warning-foreground transition-colors hover:bg-warning-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warning-foreground disabled:pointer-events-none disabled:opacity-50`},danger:{solid:`border border-danger-foreground bg-danger-foreground text-danger-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-danger-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-danger-foreground bg-transparent text-danger-foreground transition-colors hover:bg-danger-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-danger-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-danger-background text-danger-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-danger-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-danger-foreground transition-colors hover:bg-danger-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-danger-foreground disabled:pointer-events-none disabled:opacity-50`}},h={sm:`px-3 py-1.5 text-sm font-medium rounded`,md:`px-4 py-2 text-base font-medium rounded-md`,lg:`px-6 py-3 text-lg font-medium rounded-lg`},g=({size:e=`md`,variant:t=`solid`,color:r=`primary`,...i})=>{let a=m[r][t],o=h[e];return n(`input`,{class:[`inline-flex items-center gap-1 font-medium`,`align-middle leading-none`,o,a],...i})},_={primary:{solid:`border border-primary-foreground bg-primary-foreground text-primary-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-primary-foreground bg-transparent text-primary-foreground transition-colors hover:bg-primary-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-primary-background text-primary-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-primary-foreground transition-colors hover:bg-primary-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-foreground disabled:pointer-events-none disabled:opacity-50`},secondary:{solid:`border border-secondary-foreground bg-secondary-foreground text-secondary-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-secondary-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-secondary-foreground bg-transparent text-secondary-foreground transition-colors hover:bg-secondary-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-secondary-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-secondary-background text-secondary-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-secondary-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-secondary-foreground transition-colors hover:bg-secondary-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-secondary-foreground disabled:pointer-events-none disabled:opacity-50`},info:{solid:`border border-info-foreground bg-info-foreground text-info-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-info-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-info-foreground bg-transparent text-info-foreground transition-colors hover:bg-info-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-info-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-info-background text-info-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-info-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-info-foreground transition-colors hover:bg-info-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-info-foreground disabled:pointer-events-none disabled:opacity-50`},success:{solid:`border border-success-foreground bg-success-foreground text-success-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-success-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-success-foreground bg-transparent text-success-foreground transition-colors hover:bg-success-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-success-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-success-background text-success-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-success-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-success-foreground transition-colors hover:bg-success-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-success-foreground disabled:pointer-events-none disabled:opacity-50`},warning:{solid:`border border-warning-foreground bg-warning-foreground text-warning-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warning-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-warning-foreground bg-transparent text-warning-foreground transition-colors hover:bg-warning-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warning-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-warning-background text-warning-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warning-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-warning-foreground transition-colors hover:bg-warning-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-warning-foreground disabled:pointer-events-none disabled:opacity-50`},danger:{solid:`border border-danger-foreground bg-danger-foreground text-danger-background transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-danger-foreground disabled:pointer-events-none disabled:opacity-50`,outline:`border border-danger-foreground bg-transparent text-danger-foreground transition-colors hover:bg-danger-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-danger-foreground disabled:pointer-events-none disabled:opacity-50`,soft:`border border-transparent bg-danger-background text-danger-foreground transition-colors hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-danger-foreground disabled:pointer-events-none disabled:opacity-50`,ghost:`border border-transparent bg-transparent text-danger-foreground transition-colors hover:bg-danger-background focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-danger-foreground disabled:pointer-events-none disabled:opacity-50`}},v={sm:`px-3 py-1.5 text-sm font-medium rounded`,md:`px-4 py-2 text-base font-medium rounded-md`,lg:`px-6 py-3 text-lg font-medium rounded-lg`},y=({size:e=`md`,variant:t=`solid`,color:r=`primary`,...i})=>{let a=_[r][t],o=v[e];return n(`textarea`,{class:[`inline-flex items-center gap-1 font-medium`,`align-middle leading-none`,o,a],...i})},b={Root:({class:e,children:t,...r})=>n(`div`,{class:[`w-full overflow-auto`],children:n(`table`,{class:[`w-full caption-bottom text-sm`,...Array.isArray(e)?e:e?[e]:[]],...r,children:t})}),Header:({class:e,children:t,...r})=>n(`thead`,{class:[`border-b border-secondary-foreground/20`,...Array.isArray(e)?e:e?[e]:[]],...r,children:t}),Body:({class:e,children:t,...r})=>n(`tbody`,{class:[`[&>tr:last-child]:border-0`,...Array.isArray(e)?e:e?[e]:[]],...r,children:t}),Footer:({class:e,children:t,...r})=>n(`tfoot`,{class:[`border-t border-secondary-foreground/20 bg-secondary-background`,`font-medium text-secondary-foreground`,...Array.isArray(e)?e:e?[e]:[]],...r,children:t}),Row:({class:e,children:t,...r})=>n(`tr`,{class:[`border-b border-secondary-foreground/20 transition-colors`,`hover:bg-secondary-background`,`data-[state=selected]:bg-secondary-background`,...Array.isArray(e)?e:e?[e]:[]],...r,children:t}),Head:({class:e,children:t,...r})=>n(`th`,{class:[`h-12 px-4 text-left align-middle text-sm font-medium`,`text-secondary-foreground`,...Array.isArray(e)?e:e?[e]:[]],...r,children:t}),Cell:({class:e,children:t,...r})=>n(`td`,{class:[`p-4 align-middle`,...Array.isArray(e)?e:e?[e]:[]],...r,children:t}),Caption:({class:e,children:t,...r})=>n(`caption`,{class:[`mt-4 text-sm text-secondary-foreground`,...Array.isArray(e)?e:e?[e]:[]],...r,children:t})},x=({class:e,children:t,...r})=>n(`form`,{class:[`inline-flex items-center gap-1 font-medium`,`align-middle leading-none`,e],...r,children:t});export{s as Accordion,u as Badge,p as Button,x as Form,g as Input,b as Table,y as Textarea};
|
|
1
|
+
import"./context-store-D9atdfKO.js";import"./signal-store-B0_cH-Uu.js";import{t as e}from"./create-signal-2H8hjZy6.js";import{t}from"./create-context-Ccu6Wido.js";import{jsx as n,jsxs as r}from"#renku/jsx-runtime";const i=t(),a=({type:t,defaultValue:r,children:a,...o})=>{let s=e(Array.isArray(r)?r:r?[r]:[]);return i.set({type:t,openValues:s,toggle:e=>{let n=s.get();t===`single`?s.set(n.includes(e)?[]:[e]):n.includes(e)?s.set(n.filter(t=>t!==e)):s.set([...n,e])}}),n(`div`,{"data-slot":`accordion`,class:[``,...o.class?[o.class].flat():[]],...o,children:a})},o=({children:e,...t})=>n(`div`,{"data-slot":`accordion-item`,class:[`border-b last:border-b-0`,...t.class?[t.class].flat():[]],...t,children:e}),s=({value:e,children:t,...a})=>{let o=i.get(),s=o.openValues.get().includes(e),c=()=>{a.disabled||o.toggle(e)};return r(`button`,{"data-slot":`accordion-trigger`,class:[`focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180`,...a.class?[a.class].flat():[]],onclick:c,"data-state":s?`open`:`closed`,"aria-expanded":s,...a,children:[t,n(`svg`,{class:`text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,children:n(`path`,{d:`M6 9l6 6 6-6`})})]})},c=({value:e,children:t,...r})=>{let a=i.get().openValues.get().includes(e);return n(`div`,{"data-slot":`accordion-content`,class:[`overflow-hidden text-sm data-[state=closed]:hidden`,...r.class?[r.class].flat():[]],"data-state":a?`open`:`closed`,...r,children:n(`div`,{class:`pt-0 pb-4`,children:t})})},l={default:`border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90`,secondary:`border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90`,destructive:`border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60`,outline:`text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground`},u=({variant:e=`default`,children:t,...r})=>{let i=l[e];return n(`span`,{class:[`focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] [&>svg]:pointer-events-none [&>svg]:size-3`,i],...r,children:t})},d={default:`bg-primary text-primary-foreground hover:bg-primary/90`,outline:`border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50`,destructive:`bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60`,link:`text-primary underline-offset-4 hover:underline`},f={default:`h-9 px-4 py-2 has-[>svg]:px-3`,sm:`h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5`,lg:`h-10 rounded-md px-6 has-[>svg]:px-4`,icon:`size-9`,"icon-sm":`size-8`,"icon-lg":`size-10`},p=({size:e=`default`,variant:t=`default`,children:r,...i})=>{let a=d[t],o=f[e];return n(`button`,{class:[`focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,o,a],...i,children:r})},m=({checked:e,defaultChecked:t,onCheckedChange:i,disabled:a,required:o,name:s,value:c,class:l,...u})=>{let d=e=>{let t=e.target;i?.(t.checked)},f=e===void 0?t:e;return r(`div`,{"data-slot":`checkbox`,class:[`peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50`,...l?[l].flat():[]],"data-state":f?`checked`:`unchecked`,...u,children:[n(`input`,{type:`checkbox`,checked:f,disabled:a,required:o,name:s,value:c,onchange:d,class:`sr-only`}),f&&n(`div`,{"data-slot":`checkbox-indicator`,class:`grid place-content-center text-current transition-none`,children:n(`svg`,{class:`size-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`3`,children:n(`path`,{d:`M20 6L9 17l-5-5`})})})]})},h=({onSubmit:e,action:t,method:r=`post`,enctype:i,children:a,class:o,...s})=>n(`form`,{action:t,method:r,enctype:i,onsubmit:t=>{t.preventDefault(),e?.(t)},class:[`space-y-4`,...o?[o].flat():[]],...s,children:a}),g=({class:e,...t})=>n(`input`,{class:[`file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,...Array.isArray(e)?e:e?[e]:[]],...t}),_=({children:e,...t})=>n(`div`,{"data-slot":`table-container`,class:`relative w-full overflow-x-auto`,children:n(`table`,{"data-slot":`table`,class:[`w-full caption-bottom text-sm`,...t.class?[t.class].flat():[]],...t,children:e})}),v=({children:e,...t})=>n(`thead`,{"data-slot":`table-header`,class:[`[&_tr]:border-b`,...t.class?[t.class].flat():[]],...t,children:e}),y=({children:e,...t})=>n(`tbody`,{"data-slot":`table-body`,class:[`[&_tr:last-child]:border-0`,...t.class?[t.class].flat():[]],...t,children:e}),b=({children:e,...t})=>n(`tfoot`,{"data-slot":`table-footer`,class:[`bg-muted/50 border-t font-medium [&>tr]:last:border-b-0`,...t.class?[t.class].flat():[]],...t,children:e}),x=({children:e,...t})=>n(`tr`,{"data-slot":`table-row`,class:[`hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors`,...t.class?[t.class].flat():[]],...t,children:e}),S=({children:e,...t})=>n(`th`,{"data-slot":`table-head`,class:[`text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]`,...t.class?[t.class].flat():[]],...t,children:e}),C=({children:e,...t})=>n(`td`,{"data-slot":`table-cell`,class:[`p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]`,...t.class?[t.class].flat():[]],...t,children:e}),w=({children:e,...t})=>n(`caption`,{"data-slot":`table-caption`,class:[`text-muted-foreground mt-4 text-sm`,...t.class?[t.class].flat():[]],...t,children:e});export{a as Accordion,c as AccordionContent,o as AccordionItem,s as AccordionTrigger,u as Badge,p as Button,m as Checkbox,h as Form,g as Input,_ as Table,y as TableBody,w as TableCaption,C as TableCell,b as TableFooter,S as TableHead,v as TableHeader,x as TableRow};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "renku",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.13",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Renku",
|
|
6
6
|
"homepage": "https://renku.dev",
|
|
@@ -28,8 +28,19 @@
|
|
|
28
28
|
],
|
|
29
29
|
"type": "module",
|
|
30
30
|
"imports": {
|
|
31
|
-
"#renku/jsx-dev-runtime":
|
|
32
|
-
|
|
31
|
+
"#renku/jsx-dev-runtime": {
|
|
32
|
+
"types": "./dist/jsx-dev-runtime.d.ts",
|
|
33
|
+
"import": "./dist/jsx-dev-runtime.js"
|
|
34
|
+
},
|
|
35
|
+
"#renku/jsx-runtime": {
|
|
36
|
+
"types": "./dist/jsx-runtime.d.ts",
|
|
37
|
+
"import": "./dist/jsx-runtime.js"
|
|
38
|
+
},
|
|
39
|
+
"#renku/async-context": {
|
|
40
|
+
"types": "./dist/async-context.server.d.ts",
|
|
41
|
+
"browser": "./dist/async-context.browser.js",
|
|
42
|
+
"default": "./dist/async-context.server.js"
|
|
43
|
+
}
|
|
33
44
|
},
|
|
34
45
|
"exports": {
|
|
35
46
|
".": {
|
|
@@ -92,11 +103,11 @@
|
|
|
92
103
|
}
|
|
93
104
|
},
|
|
94
105
|
"scripts": {
|
|
106
|
+
"build": "PREVIEW=true tsdown",
|
|
95
107
|
"dev": "tsdown --watch",
|
|
108
|
+
"generate-types": "wrangler -c src/cloudflare/wrangler.jsonc types src/cloudflare/worker-configuration.d.ts",
|
|
96
109
|
"lint": "oxlint --type-aware",
|
|
97
|
-
"tsc": "tsc"
|
|
98
|
-
"build": "PREVIEW=true tsdown",
|
|
99
|
-
"generate-types": "wrangler -c src/cloudflare/wrangler.jsonc types src/cloudflare/worker-configuration.d.ts"
|
|
110
|
+
"tsc": "tsc"
|
|
100
111
|
},
|
|
101
112
|
"dependencies": {
|
|
102
113
|
"@sqlite.org/sqlite-wasm": "3.51.1-build2",
|
|
@@ -104,15 +115,15 @@
|
|
|
104
115
|
"signal-polyfill": "0.2.2"
|
|
105
116
|
},
|
|
106
117
|
"devDependencies": {
|
|
107
|
-
"@happy-dom/global-registrator": "20.
|
|
118
|
+
"@happy-dom/global-registrator": "20.3.3",
|
|
108
119
|
"@standard-schema/spec": "1.1.0",
|
|
109
120
|
"@stricli/auto-complete": "1.2.5",
|
|
110
121
|
"@stricli/core": "1.2.5",
|
|
111
|
-
"@types/bun": "1.3.
|
|
112
|
-
"@types/node": "25.0.
|
|
113
|
-
"happy-dom": "20.
|
|
114
|
-
"tsdown": "0.
|
|
115
|
-
"vite": "8.0.0-beta.
|
|
116
|
-
"wrangler": "4.
|
|
122
|
+
"@types/bun": "1.3.6",
|
|
123
|
+
"@types/node": "25.0.9",
|
|
124
|
+
"happy-dom": "20.3.3",
|
|
125
|
+
"tsdown": "0.20.0-beta.3",
|
|
126
|
+
"vite": "8.0.0-beta.8",
|
|
127
|
+
"wrangler": "4.59.2"
|
|
117
128
|
}
|
|
118
129
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=typeof window<`u`&&typeof document<`u`;let t,n=null;if(!e){let{AsyncLocalStorage:e}=await import(`node:async_hooks`);n=new e}const r=()=>n?n.getStore():t,i=e=>{if(n)throw Error(`contextStore.current cannot be set on the server. Use run().`);t=e},a=(e,r)=>n?n.run(e,r):(t=e,r()),o={get current(){return r()},set current(e){i(e)},run(e,t){return a(e,t)},set(e,i){let a=r();if(!a){if(n)throw Error(`Context store missing in server environment. Make sure to use contextStore.run().`);t=new Map([[e,i]]);return}a.set(e,i)},get(e){return r()?.get(e)}};export{o as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./signal-store-0zk-69gB.js";const n=e=>t.get(e),r=t=>new e.Computed(t);export{n,r as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./context-store-ptQxy_Tf.js";const t=t=>{let n=Symbol(`context`);return{set:t=>{e.set(n,t)},get:()=>{let r=e.get(n);if(r===void 0&&t!==void 0)return t;if(r===void 0)throw Error(`Context value not found. Make sure to use provide() in a parent component.`);return r}}};export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./create-computed-lI_3nbQK.js";function t(t,n){let r=e({status:`loading`,error:!1,data:null});return r.get().status===`loading`&&t().then(async e=>{if(!n)r.set({status:`success`,error:!1,data:e});else{let t=n(e),i=t instanceof Promise?await t:t;r.set({status:`success`,error:!1,data:i})}}).catch(e=>r.set({status:`error`,error:e,data:null})),r}export{t};
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./context-store-ptQxy_Tf.js";import{n as t,t as n}from"./signal-store-0zk-69gB.js";import{t as r}from"./effect-Bd9_A9t9.js";import{n as i}from"./fragment-Be4WKiZ3.js";const a=Symbol(`renku:suspense`),o=e=>e&&typeof e.type==`function`&&e.type[a]===!0,s=({fn:t,key:i,props:a,asyncComponents:o,clientComponents:s})=>{let c=null,l=null,d=e=>{c=e,l&&l(e)},f=[],p=e.current,m=p?new Map(p):new Map;return r(()=>{n.set(f);let r=e.run(m,()=>t(a));if(r instanceof Promise){let e=s.length+o.length+1;o.push(new Promise(t=>{r.then(n=>{t({index:e,node:n})})})),d({type:`async`,key:i,promise:r,index:e})}else d(u({node:r,asyncComponents:o,clientComponents:s}))}),{type:`effect`,value:c,addCallback:e=>{l=e}}},c=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&`type`in e&&typeof e.type==`function`&&e.type[i]===!0,l=({node:e,asyncComponents:t=[],clientComponents:n=[]})=>{let r=[];if(Array.isArray(e))for(let i of e)r.push(...l({node:i,asyncComponents:t,clientComponents:n}));else if(e)if(c(e)){let i=e.type(e.props);r.push(...l({node:i,asyncComponents:t,clientComponents:n}))}else{let i=u({node:e,asyncComponents:t,clientComponents:n});Array.isArray(i)?r.push(...i):r.push(i)}return r},u=({node:e,asyncComponents:n=[],clientComponents:r=[]})=>{if(Array.isArray(e))return l({node:e,asyncComponents:n,clientComponents:r});if(e==null)return null;if(typeof e==`string`||typeof e==`number`)return{type:`text`,value:String(e)};if(e instanceof t.Computed||e instanceof t.State)return{type:`signal`,value:e};if(typeof e==`object`){if(typeof e.type==`function`){if(o(e)){console.log(`🚨`,`Suspense`,e);let t=l({node:e.props.children,asyncComponents:n,clientComponents:r}),i=l({node:e.props.fallback,asyncComponents:n,clientComponents:r});return{type:`suspense`,key:e.key,suspended:t,fallback:i}}return s({fn:e.type,key:e.key,props:e.props,asyncComponents:n,clientComponents:r})}if(typeof e.type==`object`&&e.type.type===`client`)return r.push({path:e.type.path,name:e.type.name}),{type:`client`,key:e.key,props:e.props,path:e.type.path,name:e.type.name};if(typeof e.type==`string`){let{children:t,...i}=e.props,a=l({node:t,asyncComponents:n,clientComponents:r});return{type:`element`,key:e.key,value:e.type,props:i,children:a}}}return console.warn(`⚠️`,`UNHANDLED NODE TYPE`,e),null};export{s as n,a as r,u as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./signal-store-0zk-69gB.js";import{t}from"./jsx-to-virtual-node-CKXtqFFH.js";import{t as n}from"./effect-Bd9_A9t9.js";function r({domNode:e,virtualNode:t,replace:n=!1}){let r=[];for(let i of t){let t=o({domNode:e,virtualNode:i,replace:n});n=!1,r.push(t)}return r}const i=({element:t,key:r,val:i})=>{typeof i==`function`?r.startsWith(`on`)&&t.addEventListener(r.slice(2),i):typeof i==`string`||typeof i==`number`?(r===`className`&&(r=`class`),t.setAttribute(r,String(i))):i instanceof e.State||i instanceof e.Computed?n(()=>{t.setAttribute(r,String(i.get()))}):Array.isArray(i)?n(()=>{let n=i.map(t=>t instanceof e.State||t instanceof e.Computed?String(t.get()):String(t)).join(` `);t.setAttribute(r,n)}):typeof i==`boolean`&&(i?t.setAttribute(r,``):t.removeAttribute(r))},a=({domNode:e,newVirtualNode:t,oldVirtualNode:n})=>{let r=e=>e&&`key`in e?e.key??null:null;if(t&&n)if(t.type===n.type){if(t.type===`effect`&&n.type===`effect`)return n.domNode&&(t.domNode=o({domNode:n.domNode,virtualNode:t,replace:!0})??void 0),e;if(t.type===`element`&&n.type===`element`)if(t.value===n.value){let s=e,c=n.props?Object.keys(n.props).filter(e=>!(e in t.props)):[];c.length&&c.map(e=>s.removeAttribute(e));for(let[e,r]of Object.entries(t.props))if(e!==`children`&&e!==`key`)if(n.props&&e in n.props){let t=n.props[e];typeof r==`function`||(Array.isArray(r)&&Array.isArray(t)?JSON.stringify(r)!==JSON.stringify(t)&&i({element:s,key:e,val:r}):n.props[e]!==r&&i({element:s,key:e,val:r}))}else i({element:s,key:e,val:r});if(t.children.length){let e=0;for(let i=0;i<t.children.length;i++){let c=t.children[i];if(c){let t=n.children?n.children[i-e]:void 0;if(t?.domNode)if(r(c)===r(t))c.domNode=t.domNode,a({domNode:t.domNode,newVirtualNode:c,oldVirtualNode:t});else{let i=r(c),o=n.children.findIndex(e=>r(e)===i),l=o>-1?n.children[o]:null;l?.domNode&&(s.moveBefore(l.domNode,t.domNode),c.domNode=l.domNode,e++,a({domNode:l.domNode,newVirtualNode:c,oldVirtualNode:l}),n.children.splice(o,1))}else o({domNode:s,virtualNode:c});n.children[i-e]=null}}if(n.children.length+e>t.children.length)for(let r=t.children.length;r<n.children.length+e;r++){let t=n.children[r-e]?.domNode;t&&s.removeChild(t)}}else n.children?.length&&s.replaceChildren()}else console.log(`Different node types`),n.domNode&&o({domNode:n.domNode,virtualNode:t,replace:!0});else t.type===`text`&&n.type===`text`&&t.value!==n.value&&(t.domNode=n.domNode,t.domNode.nodeValue=t.value)}else console.warn(`Different node types`),n.domNode&&o({domNode:n.domNode,virtualNode:t,replace:!0});else console.warn(`Old or new node is null`);return e};function o({domNode:e,virtualNode:s,replace:c=!1}){if(!s)return null;let l=[`svg`,`path`,`circle`];if(s.type===`element`){let t=l.includes(s.value)?document.createElementNS(`http://www.w3.org/2000/svg`,s.value):document.createElement(s.value);if(s.domNode=t,s.props.ref){let e=s.props.ref;console.log(`has ref`,e.get()),e.set(s.domNode),console.log(`assigned ref`,s.domNode),console.log(`has ref`,e.get())}for(let[e,n]of Object.entries(s.props))e!==`children`&&e!==`key`&&e!==`ref`&&i({element:t,key:e,val:n});if(s.children)for(let e of s.children)o({domNode:t,virtualNode:e});if(e===document.documentElement)document.documentElement.replaceWith(t);else{let n=e.parentNode;c&&n?n.replaceChild(t,e):e.appendChild(t)}return t}if(s.type===`async`){let n=document.createElement(`template`);return s.domNode=n,e.appendChild(n),s.promise?.then(e=>{let i=t({node:e});Array.isArray(i)?r({domNode:n,virtualNode:i,replace:!0}):o({domNode:n,virtualNode:i,replace:!0})}),n}if(s.type===`text`){let t=document.createTextNode(s.value);return s.domNode=t,e.appendChild(t),t}if(s.type===`signal`){let t=s.value,r=document.createTextNode(``);return s.domNode=r,n(()=>{r.textContent=String(t.get())}),e.appendChild(r),r}if(s.type===`suspense`){let t=document.createTextNode(``);t.textContent=`SUSPENSE`;let n=document.createElement(`div`);if(n.appendChild(t),s.domNode=n,console.log(`render suspense`,e,t),e===document.documentElement)document.documentElement.replaceWith(n);else{let t=e.parentNode;c&&t?t.replaceChild(n,e):e.appendChild(n)}return n}if(s.type===`effect`){let t=s.value,n=null,i=null,l=t=>{Array.isArray(t)?r({domNode:e,virtualNode:t,replace:c}):n?(n=a({domNode:n,newVirtualNode:t,oldVirtualNode:i}),i=t,s.domNode=n??void 0):(n=o({domNode:e,virtualNode:t,replace:c}),i=t,s.domNode=n??void 0,t=null)};s.addCallback(l),l(t)}return null}export{a as n,r,o as t};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|