tweakit 0.5.2 → 0.6.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.
Files changed (111) hide show
  1. package/AGENTS.md +31 -29
  2. package/README.md +55 -29
  3. package/THIRD-PARTY-NOTICES.md +0 -1
  4. package/dist/tweaks/auto.js +2 -0
  5. package/dist/tweaks/auto.js.map +6 -0
  6. package/dist/tweaks/bezier-JFEZMCLP.js +2 -0
  7. package/dist/tweaks/bezier-JFEZMCLP.js.map +6 -0
  8. package/dist/tweaks/chunk-6UO4DHBN.js +2 -0
  9. package/dist/tweaks/chunk-6UO4DHBN.js.map +6 -0
  10. package/dist/tweaks/chunk-DIQMLBAS.js +2 -0
  11. package/dist/tweaks/chunk-DIQMLBAS.js.map +6 -0
  12. package/dist/tweaks/chunk-XE6OUJBG.js +2 -0
  13. package/dist/tweaks/chunk-XE6OUJBG.js.map +6 -0
  14. package/dist/tweaks/clip-WW7JYO4X.js +2 -0
  15. package/dist/tweaks/clip-WW7JYO4X.js.map +6 -0
  16. package/dist/tweaks/color-YMMFURP6.js +2 -0
  17. package/dist/tweaks/color-YMMFURP6.js.map +6 -0
  18. package/dist/tweaks/core.js +2 -1
  19. package/dist/tweaks/core.js.map +6 -0
  20. package/dist/tweaks/{fold-UGN7TXGX.js → fold-U6YRZLCJ.js} +2 -1
  21. package/dist/tweaks/fold-U6YRZLCJ.js.map +6 -0
  22. package/dist/tweaks/gradient-JER7PW4D.js +2 -0
  23. package/dist/tweaks/gradient-JER7PW4D.js.map +6 -0
  24. package/dist/tweaks/heavy-CLD7UAVI.js +2 -0
  25. package/dist/tweaks/heavy-CLD7UAVI.js.map +6 -0
  26. package/dist/tweaks/image-H6QSLGO3.js +4 -0
  27. package/dist/tweaks/image-H6QSLGO3.js.map +6 -0
  28. package/dist/tweaks/image-store-WRKY2NPU.js +2 -0
  29. package/dist/tweaks/image-store-WRKY2NPU.js.map +6 -0
  30. package/dist/tweaks/interval-TEUHQGZN.js +2 -0
  31. package/dist/tweaks/interval-TEUHQGZN.js.map +6 -0
  32. package/dist/tweaks/markup-NIBJD6E2.js +2 -0
  33. package/dist/tweaks/markup-NIBJD6E2.js.map +6 -0
  34. package/dist/tweaks/monitor-3BY7YCGX.js +3 -0
  35. package/dist/tweaks/monitor-3BY7YCGX.js.map +6 -0
  36. package/dist/tweaks/motion-FQPUBKKM.js +2 -0
  37. package/dist/tweaks/motion-FQPUBKKM.js.map +6 -0
  38. package/dist/tweaks/plot-2HBNBZSG.js +3 -0
  39. package/dist/tweaks/plot-2HBNBZSG.js.map +6 -0
  40. package/dist/tweaks/point-VV6XV3I6.js +2 -0
  41. package/dist/tweaks/point-VV6XV3I6.js.map +6 -0
  42. package/dist/tweaks/shadow-5E4E55I2.js +2 -0
  43. package/dist/tweaks/shadow-5E4E55I2.js.map +6 -0
  44. package/dist/tweaks/sides-P3STEVYY.js +2 -0
  45. package/dist/tweaks/sides-P3STEVYY.js.map +6 -0
  46. package/dist/tweaks/spring-HUVSXNVN.js +2 -0
  47. package/dist/tweaks/spring-HUVSXNVN.js.map +6 -0
  48. package/dist/tweaks/tabs-76FW7LQ7.js +2 -0
  49. package/dist/tweaks/tabs-76FW7LQ7.js.map +6 -0
  50. package/dist/tweaks.css +1 -1
  51. package/dist/tweaks.js +6 -3
  52. package/dist/tweaks.js.map +6 -0
  53. package/dist/types/tweaks/easing.d.ts +8 -11
  54. package/dist/types/tweaks/panel.d.ts +6 -4
  55. package/dist/types/tweaks/schema.d.ts +4 -8
  56. package/dist/types/tweaks/standalone.d.ts +3 -3
  57. package/dist/types/tweaks/types.d.ts +278 -101
  58. package/package.json +27 -5
  59. package/src/tweaks/auto.ts +12 -0
  60. package/src/tweaks/clip.ts +94 -0
  61. package/src/tweaks/controls/basic.ts +403 -0
  62. package/src/tweaks/controls/bezier.ts +99 -0
  63. package/src/tweaks/controls/color.ts +412 -0
  64. package/src/tweaks/controls/gradient.ts +240 -0
  65. package/src/tweaks/controls/image.ts +299 -0
  66. package/src/tweaks/controls/interval.ts +104 -0
  67. package/src/tweaks/controls/monitor.ts +105 -0
  68. package/src/tweaks/controls/motion.ts +141 -0
  69. package/src/tweaks/controls/plot.ts +220 -0
  70. package/src/tweaks/controls/point.ts +119 -0
  71. package/src/tweaks/controls/shadow.ts +83 -0
  72. package/src/tweaks/controls/sides.ts +86 -0
  73. package/src/tweaks/controls/spring.ts +148 -0
  74. package/src/tweaks/controls/tabs.ts +47 -0
  75. package/src/tweaks/core.ts +9 -0
  76. package/src/tweaks/easing.ts +93 -0
  77. package/src/tweaks/enhance.ts +20 -0
  78. package/src/tweaks/feedback.ts +119 -0
  79. package/src/tweaks/fold.ts +21 -0
  80. package/src/tweaks/heavy.ts +302 -0
  81. package/src/tweaks/icons.ts +19 -0
  82. package/src/tweaks/image-store.ts +101 -0
  83. package/src/tweaks/lazy.ts +46 -0
  84. package/src/tweaks/markup.ts +154 -0
  85. package/src/tweaks/panel.ts +869 -0
  86. package/src/tweaks/schema.ts +189 -0
  87. package/src/tweaks/shared.ts +525 -0
  88. package/src/tweaks/single.ts +22 -0
  89. package/src/tweaks/standalone.ts +89 -0
  90. package/src/tweaks/types.ts +526 -0
  91. package/src/tweaks.css +959 -0
  92. package/src/wide-gamut.ts +310 -0
  93. package/dist/tweaks/bezier-2RABC6LD.js +0 -1
  94. package/dist/tweaks/chunk-4ATI34PB.js +0 -1
  95. package/dist/tweaks/chunk-7OSCMZ2J.js +0 -1
  96. package/dist/tweaks/chunk-W3JNIJ2F.js +0 -1
  97. package/dist/tweaks/clip-ECGCECEC.js +0 -1
  98. package/dist/tweaks/colour-2RE3FQ5E.js +0 -1
  99. package/dist/tweaks/gradient-DB6XTDHO.js +0 -1
  100. package/dist/tweaks/heavy-PKOMHB3C.js +0 -1
  101. package/dist/tweaks/image-7MCLBOZ3.js +0 -1
  102. package/dist/tweaks/interval-L2E4L3AZ.js +0 -1
  103. package/dist/tweaks/markup-ZJJ6CCWM.js +0 -1
  104. package/dist/tweaks/monitor-IEK742PG.js +0 -2
  105. package/dist/tweaks/motion-N5UNVR55.js +0 -1
  106. package/dist/tweaks/plot-VVTOY3RA.js +0 -2
  107. package/dist/tweaks/point-YMMHSLO7.js +0 -1
  108. package/dist/tweaks/shadow-IKYOV3VN.js +0 -1
  109. package/dist/tweaks/sides-FH227Z54.js +0 -1
  110. package/dist/tweaks/spring-3PKAFIH7.js +0 -1
  111. package/dist/tweaks/tabs-BKK5NIIY.js +0 -1
@@ -1 +0,0 @@
1
- import{j as C}from"./chunk-4ATI34PB.js";import{$ as I,Z as h,u as d,v as j,w as E}from"./chunk-7OSCMZ2J.js";var H=h('<path d="M3 9V7a4 4 0 0 1 4-4h2M15 3h2a4 4 0 0 1 4 4v2M21 15v2a4 4 0 0 1-4 4h-2M9 21H7a4 4 0 0 1-4-4v-2"/>'),q=h('<path d="M3 13V8a5 5 0 0 1 5-5h5"/>',"",1.5,16),z=h('<path d="M3 10V8a5 5 0 0 1 5-5a5 5 0 0 1 5 5v2"/>',"",1.5,16),D=/^(-?\d*\.?\d+)([a-z%]*)$/i,O=t=>t!=null&&t!==""&&Number.isFinite(+t)?+t:null,R=t=>String(+t.toFixed(2)),V=t=>t.length===1?[t[0],t[0],t[0],t[0]]:t.length===2?[t[0],t[1],t[0],t[1]]:t.length===3?[t[0],t[1],t[2],t[1]]:t.slice(0,4),A=(t,g)=>{if(typeof t=="number")return Number.isFinite(t)?[t,t,t,t]:null;if(typeof t=="string"){let i=t.trim().split(/\s+/).map(l=>{let a=D.exec(l);return a?+a[1]:NaN});return i.length>=1&&i.length<=4&&i.every(Number.isFinite)?V(i):null}if(Array.isArray(t)){let i=t.map(O);return i.length>=1&&i.length<=4&&i.every(l=>l!==null)?V(i):null}if(t&&typeof t=="object"){let i=t,l=g.slice(),a=!1;return["top","right","bottom","left"].forEach((e,r)=>{let u=O(i[e]);u!==null&&(l[r]=u,a=!0)}),a?l:null}return null};function G(t,g){let i=typeof t.unit=="string"&&t.unit.trim()?t.unit.trim():"px",l=!!t.corners,a={step:t.step??1,min:t.min??(l?0:void 0),max:t.max,unit:i},e=A(t.value??t,[0,0,0,0])||[0,0,0,0],r=e.every(n=>n===e[0]),u=d("div","tw-sides"),b=C({label:t.label,value:e[0],row:!0,...a},n=>{e=[n,n,n,n],m(),N()}),M=l?"Independent corners":"Independent sides",c=j("tw-sides-link",H);c.setAttribute("aria-label",M),c.title=M,c.addEventListener("click",()=>v());let k=d("div","tw-sides-multi"),w=d("div","tw-sides-head"),x=d("span","tw-sides-sum"),L=document.createTextNode("");x.append(L,E("span","tw-sides-unit",i)),w.append(E("span","tw-row-label",t.label),x);let F=d("div","tw-fields"),y=l?["Top-left","Top-right","Bottom-right","Bottom-left"]:["Top","Right","Bottom","Left"],p=y.map((n,s)=>C({label:n,value:e[s],...a},o=>{e[s]=o,m(),N()}));p.forEach((n,s)=>{let o=n.el.querySelector(".tw-field-label");o.title=y[s],o.classList.add("tw-sides-glyph"),o.dataset.at=y[s].toLowerCase(),o.innerHTML=l?q:z,F.append(n.el)}),k.append(w,F),u.append(b.el,k),e=p.map(n=>n.get());let _=()=>{let[n,s,o,f]=e.map(R),B=T=>T==="0"?"0":T+i;return(n===o&&s===f?n===s?[n]:[n,s]:s===f?[n,s,o]:[n,s,o,f]).map(B).join(" ")},S=()=>({top:e[0],right:e[1],bottom:e[2],left:e[3],css:_()}),N=()=>g(S()),m=()=>{u.classList.toggle("is-linked",r),c.setAttribute("aria-pressed",String(!r)),(r?b.el:w).append(c),b.set(e[0]),p.forEach((n,s)=>n.set(e[s])),L.data=e.map(R).join(" ")},v=()=>{r=!r,r&&(e=[e[0],e[0],e[0],e[0]]),m(),N(),c.focus()};return m(),{el:u,set:n=>{let s=A(n,e);s&&(p.forEach((o,f)=>o.set(s[f])),e=p.map(o=>o.get()),r=e.every(o=>o===e[0]),m())},get:S}}I("sides",G);
@@ -1 +0,0 @@
1
- import{b as Z,c as $,e as ee,j as k,l as ne}from"./chunk-4ATI34PB.js";import{$ as Q,Y as J,g as D,u as M,w as E,y as G,z as H}from"./chunk-7OSCMZ2J.js";function re(u,se){let x=(e,s,n)=>Number.isFinite(+e)?Math.max(s,+e):n,P=e=>({stiffness:x(e.stiffness,1,300),damping:x(e.damping,.5,26),mass:x(e.mass,.1,1)}),o=e=>Number.isFinite(+e),_=e=>D(o(e)?+e:.5,.1,1),N=e=>D(o(e)?+e:.2,0,1),z=e=>+e.toPrecision(10),te=e=>{let s=(2*Math.PI/e.visualDuration)**2,n=1-e.bounce,a=1;return{stiffness:z(s),damping:z(2*n*Math.sqrt(s*a)),mass:a}},C=e=>e==="time"||e==="physics"?e:null,d={stiffness:u.stiffness,damping:u.damping,mass:u.mass,visualDuration:u.visualDuration,bounce:u.bounce,...u.value||{}},r=C(d.mode)??C(u.mode)??(o(d.visualDuration)||o(d.bounce)?"time":"physics"),i={visualDuration:_(d.visualDuration),bounce:N(d.bounce)},l=P({stiffness:d.stiffness,damping:d.damping,mass:d.mass}),y=M("div","tw-spring"),p=M("div","tw-spring-viz"),f=document.createElement("canvas");f.className="tw-spring-canvas",p.append(f);let F=M("div","tw-fields"),U=M("div","tw-fields"),t=f.getContext("2d"),A=()=>P(r==="time"?te(i):l),c=()=>{let e=Math.max(1,p.clientWidth),s=Math.max(1,p.clientHeight);if(e<2)return;let n=window.devicePixelRatio||1;f.width=e*n,f.height=s*n,t.setTransform(n,0,0,n,0,0),t.clearRect(0,0,e,s);let a=A(),X=ne(a.stiffness,a.damping,a.mass,Math.max(160,Math.round(e*n))),ae=Math.max(1.05,...X),b=8,q=w=>b+w/(X.length-1)*(e-2*b),T=w=>s-b-w/ae*(s-2*b);t.strokeStyle=Z(y,"--tw-surface-active")||"rgba(255,255,255,0.1)",t.lineWidth=1,t.beginPath(),t.moveTo(b,T(1)),t.lineTo(e-b,T(1)),t.stroke(),t.strokeStyle=$(y),t.lineWidth=1.5,t.lineJoin=t.lineCap="round",t.beginPath(),X.forEach((w,O)=>O?t.lineTo(q(O),T(w)):t.moveTo(q(O),T(w))),t.stroke()},j=()=>r==="time"?{...A(),visualDuration:i.visualDuration,bounce:i.bounce}:A(),v=()=>se(j()),m={};[["stiffness","Stiffness",1],["damping","Damping",.5],["mass","Mass",.1]].forEach(([e,s,n])=>{m[e]=k({label:s,value:l[e],step:n,min:n},a=>{l[e]=a,c(),v()}),F.append(m[e].el)});let S=k({label:"Duration",value:i.visualDuration*1e3,step:50,min:.1*1e3,max:1*1e3,unit:"ms"},e=>{i.visualDuration=_(e/1e3),c(),v()}),R=k({label:"Bounce",value:i.bounce*100,step:5,min:0,max:100,unit:"%"},e=>{i.bounce=N(e/100),c(),v()});U.append(S.el,R.el);let I=()=>{U.style.display=r==="time"?"":"none",F.style.display=r==="physics"?"":"none"},V=J([{value:"time",label:"Time"},{value:"physics",label:"Physics"}],r,e=>{e!=="time"&&e!=="physics"||e===r||(r=e,I(),c(),v())},"Spring mode"),B=M("div","tw-row");B.append(E("span","tw-row-label","Mode"),V.el),u.label&&y.append(E("div","tw-spring-label",u.label)),y.append(p,B,F,U);let L=1,ie=500,W=1,oe=40,g=null,K=e=>{if(!g)return;let s=D((e.clientX-g.left)/g.width,0,1),n=D((e.clientY-g.top)/g.height,0,1);r==="time"?(S.set((.1+s*(1-.1))*1e3),i.visualDuration=S.get()/1e3,R.set((1-n)*100),i.bounce=R.get()/100):(m.stiffness.set(L+s*(ie-L)),l.stiffness=m.stiffness.get(),m.damping.set(W+n*(oe-W)),l.damping=m.damping.get()),c(),v()};ee(p,{onDown:e=>{e.preventDefault(),g=p.getBoundingClientRect(),p.classList.add("is-dragging"),K(e)},onMove:K,onEnd:()=>{g=null,p.classList.remove("is-dragging")}}),I(),G(c),H(f,[[window,"resize"],[window,"tw-reflow"],[matchMedia("(prefers-color-scheme: dark)"),"change"],[window,"tw-retheme"]],c);let h=null,Y=!1;return typeof MutationObserver=="function"&&(h=new MutationObserver(()=>{f.isConnected?(Y=!0,c()):Y&&(h.disconnect(),h=null)}),h.observe(document.documentElement,{subtree:!0,attributes:!0,attributeFilter:["data-tw-scheme"]})),{el:y,destroy:()=>{h&&(h.disconnect(),h=null)},set:e=>{if(!e||typeof e!="object")return;let s=C(e.mode),n=o(e.visualDuration)||o(e.bounce),a=o(e.stiffness)||o(e.damping)||o(e.mass);!n&&!a&&!s||(r=s??(n?"time":"physics"),n&&(o(e.visualDuration)&&(i.visualDuration=_(e.visualDuration)),o(e.bounce)&&(i.bounce=N(e.bounce))),a&&(l=P({...l,...e})),V.set(r),S.set(i.visualDuration*1e3),R.set(i.bounce*100),m.stiffness.set(l.stiffness),m.damping.set(l.damping),m.mass.set(l.mass),I(),c())},get:()=>j()}}Q("spring",re);
@@ -1 +0,0 @@
1
- import{$ as w,P as f,X as g,u as s,w as v,y as m}from"./chunk-7OSCMZ2J.js";var A=0;function x(E){let o=`tw-tabs-${++A}`,c=s("div","tw-tabs"),r=s("div","tw-tabs-bar");r.setAttribute("role","tablist");let l=s("div","tw-tabs-pill");r.append(l);let u=s("div","tw-tabs-pages"),d=[],i=E.pages.map((a,e)=>{let t=v("button","tw-tabs-tab",a.title);t.setAttribute("role","tab"),t.dataset.active=String(e===0),t.setAttribute("aria-selected",String(e===0)),t.tabIndex=e===0?0:-1,t.id=`${o}-tab-${e}`,t.setAttribute("aria-controls",`${o}-page-${e}`);let n=s("div","tw-tabs-page tw-controls");return n.dataset.active=String(e===0),n.setAttribute("role","tabpanel"),n.id=`${o}-page-${e}`,n.setAttribute("aria-labelledby",t.id),d.push(n),u.append(n),t.addEventListener("click",()=>b(e)),r.append(t),t});c.append(r,u);let p=a=>f(r,l,a);function b(a){i.forEach((e,t)=>{e.dataset.active=String(t===a),e.setAttribute("aria-selected",String(t===a)),e.tabIndex=t===a?0:-1}),d.forEach((e,t)=>e.dataset.active=String(t===a)),p(!0),requestAnimationFrame(()=>window.dispatchEvent(new Event("tw-reflow")))}return r.addEventListener("keydown",a=>{let e=i.findIndex(n=>n.dataset.active==="true");if(e<0)return;let t=g(a.key,e,i.length,-1);t<0||(a.preventDefault(),b(t),i[t].focus())}),m(p),{el:c,bodies:d,activate:b,active:()=>i.findIndex(a=>a.dataset.active==="true")}}w("tabs",x);