zero-ai-ui-lib 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,8 @@
1
+ "use strict";const re=require("./_commonjsHelpers-DwGv2jUC.cjs");function oe(r,o){for(var i=0;i<o.length;i++){const e=o[i];if(typeof e!="string"&&!Array.isArray(e)){for(const t in e)if(t!=="default"&&!(t in r)){const n=Object.getOwnPropertyDescriptor(e,t);n&&Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var z={},Q,Bt;function ie(){return Bt||(Bt=1,Q=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}),Q}var $={},_={},At;function U(){if(At)return _;At=1;let r;const o=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];return _.getSymbolSize=function(e){if(!e)throw new Error('"version" cannot be null or undefined');if(e<1||e>40)throw new Error('"version" should be in range from 1 to 40');return e*4+17},_.getSymbolTotalCodewords=function(e){return o[e]},_.getBCHDigit=function(i){let e=0;for(;i!==0;)e++,i>>>=1;return e},_.setToSJISFunction=function(e){if(typeof e!="function")throw new Error('"toSJISFunc" is not a valid function.');r=e},_.isKanjiModeEnabled=function(){return typeof r<"u"},_.toSJIS=function(e){return r(e)},_}var W={},Rt;function yt(){return Rt||(Rt=1,function(r){r.L={bit:1},r.M={bit:0},r.Q={bit:3},r.H={bit:2};function o(i){if(typeof i!="string")throw new Error("Param is not a string");switch(i.toLowerCase()){case"l":case"low":return r.L;case"m":case"medium":return r.M;case"q":case"quartile":return r.Q;case"h":case"high":return r.H;default:throw new Error("Unknown EC Level: "+i)}}r.isValid=function(e){return e&&typeof e.bit<"u"&&e.bit>=0&&e.bit<4},r.from=function(e,t){if(r.isValid(e))return e;try{return o(e)}catch{return t}}}(W)),W}var Z,Tt;function se(){if(Tt)return Z;Tt=1;function r(){this.buffer=[],this.length=0}return r.prototype={get:function(o){const i=Math.floor(o/8);return(this.buffer[i]>>>7-o%8&1)===1},put:function(o,i){for(let e=0;e<i;e++)this.putBit((o>>>i-e-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(o){const i=Math.floor(this.length/8);this.buffer.length<=i&&this.buffer.push(0),o&&(this.buffer[i]|=128>>>this.length%8),this.length++}},Z=r,Z}var X,It;function ue(){if(It)return X;It=1;function r(o){if(!o||o<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=o,this.data=new Uint8Array(o*o),this.reservedBit=new Uint8Array(o*o)}return r.prototype.set=function(o,i,e,t){const n=o*this.size+i;this.data[n]=e,t&&(this.reservedBit[n]=!0)},r.prototype.get=function(o,i){return this.data[o*this.size+i]},r.prototype.xor=function(o,i,e){this.data[o*this.size+i]^=e},r.prototype.isReserved=function(o,i){return this.reservedBit[o*this.size+i]},X=r,X}var x={},Nt;function ae(){return Nt||(Nt=1,function(r){const o=U().getSymbolSize;r.getRowColCoords=function(e){if(e===1)return[];const t=Math.floor(e/7)+2,n=o(e),s=n===145?26:Math.ceil((n-13)/(2*t-2))*2,a=[n-7];for(let u=1;u<t-1;u++)a[u]=a[u-1]-s;return a.push(6),a.reverse()},r.getPositions=function(e){const t=[],n=r.getRowColCoords(e),s=n.length;for(let a=0;a<s;a++)for(let u=0;u<s;u++)a===0&&u===0||a===0&&u===s-1||a===s-1&&u===0||t.push([n[a],n[u]]);return t}}(x)),x}var tt={},Pt;function ce(){if(Pt)return tt;Pt=1;const r=U().getSymbolSize,o=7;return tt.getPositions=function(e){const t=r(e);return[[0,0],[t-o,0],[0,t-o]]},tt}var et={},Mt;function fe(){return Mt||(Mt=1,function(r){r.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};const o={N1:3,N2:3,N3:40,N4:10};r.isValid=function(t){return t!=null&&t!==""&&!isNaN(t)&&t>=0&&t<=7},r.from=function(t){return r.isValid(t)?parseInt(t,10):void 0},r.getPenaltyN1=function(t){const n=t.size;let s=0,a=0,u=0,c=null,d=null;for(let p=0;p<n;p++){a=u=0,c=d=null;for(let h=0;h<n;h++){let f=t.get(p,h);f===c?a++:(a>=5&&(s+=o.N1+(a-5)),c=f,a=1),f=t.get(h,p),f===d?u++:(u>=5&&(s+=o.N1+(u-5)),d=f,u=1)}a>=5&&(s+=o.N1+(a-5)),u>=5&&(s+=o.N1+(u-5))}return s},r.getPenaltyN2=function(t){const n=t.size;let s=0;for(let a=0;a<n-1;a++)for(let u=0;u<n-1;u++){const c=t.get(a,u)+t.get(a,u+1)+t.get(a+1,u)+t.get(a+1,u+1);(c===4||c===0)&&s++}return s*o.N2},r.getPenaltyN3=function(t){const n=t.size;let s=0,a=0,u=0;for(let c=0;c<n;c++){a=u=0;for(let d=0;d<n;d++)a=a<<1&2047|t.get(c,d),d>=10&&(a===1488||a===93)&&s++,u=u<<1&2047|t.get(d,c),d>=10&&(u===1488||u===93)&&s++}return s*o.N3},r.getPenaltyN4=function(t){let n=0;const s=t.data.length;for(let u=0;u<s;u++)n+=t.data[u];return Math.abs(Math.ceil(n*100/s/5)-10)*o.N4};function i(e,t,n){switch(e){case r.Patterns.PATTERN000:return(t+n)%2===0;case r.Patterns.PATTERN001:return t%2===0;case r.Patterns.PATTERN010:return n%3===0;case r.Patterns.PATTERN011:return(t+n)%3===0;case r.Patterns.PATTERN100:return(Math.floor(t/2)+Math.floor(n/3))%2===0;case r.Patterns.PATTERN101:return t*n%2+t*n%3===0;case r.Patterns.PATTERN110:return(t*n%2+t*n%3)%2===0;case r.Patterns.PATTERN111:return(t*n%3+(t+n)%2)%2===0;default:throw new Error("bad maskPattern:"+e)}}r.applyMask=function(t,n){const s=n.size;for(let a=0;a<s;a++)for(let u=0;u<s;u++)n.isReserved(u,a)||n.xor(u,a,i(t,u,a))},r.getBestMask=function(t,n){const s=Object.keys(r.Patterns).length;let a=0,u=1/0;for(let c=0;c<s;c++){n(c),r.applyMask(c,t);const d=r.getPenaltyN1(t)+r.getPenaltyN2(t)+r.getPenaltyN3(t)+r.getPenaltyN4(t);r.applyMask(c,t),d<u&&(u=d,a=c)}return a}}(et)),et}var j={},St;function $t(){if(St)return j;St=1;const r=yt(),o=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],i=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];return j.getBlocksCount=function(t,n){switch(n){case r.L:return o[(t-1)*4+0];case r.M:return o[(t-1)*4+1];case r.Q:return o[(t-1)*4+2];case r.H:return o[(t-1)*4+3];default:return}},j.getTotalCodewordsCount=function(t,n){switch(n){case r.L:return i[(t-1)*4+0];case r.M:return i[(t-1)*4+1];case r.Q:return i[(t-1)*4+2];case r.H:return i[(t-1)*4+3];default:return}},j}var nt={},H={},bt;function le(){if(bt)return H;bt=1;const r=new Uint8Array(512),o=new Uint8Array(256);return function(){let e=1;for(let t=0;t<255;t++)r[t]=e,o[e]=t,e<<=1,e&256&&(e^=285);for(let t=255;t<512;t++)r[t]=r[t-255]}(),H.log=function(e){if(e<1)throw new Error("log("+e+")");return o[e]},H.exp=function(e){return r[e]},H.mul=function(e,t){return e===0||t===0?0:r[o[e]+o[t]]},H}var Lt;function de(){return Lt||(Lt=1,function(r){const o=le();r.mul=function(e,t){const n=new Uint8Array(e.length+t.length-1);for(let s=0;s<e.length;s++)for(let a=0;a<t.length;a++)n[s+a]^=o.mul(e[s],t[a]);return n},r.mod=function(e,t){let n=new Uint8Array(e);for(;n.length-t.length>=0;){const s=n[0];for(let u=0;u<t.length;u++)n[u]^=o.mul(t[u],s);let a=0;for(;a<n.length&&n[a]===0;)a++;n=n.slice(a)}return n},r.generateECPolynomial=function(e){let t=new Uint8Array([1]);for(let n=0;n<e;n++)t=r.mul(t,new Uint8Array([1,o.exp(n)]));return t}}(nt)),nt}var rt,Dt;function ge(){if(Dt)return rt;Dt=1;const r=de();function o(i){this.genPoly=void 0,this.degree=i,this.degree&&this.initialize(this.degree)}return o.prototype.initialize=function(e){this.degree=e,this.genPoly=r.generateECPolynomial(this.degree)},o.prototype.encode=function(e){if(!this.genPoly)throw new Error("Encoder not initialized");const t=new Uint8Array(e.length+this.degree);t.set(e);const n=r.mod(t,this.genPoly),s=this.degree-n.length;if(s>0){const a=new Uint8Array(this.degree);return a.set(n,s),a}return n},rt=o,rt}var ot={},it={},st={},qt;function Wt(){return qt||(qt=1,st.isValid=function(o){return!isNaN(o)&&o>=1&&o<=40}),st}var L={},vt;function Zt(){if(vt)return L;vt=1;const r="[0-9]+",o="[A-Z $%*+\\-./:]+";let i="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";i=i.replace(/u/g,"\\u");const e="(?:(?![A-Z0-9 $%*+\\-./:]|"+i+`)(?:.|[\r
2
+ ]))+`;L.KANJI=new RegExp(i,"g"),L.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),L.BYTE=new RegExp(e,"g"),L.NUMERIC=new RegExp(r,"g"),L.ALPHANUMERIC=new RegExp(o,"g");const t=new RegExp("^"+i+"$"),n=new RegExp("^"+r+"$"),s=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");return L.testKanji=function(u){return t.test(u)},L.testNumeric=function(u){return n.test(u)},L.testAlphanumeric=function(u){return s.test(u)},L}var _t;function F(){return _t||(_t=1,function(r){const o=Wt(),i=Zt();r.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},r.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},r.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},r.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},r.MIXED={bit:-1},r.getCharCountIndicator=function(n,s){if(!n.ccBits)throw new Error("Invalid mode: "+n);if(!o.isValid(s))throw new Error("Invalid version: "+s);return s>=1&&s<10?n.ccBits[0]:s<27?n.ccBits[1]:n.ccBits[2]},r.getBestModeForData=function(n){return i.testNumeric(n)?r.NUMERIC:i.testAlphanumeric(n)?r.ALPHANUMERIC:i.testKanji(n)?r.KANJI:r.BYTE},r.toString=function(n){if(n&&n.id)return n.id;throw new Error("Invalid mode")},r.isValid=function(n){return n&&n.bit&&n.ccBits};function e(t){if(typeof t!="string")throw new Error("Param is not a string");switch(t.toLowerCase()){case"numeric":return r.NUMERIC;case"alphanumeric":return r.ALPHANUMERIC;case"kanji":return r.KANJI;case"byte":return r.BYTE;default:throw new Error("Unknown mode: "+t)}}r.from=function(n,s){if(r.isValid(n))return n;try{return e(n)}catch{return s}}}(it)),it}var Ut;function he(){return Ut||(Ut=1,function(r){const o=U(),i=$t(),e=yt(),t=F(),n=Wt(),s=7973,a=o.getBCHDigit(s);function u(h,f,N){for(let P=1;P<=40;P++)if(f<=r.getCapacity(P,N,h))return P}function c(h,f){return t.getCharCountIndicator(h,f)+4}function d(h,f){let N=0;return h.forEach(function(P){const S=c(P.mode,f);N+=S+P.getBitsLength()}),N}function p(h,f){for(let N=1;N<=40;N++)if(d(h,N)<=r.getCapacity(N,f,t.MIXED))return N}r.from=function(f,N){return n.isValid(f)?parseInt(f,10):N},r.getCapacity=function(f,N,P){if(!n.isValid(f))throw new Error("Invalid QR Code version");typeof P>"u"&&(P=t.BYTE);const S=o.getSymbolTotalCodewords(f),R=i.getTotalCodewordsCount(f,N),M=(S-R)*8;if(P===t.MIXED)return M;const T=M-c(P,f);switch(P){case t.NUMERIC:return Math.floor(T/10*3);case t.ALPHANUMERIC:return Math.floor(T/11*2);case t.KANJI:return Math.floor(T/13);case t.BYTE:default:return Math.floor(T/8)}},r.getBestVersionForData=function(f,N){let P;const S=e.from(N,e.M);if(Array.isArray(f)){if(f.length>1)return p(f,S);if(f.length===0)return 1;P=f[0]}else P=f;return u(P.mode,P.getLength(),S)},r.getEncodedBits=function(f){if(!n.isValid(f)||f<7)throw new Error("Invalid QR Code version");let N=f<<12;for(;o.getBCHDigit(N)-a>=0;)N^=s<<o.getBCHDigit(N)-a;return f<<12|N}}(ot)),ot}var ut={},Ft;function me(){if(Ft)return ut;Ft=1;const r=U(),o=1335,i=21522,e=r.getBCHDigit(o);return ut.getEncodedBits=function(n,s){const a=n.bit<<3|s;let u=a<<10;for(;r.getBCHDigit(u)-e>=0;)u^=o<<r.getBCHDigit(u)-e;return(a<<10|u)^i},ut}var at={},ct,kt;function we(){if(kt)return ct;kt=1;const r=F();function o(i){this.mode=r.NUMERIC,this.data=i.toString()}return o.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)},o.prototype.getLength=function(){return this.data.length},o.prototype.getBitsLength=function(){return o.getBitsLength(this.data.length)},o.prototype.write=function(e){let t,n,s;for(t=0;t+3<=this.data.length;t+=3)n=this.data.substr(t,3),s=parseInt(n,10),e.put(s,10);const a=this.data.length-t;a>0&&(n=this.data.substr(t),s=parseInt(n,10),e.put(s,a*3+1))},ct=o,ct}var ft,zt;function ye(){if(zt)return ft;zt=1;const r=F(),o=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function i(e){this.mode=r.ALPHANUMERIC,this.data=e}return i.getBitsLength=function(t){return 11*Math.floor(t/2)+6*(t%2)},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(t){let n;for(n=0;n+2<=this.data.length;n+=2){let s=o.indexOf(this.data[n])*45;s+=o.indexOf(this.data[n+1]),t.put(s,11)}this.data.length%2&&t.put(o.indexOf(this.data[n]),6)},ft=i,ft}var lt,Vt;function Ce(){if(Vt)return lt;Vt=1;const r=F();function o(i){this.mode=r.BYTE,typeof i=="string"?this.data=new TextEncoder().encode(i):this.data=new Uint8Array(i)}return o.getBitsLength=function(e){return e*8},o.prototype.getLength=function(){return this.data.length},o.prototype.getBitsLength=function(){return o.getBitsLength(this.data.length)},o.prototype.write=function(i){for(let e=0,t=this.data.length;e<t;e++)i.put(this.data[e],8)},lt=o,lt}var dt,Ht;function Ee(){if(Ht)return dt;Ht=1;const r=F(),o=U();function i(e){this.mode=r.KANJI,this.data=e}return i.getBitsLength=function(t){return t*13},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t<this.data.length;t++){let n=o.toSJIS(this.data[t]);if(n>=33088&&n<=40956)n-=33088;else if(n>=57408&&n<=60351)n-=49472;else throw new Error("Invalid SJIS character: "+this.data[t]+`
3
+ Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),e.put(n,13)}},dt=i,dt}var gt={exports:{}},Kt;function pe(){return Kt||(Kt=1,function(r){var o={single_source_shortest_paths:function(i,e,t){var n={},s={};s[e]=0;var a=o.PriorityQueue.make();a.push(e,0);for(var u,c,d,p,h,f,N,P,S;!a.empty();){u=a.pop(),c=u.value,p=u.cost,h=i[c]||{};for(d in h)h.hasOwnProperty(d)&&(f=h[d],N=p+f,P=s[d],S=typeof s[d]>"u",(S||P>N)&&(s[d]=N,a.push(d,N),n[d]=c))}if(typeof t<"u"&&typeof s[t]>"u"){var R=["Could not find a path from ",e," to ",t,"."].join("");throw new Error(R)}return n},extract_shortest_path_from_predecessor_list:function(i,e){for(var t=[],n=e;n;)t.push(n),i[n],n=i[n];return t.reverse(),t},find_path:function(i,e,t){var n=o.single_source_shortest_paths(i,e,t);return o.extract_shortest_path_from_predecessor_list(n,t)},PriorityQueue:{make:function(i){var e=o.PriorityQueue,t={},n;i=i||{};for(n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t.queue=[],t.sorter=i.sorter||e.default_sorter,t},default_sorter:function(i,e){return i.cost-e.cost},push:function(i,e){var t={value:i,cost:e};this.queue.push(t),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};r.exports=o}(gt)),gt.exports}var jt;function Be(){return jt||(jt=1,function(r){const o=F(),i=we(),e=ye(),t=Ce(),n=Ee(),s=Zt(),a=U(),u=pe();function c(R){return unescape(encodeURIComponent(R)).length}function d(R,M,T){const B=[];let b;for(;(b=R.exec(T))!==null;)B.push({data:b[0],index:b.index,mode:M,length:b[0].length});return B}function p(R){const M=d(s.NUMERIC,o.NUMERIC,R),T=d(s.ALPHANUMERIC,o.ALPHANUMERIC,R);let B,b;return a.isKanjiModeEnabled()?(B=d(s.BYTE,o.BYTE,R),b=d(s.KANJI,o.KANJI,R)):(B=d(s.BYTE_KANJI,o.BYTE,R),b=[]),M.concat(T,B,b).sort(function(C,y){return C.index-y.index}).map(function(C){return{data:C.data,mode:C.mode,length:C.length}})}function h(R,M){switch(M){case o.NUMERIC:return i.getBitsLength(R);case o.ALPHANUMERIC:return e.getBitsLength(R);case o.KANJI:return n.getBitsLength(R);case o.BYTE:return t.getBitsLength(R)}}function f(R){return R.reduce(function(M,T){const B=M.length-1>=0?M[M.length-1]:null;return B&&B.mode===T.mode?(M[M.length-1].data+=T.data,M):(M.push(T),M)},[])}function N(R){const M=[];for(let T=0;T<R.length;T++){const B=R[T];switch(B.mode){case o.NUMERIC:M.push([B,{data:B.data,mode:o.ALPHANUMERIC,length:B.length},{data:B.data,mode:o.BYTE,length:B.length}]);break;case o.ALPHANUMERIC:M.push([B,{data:B.data,mode:o.BYTE,length:B.length}]);break;case o.KANJI:M.push([B,{data:B.data,mode:o.BYTE,length:c(B.data)}]);break;case o.BYTE:M.push([{data:B.data,mode:o.BYTE,length:c(B.data)}])}}return M}function P(R,M){const T={},B={start:{}};let b=["start"];for(let g=0;g<R.length;g++){const C=R[g],y=[];for(let l=0;l<C.length;l++){const A=C[l],m=""+g+l;y.push(m),T[m]={node:A,lastCount:0},B[m]={};for(let E=0;E<b.length;E++){const w=b[E];T[w]&&T[w].node.mode===A.mode?(B[w][m]=h(T[w].lastCount+A.length,A.mode)-h(T[w].lastCount,A.mode),T[w].lastCount+=A.length):(T[w]&&(T[w].lastCount=A.length),B[w][m]=h(A.length,A.mode)+4+o.getCharCountIndicator(A.mode,M))}}b=y}for(let g=0;g<b.length;g++)B[b[g]].end=0;return{map:B,table:T}}function S(R,M){let T;const B=o.getBestModeForData(R);if(T=o.from(M,B),T!==o.BYTE&&T.bit<B.bit)throw new Error('"'+R+'" cannot be encoded with mode '+o.toString(T)+`.
4
+ Suggested mode is: `+o.toString(B));switch(T===o.KANJI&&!a.isKanjiModeEnabled()&&(T=o.BYTE),T){case o.NUMERIC:return new i(R);case o.ALPHANUMERIC:return new e(R);case o.KANJI:return new n(R);case o.BYTE:return new t(R)}}r.fromArray=function(M){return M.reduce(function(T,B){return typeof B=="string"?T.push(S(B,null)):B.data&&T.push(S(B.data,B.mode)),T},[])},r.fromString=function(M,T){const B=p(M,a.isKanjiModeEnabled()),b=N(B),g=P(b,T),C=u.find_path(g.map,"start","end"),y=[];for(let l=1;l<C.length-1;l++)y.push(g.table[C[l]].node);return r.fromArray(f(y))},r.rawSplit=function(M){return r.fromArray(p(M,a.isKanjiModeEnabled()))}}(at)),at}var Jt;function Ae(){if(Jt)return $;Jt=1;const r=U(),o=yt(),i=se(),e=ue(),t=ae(),n=ce(),s=fe(),a=$t(),u=ge(),c=he(),d=me(),p=F(),h=Be();function f(g,C){const y=g.size,l=n.getPositions(C);for(let A=0;A<l.length;A++){const m=l[A][0],E=l[A][1];for(let w=-1;w<=7;w++)if(!(m+w<=-1||y<=m+w))for(let I=-1;I<=7;I++)E+I<=-1||y<=E+I||(w>=0&&w<=6&&(I===0||I===6)||I>=0&&I<=6&&(w===0||w===6)||w>=2&&w<=4&&I>=2&&I<=4?g.set(m+w,E+I,!0,!0):g.set(m+w,E+I,!1,!0))}}function N(g){const C=g.size;for(let y=8;y<C-8;y++){const l=y%2===0;g.set(y,6,l,!0),g.set(6,y,l,!0)}}function P(g,C){const y=t.getPositions(C);for(let l=0;l<y.length;l++){const A=y[l][0],m=y[l][1];for(let E=-2;E<=2;E++)for(let w=-2;w<=2;w++)E===-2||E===2||w===-2||w===2||E===0&&w===0?g.set(A+E,m+w,!0,!0):g.set(A+E,m+w,!1,!0)}}function S(g,C){const y=g.size,l=c.getEncodedBits(C);let A,m,E;for(let w=0;w<18;w++)A=Math.floor(w/3),m=w%3+y-8-3,E=(l>>w&1)===1,g.set(A,m,E,!0),g.set(m,A,E,!0)}function R(g,C,y){const l=g.size,A=d.getEncodedBits(C,y);let m,E;for(m=0;m<15;m++)E=(A>>m&1)===1,m<6?g.set(m,8,E,!0):m<8?g.set(m+1,8,E,!0):g.set(l-15+m,8,E,!0),m<8?g.set(8,l-m-1,E,!0):m<9?g.set(8,15-m-1+1,E,!0):g.set(8,15-m-1,E,!0);g.set(l-8,8,1,!0)}function M(g,C){const y=g.size;let l=-1,A=y-1,m=7,E=0;for(let w=y-1;w>0;w-=2)for(w===6&&w--;;){for(let I=0;I<2;I++)if(!g.isReserved(A,w-I)){let v=!1;E<C.length&&(v=(C[E]>>>m&1)===1),g.set(A,w-I,v),m--,m===-1&&(E++,m=7)}if(A+=l,A<0||y<=A){A-=l,l=-l;break}}}function T(g,C,y){const l=new i;y.forEach(function(I){l.put(I.mode.bit,4),l.put(I.getLength(),p.getCharCountIndicator(I.mode,g)),I.write(l)});const A=r.getSymbolTotalCodewords(g),m=a.getTotalCodewordsCount(g,C),E=(A-m)*8;for(l.getLengthInBits()+4<=E&&l.put(0,4);l.getLengthInBits()%8!==0;)l.putBit(0);const w=(E-l.getLengthInBits())/8;for(let I=0;I<w;I++)l.put(I%2?17:236,8);return B(l,g,C)}function B(g,C,y){const l=r.getSymbolTotalCodewords(C),A=a.getTotalCodewordsCount(C,y),m=l-A,E=a.getBlocksCount(C,y),w=l%E,I=E-w,v=Math.floor(l/E),V=Math.floor(m/E),te=V+1,Ct=v-V,ee=new u(Ct);let J=0;const K=new Array(E),Et=new Array(E);let O=0;const ne=new Uint8Array(g.buffer);for(let k=0;k<E;k++){const G=k<I?V:te;K[k]=ne.slice(J,J+G),Et[k]=ee.encode(K[k]),J+=G,O=Math.max(O,G)}const Y=new Uint8Array(l);let pt=0,D,q;for(D=0;D<O;D++)for(q=0;q<E;q++)D<K[q].length&&(Y[pt++]=K[q][D]);for(D=0;D<Ct;D++)for(q=0;q<E;q++)Y[pt++]=Et[q][D];return Y}function b(g,C,y,l){let A;if(Array.isArray(g))A=h.fromArray(g);else if(typeof g=="string"){let v=C;if(!v){const V=h.rawSplit(g);v=c.getBestVersionForData(V,y)}A=h.fromString(g,v||40)}else throw new Error("Invalid data");const m=c.getBestVersionForData(A,y);if(!m)throw new Error("The amount of data is too big to be stored in a QR Code");if(!C)C=m;else if(C<m)throw new Error(`
5
+ The chosen QR Code version cannot contain this amount of data.
6
+ Minimum version required to store current data is: `+m+`.
7
+ `);const E=T(C,y,A),w=r.getSymbolSize(C),I=new e(w);return f(I,C),N(I),P(I,C),R(I,y,0),C>=7&&S(I,C),M(I,E),isNaN(l)&&(l=s.getBestMask(I,R.bind(null,I,y))),s.applyMask(l,I),R(I,y,l),{modules:I,version:C,errorCorrectionLevel:y,maskPattern:l,segments:A}}return $.create=function(C,y){if(typeof C>"u"||C==="")throw new Error("No input text");let l=o.M,A,m;return typeof y<"u"&&(l=o.from(y.errorCorrectionLevel,o.M),A=c.from(y.version),m=s.from(y.maskPattern),y.toSJISFunc&&r.setToSJISFunction(y.toSJISFunc)),b(C,A,l,m)},$}var ht={},mt={},Ot;function Xt(){return Ot||(Ot=1,function(r){function o(i){if(typeof i=="number"&&(i=i.toString()),typeof i!="string")throw new Error("Color should be defined as hex string");let e=i.slice().replace("#","").split("");if(e.length<3||e.length===5||e.length>8)throw new Error("Invalid hex color: "+i);(e.length===3||e.length===4)&&(e=Array.prototype.concat.apply([],e.map(function(n){return[n,n]}))),e.length===6&&e.push("F","F");const t=parseInt(e.join(""),16);return{r:t>>24&255,g:t>>16&255,b:t>>8&255,a:t&255,hex:"#"+e.slice(0,6).join("")}}r.getOptions=function(e){e||(e={}),e.color||(e.color={});const t=typeof e.margin>"u"||e.margin===null||e.margin<0?4:e.margin,n=e.width&&e.width>=21?e.width:void 0,s=e.scale||4;return{width:n,scale:n?4:s,margin:t,color:{dark:o(e.color.dark||"#000000ff"),light:o(e.color.light||"#ffffffff")},type:e.type,rendererOpts:e.rendererOpts||{}}},r.getScale=function(e,t){return t.width&&t.width>=e+t.margin*2?t.width/(e+t.margin*2):t.scale},r.getImageWidth=function(e,t){const n=r.getScale(e,t);return Math.floor((e+t.margin*2)*n)},r.qrToImageData=function(e,t,n){const s=t.modules.size,a=t.modules.data,u=r.getScale(s,n),c=Math.floor((s+n.margin*2)*u),d=n.margin*u,p=[n.color.light,n.color.dark];for(let h=0;h<c;h++)for(let f=0;f<c;f++){let N=(h*c+f)*4,P=n.color.light;if(h>=d&&f>=d&&h<c-d&&f<c-d){const S=Math.floor((h-d)/u),R=Math.floor((f-d)/u);P=p[a[S*s+R]?1:0]}e[N++]=P.r,e[N++]=P.g,e[N++]=P.b,e[N]=P.a}}}(mt)),mt}var Yt;function Re(){return Yt||(Yt=1,function(r){const o=Xt();function i(t,n,s){t.clearRect(0,0,n.width,n.height),n.style||(n.style={}),n.height=s,n.width=s,n.style.height=s+"px",n.style.width=s+"px"}function e(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}r.render=function(n,s,a){let u=a,c=s;typeof u>"u"&&(!s||!s.getContext)&&(u=s,s=void 0),s||(c=e()),u=o.getOptions(u);const d=o.getImageWidth(n.modules.size,u),p=c.getContext("2d"),h=p.createImageData(d,d);return o.qrToImageData(h.data,n,u),i(p,c,d),p.putImageData(h,0,0),c},r.renderToDataURL=function(n,s,a){let u=a;typeof u>"u"&&(!s||!s.getContext)&&(u=s,s=void 0),u||(u={});const c=r.render(n,s,u),d=u.type||"image/png",p=u.rendererOpts||{};return c.toDataURL(d,p.quality)}}(ht)),ht}var wt={},Gt;function Te(){if(Gt)return wt;Gt=1;const r=Xt();function o(t,n){const s=t.a/255,a=n+'="'+t.hex+'"';return s<1?a+" "+n+'-opacity="'+s.toFixed(2).slice(1)+'"':a}function i(t,n,s){let a=t+n;return typeof s<"u"&&(a+=" "+s),a}function e(t,n,s){let a="",u=0,c=!1,d=0;for(let p=0;p<t.length;p++){const h=Math.floor(p%n),f=Math.floor(p/n);!h&&!c&&(c=!0),t[p]?(d++,p>0&&h>0&&t[p-1]||(a+=c?i("M",h+s,.5+f+s):i("m",u,0),u=0,c=!1),h+1<n&&t[p+1]||(a+=i("h",d),d=0)):u++}return a}return wt.render=function(n,s,a){const u=r.getOptions(s),c=n.modules.size,d=n.modules.data,p=c+u.margin*2,h=u.color.light.a?"<path "+o(u.color.light,"fill")+' d="M0 0h'+p+"v"+p+'H0z"/>':"",f="<path "+o(u.color.dark,"stroke")+' d="'+e(d,c,u.margin)+'"/>',N='viewBox="0 0 '+p+" "+p+'"',S='<svg xmlns="http://www.w3.org/2000/svg" '+(u.width?'width="'+u.width+'" height="'+u.width+'" ':"")+N+' shape-rendering="crispEdges">'+h+f+`</svg>
8
+ `;return typeof a=="function"&&a(null,S),S},wt}var Qt;function Ie(){if(Qt)return z;Qt=1;const r=ie(),o=Ae(),i=Re(),e=Te();function t(n,s,a,u,c){const d=[].slice.call(arguments,1),p=d.length,h=typeof d[p-1]=="function";if(!h&&!r())throw new Error("Callback required as last argument");if(h){if(p<2)throw new Error("Too few arguments provided");p===2?(c=a,a=s,s=u=void 0):p===3&&(s.getContext&&typeof c>"u"?(c=u,u=void 0):(c=u,u=a,a=s,s=void 0))}else{if(p<1)throw new Error("Too few arguments provided");return p===1?(a=s,s=u=void 0):p===2&&!s.getContext&&(u=a,a=s,s=void 0),new Promise(function(f,N){try{const P=o.create(a,u);f(n(P,s,u))}catch(P){N(P)}})}try{const f=o.create(a,u);c(null,n(f,s,u))}catch(f){c(f)}}return z.create=o.create,z.toCanvas=t.bind(null,i.render),z.toDataURL=t.bind(null,i.renderToDataURL),z.toString=t.bind(null,function(n,s,a){return e.render(n,a)}),z}var xt=Ie();const Ne=re.getDefaultExportFromCjs(xt),Pe=oe({__proto__:null,default:Ne},[xt]);exports.browser=Pe;
@@ -0,0 +1,453 @@
1
+ /* ============================================================
2
+ zero-ai-ui-lib 类型声明(手写版)
3
+ 组件 props 用「已知键 + 宽松兜底」模式:常用 prop 精确标注,
4
+ 其余透传属性不报错;模板里不会出现隐式 any。
5
+ ============================================================ */
6
+ import type { App, DefineComponent, ObjectDirective } from 'vue'
7
+
8
+ type AnyProps = Record<string, unknown>
9
+
10
+ declare const UiCardGroup: DefineComponent<{
11
+ variant?: 'gallery' | 'circular' | 'depth' | 'wall' | 'scroll-stack' | 'stack' | 'swap' | 'bounce'
12
+ items?: { title: string; meta?: string; tone?: string; image?: string }[]
13
+ height?: number; cardWidth?: number; gap?: number; auto?: boolean; interval?: number
14
+ modelValue?: number
15
+ }, AnyProps, unknown>
16
+ declare const UiCodeSlots: DefineComponent<{
17
+ length?: number; modelValue?: string; autofocus?: boolean; disabled?: boolean; mask?: boolean; label?: string
18
+ }, AnyProps, unknown>
19
+ declare const UiScrubField: DefineComponent<{
20
+ modelValue?: number; min?: number; max?: number; step?: number; precision?: number
21
+ unit?: string; label?: string; pixelsPerRange?: number; rubber?: number; disabled?: boolean
22
+ }, AnyProps, unknown>
23
+ declare const UiStatusMark: DefineComponent<{
24
+ /** none(只有底部空槽)/ pending / progress / done / failed;兼容旧名 idle / running / error */
25
+ status?: 'none' | 'pending' | 'progress' | 'done' | 'failed' | 'idle' | 'running' | 'error'
26
+ /** 实际进度 0~1;传 null = 没有实际进度,显示转圈 */
27
+ progress?: number | null
28
+ size?: number
29
+ dashes?: number
30
+ arcLength?: number
31
+ spinDuration?: number
32
+ drawDuration?: number
33
+ }, AnyProps, unknown>
34
+ declare const UiStepFlow: DefineComponent<{
35
+ steps?: { label: string; description?: string; icon?: string }[]
36
+ modelValue?: number; orientation?: 'horizontal' | 'vertical'; clickable?: boolean
37
+ controls?: boolean; nextLabel?: string; prevLabel?: string; finishLabel?: string
38
+ }, AnyProps, unknown>
39
+ declare const UiSwipeRow: DefineComponent<{
40
+ actions?: { label: string; tone?: 'neutral' | 'danger'; icon?: string }[]
41
+ threshold?: number; fullSwipeAction?: boolean; once?: boolean; disabled?: boolean; open?: boolean | null
42
+ }, AnyProps, unknown>
43
+ declare const UiText: DefineComponent<{
44
+ variant?: 'type' | 'shiny' | 'gradient'; text?: string
45
+ cps?: number; cursor?: boolean; loop?: boolean; startDelay?: number
46
+ sheen?: 'soft' | 'chrome'; sweep?: number
47
+ gradient?: 'sweep' | 'mesh' | 'conic'; colors?: string[]
48
+ }, AnyProps, unknown>
49
+ declare const UiRotatingText: DefineComponent<{
50
+ phrases?: string[]; interval?: number; transition?: 'rotate' | 'flip' | 'slide'
51
+ pauseOnHover?: boolean; paused?: boolean
52
+ }, AnyProps, unknown>
53
+ declare const UiToolCallChip: DefineComponent<{
54
+ name?: string; detail?: string; status?: 'running' | 'success' | 'error'
55
+ expected?: number; showTime?: boolean
56
+ }, AnyProps, unknown>
57
+ declare const UiTooltipGroup: DefineComponent<{
58
+ items?: { label: string; tip: string }[]; wait?: number; warmWindow?: number; linger?: number
59
+ }, AnyProps, unknown>
60
+ declare const UiButton: DefineComponent<{
61
+ variant?: 'primary' | 'tonal' | 'outline' | 'text' | 'danger' | 'icon' | 'fuse' | 'hold' | 'slide'
62
+ size?: 'sm' | 'md' | 'lg'; type?: string; block?: boolean; disabled?: boolean; loading?: boolean
63
+ fuseDuration?: number; undoLabel?: string; doneLabel?: string
64
+ holdDuration?: number; slideThreshold?: number
65
+ }, AnyProps, unknown>
66
+ declare const UiAccordion: DefineComponent<{ title?: string; open?: boolean; modelValue?: boolean }, AnyProps, unknown>
67
+ declare const UiAlert: DefineComponent<{ tone?: 'warning' | 'danger' | 'success' | 'info'; title?: string }, AnyProps, unknown>
68
+ declare const UiAvatar: DefineComponent<{ name?: string; src?: string; size?: number }, AnyProps, unknown>
69
+ declare const UiBadge: DefineComponent<{ tone?: 'primary' | 'success' | 'warning' | 'danger'; dot?: boolean; label?: string }, AnyProps, unknown>
70
+ declare const UiBarChart: DefineComponent<{ data?: number[]; labels?: string[]; height?: number }, AnyProps, unknown>
71
+ declare const UiBottomSheet: DefineComponent<{ modelValue?: boolean; title?: string; maxHeight?: string; closeOnBackdrop?: boolean; scrim?: boolean; anchors?: number[] }, AnyProps, unknown>
72
+ declare const UiCheckbox: DefineComponent<{ modelValue?: boolean; label?: string; disabled?: boolean }, AnyProps, unknown>
73
+ declare const UiAvatarTag: DefineComponent<{
74
+ name?: string
75
+ src?: string
76
+ /** SVG 内部标记;图标模式不做遮罩 */
77
+ icon?: string
78
+ iconViewBox?: string
79
+ shape?: 'circle' | 'squircle' | 'square' | 'hexagon' | 'diamond' | 'blob'
80
+ size?: 'sm' | 'md' | 'lg'
81
+ }, AnyProps, unknown>
82
+ declare const UiCard: DefineComponent<{
83
+ title?: string
84
+ description?: string
85
+ /** 24x24 viewBox 内的 SVG 内部标记 */
86
+ icon?: string
87
+ divider?: boolean
88
+ size?: 'sm' | 'md' | 'lg'
89
+ variant?: 'outline' | 'filled' | 'plain' | 'product'
90
+ clickable?: boolean
91
+ /* ---------- variant=product(产品授权卡) ---------- */
92
+ productName?: string
93
+ /** SVG 内部标记;viewBox 可自定义(品牌图标多半不是 24×24) */
94
+ productIcon?: string
95
+ productIconViewBox?: string
96
+ /** 品牌强调色:图标底色、底部光晕、渐变文字与动作按钮 */
97
+ accent?: string
98
+ }, AnyProps, unknown>
99
+ declare const UiCodeImage: DefineComponent<{ type: string | string[]; options?: Record<string, Record<string, unknown>>; width?: number }, AnyProps, unknown>
100
+ declare const UiChip: DefineComponent<{ variant?: string; selected?: boolean; removable?: boolean; dot?: boolean }, AnyProps, unknown>
101
+ declare const UiCodeEditor: DefineComponent<{
102
+ modelValue?: string
103
+ language?: 'js' | 'json' | 'css' | 'html' | 'md' | 'plain'
104
+ label?: string; hint?: string; error?: string; placeholder?: string
105
+ readonly?: boolean; disabled?: boolean; tabSize?: number; lines?: number; formatJson?: boolean
106
+ }, AnyProps, unknown>
107
+ declare const UiConfirmDialog: DefineComponent<Record<string, never>, AnyProps, unknown>
108
+ declare const UiDataTable: DefineComponent<{
109
+ columns: { key: string; label?: string; width?: string; align?: 'left' | 'center' | 'right'; sortable?: boolean; hidden?: boolean }[]
110
+ rows?: unknown[]
111
+ rowKey?: string; maxHeight?: number; striped?: boolean; clickable?: boolean; emptyText?: string
112
+ /* 分组 / 服务端分页 / 列显隐 / 多选 */
113
+ groupBy?: string
114
+ server?: boolean; page?: number; pageSize?: number; total?: number
115
+ visible?: string[] | null
116
+ selection?: 'none' | 'single' | 'multiple'
117
+ selected?: (string | number)[]
118
+ }, AnyProps, unknown>
119
+ declare const UiDatePicker: DefineComponent<{ modelValue?: string; label?: string; placeholder?: string; disabled?: boolean }, AnyProps, unknown>
120
+ declare const UiEmptyState: DefineComponent<{ title?: string; description?: string }, AnyProps, unknown>
121
+ declare const UiFileDropzone: DefineComponent<{ label?: string; hint?: string; accept?: string; multiple?: boolean; disabled?: boolean; maxSize?: number }, AnyProps, unknown>
122
+ declare const UiFloatingMenu: DefineComponent<{ modelValue?: string | number; items?: { value?: string | number; label?: string }[] }, AnyProps, unknown>
123
+ declare const UiGauge: DefineComponent<{ value?: number; label?: string }, AnyProps, unknown>
124
+ declare const UiGaugeSlider: DefineComponent<{
125
+ modelValue?: number; label?: string; unit?: string; precision?: number | null
126
+ showScale?: boolean; showBubble?: boolean; spring?: Record<string, number> | null
127
+ }, AnyProps, unknown>
128
+ declare const UiHeatmap: DefineComponent<{ data?: number[][]; labels?: string[] }, AnyProps, unknown>
129
+ declare const UiInput: DefineComponent<{
130
+ modelValue?: string | number; label?: string; type?: string; placeholder?: string
131
+ hint?: string; error?: string; disabled?: boolean; autocomplete?: string
132
+ min?: string | number; max?: string | number; step?: string | number; inputmode?: string
133
+ }, AnyProps, unknown>
134
+ declare const UiKeyValueEditor: DefineComponent<{
135
+ modelValue?: { key: string; value: string }[]
136
+ label?: string; keyPlaceholder?: string; valuePlaceholder?: string; addLabel?: string; secret?: boolean
137
+ }, AnyProps, unknown>
138
+ declare const UiLineChart: DefineComponent<{ series?: number[][]; labels?: string[]; height?: number }, AnyProps, unknown>
139
+ declare const UiModal: DefineComponent<{ modelValue?: boolean; title?: string; width?: string }, AnyProps, unknown>
140
+ declare const UiMorphPanel: DefineComponent<{ open?: boolean; label?: string; disabled?: boolean; minWidth?: number; minHeight?: number; closeOnOutside?: boolean }, AnyProps, unknown>
141
+ declare const UiProgress: DefineComponent<{ value?: number; label?: string }, AnyProps, unknown>
142
+ declare const UiRadioGroup: DefineComponent<{ modelValue?: string | number; options?: { label: string; value: string | number }[]; name?: string }, AnyProps, unknown>
143
+ declare const UiRangeDatePicker: DefineComponent<{ modelValue?: { start?: string; end?: string } | null; label?: string; presets?: number[] }, AnyProps, unknown>
144
+ declare const UiRangeSlider: DefineComponent<{
145
+ modelValue?: [number, number]; min?: number; max?: number; step?: number
146
+ precision?: number | null; label?: string; unit?: string; showValue?: boolean
147
+ spring?: Record<string, number> | null
148
+ /** @deprecated */ stiffness?: number; /** @deprecated */ dampingRatio?: number
149
+ /** @deprecated */ flingTime?: number; /** @deprecated */ rubber?: number; /** @deprecated */ maxOverscroll?: number
150
+ }, AnyProps, unknown>
151
+ declare const UiRangeTimePicker: DefineComponent<{ modelValue?: { start?: string; end?: string }; precision?: 'h' | 'm' | 's' }, AnyProps, unknown>
152
+ declare const UiRating: DefineComponent<{ modelValue?: number; max?: number; readOnly?: boolean }, AnyProps, unknown>
153
+ declare const UiRingProgress: DefineComponent<{ value?: number; label?: string; size?: number; stroke?: number }, AnyProps, unknown>
154
+ declare const UiRingSlider: DefineComponent<{
155
+ modelValue?: number; label?: string; unit?: string; precision?: number | null
156
+ size?: number; stroke?: number; spring?: Record<string, number> | null
157
+ }, AnyProps, unknown>
158
+ declare const UiRollNumber: DefineComponent<{ value?: number | string; directionKey?: number | null; reverse?: boolean; distance?: string; step?: number; instant?: boolean }, AnyProps, unknown>
159
+ declare const UiSchemaForm: DefineComponent<{ schema: Record<string, unknown>; modelValue?: Record<string, unknown>; arrayMode?: string; disabled?: boolean }, AnyProps, unknown>
160
+ declare const UiSearchField: DefineComponent<{ modelValue?: string; placeholder?: string; keepValue?: boolean; disabled?: boolean }, AnyProps, unknown>
161
+ declare const UiPagerDots: DefineComponent<{
162
+ /** 总页数 */
163
+ total?: number
164
+ modelValue?: number
165
+ clickable?: boolean
166
+ /** sm | md */
167
+ size?: 'sm' | 'md'
168
+ label?: string
169
+ }, AnyProps, unknown>
170
+
171
+ declare const UiSelect: DefineComponent<{
172
+ modelValue?: string | number | (string | number)[]
173
+ options?: { label: string; value: string | number; icon?: string; disabled?: boolean }[]
174
+ /** 多选:modelValue 为数组,勾选不收回面板 */
175
+ multiple?: boolean
176
+ label?: string; placeholder?: string; disabled?: boolean
177
+ /** 选项图标位置:leading 在文字前端;top 在文字上方(面板变卡片网格) */
178
+ iconPlacement?: 'leading' | 'top'
179
+ }, AnyProps, unknown>
180
+ declare const UiSegmented: DefineComponent<{
181
+ modelValue?: string | number
182
+ options?: { label: string; value: string | number; icon?: string; disabled?: boolean }[]
183
+ label?: string
184
+ layout?: 'stack' | 'one-line'
185
+ /** 图标位置:leading 在文字前端(布局不变);top 在文字上方 */
186
+ iconPlacement?: 'leading' | 'top'
187
+ /** false 时只显示图标 */
188
+ showLabels?: boolean
189
+ /** 单行装不下时自动切多行网格 */
190
+ autoMultiline?: boolean
191
+ minItemWidth?: number
192
+ }, AnyProps, unknown>
193
+ declare const UiSkeleton: DefineComponent<{ width?: string; height?: string; radius?: string }, AnyProps, unknown>
194
+ declare const UiSlider: DefineComponent<{
195
+ modelValue?: number; min?: number; max?: number; step?: number
196
+ label?: string; unit?: string; showValue?: boolean
197
+ stops?: number[] | null; snapCount?: number; precision?: number | null
198
+ majorTicks?: number; minorTicks?: number; showScale?: boolean
199
+ spring?: Record<string, number> | null; showBubble?: boolean
200
+ /** @deprecated */ stiffness?: number; /** @deprecated */ dampingRatio?: number
201
+ /** @deprecated */ flingTime?: number; /** @deprecated */ rubber?: number; /** @deprecated */ maxOverscroll?: number
202
+ }, AnyProps, unknown>
203
+ declare const UiSparkline: DefineComponent<{ data?: number[]; width?: number; height?: number }, AnyProps, unknown>
204
+ declare const UiSpinner: DefineComponent<{ size?: number }, AnyProps, unknown>
205
+ declare const UiStepper: DefineComponent<{
206
+ modelValue?: number; min?: number; max?: number; step?: number
207
+ unit?: string; label?: string; fieldLabel?: string
208
+ size?: 'sm' | 'md' | 'lg' | 'xl'; controls?: 'sides' | 'bottom'; roll?: 'standard' | 'reverse'
209
+ disabled?: boolean
210
+ }, AnyProps, unknown>
211
+ declare const UiSwitch: DefineComponent<{ modelValue?: boolean; label?: string; disabled?: boolean }, AnyProps, unknown>
212
+ declare const UiTabBar: DefineComponent<{ items?: { value: string | number; label: string; icon?: string }[]; modelValue?: string | number; label?: string; desktopAt?: number }, AnyProps, unknown>
213
+ declare const UiTagInput: DefineComponent<{ modelValue?: string[]; label?: string; placeholder?: string; hint?: string; max?: number; delimiters?: string[] }, AnyProps, unknown>
214
+ declare const UiTerminalOutput: DefineComponent<{ text?: string; label?: string; height?: number; follow?: boolean }, AnyProps, unknown>
215
+ declare const UiTextarea: DefineComponent<{ modelValue?: string; label?: string; placeholder?: string; rows?: number; disabled?: boolean }, AnyProps, unknown>
216
+ declare const UiTimePicker: DefineComponent<{ modelValue?: string; label?: string; placeholder?: string; disabled?: boolean }, AnyProps, unknown>
217
+ declare const UiToastHost: DefineComponent<{ max?: number }, AnyProps, unknown>
218
+ declare const UiToolMenu: DefineComponent<{ items?: AnyProps[]; label?: string }, AnyProps, unknown>
219
+ declare const UiTooltip: DefineComponent<{ text?: string; placement?: 'top' | 'bottom' | 'left' | 'right' }, AnyProps, unknown>
220
+ declare const UiTreeView: DefineComponent<{
221
+ nodes?: { label: string; value?: string | number; children?: unknown[]; kind?: string }[]
222
+ modelValue?: string | number | (string | number)[]
223
+ defaultOpen?: string[] | null; indent?: number
224
+ multi?: boolean; cascade?: boolean; filter?: string; draggable?: boolean
225
+ }, AnyProps, unknown>
226
+ declare const UiVirtualList: DefineComponent<{
227
+ items?: unknown[]; itemHeight?: number; height?: number; buffer?: number
228
+ swipeSelect?: boolean; modelValue?: number[]; itemKey?: string
229
+ }, AnyProps, unknown>
230
+ declare const UiWheel: DefineComponent<{ columns?: { items?: unknown[]; value?: string | number; separator?: string; label?: string }[]; interactive?: boolean; itemHeight?: number }, AnyProps, unknown>
231
+ declare const UiWheelColumn: DefineComponent<{ items?: unknown[]; modelValue?: string | number; label?: string; interactive?: boolean }, AnyProps, unknown>
232
+ declare const UiWheelDatePicker: DefineComponent<{ modelValue?: string; label?: string; startYear?: number; endYear?: number }, AnyProps, unknown>
233
+
234
+ declare const ExpandableCard: DefineComponent<AnyProps, AnyProps, unknown>
235
+ declare const RouteExpandCard: DefineComponent<{
236
+ section?: string; cardKey?: string | number; routeName?: string; params?: Record<string, unknown>
237
+ tag?: string; variant?: 'card' | 'metric' | 'list-item'; content?: unknown; contentProps?: Record<string, unknown>
238
+ }, AnyProps, unknown>
239
+ declare const EmptyRoute: DefineComponent<Record<string, never>, AnyProps, unknown>
240
+
241
+ /* ---------- composables ---------- */
242
+ export interface MorphWindowOptions {
243
+ width?: () => number
244
+ height?: () => number
245
+ [key: string]: unknown
246
+ }
247
+ export interface MorphWindowReturn {
248
+ open: { value: boolean }
249
+ closing: { value: boolean }
250
+ floating: { value: boolean }
251
+ compressed: { value: boolean }
252
+ style: unknown
253
+ viewStyle: unknown
254
+ openWindow(): void
255
+ closeWindow(): void
256
+ toggleWindow(): void
257
+ }
258
+ export declare function useMorphWindow(options?: MorphWindowOptions): MorphWindowReturn
259
+ export interface EdgeSwipeBackOptions {
260
+ target?: HTMLElement | null | (() => HTMLElement | null | undefined)
261
+ container?: () => EventTarget | null
262
+ shouldHandle?: () => boolean
263
+ onBack?: () => void
264
+ onProgress?: (progress: number) => void
265
+ edgeWidth?: number
266
+ distanceRatio?: number
267
+ velocityThreshold?: number
268
+ minTravel?: number
269
+ maxScale?: number
270
+ startDeadZone?: number
271
+ finishDuration?: number
272
+ revertDuration?: number
273
+ }
274
+ export interface EdgeSwipeBackHandle {
275
+ unmount(): void
276
+ complete(): void
277
+ isTracking(): boolean
278
+ config: Required<EdgeSwipeBackOptions>
279
+ }
280
+ export declare function useEdgeSwipeBack(options?: EdgeSwipeBackOptions): EdgeSwipeBackHandle
281
+ export declare function usePress(element?: HTMLElement | null): { pressed: { value: boolean } }
282
+
283
+ /* ---------- utils ---------- */
284
+ export type DurationPrecision = 'h' | 'm' | 's'
285
+ export declare function parseClockTime(text: string | null | undefined): number | null
286
+ export declare function formatDuration(totalSeconds: number, options?: { precision?: DurationPrecision }): string
287
+ export declare function formatDurationBetween(start: string, end: string, options?: { precision?: DurationPrecision }): string
288
+ export interface ConfirmDialogOptions {
289
+ title?: string
290
+ message?: string
291
+ detail?: string
292
+ confirmText?: string
293
+ cancelText?: string
294
+ danger?: boolean
295
+ }
296
+ export declare function confirmDialog(options?: ConfirmDialogOptions): Promise<boolean>
297
+ export declare function disposeConfirmDialog(): void
298
+ export declare function tokenize(text: string, lang: string): { type: string; text: string }[]
299
+ export declare function highlightToHtml(text: string, lang: string): string
300
+ export declare function ansiLineToHtml(line: string): string
301
+ export declare function ansiToHtml(text: string): string
302
+ export interface CodeFormatMeta { family: 'qr' | 'bar'; label: string; render?: string; validate: (text: string) => boolean; defaults: Record<string, unknown>; normalize: (options: AnyProps) => AnyProps }
303
+ export declare const CODE_FORMATS: Record<string, CodeFormatMeta>
304
+ /** 族图标:24x24 viewBox 内的 SVG 内部标记 */
305
+ export declare const FORMAT_ICONS: Record<'qr' | 'bar', string>
306
+ /** 取某码制的图标标记;未知码制返回空串 */
307
+ export declare function iconOf(format: string): string
308
+ export declare function supports(format: string, text: string): boolean
309
+ export declare function resolveOptions(format: string, options?: Record<string, AnyProps>, isDev?: boolean): AnyProps
310
+ export declare function renderMode(formats: string[]): 'icon' | 'text'
311
+ export declare function fallbackCandidates(formats: string[], text: string): string[]
312
+ export declare function familyOf(format: string): 'qr' | 'bar' | null
313
+
314
+ /* ---------- core:无障碍 / 指令 / 快捷键 / 图标 / 弹簧求解 ---------- */
315
+ export interface FocusTrapOptions {
316
+ /** 为 false 时暂时不接管 Tab;默认恒为 true */
317
+ active?: () => boolean
318
+ /** 传入布尔 ref:打开时激活、关闭时还原焦点 */
319
+ model?: { value: boolean }
320
+ }
321
+ export declare function useFocusTrap(
322
+ elRef: { value: HTMLElement | null | undefined },
323
+ options?: FocusTrapOptions
324
+ ): { activate(): Promise<void>; deactivate(): void }
325
+
326
+ export interface RovingTabindexOptions {
327
+ orientation?: 'horizontal' | 'vertical' | 'both'
328
+ selector?: string
329
+ onSelect?: (index: number, element: HTMLElement) => void
330
+ }
331
+ export declare function useRovingTabindex(
332
+ itemsRef: { value: HTMLElement | HTMLElement[] | null | undefined },
333
+ options?: RovingTabindexOptions
334
+ ): { move(index: number): void; refresh(): void; detach: () => void }
335
+
336
+ /** 视觉隐藏但读屏可读的样式对象(配合 :style 使用) */
337
+ export declare const srOnly: Record<string, string>
338
+
339
+ export declare const vRipple: ObjectDirective
340
+ export declare const vIntersect: ObjectDirective
341
+ export declare const vResize: ObjectDirective
342
+ export declare const vClickOutside: ObjectDirective
343
+ export declare const zeroDirectives: { install(app: App): void }
344
+
345
+ export interface ShortcutOptions {
346
+ target?: EventTarget | null
347
+ preventDefault?: boolean
348
+ }
349
+ /** 组合键写法:'mod+k' / 'shift+enter' / 'escape';返回解绑函数 */
350
+ export declare function createShortcuts(
351
+ map: Record<string, (event: KeyboardEvent) => void>,
352
+ options?: ShortcutOptions
353
+ ): () => void
354
+ export declare function defineShortcuts(
355
+ map: Record<string, (event: KeyboardEvent) => void>,
356
+ options?: ShortcutOptions
357
+ ): { stop(): void }
358
+
359
+ /** 24x24 viewBox 内的 SVG 内部标记 */
360
+ export declare const ICONS: Record<string, string>
361
+ export declare function registerIcons(map: Record<string, string>): void
362
+ export declare function iconMarkup(name: string): string
363
+
364
+ export interface SpringPreset { stiffness: number; damping: number }
365
+ export declare const SPRINGS: Record<'place' | 'settle' | 'tuck' | 'fling' | 'lean' | 'press', SpringPreset>
366
+ export interface AnimateSpringOptions {
367
+ from?: number
368
+ to?: number
369
+ velocity?: number
370
+ stiffness?: number
371
+ damping?: number
372
+ /** 默认按行程推导(range * 0.0012),小行程动画不会被一帧掐断 */
373
+ precision?: number
374
+ onUpdate?: (value: number) => void
375
+ onDone?: () => void
376
+ }
377
+ export declare function animateSpring(options?: AnimateSpringOptions): () => void
378
+
379
+ /* ---------- 动效气质(产品调性,非用户偏好) ---------- */
380
+ export declare const MOTION_TONES: Record<'calm' | 'lively', { value: 'calm' | 'lively'; label: string; hint: string }>
381
+ export declare function setMotionTone(tone: 'calm' | 'lively'): 'calm' | 'lively'
382
+ export declare function getMotionTone(): 'calm' | 'lively'
383
+ export declare function toggleMotionTone(): 'calm' | 'lively'
384
+ export declare function isLively(): boolean
385
+ export declare function motionFactor(name?: 'scale' | 'bounce' | 'distance', fallback?: number): number
386
+ export declare function springDuration(name?: string, fallback?: number): number
387
+
388
+ /* ---------- zero.config.yaml / json ---------- */
389
+ export interface ZeroUiConfig {
390
+ motion?: 'calm' | 'lively'
391
+ appearance?: 'light' | 'dark' | 'auto' | string
392
+ radiusScale?: number
393
+ density?: number
394
+ pressScale?: number
395
+ fontScale?: number
396
+ colors?: Record<string, string>
397
+ tokens?: Record<string, string | number>
398
+ }
399
+ export interface ZeroConfig { ui?: ZeroUiConfig }
400
+ export declare function parseSimpleYaml(text: string): ZeroConfig
401
+ export declare function applyZeroConfig(config: ZeroConfig): { ui: ZeroUiConfig; keys: string[] }
402
+ export declare function initZeroConfig(options?: { base?: string }): Promise<{ source: string | null; ui: ZeroUiConfig; keys: string[] } | null>
403
+ export declare function useZeroConfig(config?: ZeroConfig): { ui: ZeroUiConfig; keys: string[] }
404
+ export declare function getZeroConfig(): ZeroConfig | null
405
+ export declare function getAppliedZeroConfig(): { source: string | null; ui: ZeroUiConfig; keys: string[] } | null
406
+
407
+ /* ---------- 第二批:表单 / 导航 / 浮层 / 数据展示 ---------- */
408
+ declare const UiColorPicker: DefineComponent<{ modelValue?: string; label?: string; disabled?: boolean; swatches?: string[] }, AnyProps, unknown>
409
+ declare const UiAutocomplete: DefineComponent<{ modelValue?: string; label?: string; placeholder?: string; options?: { label: string; value: string | number; hint?: string }[]; free?: boolean; max?: number }, AnyProps, unknown>
410
+ declare const UiForm: DefineComponent<{ validateOnSubmit?: boolean }, AnyProps, unknown>
411
+ declare const UiFormField: DefineComponent<{ label?: string; hint?: string; rules?: ((value: unknown) => true | string)[]; value?: unknown; required?: boolean }, AnyProps, unknown>
412
+ declare const UiBreadcrumb: DefineComponent<{ items?: { label: string }[]; separator?: string }, AnyProps, unknown>
413
+ declare const UiPagination: DefineComponent<{ modelValue?: number; total?: number; pageSize?: number; siblings?: number }, AnyProps, unknown>
414
+ declare const UiSidebar: DefineComponent<{ modelValue?: boolean; collapsedWidth?: number; width?: number; label?: string }, AnyProps, unknown>
415
+ declare const UiSlideover: DefineComponent<{ modelValue?: boolean; title?: string; side?: 'left' | 'right'; width?: string }, AnyProps, unknown>
416
+ declare const UiNavigationMenu: DefineComponent<{ items?: { label: string; value?: string; children?: { label: string; description?: string; value?: string; icon?: string }[] }[]; modelValue?: string }, AnyProps, unknown>
417
+ declare const UiGrid: DefineComponent<{ min?: number; gap?: number }, AnyProps, unknown>
418
+ declare const UiRow: DefineComponent<{ gap?: number; align?: string; justify?: string }, AnyProps, unknown>
419
+ declare const UiCol: DefineComponent<{ span?: number; sm?: number; md?: number; lg?: number; offset?: number }, AnyProps, unknown>
420
+ declare const UiSplitter: DefineComponent<{ modelValue?: number; direction?: 'horizontal' | 'vertical'; min?: number; max?: number; handle?: number }, AnyProps, unknown>
421
+ declare const UiScrollArea: DefineComponent<{ maxHeight?: string; height?: string; shadows?: boolean; axis?: 'x' | 'y' }, AnyProps, unknown>
422
+ declare const UiContextMenu: DefineComponent<{ items?: { label: string; value?: string; disabled?: boolean; tone?: string; icon?: string; divider?: boolean; shortcut?: string }[]; disabled?: boolean }, AnyProps, unknown>
423
+ declare const UiCommandPalette: DefineComponent<{ modelValue?: boolean; items?: { label: string; value: string; hint?: string; icon?: string; keywords?: string }[]; placeholder?: string; shortcut?: string }, AnyProps, unknown>
424
+ declare const UiTour: DefineComponent<{ modelValue?: boolean; steps?: { target: string; title: string; text: string; placement?: 'top' | 'bottom' }[]; startAt?: number }, AnyProps, unknown>
425
+ declare const UiPopover: DefineComponent<{ modelValue?: boolean; placement?: 'top' | 'bottom' | 'left' | 'right'; trigger?: string; offset?: number; label?: string }, AnyProps, unknown>
426
+ declare const UiKbd: DefineComponent<{ keys?: string | string[]; size?: 'sm' | 'md' }, AnyProps, unknown>
427
+ declare const UiIcon: DefineComponent<{ name: string; size?: number | string; filled?: boolean; strokeWidth?: number | string; label?: string }, AnyProps, unknown>
428
+ declare const UiCalendar: DefineComponent<{ modelValue?: string; events?: Record<string, { title: string; tone?: string }[]>; view?: 'month' | 'week' }, AnyProps, unknown>
429
+ declare const UiTimeline: DefineComponent<{ items?: { title: string; time?: string; text?: string; tone?: 'primary' | 'success' | 'warning' | 'danger' | 'muted' }[] }, AnyProps, unknown>
430
+ declare const UiCarousel: DefineComponent<{ items?: { title?: string; text?: string; image?: string }[]; modelValue?: number; autoplay?: boolean; interval?: number; loop?: boolean; height?: number }, AnyProps, unknown>
431
+ declare const UiMarquee: DefineComponent<{ text?: string; speed?: number; direction?: 'left' | 'right'; gap?: number; pauseOnHover?: boolean }, AnyProps, unknown>
432
+
433
+ /* ---------- components ---------- */
434
+ export {
435
+ UiColorPicker, UiAutocomplete, UiForm, UiFormField, UiBreadcrumb, UiPagination, UiSidebar, UiSlideover, UiNavigationMenu, UiGrid, UiRow, UiCol, UiSplitter, UiScrollArea, UiContextMenu, UiCommandPalette, UiTour, UiPopover, UiKbd, UiIcon, UiCalendar, UiTimeline, UiCarousel, UiPagerDots, UiMarquee,
436
+ UiAvatarTag, UiCard, UiAccordion, UiAlert, UiAvatar, UiBadge, UiBarChart, UiBottomSheet, UiButton,
437
+ UiCheckbox, UiCodeImage, UiChip, UiCodeEditor, UiConfirmDialog, UiDataTable, UiDatePicker,
438
+ UiEmptyState, UiFileDropzone, UiFloatingMenu, UiGauge, UiGaugeSlider, UiHeatmap,
439
+ UiProgress, UiRadioGroup, UiRangeDatePicker, UiRangeSlider, UiRangeTimePicker,
440
+ UiCardGroup, UiCodeSlots, UiRotatingText, UiScrubField, UiStatusMark,
441
+ UiStepFlow, UiSwipeRow, UiText, UiToolCallChip, UiTooltipGroup,
442
+ UiRating, UiRingProgress, UiRingSlider, UiRollNumber, UiSchemaForm,
443
+ UiSearchField, UiSelect, UiSegmented, UiSkeleton, UiSlider, UiMorphPanel, UiSparkline, UiSpinner,
444
+ UiStepper, UiSwitch, UiTabBar, UiTagInput, UiTerminalOutput, UiTextarea, UiTimePicker,
445
+ UiToastHost, UiToolMenu, UiTooltip, UiTreeView, UiVirtualList, UiWheelColumn,
446
+ UiWheel, UiWheelDatePicker,
447
+ ExpandableCard, RouteExpandCard, EmptyRoute,
448
+ useFocusTrap, useRovingTabindex, srOnly,
449
+ vRipple, vIntersect, vResize, vClickOutside, zeroDirectives,
450
+ createShortcuts, defineShortcuts,
451
+ ICONS, registerIcons, iconMarkup,
452
+ SPRINGS, animateSpring
453
+ }