@tresjs/leches 0.7.0 → 0.9.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.
- package/dist/components/BooleanControl.vue.d.ts +1 -1
- package/dist/components/ColorControl.vue.d.ts +1 -1
- package/dist/components/ControlInput.vue.d.ts +1 -1
- package/dist/components/FPSGraph.vue.d.ts +1 -1
- package/dist/components/Folder.vue.d.ts +13 -5
- package/dist/components/NumberControl.vue.d.ts +1 -1
- package/dist/components/SelectControl.vue.d.ts +1 -1
- package/dist/components/SliderControl.vue.d.ts +1 -1
- package/dist/components/TextControl.vue.d.ts +1 -1
- package/dist/components/TresLeches.vue.d.ts +9 -1
- package/dist/components/VectorControl.vue.d.ts +1 -1
- package/dist/composables/useControls.d.ts +15 -4
- package/dist/composables/useDraggable/component.d.ts +15 -0
- package/dist/composables/useDraggable/index.d.ts +101 -0
- package/dist/index.d.ts +2 -2
- package/dist/style.css +2 -2
- package/dist/tresleches.js +461 -499
- package/dist/tresleches.umd.cjs +2 -2
- package/dist/utils/is.d.ts +6 -0
- package/dist/utils/normalize.d.ts +2 -2
- package/package.json +30 -19
package/dist/tresleches.umd.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* name: @tresjs/leches
|
|
3
|
-
* version: v0.
|
|
3
|
+
* version: v0.9.0
|
|
4
4
|
* (c) 2023
|
|
5
5
|
* description: Tasty GUI for Vue controls 🍰
|
|
6
6
|
* author: Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)
|
|
7
7
|
*/
|
|
8
|
-
(function(_,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@vueuse/core")):typeof define=="function"&&define.amd?define(["exports","vue","@vueuse/core"],e):(_=typeof globalThis<"u"?globalThis:_||self,e(_.tresleches={},_.Vue,_.VueUseCore))})(this,function(_,e,w){"use strict";const tt="";function V(o){return e.getCurrentScope()?(e.onScopeDispose(o),!0):!1}function E(o){return typeof o=="function"?o():e.unref(o)}const v=typeof window<"u",S=()=>{},M=A();function A(){var o;return v&&((o=window==null?void 0:window.navigator)==null?void 0:o.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent)}function R(...o){if(o.length!==1)return e.toRef(...o);const l=o[0];return typeof l=="function"?e.readonly(e.customRef(()=>({get:l,set:S}))):e.ref(l)}function X(o){var l;const t=E(o);return(l=t==null?void 0:t.$el)!=null?l:t}const U=v?window:void 0;function W(...o){let l,t,n,r;if(typeof o[0]=="string"||Array.isArray(o[0])?([t,n,r]=o,l=U):[l,t,n,r]=o,!l)return S;Array.isArray(t)||(t=[t]),Array.isArray(n)||(n=[n]);const a=[],s=()=>{a.forEach(u=>u()),a.length=0},i=(u,c,p,k)=>(u.addEventListener(c,p,k),()=>u.removeEventListener(c,p,k)),f=e.watch(()=>[X(l),E(r)],([u,c])=>{s(),u&&a.push(...t.flatMap(p=>n.map(k=>i(u,p,k,c))))},{immediate:!0,flush:"post"}),b=()=>{f(),s()};return V(b),b}var K=Object.defineProperty,Y=Object.defineProperties,H=Object.getOwnPropertyDescriptors,D=Object.getOwnPropertySymbols,q=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable,N=(o,l,t)=>l in o?K(o,l,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[l]=t,J=(o,l)=>{for(var t in l||(l={}))q.call(l,t)&&N(o,t,l[t]);if(D)for(var t of D(l))G.call(l,t)&&N(o,t,l[t]);return o},Q=(o,l)=>Y(o,H(l));const Z=e.defineComponent({name:"UseDraggable",props:["storageKey","storageType","initialValue","exact","preventDefault","stopPropagation","pointerTypes","as","handle","axis","onStart","onMove","onEnd"],setup(o,{slots:l}){const t=e.ref(),n=e.computed(()=>{var f;return(f=o.handle)!=null?f:t.value}),r=o.storageKey&&w.useStorage(o.storageKey,E(o.initialValue)||{x:0,y:0},w.isClient?o.storageType==="session"?sessionStorage:localStorage:void 0),a=r||o.initialValue||{x:0,y:0},s=(f,b)=>{var u;(u=o.onEnd)==null||u.call(o,f,b),r&&(r.value.x=f.x,r.value.y=f.y)},i=e.reactive(w.useDraggable(t,Q(J({},o),{handle:n,initialValue:a,onEnd:s})));return()=>{if(l.default)return e.h(o.as||"div",{ref:t,style:`touch-action:none;${i.style}`},l.default(i))}}});function I(o){const l=window.getComputedStyle(o);if(l.overflowX==="scroll"||l.overflowY==="scroll"||l.overflowX==="auto"&&o.clientWidth<o.scrollWidth||l.overflowY==="auto"&&o.clientHeight<o.scrollHeight)return!0;{const t=o.parentNode;return!t||t.tagName==="BODY"?!1:I(t)}}function F(o){const l=o||window.event,t=l.target;return I(t)?!1:l.touches.length>1?!0:(l.preventDefault&&l.preventDefault(),!1)}function O(o,l=!1){const t=e.ref(l);let n=null,r;e.watch(R(o),i=>{if(i){const f=i;r=f.style.overflow,t.value&&(f.style.overflow="hidden")}},{immediate:!0});const a=()=>{const i=E(o);!i||t.value||(M&&(n=W(i,"touchmove",f=>{F(f)},{passive:!1})),i.style.overflow="hidden",t.value=!0)},s=()=>{const i=E(o);!i||!t.value||(M&&(n==null||n()),i.style.overflow=r,t.value=!1)};return V(s),e.computed({get(){return t.value},set(i){i?a():s()}})}function ee(){let o=!1;const l=e.ref(!1);return(t,n)=>{if(l.value=n.value,o)return;o=!0;const r=O(t,n.value);e.watch(l,a=>r.value=a)}}ee();const te=Symbol("CONTROLS_CONTEXT_KEY"),m=e.reactive({});function oe(){return e.provide(te,m),m}function C(o){return Object.entries(o).map(([l,t])=>{let n="string",r;const a=/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$|^0x([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;return!e.isRef(t)&&t.value||e.isRef(t)?(n=typeof t.value,r=t.value):(n=typeof t,r=t),n==="number"&&(t.step||t.max||t.min)&&(n="range"),n==="string"&&a.test(r)&&(n="color"),(r.isVector3||r instanceof Array)&&(n="vector"),!e.isRef(t)&&t.value?{...t,label:t.label||l,value:t.value,type:n,visible:!0}:{label:t.label||l,value:t,type:n,visible:!0}})}function ne(){for(const o in m)delete m[o]}function le(o,l,t){const n=e.ref();if(typeof o=="string")o==="fpsgraph"?(m[o]={label:"fpsgraph",visible:!0,type:"fpsgraph"},n.value=m[o]):(m[o]={label:o,visible:!0,type:"folder",controls:l?C(l):[]},n.value=m[o]);else if(typeof o=="object"&&o.options)m[o.label||"Dropdown"]={...t,label:o.label||"Dropdown",visible:!0,value:o.value,type:"select",ref:o,options:o.options},n.value=m[o.label||"Dropdown"];else if(typeof o=="object"&&typeof l=="string")m[l]={...t,label:l,visible:!0,value:o[l],type:typeof o[l],ref:o},n.value=m[l];else if(e.isReactive(o)){const r=e.toRefs(o),a=C(r);for(const s of a)m[s.label]=s;n.value=a}else{const r=C(o);for(const a of r)m[a.label]=a;n.value=r}return e.onUnmounted(ne),n}const re={class:"flex px-4 justify-between gap-4 items-center mb-2"},ae={class:"text-gray-500 w-1/3"},se=["value","min","max","step"],ce=e.defineComponent({__name:"NumberControl",props:{label:{},control:{}},emits:["change"],setup(o,{emit:l}){const t=o;function n(u){const{target:c}=u;l("change",c.valueAsNumber)}const r=w.useMouse(),a=e.ref(0),s=e.ref(!1),i=u=>{a.value=u.clientX,s.value=!0},f=()=>{s.value=!1},b=u=>Math.floor(Math.abs(u)/10);return e.watch(r.x,u=>{if(s.value){const c=u-a.value,p=b(c);c>0?l("change",t.control.value+1+p):c<0&&l("change",t.control.value-1+p),t.control.min!==void 0&&t.control.value<t.control.min&&l("change",t.control.min),t.control.max!==void 0&&t.control.value>t.control.max&&l("change",t.control.max),a.value=u}}),(u,c)=>(e.openBlock(),e.createElementBlock("div",re,[e.createElementVNode("label",ae,e.toDisplayString(u.label),1),e.createElementVNode("input",{value:u.control.value,class:e.normalizeClass(["p-2 w-1/3 rounded text-right text-xs text-gray-400 bg-gray-100 focus:border-gray-200 outline-none border-none font-sans",{"cursor-ew-resize":s.value}]),type:"number",min:u.control.min,max:u.control.max,step:u.control.step,onInput:n,onMousedown:i,onMouseup:f},null,42,se)]))}}),ie={class:"flex px-4 justify-between gap-4 items-center mb-2 min-h-32px"},ue={class:"text-gray-500 w-1/3"},fe=["value"],pe=e.defineComponent({__name:"TextControl",props:{label:{},control:{}},emits:["change"],setup(o,{emit:l}){function t(n){l("change",n)}return(n,r)=>(e.openBlock(),e.createElementBlock("div",ie,[e.createElementVNode("label",ue,e.toDisplayString(n.label),1),e.createElementVNode("input",{value:n.control.value,type:"string",class:"p-2 w-2/3 rounded text-right text-xs text-gray-400 bg-gray-100 focus:border-gray-200 outline-none border-none font-sans",onChange:t},null,40,fe)]))}}),de={class:"flex px-4 justify-start gap-2 items-center mb-2 min-h-32px"},me={class:"text-gray-500 w-1/3"},ge=["id","checked"],be=["for"],ye={class:"i-ic:baseline-check text-light"},he=e.defineComponent({__name:"BooleanControl",props:{label:{},control:{}},emits:["change"],setup(o,{emit:l}){function t(n){const{target:r}=n;l("change",r.checked)}return(n,r)=>(e.openBlock(),e.createElementBlock("div",de,[e.createElementVNode("label",me,e.toDisplayString(n.label),1),e.createElementVNode("input",{id:n.control.label,checked:n.control.value,class:"hidden",type:"checkbox",onInput:t},null,40,ge),e.createElementVNode("label",{for:n.control.label,class:"inline-flex items-center cursor-pointer"},[e.createElementVNode("span",{class:e.normalizeClass([{"bg-dark-500":n.control.value,"bg-gray-200":!n.control.value},"w-4 h-4 flex justify-center items-center rounded border border-gray-300 mr-2 transition-colors duration-200"])},[e.withDirectives(e.createElementVNode("i",ye,null,512),[[e.vShow,n.control.value]])],2)],8,be)]))}}),_e={class:"px-4 relative flex justify-between gap-4 items-center mb-2"},we=["value","min","max","step"],ke=["value","min","max","step"],xe=e.defineComponent({__name:"SliderControl",props:{label:{},control:{}},emits:["change"],setup(o,{emit:l}){const t=o;function n(c){const{target:p}=c;l("change",p.valueAsNumber)}const r=e.computed(()=>({backgroundImage:`linear-gradient(to right, #333 0% ${100*(t.control.value-(t.control.min||0))/((t.control.max||100)-(t.control.min||0))}%, #e2e2e2 0%)`})),a=w.useMouse(),s=e.ref(0),i=e.ref(!1),f=c=>{s.value=c.clientX,i.value=!0},b=()=>{i.value=!1},u=c=>Math.floor(Math.abs(c)/10);return e.watch(a.x,c=>{if(i.value){const p=c-s.value,k=u(p);p>0?l("change",t.control.value+1+k):p<0&&l("change",t.control.value-1+k),t.control.min!==void 0&&t.control.value<t.control.min&&l("change",t.control.min),t.control.max!==void 0&&t.control.value>t.control.max&&l("change",t.control.max),s.value=c}}),(c,p)=>(e.openBlock(),e.createElementBlock("div",_e,[e.createElementVNode("label",{class:e.normalizeClass(["text-gray-500 w-1/3",{"flex justify-between items-center":c.control.icon}])},[e.createTextVNode(e.toDisplayString(c.label)+" ",1),e.createElementVNode("i",{class:e.normalizeClass(`i-${c.control.icon}`)},null,2)],2),e.createElementVNode("input",{value:c.control.value,class:"w-1/2 h-0.75 bg-dark-200 rounded-full appearance-none",style:e.normalizeStyle(r.value),type:"range",min:c.control.min,max:c.control.max,step:c.control.step,onInput:n},null,44,we),e.createElementVNode("input",{value:c.control.value,class:e.normalizeClass(["p-2 w-1/4 rounded text-right text-xs text-gray-400 bg-gray-100 focus:border-gray-200 outline-none border-none font-sans",{"cursor-ew-resize":i.value}]),type:"number",min:c.control.min,max:c.control.max,step:c.control.step,onInput:n,onMousedown:f,onMouseup:b},null,42,ke)]))}}),ot="",Ee=((o,l)=>{const t=o.__vccOpts||o;for(const[n,r]of l)t[n]=r;return t})(xe,[["__scopeId","data-v-743fd350"]]),Be={class:"flex px-4 justify-between gap-4 items-center mb-2"},Ce={class:"text-gray-500 w-1/3"},$e=["value"],Ve=["value"],ve=e.defineComponent({__name:"ColorControl",props:{label:{},control:{}},emits:["change"],setup(o,{emit:l}){function t(n){const{target:r}=n;l("change",r.value)}return(n,r)=>(e.openBlock(),e.createElementBlock("div",Be,[e.createElementVNode("label",Ce,e.toDisplayString(n.label),1),e.createElementVNode("input",{value:n.control.value,type:"color",onInput:t},null,40,$e),e.createElementVNode("input",{value:n.control.value,class:"p-2 w-2/3 rounded text-right text-xs text-gray-400 bg-gray-100 focus:border-gray-200 outline-none border-none font-sans",type:"text",onInput:t},null,40,Ve)]))}}),lt="";function Se(o){if(typeof o=="number")return[o,o,o];if(T(o)){const{x:l,y:t,z:n}=o;return[l,t,n]}return o}function Me(o){return o&&typeof o.x=="number"&&typeof o.y=="number"&&typeof o.z>"u"}function T(o){return o&&typeof o.x=="number"&&typeof o.y=="number"&&typeof o.z=="number"}const De={class:"flex px-4 justify-between gap-2 items-center mb-2"},Ne={class:"text-gray-500 w-1/3"},Ie={class:"w-2/3 flex justify-between gap-1"},Te={key:0,class:"font-bold px-0.5 py-1 text-0.65rem text-gray-300"},je=["value","onInput","onMousedown","onMouseup"],Pe=e.defineComponent({__name:"VectorControl",props:{label:{},control:{}},emits:["change"],setup(o,{emit:l}){const t=o,n=w.useMouse(),r=e.ref(0),a=e.ref(!1),s=e.ref(0),i=(g,y)=>{s.value=y,r.value=g.clientX,a.value=!0},f=(g,y)=>{s.value=y,a.value=!1},b=g=>Math.floor(Math.abs(g)/10),u=e.computed(()=>Se(t.control.value)),c=e.computed(()=>Object.keys(t.control.value)),p=e.computed(()=>Me(t.control.value)||T(t.control.value));function k(g,y){const{value:x}=t.control,{target:d}=g;s.value=y,x[p.value?c.value[s.value]:s.value]=parseInt(d.value,10),l("change",x)}return e.watch(n.x,g=>{if(a.value){const y=g-r.value,x=b(y),{value:d}=t.control,h=p.value?c.value[s.value]:s.value;y>0?d[h]+=1+x:y<0&&(d[h]-=1+x),t.control.min!==void 0&&d<t.control.min&&(d[h]=t.control.min),t.control.max!==void 0&&d>t.control.max&&(d[h]=t.control.max),l("change",d),r.value=g}}),(g,y)=>(e.openBlock(),e.createElementBlock("div",De,[e.createElementVNode("label",Ne,e.toDisplayString(g.label),1),e.createElementVNode("div",Ie,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,(x,d)=>(e.openBlock(),e.createElementBlock("div",{key:g.label+d,class:"flex items-center w-1/3 bg-gray-100 rounded"},[c.value[d]&&p.value?(e.openBlock(),e.createElementBlock("span",Te,e.toDisplayString(c.value[d]),1)):e.createCommentVNode("",!0),e.createElementVNode("input",{type:"text",class:e.normalizeClass(["w-full pl-0 p-1 text-right text-0.65rem text-gray-400 bg-transparent focus:border-gray-200 outline-none border-none font-sans",{"cursor-ew-resize":a.value}]),value:u.value[d].toFixed(2),onInput:h=>k(h,d),onMousedown:h=>i(h,d),onMouseup:h=>f(h,d)},null,42,je)]))),128))])]))}}),ze={class:"mb-4"},Le={class:"bg-white rounded-b pt-4"},Ae=e.defineComponent({__name:"Folder",props:{control:{}},setup(o){function l(r,a){a.value=r}const t=e.ref(!1),n=()=>{t.value=!t.value};return(r,a)=>(e.openBlock(),e.createElementBlock("div",ze,[e.createElementVNode("button",{class:"flex items-center justify-between w-full p-4 bg-gray-100 border-none text-gray-400 font-bold text-xs focus:outline-none font-sans cursor-pointer",onClick:n},[e.createElementVNode("span",null,e.toDisplayString(r.control.label),1),e.createElementVNode("i",{class:e.normalizeClass(t.value?"i-ic:baseline-keyboard-arrow-up":"i-ic:baseline-keyboard-arrow-down")},null,2)]),e.createVNode(e.Transition,{name:"slide","enter-active-class":" animate-fade-in animate-duration-200 animate-ease-in-out","leave-active-class":" animate-fade-out animate-duration-200 animate-ease-in-out"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",Le,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.control.controls,s=>(e.openBlock(),e.createBlock(L,{key:s.label,control:s,onChange:i=>l(i,s)},null,8,["control","onChange"]))),128))],512),[[e.vShow,t.value]])]),_:1})]))}}),Re={class:"flex px-4 justify-between gap-4 items-center mb-2"},Xe={class:"text-gray-500 w-1/3"},Ue={class:"relative w-2/3 p-1 rounded text-right text-xs text-gray-400 bg-gray-100 focus:border-gray-200 outline-none border-none font-sans"},We={class:"absolute bottom-0.5 right-0.5 font-sans text-xs"},Ke=["points"],j=160,$=40,B=2,P=100,z=20,Ye=e.defineComponent({__name:"FPSGraph",props:{label:{},control:{}},setup(o){const l=w.useFps({every:P}),t=e.ref(""),n=e.ref([]),r=e.ref(j/B);let a=performance.now();return w.useRafFn(({timestamp:s})=>{s-a>=P&&(a=s,n.value.push(l.value),n.value.length>r.value&&n.value.shift(),t.value=n.value.map((i,f)=>`${f*B},${$+z-B/2-i*($+z-B)/120}`).join(" "))}),(s,i)=>(e.openBlock(),e.createElementBlock("div",Re,[e.createElementVNode("label",Xe,e.toDisplayString(s.label),1),e.createElementVNode("div",Ue,[e.createElementVNode("div",We,e.toDisplayString(Math.round(e.unref(l)))+" FPS",1),(e.openBlock(),e.createElementBlock("svg",{width:j,height:$,xmlns:"http://www.w3.org/2000/svg",class:"bg-gray-100"},[e.createElementVNode("polyline",{points:t.value,fill:"none",stroke:"lightgray","stroke-width":B,"stroke-linecap":"round","stroke-linejoin":"round"},null,8,Ke)]))])]))}}),He={class:"flex px-4 justify-between gap-4 items-center mb-2 min-h-32px"},qe={class:"text-gray-500 w-1/3"},Ge=["value"],Je=["value"],Qe=e.defineComponent({__name:"SelectControl",props:{label:{},control:{}},emits:["change"],setup(o,{emit:l}){function t(n){l("change",n.target.value)}return(n,r)=>(e.openBlock(),e.createElementBlock("div",He,[e.createElementVNode("label",qe,e.toDisplayString(n.label),1),e.createElementVNode("select",{value:n.control.value,class:"p-2 w-2/3 rounded text-left text-xs text-gray-400 bg-gray-100 focus:border-gray-200 outline-none border-none font-sans",onChange:t},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.control.options,a=>(e.openBlock(),e.createElementBlock("option",{key:a.value,value:a.value},e.toDisplayString(a.text),9,Je))),128))],40,Ge)]))}}),L=e.defineComponent({__name:"ControlInput",props:{control:{}},emits:["change"],setup(o,{emit:l}){function t(n){l("change",n)}return(n,r)=>n.control.visible?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n.control.type==="color"?(e.openBlock(),e.createBlock(ve,{key:0,label:n.control.label,control:n.control,onChange:t},null,8,["label","control"])):n.control.type==="vector"?(e.openBlock(),e.createBlock(Pe,{key:1,label:n.control.label,control:n.control,onChange:t},null,8,["label","control"])):n.control.type==="boolean"?(e.openBlock(),e.createBlock(he,{key:2,label:n.control.label,control:n.control,onChange:t},null,8,["label","control"])):n.control.type==="fpsgraph"?(e.openBlock(),e.createBlock(Ye,{key:3,label:n.control.label,control:n.control},null,8,["label","control"])):n.control.type==="folder"?(e.openBlock(),e.createBlock(Ae,{key:4,label:n.control.label,control:n.control},null,8,["label","control"])):n.control.type==="number"?(e.openBlock(),e.createBlock(ce,{key:5,label:n.control.label,control:n.control,onChange:t},null,8,["label","control"])):n.control.type==="range"?(e.openBlock(),e.createBlock(Ee,{key:6,label:n.control.label,control:n.control,onChange:t},null,8,["label","control"])):n.control.type==="select"?(e.openBlock(),e.createBlock(Qe,{key:7,label:n.control.label,control:n.control,onChange:t},null,8,["label","control"])):(e.openBlock(),e.createBlock(pe,{key:8,label:n.control.label,control:n.control,onChange:t},null,8,["label","control"]))],64)):e.createCommentVNode("",!0)}}),Ze={class:"bg-white shadow-xl rounded border-4 border-solid border-black"},Fe=[e.createElementVNode("i",{class:"h-4 w-4 p-1.5 flex items-center line-height-0 rounded-full bg-gray-100 text-xs"},"🍰",-1),e.createElementVNode("div",null,[e.createElementVNode("i",{class:"i-ic-baseline-drag-indicator"}),e.createElementVNode("i",{class:"i-ic-baseline-drag-indicator"}),e.createElementVNode("i",{class:"i-ic-baseline-drag-indicator"})],-1),e.createElementVNode("div",null,null,-1)],Oe=280,et=e.defineComponent({__name:"TresLeches",setup(o){const{width:l}=w.useWindowSize(),t=e.ref(null),n=oe();function r(a,s){s.ref&&(s.ref[s.label]=a),s.value=a}return(a,s)=>(e.openBlock(),e.createBlock(e.unref(Z),{"initial-value":{x:e.unref(l)-Oe-20,y:10},class:e.normalizeClass(["absolute select-none z-24 w-280px font-sans text-xs",a.$attrs.class]),handle:t.value},{default:e.withCtx(()=>[e.createElementVNode("div",Ze,[e.createElementVNode("header",{ref_key:"handle",ref:t,class:"relative cursor-grabbing p-4 flex justify-between text-gray-200 relative"},Fe,512),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n),i=>(e.openBlock(),e.createBlock(L,{key:i.label,control:i,onChange:f=>r(f,i)},null,8,["control","onChange"]))),128))])]),_:1},8,["initial-value","class","handle"]))}});_.TresLeches=et,_.useControls=le,Object.defineProperty(_,Symbol.toStringTag,{value:"Module"})});
|
|
8
|
+
(function(w,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@vueuse/core")):typeof define=="function"&&define.amd?define(["exports","vue","@vueuse/core"],e):(w=typeof globalThis<"u"?globalThis:w||self,e(w.tresleches={},w.Vue,w.VueUseCore))})(this,function(w,e,x){"use strict";const je="";function E(t){return typeof t=="function"?t():e.unref(t)}const M=typeof window<"u"&&typeof document<"u";function R(t,r={}){if(!e.isRef(t))return e.toRefs(t);const o=Array.isArray(t.value)?Array.from({length:t.value.length}):{};for(const n in t.value)o[n]=e.customRef(()=>({get(){return t.value[n]},set(a){var c;if((c=E(r.replaceRef))!=null?c:!0)if(Array.isArray(t.value)){const p=[...t.value];p[n]=a,t.value=p}else{const p={...t.value,[n]:a};Object.setPrototypeOf(p,Object.getPrototypeOf(t.value)),t.value=p}else t.value[n]=a}}));return o}const U=M?window:void 0;function P(t,r={}){const{pointerTypes:o,preventDefault:n,stopPropagation:a,exact:c,onMove:s,onEnd:p,onStart:f,initialValue:y,axis:i="both",draggingElement:l=U,handle:d=t}=r,{width:_}=x.useWindowSize();let u=_.value;const h=e.ref(E(y)??{x:0,y:0});e.watch(_,()=>{const g=_.value-u;h.value.x+=g,u=_.value});const b=e.ref(),m=g=>o?o.includes(g.pointerType):!0,k=g=>{E(n)&&g.preventDefault(),E(a)&&g.stopPropagation()},Pe=g=>{if(!m(g)||E(c)&&g.target!==E(t))return;const V=E(t).getBoundingClientRect(),$={x:g.clientX-V.left,y:g.clientY-V.top};(f==null?void 0:f($,g))!==!1&&(b.value=$,k(g))},Xe=g=>{if(!m(g)||!b.value)return;let{x:V,y:$}=h.value;(i==="x"||i==="both")&&(V=g.clientX-b.value.x),(i==="y"||i==="both")&&($=g.clientY-b.value.y),h.value={x:V,y:$},s==null||s(h.value,g),k(g)},We=g=>{m(g)&&b.value&&(b.value=void 0,p==null||p(h.value,g),k(g))};if(M){const g={capture:r.capture??!0};x.useEventListener(d,"pointerdown",Pe,g),x.useEventListener(l,"pointermove",Xe,g),x.useEventListener(l,"pointerup",We,g)}return{...R(h),position:h,isDragging:e.computed(()=>!!b.value),style:e.computed(()=>`left:${h.value.x}px;top:${h.value.y}px;`)}}const X=e.defineComponent({name:"UseDraggable",props:["storageKey","storageType","initialValue","exact","preventDefault","stopPropagation","pointerTypes","as","handle","axis","onStart","onMove","onEnd"],setup(t,{slots:r}){const o=e.ref(),n=e.computed(()=>t.handle??o.value),a=t.storageKey&&x.useStorage(t.storageKey,E(t.initialValue)||{x:0,y:0},x.isClient?t.storageType==="session"?sessionStorage:localStorage:void 0),c=a||t.initialValue||{x:0,y:0},s=(f,y)=>{var i;(i=t.onEnd)==null||i.call(t,f,y),a&&(a.value.x=f.x,a.value.y=f.y)},p=e.reactive(P(o,{...t,handle:n,initialValue:c,onEnd:s}));return()=>{if(r.default)return e.h(t.as||"div",{ref:o,style:`touch-action:none;${p.style}`},r.default(p))}}}),W=Symbol("CONTROLS_CONTEXT_KEY"),T="default",C=e.reactive({});function F(t=T){return e.provide(W,C),C[t]}const S=t=>{const r=/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$|^0x([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;return typeof t=="boolean"?"boolean":typeof t=="number"?"number":typeof t=="string"&&r.test(t)?"color":typeof t=="string"?"string":t.isVector3||t.isVector2||t.isEuler||t instanceof Array?"vector":t.min!==void 0||t.max!==void 0||t.step!==void 0?"range":t.options&&Array.isArray(t.options)&&t.options.every(o=>"text"in o&&"value"in o)?"select":"unknown"},N=(t,r,o,n)=>{const a={label:e.ref(t),name:e.ref(t),type:e.ref(o),value:e.ref(r),visible:e.ref(!0),[t]:e.ref(r)};return n&&(a.folder=e.ref(n)),a},j=(t,r,o)=>{const n={},a=typeof t=="string"?t:null,c=a?r:t,s=a&&a!=="fpsgraph"?o:r,p=(s==null?void 0:s.uuid)||T;if(C[p]||(C[p]=e.reactive({})),t==="fpsgraph"){const l=N("fpsgraph",null,"fpsgraph",null);return C[p].fpsgraph=l,n.fpsgraph=l,e.toRefs(e.reactive(n))}const f=C[p],y=e.isReactive(c),i=y?e.toRefs(c):{};for(const l in c){let d=c[l];if(y&&i[l]&&(d=i[l]),typeof d=="object"&&!e.isRef(d)&&!Array.isArray(d)&&d.value!==void 0){const u=d,h=e.isRef(u.value)?u.value:e.ref(u.value),b=S(u),m=N(l,h,b,a);b==="select"&&(m.options=e.ref(u.options)),b==="range"&&(m.min=e.ref(u.min),m.max=e.ref(u.max),m.step=e.ref(u.step)),f[l]=m,n[l]=m;continue}if(e.isRef(d)){const u=N(l,d,S(d.value),a);f[l]=u,n[l]=u;continue}else if(typeof d=="object"&&!Array.isArray(d)){const u=e.toRefs(d);u[l]&&(d=u[l])}const _=N(l,d,S(d),a);f[l]=_,n[l]=_}return Object.keys(n).length>1?e.toRefs(e.reactive(n)):Object.values(n)[0]},K={class:"flex px-4 justify-between gap-4 items-center mb-2"},Y={class:"text-gray-500 w-1/3"},q=["value","min","max","step"],H=e.defineComponent({__name:"NumberControl",props:{label:{},control:{}},emits:["change"],setup(t,{emit:r}){const o=t;function n(i){const{target:l}=i;r("change",l.valueAsNumber)}const a=x.useMouse(),c=e.ref(0),s=e.ref(!1),p=i=>{c.value=i.clientX,s.value=!0},f=()=>{s.value=!1},y=i=>Math.floor(Math.abs(i)/10);return e.watch(a.x,i=>{if(s.value){const l=i-c.value,d=y(l);l>0?r("change",o.control.value+1+d):l<0&&r("change",o.control.value-1+d),o.control.min!==void 0&&o.control.value<o.control.min&&r("change",o.control.min),o.control.max!==void 0&&o.control.value>o.control.max&&r("change",o.control.max),c.value=i}}),(i,l)=>(e.openBlock(),e.createElementBlock("div",K,[e.createElementVNode("label",Y,e.toDisplayString(i.label),1),e.createElementVNode("input",{value:i.control.value,class:e.normalizeClass(["p-2 w-1/3 rounded text-right text-xs text-gray-400 bg-gray-100 focus:border-gray-200 outline-none border-none font-sans",{"cursor-ew-resize":s.value}]),type:"number",min:i.control.min,max:i.control.max,step:i.control.step,onInput:n,onMousedown:p,onMouseup:f},null,42,q)]))}}),G={class:"flex px-4 justify-between gap-4 items-center mb-2 min-h-32px"},J={class:"text-gray-500 w-1/3"},Q=["value"],Z=e.defineComponent({__name:"TextControl",props:{label:{},control:{}},emits:["change"],setup(t,{emit:r}){function o(n){const{target:a}=n;r("change",a.value)}return(n,a)=>(e.openBlock(),e.createElementBlock("div",G,[e.createElementVNode("label",J,e.toDisplayString(n.label),1),e.createElementVNode("input",{value:n.control.value,type:"text",class:"p-2 w-2/3 rounded text-right text-xs text-gray-400 bg-gray-100 focus:border-gray-200 outline-none border-none font-sans",onChange:o},null,40,Q)]))}}),v={class:"flex px-4 justify-start gap-2 items-center mb-2 min-h-32px"},ee={class:"text-gray-500 w-1/3"},te=["id","checked"],ne=["for"],oe={class:"i-ic:baseline-check text-light"},le=e.defineComponent({__name:"BooleanControl",props:{label:{},control:{}},emits:["change"],setup(t,{emit:r}){function o(n){const{target:a}=n;r("change",a.checked)}return(n,a)=>(e.openBlock(),e.createElementBlock("div",v,[e.createElementVNode("label",ee,e.toDisplayString(n.label),1),e.createElementVNode("input",{id:n.control.label,checked:n.control.value,class:"hidden",type:"checkbox",onInput:o},null,40,te),e.createElementVNode("label",{for:n.control.label,class:"inline-flex items-center cursor-pointer"},[e.createElementVNode("span",{class:e.normalizeClass([{"bg-dark-500":n.control.value,"bg-gray-200":!n.control.value},"w-4 h-4 flex justify-center items-center rounded border border-gray-300 mr-2 transition-colors duration-200"])},[e.withDirectives(e.createElementVNode("i",oe,null,512),[[e.vShow,n.control.value]])],2)],8,ne)]))}}),re={class:"px-4 relative flex justify-between gap-4 items-center mb-2"},ae=["value","min","max","step"],se=["value","min","max","step"],ce=e.defineComponent({__name:"SliderControl",props:{label:{},control:{}},emits:["change"],setup(t,{emit:r}){const o=t;function n(l){const{target:d}=l;r("change",d.valueAsNumber)}const a=e.computed(()=>({backgroundImage:`linear-gradient(to right, #333 0% ${100*(o.control.value-(o.control.min||0))/((o.control.max||100)-(o.control.min||0))}%, #e2e2e2 0%)`})),c=x.useMouse(),s=e.ref(0),p=e.ref(!1),f=l=>{s.value=l.clientX,p.value=!0},y=()=>{p.value=!1},i=l=>Math.floor(Math.abs(l)/10);return e.watch(c.x,l=>{if(p.value){const d=l-s.value,_=i(d);d>0?r("change",o.control.value+1+_):d<0&&r("change",o.control.value-1+_),o.control.min!==void 0&&o.control.value<o.control.min&&r("change",o.control.min),o.control.max!==void 0&&o.control.value>o.control.max&&r("change",o.control.max),s.value=l}}),(l,d)=>(e.openBlock(),e.createElementBlock("div",re,[e.createElementVNode("label",{class:e.normalizeClass(["text-gray-500 w-1/3",{"flex justify-between items-center":l.control.icon}])},[e.createTextVNode(e.toDisplayString(l.label)+" ",1),e.createElementVNode("i",{class:e.normalizeClass(`i-${l.control.icon}`)},null,2)],2),e.createElementVNode("input",{value:l.control.value,class:"w-1/2 h-0.75 bg-dark-200 rounded-full appearance-none",style:e.normalizeStyle(a.value),type:"range",min:l.control.min,max:l.control.max,step:l.control.step,onInput:n},null,44,ae),e.createElementVNode("input",{value:l.control.value,class:e.normalizeClass(["p-2 w-1/4 rounded text-right text-xs text-gray-400 bg-gray-100 focus:border-gray-200 outline-none border-none font-sans",{"cursor-ew-resize":p.value}]),type:"number",min:l.control.min,max:l.control.max,step:l.control.step,onInput:n,onMousedown:f,onMouseup:y},null,42,se)]))}}),Ke="",ie=((t,r)=>{const o=t.__vccOpts||t;for(const[n,a]of r)o[n]=a;return o})(ce,[["__scopeId","data-v-9e6267fe"]]),de={class:"flex px-4 justify-between gap-4 items-center mb-2"},pe={class:"text-gray-500 w-1/3"},fe=["value"],ue=["value"],me=e.defineComponent({__name:"ColorControl",props:{label:{},control:{}},emits:["change"],setup(t,{emit:r}){function o(n){const{target:a}=n;r("change",a.value)}return(n,a)=>(e.openBlock(),e.createElementBlock("div",de,[e.createElementVNode("label",pe,e.toDisplayString(n.label),1),e.createElementVNode("input",{value:n.control.value,type:"color",onInput:o},null,40,fe),e.createElementVNode("input",{value:n.control.value,class:"p-2 w-2/3 rounded text-right text-xs text-gray-400 bg-gray-100 focus:border-gray-200 outline-none border-none font-sans",type:"text",onInput:o},null,40,ue)]))}}),qe="";function ge(t){if(typeof t=="number")return[t,t,t];if(I(t)){const{x:r,y:o,z:n}=t;return[r,o,n]}return t}function he(t){return t&&typeof t.x=="number"&&typeof t.y=="number"&&typeof t.z>"u"}function I(t){return t&&typeof t.x=="number"&&typeof t.y=="number"&&typeof t.z=="number"}const ye={class:"flex px-4 justify-between gap-1 items-center mb-2"},be={class:"text-gray-500 w-1/3"},_e={class:"w-2/3 flex justify-between gap-0.5"},ke={key:0,class:"font-bold px-1 py-1 text-0.65rem text-gray-300"},xe=["value","onInput","onMousedown","onMouseup"],we=e.defineComponent({__name:"VectorControl",props:{label:{},control:{}},emits:["change"],setup(t,{emit:r}){const o=t,n=x.useMouse(),a=e.ref(0),c=e.ref(!1),s=e.ref(0),p=(u,h)=>{s.value=h,a.value=u.clientX,c.value=!0},f=(u,h)=>{s.value=h,c.value=!1},y=u=>Math.floor(Math.abs(u)/10),i=e.computed(()=>ge(o.control.value)),l=e.ref(["x","y","z"]),d=e.computed(()=>he(o.control.value)||I(o.control.value));function _(u,h){const{value:b}=o.control,{target:m}=u;s.value=h,b[d.value?l.value[s.value]:s.value]=parseInt(m.value,10),r("change",b)}return e.watch(n.x,u=>{if(c.value){const h=u-a.value,b=y(h),{value:m}=o.control,k=d.value?l.value[s.value]:s.value;h>0?m[k]+=.1+b:h<0&&(m[k]-=.1+b),o.control.min!==void 0&&m<o.control.min&&(m[k]=o.control.min),o.control.max!==void 0&&m>o.control.max&&(m[k]=o.control.max),r("change",m),a.value=u}}),(u,h)=>(e.openBlock(),e.createElementBlock("div",ye,[e.createElementVNode("label",be,e.toDisplayString(u.label),1),e.createElementVNode("div",_e,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(b,m)=>(e.openBlock(),e.createElementBlock("div",{key:u.label+m,class:"flex items-center w-1/3 bg-gray-100 rounded"},[l.value[m]&&d.value?(e.openBlock(),e.createElementBlock("span",ke,e.toDisplayString(l.value[m]),1)):e.createCommentVNode("",!0),e.createElementVNode("input",{type:"text",class:e.normalizeClass(["w-full pl-0 p-1 text-right text-0.65rem text-gray-400 bg-transparent focus:border-gray-200 outline-none border-none font-sans",{"cursor-ew-resize":c.value}]),value:i.value[m].toFixed(2),onInput:k=>_(k,m),onMousedown:k=>p(k,m),onMouseup:k=>f(k,m)},null,42,xe)]))),128))])]))}}),Ee={class:"flex px-4 justify-between gap-4 items-center mb-2"},Ce={class:"text-gray-500 w-1/3"},Be={class:"relative w-2/3 p-1 rounded text-right text-xs text-gray-400 bg-gray-100 focus:border-gray-200 outline-none border-none font-sans"},Ve={class:"absolute bottom-0.5 right-0.5 font-sans text-xs"},$e=["points"],z=160,D=40,B=2,A=100,L=20,Ne=e.defineComponent({__name:"FPSGraph",props:{label:{},control:{}},setup(t){const r=x.useFps({every:A}),o=e.ref(""),n=e.ref([]),a=e.ref(z/B);let c=performance.now();return x.useRafFn(({timestamp:s})=>{s-c>=A&&(c=s,n.value.push(r.value),n.value.length>a.value&&n.value.shift(),o.value=n.value.map((p,f)=>`${f*B},${D+L-B/2-p*(D+L-B)/120}`).join(" "))}),(s,p)=>(e.openBlock(),e.createElementBlock("div",Ee,[e.createElementVNode("label",Ce,e.toDisplayString(s.label),1),e.createElementVNode("div",Be,[e.createElementVNode("div",Ve,e.toDisplayString(Math.round(e.unref(r)))+" FPS ",1),(e.openBlock(),e.createElementBlock("svg",{width:z,height:D,xmlns:"http://www.w3.org/2000/svg",class:"bg-gray-100"},[e.createElementVNode("polyline",{points:o.value,fill:"none",stroke:"lightgray","stroke-width":B,"stroke-linecap":"round","stroke-linejoin":"round"},null,8,$e)]))])]))}}),Se={class:"flex px-4 justify-between gap-4 items-center mb-2 min-h-32px"},De={class:"text-gray-500 w-1/3"},Me=["value"],Te=["value"],Fe=e.defineComponent({__name:"SelectControl",props:{label:{},control:{}},emits:["change"],setup(t,{emit:r}){function o(n){r("change",n.target.value)}return(n,a)=>(e.openBlock(),e.createElementBlock("div",Se,[e.createElementVNode("label",De,e.toDisplayString(n.label),1),e.createElementVNode("select",{value:n.control.value,class:"p-2 w-2/3 rounded text-left text-xs text-gray-400 bg-gray-100 focus:border-gray-200 outline-none border-none font-sans",onChange:o},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.control.options,c=>(e.openBlock(),e.createElementBlock("option",{key:c.value,value:c.value},e.toDisplayString(c.text),9,Te))),128))],40,Me)]))}}),O=e.defineComponent({__name:"ControlInput",props:{control:{}},emits:["change"],setup(t,{emit:r}){function o(n){r("change",n)}return(n,a)=>n.control.visible?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n.control.type==="color"?(e.openBlock(),e.createBlock(me,{key:0,label:n.control.label,control:n.control,onChange:o},null,8,["label","control"])):n.control.type==="select"?(e.openBlock(),e.createBlock(Fe,{key:1,label:n.control.label,control:n.control,onChange:o},null,8,["label","control"])):n.control.type==="vector"?(e.openBlock(),e.createBlock(we,{key:2,label:n.control.label,control:n.control,onChange:o},null,8,["label","control"])):n.control.type==="boolean"?(e.openBlock(),e.createBlock(le,{key:3,label:n.control.label,control:n.control,onChange:o},null,8,["label","control"])):n.control.type==="fpsgraph"?(e.openBlock(),e.createBlock(Ne,{key:4,label:n.control.label,control:n.control},null,8,["label","control"])):n.control.type==="number"?(e.openBlock(),e.createBlock(H,{key:5,label:n.control.label,control:n.control,onChange:o},null,8,["label","control"])):n.control.type==="range"?(e.openBlock(),e.createBlock(ie,{key:6,label:n.control.label,control:n.control,onChange:o},null,8,["label","control"])):(e.openBlock(),e.createBlock(Z,{key:7,label:n.control.label,control:n.control,onChange:o},null,8,["label","control"]))],64)):e.createCommentVNode("",!0)}}),Ie={class:"mb-4"},ze={class:"bg-white rounded-b pt-4"},Ae=e.defineComponent({__name:"Folder",props:{controls:{},label:{}},setup(t){function r(a,c){c.value=a}const o=e.ref(!1),n=()=>{o.value=!o.value};return(a,c)=>(e.openBlock(),e.createElementBlock("div",Ie,[e.createElementVNode("button",{class:"flex items-center justify-between w-full py-2 px-4 bg-gray-100 border-none text-gray-400 font-bold text-xs focus:outline-none font-sans cursor-pointer",onClick:n},[e.createElementVNode("span",null,e.toDisplayString(a.label),1),e.createElementVNode("i",{class:e.normalizeClass(o.value?"i-ic:baseline-keyboard-arrow-up":"i-ic:baseline-keyboard-arrow-down")},null,2)]),e.createVNode(e.Transition,{name:"slide","enter-active-class":" animate-fade-in animate-duration-200 animate-ease-in-out","leave-active-class":" animate-fade-out animate-duration-200 animate-ease-in-out"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",ze,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.controls,s=>(e.openBlock(),e.createBlock(O,{key:s.label,control:s,onChange:p=>r(p,s)},null,8,["control","onChange"]))),128))],512),[[e.vShow,o.value]])]),_:1})]))}}),Le={class:"bg-white shadow-xl rounded border-4 border-solid border-black"},Oe=[e.createElementVNode("i",{class:"h-4 w-4 p-1.5 flex items-center line-height-0 rounded-full bg-gray-100 text-xs"},"🍰",-1),e.createElementVNode("div",null,[e.createElementVNode("i",{class:"i-ic-baseline-drag-indicator"}),e.createElementVNode("i",{class:"i-ic-baseline-drag-indicator"}),e.createElementVNode("i",{class:"i-ic-baseline-drag-indicator"})],-1),e.createElementVNode("div",null,null,-1)],Re=280,Ue=e.defineComponent({__name:"TresLeches",props:{uuid:{}},setup(t){const r=t,{uuid:o}=e.toRefs(r),{width:n}=x.useWindowSize(),a=e.ref(null),c=F(o==null?void 0:o.value);function s(f,y){c[e.unref(f)].value=y,c[e.unref(f)][e.unref(f)]=y}const p=e.computed(()=>{const f={};for(const y in c){const i=c[y],l=i.folder||"default";f[l]||(f[l]=[]),f[l].push(i)}return f});return(f,y)=>(e.openBlock(),e.createBlock(e.unref(X),{id:e.unref(o),"initial-value":{x:e.unref(n)-Re-40,y:10},class:e.normalizeClass(["absolute select-none z-24 w-280px font-sans text-xs",f.$attrs.class]),handle:a.value},{default:e.withCtx(()=>[e.createElementVNode("div",Le,[e.createElementVNode("header",{ref_key:"handle",ref:a,class:"relative cursor-grabbing p-4 flex justify-between text-gray-200 relative"},Oe,512),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,(i,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:l},[l!=="default"?(e.openBlock(),e.createBlock(Ae,{key:0,label:l,controls:i},null,8,["label","controls"])):e.createCommentVNode("",!0),l==="default"?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(i,d=>(e.openBlock(),e.createBlock(O,{key:d.label,control:d,onChange:_=>s(d.label,_)},null,8,["control","onChange"]))),128)):e.createCommentVNode("",!0)],64))),128))])]),_:1},8,["id","initial-value","class","handle"]))}});w.TresLeches=Ue,w.useControls=j,w.useControlsProvider=F,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})});
|
package/dist/utils/is.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tresjs/leches",
|
|
3
3
|
"description": "Tasty GUI for Vue controls 🍰",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.9.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@8.3.1",
|
|
7
7
|
"author": "Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)",
|
|
@@ -39,48 +39,59 @@
|
|
|
39
39
|
"test": "vitest",
|
|
40
40
|
"test:ci": "vitest run",
|
|
41
41
|
"test:ui": "vitest --ui",
|
|
42
|
+
"test:browser": "BROWSER_TEST=true HEADLESS=true vitest",
|
|
43
|
+
"test:browser:ui": "BROWSER_TEST=true vitest",
|
|
42
44
|
"release": "release-it",
|
|
43
45
|
"coverage": "vitest run --coverage",
|
|
44
46
|
"lint": "eslint . --ext .js,.jsx,.ts,.tsx,.vue",
|
|
45
47
|
"story:dev": "histoire dev",
|
|
46
48
|
"story:build": "histoire build",
|
|
47
|
-
"story:preview": "histoire preview"
|
|
49
|
+
"story:preview": "histoire preview",
|
|
50
|
+
"docs:dev": "vitepress dev docs",
|
|
51
|
+
"docs:build": "vitepress build docs",
|
|
52
|
+
"docs:preview": "vitepress preview docs"
|
|
48
53
|
},
|
|
49
54
|
"peerDependencies": {
|
|
50
55
|
"vue": ">=3.3"
|
|
51
56
|
},
|
|
52
57
|
"dependencies": {
|
|
53
|
-
"@vueuse/components": "^10.
|
|
58
|
+
"@vueuse/components": "^10.4.1"
|
|
54
59
|
},
|
|
55
60
|
"devDependencies": {
|
|
56
61
|
"@alvarosabu/prettier-config": "^1.3.0",
|
|
57
|
-
"@histoire/plugin-vue": "^0.
|
|
62
|
+
"@histoire/plugin-vue": "^0.17.1",
|
|
58
63
|
"@iconify-json/ic": "^1.1.14",
|
|
59
64
|
"@release-it/conventional-changelog": "^7.0.0",
|
|
60
|
-
"@
|
|
61
|
-
"@typescript-eslint/
|
|
62
|
-
"@
|
|
63
|
-
"@
|
|
64
|
-
"@
|
|
65
|
-
"@
|
|
66
|
-
"
|
|
65
|
+
"@tresjs/eslint-config-vue": "^0.2.0",
|
|
66
|
+
"@typescript-eslint/eslint-plugin": "^6.5.0",
|
|
67
|
+
"@typescript-eslint/parser": "^6.5.0",
|
|
68
|
+
"@vitejs/plugin-vue": "^4.3.4",
|
|
69
|
+
"@vitest/browser": "^0.34.3",
|
|
70
|
+
"@vitest/ui": "^0.34.3",
|
|
71
|
+
"@vue/test-utils": "^2.4.1",
|
|
72
|
+
"@vueuse/core": "^10.4.1",
|
|
73
|
+
"@vueuse/shared": "^10.4.1",
|
|
74
|
+
"eslint": "^8.48.0",
|
|
67
75
|
"eslint-config-prettier": "^9.0.0",
|
|
68
76
|
"eslint-plugin-vitest-globals": "^1.4.0",
|
|
69
77
|
"eslint-plugin-vue": "^9.17.0",
|
|
70
|
-
"histoire": "^0.
|
|
78
|
+
"histoire": "^0.17.0",
|
|
71
79
|
"kolorist": "^1.8.0",
|
|
72
80
|
"pathe": "^1.1.1",
|
|
73
|
-
"prettier": "^3.0.
|
|
74
|
-
"release-it": "^16.1.
|
|
81
|
+
"prettier": "^3.0.2",
|
|
82
|
+
"release-it": "^16.1.5",
|
|
75
83
|
"rollup-plugin-analyzer": "^4.0.0",
|
|
76
84
|
"rollup-plugin-visualizer": "^5.9.2",
|
|
77
|
-
"typescript": "^5.
|
|
78
|
-
"unocss": "^0.
|
|
85
|
+
"typescript": "^5.2.2",
|
|
86
|
+
"unocss": "^0.54.0",
|
|
87
|
+
"unplugin-vue-components": "^0.25.1",
|
|
79
88
|
"vite": "^4.4.9",
|
|
80
89
|
"vite-plugin-banner": "^0.7.0",
|
|
81
|
-
"vite-plugin-dts": "^3.5.
|
|
82
|
-
"
|
|
90
|
+
"vite-plugin-dts": "^3.5.3",
|
|
91
|
+
"vitepress": "1.0.0-rc.10",
|
|
92
|
+
"vitest": "^0.34.3",
|
|
83
93
|
"vue": "^3.3.4",
|
|
84
|
-
"vue-tsc": "^1.8.8"
|
|
94
|
+
"vue-tsc": "^1.8.8",
|
|
95
|
+
"webdriverio": "^8.15.9"
|
|
85
96
|
}
|
|
86
97
|
}
|