kappa mirror: ui + q closures (2357 objects, blake3-addressed) - U3 (part 5)
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- b/6b4b8b8235a9af036cad46dc64fd411eb56884d283e0a1606fc648f67bce5c03 +3 -46
- b/6b64041cb374eeb55ae50e75e85021b4e490fd46cd74f05ca27caa3ac34bbab7 +3 -11
- b/6b776e1939a02ed5f6ffa2702a356805b9221318e51cca7b7dcf4a50215e6b15 +3 -59
- b/6b8dbab17f20207f4c95f00ed8e82808d5bd9e417925aea295755928ad9aff00 +3 -22
- b/6b9dcec02240ee13eb78762e0b3f6cee1d6ddc2cbcb8a7f8b889632c5264c68d +3 -1
- b/6be006c6182f48c588ba76a4e34de594d017a6887a37a3bdf074c1dce7e41d41 +3 -1
- b/6be369a06d9c6ad34479cd6691ccd81211783571b8d3b86b277e73adc2e99da3 +3 -20
- b/6be92392dfbd6ee0a0a5d97efab287701d9f76e95f6dae450306e721c2f35f46 +3 -38
- b/6c32761c5cabc3e05e986986698b4ad74493b8711bf3de84b0589cc2c65ef013 +3 -21
- b/6c505c47c9cdeeddce014481b5d198c96cd546509c9eada2b81c73fbe5103edd +3 -7
- b/6c924350ba2921766013932a480fcaf98a7ba5ffa7251df93c6cf849c4c6def0 +3 -1
- b/6cb9d510f8de13010391f37df268f9d89f9d14ff9dfc96314e58350bb3fd1a25 +3 -48
- b/6cedb837778da5a63a6f17085213d01a4ae1d542b2cb626fb50010e68c7b2e71 +3 -1
- b/6cf9ca1766dcf3ec9daaae61492de75ed629c4d084fe8d8cefc5e67f2596024e +3 -20
- b/6d021c294e26f2b10011242e720ab2110c608db7b39075d746f2652fb5daccdd +3 -20
- b/6d460764cf0fcdd86f936a414040f1198cf342d2688b9e54baf2e8715a1b5bc0 +3 -54
- b/6da178e05f63a53e42f2e7a397f5f7e385162b9a12717584a46f99e5568236cc +3 -1
- b/6df0048156f14cf95874a6e17d9d26b2a505cb1427667f158009e0d1a66096eb +3 -20
- b/6e0e48b6e6251e64cd5db55beb1f1a925ddf60d7134ddc5edf2ebb46dc4dd202 +3 -61
- b/6e496f3f2578b826928fbf5d5158a07aca603da129c76e4d7e8687661dd5a56a +3 -20
- b/6e72215775e48367032c89a774c0cb84dd5f2165c3271c414300dc57b2dfd8db +0 -0
- b/6e90e9a20ebd7b0f9783bcdbacc86187527d8e52d37a4db5b8915e49a4a9f74b +3 -20
- b/6eb4487e1ed7f19ef123aea1f9085355dfb00d525ef77ebd1a202b401d681319 +3 -83
- b/6f1190f6fec8915d08f5d2a5d226e8ce204d7ee7e498cfdfb2621e3d7a51d65e +0 -0
- b/6f14fcff247694eaf421522f67e74a57f604e23d089b1ca377bf402d880f5854 +3 -52
- b/6f1a160e16459fe8bf7f1030a64439fb3e29407999a1c9a76c7ec35ba02c4c77 +0 -0
- b/6f321c1a7e7dc3629a8e0470e33cc8d69a9ea72ab1a9ec43cd99ab3116585b3c +3 -58
- b/6f3f57a6f962a7bdc0eed0366fdf9534c8e3f92f894d0ccda63cfef8446c363a +3 -26
- b/6f3fc9648576109c5f13c08d5b5737dcd4aca6ffa3221154a5096247b574aa7f +3 -257
- b/6f442283ad549ced4db96d2d0d03fadf59abb31fe3ab9a11cc3726efddeb7e18 +3 -20
- b/6f48d16edc538c5668e979ab4c95f9c220242eda91bafacafd08ca9efa620da6 +3 -23
- b/6f6265f8e29ccabed2d1b00e46115e46f611bd6fca763961936edf1b2ca24adf +0 -0
- b/6f827b986032b404e7ef63e3eb99606f0c1561b86fd5195eab9669976d2e3d99 +3 -22
- b/6f846bec6ed3a23e167be3585a359b5604d5a92f89b3c54b64412057198dc329 +3 -46
- b/6fa5ac11952ec411380f9f2b702b327f35d5faf91ba5a56e20a642d7527e5004 +3 -75
- b/6fd871a55c937ca12904f2a1b429327fb4d2668b4f64b63d1e3ee1c54b68ee23 +3 -58
- b/6fdf1c7245aed6ac0f0831c9764ad0ba8c201da1bc2c9a408cfe4373ed1394a4 +3 -63
- b/6fec2243975de84e5aac9f3cf15ac4b9fcfae7b132ad7759c0fc3c72c8ad0456 +3 -11
- b/702f1600e5b352204f1bb862465ea43111db58732d6a96f7ba91a4c082d41e01 +0 -0
- b/704f09d62f0604bd47cfd7c11bbba44dc47e77af65c051ff810afdc3cad56c2b +3 -321
- b/7093a63dcd2a6dd1c180d0ce08d28c25a79656e38e5ff1bff72bd762c64df2d7 +3 -1
- b/70a8be11004e64f537c21f740f445d3742e5b3a452fc99460f9c13d7dc79c93f +3 -47
- b/70beacc89e5f37a13d7284a4350d01f8095b283c0a0351c2ece7e589c1ed2851 +3 -51
- b/70c3d8237f9690986b99efa620193dc43fdc031464432afcb61614537881886d +3 -364
- b/70deeb235d7fea6700bf564cea4841fb7355e5c9c574cd1751e820e9d91e6639 +3 -1
- b/70df938642c34d7be353028f673b4444a9930bad575f62e23e68b47e4762be2f +3 -56
- b/70e9358710b89224fbc73acbb1df4bd929689cc042a00b14ba4b70cf031e25a4 +3 -32
- b/70ed7109dd66a32f3e0b81297b80f75364b6707a884f62f96a9ee14ce5420a74 +3 -36
- b/7113bcdb06feac4447b87fac11943024138a4c810ff7c5efa38fe6ac543e66fc +3 -21
- b/71980df7adeb081fdceea20e4cfb4cfa40f77e0662ce062ab62245dac55ffa5c +3 -1
b/6b4b8b8235a9af036cad46dc64fd411eb56884d283e0a1606fc648f67bce5c03
CHANGED
|
@@ -1,46 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
import { ChevronsUpDown } from "lucide-react"
|
| 5 |
-
|
| 6 |
-
import { Button } from "@/registry/new-york-v4/ui/button"
|
| 7 |
-
import {
|
| 8 |
-
Collapsible,
|
| 9 |
-
CollapsibleContent,
|
| 10 |
-
CollapsibleTrigger,
|
| 11 |
-
} from "@/registry/new-york-v4/ui/collapsible"
|
| 12 |
-
|
| 13 |
-
export default function CollapsibleDemo() {
|
| 14 |
-
const [isOpen, setIsOpen] = React.useState(false)
|
| 15 |
-
|
| 16 |
-
return (
|
| 17 |
-
<Collapsible
|
| 18 |
-
open={isOpen}
|
| 19 |
-
onOpenChange={setIsOpen}
|
| 20 |
-
className="flex w-[350px] flex-col gap-2"
|
| 21 |
-
>
|
| 22 |
-
<div className="flex items-center justify-between gap-4 px-4">
|
| 23 |
-
<h4 className="text-sm font-semibold">
|
| 24 |
-
@peduarte starred 3 repositories
|
| 25 |
-
</h4>
|
| 26 |
-
<CollapsibleTrigger asChild>
|
| 27 |
-
<Button variant="ghost" size="icon" className="size-8">
|
| 28 |
-
<ChevronsUpDown />
|
| 29 |
-
<span className="sr-only">Toggle</span>
|
| 30 |
-
</Button>
|
| 31 |
-
</CollapsibleTrigger>
|
| 32 |
-
</div>
|
| 33 |
-
<div className="rounded-md border px-4 py-2 font-mono text-sm">
|
| 34 |
-
@radix-ui/primitives
|
| 35 |
-
</div>
|
| 36 |
-
<CollapsibleContent className="flex flex-col gap-2">
|
| 37 |
-
<div className="rounded-md border px-4 py-2 font-mono text-sm">
|
| 38 |
-
@radix-ui/colors
|
| 39 |
-
</div>
|
| 40 |
-
<div className="rounded-md border px-4 py-2 font-mono text-sm">
|
| 41 |
-
@stitches/react
|
| 42 |
-
</div>
|
| 43 |
-
</CollapsibleContent>
|
| 44 |
-
</Collapsible>
|
| 45 |
-
)
|
| 46 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:37abc88bacbc1d98d6b675a48a457096f3a40ff0722369ae61476c59f048d278
|
| 3 |
+
size 1369
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6b64041cb374eeb55ae50e75e85021b4e490fd46cd74f05ca27caa3ac34bbab7
CHANGED
|
@@ -1,11 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
function AspectRatio({
|
| 6 |
-
...props
|
| 7 |
-
}: React.ComponentProps<typeof AspectRatioPrimitive.Root>) {
|
| 8 |
-
return <AspectRatioPrimitive.Root data-slot="aspect-ratio" {...props} />
|
| 9 |
-
}
|
| 10 |
-
|
| 11 |
-
export { AspectRatio }
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b1c157886236782cb92d8fbcd4749532aaf6d8aabefd6e157ca40358f902f407
|
| 3 |
+
size 274
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6b776e1939a02ed5f6ffa2702a356805b9221318e51cca7b7dcf4a50215e6b15
CHANGED
|
@@ -1,59 +1,3 @@
|
|
| 1 |
-
var la=Object.defineProperty;var ra=(e,a)=>{for(var t in a)la(e,t,{get:a[t],enumerable:!0})};import{forwardRef as da,createElement as sa}from"react";var be=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),ee=(...e)=>e.filter((a,t,o)=>!!a&&a.trim()!==""&&o.indexOf(a)===t).join(" ").trim();import{forwardRef as ua,createElement as Ae}from"react";var Pe={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var Be=ua(({color:e="currentColor",size:a=24,strokeWidth:t=2,absoluteStrokeWidth:o,className:l="",children:s,iconNode:r,...n},m)=>Ae("svg",{ref:m,...Pe,width:a,height:a,stroke:e,strokeWidth:o?Number(t)*24/Number(a):t,className:ee("lucide",l),...n},[...r.map(([c,L])=>Ae(c,L)),...Array.isArray(s)?s:[s]]));var ae=(e,a)=>{let t=da(({className:o,...l},s)=>sa(Be,{ref:s,iconNode:a,className:ee(`lucide-${be(e)}`,o),...l}));return t.displayName=`${e}`,t};var Z=ae("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);var q=ae("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);var oe={};ra(oe,{Root:()=>ia,Slot:()=>ia,Slottable:()=>ca,createSlot:()=>Re,createSlottable:()=>qe});import*as g from"react";import*as Me from"react";function ye(e,a){if(typeof e=="function")return e(a);e!=null&&(e.current=a)}function fa(...e){return a=>{let t=!1,o=e.map(l=>{let s=ye(l,a);return!t&&typeof s=="function"&&(t=!0),s});if(t)return()=>{for(let l=0;l<o.length;l++){let s=o[l];typeof s=="function"?s():ye(e[l],null)}}}}function Fe(...e){return Me.useCallback(fa(...e),e)}function Re(e){let a=g.forwardRef((t,o)=>{let{children:l,...s}=t,r=null,n=!1,m=[];De(l)&&typeof te=="function"&&(l=te(l._payload)),g.Children.forEach(l,A=>{if(La(A)){n=!0;let h=A,M="child"in h.props?h.props.child:h.props.children;De(M)&&typeof te=="function"&&(M=te(M._payload)),r=na(h,M),m.push(r?.props?.children)}else m.push(A)}),r?r=g.cloneElement(r,void 0,m):!n&&g.Children.count(l)===1&&g.isValidElement(l)&&(r=l);let c=r?ma(r):void 0,L=Fe(o,c);if(!r){if(l||l===0)throw new Error(n?ga(e):Ca(e));return l}let x=pa(s,r.props??{});return r.type!==g.Fragment&&(x.ref=o?L:c),g.cloneElement(r,x)});return a.displayName=`${e}.Slot`,a}var ia=Re("Slot"),Te=Symbol.for("radix.slottable");function qe(e){let a=t=>"child"in t?t.children(t.child):t.children;return a.displayName=`${e}.Slottable`,a.__radixId=Te,a}var ca=qe("Slottable"),na=(e,a)=>{if("child"in e.props){let t=e.props.child;return g.isValidElement(t)?g.cloneElement(t,void 0,e.props.children(t.props.children)):null}return g.isValidElement(a)?a:null};function pa(e,a){let t={...a};for(let o in a){let l=e[o],s=a[o];/^on[A-Z]/.test(o)?l&&s?t[o]=(...n)=>{let m=s(...n);return l(...n),m}:l&&(t[o]=l):o==="style"?t[o]={...l,...s}:o==="className"&&(t[o]=[l,s].filter(Boolean).join(" "))}return{...e,...t}}function ma(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=a&&"isReactWarning"in a&&a.isReactWarning;return t?e.ref:(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=a&&"isReactWarning"in a&&a.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}function La(e){return g.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Te}var Ia=Symbol.for("react.lazy");function De(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Ia&&"_payload"in e&&xa(e._payload)}function xa(e){return typeof e=="object"&&e!==null&&"then"in e}var Ca=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,ga=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,te=g[" use ".trim().toString()];function ve(e){var a,t,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var l=e.length;for(a=0;a<l;a++)e[a]&&(t=ve(e[a]))&&(o&&(o+=" "),o+=t)}else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}function Ue(){for(var e,a,t=0,o="",l=arguments.length;t<l;t++)(e=arguments[t])&&(a=ve(e))&&(o&&(o+=" "),o+=a);return o}var ha=(e,a)=>{let t=new Array(e.length+a.length);for(let o=0;o<e.length;o++)t[o]=e[o];for(let o=0;o<a.length;o++)t[e.length+o]=a[o];return t},Sa=(e,a)=>({classGroupId:e,validator:a}),We=(e=new Map,a=null,t)=>({nextPart:e,validators:a,classGroupId:t}),ue="-",Oe=[],wa="arbitrary..",ka=e=>{let a=Pa(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:r=>{if(r.startsWith("[")&&r.endsWith("]"))return ba(r);let n=r.split(ue),m=n[0]===""&&n.length>1?1:0;return Ne(n,m,a)},getConflictingClassGroupIds:(r,n)=>{if(n){let m=o[r],c=t[r];return m?c?ha(c,m):m:c||Oe}return t[r]||Oe}}},Ne=(e,a,t)=>{if(e.length-a===0)return t.classGroupId;let l=e[a],s=t.nextPart.get(l);if(s){let c=Ne(e,a+1,s);if(c)return c}let r=t.validators;if(r===null)return;let n=a===0?e.join(ue):e.slice(a).join(ue),m=r.length;for(let c=0;c<m;c++){let L=r[c];if(L.validator(n))return L.classGroupId}},ba=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{let a=e.slice(1,-1),t=a.indexOf(":"),o=a.slice(0,t);return o?wa+o:void 0})(),Pa=e=>{let{theme:a,classGroups:t}=e;return Aa(t,a)},Aa=(e,a)=>{let t=We();for(let o in e){let l=e[o];me(l,t,o,a)}return t},me=(e,a,t,o)=>{let l=e.length;for(let s=0;s<l;s++){let r=e[s];Ba(r,a,t,o)}},Ba=(e,a,t,o)=>{if(typeof e=="string"){ya(e,a,t);return}if(typeof e=="function"){Ma(e,a,t,o);return}Fa(e,a,t,o)},ya=(e,a,t)=>{let o=e===""?a:Xe(a,e);o.classGroupId=t},Ma=(e,a,t,o)=>{if(Da(e)){me(e(o),a,t,o);return}a.validators===null&&(a.validators=[]),a.validators.push(Sa(t,e))},Fa=(e,a,t,o)=>{let l=Object.entries(e),s=l.length;for(let r=0;r<s;r++){let[n,m]=l[r];me(m,Xe(a,n),t,o)}},Xe=(e,a)=>{let t=e,o=a.split(ue),l=o.length;for(let s=0;s<l;s++){let r=o[s],n=t.nextPart.get(r);n||(n=We(),t.nextPart.set(r,n)),t=n}return t},Da=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,Ra=e=>{if(e<1)return{get:()=>{},set:()=>{}};let a=0,t=Object.create(null),o=Object.create(null),l=(s,r)=>{t[s]=r,a++,a>e&&(a=0,o=t,t=Object.create(null))};return{get(s){let r=t[s];if(r!==void 0)return r;if((r=o[s])!==void 0)return l(s,r),r},set(s,r){s in t?t[s]=r:l(s,r)}}},pe="!",He=":",Ta=[],Ge=(e,a,t,o,l)=>({modifiers:e,hasImportantModifier:a,baseClassName:t,maybePostfixModifierPosition:o,isExternal:l}),qa=e=>{let{prefix:a,experimentalParseClassName:t}=e,o=l=>{let s=[],r=0,n=0,m=0,c,L=l.length;for(let k=0;k<L;k++){let B=l[k];if(r===0&&n===0){if(B===He){s.push(l.slice(m,k)),m=k+1;continue}if(B==="/"){c=k;continue}}B==="["?r++:B==="]"?r--:B==="("?n++:B===")"&&n--}let x=s.length===0?l:l.slice(m),A=x,h=!1;x.endsWith(pe)?(A=x.slice(0,-1),h=!0):x.startsWith(pe)&&(A=x.slice(1),h=!0);let M=c&&c>m?c-m:void 0;return Ge(s,h,A,M)};if(a){let l=a+He,s=o;o=r=>r.startsWith(l)?s(r.slice(l.length)):Ge(Ta,!1,r,void 0,!0)}if(t){let l=o;o=s=>t({className:s,parseClassName:l})}return o},va=e=>{let a=new Map;return e.orderSensitiveModifiers.forEach((t,o)=>{a.set(t,1e6+o)}),t=>{let o=[],l=[];for(let s=0;s<t.length;s++){let r=t[s],n=r[0]==="[",m=a.has(r);n||m?(l.length>0&&(l.sort(),o.push(...l),l=[]),o.push(r)):l.push(r)}return l.length>0&&(l.sort(),o.push(...l)),o}},Ua=e=>({cache:Ra(e.cacheSize),parseClassName:qa(e),sortModifiers:va(e),postfixLookupClassGroupIds:Oa(e),...ka(e)}),Oa=e=>{let a=Object.create(null),t=e.postfixLookupClassGroups;if(t)for(let o=0;o<t.length;o++)a[t[o]]=!0;return a},Ha=/\s+/,Ga=(e,a)=>{let{parseClassName:t,getClassGroupId:o,getConflictingClassGroupIds:l,sortModifiers:s,postfixLookupClassGroupIds:r}=a,n=[],m=e.trim().split(Ha),c="";for(let L=m.length-1;L>=0;L-=1){let x=m[L],{isExternal:A,modifiers:h,hasImportantModifier:M,baseClassName:k,maybePostfixModifierPosition:B}=t(x);if(A){c=x+(c.length>0?" "+c:c);continue}let O=!!B,b;if(O){let D=k.substring(0,B);b=o(D);let f=b&&r[b]?o(k):void 0;f&&f!==b&&(b=f,O=!1)}else b=o(k);if(!b){if(!O){c=x+(c.length>0?" "+c:c);continue}if(b=o(k),!b){c=x+(c.length>0?" "+c:c);continue}O=!1}let K=h.length===0?"":h.length===1?h[0]:s(h).join(":"),E=M?K+pe:K,W=E+b;if(n.indexOf(W)>-1)continue;n.push(W);let N=l(b,O);for(let D=0;D<N.length;++D){let f=N[D];n.push(E+f)}c=x+(c.length>0?" "+c:c)}return c},za=(...e)=>{let a=0,t,o,l="";for(;a<e.length;)(t=e[a++])&&(o=Ke(t))&&(l&&(l+=" "),l+=o);return l},Ke=e=>{if(typeof e=="string")return e;let a,t="";for(let o=0;o<e.length;o++)e[o]&&(a=Ke(e[o]))&&(t&&(t+=" "),t+=a);return t},Va=(e,...a)=>{let t,o,l,s,r=m=>{let c=a.reduce((L,x)=>x(L),e());return t=Ua(c),o=t.cache.get,l=t.cache.set,s=n,n(m)},n=m=>{let c=o(m);if(c)return c;let L=Ga(m,t);return l(m,L),L};return s=r,(...m)=>s(za(...m))},Ea=[],I=e=>{let a=t=>t[e]||Ea;return a.isThemeGetter=!0,a},Ze=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Je=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Wa=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Na=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Xa=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Ka=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Za=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ja=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,v=e=>Wa.test(e),p=e=>!!e&&!Number.isNaN(Number(e)),F=e=>!!e&&Number.isInteger(Number(e)),ne=e=>e.endsWith("%")&&p(e.slice(0,-1)),R=e=>Na.test(e),_e=()=>!0,_a=e=>Xa.test(e)&&!Ka.test(e),Le=()=>!1,Qa=e=>Za.test(e),ja=e=>Ja.test(e),$a=e=>!u(e)&&!d(e),Ya=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),et=e=>U(e,$e,Le),u=e=>Ze.test(e),G=e=>U(e,Ye,_a),ze=e=>U(e,st,p),at=e=>U(e,aa,_e),tt=e=>U(e,ea,Le),Ve=e=>U(e,Qe,Le),ot=e=>U(e,je,ja),le=e=>U(e,ta,Qa),d=e=>Je.test(e),J=e=>z(e,Ye),lt=e=>z(e,ea),Ee=e=>z(e,Qe),rt=e=>z(e,$e),ut=e=>z(e,je),re=e=>z(e,ta,!0),dt=e=>z(e,aa,!0),U=(e,a,t)=>{let o=Ze.exec(e);return o?o[1]?a(o[1]):t(o[2]):!1},z=(e,a,t=!1)=>{let o=Je.exec(e);return o?o[1]?a(o[1]):t:!1},Qe=e=>e==="position"||e==="percentage",je=e=>e==="image"||e==="url",$e=e=>e==="length"||e==="size"||e==="bg-size",Ye=e=>e==="length",st=e=>e==="number",ea=e=>e==="family-name",aa=e=>e==="number"||e==="weight",ta=e=>e==="shadow";var ft=()=>{let e=I("color"),a=I("font"),t=I("text"),o=I("font-weight"),l=I("tracking"),s=I("leading"),r=I("breakpoint"),n=I("container"),m=I("spacing"),c=I("radius"),L=I("shadow"),x=I("inset-shadow"),A=I("text-shadow"),h=I("drop-shadow"),M=I("blur"),k=I("perspective"),B=I("aspect"),O=I("ease"),b=I("animate"),K=()=>["auto","avoid","all","avoid-page","page","left","right","column"],E=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],W=()=>[...E(),d,u],N=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto","contain","none"],f=()=>[d,u,m],P=()=>[v,"full","auto",...f()],Ie=()=>[F,"none","subgrid",d,u],xe=()=>["auto",{span:["full",F,d,u]},F,d,u],_=()=>[F,"auto",d,u],Ce=()=>["auto","min","max","fr",d,u],de=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],X=()=>["start","end","center","stretch","center-safe","end-safe"],y=()=>["auto",...f()],H=()=>[v,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...f()],se=()=>[v,"screen","full","dvw","lvw","svw","min","max","fit",...f()],fe=()=>[v,"screen","full","lh","dvh","lvh","svh","min","max","fit",...f()],i=()=>[e,d,u],ge=()=>[...E(),Ee,Ve,{position:[d,u]}],he=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Se=()=>["auto","cover","contain",rt,et,{size:[d,u]}],ie=()=>[ne,J,G],S=()=>["","none","full",c,d,u],w=()=>["",p,J,G],Q=()=>["solid","dashed","dotted","double"],we=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],C=()=>[p,ne,Ee,Ve],ke=()=>["","none",M,d,u],j=()=>["none",p,d,u],$=()=>["none",p,d,u],ce=()=>[p,d,u],Y=()=>[v,"full",...f()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[R],breakpoint:[R],color:[_e],container:[R],"drop-shadow":[R],ease:["in","out","in-out"],font:[$a],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[R],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[R],shadow:[R],spacing:["px",p],text:[R],"text-shadow":[R],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",v,u,d,B]}],container:["container"],"container-type":[{"@container":["","normal","size",d,u]}],"container-named":[Ya],columns:[{columns:[p,u,d,n]}],"break-after":[{"break-after":K()}],"break-before":[{"break-before":K()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:W()}],overflow:[{overflow:N()}],"overflow-x":[{"overflow-x":N()}],"overflow-y":[{"overflow-y":N()}],overscroll:[{overscroll:D()}],"overscroll-x":[{"overscroll-x":D()}],"overscroll-y":[{"overscroll-y":D()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:P()}],"inset-x":[{"inset-x":P()}],"inset-y":[{"inset-y":P()}],start:[{"inset-s":P(),start:P()}],end:[{"inset-e":P(),end:P()}],"inset-bs":[{"inset-bs":P()}],"inset-be":[{"inset-be":P()}],top:[{top:P()}],right:[{right:P()}],bottom:[{bottom:P()}],left:[{left:P()}],visibility:["visible","invisible","collapse"],z:[{z:[F,"auto",d,u]}],basis:[{basis:[v,"full","auto",n,...f()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[p,v,"auto","initial","none",u]}],grow:[{grow:["",p,d,u]}],shrink:[{shrink:["",p,d,u]}],order:[{order:[F,"first","last","none",d,u]}],"grid-cols":[{"grid-cols":Ie()}],"col-start-end":[{col:xe()}],"col-start":[{"col-start":_()}],"col-end":[{"col-end":_()}],"grid-rows":[{"grid-rows":Ie()}],"row-start-end":[{row:xe()}],"row-start":[{"row-start":_()}],"row-end":[{"row-end":_()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":Ce()}],"auto-rows":[{"auto-rows":Ce()}],gap:[{gap:f()}],"gap-x":[{"gap-x":f()}],"gap-y":[{"gap-y":f()}],"justify-content":[{justify:[...de(),"normal"]}],"justify-items":[{"justify-items":[...X(),"normal"]}],"justify-self":[{"justify-self":["auto",...X()]}],"align-content":[{content:["normal",...de()]}],"align-items":[{items:[...X(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...X(),{baseline:["","last"]}]}],"place-content":[{"place-content":de()}],"place-items":[{"place-items":[...X(),"baseline"]}],"place-self":[{"place-self":["auto",...X()]}],p:[{p:f()}],px:[{px:f()}],py:[{py:f()}],ps:[{ps:f()}],pe:[{pe:f()}],pbs:[{pbs:f()}],pbe:[{pbe:f()}],pt:[{pt:f()}],pr:[{pr:f()}],pb:[{pb:f()}],pl:[{pl:f()}],m:[{m:y()}],mx:[{mx:y()}],my:[{my:y()}],ms:[{ms:y()}],me:[{me:y()}],mbs:[{mbs:y()}],mbe:[{mbe:y()}],mt:[{mt:y()}],mr:[{mr:y()}],mb:[{mb:y()}],ml:[{ml:y()}],"space-x":[{"space-x":f()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":f()}],"space-y-reverse":["space-y-reverse"],size:[{size:H()}],"inline-size":[{inline:["auto",...se()]}],"min-inline-size":[{"min-inline":["auto",...se()]}],"max-inline-size":[{"max-inline":["none",...se()]}],"block-size":[{block:["auto",...fe()]}],"min-block-size":[{"min-block":["auto",...fe()]}],"max-block-size":[{"max-block":["none",...fe()]}],w:[{w:[n,"screen",...H()]}],"min-w":[{"min-w":[n,"screen","none",...H()]}],"max-w":[{"max-w":[n,"screen","none","prose",{screen:[r]},...H()]}],h:[{h:["screen","lh",...H()]}],"min-h":[{"min-h":["screen","lh","none",...H()]}],"max-h":[{"max-h":["screen","lh",...H()]}],"font-size":[{text:["base",t,J,G]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,dt,at]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ne,u]}],"font-family":[{font:[lt,tt,a]}],"font-features":[{"font-features":[u]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[l,d,u]}],"line-clamp":[{"line-clamp":[p,"none",d,ze]}],leading:[{leading:[s,...f()]}],"list-image":[{"list-image":["none",d,u]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",d,u]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:i()}],"text-color":[{text:i()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Q(),"wavy"]}],"text-decoration-thickness":[{decoration:[p,"from-font","auto",d,G]}],"text-decoration-color":[{decoration:i()}],"underline-offset":[{"underline-offset":[p,"auto",d,u]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:f()}],"tab-size":[{tab:[F,d,u]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",d,u]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",d,u]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ge()}],"bg-repeat":[{bg:he()}],"bg-size":[{bg:Se()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},F,d,u],radial:["",d,u],conic:[F,d,u]},ut,ot]}],"bg-color":[{bg:i()}],"gradient-from-pos":[{from:ie()}],"gradient-via-pos":[{via:ie()}],"gradient-to-pos":[{to:ie()}],"gradient-from":[{from:i()}],"gradient-via":[{via:i()}],"gradient-to":[{to:i()}],rounded:[{rounded:S()}],"rounded-s":[{"rounded-s":S()}],"rounded-e":[{"rounded-e":S()}],"rounded-t":[{"rounded-t":S()}],"rounded-r":[{"rounded-r":S()}],"rounded-b":[{"rounded-b":S()}],"rounded-l":[{"rounded-l":S()}],"rounded-ss":[{"rounded-ss":S()}],"rounded-se":[{"rounded-se":S()}],"rounded-ee":[{"rounded-ee":S()}],"rounded-es":[{"rounded-es":S()}],"rounded-tl":[{"rounded-tl":S()}],"rounded-tr":[{"rounded-tr":S()}],"rounded-br":[{"rounded-br":S()}],"rounded-bl":[{"rounded-bl":S()}],"border-w":[{border:w()}],"border-w-x":[{"border-x":w()}],"border-w-y":[{"border-y":w()}],"border-w-s":[{"border-s":w()}],"border-w-e":[{"border-e":w()}],"border-w-bs":[{"border-bs":w()}],"border-w-be":[{"border-be":w()}],"border-w-t":[{"border-t":w()}],"border-w-r":[{"border-r":w()}],"border-w-b":[{"border-b":w()}],"border-w-l":[{"border-l":w()}],"divide-x":[{"divide-x":w()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":w()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Q(),"hidden","none"]}],"divide-style":[{divide:[...Q(),"hidden","none"]}],"border-color":[{border:i()}],"border-color-x":[{"border-x":i()}],"border-color-y":[{"border-y":i()}],"border-color-s":[{"border-s":i()}],"border-color-e":[{"border-e":i()}],"border-color-bs":[{"border-bs":i()}],"border-color-be":[{"border-be":i()}],"border-color-t":[{"border-t":i()}],"border-color-r":[{"border-r":i()}],"border-color-b":[{"border-b":i()}],"border-color-l":[{"border-l":i()}],"divide-color":[{divide:i()}],"outline-style":[{outline:[...Q(),"none","hidden"]}],"outline-offset":[{"outline-offset":[p,d,u]}],"outline-w":[{outline:["",p,J,G]}],"outline-color":[{outline:i()}],shadow:[{shadow:["","none",L,re,le]}],"shadow-color":[{shadow:i()}],"inset-shadow":[{"inset-shadow":["none",x,re,le]}],"inset-shadow-color":[{"inset-shadow":i()}],"ring-w":[{ring:w()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:i()}],"ring-offset-w":[{"ring-offset":[p,G]}],"ring-offset-color":[{"ring-offset":i()}],"inset-ring-w":[{"inset-ring":w()}],"inset-ring-color":[{"inset-ring":i()}],"text-shadow":[{"text-shadow":["none",A,re,le]}],"text-shadow-color":[{"text-shadow":i()}],opacity:[{opacity:[p,d,u]}],"mix-blend":[{"mix-blend":[...we(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":we()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[p]}],"mask-image-linear-from-pos":[{"mask-linear-from":C()}],"mask-image-linear-to-pos":[{"mask-linear-to":C()}],"mask-image-linear-from-color":[{"mask-linear-from":i()}],"mask-image-linear-to-color":[{"mask-linear-to":i()}],"mask-image-t-from-pos":[{"mask-t-from":C()}],"mask-image-t-to-pos":[{"mask-t-to":C()}],"mask-image-t-from-color":[{"mask-t-from":i()}],"mask-image-t-to-color":[{"mask-t-to":i()}],"mask-image-r-from-pos":[{"mask-r-from":C()}],"mask-image-r-to-pos":[{"mask-r-to":C()}],"mask-image-r-from-color":[{"mask-r-from":i()}],"mask-image-r-to-color":[{"mask-r-to":i()}],"mask-image-b-from-pos":[{"mask-b-from":C()}],"mask-image-b-to-pos":[{"mask-b-to":C()}],"mask-image-b-from-color":[{"mask-b-from":i()}],"mask-image-b-to-color":[{"mask-b-to":i()}],"mask-image-l-from-pos":[{"mask-l-from":C()}],"mask-image-l-to-pos":[{"mask-l-to":C()}],"mask-image-l-from-color":[{"mask-l-from":i()}],"mask-image-l-to-color":[{"mask-l-to":i()}],"mask-image-x-from-pos":[{"mask-x-from":C()}],"mask-image-x-to-pos":[{"mask-x-to":C()}],"mask-image-x-from-color":[{"mask-x-from":i()}],"mask-image-x-to-color":[{"mask-x-to":i()}],"mask-image-y-from-pos":[{"mask-y-from":C()}],"mask-image-y-to-pos":[{"mask-y-to":C()}],"mask-image-y-from-color":[{"mask-y-from":i()}],"mask-image-y-to-color":[{"mask-y-to":i()}],"mask-image-radial":[{"mask-radial":[d,u]}],"mask-image-radial-from-pos":[{"mask-radial-from":C()}],"mask-image-radial-to-pos":[{"mask-radial-to":C()}],"mask-image-radial-from-color":[{"mask-radial-from":i()}],"mask-image-radial-to-color":[{"mask-radial-to":i()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":E()}],"mask-image-conic-pos":[{"mask-conic":[p]}],"mask-image-conic-from-pos":[{"mask-conic-from":C()}],"mask-image-conic-to-pos":[{"mask-conic-to":C()}],"mask-image-conic-from-color":[{"mask-conic-from":i()}],"mask-image-conic-to-color":[{"mask-conic-to":i()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ge()}],"mask-repeat":[{mask:he()}],"mask-size":[{mask:Se()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",d,u]}],filter:[{filter:["","none",d,u]}],blur:[{blur:ke()}],brightness:[{brightness:[p,d,u]}],contrast:[{contrast:[p,d,u]}],"drop-shadow":[{"drop-shadow":["","none",h,re,le]}],"drop-shadow-color":[{"drop-shadow":i()}],grayscale:[{grayscale:["",p,d,u]}],"hue-rotate":[{"hue-rotate":[p,d,u]}],invert:[{invert:["",p,d,u]}],saturate:[{saturate:[p,d,u]}],sepia:[{sepia:["",p,d,u]}],"backdrop-filter":[{"backdrop-filter":["","none",d,u]}],"backdrop-blur":[{"backdrop-blur":ke()}],"backdrop-brightness":[{"backdrop-brightness":[p,d,u]}],"backdrop-contrast":[{"backdrop-contrast":[p,d,u]}],"backdrop-grayscale":[{"backdrop-grayscale":["",p,d,u]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[p,d,u]}],"backdrop-invert":[{"backdrop-invert":["",p,d,u]}],"backdrop-opacity":[{"backdrop-opacity":[p,d,u]}],"backdrop-saturate":[{"backdrop-saturate":[p,d,u]}],"backdrop-sepia":[{"backdrop-sepia":["",p,d,u]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":f()}],"border-spacing-x":[{"border-spacing-x":f()}],"border-spacing-y":[{"border-spacing-y":f()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",d,u]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[p,"initial",d,u]}],ease:[{ease:["linear","initial",O,d,u]}],delay:[{delay:[p,d,u]}],animate:[{animate:["none",b,d,u]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[k,d,u]}],"perspective-origin":[{"perspective-origin":W()}],rotate:[{rotate:j()}],"rotate-x":[{"rotate-x":j()}],"rotate-y":[{"rotate-y":j()}],"rotate-z":[{"rotate-z":j()}],scale:[{scale:$()}],"scale-x":[{"scale-x":$()}],"scale-y":[{"scale-y":$()}],"scale-z":[{"scale-z":$()}],"scale-3d":["scale-3d"],skew:[{skew:ce()}],"skew-x":[{"skew-x":ce()}],"skew-y":[{"skew-y":ce()}],transform:[{transform:[d,u,"","none","gpu","cpu"]}],"transform-origin":[{origin:W()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Y()}],"translate-x":[{"translate-x":Y()}],"translate-y":[{"translate-y":Y()}],"translate-z":[{"translate-z":Y()}],"translate-none":["translate-none"],zoom:[{zoom:[F,d,u]}],accent:[{accent:i()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:i()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",d,u]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":i()}],"scrollbar-track-color":[{"scrollbar-track":i()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":f()}],"scroll-mx":[{"scroll-mx":f()}],"scroll-my":[{"scroll-my":f()}],"scroll-ms":[{"scroll-ms":f()}],"scroll-me":[{"scroll-me":f()}],"scroll-mbs":[{"scroll-mbs":f()}],"scroll-mbe":[{"scroll-mbe":f()}],"scroll-mt":[{"scroll-mt":f()}],"scroll-mr":[{"scroll-mr":f()}],"scroll-mb":[{"scroll-mb":f()}],"scroll-ml":[{"scroll-ml":f()}],"scroll-p":[{"scroll-p":f()}],"scroll-px":[{"scroll-px":f()}],"scroll-py":[{"scroll-py":f()}],"scroll-ps":[{"scroll-ps":f()}],"scroll-pe":[{"scroll-pe":f()}],"scroll-pbs":[{"scroll-pbs":f()}],"scroll-pbe":[{"scroll-pbe":f()}],"scroll-pt":[{"scroll-pt":f()}],"scroll-pr":[{"scroll-pr":f()}],"scroll-pb":[{"scroll-pb":f()}],"scroll-pl":[{"scroll-pl":f()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",d,u]}],fill:[{fill:["none",...i()]}],"stroke-w":[{stroke:[p,J,G,ze]}],stroke:[{stroke:["none",...i()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}};var oa=Va(ft);function V(...e){return oa(Ue(e))}import{jsx as T,jsxs as it}from"react/jsx-runtime";function zt({...e}){return T("nav",{"aria-label":"breadcrumb","data-slot":"breadcrumb",...e})}function Vt({className:e,...a}){return T("ol",{"data-slot":"breadcrumb-list",className:V("flex flex-wrap items-center gap-1.5 text-sm break-words text-muted-foreground sm:gap-2.5",e),...a})}function Et({className:e,...a}){return T("li",{"data-slot":"breadcrumb-item",className:V("inline-flex items-center gap-1.5",e),...a})}function Wt({asChild:e,className:a,...t}){let o=e?oe.Root:"a";return T(o,{"data-slot":"breadcrumb-link",className:V("transition-colors hover:text-foreground",a),...t})}function Nt({className:e,...a}){return T("span",{"data-slot":"breadcrumb-page",role:"link","aria-disabled":"true","aria-current":"page",className:V("font-normal text-foreground",e),...a})}function Xt({children:e,className:a,...t}){return T("li",{"data-slot":"breadcrumb-separator",role:"presentation","aria-hidden":"true",className:V("[&>svg]:size-3.5",a),...t,children:e??T(Z,{})})}function Kt({className:e,...a}){return it("span",{"data-slot":"breadcrumb-ellipsis",role:"presentation","aria-hidden":"true",className:V("flex size-9 items-center justify-center",e),...a,children:[T(q,{className:"size-4"}),T("span",{className:"sr-only",children:"More"})]})}export{zt as Breadcrumb,Kt as BreadcrumbEllipsis,Et as BreadcrumbItem,Wt as BreadcrumbLink,Vt as BreadcrumbList,Nt as BreadcrumbPage,Xt as BreadcrumbSeparator};
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
lucide-react/dist/esm/shared/src/utils.js:
|
| 5 |
-
(**
|
| 6 |
-
* @license lucide-react v0.456.0 - ISC
|
| 7 |
-
*
|
| 8 |
-
* This source code is licensed under the ISC license.
|
| 9 |
-
* See the LICENSE file in the root directory of this source tree.
|
| 10 |
-
*)
|
| 11 |
-
|
| 12 |
-
lucide-react/dist/esm/defaultAttributes.js:
|
| 13 |
-
(**
|
| 14 |
-
* @license lucide-react v0.456.0 - ISC
|
| 15 |
-
*
|
| 16 |
-
* This source code is licensed under the ISC license.
|
| 17 |
-
* See the LICENSE file in the root directory of this source tree.
|
| 18 |
-
*)
|
| 19 |
-
|
| 20 |
-
lucide-react/dist/esm/Icon.js:
|
| 21 |
-
(**
|
| 22 |
-
* @license lucide-react v0.456.0 - ISC
|
| 23 |
-
*
|
| 24 |
-
* This source code is licensed under the ISC license.
|
| 25 |
-
* See the LICENSE file in the root directory of this source tree.
|
| 26 |
-
*)
|
| 27 |
-
|
| 28 |
-
lucide-react/dist/esm/createLucideIcon.js:
|
| 29 |
-
(**
|
| 30 |
-
* @license lucide-react v0.456.0 - ISC
|
| 31 |
-
*
|
| 32 |
-
* This source code is licensed under the ISC license.
|
| 33 |
-
* See the LICENSE file in the root directory of this source tree.
|
| 34 |
-
*)
|
| 35 |
-
|
| 36 |
-
lucide-react/dist/esm/icons/chevron-right.js:
|
| 37 |
-
(**
|
| 38 |
-
* @license lucide-react v0.456.0 - ISC
|
| 39 |
-
*
|
| 40 |
-
* This source code is licensed under the ISC license.
|
| 41 |
-
* See the LICENSE file in the root directory of this source tree.
|
| 42 |
-
*)
|
| 43 |
-
|
| 44 |
-
lucide-react/dist/esm/icons/ellipsis.js:
|
| 45 |
-
(**
|
| 46 |
-
* @license lucide-react v0.456.0 - ISC
|
| 47 |
-
*
|
| 48 |
-
* This source code is licensed under the ISC license.
|
| 49 |
-
* See the LICENSE file in the root directory of this source tree.
|
| 50 |
-
*)
|
| 51 |
-
|
| 52 |
-
lucide-react/dist/esm/lucide-react.js:
|
| 53 |
-
(**
|
| 54 |
-
* @license lucide-react v0.456.0 - ISC
|
| 55 |
-
*
|
| 56 |
-
* This source code is licensed under the ISC license.
|
| 57 |
-
* See the LICENSE file in the root directory of this source tree.
|
| 58 |
-
*)
|
| 59 |
-
*/
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:27302a3d1682beb4990b5294733815f20072d7557054fde1a39188a30393e383
|
| 3 |
+
size 34284
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6b8dbab17f20207f4c95f00ed8e82808d5bd9e417925aea295755928ad9aff00
CHANGED
|
@@ -1,22 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
ToggleGroup,
|
| 5 |
-
ToggleGroupItem,
|
| 6 |
-
} from "@/registry/new-york-v4/ui/toggle-group"
|
| 7 |
-
|
| 8 |
-
export default function ToggleGroupDemo() {
|
| 9 |
-
return (
|
| 10 |
-
<ToggleGroup type="multiple" disabled>
|
| 11 |
-
<ToggleGroupItem value="bold" aria-label="Toggle bold">
|
| 12 |
-
<Bold className="h-4 w-4" />
|
| 13 |
-
</ToggleGroupItem>
|
| 14 |
-
<ToggleGroupItem value="italic" aria-label="Toggle italic">
|
| 15 |
-
<Italic className="h-4 w-4" />
|
| 16 |
-
</ToggleGroupItem>
|
| 17 |
-
<ToggleGroupItem value="strikethrough" aria-label="Toggle strikethrough">
|
| 18 |
-
<Underline className="h-4 w-4" />
|
| 19 |
-
</ToggleGroupItem>
|
| 20 |
-
</ToggleGroup>
|
| 21 |
-
)
|
| 22 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:cb2922074778eee0ccaae2fb4649c69305c7372e82158ed00e2fbdbd09ac9cd9
|
| 3 |
+
size 672
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6b9dcec02240ee13eb78762e0b3f6cee1d6ddc2cbcb8a7f8b889632c5264c68d
CHANGED
|
@@ -1 +1,3 @@
|
|
| 1 |
-
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:35662562a8ebda54d1f487c5cf50cb951f2e5e00a3081bd0387c3f201ea117a8
|
| 3 |
+
size 3972
|
b/6be006c6182f48c588ba76a4e34de594d017a6887a37a3bdf074c1dce7e41d41
CHANGED
|
@@ -1 +1,3 @@
|
|
| 1 |
-
var Ct=Object.defineProperty;var ve=(e,o)=>{for(var t in o)Ct(e,t,{get:o[t],enumerable:!0})};function Ve(e){var o,t,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var n=e.length;for(o=0;o<n;o++)e[o]&&(t=Ve(e[o]))&&(r&&(r+=" "),r+=t)}else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}function ee(){for(var e,o,t=0,r="",n=arguments.length;t<n;t++)(e=arguments[t])&&(o=Ve(e))&&(r&&(r+=" "),r+=o);return r}var _e=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Oe=ee,te=(e,o)=>t=>{var r;if(o?.variants==null)return Oe(e,t?.class,t?.className);let{variants:n,defaultVariants:s}=o,a=Object.keys(n).map(d=>{let b=t?.[d],g=s?.[d];if(b===null)return null;let v=_e(b)||_e(g);return n[d][v]}),p=t&&Object.entries(t).reduce((d,b)=>{let[g,v]=b;return v===void 0||(d[g]=v),d},{}),u=o==null||(r=o.compoundVariants)===null||r===void 0?void 0:r.reduce((d,b)=>{let{class:g,className:v,...w}=b;return Object.entries(w).every(F=>{let[R,C]=F;return Array.isArray(C)?C.includes({...s,...p}[R]):{...s,...p}[R]===C})?[...d,g,v]:d},[]);return Oe(e,a,u,t?.class,t?.className)};import*as Ye from"react";import*as Et from"react-dom";var ne={};ve(ne,{Root:()=>zt,Slot:()=>zt,Slottable:()=>Pt,createSlot:()=>re,createSlottable:()=>Ue});import*as k from"react";import*as We from"react";function De(e,o){if(typeof e=="function")return e(o);e!=null&&(e.current=o)}function St(...e){return o=>{let t=!1,r=e.map(n=>{let s=De(n,o);return!t&&typeof s=="function"&&(t=!0),s});if(t)return()=>{for(let n=0;n<r.length;n++){let s=r[n];typeof s=="function"?s():De(e[n],null)}}}}function je(...e){return We.useCallback(St(...e),e)}function re(e){let o=k.forwardRef((t,r)=>{let{children:n,...s}=t,a=null,p=!1,u=[];$e(n)&&typeof oe=="function"&&(n=oe(n._payload)),k.Children.forEach(n,v=>{if(Mt(v)){p=!0;let w=v,F="child"in w.props?w.props.child:w.props.children;$e(F)&&typeof oe=="function"&&(F=oe(F._payload)),a=At(w,F),u.push(a?.props?.children)}else u.push(v)}),a?a=k.cloneElement(a,void 0,u):!p&&k.Children.count(n)===1&&k.isValidElement(n)&&(a=n);let d=a?Ft(a):void 0,b=je(r,d);if(!a){if(n||n===0)throw new Error(p?Lt(e):Tt(e));return n}let g=Nt(s,a.props??{});return a.type!==k.Fragment&&(g.ref=r?b:d),k.cloneElement(a,g)});return o.displayName=`${e}.Slot`,o}var zt=re("Slot"),Be=Symbol.for("radix.slottable");function Ue(e){let o=t=>"child"in t?t.children(t.child):t.children;return o.displayName=`${e}.Slottable`,o.__radixId=Be,o}var Pt=Ue("Slottable"),At=(e,o)=>{if("child"in e.props){let t=e.props.child;return k.isValidElement(t)?k.cloneElement(t,void 0,e.props.children(t.props.children)):null}return k.isValidElement(o)?o:null};function Nt(e,o){let t={...o};for(let r in o){let n=e[r],s=o[r];/^on[A-Z]/.test(r)?n&&s?t[r]=(...p)=>{let u=s(...p);return n(...p),u}:n&&(t[r]=n):r==="style"?t[r]={...n,...s}:r==="className"&&(t[r]=[n,s].filter(Boolean).join(" "))}return{...e,...t}}function Ft(e){let o=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=o&&"isReactWarning"in o&&o.isReactWarning;return t?e.ref:(o=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=o&&"isReactWarning"in o&&o.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}function Mt(e){return k.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Be}var Gt=Symbol.for("react.lazy");function $e(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Gt&&"_payload"in e&&It(e._payload)}function It(e){return typeof e=="object"&&e!==null&&"then"in e}var Tt=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,Lt=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,oe=k[" use ".trim().toString()];import{jsx as Vt}from"react/jsx-runtime";var _t=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],se=_t.reduce((e,o)=>{let t=re(`Primitive.${o}`),r=Ye.forwardRef((n,s)=>{let{asChild:a,...p}=n,u=a?t:o;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),Vt(u,{...p,ref:s})});return r.displayName=`Primitive.${o}`,{...e,[o]:r}},{});var ae={};ve(ae,{Label:()=>ye,Root:()=>Wt});import*as qe from"react";import{jsx as Ot}from"react/jsx-runtime";var Dt="Label",ye=qe.forwardRef((e,o)=>Ot(se.label,{...e,ref:o,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));ye.displayName=Dt;var Wt=ye;var ie={};ve(ie,{Root:()=>Yt,Separator:()=>we});import*as Ke from"react";import{jsx as jt}from"react/jsx-runtime";var $t="Separator",He="horizontal",Bt=["horizontal","vertical"],we=Ke.forwardRef((e,o)=>{let{decorative:t,orientation:r=He,...n}=e,s=Ut(r)?r:He,p=t?{role:"none"}:{"aria-orientation":s==="vertical"?s:void 0,role:"separator"};return jt(se.div,{"data-orientation":s,...p,...n,ref:o})});we.displayName=$t;function Ut(e){return Bt.includes(e)}var Yt=we;var qt=(e,o)=>{let t=new Array(e.length+o.length);for(let r=0;r<e.length;r++)t[r]=e[r];for(let r=0;r<o.length;r++)t[e.length+r]=o[r];return t},Ht=(e,o)=>({classGroupId:e,validator:o}),ot=(e=new Map,o=null,t)=>({nextPart:e,validators:o,classGroupId:t}),de="-",Xe=[],Kt="arbitrary..",Xt=e=>{let o=Jt(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:a=>{if(a.startsWith("[")&&a.endsWith("]"))return Zt(a);let p=a.split(de),u=p[0]===""&&p.length>1?1:0;return rt(p,u,o)},getConflictingClassGroupIds:(a,p)=>{if(p){let u=r[a],d=t[a];return u?d?qt(d,u):u:d||Xe}return t[a]||Xe}}},rt=(e,o,t)=>{if(e.length-o===0)return t.classGroupId;let n=e[o],s=t.nextPart.get(n);if(s){let d=rt(e,o+1,s);if(d)return d}let a=t.validators;if(a===null)return;let p=o===0?e.join(de):e.slice(o).join(de),u=a.length;for(let d=0;d<u;d++){let b=a[d];if(b.validator(p))return b.classGroupId}},Zt=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{let o=e.slice(1,-1),t=o.indexOf(":"),r=o.slice(0,t);return r?Kt+r:void 0})(),Jt=e=>{let{theme:o,classGroups:t}=e;return Qt(t,o)},Qt=(e,o)=>{let t=ot();for(let r in e){let n=e[r];Ce(n,t,r,o)}return t},Ce=(e,o,t,r)=>{let n=e.length;for(let s=0;s<n;s++){let a=e[s];eo(a,o,t,r)}},eo=(e,o,t,r)=>{if(typeof e=="string"){to(e,o,t);return}if(typeof e=="function"){oo(e,o,t,r);return}ro(e,o,t,r)},to=(e,o,t)=>{let r=e===""?o:nt(o,e);r.classGroupId=t},oo=(e,o,t,r)=>{if(no(e)){Ce(e(r),o,t,r);return}o.validators===null&&(o.validators=[]),o.validators.push(Ht(t,e))},ro=(e,o,t,r)=>{let n=Object.entries(e),s=n.length;for(let a=0;a<s;a++){let[p,u]=n[a];Ce(u,nt(o,p),t,r)}},nt=(e,o)=>{let t=e,r=o.split(de),n=r.length;for(let s=0;s<n;s++){let a=r[s],p=t.nextPart.get(a);p||(p=ot(),t.nextPart.set(a,p)),t=p}return t},no=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,so=e=>{if(e<1)return{get:()=>{},set:()=>{}};let o=0,t=Object.create(null),r=Object.create(null),n=(s,a)=>{t[s]=a,o++,o>e&&(o=0,r=t,t=Object.create(null))};return{get(s){let a=t[s];if(a!==void 0)return a;if((a=r[s])!==void 0)return n(s,a),a},set(s,a){s in t?t[s]=a:n(s,a)}}},Re="!",Ze=":",ao=[],Je=(e,o,t,r,n)=>({modifiers:e,hasImportantModifier:o,baseClassName:t,maybePostfixModifierPosition:r,isExternal:n}),io=e=>{let{prefix:o,experimentalParseClassName:t}=e,r=n=>{let s=[],a=0,p=0,u=0,d,b=n.length;for(let R=0;R<b;R++){let C=n[R];if(a===0&&p===0){if(C===Ze){s.push(n.slice(u,R)),u=R+1;continue}if(C==="/"){d=R;continue}}C==="["?a++:C==="]"?a--:C==="("?p++:C===")"&&p--}let g=s.length===0?n:n.slice(u),v=g,w=!1;g.endsWith(Re)?(v=g.slice(0,-1),w=!0):g.startsWith(Re)&&(v=g.slice(1),w=!0);let F=d&&d>u?d-u:void 0;return Je(s,w,v,F)};if(o){let n=o+Ze,s=r;r=a=>a.startsWith(n)?s(a.slice(n.length)):Je(ao,!1,a,void 0,!0)}if(t){let n=r;r=s=>t({className:s,parseClassName:n})}return r},lo=e=>{let o=new Map;return e.orderSensitiveModifiers.forEach((t,r)=>{o.set(t,1e6+r)}),t=>{let r=[],n=[];for(let s=0;s<t.length;s++){let a=t[s],p=a[0]==="[",u=o.has(a);p||u?(n.length>0&&(n.sort(),r.push(...n),n=[]),r.push(a)):n.push(a)}return n.length>0&&(n.sort(),r.push(...n)),r}},co=e=>({cache:so(e.cacheSize),parseClassName:io(e),sortModifiers:lo(e),postfixLookupClassGroupIds:mo(e),...Xt(e)}),mo=e=>{let o=Object.create(null),t=e.postfixLookupClassGroups;if(t)for(let r=0;r<t.length;r++)o[t[r]]=!0;return o},po=/\s+/,uo=(e,o)=>{let{parseClassName:t,getClassGroupId:r,getConflictingClassGroupIds:n,sortModifiers:s,postfixLookupClassGroupIds:a}=o,p=[],u=e.trim().split(po),d="";for(let b=u.length-1;b>=0;b-=1){let g=u[b],{isExternal:v,modifiers:w,hasImportantModifier:F,baseClassName:R,maybePostfixModifierPosition:C}=t(g);if(v){d=g+(d.length>0?" "+d:d);continue}let _=!!C,A;if(_){let I=R.substring(0,C);A=r(I);let c=A&&a[A]?r(R):void 0;c&&c!==A&&(A=c,_=!1)}else A=r(R);if(!A){if(!_){d=g+(d.length>0?" "+d:d);continue}if(A=r(R),!A){d=g+(d.length>0?" "+d:d);continue}_=!1}let q=w.length===0?"":w.length===1?w[0]:s(w).join(":"),$=F?q+Re:q,B=$+A;if(p.indexOf(B)>-1)continue;p.push(B);let U=n(A,_);for(let I=0;I<U.length;++I){let c=U[I];p.push($+c)}d=g+(d.length>0?" "+d:d)}return d},fo=(...e)=>{let o=0,t,r,n="";for(;o<e.length;)(t=e[o++])&&(r=st(t))&&(n&&(n+=" "),n+=r);return n},st=e=>{if(typeof e=="string")return e;let o,t="";for(let r=0;r<e.length;r++)e[r]&&(o=st(e[r]))&&(t&&(t+=" "),t+=o);return t},bo=(e,...o)=>{let t,r,n,s,a=u=>{let d=o.reduce((b,g)=>g(b),e());return t=co(d),r=t.cache.get,n=t.cache.set,s=p,p(u)},p=u=>{let d=r(u);if(d)return d;let b=uo(u,t);return n(u,b),b};return s=a,(...u)=>s(fo(...u))},go=[],h=e=>{let o=t=>t[e]||go;return o.isThemeGetter=!0,o},at=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,it=/^\((?:(\w[\w-]*):)?(.+)\)$/i,ho=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,xo=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,vo=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,yo=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,wo=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,ko=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,E=e=>ho.test(e),f=e=>!!e&&!Number.isNaN(Number(e)),G=e=>!!e&&Number.isInteger(Number(e)),ke=e=>e.endsWith("%")&&f(e.slice(0,-1)),T=e=>xo.test(e),lt=()=>!0,Ro=e=>vo.test(e)&&!yo.test(e),Se=()=>!1,Co=e=>wo.test(e),So=e=>ko.test(e),zo=e=>!i(e)&&!l(e),Po=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),Ao=e=>V(e,mt,Se),i=e=>at.test(e),D=e=>V(e,pt,Ro),Qe=e=>V(e,Eo,f),No=e=>V(e,ft,lt),Fo=e=>V(e,ut,Se),et=e=>V(e,ct,Se),Mo=e=>V(e,dt,So),le=e=>V(e,bt,Co),l=e=>it.test(e),H=e=>W(e,pt),Go=e=>W(e,ut),tt=e=>W(e,ct),Io=e=>W(e,mt),To=e=>W(e,dt),ce=e=>W(e,bt,!0),Lo=e=>W(e,ft,!0),V=(e,o,t)=>{let r=at.exec(e);return r?r[1]?o(r[1]):t(r[2]):!1},W=(e,o,t=!1)=>{let r=it.exec(e);return r?r[1]?o(r[1]):t:!1},ct=e=>e==="position"||e==="percentage",dt=e=>e==="image"||e==="url",mt=e=>e==="length"||e==="size"||e==="bg-size",pt=e=>e==="length",Eo=e=>e==="number",ut=e=>e==="family-name",ft=e=>e==="number"||e==="weight",bt=e=>e==="shadow";var Vo=()=>{let e=h("color"),o=h("font"),t=h("text"),r=h("font-weight"),n=h("tracking"),s=h("leading"),a=h("breakpoint"),p=h("container"),u=h("spacing"),d=h("radius"),b=h("shadow"),g=h("inset-shadow"),v=h("text-shadow"),w=h("drop-shadow"),F=h("blur"),R=h("perspective"),C=h("aspect"),_=h("ease"),A=h("animate"),q=()=>["auto","avoid","all","avoid-page","page","left","right","column"],$=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],B=()=>[...$(),l,i],U=()=>["auto","hidden","clip","visible","scroll"],I=()=>["auto","contain","none"],c=()=>[l,i,u],N=()=>[E,"full","auto",...c()],Ne=()=>[G,"none","subgrid",l,i],Fe=()=>["auto",{span:["full",G,l,i]},G,l,i],K=()=>[G,"auto",l,i],Me=()=>["auto","min","max","fr",l,i],fe=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Y=()=>["start","end","center","stretch","center-safe","end-safe"],M=()=>["auto",...c()],O=()=>[E,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...c()],be=()=>[E,"screen","full","dvw","lvw","svw","min","max","fit",...c()],ge=()=>[E,"screen","full","lh","dvh","lvh","svh","min","max","fit",...c()],m=()=>[e,l,i],Ge=()=>[...$(),tt,et,{position:[l,i]}],Ie=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Te=()=>["auto","cover","contain",Io,Ao,{size:[l,i]}],he=()=>[ke,H,D],S=()=>["","none","full",d,l,i],z=()=>["",f,H,D],X=()=>["solid","dashed","dotted","double"],Le=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],y=()=>[f,ke,tt,et],Ee=()=>["","none",F,l,i],Z=()=>["none",f,l,i],J=()=>["none",f,l,i],xe=()=>[f,l,i],Q=()=>[E,"full",...c()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[T],breakpoint:[T],color:[lt],container:[T],"drop-shadow":[T],ease:["in","out","in-out"],font:[zo],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[T],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[T],shadow:[T],spacing:["px",f],text:[T],"text-shadow":[T],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",E,i,l,C]}],container:["container"],"container-type":[{"@container":["","normal","size",l,i]}],"container-named":[Po],columns:[{columns:[f,i,l,p]}],"break-after":[{"break-after":q()}],"break-before":[{"break-before":q()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:B()}],overflow:[{overflow:U()}],"overflow-x":[{"overflow-x":U()}],"overflow-y":[{"overflow-y":U()}],overscroll:[{overscroll:I()}],"overscroll-x":[{"overscroll-x":I()}],"overscroll-y":[{"overscroll-y":I()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:N()}],"inset-x":[{"inset-x":N()}],"inset-y":[{"inset-y":N()}],start:[{"inset-s":N(),start:N()}],end:[{"inset-e":N(),end:N()}],"inset-bs":[{"inset-bs":N()}],"inset-be":[{"inset-be":N()}],top:[{top:N()}],right:[{right:N()}],bottom:[{bottom:N()}],left:[{left:N()}],visibility:["visible","invisible","collapse"],z:[{z:[G,"auto",l,i]}],basis:[{basis:[E,"full","auto",p,...c()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[f,E,"auto","initial","none",i]}],grow:[{grow:["",f,l,i]}],shrink:[{shrink:["",f,l,i]}],order:[{order:[G,"first","last","none",l,i]}],"grid-cols":[{"grid-cols":Ne()}],"col-start-end":[{col:Fe()}],"col-start":[{"col-start":K()}],"col-end":[{"col-end":K()}],"grid-rows":[{"grid-rows":Ne()}],"row-start-end":[{row:Fe()}],"row-start":[{"row-start":K()}],"row-end":[{"row-end":K()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":Me()}],"auto-rows":[{"auto-rows":Me()}],gap:[{gap:c()}],"gap-x":[{"gap-x":c()}],"gap-y":[{"gap-y":c()}],"justify-content":[{justify:[...fe(),"normal"]}],"justify-items":[{"justify-items":[...Y(),"normal"]}],"justify-self":[{"justify-self":["auto",...Y()]}],"align-content":[{content:["normal",...fe()]}],"align-items":[{items:[...Y(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Y(),{baseline:["","last"]}]}],"place-content":[{"place-content":fe()}],"place-items":[{"place-items":[...Y(),"baseline"]}],"place-self":[{"place-self":["auto",...Y()]}],p:[{p:c()}],px:[{px:c()}],py:[{py:c()}],ps:[{ps:c()}],pe:[{pe:c()}],pbs:[{pbs:c()}],pbe:[{pbe:c()}],pt:[{pt:c()}],pr:[{pr:c()}],pb:[{pb:c()}],pl:[{pl:c()}],m:[{m:M()}],mx:[{mx:M()}],my:[{my:M()}],ms:[{ms:M()}],me:[{me:M()}],mbs:[{mbs:M()}],mbe:[{mbe:M()}],mt:[{mt:M()}],mr:[{mr:M()}],mb:[{mb:M()}],ml:[{ml:M()}],"space-x":[{"space-x":c()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":c()}],"space-y-reverse":["space-y-reverse"],size:[{size:O()}],"inline-size":[{inline:["auto",...be()]}],"min-inline-size":[{"min-inline":["auto",...be()]}],"max-inline-size":[{"max-inline":["none",...be()]}],"block-size":[{block:["auto",...ge()]}],"min-block-size":[{"min-block":["auto",...ge()]}],"max-block-size":[{"max-block":["none",...ge()]}],w:[{w:[p,"screen",...O()]}],"min-w":[{"min-w":[p,"screen","none",...O()]}],"max-w":[{"max-w":[p,"screen","none","prose",{screen:[a]},...O()]}],h:[{h:["screen","lh",...O()]}],"min-h":[{"min-h":["screen","lh","none",...O()]}],"max-h":[{"max-h":["screen","lh",...O()]}],"font-size":[{text:["base",t,H,D]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,Lo,No]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ke,i]}],"font-family":[{font:[Go,Fo,o]}],"font-features":[{"font-features":[i]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[n,l,i]}],"line-clamp":[{"line-clamp":[f,"none",l,Qe]}],leading:[{leading:[s,...c()]}],"list-image":[{"list-image":["none",l,i]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",l,i]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:m()}],"text-color":[{text:m()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...X(),"wavy"]}],"text-decoration-thickness":[{decoration:[f,"from-font","auto",l,D]}],"text-decoration-color":[{decoration:m()}],"underline-offset":[{"underline-offset":[f,"auto",l,i]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:c()}],"tab-size":[{tab:[G,l,i]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",l,i]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",l,i]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:Ge()}],"bg-repeat":[{bg:Ie()}],"bg-size":[{bg:Te()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},G,l,i],radial:["",l,i],conic:[G,l,i]},To,Mo]}],"bg-color":[{bg:m()}],"gradient-from-pos":[{from:he()}],"gradient-via-pos":[{via:he()}],"gradient-to-pos":[{to:he()}],"gradient-from":[{from:m()}],"gradient-via":[{via:m()}],"gradient-to":[{to:m()}],rounded:[{rounded:S()}],"rounded-s":[{"rounded-s":S()}],"rounded-e":[{"rounded-e":S()}],"rounded-t":[{"rounded-t":S()}],"rounded-r":[{"rounded-r":S()}],"rounded-b":[{"rounded-b":S()}],"rounded-l":[{"rounded-l":S()}],"rounded-ss":[{"rounded-ss":S()}],"rounded-se":[{"rounded-se":S()}],"rounded-ee":[{"rounded-ee":S()}],"rounded-es":[{"rounded-es":S()}],"rounded-tl":[{"rounded-tl":S()}],"rounded-tr":[{"rounded-tr":S()}],"rounded-br":[{"rounded-br":S()}],"rounded-bl":[{"rounded-bl":S()}],"border-w":[{border:z()}],"border-w-x":[{"border-x":z()}],"border-w-y":[{"border-y":z()}],"border-w-s":[{"border-s":z()}],"border-w-e":[{"border-e":z()}],"border-w-bs":[{"border-bs":z()}],"border-w-be":[{"border-be":z()}],"border-w-t":[{"border-t":z()}],"border-w-r":[{"border-r":z()}],"border-w-b":[{"border-b":z()}],"border-w-l":[{"border-l":z()}],"divide-x":[{"divide-x":z()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":z()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...X(),"hidden","none"]}],"divide-style":[{divide:[...X(),"hidden","none"]}],"border-color":[{border:m()}],"border-color-x":[{"border-x":m()}],"border-color-y":[{"border-y":m()}],"border-color-s":[{"border-s":m()}],"border-color-e":[{"border-e":m()}],"border-color-bs":[{"border-bs":m()}],"border-color-be":[{"border-be":m()}],"border-color-t":[{"border-t":m()}],"border-color-r":[{"border-r":m()}],"border-color-b":[{"border-b":m()}],"border-color-l":[{"border-l":m()}],"divide-color":[{divide:m()}],"outline-style":[{outline:[...X(),"none","hidden"]}],"outline-offset":[{"outline-offset":[f,l,i]}],"outline-w":[{outline:["",f,H,D]}],"outline-color":[{outline:m()}],shadow:[{shadow:["","none",b,ce,le]}],"shadow-color":[{shadow:m()}],"inset-shadow":[{"inset-shadow":["none",g,ce,le]}],"inset-shadow-color":[{"inset-shadow":m()}],"ring-w":[{ring:z()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:m()}],"ring-offset-w":[{"ring-offset":[f,D]}],"ring-offset-color":[{"ring-offset":m()}],"inset-ring-w":[{"inset-ring":z()}],"inset-ring-color":[{"inset-ring":m()}],"text-shadow":[{"text-shadow":["none",v,ce,le]}],"text-shadow-color":[{"text-shadow":m()}],opacity:[{opacity:[f,l,i]}],"mix-blend":[{"mix-blend":[...Le(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Le()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[f]}],"mask-image-linear-from-pos":[{"mask-linear-from":y()}],"mask-image-linear-to-pos":[{"mask-linear-to":y()}],"mask-image-linear-from-color":[{"mask-linear-from":m()}],"mask-image-linear-to-color":[{"mask-linear-to":m()}],"mask-image-t-from-pos":[{"mask-t-from":y()}],"mask-image-t-to-pos":[{"mask-t-to":y()}],"mask-image-t-from-color":[{"mask-t-from":m()}],"mask-image-t-to-color":[{"mask-t-to":m()}],"mask-image-r-from-pos":[{"mask-r-from":y()}],"mask-image-r-to-pos":[{"mask-r-to":y()}],"mask-image-r-from-color":[{"mask-r-from":m()}],"mask-image-r-to-color":[{"mask-r-to":m()}],"mask-image-b-from-pos":[{"mask-b-from":y()}],"mask-image-b-to-pos":[{"mask-b-to":y()}],"mask-image-b-from-color":[{"mask-b-from":m()}],"mask-image-b-to-color":[{"mask-b-to":m()}],"mask-image-l-from-pos":[{"mask-l-from":y()}],"mask-image-l-to-pos":[{"mask-l-to":y()}],"mask-image-l-from-color":[{"mask-l-from":m()}],"mask-image-l-to-color":[{"mask-l-to":m()}],"mask-image-x-from-pos":[{"mask-x-from":y()}],"mask-image-x-to-pos":[{"mask-x-to":y()}],"mask-image-x-from-color":[{"mask-x-from":m()}],"mask-image-x-to-color":[{"mask-x-to":m()}],"mask-image-y-from-pos":[{"mask-y-from":y()}],"mask-image-y-to-pos":[{"mask-y-to":y()}],"mask-image-y-from-color":[{"mask-y-from":m()}],"mask-image-y-to-color":[{"mask-y-to":m()}],"mask-image-radial":[{"mask-radial":[l,i]}],"mask-image-radial-from-pos":[{"mask-radial-from":y()}],"mask-image-radial-to-pos":[{"mask-radial-to":y()}],"mask-image-radial-from-color":[{"mask-radial-from":m()}],"mask-image-radial-to-color":[{"mask-radial-to":m()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":$()}],"mask-image-conic-pos":[{"mask-conic":[f]}],"mask-image-conic-from-pos":[{"mask-conic-from":y()}],"mask-image-conic-to-pos":[{"mask-conic-to":y()}],"mask-image-conic-from-color":[{"mask-conic-from":m()}],"mask-image-conic-to-color":[{"mask-conic-to":m()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:Ge()}],"mask-repeat":[{mask:Ie()}],"mask-size":[{mask:Te()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",l,i]}],filter:[{filter:["","none",l,i]}],blur:[{blur:Ee()}],brightness:[{brightness:[f,l,i]}],contrast:[{contrast:[f,l,i]}],"drop-shadow":[{"drop-shadow":["","none",w,ce,le]}],"drop-shadow-color":[{"drop-shadow":m()}],grayscale:[{grayscale:["",f,l,i]}],"hue-rotate":[{"hue-rotate":[f,l,i]}],invert:[{invert:["",f,l,i]}],saturate:[{saturate:[f,l,i]}],sepia:[{sepia:["",f,l,i]}],"backdrop-filter":[{"backdrop-filter":["","none",l,i]}],"backdrop-blur":[{"backdrop-blur":Ee()}],"backdrop-brightness":[{"backdrop-brightness":[f,l,i]}],"backdrop-contrast":[{"backdrop-contrast":[f,l,i]}],"backdrop-grayscale":[{"backdrop-grayscale":["",f,l,i]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[f,l,i]}],"backdrop-invert":[{"backdrop-invert":["",f,l,i]}],"backdrop-opacity":[{"backdrop-opacity":[f,l,i]}],"backdrop-saturate":[{"backdrop-saturate":[f,l,i]}],"backdrop-sepia":[{"backdrop-sepia":["",f,l,i]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":c()}],"border-spacing-x":[{"border-spacing-x":c()}],"border-spacing-y":[{"border-spacing-y":c()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",l,i]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[f,"initial",l,i]}],ease:[{ease:["linear","initial",_,l,i]}],delay:[{delay:[f,l,i]}],animate:[{animate:["none",A,l,i]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[R,l,i]}],"perspective-origin":[{"perspective-origin":B()}],rotate:[{rotate:Z()}],"rotate-x":[{"rotate-x":Z()}],"rotate-y":[{"rotate-y":Z()}],"rotate-z":[{"rotate-z":Z()}],scale:[{scale:J()}],"scale-x":[{"scale-x":J()}],"scale-y":[{"scale-y":J()}],"scale-z":[{"scale-z":J()}],"scale-3d":["scale-3d"],skew:[{skew:xe()}],"skew-x":[{"skew-x":xe()}],"skew-y":[{"skew-y":xe()}],transform:[{transform:[l,i,"","none","gpu","cpu"]}],"transform-origin":[{origin:B()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Q()}],"translate-x":[{"translate-x":Q()}],"translate-y":[{"translate-y":Q()}],"translate-z":[{"translate-z":Q()}],"translate-none":["translate-none"],zoom:[{zoom:[G,l,i]}],accent:[{accent:m()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:m()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",l,i]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":m()}],"scrollbar-track-color":[{"scrollbar-track":m()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":c()}],"scroll-mx":[{"scroll-mx":c()}],"scroll-my":[{"scroll-my":c()}],"scroll-ms":[{"scroll-ms":c()}],"scroll-me":[{"scroll-me":c()}],"scroll-mbs":[{"scroll-mbs":c()}],"scroll-mbe":[{"scroll-mbe":c()}],"scroll-mt":[{"scroll-mt":c()}],"scroll-mr":[{"scroll-mr":c()}],"scroll-mb":[{"scroll-mb":c()}],"scroll-ml":[{"scroll-ml":c()}],"scroll-p":[{"scroll-p":c()}],"scroll-px":[{"scroll-px":c()}],"scroll-py":[{"scroll-py":c()}],"scroll-ps":[{"scroll-ps":c()}],"scroll-pe":[{"scroll-pe":c()}],"scroll-pbs":[{"scroll-pbs":c()}],"scroll-pbe":[{"scroll-pbe":c()}],"scroll-pt":[{"scroll-pt":c()}],"scroll-pr":[{"scroll-pr":c()}],"scroll-pb":[{"scroll-pb":c()}],"scroll-pl":[{"scroll-pl":c()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",l,i]}],fill:[{fill:["none",...m()]}],"stroke-w":[{stroke:[f,H,D,Qe]}],stroke:[{stroke:["none",...m()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}};var gt=bo(Vo);function x(...e){return gt(ee(e))}import{jsx as Oo}from"react/jsx-runtime";var _o=te("inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 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",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function ze({className:e,variant:o="default",size:t="default",asChild:r=!1,...n}){let s=r?ne.Root:"button";return Oo(s,{"data-slot":"button","data-variant":o,"data-size":t,className:x(_o({variant:o,size:t,className:e})),...n})}import{useMemo as Sr}from"react";import{jsx as Do}from"react/jsx-runtime";function ht({className:e,...o}){return Do(ae.Root,{"data-slot":"label",className:x("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...o})}import{jsx as Wo}from"react/jsx-runtime";function xt({className:e,orientation:o="horizontal",decorative:t=!0,...r}){return Wo(ie.Root,{"data-slot":"separator",decorative:t,orientation:o,className:x("shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",e),...r})}import{jsx as L,jsxs as $o}from"react/jsx-runtime";function vt({className:e,...o}){return L("fieldset",{"data-slot":"field-set",className:x("flex flex-col gap-6","has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3",e),...o})}function yt({className:e,variant:o="legend",...t}){return L("legend",{"data-slot":"field-legend","data-variant":o,className:x("mb-3 font-medium","data-[variant=legend]:text-base","data-[variant=label]:text-sm",e),...t})}function wt({className:e,...o}){return L("div",{"data-slot":"field-group",className:x("group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4",e),...o})}var jo=te("group/field flex w-full gap-3 data-[invalid=true]:text-destructive",{variants:{orientation:{vertical:["flex-col [&>*]:w-full [&>.sr-only]:w-auto"],horizontal:["flex-row items-center","[&>[data-slot=field-label]]:flex-auto","has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"],responsive:["flex-col @md/field-group:flex-row @md/field-group:items-center [&>*]:w-full @md/field-group:[&>*]:w-auto [&>.sr-only]:w-auto","@md/field-group:[&>[data-slot=field-label]]:flex-auto","@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"]}},defaultVariants:{orientation:"vertical"}});function me({className:e,orientation:o="vertical",...t}){return L("div",{role:"group","data-slot":"field","data-orientation":o,className:x(jo({orientation:o}),e),...t})}function Pe({className:e,...o}){return L("div",{"data-slot":"field-content",className:x("group/field-content flex flex-1 flex-col gap-1.5 leading-snug",e),...o})}function Ae({className:e,...o}){return L(ht,{"data-slot":"field-label",className:x("group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50","has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4","has-data-[state=checked]:border-primary has-data-[state=checked]:bg-primary/5 dark:has-data-[state=checked]:bg-primary/10",e),...o})}function pe({className:e,...o}){return L("p",{"data-slot":"field-description",className:x("text-sm leading-normal font-normal text-muted-foreground group-has-[[data-orientation=horizontal]]/field:text-balance","last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5","[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary",e),...o})}function ue({children:e,className:o,...t}){return $o("div",{"data-slot":"field-separator","data-content":!!e,className:x("relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2",o),...t,children:[L(xt,{className:"absolute inset-0 top-1/2"}),e&&L("span",{className:"relative mx-auto block w-fit bg-background px-2 text-muted-foreground","data-slot":"field-separator-content",children:e})]})}import{jsx as Bo}from"react/jsx-runtime";function kt({className:e,type:o,...t}){return Bo("input",{type:o,"data-slot":"input",className:x("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",e),...t})}import{jsx as Uo}from"react/jsx-runtime";function Rt({className:e,...o}){return Uo("textarea",{"data-slot":"textarea",className:x("flex field-sizing-content min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40",e),...o})}import{jsx as P,jsxs as j}from"react/jsx-runtime";function Yo(){return P("div",{className:"w-full max-w-4xl",children:P("form",{children:j(vt,{children:[P(yt,{children:"Profile"}),P(pe,{children:"Fill in your profile information."}),P(ue,{}),j(wt,{children:[j(me,{orientation:"responsive",children:[j(Pe,{children:[P(Ae,{htmlFor:"name",children:"Name"}),P(pe,{children:"Provide your full name for identification"})]}),P(kt,{id:"name",placeholder:"Evil Rabbit",required:!0})]}),P(ue,{}),j(me,{orientation:"responsive",children:[j(Pe,{children:[P(Ae,{htmlFor:"lastName",children:"Message"}),P(pe,{children:"You can write your message here. Keep it short, preferably under 100 characters."})]}),P(Rt,{id:"message",placeholder:"Hello, world!",required:!0,className:"min-h-[100px] resize-none sm:min-w-[300px]"})]}),P(ue,{}),j(me,{orientation:"responsive",children:[P(ze,{type:"submit",children:"Submit"}),P(ze,{type:"button",variant:"outline",children:"Cancel"})]})]})]})})})}export{Yo as default};
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8355d3d7e9c69c63bc69b59c0b6ee98d4b20430ea798effe98cde92e3d5b832b
|
| 3 |
+
size 39862
|
b/6be369a06d9c6ad34479cd6691ccd81211783571b8d3b86b277e73adc2e99da3
CHANGED
|
@@ -1,20 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
"tier": "example",
|
| 5 |
-
"library": "shadcn",
|
| 6 |
-
"category": "Examples",
|
| 7 |
-
"upstream": "https://ui.shadcn.com/r/styles/new-york-v4/toggle-group-lg.json",
|
| 8 |
-
"did": "did:holo:sha256:27d8ca1c5f8b47cc377d081859be179e114e020d938df28e4c4a5fb0ee8bf965",
|
| 9 |
-
"import": "holo://sha256:b3040ecb2868e27425c61902786c6599ceec18a13cb4ebdef7b1aae7361e574b",
|
| 10 |
-
"integrity": "sha256-swQOyyho4nQlxhkCeGxlmc7sGKE8tOve97Gq5zYeV0s=",
|
| 11 |
-
"kappa": "sha256:27d8ca1c5f8b47cc377d081859be179e114e020d938df28e4c4a5fb0ee8bf965",
|
| 12 |
-
"moduleKappa": "sha256:b3040ecb2868e27425c61902786c6599ceec18a13cb4ebdef7b1aae7361e574b",
|
| 13 |
-
"renderExport": "default",
|
| 14 |
-
"source": "registry/new-york-v4/examples/toggle-group-lg.tsx",
|
| 15 |
-
"module": "vendor/components/toggle-group-lg.js",
|
| 16 |
-
"exports": [
|
| 17 |
-
"default"
|
| 18 |
-
],
|
| 19 |
-
"license": "MIT"
|
| 20 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:14664cd04e23f1871d231e3f2f6cc1a6ebd20270df3b78d91e13a26502f31185
|
| 3 |
+
size 869
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6be92392dfbd6ee0a0a5d97efab287701d9f76e95f6dae450306e721c2f35f46
CHANGED
|
@@ -1,38 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
PaginationEllipsis,
|
| 5 |
-
PaginationItem,
|
| 6 |
-
PaginationLink,
|
| 7 |
-
PaginationNext,
|
| 8 |
-
PaginationPrevious,
|
| 9 |
-
} from "@/registry/new-york-v4/ui/pagination"
|
| 10 |
-
|
| 11 |
-
export default function PaginationDemo() {
|
| 12 |
-
return (
|
| 13 |
-
<Pagination>
|
| 14 |
-
<PaginationContent>
|
| 15 |
-
<PaginationItem>
|
| 16 |
-
<PaginationPrevious href="#" />
|
| 17 |
-
</PaginationItem>
|
| 18 |
-
<PaginationItem>
|
| 19 |
-
<PaginationLink href="#">1</PaginationLink>
|
| 20 |
-
</PaginationItem>
|
| 21 |
-
<PaginationItem>
|
| 22 |
-
<PaginationLink href="#" isActive>
|
| 23 |
-
2
|
| 24 |
-
</PaginationLink>
|
| 25 |
-
</PaginationItem>
|
| 26 |
-
<PaginationItem>
|
| 27 |
-
<PaginationLink href="#">3</PaginationLink>
|
| 28 |
-
</PaginationItem>
|
| 29 |
-
<PaginationItem>
|
| 30 |
-
<PaginationEllipsis />
|
| 31 |
-
</PaginationItem>
|
| 32 |
-
<PaginationItem>
|
| 33 |
-
<PaginationNext href="#" />
|
| 34 |
-
</PaginationItem>
|
| 35 |
-
</PaginationContent>
|
| 36 |
-
</Pagination>
|
| 37 |
-
)
|
| 38 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d1d892b87ce2650ffff81660a087942df0cf119eac87260e69f4f671075c7746
|
| 3 |
+
size 951
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6c32761c5cabc3e05e986986698b4ad74493b8711bf3de84b0589cc2c65ef013
CHANGED
|
@@ -1,21 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
"tier": "component",
|
| 5 |
-
"library": "shadcn",
|
| 6 |
-
"category": "Layout",
|
| 7 |
-
"upstream": "https://ui.shadcn.com/r/styles/new-york-v4/scroll-area.json",
|
| 8 |
-
"did": "did:holo:sha256:8d92410cd07305cf81f9ef6fa9458e8c80ca7ec2ab34beddca07edda2fae9fa6",
|
| 9 |
-
"import": "holo://sha256:e581de037a4885660838bc84426c2aa3707af3bf1b4f0743ef2877aeca01cae9",
|
| 10 |
-
"integrity": "sha256-5YHeA3pIhWYIOLyEQmwqo3B6878bTwdD7yh3rsoByuk=",
|
| 11 |
-
"kappa": "sha256:8d92410cd07305cf81f9ef6fa9458e8c80ca7ec2ab34beddca07edda2fae9fa6",
|
| 12 |
-
"moduleKappa": "sha256:e581de037a4885660838bc84426c2aa3707af3bf1b4f0743ef2877aeca01cae9",
|
| 13 |
-
"renderExport": "ScrollArea",
|
| 14 |
-
"source": "components/ui/scroll-area.tsx",
|
| 15 |
-
"module": "vendor/components/scroll-area.js",
|
| 16 |
-
"exports": [
|
| 17 |
-
"ScrollArea",
|
| 18 |
-
"ScrollBar"
|
| 19 |
-
],
|
| 20 |
-
"license": "MIT"
|
| 21 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:fb18e947bbccc079c33bf68caee89c96b39c72cc5b2ca33da4358b3be563d0dd
|
| 3 |
+
size 848
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6c505c47c9cdeeddce014481b5d198c96cd546509c9eada2b81c73fbe5103edd
CHANGED
|
@@ -1,7 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
export default ({ addBase, prefix = '' }) => {
|
| 5 |
-
const prefixedcaramellatte = addPrefix(caramellatte, prefix);
|
| 6 |
-
addBase({ ...prefixedcaramellatte });
|
| 7 |
-
};
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d466e034d977e6e64860993910202b3d68e186196d151c101d1a5ec46962066f
|
| 3 |
+
size 253
|
|
|
|
|
|
|
|
|
|
|
|
b/6c924350ba2921766013932a480fcaf98a7ba5ffa7251df93c6cf849c4c6def0
CHANGED
|
@@ -1 +1,3 @@
|
|
| 1 |
-
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1749b3977864bbaf6af160a7a248c94439808a0ff3126c009c50269ff02bef9e
|
| 3 |
+
size 1527
|
b/6cb9d510f8de13010391f37df268f9d89f9d14ff9dfc96314e58350bb3fd1a25
CHANGED
|
@@ -1,48 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
import { cn } from "@/lib/utils"
|
| 6 |
-
|
| 7 |
-
const badgeVariants = cva(
|
| 8 |
-
"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",
|
| 9 |
-
{
|
| 10 |
-
variants: {
|
| 11 |
-
variant: {
|
| 12 |
-
default: "bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
|
| 13 |
-
secondary:
|
| 14 |
-
"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
|
| 15 |
-
destructive:
|
| 16 |
-
"bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",
|
| 17 |
-
outline:
|
| 18 |
-
"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
|
| 19 |
-
ghost: "[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
|
| 20 |
-
link: "text-primary underline-offset-4 [a&]:hover:underline",
|
| 21 |
-
},
|
| 22 |
-
},
|
| 23 |
-
defaultVariants: {
|
| 24 |
-
variant: "default",
|
| 25 |
-
},
|
| 26 |
-
}
|
| 27 |
-
)
|
| 28 |
-
|
| 29 |
-
function Badge({
|
| 30 |
-
className,
|
| 31 |
-
variant = "default",
|
| 32 |
-
asChild = false,
|
| 33 |
-
...props
|
| 34 |
-
}: React.ComponentProps<"span"> &
|
| 35 |
-
VariantProps<typeof badgeVariants> & { asChild?: boolean }) {
|
| 36 |
-
const Comp = asChild ? Slot.Root : "span"
|
| 37 |
-
|
| 38 |
-
return (
|
| 39 |
-
<Comp
|
| 40 |
-
data-slot="badge"
|
| 41 |
-
data-variant={variant}
|
| 42 |
-
className={cn(badgeVariants({ variant }), className)}
|
| 43 |
-
{...props}
|
| 44 |
-
/>
|
| 45 |
-
)
|
| 46 |
-
}
|
| 47 |
-
|
| 48 |
-
export { Badge, badgeVariants }
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:46a0de5224f6a5d5d63d45246534288518dce888f031064bff925bbc7fe6ad97
|
| 3 |
+
size 1776
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6cedb837778da5a63a6f17085213d01a4ae1d542b2cb626fb50010e68c7b2e71
CHANGED
|
@@ -1 +1,3 @@
|
|
| 1 |
-
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6934631c713f4eb9ef4daff052a2a828c983d5a0f3f0510129b797247e2aa2c4
|
| 3 |
+
size 600
|
b/6cf9ca1766dcf3ec9daaae61492de75ed629c4d084fe8d8cefc5e67f2596024e
CHANGED
|
@@ -1,20 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
"tier": "example",
|
| 5 |
-
"library": "shadcn",
|
| 6 |
-
"category": "Examples",
|
| 7 |
-
"upstream": "https://ui.shadcn.com/r/styles/new-york-v4/dropdown-menu-demo.json",
|
| 8 |
-
"did": "did:holo:sha256:246125468036387ef225fb68bc3976e4a28126a5e1e68af7dd97ba08fb5568ca",
|
| 9 |
-
"import": "holo://sha256:ff3078b49366e750c74b014e12fb50b65a36ddfb50223227d1b6c03dc5f11100",
|
| 10 |
-
"integrity": "sha256-/zB4tJNm51DHSwFOEvtQtlo23ftQIjIn0bbAPcXxEQA=",
|
| 11 |
-
"kappa": "sha256:246125468036387ef225fb68bc3976e4a28126a5e1e68af7dd97ba08fb5568ca",
|
| 12 |
-
"moduleKappa": "sha256:ff3078b49366e750c74b014e12fb50b65a36ddfb50223227d1b6c03dc5f11100",
|
| 13 |
-
"renderExport": "default",
|
| 14 |
-
"source": "registry/new-york-v4/examples/dropdown-menu-demo.tsx",
|
| 15 |
-
"module": "vendor/components/dropdown-menu-demo.js",
|
| 16 |
-
"exports": [
|
| 17 |
-
"default"
|
| 18 |
-
],
|
| 19 |
-
"license": "MIT"
|
| 20 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e3c7fe1d966d994c06a8353b69ef4211851091872914b45acc137e097728d1a0
|
| 3 |
+
size 884
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6d021c294e26f2b10011242e720ab2110c608db7b39075d746f2652fb5daccdd
CHANGED
|
@@ -1,20 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
"tier": "example",
|
| 5 |
-
"library": "shadcn",
|
| 6 |
-
"category": "Examples",
|
| 7 |
-
"upstream": "https://ui.shadcn.com/r/styles/new-york-v4/button-group-dropdown.json",
|
| 8 |
-
"did": "did:holo:sha256:64841628640ad3d36686159392431f8155760fe4f5b923810c6301c1c7c2a84f",
|
| 9 |
-
"import": "holo://sha256:79103fb47438be6a21dbc2ef756ab48da94ad5248936eec140371de560cf91dd",
|
| 10 |
-
"integrity": "sha256-eRA/tHQ4vmoh28LvdWq0jalK1SSJNu7BQDcd5WDPkd0=",
|
| 11 |
-
"kappa": "sha256:64841628640ad3d36686159392431f8155760fe4f5b923810c6301c1c7c2a84f",
|
| 12 |
-
"moduleKappa": "sha256:79103fb47438be6a21dbc2ef756ab48da94ad5248936eec140371de560cf91dd",
|
| 13 |
-
"renderExport": "default",
|
| 14 |
-
"source": "registry/new-york-v4/examples/button-group-dropdown.tsx",
|
| 15 |
-
"module": "vendor/components/button-group-dropdown.js",
|
| 16 |
-
"exports": [
|
| 17 |
-
"default"
|
| 18 |
-
],
|
| 19 |
-
"license": "MIT"
|
| 20 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:428e8d764076d128c5493fc6d2d091cc378c865169a9c649143cd2a23eb91c90
|
| 3 |
+
size 899
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6d460764cf0fcdd86f936a414040f1198cf342d2688b9e54baf2e8715a1b5bc0
CHANGED
|
@@ -1,54 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
ItemActions,
|
| 5 |
-
ItemContent,
|
| 6 |
-
ItemDescription,
|
| 7 |
-
ItemTitle,
|
| 8 |
-
} from "@/registry/new-york-v4/ui/item"
|
| 9 |
-
|
| 10 |
-
export default function ItemVariant() {
|
| 11 |
-
return (
|
| 12 |
-
<div className="flex flex-col gap-6">
|
| 13 |
-
<Item>
|
| 14 |
-
<ItemContent>
|
| 15 |
-
<ItemTitle>Default Variant</ItemTitle>
|
| 16 |
-
<ItemDescription>
|
| 17 |
-
Standard styling with subtle background and borders.
|
| 18 |
-
</ItemDescription>
|
| 19 |
-
</ItemContent>
|
| 20 |
-
<ItemActions>
|
| 21 |
-
<Button variant="outline" size="sm">
|
| 22 |
-
Open
|
| 23 |
-
</Button>
|
| 24 |
-
</ItemActions>
|
| 25 |
-
</Item>
|
| 26 |
-
<Item variant="outline">
|
| 27 |
-
<ItemContent>
|
| 28 |
-
<ItemTitle>Outline Variant</ItemTitle>
|
| 29 |
-
<ItemDescription>
|
| 30 |
-
Outlined style with clear borders and transparent background.
|
| 31 |
-
</ItemDescription>
|
| 32 |
-
</ItemContent>
|
| 33 |
-
<ItemActions>
|
| 34 |
-
<Button variant="outline" size="sm">
|
| 35 |
-
Open
|
| 36 |
-
</Button>
|
| 37 |
-
</ItemActions>
|
| 38 |
-
</Item>
|
| 39 |
-
<Item variant="muted">
|
| 40 |
-
<ItemContent>
|
| 41 |
-
<ItemTitle>Muted Variant</ItemTitle>
|
| 42 |
-
<ItemDescription>
|
| 43 |
-
Subdued appearance with muted colors for secondary content.
|
| 44 |
-
</ItemDescription>
|
| 45 |
-
</ItemContent>
|
| 46 |
-
<ItemActions>
|
| 47 |
-
<Button variant="outline" size="sm">
|
| 48 |
-
Open
|
| 49 |
-
</Button>
|
| 50 |
-
</ItemActions>
|
| 51 |
-
</Item>
|
| 52 |
-
</div>
|
| 53 |
-
)
|
| 54 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:cf403f816dffced13453654d2e8cc1c7a264560d1c3528da4e5aee292581f189
|
| 3 |
+
size 1452
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6da178e05f63a53e42f2e7a397f5f7e385162b9a12717584a46f99e5568236cc
CHANGED
|
@@ -1 +1,3 @@
|
|
| 1 |
-
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0cbb6447bad3fcf034c683b4b7a3c4f9a599ded2574184aec6419d77fd9c8aee
|
| 3 |
+
size 1469
|
b/6df0048156f14cf95874a6e17d9d26b2a505cb1427667f158009e0d1a66096eb
CHANGED
|
@@ -1,20 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
"tier": "example",
|
| 5 |
-
"library": "shadcn",
|
| 6 |
-
"category": "Examples",
|
| 7 |
-
"upstream": "https://ui.shadcn.com/r/styles/new-york-v4/field-switch.json",
|
| 8 |
-
"did": "did:holo:sha256:a7fb7504a36bf8da09564527fa9ed4537f38a6a2ed9e5d5d4ede93ed56126619",
|
| 9 |
-
"import": "holo://sha256:270808d209b2990ad4e617407761f90c19496a6fb22296f1e2584e0b5aa60dc0",
|
| 10 |
-
"integrity": "sha256-JwgI0gmymQrU5hdAd2H5DBlJam+yIpbx4lhOC1qmDcA=",
|
| 11 |
-
"kappa": "sha256:a7fb7504a36bf8da09564527fa9ed4537f38a6a2ed9e5d5d4ede93ed56126619",
|
| 12 |
-
"moduleKappa": "sha256:270808d209b2990ad4e617407761f90c19496a6fb22296f1e2584e0b5aa60dc0",
|
| 13 |
-
"renderExport": "default",
|
| 14 |
-
"source": "registry/new-york-v4/examples/field-switch.tsx",
|
| 15 |
-
"module": "vendor/components/field-switch.js",
|
| 16 |
-
"exports": [
|
| 17 |
-
"default"
|
| 18 |
-
],
|
| 19 |
-
"license": "MIT"
|
| 20 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1e65f22807886c5b3f4730aa66253e30de9218d4cda6aab14c2c612088f9cc1d
|
| 3 |
+
size 854
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6e0e48b6e6251e64cd5db55beb1f1a925ddf60d7134ddc5edf2ebb46dc4dd202
CHANGED
|
@@ -1,61 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
"ids": [
|
| 5 |
-
407,
|
| 6 |
-
286,
|
| 7 |
-
445,
|
| 8 |
-
3031,
|
| 9 |
-
24875,
|
| 10 |
-
71,
|
| 11 |
-
11630,
|
| 12 |
-
293,
|
| 13 |
-
286,
|
| 14 |
-
478,
|
| 15 |
-
17839,
|
| 16 |
-
11679,
|
| 17 |
-
13,
|
| 18 |
-
467,
|
| 19 |
-
311,
|
| 20 |
-
1687,
|
| 21 |
-
21826,
|
| 22 |
-
11,
|
| 23 |
-
309,
|
| 24 |
-
3263,
|
| 25 |
-
2541,
|
| 26 |
-
11,
|
| 27 |
-
9346,
|
| 28 |
-
3177,
|
| 29 |
-
596,
|
| 30 |
-
16638,
|
| 31 |
-
11,
|
| 32 |
-
293,
|
| 33 |
-
264,
|
| 34 |
-
9461,
|
| 35 |
-
4111,
|
| 36 |
-
307,
|
| 37 |
-
1019,
|
| 38 |
-
281,
|
| 39 |
-
862,
|
| 40 |
-
365,
|
| 41 |
-
886,
|
| 42 |
-
13,
|
| 43 |
-
5229,
|
| 44 |
-
356,
|
| 45 |
-
2748,
|
| 46 |
-
337,
|
| 47 |
-
7367,
|
| 48 |
-
7315,
|
| 49 |
-
420,
|
| 50 |
-
754,
|
| 51 |
-
445,
|
| 52 |
-
23258,
|
| 53 |
-
926,
|
| 54 |
-
365,
|
| 55 |
-
3177,
|
| 56 |
-
25348,
|
| 57 |
-
13
|
| 58 |
-
],
|
| 59 |
-
"text": " So I just tried Nephonic and I'm genuinely impressed. It's super responsive, it sounds clean, supports voice cloning, and the agent feature is fun to play with too. Highly recommend for podcast conversations or even just messing around with voiceovers.",
|
| 60 |
-
"cpuMs": 58634
|
| 61 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:27d7fb9e4a297c1178b97515bfd3d4967dfae5db58391b49a73507183fefe71d
|
| 3 |
+
size 739
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6e496f3f2578b826928fbf5d5158a07aca603da129c76e4d7e8687661dd5a56a
CHANGED
|
@@ -1,20 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
"tier": "component",
|
| 5 |
-
"library": "magicui",
|
| 6 |
-
"category": "Components",
|
| 7 |
-
"upstream": "https://magicui.design/r/icon-cloud.json",
|
| 8 |
-
"did": "did:holo:sha256:a2a7dc163d6b2ec62a391583fb823f91c2033fa2567d6d580da37b9dc78eaa05",
|
| 9 |
-
"import": "holo://sha256:fe361c405aa470df95f2b7a5036e9b5304ad09b5461320504a21e649d8e5300b",
|
| 10 |
-
"integrity": "sha256-/jYcQFqkcN+V8relA26bUwStCbVGEyBQSiHmSdjlMAs=",
|
| 11 |
-
"kappa": "sha256:a2a7dc163d6b2ec62a391583fb823f91c2033fa2567d6d580da37b9dc78eaa05",
|
| 12 |
-
"moduleKappa": "sha256:fe361c405aa470df95f2b7a5036e9b5304ad09b5461320504a21e649d8e5300b",
|
| 13 |
-
"renderExport": "IconCloud",
|
| 14 |
-
"source": "components/ui/icon-cloud.tsx",
|
| 15 |
-
"module": "vendor/components/icon-cloud.js",
|
| 16 |
-
"exports": [
|
| 17 |
-
"IconCloud"
|
| 18 |
-
],
|
| 19 |
-
"license": "MIT"
|
| 20 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c4eb2f4f98c93a235c832ca5b0cfbd12dc6fd813106af80b55e02169a79a3070
|
| 3 |
+
size 811
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6e72215775e48367032c89a774c0cb84dd5f2165c3271c414300dc57b2dfd8db
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
b/6e90e9a20ebd7b0f9783bcdbacc86187527d8e52d37a4db5b8915e49a4a9f74b
CHANGED
|
@@ -1,20 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
"tier": "example",
|
| 5 |
-
"library": "shadcn",
|
| 6 |
-
"category": "Examples",
|
| 7 |
-
"upstream": "https://ui.shadcn.com/r/styles/new-york-v4/input-group-spinner.json",
|
| 8 |
-
"did": "did:holo:sha256:1240babb7fe55629b1f7e9acad24afa269ef4bbbea4fb5a1365a17398f6be0c5",
|
| 9 |
-
"import": "holo://sha256:d7528cc13b78df09a8851021b5489fad0eb3c0c0ebd07cbc022d03ab8ea98b1d",
|
| 10 |
-
"integrity": "sha256-11KMwTt43wmohRAhtUifrQ6zwMDr0Hy8Ai0Dq46pix0=",
|
| 11 |
-
"kappa": "sha256:1240babb7fe55629b1f7e9acad24afa269ef4bbbea4fb5a1365a17398f6be0c5",
|
| 12 |
-
"moduleKappa": "sha256:d7528cc13b78df09a8851021b5489fad0eb3c0c0ebd07cbc022d03ab8ea98b1d",
|
| 13 |
-
"renderExport": "default",
|
| 14 |
-
"source": "registry/new-york-v4/examples/input-group-spinner.tsx",
|
| 15 |
-
"module": "vendor/components/input-group-spinner.js",
|
| 16 |
-
"exports": [
|
| 17 |
-
"default"
|
| 18 |
-
],
|
| 19 |
-
"license": "MIT"
|
| 20 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:35349a680f843792d76e317579d5a873f01fe522ae183ad37b290f5c5c9bada4
|
| 3 |
+
size 889
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6eb4487e1ed7f19ef123aea1f9085355dfb00d525ef77ebd1a202b401d681319
CHANGED
|
@@ -1,83 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
<style>
|
| 5 |
-
:root { color-scheme: dark; }
|
| 6 |
-
body { margin: 0; background: #0a0b0d; color: #e6e8ea; font: 13px/1.6 ui-monospace, Menlo, monospace; padding: 24px 28px; }
|
| 7 |
-
h1 { font-size: 15px; margin: 0 0 12px; }
|
| 8 |
-
#v { border: 1px solid #1c2128; border-radius: 10px; padding: 14px 16px; background: #101318; white-space: pre-wrap; }
|
| 9 |
-
#v.ok { border-color: #1f6f43; background: #0d1712; } #v.bad { border-color: #6f2f2f; background: #170d0d; }
|
| 10 |
-
.big { font-size: 18px; font-weight: 700; }
|
| 11 |
-
</style>
|
| 12 |
-
<h1>Real DeepSeek-V2-Lite layer 1 on WebGPU — real Q4_K/Q8_0 weights, kernels vs CPU Tier-A oracle</h1>
|
| 13 |
-
<div id="v">running…</div>
|
| 14 |
-
<script type="module">
|
| 15 |
-
import { createGpuRuntime } from "./holo-gguf-gpu.mjs";
|
| 16 |
-
const $v = document.getElementById("v");
|
| 17 |
-
const cos = (a, b) => { let d = 0, na = 0, nb = 0; for (let i = 0; i < a.length; i++) { d += a[i] * b[i]; na += a[i] * a[i]; nb += b[i] * b[i]; } return d / (Math.sqrt(na) * Math.sqrt(nb) || 1); };
|
| 18 |
-
const relMax = (a, b) => { let m = 0, s = 0; for (let i = 0; i < b.length; i++) s = Math.max(s, Math.abs(b[i])); for (let i = 0; i < a.length; i++) m = Math.max(m, Math.abs(a[i] - b[i])); return m / (s || 1); };
|
| 19 |
-
|
| 20 |
-
async function run() {
|
| 21 |
-
if (!navigator.gpu) throw new Error("no WebGPU");
|
| 22 |
-
const dev = await (await navigator.gpu.requestAdapter()).requestDevice();
|
| 23 |
-
const { P, disp, u4, sbuf, wF, rawU32, resetUniforms } = createGpuRuntime(dev);
|
| 24 |
-
const data = await (await fetch("./_qtest/real-layer.json?cb=" + Date.now())).json();
|
| 25 |
-
const bin = new Uint8Array(await (await fetch("./_qtest/real-layer.bin?cb=" + Date.now())).arrayBuffer());
|
| 26 |
-
const man = data.manifest;
|
| 27 |
-
const G = (n) => Math.ceil(n / 64);
|
| 28 |
-
const RAW = { 12: P.q4kraw, 13: P.q5kraw, 14: P.q6kraw, 8: P.q8raw, 6: P.q5raw };
|
| 29 |
-
const sliceBin = (name) => bin.subarray(man[name].off, man[name].off + man[name].len);
|
| 30 |
-
|
| 31 |
-
const readback = async (buf, n) => {
|
| 32 |
-
const stg = dev.createBuffer({ size: n * 4, usage: GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST });
|
| 33 |
-
const enc = dev.createCommandEncoder(); enc.copyBufferToBuffer(buf, 0, stg, 0, n * 4); dev.queue.submit([enc.finish()]);
|
| 34 |
-
await stg.mapAsync(GPUMapMode.READ); const out = Float32Array.from(new Float32Array(stg.getMappedRange().slice(0))); stg.unmap(); stg.destroy(); return out;
|
| 35 |
-
};
|
| 36 |
-
// raw K-quant matvec: weight bytes (bin slice) by ggmlType, over f32 activation buffer → readback
|
| 37 |
-
const mvRaw = async (name, type, N, K, xb) => {
|
| 38 |
-
const pipe = RAW[type]; if (!pipe) throw new Error("no GPU kernel for ggmlType " + type + " (" + name + ")");
|
| 39 |
-
resetUniforms(); const rb = rawU32(sliceBin(name)), yb = sbuf(N);
|
| 40 |
-
const enc = dev.createCommandEncoder(); disp(enc, pipe, [rb, xb, yb, u4([N, K, 0, 0])], G(N)); dev.queue.submit([enc.finish()]);
|
| 41 |
-
return readback(yb, N);
|
| 42 |
-
};
|
| 43 |
-
const swigluGpu = async (g, u, n) => { resetUniforms(); const gb = wF(g), ub = wF(u), yb = sbuf(n); const enc = dev.createCommandEncoder(); disp(enc, P.swiglu, [gb, ub, yb, u4([n, 0, 0, 0])], G(n)); dev.queue.submit([enc.finish()]); return readback(yb, n); };
|
| 44 |
-
|
| 45 |
-
const results = [];
|
| 46 |
-
|
| 47 |
-
// ── 1) real Q4_K MLA matvec (attn_q, 2048→3072) ──
|
| 48 |
-
// The GPU raw kernels do FLOAT dequant-dot → compare to the float-dequant oracle (kernel correctness).
|
| 49 |
-
// `intMax` = how far the integer-dot path (CPU forward / llama.cpp) sits — the known fast-vs-hifi seam.
|
| 50 |
-
const aq = data.attnQ;
|
| 51 |
-
const qGpu = await mvRaw("attn_q", aq.type, aq.N, aq.K, wF(Float32Array.from(aq.x)));
|
| 52 |
-
results.push({ name: `MLA attn_q (Q4_K [N=${aq.N} K=${aq.K}])`, cos: cos(qGpu, aq.expectedFloat), relMax: relMax(qGpu, aq.expectedFloat), intMax: relMax(aq.expectedFloat, aq.expected) });
|
| 53 |
-
|
| 54 |
-
// ── 2) real MoE layer: 6/64 routed experts (Q4_K gate/up, Q8_0 down) + 2×shared, ungated ──
|
| 55 |
-
const m = data.moe, D = data.cfg.D, xb = wF(Float32Array.from(m.x));
|
| 56 |
-
const out = new Float32Array(D);
|
| 57 |
-
for (let i = 0; i < m.selected.length; i++) {
|
| 58 |
-
const g = await mvRaw(`gate_${i}`, m.gateType, m.gateN, m.gateK, xb);
|
| 59 |
-
const u = await mvRaw(`up_${i}`, m.upType, m.gateN, m.gateK, xb);
|
| 60 |
-
const act = await swigluGpu(g, u, m.gateN);
|
| 61 |
-
const dn = await mvRaw(`down_${i}`, m.downType, m.downN, m.downK, wF(act));
|
| 62 |
-
for (let j = 0; j < D; j++) out[j] += m.weights[i] * dn[j];
|
| 63 |
-
}
|
| 64 |
-
const sg = await mvRaw("sgate", m.sgateType, m.sgateN, m.sgateK, xb);
|
| 65 |
-
const su = await mvRaw("sup", m.supType, m.sgateN, m.sgateK, xb);
|
| 66 |
-
const sact = await swigluGpu(sg, su, m.sgateN);
|
| 67 |
-
const sh = await mvRaw("sdown", m.sdownType, m.sdownN, m.sdownK, wF(sact));
|
| 68 |
-
for (let j = 0; j < D; j++) out[j] += sh[j];
|
| 69 |
-
results.push({ name: `MoE layer (${m.selected.length}/${data.cfg.E} experts, Q4_K gate/up + Q8_0 down + Q6_K 2×shared)`, cos: cos(out, m.expectedFloat), relMax: relMax(out, m.expectedFloat), intMax: relMax(m.expectedFloat, m.expected) });
|
| 70 |
-
|
| 71 |
-
const ok = results.every((r) => r.cos > 0.99999 && r.relMax < 1e-4);
|
| 72 |
-
window.__real = { ok, results, argmax: data.argmax, selected: m.selected };
|
| 73 |
-
$v.className = ok ? "ok" : "bad";
|
| 74 |
-
$v.innerHTML = `<span class="big">${ok ? "Real DeepSeek-V2-Lite kernels MATCH the float-dequant oracle on real K-quant weights ✓" : "MISMATCH ✗"}</span>\n\n` +
|
| 75 |
-
`model ${data.model} · layer ${data.layer} · CPU forward decoded "${data.argmax === 18828 ? " Berlin" : "id " + data.argmax}" · routed experts [${m.selected}]\n\n` +
|
| 76 |
-
results.map((r) => `${r.name}\n vs float-dequant oracle: cosine ${r.cos.toFixed(8)} · relMax ${r.relMax.toExponential(2)} (integer-dot/hifi seam: ${r.intMax.toExponential(2)})`).join("\n") +
|
| 77 |
-
`\n\nReal quantized weights (Q4_K attn+experts, Q8_0 down, Q6_K shared-down) from the forged 10 GB model, matvec'd
|
| 78 |
-
in-shader. GPU raw kernels = FLOAT dequant-dot (Tier-B fast path) → match the float oracle to the f32 floor. The
|
| 79 |
-
integer-dot column is the fast-vs-hifi gap (llama.cpp uses integer dot; Q6_K integer kernel exists, Q4_K/Q5_K
|
| 80 |
-
integer-dot kernels are the remaining lever for exact near-tie parity). Correctness on real GLM-class weights: proven.`;
|
| 81 |
-
}
|
| 82 |
-
run().catch((e) => { $v.className = "bad"; $v.textContent = "ERROR: " + (e.stack || e.message); window.__real = { ok: false, err: String(e.message) }; });
|
| 83 |
-
</script>
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:120943bc5acc09acc4da829f5ad0c6712691f70b0c183980e432d1f9e6e345dd
|
| 3 |
+
size 6295
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6f1190f6fec8915d08f5d2a5d226e8ce204d7ee7e498cfdfb2621e3d7a51d65e
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
b/6f14fcff247694eaf421522f67e74a57f604e23d089b1ca377bf402d880f5854
CHANGED
|
@@ -1,52 +1,3 @@
|
|
| 1 |
-
//
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
// base or frame is REFUSED (an incompatible delta never binds — dims wouldn't align); (4) a sealed adapter .holo
|
| 5 |
-
// round-trips, and a single tampered byte is L5-REFUSED on open (fail-closed). Pure Node, no GPU.
|
| 6 |
-
|
| 7 |
-
import { resolveAdapter } from "../../../../../holo-os/system/os/usr/lib/holo/q/holo-q-adapters.mjs";
|
| 8 |
-
import { genTestAdapter, sealAdapterHolo, openAdapterHolo, adapterKappa } from "../gpu/holo-lora.mjs";
|
| 9 |
-
import { sha256hex } from "../../../../../holo-os/system/os/usr/lib/holo/holo-uor.mjs";
|
| 10 |
-
|
| 11 |
-
let pass = 0, fail = 0;
|
| 12 |
-
const ok = (c, m) => { console.log((c ? " ok " : " XX ") + m); c ? pass++ : fail++; };
|
| 13 |
-
|
| 14 |
-
const BASE = "qwen2.5-0.5b", FRAME = "qwen25-05b-f1";
|
| 15 |
-
|
| 16 |
-
// ── (1) empty catalog → null ⇒ base-only (the safe default; the zoo never makes Q worse than no zoo) ──
|
| 17 |
-
{
|
| 18 |
-
const empty = {};
|
| 19 |
-
ok(resolveAdapter("respond", { baseModel: BASE, baseFrame: FRAME }, empty) === null, "empty catalog → null (base-only, never blank)");
|
| 20 |
-
}
|
| 21 |
-
|
| 22 |
-
// ── (2) DROP-IN: add one entry to the catalog object → it resolves with no other change ──
|
| 23 |
-
const catalog = {};
|
| 24 |
-
{
|
| 25 |
-
ok(resolveAdapter("code", { baseModel: BASE }, catalog) === null, "before drop-in: skill 'code' → null");
|
| 26 |
-
// a deployer drops the specialist's κ into the catalog (this is the whole "add a specialist" gesture):
|
| 27 |
-
catalog["code"] = { adapter: "did:holo:sha256:" + "c0de".padEnd(64, "0"), base: BASE, frame: FRAME, target: "attn_q" };
|
| 28 |
-
ok(resolveAdapter("code", { baseModel: BASE, baseFrame: FRAME }, catalog) === catalog["code"].adapter, "after drop-in: skill 'code' → its adapter κ (picked up, no code change)");
|
| 29 |
-
}
|
| 30 |
-
|
| 31 |
-
// ── (3) FRAME/BASE GATING: an incompatible adapter is REFUSED (returns null), never bound ──
|
| 32 |
-
{
|
| 33 |
-
ok(resolveAdapter("code", { baseModel: "other-model", baseFrame: FRAME }, catalog) === null, "wrong base model → null (REFUSED)");
|
| 34 |
-
ok(resolveAdapter("code", { baseModel: BASE, baseFrame: "different-frame" }, catalog) === null, "wrong frame fingerprint → null (REFUSED — dims wouldn't align)");
|
| 35 |
-
ok(resolveAdapter("nope", { baseModel: BASE, baseFrame: FRAME }, catalog) === null, "unknown skill → null (base-only)");
|
| 36 |
-
}
|
| 37 |
-
|
| 38 |
-
// ── (4) a sealed adapter .holo round-trips; a tampered byte is L5-REFUSED on open ──
|
| 39 |
-
{
|
| 40 |
-
const ad = genTestAdapter({ seed: 3, inn: 896, out: 896, r: 8, nLayer: 24, scale: 1.0, amp: 0.02 });
|
| 41 |
-
const s = sealAdapterHolo(ad, sha256hex);
|
| 42 |
-
const opened = openAdapterHolo(s.holo);
|
| 43 |
-
ok(opened.target === "attn_q" && opened.r === 8 && opened.nLayer === 24, "sealed adapter .holo opens with intact frame");
|
| 44 |
-
const k = await adapterKappa(ad, sha256hex);
|
| 45 |
-
ok(/^sha256:/.test(k), `adapter content-κ derives (${k.slice(0, 22)}…)`);
|
| 46 |
-
const bad = s.holo.slice(); bad[Math.floor(bad.length / 2)] ^= 0xff; // flip one body byte
|
| 47 |
-
let refused = false; try { openAdapterHolo(bad); } catch (e) { refused = /tamper|REFUSE|mismatch/i.test(String(e)); }
|
| 48 |
-
ok(refused, "tampered adapter .holo is L5-REFUSED on open (fail-closed)");
|
| 49 |
-
}
|
| 50 |
-
|
| 51 |
-
console.log(`\n${pass}/${pass + fail}${fail ? " FAIL" : " — WITNESSED: the zoo catalog routes a skill to its adapter κ, picks up a dropped-in specialist with no code change, REFUSES an incompatible base/frame, and a tampered adapter never opens — safe by construction."}`);
|
| 52 |
-
process.exit(fail ? 1 : 0);
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:853e455dbc133d74a208c0224979ed823ae3313b674823eb59958308d9c3f050
|
| 3 |
+
size 3634
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6f1a160e16459fe8bf7f1030a64439fb3e29407999a1c9a76c7ec35ba02c4c77
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
b/6f321c1a7e7dc3629a8e0470e33cc8d69a9ea72ab1a9ec43cd99ab3116585b3c
CHANGED
|
@@ -1,58 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
interface RippleProps extends ComponentPropsWithoutRef<"div"> {
|
| 6 |
-
mainCircleSize?: number
|
| 7 |
-
mainCircleOpacity?: number
|
| 8 |
-
numCircles?: number
|
| 9 |
-
}
|
| 10 |
-
|
| 11 |
-
export const Ripple = React.memo(function Ripple({
|
| 12 |
-
mainCircleSize = 210,
|
| 13 |
-
mainCircleOpacity = 0.24,
|
| 14 |
-
numCircles = 8,
|
| 15 |
-
className,
|
| 16 |
-
...props
|
| 17 |
-
}: RippleProps) {
|
| 18 |
-
return (
|
| 19 |
-
<div
|
| 20 |
-
className={cn(
|
| 21 |
-
"pointer-events-none absolute inset-0 mask-[linear-gradient(to_bottom,white,transparent)] select-none",
|
| 22 |
-
className
|
| 23 |
-
)}
|
| 24 |
-
{...props}
|
| 25 |
-
>
|
| 26 |
-
{Array.from({ length: numCircles }, (_, i) => {
|
| 27 |
-
const size = mainCircleSize + i * 70
|
| 28 |
-
const opacity = mainCircleOpacity - i * 0.03
|
| 29 |
-
const animationDelay = `${i * 0.06}s`
|
| 30 |
-
const borderStyle = "solid"
|
| 31 |
-
|
| 32 |
-
return (
|
| 33 |
-
<div
|
| 34 |
-
key={i}
|
| 35 |
-
className={`animate-ripple bg-foreground/25 absolute rounded-full border shadow-xl`}
|
| 36 |
-
style={
|
| 37 |
-
{
|
| 38 |
-
"--i": i,
|
| 39 |
-
width: `${size}px`,
|
| 40 |
-
height: `${size}px`,
|
| 41 |
-
opacity,
|
| 42 |
-
animationDelay,
|
| 43 |
-
borderStyle,
|
| 44 |
-
borderWidth: "1px",
|
| 45 |
-
borderColor: `var(--foreground)`,
|
| 46 |
-
top: "50%",
|
| 47 |
-
left: "50%",
|
| 48 |
-
transform: "translate(-50%, -50%) scale(1)",
|
| 49 |
-
} as CSSProperties
|
| 50 |
-
}
|
| 51 |
-
/>
|
| 52 |
-
)
|
| 53 |
-
})}
|
| 54 |
-
</div>
|
| 55 |
-
)
|
| 56 |
-
})
|
| 57 |
-
|
| 58 |
-
Ripple.displayName = "Ripple"
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1ac207017c0f4e993f83a1ead8b8a1b4a92286ef1595a297aba79782b2616eaf
|
| 3 |
+
size 1564
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6f3f57a6f962a7bdc0eed0366fdf9534c8e3f92f894d0ccda63cfef8446c363a
CHANGED
|
@@ -1,26 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
ResizablePanelGroup,
|
| 5 |
-
} from "@/registry/new-york-v4/ui/resizable"
|
| 6 |
-
|
| 7 |
-
export default function ResizableHandleDemo() {
|
| 8 |
-
return (
|
| 9 |
-
<ResizablePanelGroup
|
| 10 |
-
orientation="horizontal"
|
| 11 |
-
className="min-h-[200px] max-w-md rounded-lg border md:min-w-[450px]"
|
| 12 |
-
>
|
| 13 |
-
<ResizablePanel defaultSize="25%">
|
| 14 |
-
<div className="flex h-full items-center justify-center p-6">
|
| 15 |
-
<span className="font-semibold">Sidebar</span>
|
| 16 |
-
</div>
|
| 17 |
-
</ResizablePanel>
|
| 18 |
-
<ResizableHandle withHandle />
|
| 19 |
-
<ResizablePanel defaultSize="75%">
|
| 20 |
-
<div className="flex h-full items-center justify-center p-6">
|
| 21 |
-
<span className="font-semibold">Content</span>
|
| 22 |
-
</div>
|
| 23 |
-
</ResizablePanel>
|
| 24 |
-
</ResizablePanelGroup>
|
| 25 |
-
)
|
| 26 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e6e99081ec5793a2af957a79d7037888ad379404d2688ec02584c6108d2e1f36
|
| 3 |
+
size 796
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6f3fc9648576109c5f13c08d5b5737dcd4aca6ffa3221154a5096247b574aa7f
CHANGED
|
@@ -1,257 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react"
|
| 5 |
-
import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui"
|
| 6 |
-
|
| 7 |
-
import { cn } from "@/lib/utils"
|
| 8 |
-
|
| 9 |
-
function DropdownMenu({
|
| 10 |
-
...props
|
| 11 |
-
}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {
|
| 12 |
-
return <DropdownMenuPrimitive.Root data-slot="dropdown-menu" {...props} />
|
| 13 |
-
}
|
| 14 |
-
|
| 15 |
-
function DropdownMenuPortal({
|
| 16 |
-
...props
|
| 17 |
-
}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {
|
| 18 |
-
return (
|
| 19 |
-
<DropdownMenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} />
|
| 20 |
-
)
|
| 21 |
-
}
|
| 22 |
-
|
| 23 |
-
function DropdownMenuTrigger({
|
| 24 |
-
...props
|
| 25 |
-
}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {
|
| 26 |
-
return (
|
| 27 |
-
<DropdownMenuPrimitive.Trigger
|
| 28 |
-
data-slot="dropdown-menu-trigger"
|
| 29 |
-
{...props}
|
| 30 |
-
/>
|
| 31 |
-
)
|
| 32 |
-
}
|
| 33 |
-
|
| 34 |
-
function DropdownMenuContent({
|
| 35 |
-
className,
|
| 36 |
-
sideOffset = 4,
|
| 37 |
-
...props
|
| 38 |
-
}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {
|
| 39 |
-
return (
|
| 40 |
-
<DropdownMenuPrimitive.Portal>
|
| 41 |
-
<DropdownMenuPrimitive.Content
|
| 42 |
-
data-slot="dropdown-menu-content"
|
| 43 |
-
sideOffset={sideOffset}
|
| 44 |
-
className={cn(
|
| 45 |
-
"z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
| 46 |
-
className
|
| 47 |
-
)}
|
| 48 |
-
{...props}
|
| 49 |
-
/>
|
| 50 |
-
</DropdownMenuPrimitive.Portal>
|
| 51 |
-
)
|
| 52 |
-
}
|
| 53 |
-
|
| 54 |
-
function DropdownMenuGroup({
|
| 55 |
-
...props
|
| 56 |
-
}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {
|
| 57 |
-
return (
|
| 58 |
-
<DropdownMenuPrimitive.Group data-slot="dropdown-menu-group" {...props} />
|
| 59 |
-
)
|
| 60 |
-
}
|
| 61 |
-
|
| 62 |
-
function DropdownMenuItem({
|
| 63 |
-
className,
|
| 64 |
-
inset,
|
| 65 |
-
variant = "default",
|
| 66 |
-
...props
|
| 67 |
-
}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {
|
| 68 |
-
inset?: boolean
|
| 69 |
-
variant?: "default" | "destructive"
|
| 70 |
-
}) {
|
| 71 |
-
return (
|
| 72 |
-
<DropdownMenuPrimitive.Item
|
| 73 |
-
data-slot="dropdown-menu-item"
|
| 74 |
-
data-inset={inset}
|
| 75 |
-
data-variant={variant}
|
| 76 |
-
className={cn(
|
| 77 |
-
"relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",
|
| 78 |
-
className
|
| 79 |
-
)}
|
| 80 |
-
{...props}
|
| 81 |
-
/>
|
| 82 |
-
)
|
| 83 |
-
}
|
| 84 |
-
|
| 85 |
-
function DropdownMenuCheckboxItem({
|
| 86 |
-
className,
|
| 87 |
-
children,
|
| 88 |
-
checked,
|
| 89 |
-
...props
|
| 90 |
-
}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {
|
| 91 |
-
return (
|
| 92 |
-
<DropdownMenuPrimitive.CheckboxItem
|
| 93 |
-
data-slot="dropdown-menu-checkbox-item"
|
| 94 |
-
className={cn(
|
| 95 |
-
"relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
| 96 |
-
className
|
| 97 |
-
)}
|
| 98 |
-
checked={checked}
|
| 99 |
-
{...props}
|
| 100 |
-
>
|
| 101 |
-
<span className="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center">
|
| 102 |
-
<DropdownMenuPrimitive.ItemIndicator>
|
| 103 |
-
<CheckIcon className="size-4" />
|
| 104 |
-
</DropdownMenuPrimitive.ItemIndicator>
|
| 105 |
-
</span>
|
| 106 |
-
{children}
|
| 107 |
-
</DropdownMenuPrimitive.CheckboxItem>
|
| 108 |
-
)
|
| 109 |
-
}
|
| 110 |
-
|
| 111 |
-
function DropdownMenuRadioGroup({
|
| 112 |
-
...props
|
| 113 |
-
}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {
|
| 114 |
-
return (
|
| 115 |
-
<DropdownMenuPrimitive.RadioGroup
|
| 116 |
-
data-slot="dropdown-menu-radio-group"
|
| 117 |
-
{...props}
|
| 118 |
-
/>
|
| 119 |
-
)
|
| 120 |
-
}
|
| 121 |
-
|
| 122 |
-
function DropdownMenuRadioItem({
|
| 123 |
-
className,
|
| 124 |
-
children,
|
| 125 |
-
...props
|
| 126 |
-
}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {
|
| 127 |
-
return (
|
| 128 |
-
<DropdownMenuPrimitive.RadioItem
|
| 129 |
-
data-slot="dropdown-menu-radio-item"
|
| 130 |
-
className={cn(
|
| 131 |
-
"relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
| 132 |
-
className
|
| 133 |
-
)}
|
| 134 |
-
{...props}
|
| 135 |
-
>
|
| 136 |
-
<span className="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center">
|
| 137 |
-
<DropdownMenuPrimitive.ItemIndicator>
|
| 138 |
-
<CircleIcon className="size-2 fill-current" />
|
| 139 |
-
</DropdownMenuPrimitive.ItemIndicator>
|
| 140 |
-
</span>
|
| 141 |
-
{children}
|
| 142 |
-
</DropdownMenuPrimitive.RadioItem>
|
| 143 |
-
)
|
| 144 |
-
}
|
| 145 |
-
|
| 146 |
-
function DropdownMenuLabel({
|
| 147 |
-
className,
|
| 148 |
-
inset,
|
| 149 |
-
...props
|
| 150 |
-
}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {
|
| 151 |
-
inset?: boolean
|
| 152 |
-
}) {
|
| 153 |
-
return (
|
| 154 |
-
<DropdownMenuPrimitive.Label
|
| 155 |
-
data-slot="dropdown-menu-label"
|
| 156 |
-
data-inset={inset}
|
| 157 |
-
className={cn(
|
| 158 |
-
"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
|
| 159 |
-
className
|
| 160 |
-
)}
|
| 161 |
-
{...props}
|
| 162 |
-
/>
|
| 163 |
-
)
|
| 164 |
-
}
|
| 165 |
-
|
| 166 |
-
function DropdownMenuSeparator({
|
| 167 |
-
className,
|
| 168 |
-
...props
|
| 169 |
-
}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {
|
| 170 |
-
return (
|
| 171 |
-
<DropdownMenuPrimitive.Separator
|
| 172 |
-
data-slot="dropdown-menu-separator"
|
| 173 |
-
className={cn("-mx-1 my-1 h-px bg-border", className)}
|
| 174 |
-
{...props}
|
| 175 |
-
/>
|
| 176 |
-
)
|
| 177 |
-
}
|
| 178 |
-
|
| 179 |
-
function DropdownMenuShortcut({
|
| 180 |
-
className,
|
| 181 |
-
...props
|
| 182 |
-
}: React.ComponentProps<"span">) {
|
| 183 |
-
return (
|
| 184 |
-
<span
|
| 185 |
-
data-slot="dropdown-menu-shortcut"
|
| 186 |
-
className={cn(
|
| 187 |
-
"ml-auto text-xs tracking-widest text-muted-foreground",
|
| 188 |
-
className
|
| 189 |
-
)}
|
| 190 |
-
{...props}
|
| 191 |
-
/>
|
| 192 |
-
)
|
| 193 |
-
}
|
| 194 |
-
|
| 195 |
-
function DropdownMenuSub({
|
| 196 |
-
...props
|
| 197 |
-
}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {
|
| 198 |
-
return <DropdownMenuPrimitive.Sub data-slot="dropdown-menu-sub" {...props} />
|
| 199 |
-
}
|
| 200 |
-
|
| 201 |
-
function DropdownMenuSubTrigger({
|
| 202 |
-
className,
|
| 203 |
-
inset,
|
| 204 |
-
children,
|
| 205 |
-
...props
|
| 206 |
-
}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
|
| 207 |
-
inset?: boolean
|
| 208 |
-
}) {
|
| 209 |
-
return (
|
| 210 |
-
<DropdownMenuPrimitive.SubTrigger
|
| 211 |
-
data-slot="dropdown-menu-sub-trigger"
|
| 212 |
-
data-inset={inset}
|
| 213 |
-
className={cn(
|
| 214 |
-
"flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[inset]:pl-8 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
|
| 215 |
-
className
|
| 216 |
-
)}
|
| 217 |
-
{...props}
|
| 218 |
-
>
|
| 219 |
-
{children}
|
| 220 |
-
<ChevronRightIcon className="ml-auto size-4" />
|
| 221 |
-
</DropdownMenuPrimitive.SubTrigger>
|
| 222 |
-
)
|
| 223 |
-
}
|
| 224 |
-
|
| 225 |
-
function DropdownMenuSubContent({
|
| 226 |
-
className,
|
| 227 |
-
...props
|
| 228 |
-
}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {
|
| 229 |
-
return (
|
| 230 |
-
<DropdownMenuPrimitive.SubContent
|
| 231 |
-
data-slot="dropdown-menu-sub-content"
|
| 232 |
-
className={cn(
|
| 233 |
-
"z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
| 234 |
-
className
|
| 235 |
-
)}
|
| 236 |
-
{...props}
|
| 237 |
-
/>
|
| 238 |
-
)
|
| 239 |
-
}
|
| 240 |
-
|
| 241 |
-
export {
|
| 242 |
-
DropdownMenu,
|
| 243 |
-
DropdownMenuPortal,
|
| 244 |
-
DropdownMenuTrigger,
|
| 245 |
-
DropdownMenuContent,
|
| 246 |
-
DropdownMenuGroup,
|
| 247 |
-
DropdownMenuLabel,
|
| 248 |
-
DropdownMenuItem,
|
| 249 |
-
DropdownMenuCheckboxItem,
|
| 250 |
-
DropdownMenuRadioGroup,
|
| 251 |
-
DropdownMenuRadioItem,
|
| 252 |
-
DropdownMenuSeparator,
|
| 253 |
-
DropdownMenuShortcut,
|
| 254 |
-
DropdownMenuSub,
|
| 255 |
-
DropdownMenuSubTrigger,
|
| 256 |
-
DropdownMenuSubContent,
|
| 257 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:98f0dcdae38225b73734aceeb9213dd751fea2c72ea520df31003cd133deac8a
|
| 3 |
+
size 8418
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6f442283ad549ced4db96d2d0d03fadf59abb31fe3ab9a11cc3726efddeb7e18
CHANGED
|
@@ -1,20 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
"tier": "component",
|
| 5 |
-
"library": "magicui",
|
| 6 |
-
"category": "Special Effects",
|
| 7 |
-
"upstream": "https://magicui.design/r/glare-hover.json",
|
| 8 |
-
"did": "did:holo:sha256:db8084ae31fb41978ce5c2fc164e7d2c63cf414e3817fe444dca4ed177c9986f",
|
| 9 |
-
"import": "holo://sha256:bc0198f0ef836ddd5f8d6b19cd13f67672bc40591b1ef5a7f0f4a74c002d5bfe",
|
| 10 |
-
"integrity": "sha256-vAGY8O+Dbd1fjWsZzRP2dnK8QFkbHvWn8PSnTAAtW/4=",
|
| 11 |
-
"kappa": "sha256:db8084ae31fb41978ce5c2fc164e7d2c63cf414e3817fe444dca4ed177c9986f",
|
| 12 |
-
"moduleKappa": "sha256:bc0198f0ef836ddd5f8d6b19cd13f67672bc40591b1ef5a7f0f4a74c002d5bfe",
|
| 13 |
-
"renderExport": "GlareHover",
|
| 14 |
-
"source": "components/ui/glare-hover.tsx",
|
| 15 |
-
"module": "vendor/components/glare-hover.js",
|
| 16 |
-
"exports": [
|
| 17 |
-
"GlareHover"
|
| 18 |
-
],
|
| 19 |
-
"license": "MIT"
|
| 20 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c48c3442fa4edbc395598c0f6650b8f09ee1acb1e7e62da1f171ea7fb0998c5e
|
| 3 |
+
size 823
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6f48d16edc538c5668e979ab4c95f9c220242eda91bafacafd08ca9efa620da6
CHANGED
|
@@ -1,23 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
"tier": "component",
|
| 5 |
-
"library": "shadcn",
|
| 6 |
-
"category": "Buttons & Actions",
|
| 7 |
-
"upstream": "https://ui.shadcn.com/r/styles/new-york-v4/button-group.json",
|
| 8 |
-
"did": "did:holo:sha256:784c89d8ee683e1bc972ae69e6ea8225a7f63abe22aa1b5fc3423ae8a2a399c0",
|
| 9 |
-
"import": "holo://sha256:ff5952938adbcc1e350373c0717b19b1afa1cae9ae3043c71bac62fe60f7d512",
|
| 10 |
-
"integrity": "sha256-/1lSk4rbzB41A3PAcXsZsa+hyumuMEPHG6xi/mD31RI=",
|
| 11 |
-
"kappa": "sha256:784c89d8ee683e1bc972ae69e6ea8225a7f63abe22aa1b5fc3423ae8a2a399c0",
|
| 12 |
-
"moduleKappa": "sha256:ff5952938adbcc1e350373c0717b19b1afa1cae9ae3043c71bac62fe60f7d512",
|
| 13 |
-
"renderExport": "ButtonGroup",
|
| 14 |
-
"source": "components/ui/button-group.tsx",
|
| 15 |
-
"module": "vendor/components/button-group.js",
|
| 16 |
-
"exports": [
|
| 17 |
-
"ButtonGroup",
|
| 18 |
-
"ButtonGroupSeparator",
|
| 19 |
-
"ButtonGroupText",
|
| 20 |
-
"buttonGroupVariants"
|
| 21 |
-
],
|
| 22 |
-
"license": "MIT"
|
| 23 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a68d0f2645778d9bf9c6b0617004d2acaefec7185d7d76cf0f236bc02e6cc82c
|
| 3 |
+
size 927
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6f6265f8e29ccabed2d1b00e46115e46f611bd6fca763961936edf1b2ca24adf
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
b/6f827b986032b404e7ef63e3eb99606f0c1561b86fd5195eab9669976d2e3d99
CHANGED
|
@@ -1,22 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
ToggleGroup,
|
| 5 |
-
ToggleGroupItem,
|
| 6 |
-
} from "@/registry/new-york-v4/ui/toggle-group"
|
| 7 |
-
|
| 8 |
-
export default function ToggleGroupDemo() {
|
| 9 |
-
return (
|
| 10 |
-
<ToggleGroup type="multiple" variant="outline">
|
| 11 |
-
<ToggleGroupItem value="bold" aria-label="Toggle bold">
|
| 12 |
-
<Bold className="h-4 w-4" />
|
| 13 |
-
</ToggleGroupItem>
|
| 14 |
-
<ToggleGroupItem value="italic" aria-label="Toggle italic">
|
| 15 |
-
<Italic className="h-4 w-4" />
|
| 16 |
-
</ToggleGroupItem>
|
| 17 |
-
<ToggleGroupItem value="strikethrough" aria-label="Toggle strikethrough">
|
| 18 |
-
<Underline className="h-4 w-4" />
|
| 19 |
-
</ToggleGroupItem>
|
| 20 |
-
</ToggleGroup>
|
| 21 |
-
)
|
| 22 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ce375cf41a1125f1b6f29eb36eb1a8da6fbfe418e6fd1530dc79e6f22fe4f39d
|
| 3 |
+
size 681
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6f846bec6ed3a23e167be3585a359b5604d5a92f89b3c54b64412057198dc329
CHANGED
|
@@ -1,46 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
// norm + lm_head). Proves the end-to-end WIRING — layer stacking, residual structure, the schedule, MLP, embed,
|
| 5 |
-
// the (1+weight) norms, and lm_head — is correct, and that argmax matches HF's predicted token at every position.
|
| 6 |
-
// Fixture: gguf-forge-qwen35-model-parity.gen.py. Pass: per-token logits cosine > 0.9999, relL2 < 1e-3, argmax ==.
|
| 7 |
-
//
|
| 8 |
-
// Usage: node holo-apps/apps/q/forge/gguf-forge-qwen35-model-parity.test.mjs
|
| 9 |
-
|
| 10 |
-
import { readFileSync, writeFileSync } from "node:fs";
|
| 11 |
-
import { fileURLToPath } from "node:url";
|
| 12 |
-
import { dirname, join } from "node:path";
|
| 13 |
-
import { qwen35Forward, argmax } from "./gguf-forge-qwen35-model.mjs";
|
| 14 |
-
|
| 15 |
-
const here = dirname(fileURLToPath(import.meta.url));
|
| 16 |
-
const ref = JSON.parse(readFileSync(join(here, "gguf-forge-qwen35-model-parity.fixture.json"), "utf8"));
|
| 17 |
-
const F = (a) => Float32Array.from(a);
|
| 18 |
-
const model = {
|
| 19 |
-
D: ref.D,
|
| 20 |
-
token_embd: F(ref.token_embd), output_norm: F(ref.output_norm), lm_head: F(ref.lm_head),
|
| 21 |
-
cos: ref.cos.map(F), sin: ref.sin.map(F),
|
| 22 |
-
layers: ref.layers.map((l) => ({ type: l.type, W: Object.fromEntries(Object.entries(l.W).map(([k, v]) => [k, F(v)])) })),
|
| 23 |
-
};
|
| 24 |
-
const logits = qwen35Forward(model, ref.ids);
|
| 25 |
-
const yRef = ref.logits.map(F);
|
| 26 |
-
|
| 27 |
-
const cos = (a, b) => { let d = 0, na = 0, nb = 0; for (let i = 0; i < a.length; i++) { d += a[i] * b[i]; na += a[i] * a[i]; nb += b[i] * b[i]; } return d / (Math.sqrt(na) * Math.sqrt(nb) + 1e-30); };
|
| 28 |
-
const relL2 = (a, b) => { let e = 0, n = 0; for (let i = 0; i < a.length; i++) { e += (a[i] - b[i]) ** 2; n += b[i] * b[i]; } return Math.sqrt(e / (n + 1e-30)); };
|
| 29 |
-
|
| 30 |
-
let minCos = 1, maxRel = 0, argOk = true; const per = [];
|
| 31 |
-
for (let t = 0; t < yRef.length; t++) {
|
| 32 |
-
const c = cos(logits[t], yRef[t]), e = relL2(logits[t], yRef[t]), am = argmax(logits[t]) === argmax(yRef[t]);
|
| 33 |
-
minCos = Math.min(minCos, c); maxRel = Math.max(maxRel, e); argOk = argOk && am;
|
| 34 |
-
per.push({ t, cos: +c.toFixed(6), relL2: e, tok: argmax(logits[t]), refTok: argmax(yRef[t]) });
|
| 35 |
-
}
|
| 36 |
-
const witnessed = minCos > 0.9999 && maxRel < 1e-3 && argOk;
|
| 37 |
-
writeFileSync(join(here, "gguf-forge-qwen35-model-parity.test.result.json"), JSON.stringify({
|
| 38 |
-
spec: "Whole qwen35 model forward numerically exact vs HF Qwen3NextForCausalLM (tiny 4-layer: 3 gated-DeltaNet linear + 1 gated attention, dense SwiGLU MLP, embed + final RMSNorm + lm_head). Validates end-to-end wiring: per-layer residual structure, the linear/attention schedule, MLP, embedding lookup, (1+weight) norms, lm_head, and that the predicted argmax token matches HF at every position.",
|
| 39 |
-
authority: "HF transformers Qwen3NextForCausalLM (torch reference) · fixture via gguf-forge-qwen35-model-parity.gen.py",
|
| 40 |
-
minCosine: minCos, maxRelL2: maxRel, argmaxMatches: argOk, perToken: per, witnessed,
|
| 41 |
-
}, null, 2) + "\n");
|
| 42 |
-
|
| 43 |
-
for (const p of per) console.log(` t=${p.t} cos=${p.cos.toFixed(6)} relL2=${p.relL2.toExponential(2)} tok=${p.tok}${p.tok === p.refTok ? "==" : "!="}${p.refTok}`);
|
| 44 |
-
console.log(`min cosine=${minCos.toFixed(6)} max relL2=${maxRel.toExponential(2)} argmax all match: ${argOk}`);
|
| 45 |
-
console.log(`VERDICT : ${witnessed ? "WITNESSED ✓ whole qwen35 model is numerically exact to HF + token-for-token" : "NOT WITNESSED"}`);
|
| 46 |
-
process.exit(witnessed ? 0 : 1);
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8f63afe8e7cda723a149e565fd2778604cfe78ede9b6e8fd8c1e6c9b3c058f91
|
| 3 |
+
size 3463
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6fa5ac11952ec411380f9f2b702b327f35d5faf91ba5a56e20a642d7527e5004
CHANGED
|
@@ -1,75 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
|
| 5 |
-
|
| 6 |
-
import {
|
| 7 |
-
Card,
|
| 8 |
-
CardContent,
|
| 9 |
-
CardDescription,
|
| 10 |
-
CardFooter,
|
| 11 |
-
CardHeader,
|
| 12 |
-
CardTitle,
|
| 13 |
-
} from "@/registry/new-york-v4/ui/card"
|
| 14 |
-
import {
|
| 15 |
-
ChartContainer,
|
| 16 |
-
ChartTooltip,
|
| 17 |
-
ChartTooltipContent,
|
| 18 |
-
type ChartConfig,
|
| 19 |
-
} from "@/registry/new-york-v4/ui/chart"
|
| 20 |
-
|
| 21 |
-
export const description = "A radar chart"
|
| 22 |
-
|
| 23 |
-
const chartData = [
|
| 24 |
-
{ month: "January", desktop: 186 },
|
| 25 |
-
{ month: "February", desktop: 305 },
|
| 26 |
-
{ month: "March", desktop: 237 },
|
| 27 |
-
{ month: "April", desktop: 273 },
|
| 28 |
-
{ month: "May", desktop: 209 },
|
| 29 |
-
{ month: "June", desktop: 214 },
|
| 30 |
-
]
|
| 31 |
-
|
| 32 |
-
const chartConfig = {
|
| 33 |
-
desktop: {
|
| 34 |
-
label: "Desktop",
|
| 35 |
-
color: "var(--chart-1)",
|
| 36 |
-
},
|
| 37 |
-
} satisfies ChartConfig
|
| 38 |
-
|
| 39 |
-
export function ChartRadarDefault() {
|
| 40 |
-
return (
|
| 41 |
-
<Card>
|
| 42 |
-
<CardHeader className="items-center pb-4">
|
| 43 |
-
<CardTitle>Radar Chart</CardTitle>
|
| 44 |
-
<CardDescription>
|
| 45 |
-
Showing total visitors for the last 6 months
|
| 46 |
-
</CardDescription>
|
| 47 |
-
</CardHeader>
|
| 48 |
-
<CardContent className="pb-0">
|
| 49 |
-
<ChartContainer
|
| 50 |
-
config={chartConfig}
|
| 51 |
-
className="mx-auto aspect-square max-h-[250px]"
|
| 52 |
-
>
|
| 53 |
-
<RadarChart data={chartData}>
|
| 54 |
-
<ChartTooltip cursor={false} content={<ChartTooltipContent />} />
|
| 55 |
-
<PolarAngleAxis dataKey="month" />
|
| 56 |
-
<PolarGrid />
|
| 57 |
-
<Radar
|
| 58 |
-
dataKey="desktop"
|
| 59 |
-
fill="var(--color-desktop)"
|
| 60 |
-
fillOpacity={0.6}
|
| 61 |
-
/>
|
| 62 |
-
</RadarChart>
|
| 63 |
-
</ChartContainer>
|
| 64 |
-
</CardContent>
|
| 65 |
-
<CardFooter className="flex-col gap-2 text-sm">
|
| 66 |
-
<div className="flex items-center gap-2 leading-none font-medium">
|
| 67 |
-
Trending up by 5.2% this month <TrendingUp className="h-4 w-4" />
|
| 68 |
-
</div>
|
| 69 |
-
<div className="flex items-center gap-2 leading-none text-muted-foreground">
|
| 70 |
-
January - June 2024
|
| 71 |
-
</div>
|
| 72 |
-
</CardFooter>
|
| 73 |
-
</Card>
|
| 74 |
-
)
|
| 75 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e503bd2c88e20d5f37082dcdfd2a95d1e61cfcc0855844d0050e114fa7428394
|
| 3 |
+
size 2020
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6fd871a55c937ca12904f2a1b429327fb4d2668b4f64b63d1e3ee1c54b68ee23
CHANGED
|
@@ -1,58 +1,3 @@
|
|
| 1 |
-
//
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
// which we MEASURED to be both imprecise and slower, s3/parakeet-cacheaware.html). This plugs straight into the
|
| 5 |
-
// I1 runner (voice-stream-runner.mjs) `core` seam, so makeStreamRunner drives it unchanged → { partial }/{ final }.
|
| 6 |
-
//
|
| 7 |
-
// The model is INJECTED so the harness is testable now (mock) and the real cache-aware encoder + κ-native joint
|
| 8 |
-
// drop in when the streaming .holo is forged (see forge-streaming-ear.mjs + the handoff doc):
|
| 9 |
-
// feature(pcmChunk) → feats // log-mel for THIS chunk (nemo128 / model preproc)
|
| 10 |
-
// encodeChunk(feats, caches) → { encoded:Float32Array[Tc*D], Tc, caches } // CACHE-AWARE: feeds caches back
|
| 11 |
-
// makeDecoder() → joint(encFrame, last, predState) → { out, state } // κ-native RNNT/TDT joint
|
| 12 |
-
// detokenize(ids) → string
|
| 13 |
-
// initCaches() → the zero cache tensors for a fresh utterance (model-shaped)
|
| 14 |
-
//
|
| 15 |
-
// RNNT and TDT are both handled: the decode reads durations only if the joint emits them (out.length > vocabSize);
|
| 16 |
-
// a plain RNNT joint (out.length === vocabSize) decodes with dur=0 (advance on blank) — same loop.
|
| 17 |
-
|
| 18 |
-
export function makeStreamingCore({ feature, encodeChunk, makeDecoder, detokenize, initCaches, blankId = 1024, vocabSize = 1025, maxPerFrame = 10, tentativeTail = 3 } = {}) {
|
| 19 |
-
if (!feature || !encodeChunk || !makeDecoder || !detokenize) throw new Error("makeStreamingCore needs feature, encodeChunk, makeDecoder, detokenize");
|
| 20 |
-
const init = initCaches || (() => null);
|
| 21 |
-
|
| 22 |
-
return {
|
| 23 |
-
reset() { return { joint: makeDecoder(), predState: null, last: blankId, tokens: [], stableLen: 0 }; },
|
| 24 |
-
feature(pcmChunk) { return feature(pcmChunk); },
|
| 25 |
-
|
| 26 |
-
// CACHE-AWARE encode: constant work per chunk — bounded context carried in `caches`, not re-encoded.
|
| 27 |
-
async encode(feats, encCache) {
|
| 28 |
-
const caches = encCache || init();
|
| 29 |
-
const r = await encodeChunk(feats, caches);
|
| 30 |
-
return { enc: { encoded: r.encoded, Tc: r.Tc }, encCache: r.caches };
|
| 31 |
-
},
|
| 32 |
-
|
| 33 |
-
// incremental RNNT/TDT decode over THIS chunk's frames, carrying predictor state. Returns NEWLY-stable tokens
|
| 34 |
-
// (delta — the runner concatenates them) + the revisable tentative tail.
|
| 35 |
-
async decodeStep(enc, decState) {
|
| 36 |
-
const { encoded, Tc } = enc, D = encoded.length / Tc;
|
| 37 |
-
let { joint, predState, last } = decState, t = 0, emitted = 0;
|
| 38 |
-
while (t < Tc) {
|
| 39 |
-
const frame = encoded.subarray(t * D, t * D + D);
|
| 40 |
-
const r = await joint(frame, last, predState);
|
| 41 |
-
const o = r.out;
|
| 42 |
-
let tok = 0, tm = -Infinity; for (let i = 0; i < vocabSize; i++) if (o[i] > tm) { tm = o[i]; tok = i; }
|
| 43 |
-
let dur = 0, dm = -Infinity; for (let i = vocabSize; i < o.length; i++) if (o[i] > dm) { dm = o[i]; dur = i - vocabSize; }
|
| 44 |
-
if (tok !== blankId) { predState = r.state; decState.tokens.push(tok); last = tok; emitted++; }
|
| 45 |
-
if (dur > 0) { t += dur; emitted = 0; }
|
| 46 |
-
else if (tok === blankId || emitted === maxPerFrame) { t += 1; emitted = 0; }
|
| 47 |
-
}
|
| 48 |
-
decState.predState = predState; decState.last = last;
|
| 49 |
-
const tok = decState.tokens, newStable = Math.max(decState.stableLen, tok.length - tentativeTail);
|
| 50 |
-
const stable = tok.slice(decState.stableLen, newStable); decState.stableLen = newStable;
|
| 51 |
-
const tentative = tok.slice(newStable);
|
| 52 |
-
return { stable, tentative, decState };
|
| 53 |
-
},
|
| 54 |
-
|
| 55 |
-
detokenize(ids) { return detokenize(ids); },
|
| 56 |
-
};
|
| 57 |
-
}
|
| 58 |
-
export default makeStreamingCore;
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2258f284d2d5af693ae3a47d6e525c740eb3dcf98a9eca15f893c78b099f3bc4
|
| 3 |
+
size 3840
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6fdf1c7245aed6ac0f0831c9764ad0ba8c201da1bc2c9a408cfe4373ed1394a4
CHANGED
|
@@ -1,63 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
import { cn } from "@/lib/utils"
|
| 6 |
-
|
| 7 |
-
interface ShineBorderProps extends React.HTMLAttributes<HTMLDivElement> {
|
| 8 |
-
/**
|
| 9 |
-
* Width of the border in pixels
|
| 10 |
-
* @default 1
|
| 11 |
-
*/
|
| 12 |
-
borderWidth?: number
|
| 13 |
-
/**
|
| 14 |
-
* Duration of the animation in seconds
|
| 15 |
-
* @default 14
|
| 16 |
-
*/
|
| 17 |
-
duration?: number
|
| 18 |
-
/**
|
| 19 |
-
* Color of the border, can be a single color or an array of colors
|
| 20 |
-
* @default "#000000"
|
| 21 |
-
*/
|
| 22 |
-
shineColor?: string | string[]
|
| 23 |
-
}
|
| 24 |
-
|
| 25 |
-
/**
|
| 26 |
-
* Shine Border
|
| 27 |
-
*
|
| 28 |
-
* An animated background border effect component with configurable properties.
|
| 29 |
-
*/
|
| 30 |
-
export function ShineBorder({
|
| 31 |
-
borderWidth = 1,
|
| 32 |
-
duration = 14,
|
| 33 |
-
shineColor = "#000000",
|
| 34 |
-
className,
|
| 35 |
-
style,
|
| 36 |
-
...props
|
| 37 |
-
}: ShineBorderProps) {
|
| 38 |
-
return (
|
| 39 |
-
<div
|
| 40 |
-
style={
|
| 41 |
-
{
|
| 42 |
-
"--border-width": `${borderWidth}px`,
|
| 43 |
-
"--duration": `${duration}s`,
|
| 44 |
-
backgroundImage: `radial-gradient(transparent,transparent, ${
|
| 45 |
-
Array.isArray(shineColor) ? shineColor.join(",") : shineColor
|
| 46 |
-
},transparent,transparent)`,
|
| 47 |
-
backgroundSize: "300% 300%",
|
| 48 |
-
mask: `linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)`,
|
| 49 |
-
WebkitMask: `linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)`,
|
| 50 |
-
WebkitMaskComposite: "xor",
|
| 51 |
-
maskComposite: "exclude",
|
| 52 |
-
padding: "var(--border-width)",
|
| 53 |
-
...style,
|
| 54 |
-
} as React.CSSProperties
|
| 55 |
-
}
|
| 56 |
-
className={cn(
|
| 57 |
-
"motion-safe:animate-shine pointer-events-none absolute inset-0 size-full rounded-[inherit] will-change-[background-position]",
|
| 58 |
-
className
|
| 59 |
-
)}
|
| 60 |
-
{...props}
|
| 61 |
-
/>
|
| 62 |
-
)
|
| 63 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c9344b563c2427f26393f6f5e2fe5c72d6a3fcb4b90b8f073ebad515e963c46c
|
| 3 |
+
size 1649
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/6fec2243975de84e5aac9f3cf15ac4b9fcfae7b132ad7759c0fc3c72c8ad0456
CHANGED
|
@@ -1,11 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
export default function ToggleLg() {
|
| 6 |
-
return (
|
| 7 |
-
<Toggle size="lg" aria-label="Toggle italic">
|
| 8 |
-
<Italic />
|
| 9 |
-
</Toggle>
|
| 10 |
-
)
|
| 11 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ef06fcaa09814b85c060a1903d37fe1f979d469b907b49adb05d71fd529abae5
|
| 3 |
+
size 233
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/702f1600e5b352204f1bb862465ea43111db58732d6a96f7ba91a4c082d41e01
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
b/704f09d62f0604bd47cfd7c11bbba44dc47e77af65c051ff810afdc3cad56c2b
CHANGED
|
@@ -1,321 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
useEffect,
|
| 5 |
-
useRef,
|
| 6 |
-
useState,
|
| 7 |
-
type ComponentPropsWithoutRef,
|
| 8 |
-
} from "react"
|
| 9 |
-
|
| 10 |
-
import { cn } from "@/lib/utils"
|
| 11 |
-
|
| 12 |
-
interface MousePosition {
|
| 13 |
-
x: number
|
| 14 |
-
y: number
|
| 15 |
-
}
|
| 16 |
-
|
| 17 |
-
function MousePosition(): MousePosition {
|
| 18 |
-
const [mousePosition, setMousePosition] = useState<MousePosition>({
|
| 19 |
-
x: 0,
|
| 20 |
-
y: 0,
|
| 21 |
-
})
|
| 22 |
-
|
| 23 |
-
useEffect(() => {
|
| 24 |
-
const handleMouseMove = (event: MouseEvent) => {
|
| 25 |
-
setMousePosition({ x: event.clientX, y: event.clientY })
|
| 26 |
-
}
|
| 27 |
-
|
| 28 |
-
window.addEventListener("mousemove", handleMouseMove)
|
| 29 |
-
|
| 30 |
-
return () => {
|
| 31 |
-
window.removeEventListener("mousemove", handleMouseMove)
|
| 32 |
-
}
|
| 33 |
-
}, [])
|
| 34 |
-
|
| 35 |
-
return mousePosition
|
| 36 |
-
}
|
| 37 |
-
|
| 38 |
-
interface ParticlesProps extends ComponentPropsWithoutRef<"div"> {
|
| 39 |
-
className?: string
|
| 40 |
-
quantity?: number
|
| 41 |
-
staticity?: number
|
| 42 |
-
ease?: number
|
| 43 |
-
size?: number
|
| 44 |
-
refresh?: boolean
|
| 45 |
-
color?: string
|
| 46 |
-
vx?: number
|
| 47 |
-
vy?: number
|
| 48 |
-
}
|
| 49 |
-
|
| 50 |
-
function hexToRgb(hex: string): number[] {
|
| 51 |
-
hex = hex.replace("#", "")
|
| 52 |
-
|
| 53 |
-
if (hex.length === 3) {
|
| 54 |
-
hex = hex
|
| 55 |
-
.split("")
|
| 56 |
-
.map((char) => char + char)
|
| 57 |
-
.join("")
|
| 58 |
-
}
|
| 59 |
-
|
| 60 |
-
const hexInt = parseInt(hex, 16)
|
| 61 |
-
const red = (hexInt >> 16) & 255
|
| 62 |
-
const green = (hexInt >> 8) & 255
|
| 63 |
-
const blue = hexInt & 255
|
| 64 |
-
return [red, green, blue]
|
| 65 |
-
}
|
| 66 |
-
|
| 67 |
-
type Circle = {
|
| 68 |
-
x: number
|
| 69 |
-
y: number
|
| 70 |
-
translateX: number
|
| 71 |
-
translateY: number
|
| 72 |
-
size: number
|
| 73 |
-
alpha: number
|
| 74 |
-
targetAlpha: number
|
| 75 |
-
dx: number
|
| 76 |
-
dy: number
|
| 77 |
-
magnetism: number
|
| 78 |
-
}
|
| 79 |
-
|
| 80 |
-
export const Particles: React.FC<ParticlesProps> = ({
|
| 81 |
-
className = "",
|
| 82 |
-
quantity = 100,
|
| 83 |
-
staticity = 50,
|
| 84 |
-
ease = 50,
|
| 85 |
-
size = 0.4,
|
| 86 |
-
refresh = false,
|
| 87 |
-
color = "#ffffff",
|
| 88 |
-
vx = 0,
|
| 89 |
-
vy = 0,
|
| 90 |
-
...props
|
| 91 |
-
}) => {
|
| 92 |
-
const canvasRef = useRef<HTMLCanvasElement>(null)
|
| 93 |
-
const canvasContainerRef = useRef<HTMLDivElement>(null)
|
| 94 |
-
const context = useRef<CanvasRenderingContext2D | null>(null)
|
| 95 |
-
const circles = useRef<Circle[]>([])
|
| 96 |
-
const mousePosition = MousePosition()
|
| 97 |
-
const mouse = useRef<{ x: number; y: number }>({ x: 0, y: 0 })
|
| 98 |
-
const canvasSize = useRef<{ w: number; h: number }>({ w: 0, h: 0 })
|
| 99 |
-
const dpr = typeof window !== "undefined" ? window.devicePixelRatio : 1
|
| 100 |
-
const rafID = useRef<number | null>(null)
|
| 101 |
-
const resizeTimeout = useRef<NodeJS.Timeout | null>(null)
|
| 102 |
-
const initCanvasRef = useRef<() => void>(() => {})
|
| 103 |
-
const onMouseMoveRef = useRef<() => void>(() => {})
|
| 104 |
-
const animateRef = useRef<() => void>(() => {})
|
| 105 |
-
|
| 106 |
-
useEffect(() => {
|
| 107 |
-
if (canvasRef.current) {
|
| 108 |
-
context.current = canvasRef.current.getContext("2d")
|
| 109 |
-
}
|
| 110 |
-
initCanvasRef.current()
|
| 111 |
-
animateRef.current()
|
| 112 |
-
|
| 113 |
-
const handleResize = () => {
|
| 114 |
-
if (resizeTimeout.current) {
|
| 115 |
-
clearTimeout(resizeTimeout.current)
|
| 116 |
-
}
|
| 117 |
-
resizeTimeout.current = setTimeout(() => {
|
| 118 |
-
initCanvasRef.current()
|
| 119 |
-
}, 200)
|
| 120 |
-
}
|
| 121 |
-
|
| 122 |
-
window.addEventListener("resize", handleResize)
|
| 123 |
-
|
| 124 |
-
return () => {
|
| 125 |
-
if (rafID.current != null) {
|
| 126 |
-
window.cancelAnimationFrame(rafID.current)
|
| 127 |
-
}
|
| 128 |
-
if (resizeTimeout.current) {
|
| 129 |
-
clearTimeout(resizeTimeout.current)
|
| 130 |
-
}
|
| 131 |
-
window.removeEventListener("resize", handleResize)
|
| 132 |
-
}
|
| 133 |
-
}, [color])
|
| 134 |
-
|
| 135 |
-
useEffect(() => {
|
| 136 |
-
onMouseMoveRef.current()
|
| 137 |
-
}, [mousePosition.x, mousePosition.y])
|
| 138 |
-
|
| 139 |
-
useEffect(() => {
|
| 140 |
-
initCanvasRef.current()
|
| 141 |
-
}, [refresh])
|
| 142 |
-
|
| 143 |
-
const initCanvas = () => {
|
| 144 |
-
resizeCanvas()
|
| 145 |
-
drawParticles()
|
| 146 |
-
}
|
| 147 |
-
|
| 148 |
-
const onMouseMove = () => {
|
| 149 |
-
if (canvasRef.current) {
|
| 150 |
-
const rect = canvasRef.current.getBoundingClientRect()
|
| 151 |
-
const { w, h } = canvasSize.current
|
| 152 |
-
const x = mousePosition.x - rect.left - w / 2
|
| 153 |
-
const y = mousePosition.y - rect.top - h / 2
|
| 154 |
-
const inside = x < w / 2 && x > -w / 2 && y < h / 2 && y > -h / 2
|
| 155 |
-
if (inside) {
|
| 156 |
-
mouse.current.x = x
|
| 157 |
-
mouse.current.y = y
|
| 158 |
-
}
|
| 159 |
-
}
|
| 160 |
-
}
|
| 161 |
-
|
| 162 |
-
const resizeCanvas = () => {
|
| 163 |
-
if (canvasContainerRef.current && canvasRef.current && context.current) {
|
| 164 |
-
canvasSize.current.w = canvasContainerRef.current.offsetWidth
|
| 165 |
-
canvasSize.current.h = canvasContainerRef.current.offsetHeight
|
| 166 |
-
|
| 167 |
-
canvasRef.current.width = canvasSize.current.w * dpr
|
| 168 |
-
canvasRef.current.height = canvasSize.current.h * dpr
|
| 169 |
-
canvasRef.current.style.width = `${canvasSize.current.w}px`
|
| 170 |
-
canvasRef.current.style.height = `${canvasSize.current.h}px`
|
| 171 |
-
context.current.scale(dpr, dpr)
|
| 172 |
-
|
| 173 |
-
// Clear existing particles and create new ones with exact quantity
|
| 174 |
-
circles.current = []
|
| 175 |
-
for (let i = 0; i < quantity; i++) {
|
| 176 |
-
const circle = circleParams()
|
| 177 |
-
drawCircle(circle)
|
| 178 |
-
}
|
| 179 |
-
}
|
| 180 |
-
}
|
| 181 |
-
|
| 182 |
-
const circleParams = (): Circle => {
|
| 183 |
-
const x = Math.floor(Math.random() * canvasSize.current.w)
|
| 184 |
-
const y = Math.floor(Math.random() * canvasSize.current.h)
|
| 185 |
-
const translateX = 0
|
| 186 |
-
const translateY = 0
|
| 187 |
-
const pSize = Math.floor(Math.random() * 2) + size
|
| 188 |
-
const alpha = 0
|
| 189 |
-
const targetAlpha = parseFloat((Math.random() * 0.6 + 0.1).toFixed(1))
|
| 190 |
-
const dx = (Math.random() - 0.5) * 0.1
|
| 191 |
-
const dy = (Math.random() - 0.5) * 0.1
|
| 192 |
-
const magnetism = 0.1 + Math.random() * 4
|
| 193 |
-
return {
|
| 194 |
-
x,
|
| 195 |
-
y,
|
| 196 |
-
translateX,
|
| 197 |
-
translateY,
|
| 198 |
-
size: pSize,
|
| 199 |
-
alpha,
|
| 200 |
-
targetAlpha,
|
| 201 |
-
dx,
|
| 202 |
-
dy,
|
| 203 |
-
magnetism,
|
| 204 |
-
}
|
| 205 |
-
}
|
| 206 |
-
|
| 207 |
-
const rgb = hexToRgb(color)
|
| 208 |
-
|
| 209 |
-
const drawCircle = (circle: Circle, update = false) => {
|
| 210 |
-
if (context.current) {
|
| 211 |
-
const { x, y, translateX, translateY, size, alpha } = circle
|
| 212 |
-
context.current.translate(translateX, translateY)
|
| 213 |
-
context.current.beginPath()
|
| 214 |
-
context.current.arc(x, y, size, 0, 2 * Math.PI)
|
| 215 |
-
context.current.fillStyle = `rgba(${rgb.join(", ")}, ${alpha})`
|
| 216 |
-
context.current.fill()
|
| 217 |
-
context.current.setTransform(dpr, 0, 0, dpr, 0, 0)
|
| 218 |
-
|
| 219 |
-
if (!update) {
|
| 220 |
-
circles.current.push(circle)
|
| 221 |
-
}
|
| 222 |
-
}
|
| 223 |
-
}
|
| 224 |
-
|
| 225 |
-
const clearContext = () => {
|
| 226 |
-
if (context.current) {
|
| 227 |
-
context.current.clearRect(
|
| 228 |
-
0,
|
| 229 |
-
0,
|
| 230 |
-
canvasSize.current.w,
|
| 231 |
-
canvasSize.current.h
|
| 232 |
-
)
|
| 233 |
-
}
|
| 234 |
-
}
|
| 235 |
-
|
| 236 |
-
const drawParticles = () => {
|
| 237 |
-
clearContext()
|
| 238 |
-
const particleCount = quantity
|
| 239 |
-
for (let i = 0; i < particleCount; i++) {
|
| 240 |
-
const circle = circleParams()
|
| 241 |
-
drawCircle(circle)
|
| 242 |
-
}
|
| 243 |
-
}
|
| 244 |
-
|
| 245 |
-
const remapValue = (
|
| 246 |
-
value: number,
|
| 247 |
-
start1: number,
|
| 248 |
-
end1: number,
|
| 249 |
-
start2: number,
|
| 250 |
-
end2: number
|
| 251 |
-
): number => {
|
| 252 |
-
const remapped =
|
| 253 |
-
((value - start1) * (end2 - start2)) / (end1 - start1) + start2
|
| 254 |
-
return remapped > 0 ? remapped : 0
|
| 255 |
-
}
|
| 256 |
-
|
| 257 |
-
const animate = () => {
|
| 258 |
-
clearContext()
|
| 259 |
-
circles.current.forEach((circle: Circle, i: number) => {
|
| 260 |
-
// Handle the alpha value
|
| 261 |
-
const edge = [
|
| 262 |
-
circle.x + circle.translateX - circle.size, // distance from left edge
|
| 263 |
-
canvasSize.current.w - circle.x - circle.translateX - circle.size, // distance from right edge
|
| 264 |
-
circle.y + circle.translateY - circle.size, // distance from top edge
|
| 265 |
-
canvasSize.current.h - circle.y - circle.translateY - circle.size, // distance from bottom edge
|
| 266 |
-
]
|
| 267 |
-
const closestEdge = edge.reduce((a, b) => Math.min(a, b))
|
| 268 |
-
const remapClosestEdge = parseFloat(
|
| 269 |
-
remapValue(closestEdge, 0, 20, 0, 1).toFixed(2)
|
| 270 |
-
)
|
| 271 |
-
if (remapClosestEdge > 1) {
|
| 272 |
-
circle.alpha += 0.02
|
| 273 |
-
if (circle.alpha > circle.targetAlpha) {
|
| 274 |
-
circle.alpha = circle.targetAlpha
|
| 275 |
-
}
|
| 276 |
-
} else {
|
| 277 |
-
circle.alpha = circle.targetAlpha * remapClosestEdge
|
| 278 |
-
}
|
| 279 |
-
circle.x += circle.dx + vx
|
| 280 |
-
circle.y += circle.dy + vy
|
| 281 |
-
circle.translateX +=
|
| 282 |
-
(mouse.current.x / (staticity / circle.magnetism) - circle.translateX) /
|
| 283 |
-
ease
|
| 284 |
-
circle.translateY +=
|
| 285 |
-
(mouse.current.y / (staticity / circle.magnetism) - circle.translateY) /
|
| 286 |
-
ease
|
| 287 |
-
|
| 288 |
-
drawCircle(circle, true)
|
| 289 |
-
|
| 290 |
-
// circle gets out of the canvas
|
| 291 |
-
if (
|
| 292 |
-
circle.x < -circle.size ||
|
| 293 |
-
circle.x > canvasSize.current.w + circle.size ||
|
| 294 |
-
circle.y < -circle.size ||
|
| 295 |
-
circle.y > canvasSize.current.h + circle.size
|
| 296 |
-
) {
|
| 297 |
-
// remove the circle from the array
|
| 298 |
-
circles.current.splice(i, 1)
|
| 299 |
-
// create a new circle
|
| 300 |
-
const newCircle = circleParams()
|
| 301 |
-
drawCircle(newCircle)
|
| 302 |
-
}
|
| 303 |
-
})
|
| 304 |
-
rafID.current = window.requestAnimationFrame(animateRef.current)
|
| 305 |
-
}
|
| 306 |
-
|
| 307 |
-
initCanvasRef.current = initCanvas
|
| 308 |
-
onMouseMoveRef.current = onMouseMove
|
| 309 |
-
animateRef.current = animate
|
| 310 |
-
|
| 311 |
-
return (
|
| 312 |
-
<div
|
| 313 |
-
className={cn("pointer-events-none", className)}
|
| 314 |
-
ref={canvasContainerRef}
|
| 315 |
-
aria-hidden="true"
|
| 316 |
-
{...props}
|
| 317 |
-
>
|
| 318 |
-
<canvas ref={canvasRef} className="size-full" />
|
| 319 |
-
</div>
|
| 320 |
-
)
|
| 321 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f768e19deca7c0ba9c424b4683b62cae3eedd11ef3dac8b0363e65c2773f236e
|
| 3 |
+
size 8543
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/7093a63dcd2a6dd1c180d0ce08d28c25a79656e38e5ff1bff72bd762c64df2d7
CHANGED
|
@@ -1 +1,3 @@
|
|
| 1 |
-
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:37532cc428cbc7aea8a2b32c490a27e8cd29220ad414f1c05c829e169a01ecff
|
| 3 |
+
size 1866
|
b/70a8be11004e64f537c21f740f445d3742e5b3a452fc99460f9c13d7dc79c93f
CHANGED
|
@@ -1,47 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
import {
|
| 6 |
-
ChartContainer,
|
| 7 |
-
type ChartConfig,
|
| 8 |
-
} from "@/registry/new-york-v4/ui/chart"
|
| 9 |
-
|
| 10 |
-
const chartData = [
|
| 11 |
-
{ month: "January", desktop: 186, mobile: 80 },
|
| 12 |
-
{ month: "February", desktop: 305, mobile: 200 },
|
| 13 |
-
{ month: "March", desktop: 237, mobile: 120 },
|
| 14 |
-
{ month: "April", desktop: 73, mobile: 190 },
|
| 15 |
-
{ month: "May", desktop: 209, mobile: 130 },
|
| 16 |
-
{ month: "June", desktop: 214, mobile: 140 },
|
| 17 |
-
]
|
| 18 |
-
|
| 19 |
-
const chartConfig = {
|
| 20 |
-
desktop: {
|
| 21 |
-
label: "Desktop",
|
| 22 |
-
color: "#2563eb",
|
| 23 |
-
},
|
| 24 |
-
mobile: {
|
| 25 |
-
label: "Mobile",
|
| 26 |
-
color: "#60a5fa",
|
| 27 |
-
},
|
| 28 |
-
} satisfies ChartConfig
|
| 29 |
-
|
| 30 |
-
export default function Component() {
|
| 31 |
-
return (
|
| 32 |
-
<ChartContainer config={chartConfig} className="min-h-[200px] w-full">
|
| 33 |
-
<BarChart accessibilityLayer data={chartData}>
|
| 34 |
-
<CartesianGrid vertical={false} />
|
| 35 |
-
<XAxis
|
| 36 |
-
dataKey="month"
|
| 37 |
-
tickLine={false}
|
| 38 |
-
tickMargin={10}
|
| 39 |
-
axisLine={false}
|
| 40 |
-
tickFormatter={(value) => value.slice(0, 3)}
|
| 41 |
-
/>
|
| 42 |
-
<Bar dataKey="desktop" fill="var(--color-desktop)" radius={4} />
|
| 43 |
-
<Bar dataKey="mobile" fill="var(--color-mobile)" radius={4} />
|
| 44 |
-
</BarChart>
|
| 45 |
-
</ChartContainer>
|
| 46 |
-
)
|
| 47 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:881c38bde7d4387b556363a3f09d9c595c259b45e5d467820dfdccb40e8eec88
|
| 3 |
+
size 1250
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/70beacc89e5f37a13d7284a4350d01f8095b283c0a0351c2ece7e589c1ed2851
CHANGED
|
@@ -1,51 +1,3 @@
|
|
| 1 |
-
//
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
// punctuation-safe, endpoint fires/vetoes). Serverless: the 170MB .holo streams by κ (per-block L5 + OPFS warm);
|
| 5 |
-
// nothing leaves the device. Lazy + fail-soft — ANY load failure returns null so the caller keeps its heuristic.
|
| 6 |
-
import { makeTurnDetector } from "./holo-voice-turn-detector.mjs";
|
| 7 |
-
|
| 8 |
-
const ORT_CDN = "https://cdn.jsdelivr.net/npm/onnxruntime-web@1.20.1/dist/ort.webgpu.bundle.min.mjs";
|
| 9 |
-
const TF_CDN = "https://cdn.jsdelivr.net/npm/@huggingface/transformers@3.0.2";
|
| 10 |
-
|
| 11 |
-
// createTurnDetectorWeb({ holoUrl, onnxUrl, modelsBase, modelId, release, ort, tf, ortUrl, tfUrl }) →
|
| 12 |
-
// { predict(text)->P(complete)|null, info } | null on failure.
|
| 13 |
-
// Delivery: pass `holoUrl` to κ-serve the bundle (model + tokenizer) by content address (the SW/holo-onnx-kserve
|
| 14 |
-
// fetch shim), OR `onnxUrl` + `modelsBase` to load the files directly (dev). modelId defaults "turn-detector".
|
| 15 |
-
export async function createTurnDetectorWeb({ holoUrl = "", onnxUrl = "", modelsBase = "/apps/q/forge/.models/", modelId = "turn-detector", release = "", ort = null, tf = null, ortUrl = ORT_CDN, tfUrl = TF_CDN, openFiles = null } = {}) {
|
| 16 |
-
try {
|
| 17 |
-
const O = ort || await import(/* @vite-ignore */ ortUrl);
|
| 18 |
-
try { O.env.wasm.proxy = false; O.env.wasm.numThreads = 1; } catch (e) {}
|
| 19 |
-
const T = tf || await import(/* @vite-ignore */ tfUrl);
|
| 20 |
-
T.env.allowRemoteModels = false; T.env.allowLocalModels = true;
|
| 21 |
-
|
| 22 |
-
// κ-serve the bundle (model + tokenizer files) by content address; else load from modelsBase.
|
| 23 |
-
let served = null, onnx = onnxUrl || (modelsBase + modelId + "/model_quantized.onnx");
|
| 24 |
-
if (holoUrl) {
|
| 25 |
-
try { const km = await import(/* @vite-ignore */ "./holo-onnx-kserve.mjs"); served = await (km.serveModelFromHolo || km.default)({ holoUrl, modelId, release, openFiles }); } catch (e) { try { console.warn("[turn-detector] κ-serve unavailable, direct:", e && e.message || e); } catch (_) {} }
|
| 26 |
-
}
|
| 27 |
-
if (!onnxUrl) T.env.localModelPath = new URL(modelsBase, (typeof location !== "undefined" ? location.href : "http://localhost/")).href;
|
| 28 |
-
|
| 29 |
-
const tok = await T.AutoTokenizer.from_pretrained(modelId);
|
| 30 |
-
const imEndId = (tok.model && tok.model.tokens_to_ids && tok.model.tokens_to_ids.get("<|im_end|>")) ?? 2;
|
| 31 |
-
const sess = await O.InferenceSession.create(onnx, { executionProviders: ["wasm"] });
|
| 32 |
-
|
| 33 |
-
const tokenizeChatPrefix = (normText) => {
|
| 34 |
-
const formatted = tok.apply_chat_template([{ role: "user", content: normText }], { tokenize: false });
|
| 35 |
-
const prefix = formatted.split("<|im_end|>")[0]; // ask: would <|im_end|> come next?
|
| 36 |
-
const enc = tok(prefix, { add_special_tokens: false });
|
| 37 |
-
return Array.from(enc.input_ids.data, (x) => Number(x));
|
| 38 |
-
};
|
| 39 |
-
const forward = async (ids) => {
|
| 40 |
-
const input = new O.Tensor("int64", BigInt64Array.from(ids.map((x) => BigInt(x))), [1, ids.length]);
|
| 41 |
-
const out = await sess.run({ input_ids: input });
|
| 42 |
-
const t = out.logits, seq = t.dims[1], vocab = t.dims[2];
|
| 43 |
-
return t.data.subarray((seq - 1) * vocab, seq * vocab); // last-position logits
|
| 44 |
-
};
|
| 45 |
-
|
| 46 |
-
const td = makeTurnDetector({ tokenizeChatPrefix, forward, imEndId });
|
| 47 |
-
return { predict: td.predict, info: () => ({ engine: "turn-detector-κ", modelId, served: served ? served.served.length : 0, imEndId }) };
|
| 48 |
-
} catch (e) { try { console.warn("[turn-detector] unavailable, using heuristic:", e && e.message || e); } catch (_) {} return null; }
|
| 49 |
-
}
|
| 50 |
-
|
| 51 |
-
export default createTurnDetectorWeb;
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:55d7e01aa4c1cdbcd1293463a62d88ce95b38b894178ba6cb3db382c851e2e32
|
| 3 |
+
size 3833
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/70c3d8237f9690986b99efa620193dc43fdc031464432afcb61614537881886d
CHANGED
|
@@ -1,364 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
(rl = r·φ), the rail:detail column ratio (1:φ), the gaps, and golden-rectangle preview cards.
|
| 5 |
-
Token-driven end to end — one --holo-* change re-themes everything. */
|
| 6 |
-
:root {
|
| 7 |
-
--phi: 1.618;
|
| 8 |
-
--phi-1: 0.618; /* 1/φ */
|
| 9 |
-
--root-phi: 1.272; /* √φ — the gentle modular ratio for the type scale */
|
| 10 |
-
--d: var(--holo-density, 1);
|
| 11 |
-
|
| 12 |
-
/* spacing — a φ geometric progression (…0.382 · 0.618 · 1 · 1.618 · 2.618 · 4.236…rem) */
|
| 13 |
-
--s1: calc(0.382rem * var(--d));
|
| 14 |
-
--s2: calc(0.618rem * var(--d));
|
| 15 |
-
--s3: calc(1rem * var(--d));
|
| 16 |
-
--s4: calc(1.618rem * var(--d));
|
| 17 |
-
--s5: calc(2.618rem * var(--d));
|
| 18 |
-
--s6: calc(4.236rem * var(--d));
|
| 19 |
-
|
| 20 |
-
/* type — modular scale stepped by √φ around a 1rem body (φ = √φ²) */
|
| 21 |
-
--f-1: 0.786rem; /* labels · chips · counts (1/√φ) */
|
| 22 |
-
--f0: 1rem; /* body · controls */
|
| 23 |
-
--f1: 1.272rem; /* card titles emphasis */
|
| 24 |
-
--f2: 1.618rem; /* detail heading (φ) */
|
| 25 |
-
--f3: 2.058rem; /* main heading (φ·√φ) */
|
| 26 |
-
--lh: 1.618; /* golden body line-height */
|
| 27 |
-
|
| 28 |
-
/* radii — rl is the golden multiple of the base; rs its golden fraction */
|
| 29 |
-
--r: var(--holo-radius, 12px);
|
| 30 |
-
--rl: calc(var(--r) * var(--phi));
|
| 31 |
-
--rs: calc(var(--r) * var(--phi-1));
|
| 32 |
-
|
| 33 |
-
/* columns — the two side rails are golden-related (detail = rail · φ); the center keeps the rest */
|
| 34 |
-
--rail-w: clamp(13rem, 17vw, 15rem);
|
| 35 |
-
--detail-w: calc(var(--rail-w) * var(--phi));
|
| 36 |
-
|
| 37 |
-
--line: color-mix(in srgb, var(--holo-ink) 12%, transparent);
|
| 38 |
-
--line-soft: color-mix(in srgb, var(--holo-ink) 7%, transparent);
|
| 39 |
-
--hover: color-mix(in srgb, var(--holo-ink) 6%, transparent);
|
| 40 |
-
}
|
| 41 |
-
* { box-sizing: border-box; }
|
| 42 |
-
|
| 43 |
-
.app {
|
| 44 |
-
display: grid;
|
| 45 |
-
grid-template-columns: var(--rail-w) 1fr;
|
| 46 |
-
gap: var(--s4);
|
| 47 |
-
height: 100vh;
|
| 48 |
-
padding: var(--s4);
|
| 49 |
-
font-family: var(--holo-font-sans);
|
| 50 |
-
font-size: var(--f0);
|
| 51 |
-
line-height: var(--lh);
|
| 52 |
-
color: var(--holo-ink);
|
| 53 |
-
background: var(--holo-bg);
|
| 54 |
-
}
|
| 55 |
-
.app.has-detail { grid-template-columns: var(--rail-w) 1fr var(--detail-w); }
|
| 56 |
-
|
| 57 |
-
/* ── shared surfaces ─────────────────────────────────────────────────────── */
|
| 58 |
-
.surface { background: var(--holo-surface); border: 1px solid var(--line-soft); border-radius: var(--rl); }
|
| 59 |
-
.btn-primary {
|
| 60 |
-
width: 100%; border: 0; border-radius: var(--r); cursor: pointer; font: inherit; font-weight: 650;
|
| 61 |
-
font-size: var(--f0); padding: var(--s3) var(--s4); background: var(--holo-ink); color: var(--holo-bg);
|
| 62 |
-
transition: opacity 0.15s ease, transform 0.1s ease;
|
| 63 |
-
}
|
| 64 |
-
.btn-primary:hover { opacity: 0.9; }
|
| 65 |
-
.btn-primary:active { transform: translateY(1px); }
|
| 66 |
-
|
| 67 |
-
/* ── left rail ───────────────────────────────────────────────────────────── */
|
| 68 |
-
.rail { display: flex; flex-direction: column; gap: var(--s3); min-height: 0; }
|
| 69 |
-
.rail-head { display: flex; align-items: baseline; justify-content: space-between; padding: var(--s3) var(--s3) 0; }
|
| 70 |
-
.rail-head b { font-size: var(--f1); font-weight: 800; letter-spacing: -0.01em; line-height: 1.2; }
|
| 71 |
-
.rail-head .count { color: var(--holo-ink-dim); font-size: var(--f-1); font-variant-numeric: tabular-nums; }
|
| 72 |
-
|
| 73 |
-
.search { padding: var(--s3); font: inherit; font-size: var(--f0); color: var(--holo-ink);
|
| 74 |
-
background: var(--holo-surface); border: 1px solid var(--line); border-radius: var(--r); outline: none;
|
| 75 |
-
transition: border-color 0.15s ease; }
|
| 76 |
-
.search::placeholder { color: var(--holo-ink-dim); }
|
| 77 |
-
.search:focus { border-color: color-mix(in srgb, var(--holo-ink) 28%, transparent); }
|
| 78 |
-
|
| 79 |
-
/* segmented control (library filter + theme) */
|
| 80 |
-
.seg { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: var(--s1);
|
| 81 |
-
padding: var(--s1); background: var(--holo-surface); border: 1px solid var(--line-soft); border-radius: var(--r); }
|
| 82 |
-
.seg button { border: 0; background: transparent; color: var(--holo-ink-dim); padding: var(--s2);
|
| 83 |
-
border-radius: var(--rs); cursor: pointer; font: inherit; font-size: var(--f-1); font-weight: 550;
|
| 84 |
-
white-space: nowrap; transition: background 0.15s ease, color 0.15s ease; }
|
| 85 |
-
.seg button:hover { color: var(--holo-ink); }
|
| 86 |
-
.seg button.on { background: var(--holo-ink); color: var(--holo-bg); font-weight: 650; }
|
| 87 |
-
|
| 88 |
-
.rail-label { font-size: var(--f-1); font-weight: 700; text-transform: uppercase; letter-spacing: 0.09em;
|
| 89 |
-
color: var(--holo-ink-dim); padding: var(--s2) var(--s2) 0; }
|
| 90 |
-
|
| 91 |
-
.cats { display: flex; flex-direction: column; gap: var(--s1); overflow-y: auto; padding: var(--s1) 0; flex: 1; min-height: 0; }
|
| 92 |
-
.cats::-webkit-scrollbar { width: 8px; }
|
| 93 |
-
.cats::-webkit-scrollbar-thumb { background: var(--line); border-radius: 999px; }
|
| 94 |
-
.cat-row { display: flex; align-items: center; gap: var(--s2); width: 100%; text-align: left; border: 0;
|
| 95 |
-
cursor: pointer; background: transparent; color: var(--holo-ink); padding: var(--s2) var(--s3);
|
| 96 |
-
border-radius: var(--r); font: inherit; font-size: var(--f0); transition: background 0.12s ease; }
|
| 97 |
-
.cat-row:hover { background: var(--hover); }
|
| 98 |
-
.cat-row.on { background: color-mix(in srgb, var(--holo-ink) 10%, transparent); font-weight: 650; }
|
| 99 |
-
.cat-row .cat-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
| 100 |
-
.cat-row .cat-count { color: var(--holo-ink-dim); font-size: var(--f-1); font-variant-numeric: tabular-nums;
|
| 101 |
-
background: var(--holo-surface); border: 1px solid var(--line-soft); border-radius: 999px; padding: 0 var(--s2); }
|
| 102 |
-
.cat-row.on .cat-count { color: var(--holo-ink); }
|
| 103 |
-
|
| 104 |
-
.rail-foot { display: flex; flex-direction: column; gap: var(--s2); padding-top: var(--s1); }
|
| 105 |
-
.shuffle { display: flex; align-items: center; justify-content: center; gap: var(--s2);
|
| 106 |
-
border: 1px solid var(--line); background: var(--holo-surface); color: var(--holo-ink);
|
| 107 |
-
border-radius: var(--r); padding: var(--s3); cursor: pointer; font: inherit; font-size: var(--f0); font-weight: 550;
|
| 108 |
-
transition: border-color 0.15s ease; }
|
| 109 |
-
.shuffle:hover { border-color: color-mix(in srgb, var(--holo-ink) 28%, transparent); }
|
| 110 |
-
|
| 111 |
-
/* ── center: category grid ───────────────────────────────────────────────── */
|
| 112 |
-
.main { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
|
| 113 |
-
.main-head { padding: var(--s5) var(--s5) var(--s4); border-bottom: 1px solid var(--line-soft); }
|
| 114 |
-
.main-head h1 { margin: 0; font-size: var(--f3); font-weight: 750; letter-spacing: -0.015em; line-height: 1.15; }
|
| 115 |
-
.main-head p { margin: var(--s2) 0 0; color: var(--holo-ink-dim); font-size: var(--f0); }
|
| 116 |
-
.main-head p b { color: var(--holo-ink); font-weight: 650; }
|
| 117 |
-
|
| 118 |
-
.grid { flex: 1; min-height: 0; overflow-y: auto; padding: var(--s4) var(--s5) var(--s5);
|
| 119 |
-
display: grid; grid-template-columns: repeat(auto-fill, minmax(16.18rem, 1fr)); gap: var(--s4); align-items: start; align-content: start; }
|
| 120 |
-
.grid::-webkit-scrollbar { width: 10px; }
|
| 121 |
-
.grid::-webkit-scrollbar-thumb { background: var(--line); border-radius: 999px; }
|
| 122 |
-
|
| 123 |
-
.card { border: 1px solid var(--line); border-radius: var(--rl); background: var(--holo-bg); overflow: hidden;
|
| 124 |
-
cursor: pointer; display: flex; flex-direction: column;
|
| 125 |
-
transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease; }
|
| 126 |
-
.card:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--holo-ink) 26%, transparent);
|
| 127 |
-
box-shadow: 0 12px 30px -12px color-mix(in srgb, var(--holo-bg) 75%, transparent); }
|
| 128 |
-
.card.on { border-color: var(--holo-ink); }
|
| 129 |
-
/* the preview is a GOLDEN RECTANGLE (width : height = φ : 1) — the heart of the balanced grid */
|
| 130 |
-
.card .card-stage { aspect-ratio: var(--phi); width: 100%; flex: 0 0 auto; display: grid; place-items: center;
|
| 131 |
-
padding: var(--s3); overflow: hidden; position: relative; pointer-events: none;
|
| 132 |
-
background-image: radial-gradient(color-mix(in srgb, var(--holo-ink) 6%, transparent) 1px, transparent 1px);
|
| 133 |
-
background-size: 20px 20px; }
|
| 134 |
-
.card .card-stage > * { max-width: 100%; max-height: 100%; }
|
| 135 |
-
.card .card-foot { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: var(--s2);
|
| 136 |
-
padding: var(--s3); border-top: 1px solid var(--line-soft); }
|
| 137 |
-
.card .card-name { font-size: var(--f0); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
| 138 |
-
.tier-chip { font-size: calc(var(--f-1) * var(--phi-1) + 0.4rem); font-weight: 650; text-transform: uppercase;
|
| 139 |
-
letter-spacing: 0.05em; color: var(--holo-ink-dim); border: 1px solid var(--line-soft); border-radius: 999px;
|
| 140 |
-
padding: 0 var(--s2); flex: 0 0 auto; }
|
| 141 |
-
|
| 142 |
-
.empty { grid-column: 1 / -1; color: var(--holo-ink-dim); text-align: center; padding: var(--s5); font-size: var(--f0); }
|
| 143 |
-
|
| 144 |
-
/* ── right: detail panel ─────────────────────────────────────────────────── */
|
| 145 |
-
.detail { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
|
| 146 |
-
.detail-head { padding: var(--s5) var(--s4) var(--s3); }
|
| 147 |
-
.detail-top { display: flex; align-items: flex-start; gap: var(--s2); }
|
| 148 |
-
.detail-top h2 { margin: 0; font-size: var(--f2); font-weight: 750; letter-spacing: -0.01em; line-height: 1.2;
|
| 149 |
-
flex: 1; word-break: break-word; }
|
| 150 |
-
.x { border: 0; background: var(--holo-surface); color: var(--holo-ink-dim); cursor: pointer;
|
| 151 |
-
width: var(--s5); height: var(--s5); border-radius: var(--r); display: grid; place-items: center; font-size: var(--f1);
|
| 152 |
-
flex: 0 0 auto; transition: color 0.15s ease, background 0.15s ease; }
|
| 153 |
-
.x:hover { color: var(--holo-ink); background: var(--hover); }
|
| 154 |
-
.detail-chips { display: flex; gap: var(--s2); margin-top: var(--s2); flex-wrap: wrap; }
|
| 155 |
-
.chip { font-size: var(--f-1); font-weight: 600; padding: var(--s1) var(--s2); border-radius: 999px;
|
| 156 |
-
background: var(--holo-surface); border: 1px solid var(--line-soft); color: var(--holo-ink-dim); }
|
| 157 |
-
|
| 158 |
-
.tabs { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: var(--s1); margin: var(--s3) var(--s4) 0;
|
| 159 |
-
padding: var(--s1); background: var(--holo-surface); border: 1px solid var(--line-soft); border-radius: var(--r); }
|
| 160 |
-
.tabs button { border: 0; background: transparent; color: var(--holo-ink-dim); padding: var(--s2);
|
| 161 |
-
border-radius: var(--rs); cursor: pointer; font: inherit; font-size: var(--f-1); font-weight: 550;
|
| 162 |
-
transition: background 0.15s ease, color 0.15s ease; }
|
| 163 |
-
.tabs button:hover { color: var(--holo-ink); }
|
| 164 |
-
.tabs button.on { background: var(--holo-ink); color: var(--holo-bg); font-weight: 650; }
|
| 165 |
-
|
| 166 |
-
.detail-body { flex: 1; overflow: auto; padding: var(--s4); }
|
| 167 |
-
.detail-body::-webkit-scrollbar { width: 8px; }
|
| 168 |
-
.detail-body::-webkit-scrollbar-thumb { background: var(--line); border-radius: 999px; }
|
| 169 |
-
|
| 170 |
-
/* the inspect stage is a golden rectangle too (height = width / φ), min-bounded for small components */
|
| 171 |
-
.stage { aspect-ratio: var(--phi); min-height: calc(var(--detail-w) * var(--phi-1)); display: grid; place-items: center;
|
| 172 |
-
padding: var(--s4); background: var(--holo-bg); border: 1px solid var(--line); border-radius: var(--r);
|
| 173 |
-
background-image: radial-gradient(color-mix(in srgb, var(--holo-ink) 7%, transparent) 1px, transparent 1px);
|
| 174 |
-
background-size: 22px 22px; overflow: auto; }
|
| 175 |
-
.stage > * { max-width: 100%; }
|
| 176 |
-
.fallback { color: var(--holo-ink-dim); font-size: var(--f0); text-align: center; max-width: 40ch; line-height: var(--lh); }
|
| 177 |
-
|
| 178 |
-
pre.code { margin: 0; padding: var(--s4); background: var(--holo-bg); border: 1px solid var(--line);
|
| 179 |
-
border-radius: var(--r); overflow: auto; font-family: var(--holo-font-mono); font-size: var(--f-1); line-height: var(--lh);
|
| 180 |
-
color: var(--holo-ink); white-space: pre; tab-size: 2; }
|
| 181 |
-
|
| 182 |
-
.import { display: grid; gap: var(--s3); align-content: start; }
|
| 183 |
-
.kv { display: grid; gap: var(--s1); padding: var(--s3) var(--s4); background: var(--holo-bg);
|
| 184 |
-
border: 1px solid var(--line); border-radius: var(--r); }
|
| 185 |
-
.kv .k { font-size: var(--f-1); font-weight: 700; color: var(--holo-ink-dim); text-transform: uppercase; letter-spacing: 0.06em; }
|
| 186 |
-
.kv code { font-family: var(--holo-font-mono); font-size: var(--f-1); color: var(--holo-ink); word-break: break-all; }
|
| 187 |
-
.kv .v.kappa { color: var(--holo-ok); }
|
| 188 |
-
|
| 189 |
-
.detail-foot { padding: var(--s4); border-top: 1px solid var(--line-soft); }
|
| 190 |
-
|
| 191 |
-
/* ── themes studio ───────────────────────────────────────────────────────── */
|
| 192 |
-
.modeseg button.on { background: var(--holo-accent); color: var(--holo-accent-ink); }
|
| 193 |
-
.rail-fill { flex: 1; min-height: 0; }
|
| 194 |
-
.grid-scroll { flex: 1; min-height: 0; overflow-y: auto; padding: var(--s4) var(--s5) var(--s5); }
|
| 195 |
-
.grid-scroll::-webkit-scrollbar { width: 10px; }
|
| 196 |
-
.grid-scroll::-webkit-scrollbar-thumb { background: var(--line); border-radius: 999px; }
|
| 197 |
-
|
| 198 |
-
.studio { display: flex; flex-direction: column; gap: var(--s4); }
|
| 199 |
-
.studio-customize { padding: var(--s4); display: flex; flex-direction: column; gap: var(--s3); }
|
| 200 |
-
.studio-ch { display: flex; align-items: baseline; gap: var(--s2); flex-wrap: wrap; }
|
| 201 |
-
.studio-ch b { font-size: var(--f1); font-weight: 700; }
|
| 202 |
-
.studio-ch span { color: var(--holo-ink-dim); font-size: var(--f-1); }
|
| 203 |
-
.ctl-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: var(--s3); }
|
| 204 |
-
.ctl { display: flex; flex-direction: column; gap: var(--s1); font-size: var(--f-1); color: var(--holo-ink-dim); }
|
| 205 |
-
.ctl input[type="color"] { width: 100%; height: var(--s5); border: 1px solid var(--line); border-radius: var(--r); background: var(--holo-bg); cursor: pointer; }
|
| 206 |
-
.ctl input[type="range"] { width: 100%; accent-color: var(--holo-accent); }
|
| 207 |
-
.ctl select { width: 100%; min-height: var(--s5); background: var(--holo-bg); color: var(--holo-ink); border: 1px solid var(--line); border-radius: var(--r); padding: 0 var(--s2); font: inherit; }
|
| 208 |
-
.studio-actions { display: flex; flex-wrap: wrap; gap: var(--s2); }
|
| 209 |
-
.btn-ghost { display: inline-flex; align-items: center; gap: var(--s1); border: 1px solid var(--line); background: var(--holo-bg); color: var(--holo-ink);
|
| 210 |
-
border-radius: var(--r); padding: var(--s2) var(--s3); cursor: pointer; font: inherit; font-size: var(--f-1); font-weight: 550; transition: border-color 0.15s ease; }
|
| 211 |
-
.btn-ghost:hover { border-color: color-mix(in srgb, var(--holo-ink) 28%, transparent); }
|
| 212 |
-
|
| 213 |
-
.theme-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: var(--s4); }
|
| 214 |
-
.theme-card { border: 1px solid var(--line); border-radius: var(--rl); overflow: hidden; cursor: pointer;
|
| 215 |
-
transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease; }
|
| 216 |
-
.theme-card:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--holo-ink) 26%, transparent);
|
| 217 |
-
box-shadow: 0 12px 30px -12px color-mix(in srgb, var(--holo-bg) 75%, transparent); }
|
| 218 |
-
.theme-card.on { border-color: var(--holo-accent); box-shadow: 0 0 0 1px var(--holo-accent); }
|
| 219 |
-
.theme-preview { aspect-ratio: var(--phi); display: grid; place-items: center; padding: var(--s3); }
|
| 220 |
-
.theme-mini { width: 100%; height: 100%; border: 1px solid; border-radius: var(--r); display: flex; flex-direction: column; gap: var(--s2);
|
| 221 |
-
align-items: flex-start; justify-content: center; padding: var(--s3); }
|
| 222 |
-
.theme-pill { display: inline-grid; place-items: center; min-width: var(--s5); height: var(--s4); padding: 0 var(--s2);
|
| 223 |
-
border-radius: var(--rs); font-size: var(--f-1); font-weight: 700; }
|
| 224 |
-
.theme-bar { height: var(--s2); width: 70%; border-radius: 999px; }
|
| 225 |
-
.theme-bar.short { width: 45%; }
|
| 226 |
-
.theme-foot { display: flex; align-items: center; justify-content: space-between; gap: var(--s2); padding: var(--s3); border-top: 1px solid var(--line-soft); }
|
| 227 |
-
.theme-name { font-size: var(--f0); font-weight: 600; }
|
| 228 |
-
.theme-active { font-size: var(--f-1); font-weight: 650; color: var(--holo-accent); }
|
| 229 |
-
.theme-swatches { display: inline-flex; gap: var(--s1); }
|
| 230 |
-
.sw { width: var(--s4); height: var(--s4); border-radius: 999px; border: 1px solid var(--line); display: inline-block; }
|
| 231 |
-
|
| 232 |
-
/* ── appearance panel (Holo Control) — single-column "see & adjust" ──────── */
|
| 233 |
-
.appctl { max-width: 46rem; margin: 0 auto; }
|
| 234 |
-
.set { padding: var(--s4); }
|
| 235 |
-
.set-head { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
|
| 236 |
-
.set-label { font-size: var(--f1); font-weight: 700; letter-spacing: -0.01em; }
|
| 237 |
-
.set-val { display: inline-flex; align-items: center; gap: var(--s2); color: var(--holo-ink-dim); font-size: var(--f0);
|
| 238 |
-
font-variant-numeric: tabular-nums; }
|
| 239 |
-
.set-sw { width: var(--s4); height: var(--s4); border-radius: 999px; border: 1px solid var(--line); }
|
| 240 |
-
.set-body { margin-top: var(--s3); }
|
| 241 |
-
.set-row { display: flex; align-items: center; gap: var(--s3); }
|
| 242 |
-
.set-row .ap-color { width: 4rem; flex: 0 0 auto; }
|
| 243 |
-
.set-swatches { display: flex; gap: var(--s2); flex-wrap: wrap; }
|
| 244 |
-
.set-dot { width: var(--s4); height: var(--s4); border-radius: 999px; border: 2px solid var(--line); cursor: pointer; padding: 0;
|
| 245 |
-
transition: transform 0.12s ease; }
|
| 246 |
-
.set-dot:hover { transform: scale(1.18); }
|
| 247 |
-
.set-seg { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: var(--s1); padding: var(--s1);
|
| 248 |
-
background: var(--holo-bg); border: 1px solid var(--line); border-radius: var(--r); }
|
| 249 |
-
.set-seg button { border: 0; background: transparent; color: var(--holo-ink-dim); padding: var(--s2); border-radius: var(--rs);
|
| 250 |
-
cursor: pointer; font: inherit; font-size: var(--f-1); font-weight: 550; white-space: nowrap; transition: background 0.15s ease, color 0.15s ease; }
|
| 251 |
-
.set-seg button:hover { color: var(--holo-ink); }
|
| 252 |
-
.set-seg button.on { background: var(--holo-accent); color: var(--holo-accent-ink); font-weight: 650; }
|
| 253 |
-
.set-sample { margin-top: var(--s3); padding: var(--s3) var(--s4); background: var(--holo-bg); border: 1px solid var(--line-soft);
|
| 254 |
-
border-radius: var(--r); color: var(--holo-ink-dim); font-size: var(--f0); line-height: var(--lh); }
|
| 255 |
-
.sample-btn { border: 0; border-radius: var(--holo-radius, 12px); padding: var(--s2) var(--s4); font: inherit; font-weight: 650; cursor: default; }
|
| 256 |
-
.sample-chip { display: inline-block; padding: var(--s2) var(--s4); border: 1px solid var(--line); border-radius: var(--holo-radius, 12px); color: var(--holo-ink); }
|
| 257 |
-
|
| 258 |
-
.ap-preview { padding: var(--s3) var(--s4); }
|
| 259 |
-
.ap-preview-label { font-size: var(--f-1); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--holo-ink-dim); margin-bottom: var(--s2); }
|
| 260 |
-
.ap-preview-row { display: flex; flex-wrap: nowrap; gap: var(--s4); align-items: center; overflow-x: auto; overflow-y: hidden; padding-bottom: var(--s1); }
|
| 261 |
-
.ap-preview-row::-webkit-scrollbar { height: 6px; }
|
| 262 |
-
.ap-preview-row::-webkit-scrollbar-thumb { background: var(--line); border-radius: 999px; }
|
| 263 |
-
.ap-tile { flex: 0 0 auto; min-height: 2.8rem; display: grid; place-items: center; }
|
| 264 |
-
|
| 265 |
-
.ap-section { padding: var(--s4); }
|
| 266 |
-
.ap-section h3 { margin: 0 0 var(--s3); font-size: var(--f1); font-weight: 700; letter-spacing: -0.01em; }
|
| 267 |
-
.ap-desc { margin: 0 0 var(--s3); color: var(--holo-ink-dim); font-size: var(--f0); }
|
| 268 |
-
.ap-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: var(--s4); }
|
| 269 |
-
.ap-field { display: flex; flex-direction: column; gap: var(--s2); }
|
| 270 |
-
.ap-field > label { font-size: var(--f-1); font-weight: 650; color: var(--holo-ink-dim); }
|
| 271 |
-
.ap-hint { font-size: var(--f-1); color: var(--holo-ink-dim); }
|
| 272 |
-
.ap-seg { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: var(--s1); padding: var(--s1);
|
| 273 |
-
background: var(--holo-bg); border: 1px solid var(--line); border-radius: var(--r); }
|
| 274 |
-
.ap-seg button { border: 0; background: transparent; color: var(--holo-ink-dim); padding: var(--s2); border-radius: var(--rs);
|
| 275 |
-
cursor: pointer; font: inherit; font-size: var(--f-1); font-weight: 550; white-space: nowrap; transition: background 0.15s ease, color 0.15s ease; }
|
| 276 |
-
.ap-seg button:hover { color: var(--holo-ink); }
|
| 277 |
-
.ap-seg button.on { background: var(--holo-accent); color: var(--holo-accent-ink); font-weight: 650; }
|
| 278 |
-
.ap-color { width: 100%; height: var(--s5); border: 1px solid var(--line); border-radius: var(--r); background: var(--holo-bg); cursor: pointer; padding: 2px; }
|
| 279 |
-
.ap-range { width: 100%; accent-color: var(--holo-accent); }
|
| 280 |
-
.ap-select { width: 100%; min-height: var(--s5); background: var(--holo-bg); color: var(--holo-ink); border: 1px solid var(--line); border-radius: var(--r); padding: 0 var(--s2); font: inherit; }
|
| 281 |
-
.ap-adv-toggle { width: 100%; display: flex; align-items: center; justify-content: space-between; border: 0; background: transparent;
|
| 282 |
-
color: var(--holo-ink); cursor: pointer; font: inherit; font-size: var(--f1); font-weight: 700; padding: 0; }
|
| 283 |
-
.ap-chev { color: var(--holo-ink-dim); font-size: var(--f0); }
|
| 284 |
-
.theme-tag { font-size: var(--f-1); font-weight: 650; color: var(--holo-ink-dim); border: 1px solid var(--line-soft); border-radius: 999px; padding: 0 var(--s2); }
|
| 285 |
-
|
| 286 |
-
/* ── Holo Control — shadcn-create style: control-card rail + live demo ─────── */
|
| 287 |
-
.app.appearance { grid-template-columns: clamp(16rem, 22vw, 19rem) 1fr; }
|
| 288 |
-
.main-head.compact { padding: var(--s4) var(--s5) var(--s3); }
|
| 289 |
-
.main-head.compact h1 { font-size: var(--f2); }
|
| 290 |
-
|
| 291 |
-
.ctls { display: flex; flex-direction: column; gap: var(--s4); flex: 1; min-height: 0; overflow-y: auto; padding: var(--s1) var(--s2) var(--s4) 0; }
|
| 292 |
-
.ctls::-webkit-scrollbar { width: 8px; }
|
| 293 |
-
.ctls::-webkit-scrollbar-thumb { background: var(--line); border-radius: 999px; }
|
| 294 |
-
/* plain, always-visible labeled control rows */
|
| 295 |
-
.row { display: flex; flex-direction: column; gap: var(--s2); }
|
| 296 |
-
.row-label { font-size: var(--f-1); font-weight: 600; color: var(--holo-ink-dim); }
|
| 297 |
-
.theme-chips { display: flex; flex-wrap: wrap; gap: var(--s2); }
|
| 298 |
-
.theme-chip { display: inline-flex; align-items: center; gap: var(--s2); border: 1px solid var(--line); background: var(--holo-surface);
|
| 299 |
-
color: var(--holo-ink); border-radius: 999px; padding: var(--s1) var(--s3); cursor: pointer; font: inherit; font-size: var(--f-1); font-weight: 550; }
|
| 300 |
-
.theme-chip:hover { border-color: color-mix(in srgb, var(--holo-ink) 26%, transparent); }
|
| 301 |
-
.theme-chip.on { border-color: var(--holo-accent); background: color-mix(in srgb, var(--holo-accent) 16%, transparent); font-weight: 650; }
|
| 302 |
-
.chip-dot { width: 0.85rem; height: 0.85rem; border-radius: 999px; flex: 0 0 auto; }
|
| 303 |
-
.accent-row { display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap; }
|
| 304 |
-
.accent-row .ap-color { width: 3rem; height: 2.2rem; flex: 0 0 auto; padding: 2px; border: 1px solid var(--line); border-radius: var(--rs); background: var(--holo-bg); cursor: pointer; }
|
| 305 |
-
.row .ap-range { width: 100%; accent-color: var(--holo-accent); }
|
| 306 |
-
.row .ap-select { width: 100%; min-height: 2.4rem; background: var(--holo-bg); color: var(--holo-ink); border: 1px solid var(--line); border-radius: var(--rs); padding: 0 var(--s2); font: inherit; }
|
| 307 |
-
.ctl-card { border: 1px solid var(--line); border-radius: var(--r); background: var(--holo-surface); overflow: hidden; transition: border-color 0.15s ease; }
|
| 308 |
-
.ctl-card.open { border-color: color-mix(in srgb, var(--holo-ink) 24%, transparent); }
|
| 309 |
-
.ctl-head { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--s2);
|
| 310 |
-
padding: var(--s3); border: 0; background: transparent; color: var(--holo-ink); cursor: pointer; font: inherit; text-align: left; }
|
| 311 |
-
.ctl-tt { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
|
| 312 |
-
.ctl-label { font-size: var(--f-1); color: var(--holo-ink-dim); }
|
| 313 |
-
.ctl-value { font-size: var(--f0); font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
| 314 |
-
.ctl-ind { display: inline-flex; align-items: center; gap: var(--s2); flex: 0 0 auto; }
|
| 315 |
-
.ctl-dot { width: 1.05rem; height: 1.05rem; border-radius: 999px; border: 1px solid var(--line); display: inline-block; flex: 0 0 auto; }
|
| 316 |
-
.ctl-chev { color: var(--holo-ink-dim); transition: transform 0.15s ease; }
|
| 317 |
-
.ctl-card.open .ctl-chev { transform: rotate(90deg); }
|
| 318 |
-
.ctl-body { padding: 0 var(--s3) var(--s3); display: flex; flex-direction: column; gap: var(--s2); }
|
| 319 |
-
.ctl-body .ap-range { width: 100%; accent-color: var(--holo-accent); }
|
| 320 |
-
.ctl-body .ap-select { width: 100%; min-height: 2.2rem; background: var(--holo-bg); color: var(--holo-ink); border: 1px solid var(--line); border-radius: var(--rs); padding: 0 var(--s2); font: inherit; }
|
| 321 |
-
.ctl-seg { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: var(--s1); padding: var(--s1);
|
| 322 |
-
background: var(--holo-bg); border: 1px solid var(--line); border-radius: var(--rs); }
|
| 323 |
-
.ctl-seg button { border: 0; background: transparent; color: var(--holo-ink-dim); padding: var(--s2); border-radius: calc(var(--rs) - 2px);
|
| 324 |
-
cursor: pointer; font: inherit; font-size: var(--f-1); font-weight: 550; white-space: nowrap; transition: background 0.15s ease, color 0.15s ease; }
|
| 325 |
-
.ctl-seg button:hover { color: var(--holo-ink); }
|
| 326 |
-
.ctl-seg button.on { background: var(--holo-accent); color: var(--holo-accent-ink); font-weight: 650; }
|
| 327 |
-
.ctl-themes { display: flex; flex-direction: column; gap: 2px; }
|
| 328 |
-
.ctl-theme { display: flex; align-items: center; gap: var(--s2); border: 0; background: transparent; color: var(--holo-ink);
|
| 329 |
-
cursor: pointer; font: inherit; font-size: var(--f0); padding: var(--s2); border-radius: var(--rs); text-align: left; }
|
| 330 |
-
.ctl-theme:hover { background: var(--hover); }
|
| 331 |
-
.ctl-theme.on { background: color-mix(in srgb, var(--holo-accent) 16%, transparent); font-weight: 650; }
|
| 332 |
-
.ctl-accent { display: flex; align-items: center; gap: var(--s2); }
|
| 333 |
-
.ctl-accent .ap-color { width: 3rem; height: 2.2rem; flex: 0 0 auto; padding: 2px; border: 1px solid var(--line); border-radius: var(--rs); background: var(--holo-bg); cursor: pointer; }
|
| 334 |
-
.ctl-swatches { display: flex; gap: var(--s2); flex-wrap: wrap; }
|
| 335 |
-
.ctl-sw { width: 1.3rem; height: 1.3rem; border-radius: 999px; border: 1px solid var(--line); cursor: pointer; padding: 0; transition: transform 0.12s ease; }
|
| 336 |
-
.ctl-sw:hover { transform: scale(1.18); }
|
| 337 |
-
.ctl-actions { display: flex; gap: var(--s1); margin-top: var(--s2); }
|
| 338 |
-
.ctl-btn { flex: 1; border: 1px solid var(--line); background: var(--holo-surface); color: var(--holo-ink); border-radius: var(--rs);
|
| 339 |
-
padding: var(--s2); cursor: pointer; font: inherit; font-size: var(--f-1); font-weight: 550; display: inline-flex; align-items: center; justify-content: center; gap: var(--s1); }
|
| 340 |
-
.ctl-btn:hover { border-color: color-mix(in srgb, var(--holo-ink) 26%, transparent); }
|
| 341 |
-
.ctls .btn-primary { margin-top: var(--s2); }
|
| 342 |
-
|
| 343 |
-
.demo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(16.18rem, 1fr)); gap: var(--s4); align-content: start; }
|
| 344 |
-
.demo-card { border: 1px solid var(--line); border-radius: var(--rl); background: var(--holo-surface); padding: var(--s4);
|
| 345 |
-
display: flex; flex-direction: column; gap: var(--s3); min-height: 9rem; }
|
| 346 |
-
.demo-card.wide { grid-column: 1 / -1; }
|
| 347 |
-
.demo-card.wide .demo-body { min-height: 12rem; }
|
| 348 |
-
.demo-title { font-size: var(--f-1); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--holo-ink-dim); }
|
| 349 |
-
.demo-body { flex: 1; display: grid; place-items: center; overflow: hidden; min-height: 0; }
|
| 350 |
-
.demo-body > * { max-width: 100%; }
|
| 351 |
-
|
| 352 |
-
/* ── responsive ──────────────────────────────────────────────────────────── */
|
| 353 |
-
@media (max-width: 60rem) {
|
| 354 |
-
.app, .app.has-detail { grid-template-columns: 1fr; grid-template-rows: auto 1fr; overflow: auto; height: auto; min-height: 100vh; }
|
| 355 |
-
.rail { order: -1; }
|
| 356 |
-
.detail { position: fixed; inset: 0; z-index: 50; margin: var(--s3); }
|
| 357 |
-
}
|
| 358 |
-
|
| 359 |
-
/* ── daisyUI previews ──────────────────────────────────────────────────────────────────────────────
|
| 360 |
-
daisyUI components are class layers rendered against the vendored daisyui.css (not React modules).
|
| 361 |
-
data-theme on the stage switches daisyUI's own --color-* theme vars with the OS light/dark mode; the
|
| 362 |
-
mini variant scales busy components to fit the golden-ratio thumbnail without distorting the detail view. */
|
| 363 |
-
.daisy-stage { display: grid; place-items: center; width: 100%; gap: var(--s2); color: var(--color-base-content); }
|
| 364 |
-
.daisy-stage.mini { transform: scale(0.74); transform-origin: center; }
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:41d39f51c4b6c1a7d14f5a4e8727d6d57b41eea34d0b6a9574ba52936a4fb8e9
|
| 3 |
+
size 28855
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/70deeb235d7fea6700bf564cea4841fb7355e5c9c574cd1751e820e9d91e6639
CHANGED
|
@@ -1 +1,3 @@
|
|
| 1 |
-
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2ab35daf8a42577086ea94ed3b875b489a7b791b6b515b9e3fa47f38930c1e42
|
| 3 |
+
size 2647
|
b/70df938642c34d7be353028f673b4444a9930bad575f62e23e68b47e4762be2f
CHANGED
|
@@ -1,56 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
// BYTE-IDENTICAL to fully-resident, every block verified. Default-safe: no tiles → unchanged.
|
| 5 |
-
import { readFileSync, writeFileSync, mkdirSync, rmSync } from "node:fs";
|
| 6 |
-
import { performance } from "node:perf_hooks";
|
| 7 |
-
import { forgeGguf } from "./gguf-forge.mjs";
|
| 8 |
-
import { synthesizeGraph } from "./gguf-forge-graph.mjs";
|
| 9 |
-
import { forward, blockOf } from "./gguf-forge-exec.mjs";
|
| 10 |
-
import { sha256hex } from "../../../../holo-os/system/os/usr/lib/holo/holo-uor.mjs";
|
| 11 |
-
|
| 12 |
-
const MODEL = ".models/qwen2.5-0.5b-instruct-q4_k_m.gguf";
|
| 13 |
-
const SH = "C:/Users/pavel/AppData/Local/Temp/claude/C--Users-pavel-Desktop-HOLOGRAM/9be01320-de05-4b56-a1ab-35f38d512e16/scratchpad/_m14b";
|
| 14 |
-
const MiB = 1024 * 1024, hexOf = (k) => String(k).split(":").pop();
|
| 15 |
-
|
| 16 |
-
const f = forgeGguf(new Uint8Array(readFileSync(MODEL))); const graph = synthesizeGraph(f.plan);
|
| 17 |
-
const modelMiB = [...f.blocks.values()].reduce((a, b) => a + b.byteLength, 0) / MiB;
|
| 18 |
-
const rowBytesOf = (t) => t.typeName === "F32" ? t.dims[0] * 4 : t.typeName === "F16" ? t.dims[0] * 2 : (() => { const [be, bb] = blockOf(t.type); return (t.dims[0] / be) * bb; })();
|
| 19 |
-
|
| 20 |
-
rmSync(SH, { recursive: true, force: true }); mkdirSync(SH, { recursive: true });
|
| 21 |
-
const BIG = 8 * MiB, TILE_TARGET = 4 * MiB;
|
| 22 |
-
const opts_tiles = {};
|
| 23 |
-
let bigCount = 0;
|
| 24 |
-
for (const t of f.plan.tensors) {
|
| 25 |
-
const whole = f.blocks.get(hexOf(t.kappa));
|
| 26 |
-
if (t.nbytes > BIG && t.dims.length > 1) { // tile big matrices into row-tiles
|
| 27 |
-
bigCount++; const rb = rowBytesOf(t), N = t.dims[1], TR = Math.max(1, Math.floor(TILE_TARGET / rb));
|
| 28 |
-
const tiles = [];
|
| 29 |
-
for (let n0 = 0; n0 < N; n0 += TR) { const n1 = Math.min(n0 + TR, N); const b = whole.subarray(n0 * rb, n1 * rb); const hx = sha256hex(b); writeFileSync(`${SH}/${hx}.bin`, Buffer.from(b)); tiles.push({ kappa: "sha256:" + hx, n0, n1 }); }
|
| 30 |
-
opts_tiles[t.kappa] = tiles;
|
| 31 |
-
} else { const hx = hexOf(t.kappa); writeFileSync(`${SH}/${hx}.bin`, Buffer.from(whole)); } // small tensor: whole block
|
| 32 |
-
}
|
| 33 |
-
const largest = Math.max(...f.plan.tensors.map((t) => t.nbytes)) / MiB;
|
| 34 |
-
console.log(`model ${modelMiB.toFixed(0)} MiB · largest tensor ${largest.toFixed(0)} MiB (was the 12a floor) · tiled ${bigCount} big tensors into ~${(TILE_TARGET / MiB).toFixed(0)} MiB row-tiles`);
|
| 35 |
-
|
| 36 |
-
function streamStore(budgetBytes) {
|
| 37 |
-
const lru = new Map(); let resident = 0, peak = 0, streamed = 0, vf = 0;
|
| 38 |
-
return { get: (hex) => { if (lru.has(hex)) { const b = lru.get(hex); lru.delete(hex); lru.set(hex, b); return b; }
|
| 39 |
-
const b = new Uint8Array(readFileSync(`${SH}/${hex}.bin`)); streamed += b.byteLength; if (sha256hex(b) !== hex) { vf++; throw new Error("L5"); }
|
| 40 |
-
lru.set(hex, b); resident += b.byteLength; while (resident > budgetBytes && lru.size > 1) { const [k, v] = lru.entries().next().value; lru.delete(k); resident -= v.byteLength; } if (resident > peak) peak = resident; return b; },
|
| 41 |
-
stats: () => ({ peakMiB: peak / MiB, streamedMiB: streamed / MiB, vf }) };
|
| 42 |
-
}
|
| 43 |
-
const load = (st, k) => st.get(hexOf(k));
|
| 44 |
-
const logitsK = (l) => sha256hex(new Uint8Array(l.buffer, l.byteOffset, l.byteLength));
|
| 45 |
-
const tokens = [785, 6722, 374, 264];
|
| 46 |
-
|
| 47 |
-
const t0 = performance.now(); const full = forward(f.plan, graph, { get: (h) => f.blocks.get(h) }, tokens, { load }); const fullMs = performance.now() - t0;
|
| 48 |
-
for (const budgetMiB of [24, 12]) {
|
| 49 |
-
const ss = streamStore(budgetMiB * MiB);
|
| 50 |
-
const t1 = performance.now(); const tiled = forward(f.plan, graph, ss, tokens, { load, tiles: opts_tiles }); const ms = performance.now() - t1;
|
| 51 |
-
const s = ss.stats();
|
| 52 |
-
console.log(` budget ${String(budgetMiB).padStart(2)} MiB → peak resident ${s.peakMiB.toFixed(1).padStart(5)} MiB · streamed ${s.streamedMiB.toFixed(0)} MiB · ${ms.toFixed(0)}ms · ${logitsK(tiled) === logitsK(full) ? "BYTE-IDENTICAL ✓" : "MISMATCH ✗"} · verifyFail ${s.vf}`);
|
| 53 |
-
}
|
| 54 |
-
console.log(` RESIDENT (baseline) peak ${modelMiB.toFixed(0)} MiB · ${fullMs.toFixed(0)}ms`);
|
| 55 |
-
console.log(`\n14b: the IN-FORWARD floor dropped from ${largest.toFixed(0)} MiB (largest tensor) to the streaming budget — AUTOMATICALLY, byte-identical, verified. A ${modelMiB.toFixed(0)} MiB model now runs a full forward in ~tens of MiB resident. Honest: I/O-bound (streamed >> model); locality (14c) recovers throughput.`);
|
| 56 |
-
rmSync(SH, { recursive: true, force: true });
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:94ffabdda86ecc966a5f131d39f5c226f95367d93a72356ecedfe2a4b703cb64
|
| 3 |
+
size 4606
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/70e9358710b89224fbc73acbb1df4bd929689cc042a00b14ba4b70cf031e25a4
CHANGED
|
@@ -1,32 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
import {
|
| 5 |
-
Carousel,
|
| 6 |
-
CarouselContent,
|
| 7 |
-
CarouselItem,
|
| 8 |
-
CarouselNext,
|
| 9 |
-
CarouselPrevious,
|
| 10 |
-
} from "@/registry/new-york-v4/ui/carousel"
|
| 11 |
-
|
| 12 |
-
export default function CarouselDemo() {
|
| 13 |
-
return (
|
| 14 |
-
<Carousel className="w-full max-w-xs">
|
| 15 |
-
<CarouselContent>
|
| 16 |
-
{Array.from({ length: 5 }).map((_, index) => (
|
| 17 |
-
<CarouselItem key={index}>
|
| 18 |
-
<div className="p-1">
|
| 19 |
-
<Card>
|
| 20 |
-
<CardContent className="flex aspect-square items-center justify-center p-6">
|
| 21 |
-
<span className="text-4xl font-semibold">{index + 1}</span>
|
| 22 |
-
</CardContent>
|
| 23 |
-
</Card>
|
| 24 |
-
</div>
|
| 25 |
-
</CarouselItem>
|
| 26 |
-
))}
|
| 27 |
-
</CarouselContent>
|
| 28 |
-
<CarouselPrevious />
|
| 29 |
-
<CarouselNext />
|
| 30 |
-
</Carousel>
|
| 31 |
-
)
|
| 32 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ab0d6db53c82a6964bd7533d12b7d6cc986d72a85e65171fde9986d63f8aac4a
|
| 3 |
+
size 880
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/70ed7109dd66a32f3e0b81297b80f75364b6707a884f62f96a9ee14ce5420a74
CHANGED
|
@@ -1,36 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
ResizablePanelGroup,
|
| 5 |
-
} from "@/registry/new-york-v4/ui/resizable"
|
| 6 |
-
|
| 7 |
-
export default function ResizableDemo() {
|
| 8 |
-
return (
|
| 9 |
-
<ResizablePanelGroup
|
| 10 |
-
orientation="horizontal"
|
| 11 |
-
className="max-w-md rounded-lg border md:min-w-[450px]"
|
| 12 |
-
>
|
| 13 |
-
<ResizablePanel defaultSize="50%">
|
| 14 |
-
<div className="flex h-[200px] items-center justify-center p-6">
|
| 15 |
-
<span className="font-semibold">One</span>
|
| 16 |
-
</div>
|
| 17 |
-
</ResizablePanel>
|
| 18 |
-
<ResizableHandle withHandle />
|
| 19 |
-
<ResizablePanel defaultSize="50%">
|
| 20 |
-
<ResizablePanelGroup orientation="vertical">
|
| 21 |
-
<ResizablePanel defaultSize="25%">
|
| 22 |
-
<div className="flex h-full items-center justify-center p-6">
|
| 23 |
-
<span className="font-semibold">Two</span>
|
| 24 |
-
</div>
|
| 25 |
-
</ResizablePanel>
|
| 26 |
-
<ResizableHandle withHandle />
|
| 27 |
-
<ResizablePanel defaultSize="75%">
|
| 28 |
-
<div className="flex h-full items-center justify-center p-6">
|
| 29 |
-
<span className="font-semibold">Three</span>
|
| 30 |
-
</div>
|
| 31 |
-
</ResizablePanel>
|
| 32 |
-
</ResizablePanelGroup>
|
| 33 |
-
</ResizablePanel>
|
| 34 |
-
</ResizablePanelGroup>
|
| 35 |
-
)
|
| 36 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ed506483ca18bfa12c7bd44c4aa1bd6e1f46aeb9a4daa4c85a99f44e0f0fc0f5
|
| 3 |
+
size 1206
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/7113bcdb06feac4447b87fac11943024138a4c810ff7c5efa38fe6ac543e66fc
CHANGED
|
@@ -1,21 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
"tier": "component",
|
| 5 |
-
"library": "magicui",
|
| 6 |
-
"category": "Components",
|
| 7 |
-
"upstream": "https://magicui.design/r/bento-grid.json",
|
| 8 |
-
"did": "did:holo:sha256:9c2abcb2a4e51519e56d510299771a2d0e170ab9927a9a792a58614b1837ed47",
|
| 9 |
-
"import": "holo://sha256:406584e3de550d242625007ab4dac267ab96c77ce6b124fd4f0d7d7d20a0befb",
|
| 10 |
-
"integrity": "sha256-QGWE495VDSQmJQB6tNrCZ6uWx3zmsST9Tw19fSCgvvs=",
|
| 11 |
-
"kappa": "sha256:9c2abcb2a4e51519e56d510299771a2d0e170ab9927a9a792a58614b1837ed47",
|
| 12 |
-
"moduleKappa": "sha256:406584e3de550d242625007ab4dac267ab96c77ce6b124fd4f0d7d7d20a0befb",
|
| 13 |
-
"renderExport": "BentoCard",
|
| 14 |
-
"source": "components/ui/bento-grid.tsx",
|
| 15 |
-
"module": "vendor/components/bento-grid.js",
|
| 16 |
-
"exports": [
|
| 17 |
-
"BentoCard",
|
| 18 |
-
"BentoGrid"
|
| 19 |
-
],
|
| 20 |
-
"license": "MIT"
|
| 21 |
-
}
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:577e25a5a352a82386988152921c6feb46ef740226ca6db349ce7c5da455a0e0
|
| 3 |
+
size 828
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b/71980df7adeb081fdceea20e4cfb4cfa40f77e0662ce062ab62245dac55ffa5c
CHANGED
|
@@ -1 +1,3 @@
|
|
| 1 |
-
var eo=Object.defineProperty;var oo=(e,r)=>{for(var o in r)eo(e,o,{get:r[o],enumerable:!0})};import*as Ce from"react";import*as uo from"react-dom";import*as y from"react";import*as ke from"react";function we(e,r){if(typeof e=="function")return e(r);e!=null&&(e.current=r)}function ro(...e){return r=>{let o=!1,t=e.map(s=>{let l=we(s,r);return!o&&typeof l=="function"&&(o=!0),l});if(o)return()=>{for(let s=0;s<t.length;s++){let l=t[s];typeof l=="function"?l():we(e[s],null)}}}}function ve(...e){return ke.useCallback(ro(...e),e)}function Se(e){let r=y.forwardRef((o,t)=>{let{children:s,...l}=o,n=null,p=!1,f=[];Re(s)&&typeof Z=="function"&&(s=Z(s._payload)),y.Children.forEach(s,z=>{if(ao(z)){p=!0;let w=z,G="child"in w.props?w.props.child:w.props.children;Re(G)&&typeof Z=="function"&&(G=Z(G._payload)),n=so(w,G),f.push(n?.props?.children)}else f.push(z)}),n?n=y.cloneElement(n,void 0,f):!p&&y.Children.count(s)===1&&y.isValidElement(s)&&(n=s);let m=n?io(n):void 0,x=ve(t,m);if(!n){if(s||s===0)throw new Error(p?po(e):mo(e));return s}let g=no(l,n.props??{});return n.type!==y.Fragment&&(g.ref=t?x:m),y.cloneElement(n,g)});return r.displayName=`${e}.Slot`,r}var to=Symbol.for("radix.slottable");var so=(e,r)=>{if("child"in e.props){let o=e.props.child;return y.isValidElement(o)?y.cloneElement(o,void 0,e.props.children(o.props.children)):null}return y.isValidElement(r)?r:null};function no(e,r){let o={...r};for(let t in r){let s=e[t],l=r[t];/^on[A-Z]/.test(t)?s&&l?o[t]=(...p)=>{let f=l(...p);return s(...p),f}:s&&(o[t]=s):t==="style"?o[t]={...s,...l}:t==="className"&&(o[t]=[s,l].filter(Boolean).join(" "))}return{...e,...o}}function io(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o?e.props.ref:e.props.ref||e.ref)}function ao(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===to}var lo=Symbol.for("react.lazy");function Re(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===lo&&"_payload"in e&&co(e._payload)}function co(e){return typeof e=="object"&&e!==null&&"then"in e}var mo=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,po=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Z=y[" use ".trim().toString()];import{jsx as fo}from"react/jsx-runtime";var bo=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ze=bo.reduce((e,r)=>{let o=Se(`Primitive.${r}`),t=Ce.forwardRef((s,l)=>{let{asChild:n,...p}=s,f=n?o:r;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),fo(f,{...p,ref:l})});return t.displayName=`Primitive.${r}`,{...e,[r]:t}},{});var J={};oo(J,{Label:()=>ae,Root:()=>xo});import*as Ae from"react";import{jsx as go}from"react/jsx-runtime";var ho="Label",ae=Ae.forwardRef((e,r)=>go(ze.label,{...e,ref:r,onMouseDown:o=>{o.target.closest("button, input, select, textarea")||(e.onMouseDown?.(o),!o.defaultPrevented&&o.detail>1&&o.preventDefault())}}));ae.displayName=ho;var xo=ae;function Pe(e){var r,o,t="";if(typeof e=="string"||typeof e=="number")t+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(r=0;r<s;r++)e[r]&&(o=Pe(e[r]))&&(t&&(t+=" "),t+=o)}else for(o in e)e[o]&&(t&&(t+=" "),t+=o);return t}function Ge(){for(var e,r,o=0,t="",s=arguments.length;o<s;o++)(e=arguments[o])&&(r=Pe(e))&&(t&&(t+=" "),t+=r);return t}var yo=(e,r)=>{let o=new Array(e.length+r.length);for(let t=0;t<e.length;t++)o[t]=e[t];for(let t=0;t<r.length;t++)o[e.length+t]=r[t];return o},wo=(e,r)=>({classGroupId:e,validator:r}),_e=(e=new Map,r=null,o)=>({nextPart:e,validators:r,classGroupId:o}),ee="-",Me=[],ko="arbitrary..",vo=e=>{let r=So(e),{conflictingClassGroups:o,conflictingClassGroupModifiers:t}=e;return{getClassGroupId:n=>{if(n.startsWith("[")&&n.endsWith("]"))return Ro(n);let p=n.split(ee),f=p[0]===""&&p.length>1?1:0;return Oe(p,f,r)},getConflictingClassGroupIds:(n,p)=>{if(p){let f=t[n],m=o[n];return f?m?yo(m,f):f:m||Me}return o[n]||Me}}},Oe=(e,r,o)=>{if(e.length-r===0)return o.classGroupId;let s=e[r],l=o.nextPart.get(s);if(l){let m=Oe(e,r+1,l);if(m)return m}let n=o.validators;if(n===null)return;let p=r===0?e.join(ee):e.slice(r).join(ee),f=n.length;for(let m=0;m<f;m++){let x=n[m];if(x.validator(p))return x.classGroupId}},Ro=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{let r=e.slice(1,-1),o=r.indexOf(":"),t=r.slice(0,o);return t?ko+t:void 0})(),So=e=>{let{theme:r,classGroups:o}=e;return Co(o,r)},Co=(e,r)=>{let o=_e();for(let t in e){let s=e[t];de(s,o,t,r)}return o},de=(e,r,o,t)=>{let s=e.length;for(let l=0;l<s;l++){let n=e[l];zo(n,r,o,t)}},zo=(e,r,o,t)=>{if(typeof e=="string"){Ao(e,r,o);return}if(typeof e=="function"){Po(e,r,o,t);return}Go(e,r,o,t)},Ao=(e,r,o)=>{let t=e===""?r:Ve(r,e);t.classGroupId=o},Po=(e,r,o,t)=>{if(Mo(e)){de(e(t),r,o,t);return}r.validators===null&&(r.validators=[]),r.validators.push(wo(o,e))},Go=(e,r,o,t)=>{let s=Object.entries(e),l=s.length;for(let n=0;n<l;n++){let[p,f]=s[n];de(f,Ve(r,p),o,t)}},Ve=(e,r)=>{let o=e,t=r.split(ee),s=t.length;for(let l=0;l<s;l++){let n=t[l],p=o.nextPart.get(n);p||(p=_e(),o.nextPart.set(n,p)),o=p}return o},Mo=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,Io=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,o=Object.create(null),t=Object.create(null),s=(l,n)=>{o[l]=n,r++,r>e&&(r=0,t=o,o=Object.create(null))};return{get(l){let n=o[l];if(n!==void 0)return n;if((n=t[l])!==void 0)return s(l,n),n},set(l,n){l in o?o[l]=n:s(l,n)}}},ce="!",Ie=":",To=[],Te=(e,r,o,t,s)=>({modifiers:e,hasImportantModifier:r,baseClassName:o,maybePostfixModifierPosition:t,isExternal:s}),Lo=e=>{let{prefix:r,experimentalParseClassName:o}=e,t=s=>{let l=[],n=0,p=0,f=0,m,x=s.length;for(let R=0;R<x;R++){let A=s[R];if(n===0&&p===0){if(A===Ie){l.push(s.slice(f,R)),f=R+1;continue}if(A==="/"){m=R;continue}}A==="["?n++:A==="]"?n--:A==="("?p++:A===")"&&p--}let g=l.length===0?s:s.slice(f),z=g,w=!1;g.endsWith(ce)?(z=g.slice(0,-1),w=!0):g.startsWith(ce)&&(z=g.slice(1),w=!0);let G=m&&m>f?m-f:void 0;return Te(l,w,z,G)};if(r){let s=r+Ie,l=t;t=n=>n.startsWith(s)?l(n.slice(s.length)):Te(To,!1,n,void 0,!0)}if(o){let s=t;t=l=>o({className:l,parseClassName:s})}return t},Eo=e=>{let r=new Map;return e.orderSensitiveModifiers.forEach((o,t)=>{r.set(o,1e6+t)}),o=>{let t=[],s=[];for(let l=0;l<o.length;l++){let n=o[l],p=n[0]==="[",f=r.has(n);p||f?(s.length>0&&(s.sort(),t.push(...s),s=[]),t.push(n)):s.push(n)}return s.length>0&&(s.sort(),t.push(...s)),t}},No=e=>({cache:Io(e.cacheSize),parseClassName:Lo(e),sortModifiers:Eo(e),postfixLookupClassGroupIds:_o(e),...vo(e)}),_o=e=>{let r=Object.create(null),o=e.postfixLookupClassGroups;if(o)for(let t=0;t<o.length;t++)r[o[t]]=!0;return r},Oo=/\s+/,Vo=(e,r)=>{let{parseClassName:o,getClassGroupId:t,getConflictingClassGroupIds:s,sortModifiers:l,postfixLookupClassGroupIds:n}=r,p=[],f=e.trim().split(Oo),m="";for(let x=f.length-1;x>=0;x-=1){let g=f[x],{isExternal:z,modifiers:w,hasImportantModifier:G,baseClassName:R,maybePostfixModifierPosition:A}=o(g);if(z){m=g+(m.length>0?" "+m:m);continue}let N=!!A,S;if(N){let I=R.substring(0,A);S=t(I);let c=S&&n[S]?t(R):void 0;c&&c!==S&&(S=c,N=!1)}else S=t(R);if(!S){if(!N){m=g+(m.length>0?" "+m:m);continue}if(S=t(R),!S){m=g+(m.length>0?" "+m:m);continue}N=!1}let $=w.length===0?"":w.length===1?w[0]:l(w).join(":"),W=G?$+ce:$,F=W+S;if(p.indexOf(F)>-1)continue;p.push(F);let j=s(S,N);for(let I=0;I<j.length;++I){let c=j[I];p.push(W+c)}m=g+(m.length>0?" "+m:m)}return m},Wo=(...e)=>{let r=0,o,t,s="";for(;r<e.length;)(o=e[r++])&&(t=We(o))&&(s&&(s+=" "),s+=t);return s},We=e=>{if(typeof e=="string")return e;let r,o="";for(let t=0;t<e.length;t++)e[t]&&(r=We(e[t]))&&(o&&(o+=" "),o+=r);return o},Fo=(e,...r)=>{let o,t,s,l,n=f=>{let m=r.reduce((x,g)=>g(x),e());return o=No(m),t=o.cache.get,s=o.cache.set,l=p,p(f)},p=f=>{let m=t(f);if(m)return m;let x=Vo(f,o);return s(f,x),x};return l=n,(...f)=>l(Wo(...f))},jo=[],b=e=>{let r=o=>o[e]||jo;return r.isThemeGetter=!0,r},Fe=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,je=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Do=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,$o=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Bo=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Yo=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Uo=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ho=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,L=e=>Do.test(e),u=e=>!!e&&!Number.isNaN(Number(e)),M=e=>!!e&&Number.isInteger(Number(e)),le=e=>e.endsWith("%")&&u(e.slice(0,-1)),T=e=>$o.test(e),De=()=>!0,qo=e=>Bo.test(e)&&!Yo.test(e),me=()=>!1,Xo=e=>Uo.test(e),Zo=e=>Ho.test(e),Jo=e=>!i(e)&&!a(e),Qo=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),Ko=e=>E(e,Ye,me),i=e=>Fe.test(e),O=e=>E(e,Ue,qo),Le=e=>E(e,ar,u),er=e=>E(e,qe,De),or=e=>E(e,He,me),Ee=e=>E(e,$e,me),rr=e=>E(e,Be,Zo),Q=e=>E(e,Xe,Xo),a=e=>je.test(e),B=e=>V(e,Ue),tr=e=>V(e,He),Ne=e=>V(e,$e),sr=e=>V(e,Ye),nr=e=>V(e,Be),K=e=>V(e,Xe,!0),ir=e=>V(e,qe,!0),E=(e,r,o)=>{let t=Fe.exec(e);return t?t[1]?r(t[1]):o(t[2]):!1},V=(e,r,o=!1)=>{let t=je.exec(e);return t?t[1]?r(t[1]):o:!1},$e=e=>e==="position"||e==="percentage",Be=e=>e==="image"||e==="url",Ye=e=>e==="length"||e==="size"||e==="bg-size",Ue=e=>e==="length",ar=e=>e==="number",He=e=>e==="family-name",qe=e=>e==="number"||e==="weight",Xe=e=>e==="shadow";var lr=()=>{let e=b("color"),r=b("font"),o=b("text"),t=b("font-weight"),s=b("tracking"),l=b("leading"),n=b("breakpoint"),p=b("container"),f=b("spacing"),m=b("radius"),x=b("shadow"),g=b("inset-shadow"),z=b("text-shadow"),w=b("drop-shadow"),G=b("blur"),R=b("perspective"),A=b("aspect"),N=b("ease"),S=b("animate"),$=()=>["auto","avoid","all","avoid-page","page","left","right","column"],W=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],F=()=>[...W(),a,i],j=()=>["auto","hidden","clip","visible","scroll"],I=()=>["auto","contain","none"],c=()=>[a,i,f],C=()=>[L,"full","auto",...c()],pe=()=>[M,"none","subgrid",a,i],ue=()=>["auto",{span:["full",M,a,i]},M,a,i],Y=()=>[M,"auto",a,i],fe=()=>["auto","min","max","fr",a,i],re=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],D=()=>["start","end","center","stretch","center-safe","end-safe"],P=()=>["auto",...c()],_=()=>[L,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...c()],te=()=>[L,"screen","full","dvw","lvw","svw","min","max","fit",...c()],se=()=>[L,"screen","full","lh","dvh","lvh","svh","min","max","fit",...c()],d=()=>[e,a,i],be=()=>[...W(),Ne,Ee,{position:[a,i]}],ge=()=>["no-repeat",{repeat:["","x","y","space","round"]}],he=()=>["auto","cover","contain",sr,Ko,{size:[a,i]}],ne=()=>[le,B,O],k=()=>["","none","full",m,a,i],v=()=>["",u,B,O],U=()=>["solid","dashed","dotted","double"],xe=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],h=()=>[u,le,Ne,Ee],ye=()=>["","none",G,a,i],H=()=>["none",u,a,i],q=()=>["none",u,a,i],ie=()=>[u,a,i],X=()=>[L,"full",...c()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[T],breakpoint:[T],color:[De],container:[T],"drop-shadow":[T],ease:["in","out","in-out"],font:[Jo],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[T],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[T],shadow:[T],spacing:["px",u],text:[T],"text-shadow":[T],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",L,i,a,A]}],container:["container"],"container-type":[{"@container":["","normal","size",a,i]}],"container-named":[Qo],columns:[{columns:[u,i,a,p]}],"break-after":[{"break-after":$()}],"break-before":[{"break-before":$()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:F()}],overflow:[{overflow:j()}],"overflow-x":[{"overflow-x":j()}],"overflow-y":[{"overflow-y":j()}],overscroll:[{overscroll:I()}],"overscroll-x":[{"overscroll-x":I()}],"overscroll-y":[{"overscroll-y":I()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:C()}],"inset-x":[{"inset-x":C()}],"inset-y":[{"inset-y":C()}],start:[{"inset-s":C(),start:C()}],end:[{"inset-e":C(),end:C()}],"inset-bs":[{"inset-bs":C()}],"inset-be":[{"inset-be":C()}],top:[{top:C()}],right:[{right:C()}],bottom:[{bottom:C()}],left:[{left:C()}],visibility:["visible","invisible","collapse"],z:[{z:[M,"auto",a,i]}],basis:[{basis:[L,"full","auto",p,...c()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[u,L,"auto","initial","none",i]}],grow:[{grow:["",u,a,i]}],shrink:[{shrink:["",u,a,i]}],order:[{order:[M,"first","last","none",a,i]}],"grid-cols":[{"grid-cols":pe()}],"col-start-end":[{col:ue()}],"col-start":[{"col-start":Y()}],"col-end":[{"col-end":Y()}],"grid-rows":[{"grid-rows":pe()}],"row-start-end":[{row:ue()}],"row-start":[{"row-start":Y()}],"row-end":[{"row-end":Y()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":fe()}],"auto-rows":[{"auto-rows":fe()}],gap:[{gap:c()}],"gap-x":[{"gap-x":c()}],"gap-y":[{"gap-y":c()}],"justify-content":[{justify:[...re(),"normal"]}],"justify-items":[{"justify-items":[...D(),"normal"]}],"justify-self":[{"justify-self":["auto",...D()]}],"align-content":[{content:["normal",...re()]}],"align-items":[{items:[...D(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...D(),{baseline:["","last"]}]}],"place-content":[{"place-content":re()}],"place-items":[{"place-items":[...D(),"baseline"]}],"place-self":[{"place-self":["auto",...D()]}],p:[{p:c()}],px:[{px:c()}],py:[{py:c()}],ps:[{ps:c()}],pe:[{pe:c()}],pbs:[{pbs:c()}],pbe:[{pbe:c()}],pt:[{pt:c()}],pr:[{pr:c()}],pb:[{pb:c()}],pl:[{pl:c()}],m:[{m:P()}],mx:[{mx:P()}],my:[{my:P()}],ms:[{ms:P()}],me:[{me:P()}],mbs:[{mbs:P()}],mbe:[{mbe:P()}],mt:[{mt:P()}],mr:[{mr:P()}],mb:[{mb:P()}],ml:[{ml:P()}],"space-x":[{"space-x":c()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":c()}],"space-y-reverse":["space-y-reverse"],size:[{size:_()}],"inline-size":[{inline:["auto",...te()]}],"min-inline-size":[{"min-inline":["auto",...te()]}],"max-inline-size":[{"max-inline":["none",...te()]}],"block-size":[{block:["auto",...se()]}],"min-block-size":[{"min-block":["auto",...se()]}],"max-block-size":[{"max-block":["none",...se()]}],w:[{w:[p,"screen",..._()]}],"min-w":[{"min-w":[p,"screen","none",..._()]}],"max-w":[{"max-w":[p,"screen","none","prose",{screen:[n]},..._()]}],h:[{h:["screen","lh",..._()]}],"min-h":[{"min-h":["screen","lh","none",..._()]}],"max-h":[{"max-h":["screen","lh",..._()]}],"font-size":[{text:["base",o,B,O]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[t,ir,er]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",le,i]}],"font-family":[{font:[tr,or,r]}],"font-features":[{"font-features":[i]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[s,a,i]}],"line-clamp":[{"line-clamp":[u,"none",a,Le]}],leading:[{leading:[l,...c()]}],"list-image":[{"list-image":["none",a,i]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",a,i]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:d()}],"text-color":[{text:d()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...U(),"wavy"]}],"text-decoration-thickness":[{decoration:[u,"from-font","auto",a,O]}],"text-decoration-color":[{decoration:d()}],"underline-offset":[{"underline-offset":[u,"auto",a,i]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:c()}],"tab-size":[{tab:[M,a,i]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",a,i]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",a,i]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:be()}],"bg-repeat":[{bg:ge()}],"bg-size":[{bg:he()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},M,a,i],radial:["",a,i],conic:[M,a,i]},nr,rr]}],"bg-color":[{bg:d()}],"gradient-from-pos":[{from:ne()}],"gradient-via-pos":[{via:ne()}],"gradient-to-pos":[{to:ne()}],"gradient-from":[{from:d()}],"gradient-via":[{via:d()}],"gradient-to":[{to:d()}],rounded:[{rounded:k()}],"rounded-s":[{"rounded-s":k()}],"rounded-e":[{"rounded-e":k()}],"rounded-t":[{"rounded-t":k()}],"rounded-r":[{"rounded-r":k()}],"rounded-b":[{"rounded-b":k()}],"rounded-l":[{"rounded-l":k()}],"rounded-ss":[{"rounded-ss":k()}],"rounded-se":[{"rounded-se":k()}],"rounded-ee":[{"rounded-ee":k()}],"rounded-es":[{"rounded-es":k()}],"rounded-tl":[{"rounded-tl":k()}],"rounded-tr":[{"rounded-tr":k()}],"rounded-br":[{"rounded-br":k()}],"rounded-bl":[{"rounded-bl":k()}],"border-w":[{border:v()}],"border-w-x":[{"border-x":v()}],"border-w-y":[{"border-y":v()}],"border-w-s":[{"border-s":v()}],"border-w-e":[{"border-e":v()}],"border-w-bs":[{"border-bs":v()}],"border-w-be":[{"border-be":v()}],"border-w-t":[{"border-t":v()}],"border-w-r":[{"border-r":v()}],"border-w-b":[{"border-b":v()}],"border-w-l":[{"border-l":v()}],"divide-x":[{"divide-x":v()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":v()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...U(),"hidden","none"]}],"divide-style":[{divide:[...U(),"hidden","none"]}],"border-color":[{border:d()}],"border-color-x":[{"border-x":d()}],"border-color-y":[{"border-y":d()}],"border-color-s":[{"border-s":d()}],"border-color-e":[{"border-e":d()}],"border-color-bs":[{"border-bs":d()}],"border-color-be":[{"border-be":d()}],"border-color-t":[{"border-t":d()}],"border-color-r":[{"border-r":d()}],"border-color-b":[{"border-b":d()}],"border-color-l":[{"border-l":d()}],"divide-color":[{divide:d()}],"outline-style":[{outline:[...U(),"none","hidden"]}],"outline-offset":[{"outline-offset":[u,a,i]}],"outline-w":[{outline:["",u,B,O]}],"outline-color":[{outline:d()}],shadow:[{shadow:["","none",x,K,Q]}],"shadow-color":[{shadow:d()}],"inset-shadow":[{"inset-shadow":["none",g,K,Q]}],"inset-shadow-color":[{"inset-shadow":d()}],"ring-w":[{ring:v()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:d()}],"ring-offset-w":[{"ring-offset":[u,O]}],"ring-offset-color":[{"ring-offset":d()}],"inset-ring-w":[{"inset-ring":v()}],"inset-ring-color":[{"inset-ring":d()}],"text-shadow":[{"text-shadow":["none",z,K,Q]}],"text-shadow-color":[{"text-shadow":d()}],opacity:[{opacity:[u,a,i]}],"mix-blend":[{"mix-blend":[...xe(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":xe()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[u]}],"mask-image-linear-from-pos":[{"mask-linear-from":h()}],"mask-image-linear-to-pos":[{"mask-linear-to":h()}],"mask-image-linear-from-color":[{"mask-linear-from":d()}],"mask-image-linear-to-color":[{"mask-linear-to":d()}],"mask-image-t-from-pos":[{"mask-t-from":h()}],"mask-image-t-to-pos":[{"mask-t-to":h()}],"mask-image-t-from-color":[{"mask-t-from":d()}],"mask-image-t-to-color":[{"mask-t-to":d()}],"mask-image-r-from-pos":[{"mask-r-from":h()}],"mask-image-r-to-pos":[{"mask-r-to":h()}],"mask-image-r-from-color":[{"mask-r-from":d()}],"mask-image-r-to-color":[{"mask-r-to":d()}],"mask-image-b-from-pos":[{"mask-b-from":h()}],"mask-image-b-to-pos":[{"mask-b-to":h()}],"mask-image-b-from-color":[{"mask-b-from":d()}],"mask-image-b-to-color":[{"mask-b-to":d()}],"mask-image-l-from-pos":[{"mask-l-from":h()}],"mask-image-l-to-pos":[{"mask-l-to":h()}],"mask-image-l-from-color":[{"mask-l-from":d()}],"mask-image-l-to-color":[{"mask-l-to":d()}],"mask-image-x-from-pos":[{"mask-x-from":h()}],"mask-image-x-to-pos":[{"mask-x-to":h()}],"mask-image-x-from-color":[{"mask-x-from":d()}],"mask-image-x-to-color":[{"mask-x-to":d()}],"mask-image-y-from-pos":[{"mask-y-from":h()}],"mask-image-y-to-pos":[{"mask-y-to":h()}],"mask-image-y-from-color":[{"mask-y-from":d()}],"mask-image-y-to-color":[{"mask-y-to":d()}],"mask-image-radial":[{"mask-radial":[a,i]}],"mask-image-radial-from-pos":[{"mask-radial-from":h()}],"mask-image-radial-to-pos":[{"mask-radial-to":h()}],"mask-image-radial-from-color":[{"mask-radial-from":d()}],"mask-image-radial-to-color":[{"mask-radial-to":d()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":W()}],"mask-image-conic-pos":[{"mask-conic":[u]}],"mask-image-conic-from-pos":[{"mask-conic-from":h()}],"mask-image-conic-to-pos":[{"mask-conic-to":h()}],"mask-image-conic-from-color":[{"mask-conic-from":d()}],"mask-image-conic-to-color":[{"mask-conic-to":d()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:be()}],"mask-repeat":[{mask:ge()}],"mask-size":[{mask:he()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",a,i]}],filter:[{filter:["","none",a,i]}],blur:[{blur:ye()}],brightness:[{brightness:[u,a,i]}],contrast:[{contrast:[u,a,i]}],"drop-shadow":[{"drop-shadow":["","none",w,K,Q]}],"drop-shadow-color":[{"drop-shadow":d()}],grayscale:[{grayscale:["",u,a,i]}],"hue-rotate":[{"hue-rotate":[u,a,i]}],invert:[{invert:["",u,a,i]}],saturate:[{saturate:[u,a,i]}],sepia:[{sepia:["",u,a,i]}],"backdrop-filter":[{"backdrop-filter":["","none",a,i]}],"backdrop-blur":[{"backdrop-blur":ye()}],"backdrop-brightness":[{"backdrop-brightness":[u,a,i]}],"backdrop-contrast":[{"backdrop-contrast":[u,a,i]}],"backdrop-grayscale":[{"backdrop-grayscale":["",u,a,i]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u,a,i]}],"backdrop-invert":[{"backdrop-invert":["",u,a,i]}],"backdrop-opacity":[{"backdrop-opacity":[u,a,i]}],"backdrop-saturate":[{"backdrop-saturate":[u,a,i]}],"backdrop-sepia":[{"backdrop-sepia":["",u,a,i]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":c()}],"border-spacing-x":[{"border-spacing-x":c()}],"border-spacing-y":[{"border-spacing-y":c()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",a,i]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[u,"initial",a,i]}],ease:[{ease:["linear","initial",N,a,i]}],delay:[{delay:[u,a,i]}],animate:[{animate:["none",S,a,i]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[R,a,i]}],"perspective-origin":[{"perspective-origin":F()}],rotate:[{rotate:H()}],"rotate-x":[{"rotate-x":H()}],"rotate-y":[{"rotate-y":H()}],"rotate-z":[{"rotate-z":H()}],scale:[{scale:q()}],"scale-x":[{"scale-x":q()}],"scale-y":[{"scale-y":q()}],"scale-z":[{"scale-z":q()}],"scale-3d":["scale-3d"],skew:[{skew:ie()}],"skew-x":[{"skew-x":ie()}],"skew-y":[{"skew-y":ie()}],transform:[{transform:[a,i,"","none","gpu","cpu"]}],"transform-origin":[{origin:F()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:X()}],"translate-x":[{"translate-x":X()}],"translate-y":[{"translate-y":X()}],"translate-z":[{"translate-z":X()}],"translate-none":["translate-none"],zoom:[{zoom:[M,a,i]}],accent:[{accent:d()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:d()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",a,i]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":d()}],"scrollbar-track-color":[{"scrollbar-track":d()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":c()}],"scroll-mx":[{"scroll-mx":c()}],"scroll-my":[{"scroll-my":c()}],"scroll-ms":[{"scroll-ms":c()}],"scroll-me":[{"scroll-me":c()}],"scroll-mbs":[{"scroll-mbs":c()}],"scroll-mbe":[{"scroll-mbe":c()}],"scroll-mt":[{"scroll-mt":c()}],"scroll-mr":[{"scroll-mr":c()}],"scroll-mb":[{"scroll-mb":c()}],"scroll-ml":[{"scroll-ml":c()}],"scroll-p":[{"scroll-p":c()}],"scroll-px":[{"scroll-px":c()}],"scroll-py":[{"scroll-py":c()}],"scroll-ps":[{"scroll-ps":c()}],"scroll-pe":[{"scroll-pe":c()}],"scroll-pbs":[{"scroll-pbs":c()}],"scroll-pbe":[{"scroll-pbe":c()}],"scroll-pt":[{"scroll-pt":c()}],"scroll-pr":[{"scroll-pr":c()}],"scroll-pb":[{"scroll-pb":c()}],"scroll-pl":[{"scroll-pl":c()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",a,i]}],fill:[{fill:["none",...d()]}],"stroke-w":[{stroke:[u,B,O,Le]}],stroke:[{stroke:["none",...d()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}};var Ze=Fo(lr);function oe(...e){return Ze(Ge(e))}import{jsx as cr}from"react/jsx-runtime";function Je({className:e,...r}){return cr(J.Root,{"data-slot":"label",className:oe("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...r})}import{jsx as dr}from"react/jsx-runtime";function Qe({className:e,...r}){return dr("textarea",{"data-slot":"textarea",className:oe("flex field-sizing-content min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40",e),...r})}import{jsx as Ke,jsxs as pr}from"react/jsx-runtime";function mr(){return pr("div",{className:"grid w-full gap-3",children:[Ke(Je,{htmlFor:"message",children:"Your message"}),Ke(Qe,{placeholder:"Type your message here.",id:"message"})]})}export{mr as default};
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:bd58b32ff99fe2e9c19ecc53ec7554b260a41e8b59d1a4143a5eac7f0fc0a5c5
|
| 3 |
+
size 31811
|