efficient-shell 5.6.0 → 5.6.1

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 (44) hide show
  1. package/README.md +5 -2
  2. package/dist/{Browser-6QB2QTO7.js → Browser-RXGEZ77D.js} +18 -18
  3. package/dist/Calculator-MVPKTZZF.js +29 -0
  4. package/dist/ConfirmDialog-XOYCYFA7.js +1 -0
  5. package/dist/{CurrencyConverter-YJ47A3L5.js → CurrencyConverter-2IGOOR3I.js} +9 -9
  6. package/dist/{Documents-TGGI2QBV.js → Documents-YBLR7WVX.js} +22 -22
  7. package/dist/{Files-KSDK3EO4.js → Files-7XNR5IL2.js} +87 -87
  8. package/dist/{Notepad-EKB6FJPR.js → Notepad-ZQYQXV75.js} +14 -14
  9. package/dist/PdfViewer-SQVMMA7B.js +1 -0
  10. package/dist/{PomodoroTimer-RD5GRRA5.js → PomodoroTimer-XIUN4M73.js} +7 -7
  11. package/dist/{Preview-AQVXKT2I.js → Preview-YCOA5JPP.js} +126 -126
  12. package/dist/{Sidebar-VYXN5YIJ.js → Sidebar-VI7E3EKI.js} +8 -8
  13. package/dist/{Spreadsheet-INXG5UMI.js → Spreadsheet-SRAUU3OA.js} +13 -13
  14. package/dist/{Stock-CBQN2IJF.js → Stock-7EKOAQ7C.js} +3 -3
  15. package/dist/{Weather-2EVUTIXX.js → Weather-RWI6NKB2.js} +15 -15
  16. package/dist/{WorldClock-TZUF7MOB.js → WorldClock-CEHWDFEO.js} +6 -6
  17. package/dist/apps/index.js +1 -1
  18. package/dist/bin/ui-check.js +1 -1
  19. package/dist/{chunk-3GPU3JOW.js → chunk-5ABLFFC5.js} +7 -7
  20. package/dist/{chunk-PKEQ7XOH.js → chunk-7WC3EOFS.js} +1 -1
  21. package/dist/{chunk-RCHCT7AO.js → chunk-F6B3J3GW.js} +1 -1
  22. package/dist/{chunk-ZUCYJAQH.js → chunk-IMMHJIV5.js} +4 -4
  23. package/dist/{chunk-HRLPFUPB.js → chunk-P4CIOJHP.js} +3 -3
  24. package/dist/{chunk-Z2353HNE.js → chunk-RBDGN4YU.js} +5 -5
  25. package/dist/{chunk-RDQ7OXUA.js → chunk-RC2EG6P4.js} +300 -300
  26. package/dist/chunk-SFCDHHQP.js +1 -0
  27. package/dist/{chunk-L5XA5MLK.js → chunk-VWBQ2P5G.js} +46 -46
  28. package/dist/{chunk-R4XSSHDI.js → chunk-WWF2EQXF.js} +1 -1
  29. package/dist/{chunk-FROOMUJ7.js → chunk-YGC7AX3X.js} +6 -6
  30. package/dist/{chunk-MLYC5VQI.js → chunk-YIH6JLMV.js} +2 -2
  31. package/dist/{chunk-JEM73E4C.js → chunk-Z7D6Y5WA.js} +13 -13
  32. package/dist/{index-BgM75MC6.d.ts → index-ZI6vl2Wq.d.ts} +2 -0
  33. package/dist/index.d.ts +2 -2
  34. package/dist/index.js +99 -99
  35. package/dist/map/index.js +4 -4
  36. package/dist/page-tabs/index.js +5 -5
  37. package/dist/pdf/index.js +1 -1
  38. package/dist/ui/index.d.ts +1 -1
  39. package/dist/ui/index.js +1 -1
  40. package/package.json +1 -1
  41. package/dist/Calculator-KOWRV2VK.js +0 -29
  42. package/dist/ConfirmDialog-32NLLK4K.js +0 -1
  43. package/dist/PdfViewer-KW5B44AX.js +0 -1
  44. package/dist/chunk-WRBXEZFN.js +0 -1
@@ -1,9 +1,9 @@
1
- import{useHydrated as e,useBrowserState as t}from"./chunk-D65T4H6J.js";import{InfoFallback as r,ErrorFallback as n,CloseFallback as o,CheckFallback as i}from"./chunk-6LTDJKIL.js";import{useShellStrings as a}from"./chunk-TNBCUZVE.js";import{Icon as s}from"./chunk-XWSWYMGM.js";import{createContext as c,useSyncExternalStore as l,useCallback as u,useContext as d,useMemo as f}from"react";import{jsxs as m,jsx as h}from"react/jsx-runtime";var w="(max-width: 767px), (pointer: coarse)";function p(){return!("undefined"==typeof window||!window.matchMedia)&&window.matchMedia(w).matches}function g(){return!1}function y(e){if("undefined"==typeof window||!window.matchMedia)return()=>{};const t=window.matchMedia(w);return t.addEventListener?(t.addEventListener("change",e),()=>t.removeEventListener("change",e)):(t.addListener(e),()=>t.removeListener(e))}function v(){return l(y,p,g)}var x={success:"success",error:"error",warning:"warning",info:"info",404:"info",403:"warning",500:"error"},b={success:"text-green-600 bg-green-100",error:"text-red-600 bg-red-100",warning:"text-amber-600 bg-amber-100",info:"text-blue-600 bg-blue-100"},_={404:e=>e.notFound,403:e=>e.noAccess,500:e=>e.serverError};function N({tone:e}){const t={className:"h-6 w-6",strokeWidth:1.5,"aria-hidden":!0};switch(e){case"success":/* @__PURE__ */
2
- return h(s,{name:"check",fallback:i,...t});case"error":/* @__PURE__ */
3
- return h(s,{name:"close",fallback:o,...t});case"warning":/* @__PURE__ */
4
- return h(s,{name:"error",fallback:n,...t});default:/* @__PURE__ */
5
- return h(s,{name:"info",fallback:r,...t})}}function S({status:e="info",title:t,subTitle:r,extra:n,icon:o,children:i,className:s=""}){const c=x[e],l=a().errors;/* @__PURE__ */
6
- return m("div",{role:"error"===c?"alert":void 0,className:`flex flex-col items-center justify-center px-6 py-12 text-center ${s}`.trim(),children:[
1
+ import{useHydrated as e,useBrowserState as t}from"./chunk-D65T4H6J.js";import{InfoFallback as r,ErrorFallback as n,CloseFallback as o,CheckFallback as i}from"./chunk-6LTDJKIL.js";import{Icon as a}from"./chunk-XWSWYMGM.js";import{useShellStrings as s}from"./chunk-TNBCUZVE.js";import{createContext as c,useSyncExternalStore as l,useCallback as u,useContext as d,useMemo as f}from"react";import{jsxs as m,jsx as h}from"react/jsx-runtime";var w="(max-width: 767px), (pointer: coarse)";function p(){return!("undefined"==typeof window||!window.matchMedia)&&window.matchMedia(w).matches}function g(){return!1}function y(e){if("undefined"==typeof window||!window.matchMedia)return()=>{};const t=window.matchMedia(w);return t.addEventListener?(t.addEventListener("change",e),()=>t.removeEventListener("change",e)):(t.addListener(e),()=>t.removeListener(e))}function v(){return l(y,p,g)}var x={success:"success",error:"error",warning:"warning",info:"info",404:"info",403:"warning",500:"error"},b={success:"text-green-600 bg-green-100",error:"text-red-600 bg-red-100",warning:"text-amber-600 bg-amber-100",info:"text-blue-600 bg-blue-100"},_={404:e=>e.notFound,403:e=>e.noAccess,500:e=>e.serverError};function N({tone:e}){const t={className:"h-6 w-6",strokeWidth:1.5,"aria-hidden":!0};switch(e){case"success":/* @__PURE__ */
2
+ return h(a,{name:"check",fallback:i,...t});case"error":/* @__PURE__ */
3
+ return h(a,{name:"close",fallback:o,...t});case"warning":/* @__PURE__ */
4
+ return h(a,{name:"error",fallback:n,...t});default:/* @__PURE__ */
5
+ return h(a,{name:"info",fallback:r,...t})}}function S({status:e="info",title:t,subTitle:r,extra:n,icon:o,children:i,className:a=""}){const c=x[e],l=s().errors;/* @__PURE__ */
6
+ return m("div",{role:"error"===c?"alert":void 0,className:`flex flex-col items-center justify-center px-6 py-12 text-center ${a}`.trim(),children:[
7
7
  /* @__PURE__ */h("div",{className:`flex h-14 w-14 items-center justify-center rounded-full ${b[c]}`,children:o??/* @__PURE__ */h(N,{tone:c})}),
8
8
  /* @__PURE__ */h("h2",{className:"mt-4 text-lg font-semibold text-gray-900",children:t??_[e]?.(l)??""}),r&&/* @__PURE__ */h("p",{className:"mt-1 max-w-md text-sm text-gray-500",children:r}),i&&/* @__PURE__ */h("div",{className:"mt-4 w-full max-w-md text-left",children:i}),n&&/* @__PURE__ */h("div",{className:"mt-6 flex flex-wrap items-center justify-center gap-3",children:n})]})}function C({size:e="md",padding:t="py-12",label:r,className:n=""}){const o=/* @__PURE__ */h("div",{className:`${"sm"===e?"h-5 w-5":"lg"===e?"h-12 w-12":"h-8 w-8"} animate-spin rounded-full border-2 border-gray-200 border-t-blue-600`});return null==r?/* @__PURE__ */h("div",{className:`flex items-center justify-center ${t} ${n}`,children:o}):/* @__PURE__ */m("div",{role:"status",className:`flex flex-col items-center justify-center gap-3 ${t} ${n}`,children:[o,
9
9
  /* @__PURE__ */h("p",{className:"text-sm text-gray-500",children:r})]})}var D="undefined"!=typeof window&&"undefined"!=typeof navigator&&/Mac|iPhone|iPad/.test(navigator.platform||navigator.userAgent),E={MOD:["⌘","Ctrl"],ALT:["⌥","Alt"],CMD_ENTER:["⌘⏎","Ctrl⏎"],CMD_S:["⌘S","Ctrl+S"],CMD_K:["⌘K","Ctrl+K"],CMD_DOT:["⌘.","Ctrl+."],CMD_A:["⌘A","Ctrl+A"],CMD_Z:["⌘Z","Ctrl+Z"],CMD_SHIFT_Z:["⌘⇧Z","Ctrl+Shift+Z"],ALT_SHIFT_D:["⌥⇧D","Alt+Shift+D"],ALT_SHIFT_E:["⌥⇧E","Alt+Shift+E"],ALT_SHIFT_N:["⌥⇧N","Alt+Shift+N"]},L=D?0:1,M=E.MOD[L],T=E.ALT[L],k="⇧",A="⏎",I=E.CMD_ENTER[L],j=E.CMD_S[L],H=E.CMD_K[L],F=E.CMD_DOT[L],Z=E.CMD_A[L],O=E.CMD_Z[L],P=E.CMD_SHIFT_Z[L],$=E.ALT_SHIFT_D[L],K=E.ALT_SHIFT_E[L],z=E.ALT_SHIFT_N[L],J=new Map(D?Object.values(E).map(([e,t])=>[e,t]):[]);function R(t){return e()?t:J.get(t)??t}var U="inline-flex items-center justify-center rounded border border-gray-200 bg-gray-50 font-medium text-gray-500",W={sm:"px-1 py-0.5 text-[10px]",md:"px-1.5 py-0.5 text-[11px]"};function B({keys:e,size:t="md",className:r=""}){const n=R(e);/* @__PURE__ */
@@ -1,2 +1,2 @@
1
- import{toast_default as t}from"./chunk-3HJTOINK.js";import{useShellPrefs as e}from"./chunk-FROOMUJ7.js";import{useSyncExternalStore as n,useCallback as o,useMemo as a}from"react";var r=[{id:"bell",label:"Bell",description:"Soft bell with one harmonic"},{id:"chime",label:"Chime",description:"Two-note ascending chime"},{id:"bowl",label:"Singing Bowl",description:"Long-decay meditation tone"},{id:"wind-chimes",label:"Wind Chimes",description:"Four soft tones in succession"},{id:"off",label:"Off (silent)",description:"No sound — only desktop notification"}],i=[{id:"none",label:"None"},{id:"tick-fast",label:"Ticking Fast"},{id:"tick-slow",label:"Ticking Slow"},{id:"rain",label:"Rain"},{id:"fireplace",label:"Fireplace"},{id:"white",label:"White Noise"},{id:"pink",label:"Pink Noise"},{id:"brown",label:"Brown Noise"}],c=()=>`pomodoro-${/* @__PURE__ */(new Date).toISOString().slice(0,10)}`,l={focus:1500,short:300,long:900},s="bell",u=100,d=1,f="none",m=50,h={autoStartBreaks:!1,autoStartPomodoros:!1,longBreakInterval:4},g={running:!1,remaining:l.focus,mode:"focus",total:l.focus,streak:0,count:"undefined"!=typeof localStorage?(()=>{try{return parseInt(localStorage.getItem(c())||"0",10)||0}catch{return 0}})():0},p=null,k=/* @__PURE__ */new Set,w=t=>{g={...g,...t},k.forEach(t=>t())};function M(){return g}function S(t){return k.add(t),()=>{k.delete(t)}}function b(t){l=t,g.running||g.remaining!==g.total||w({remaining:t[g.mode],total:t[g.mode]})}function y(t){s=t}function v(t,e){u=Math.max(0,Math.min(100,Math.round(t))),d=Math.max(1,Math.min(5,Math.round(e)))}function T(t){h={autoStartBreaks:!!t.autoStartBreaks,autoStartPomodoros:!!t.autoStartPomodoros,longBreakInterval:Math.max(1,Math.min(20,Math.round(t.longBreakInterval||4)))}}function A(t,e){f=t,m=Math.max(0,Math.min(100,Math.round(e))),g.running&&"focus"===g.mode?(F(),R()):"none"!==t&&0!==m||F()}function I(){g.running||(w({running:!0}),p=setInterval(N,1e3),"focus"===g.mode&&R())}function x(){(g.running||null!==p)&&(null!==p&&(clearInterval(p),p=null),w({running:!1}),F())}function B(t){x(),w({mode:t,remaining:l[t],total:l[t]})}function N(){g.remaining<=1?function(){null!==p&&(clearInterval(p),p=null);F(),C(s,{volume:u,repeat:d});const e="focus"===g.mode?"Pomodoro complete — time for a break! 🍅":"Break's over — back to work!";if("undefined"!=typeof Notification&&"granted"===Notification.permission)try{new Notification(e)}catch{}try{t.info(e)}catch{}if("focus"===g.mode){const t=g.streak+1,e=g.count+1;(t=>{try{localStorage.setItem(c(),String(t))}catch{}})(e);const n=t%h.longBreakInterval===0?"long":"short";w({running:!1,streak:t,count:e,mode:n,remaining:l[n],total:l[n]}),h.autoStartBreaks&&setTimeout(()=>I(),50)}else w({running:!1,mode:"focus",remaining:l.focus,total:l.focus}),h.autoStartPomodoros&&setTimeout(()=>I(),50)}():w({remaining:g.remaining-1})}function C(t=s,e={}){if("off"===t)return;const n=Math.max(0,Math.min(100,e.volume??100))/100;if(0===n)return;const o=Math.max(1,Math.min(5,e.repeat??1));for(let e=0;e<o;e++)setTimeout(()=>P(t,n),2500*e)}function P(t,e){try{const n=window.AudioContext||window.webkitAudioContext;if(!n)return;const o=new n,a=(t,n,a,r=.22,i="sine")=>{const c=o.createOscillator(),l=o.createGain();c.connect(l),l.connect(o.destination),c.type=i,c.frequency.value=t;const s=o.currentTime+n;l.gain.setValueAtTime(0,s),l.gain.linearRampToValueAtTime(r*e,s+.03),l.gain.exponentialRampToValueAtTime(1e-4,s+a),c.start(s),c.stop(s+a)};let r=2;"bell"===t?(a(880,0,1.8),a(1320,0,1.4,.1),r=2):"chime"===t?(a(659.25,0,.7),a(880,.2,1.3),r=2):"bowl"===t?(a(440,0,3.4,.22),a(660,0,3,.08),a(880,.05,2.8,.05),r=4):"wind-chimes"===t&&(a(1175,0,1.1,.16),a(880,.15,1.3,.16),a(1318,.3,1.5,.16),a(1047,.5,1.7,.13),r=3),setTimeout(()=>{try{o.close()}catch{}},1e3*r+500)}catch{}}var O=null,D={none:0,white:.3,pink:.3,brown:.3,"tick-fast":.6,"tick-slow":.6,rain:.4,fireplace:.5};function _(t,e){if("none"===e)return null;const n=t.sampleRate,o="white"===e||"pink"===e||"brown"===e?2:4,a=n*o,r=t.createBuffer(1,a,n),i=r.getChannelData(0);if("white"===e)for(let t=0;t<a;t++)i[t]=.5*(2*Math.random()-1);else if("pink"===e){let t=0,e=0,n=0,o=0,r=0,c=0,l=0;for(let s=0;s<a;s++){const a=2*Math.random()-1;t=.99886*t+.0555179*a,e=.99332*e+.0750759*a,n=.969*n+.153852*a,o=.8665*o+.3104856*a,r=.55*r+.5329522*a,c=-.7616*c-.016898*a,i[s]=.11*(t+e+n+o+r+c+l+.5362*a)*.55,l=.115926*a}}else if("brown"===e){let t=0;for(let e=0;e<a;e++){t=(t+.02*(2*Math.random()-1))/1.02,i[e]=3.5*t*.5}}else if("tick-fast"===e||"tick-slow"===e){const t="tick-fast"===e?.5:1,r=Math.floor(.045*n);for(let e=0;e<o;e+=t){const t=Math.floor(e*n);for(let e=0;e<r&&t+e<a;e++){const o=Math.exp(-e/n*180),a=2*Math.random()-1,r=Math.sin(2*Math.PI*1100*(e/n));i[t+e]+=(.7*a+.25*r)*o*.55}}}else if("rain"===e){let t=0;for(let e=0;e<a;e++){const o=2*Math.random()-1,a=o-.93*t;t=o;const r=.7+.3*Math.sin(e/n*2*Math.PI*.25);i[e]=a*r*.4}}else if("fireplace"===e){let t=0;for(let e=0;e<a;e++){t=(t+.02*(2*Math.random()-1))/1.02,i[e]=1.6*t}let e=.4*Math.random()*n;for(;e<a;){const t=Math.floor((.012+.05*Math.random())*n),o=.35+.45*Math.random(),r=Math.floor(e);for(let e=0;e<t&&r+e<a;e++){const t=Math.exp(-e/n*90);i[r+e]+=(2*Math.random()-1)*t*o}e+=(.08+.62*Math.random())*n}}return r}function R(){if(!O&&"none"!==f&&0!==m)try{const t=window.AudioContext||window.webkitAudioContext;if(!t)return;const e=new t,n=_(e,f);if(!n){try{e.close()}catch{}return}const o=e.createBufferSource();o.buffer=n,o.loop=!0;const a=e.createGain();a.gain.value=m/100*D[f],o.connect(a).connect(e.destination),o.start(),O={ctx:e,src:o,gain:a}}catch{}}function F(){if(O){try{O.src.stop()}catch{}try{O.ctx.close()}catch{}O=null}}function G(t,e){if("none"!==t&&0!==e)try{const n=window.AudioContext||window.webkitAudioContext;if(!n)return;const o=new n,a=_(o,t);if(!a){try{o.close()}catch{}return}const r=o.createBufferSource();r.buffer=a,r.loop=!0;const i=o.createGain();i.gain.value=e/100*D[t],r.connect(i).connect(o.destination),r.start(),setTimeout(()=>{try{r.stop()}catch{}try{o.close()}catch{}},3e3)}catch{}}var J="pomodoro_tasks",V="pomodoro_tasks_migrated";function j(){return Math.random().toString(36).slice(2,11)}function W(){/* @__PURE__ */
2
- return(new Date).toISOString()}var q=null,E=[],H=!1,K=null,L=/* @__PURE__ */new Set;function U(){for(const t of L)t()}function $(t){E=t,U()}function z(){const t=q;return t?K=t.list().then(e=>{q===t&&(E=e,H=!0,U())}).catch(()=>{q===t&&(H=!0,U())}).finally(()=>{K=null}):(E=[],H=!0,U(),Promise.resolve())}function Q(t){q=t,E=[],H=!1,t?z():U()}function X(t){return L.add(t),!q||H||K||z(),()=>{L.delete(t)}}function Y(){return E}function Z(){const t=function(){const{prefs:t,save:n}=e(),r=a(()=>{const e=t.todo_tasks;return Array.isArray(e)?e:[]},[t.todo_tasks]),i=o(t=>{n({todo_tasks:t})},[n]),c=o(t=>{const e=j(),n=W(),o={done:!1,...t,name:t.name.trim(),id:e,createdAt:n,updatedAt:n};return i([...r,o]),e},[r,i]),l=o((t,e)=>{i(r.map(n=>n.id===t?{...n,...e,id:n.id,updatedAt:W()}:n))},[r,i]),s=o(t=>{i(r.filter(e=>e.id!==t))},[r,i]),u=o(t=>{const e=r.find(e=>e.id===t);e&&l(t,{done:!e.done})},[r,l]);return{tasks:r,addTask:c,updateTask:l,removeTask:s,toggleDone:u,setAllTasks:i}}(),r=n(X,Y,Y),i=o(e=>{const n=q;if(!n)return t.addTask(e);const o="tmp-"+j(),a=W(),r={done:!1,...e,name:e.name.trim(),id:o,createdAt:a,updatedAt:a};return $([...E,r]),n.create({...e,name:e.name.trim()}).then(t=>$(E.map(e=>e.id===o?{...r,...t}:e))).catch(()=>$(E.filter(t=>t.id!==o))),o},[t]),c=o((e,n)=>{const o=q;if(!o)return t.updateTask(e,n);$(E.map(t=>t.id===e?{...t,...n,id:e,updatedAt:W()}:t)),o.update(e,n).catch(()=>{z()})},[t]),l=o(e=>{const n=q;if(!n)return t.removeTask(e);const o=E;$(E.filter(t=>t.id!==e)),n.remove(e).catch(()=>$(o))},[t]),s=o(e=>{if(!q)return t.toggleDone(e);const n=E.find(t=>t.id===e);n&&c(e,{done:!n.done})},[t,c]),u=o(e=>{q||t.setAllTasks(e)},[t]);return null===q?t:{tasks:r,addTask:i,updateTask:c,removeTask:l,toggleDone:s,setAllTasks:u}}function tt(t,e){try{if(localStorage.getItem(V))return;const n=localStorage.getItem(J);if(!n)return void localStorage.setItem(V,"1");const o=JSON.parse(n);if(!Array.isArray(o)||0===o.length)return localStorage.removeItem(J),void localStorage.setItem(V,"1");const a=W(),r=o.filter(t=>"string"==typeof t?.name).map(t=>({id:t.id||j(),name:String(t.name),done:!!t.done,estimated:"number"==typeof t.estimated?t.estimated:void 0,completed:"number"==typeof t.completed?t.completed:void 0,createdAt:a,updatedAt:a})),i=new Set(t.map(t=>t.id));e([...r.filter(t=>!i.has(t.id)),...t]),localStorage.removeItem(J),localStorage.setItem(V,"1")}catch{try{localStorage.setItem(V,"1")}catch{}}}export{r as ALARM_OPTIONS,i as FOCUS_SOUND_OPTIONS,M as getPomoSnapshot,tt as migratePomodoroTasksOnce,C as playAlarm,x as pomoPause,I as pomoStart,B as pomoSwitchMode,G as previewFocusSound,y as setPomoAlarm,v as setPomoAlarmConfig,T as setPomoBehaviour,b as setPomoDurations,A as setPomoFocusSound,Q as setShellTodoProvider,S as subscribePomo,Z as useTodoTasks};
1
+ import{toast_default as t}from"./chunk-3HJTOINK.js";import{useShellPrefs as e}from"./chunk-YGC7AX3X.js";import{useSyncExternalStore as n,useCallback as o,useMemo as a}from"react";var r=[{id:"bell",label:"Bell",description:"Soft bell with one harmonic"},{id:"chime",label:"Chime",description:"Two-note ascending chime"},{id:"bowl",label:"Singing Bowl",description:"Long-decay meditation tone"},{id:"wind-chimes",label:"Wind Chimes",description:"Four soft tones in succession"},{id:"off",label:"Off (silent)",description:"No sound — only desktop notification"}],i=[{id:"none",label:"None"},{id:"tick-fast",label:"Ticking Fast"},{id:"tick-slow",label:"Ticking Slow"},{id:"rain",label:"Rain"},{id:"fireplace",label:"Fireplace"},{id:"white",label:"White Noise"},{id:"pink",label:"Pink Noise"},{id:"brown",label:"Brown Noise"}],c=()=>`pomodoro-${/* @__PURE__ */(new Date).toISOString().slice(0,10)}`,l={focus:1500,short:300,long:900},s="bell",u=100,d=1,f="none",m=50,h={autoStartBreaks:!1,autoStartPomodoros:!1,longBreakInterval:4},g={running:!1,remaining:l.focus,mode:"focus",total:l.focus,streak:0,count:"undefined"!=typeof localStorage?(()=>{try{return parseInt(localStorage.getItem(c())||"0",10)||0}catch{return 0}})():0},p=null,k=/* @__PURE__ */new Set,w=t=>{g={...g,...t},k.forEach(t=>t())};function M(){return g}function S(t){return k.add(t),()=>{k.delete(t)}}function b(t){l=t,g.running||g.remaining!==g.total||w({remaining:t[g.mode],total:t[g.mode]})}function y(t){s=t}function v(t,e){u=Math.max(0,Math.min(100,Math.round(t))),d=Math.max(1,Math.min(5,Math.round(e)))}function T(t){h={autoStartBreaks:!!t.autoStartBreaks,autoStartPomodoros:!!t.autoStartPomodoros,longBreakInterval:Math.max(1,Math.min(20,Math.round(t.longBreakInterval||4)))}}function A(t,e){f=t,m=Math.max(0,Math.min(100,Math.round(e))),g.running&&"focus"===g.mode?(R(),G()):"none"!==t&&0!==m||R()}function I(){g.running||(w({running:!0}),p=setInterval(C,1e3),"focus"===g.mode&&G())}function x(){(g.running||null!==p)&&(null!==p&&(clearInterval(p),p=null),w({running:!1}),R())}function B(t){x(),w({mode:t,remaining:l[t],total:l[t]})}function C(){g.remaining<=1?function(){null!==p&&(clearInterval(p),p=null);R(),N(s,{volume:u,repeat:d});const e="focus"===g.mode?"Pomodoro complete — time for a break! 🍅":"Break's over — back to work!";if("undefined"!=typeof Notification&&"granted"===Notification.permission)try{new Notification(e)}catch{}try{t.info(e)}catch{}if("focus"===g.mode){const t=g.streak+1,e=g.count+1;(t=>{try{localStorage.setItem(c(),String(t))}catch{}})(e);const n=t%h.longBreakInterval===0?"long":"short";w({running:!1,streak:t,count:e,mode:n,remaining:l[n],total:l[n]}),h.autoStartBreaks&&setTimeout(()=>I(),50)}else w({running:!1,mode:"focus",remaining:l.focus,total:l.focus}),h.autoStartPomodoros&&setTimeout(()=>I(),50)}():w({remaining:g.remaining-1})}function N(t=s,e={}){if("off"===t)return;const n=Math.max(0,Math.min(100,e.volume??100))/100;if(0===n)return;const o=Math.max(1,Math.min(5,e.repeat??1));for(let e=0;e<o;e++)setTimeout(()=>P(t,n),2500*e)}function P(t,e){try{const n=window.AudioContext||window.webkitAudioContext;if(!n)return;const o=new n,a=(t,n,a,r=.22,i="sine")=>{const c=o.createOscillator(),l=o.createGain();c.connect(l),l.connect(o.destination),c.type=i,c.frequency.value=t;const s=o.currentTime+n;l.gain.setValueAtTime(0,s),l.gain.linearRampToValueAtTime(r*e,s+.03),l.gain.exponentialRampToValueAtTime(1e-4,s+a),c.start(s),c.stop(s+a)};let r=2;"bell"===t?(a(880,0,1.8),a(1320,0,1.4,.1),r=2):"chime"===t?(a(659.25,0,.7),a(880,.2,1.3),r=2):"bowl"===t?(a(440,0,3.4,.22),a(660,0,3,.08),a(880,.05,2.8,.05),r=4):"wind-chimes"===t&&(a(1175,0,1.1,.16),a(880,.15,1.3,.16),a(1318,.3,1.5,.16),a(1047,.5,1.7,.13),r=3),setTimeout(()=>{try{o.close()}catch{}},1e3*r+500)}catch{}}var D=null,O={none:0,white:.3,pink:.3,brown:.3,"tick-fast":.6,"tick-slow":.6,rain:.4,fireplace:.5};function _(t,e){if("none"===e)return null;const n=t.sampleRate,o="white"===e||"pink"===e||"brown"===e?2:4,a=n*o,r=t.createBuffer(1,a,n),i=r.getChannelData(0);if("white"===e)for(let t=0;t<a;t++)i[t]=.5*(2*Math.random()-1);else if("pink"===e){let t=0,e=0,n=0,o=0,r=0,c=0,l=0;for(let s=0;s<a;s++){const a=2*Math.random()-1;t=.99886*t+.0555179*a,e=.99332*e+.0750759*a,n=.969*n+.153852*a,o=.8665*o+.3104856*a,r=.55*r+.5329522*a,c=-.7616*c-.016898*a,i[s]=.11*(t+e+n+o+r+c+l+.5362*a)*.55,l=.115926*a}}else if("brown"===e){let t=0;for(let e=0;e<a;e++){t=(t+.02*(2*Math.random()-1))/1.02,i[e]=3.5*t*.5}}else if("tick-fast"===e||"tick-slow"===e){const t="tick-fast"===e?.5:1,r=Math.floor(.045*n);for(let e=0;e<o;e+=t){const t=Math.floor(e*n);for(let e=0;e<r&&t+e<a;e++){const o=Math.exp(-e/n*180),a=2*Math.random()-1,r=Math.sin(2*Math.PI*1100*(e/n));i[t+e]+=(.7*a+.25*r)*o*.55}}}else if("rain"===e){let t=0;for(let e=0;e<a;e++){const o=2*Math.random()-1,a=o-.93*t;t=o;const r=.7+.3*Math.sin(e/n*2*Math.PI*.25);i[e]=a*r*.4}}else if("fireplace"===e){let t=0;for(let e=0;e<a;e++){t=(t+.02*(2*Math.random()-1))/1.02,i[e]=1.6*t}let e=.4*Math.random()*n;for(;e<a;){const t=Math.floor((.012+.05*Math.random())*n),o=.35+.45*Math.random(),r=Math.floor(e);for(let e=0;e<t&&r+e<a;e++){const t=Math.exp(-e/n*90);i[r+e]+=(2*Math.random()-1)*t*o}e+=(.08+.62*Math.random())*n}}return r}function G(){if(!D&&"none"!==f&&0!==m)try{const t=window.AudioContext||window.webkitAudioContext;if(!t)return;const e=new t,n=_(e,f);if(!n){try{e.close()}catch{}return}const o=e.createBufferSource();o.buffer=n,o.loop=!0;const a=e.createGain();a.gain.value=m/100*O[f],o.connect(a).connect(e.destination),o.start(),D={ctx:e,src:o,gain:a}}catch{}}function R(){if(D){try{D.src.stop()}catch{}try{D.ctx.close()}catch{}D=null}}function F(t,e){if("none"!==t&&0!==e)try{const n=window.AudioContext||window.webkitAudioContext;if(!n)return;const o=new n,a=_(o,t);if(!a){try{o.close()}catch{}return}const r=o.createBufferSource();r.buffer=a,r.loop=!0;const i=o.createGain();i.gain.value=e/100*O[t],r.connect(i).connect(o.destination),r.start(),setTimeout(()=>{try{r.stop()}catch{}try{o.close()}catch{}},3e3)}catch{}}var V="pomodoro_tasks",j="pomodoro_tasks_migrated";function J(){return Math.random().toString(36).slice(2,11)}function W(){/* @__PURE__ */
2
+ return(new Date).toISOString()}var X=null,q=[],E=!1,H=null,K=/* @__PURE__ */new Set;function L(){for(const t of K)t()}function Y(t){q=t,L()}function $(){const t=X;return t?H=t.list().then(e=>{X===t&&(q=e,E=!0,L())}).catch(()=>{X===t&&(E=!0,L())}).finally(()=>{H=null}):(q=[],E=!0,L(),Promise.resolve())}function z(t){X=t,q=[],E=!1,t?$():L()}function Q(t){return K.add(t),!X||E||H||$(),()=>{K.delete(t)}}function U(){return q}function Z(){const t=function(){const{prefs:t,save:n}=e(),r=a(()=>{const e=t.todo_tasks;return Array.isArray(e)?e:[]},[t.todo_tasks]),i=o(t=>{n({todo_tasks:t})},[n]),c=o(t=>{const e=J(),n=W(),o={done:!1,...t,name:t.name.trim(),id:e,createdAt:n,updatedAt:n};return i([...r,o]),e},[r,i]),l=o((t,e)=>{i(r.map(n=>n.id===t?{...n,...e,id:n.id,updatedAt:W()}:n))},[r,i]),s=o(t=>{i(r.filter(e=>e.id!==t))},[r,i]),u=o(t=>{const e=r.find(e=>e.id===t);e&&l(t,{done:!e.done})},[r,l]);return{tasks:r,addTask:c,updateTask:l,removeTask:s,toggleDone:u,setAllTasks:i}}(),r=n(Q,U,U),i=o(e=>{const n=X;if(!n)return t.addTask(e);const o="tmp-"+J(),a=W(),r={done:!1,...e,name:e.name.trim(),id:o,createdAt:a,updatedAt:a};return Y([...q,r]),n.create({...e,name:e.name.trim()}).then(t=>Y(q.map(e=>e.id===o?{...r,...t}:e))).catch(()=>Y(q.filter(t=>t.id!==o))),o},[t]),c=o((e,n)=>{const o=X;if(!o)return t.updateTask(e,n);Y(q.map(t=>t.id===e?{...t,...n,id:e,updatedAt:W()}:t)),o.update(e,n).catch(()=>{$()})},[t]),l=o(e=>{const n=X;if(!n)return t.removeTask(e);const o=q;Y(q.filter(t=>t.id!==e)),n.remove(e).catch(()=>Y(o))},[t]),s=o(e=>{if(!X)return t.toggleDone(e);const n=q.find(t=>t.id===e);n&&c(e,{done:!n.done})},[t,c]),u=o(e=>{X||t.setAllTasks(e)},[t]);return null===X?t:{tasks:r,addTask:i,updateTask:c,removeTask:l,toggleDone:s,setAllTasks:u}}function tt(t,e){try{if(localStorage.getItem(j))return;const n=localStorage.getItem(V);if(!n)return void localStorage.setItem(j,"1");const o=JSON.parse(n);if(!Array.isArray(o)||0===o.length)return localStorage.removeItem(V),void localStorage.setItem(j,"1");const a=W(),r=o.filter(t=>"string"==typeof t?.name).map(t=>({id:t.id||J(),name:String(t.name),done:!!t.done,estimated:"number"==typeof t.estimated?t.estimated:void 0,completed:"number"==typeof t.completed?t.completed:void 0,createdAt:a,updatedAt:a})),i=new Set(t.map(t=>t.id));e([...r.filter(t=>!i.has(t.id)),...t]),localStorage.removeItem(V),localStorage.setItem(j,"1")}catch{try{localStorage.setItem(j,"1")}catch{}}}export{r as ALARM_OPTIONS,i as FOCUS_SOUND_OPTIONS,M as getPomoSnapshot,tt as migratePomodoroTasksOnce,N as playAlarm,x as pomoPause,I as pomoStart,B as pomoSwitchMode,F as previewFocusSound,y as setPomoAlarm,v as setPomoAlarmConfig,T as setPomoBehaviour,b as setPomoDurations,A as setPomoFocusSound,z as setShellTodoProvider,S as subscribePomo,Z as useTodoTasks};
@@ -1,21 +1,21 @@
1
- import{useCopyText as e,CopyGlyph as t}from"./chunk-HRLPFUPB.js";import{PopupMenu as n,PopupMenuItem as r,PopupMenuDivider as l}from"./chunk-RMJZOKHY.js";import{CloseFallbackC as i}from"./chunk-6LTDJKIL.js";import{useShellStrings as a}from"./chunk-TNBCUZVE.js";import{Icon as o}from"./chunk-XWSWYMGM.js";import{useState as s,useEffect as c,Fragment as d}from"react";import{jsxs as m,jsx as u,Fragment as p}from"react/jsx-runtime";var y="outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-blue-500";function h(){/* @__PURE__ */
2
- return u(o,{name:"close",fallback:i,"aria-hidden":"true",className:"size-3.5"})}function b({text:n,label:r,copiedLabel:l}){const{copied:i,copy:a}=e(n);/* @__PURE__ */
3
- return u("button",{type:"button",tabIndex:-1,"aria-label":i?l:r,title:i?l:r,onClick:a,className:"flex size-5 shrink-0 items-center justify-center rounded text-gray-400 hover:bg-gray-200 hover:text-gray-700 @max-[10rem]:hidden",children:/* @__PURE__ */u(t,{copied:i,className:"size-3.5"})})}function f({tabs:e,activeKey:t,idFor:i,panelMounted:o,onActivate:f,onClose:g,onCloseMany:x,label:k,className:v,activeClassName:N,end:w,onIconMenu:C,menuItems:j}){const $=a().pageTabs,[I,z]=s(null),M=e.length;c(()=>{if(!t)return;const e=document.getElementById(i(t,"tab"));e?.scrollIntoView?.({block:"nearest",inline:"nearest"})},[i,t,M]);const D=e.some(e=>e.key===t)?t:e[0]?.key,B=t=>{const n=e[(t+e.length)%e.length];n&&document.getElementById(i(n.key,"tab"))?.focus()},L=I?e.find(e=>e.key===I.key):void 0,_=L&&j?j(L.key):[],A=L?e.indexOf(L):-1,E=e=>e.some(e=>!e.pinned),R=e=>()=>{z(null),e()};/* @__PURE__ */
1
+ import{useCopyText as e,CopyGlyph as t}from"./chunk-P4CIOJHP.js";import{PopupMenu as n,PopupMenuItem as r,PopupMenuDivider as l}from"./chunk-RMJZOKHY.js";import{CloseFallbackC as i}from"./chunk-6LTDJKIL.js";import{Icon as a}from"./chunk-XWSWYMGM.js";import{useShellStrings as o}from"./chunk-TNBCUZVE.js";import{useState as s,useEffect as c,Fragment as d}from"react";import{jsxs as m,jsx as u,Fragment as p}from"react/jsx-runtime";var y="outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-blue-500";function h(){/* @__PURE__ */
2
+ return u(a,{name:"close",fallback:i,"aria-hidden":"true",className:"size-3.5"})}function b({text:n,label:r,copiedLabel:l}){const{copied:i,copy:a}=e(n);/* @__PURE__ */
3
+ return u("button",{type:"button",tabIndex:-1,"aria-label":i?l:r,title:i?l:r,onClick:a,className:"flex size-5 shrink-0 items-center justify-center rounded text-gray-400 hover:bg-gray-200 hover:text-gray-700 @max-[10rem]:hidden",children:/* @__PURE__ */u(t,{copied:i,className:"size-3.5"})})}function f({tabs:e,activeKey:t,idFor:i,panelMounted:a,onActivate:f,onClose:g,onCloseMany:x,label:k,className:v,activeClassName:N,end:w,onIconMenu:C,menuItems:j}){const I=o().pageTabs,[$,z]=s(null),M=e.length;c(()=>{if(!t)return;const e=document.getElementById(i(t,"tab"));e?.scrollIntoView?.({block:"nearest",inline:"nearest"})},[i,t,M]);const D=e.some(e=>e.key===t)?t:e[0]?.key,_=t=>{const n=e[(t+e.length)%e.length];n&&document.getElementById(i(n.key,"tab"))?.focus()},A=$?e.find(e=>e.key===$.key):void 0,B=A&&j?j(A.key):[],E=A?e.indexOf(A):-1,L=e=>e.some(e=>!e.pinned),T=e=>()=>{z(null),e()};/* @__PURE__ */
4
4
  return m("div",{className:v??"relative flex h-10 shrink-0 items-end gap-3 bg-gray-100 px-3",children:[
5
5
  /* @__PURE__ */u("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 bottom-0 h-px bg-gray-200"}),
6
- /* @__PURE__ */u("div",{role:"tablist","aria-label":k,onKeyDown:t=>{const n=e.findIndex(e=>document.getElementById(i(e.key,"tab"))===t.target);if(!(n<0)){if("ArrowRight"===t.key)B(n+1);else if("ArrowLeft"===t.key)B(n-1);else if("Home"===t.key)B(0);else if("End"===t.key)B(e.length-1);else{if("Delete"!==t.key||e[n].pinned)return;g(e[n].key)}t.preventDefault()}},className:"flex min-w-0 flex-1 items-end overflow-x-auto overflow-y-hidden [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:e.map((n,r)=>{const l=n.key===t,a=!!n.dirty,s=n.icon,c=l?N??"z-[1] border-gray-200 bg-gray-50 text-gray-900":"border-transparent text-gray-600 hover:bg-gray-200/70 hover:text-gray-900",p=r>0&&!l&&e[r-1].key!==t,x={type:"button",role:"tab",id:i(n.key,"tab"),"aria-selected":l,"aria-controls":o?.(n.key)?i(n.key,"panel"):void 0,tabIndex:n.key===D?0:-1,title:n.title,onClick:()=>f(n.key)},k={onContextMenu:e=>((e,t)=>{e.preventDefault(),z({x:e.clientX,y:e.clientY,key:t.key})})(e,n),onAuxClick:e=>((e,t)=>{1!==e.button||t.pinned||(e.preventDefault(),g(t.key))})(e,n),onMouseDown:e=>{1===e.button&&e.preventDefault()}},v=s&&
7
- /* @__PURE__ */m("span",{className:"relative flex size-4 shrink-0 items-center justify-center text-gray-500 [&>svg]:size-4","aria-hidden":"true",children:[s,a&&!l&&!n.pinned&&
6
+ /* @__PURE__ */u("div",{role:"tablist","aria-label":k,onKeyDown:t=>{const n=e.findIndex(e=>document.getElementById(i(e.key,"tab"))===t.target);if(!(n<0)){if("ArrowRight"===t.key)_(n+1);else if("ArrowLeft"===t.key)_(n-1);else if("Home"===t.key)_(0);else if("End"===t.key)_(e.length-1);else{if("Delete"!==t.key||e[n].pinned)return;g(e[n].key)}t.preventDefault()}},className:"flex min-w-0 flex-1 items-end overflow-x-auto overflow-y-hidden [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:e.map((n,r)=>{const l=n.key===t,o=!!n.dirty,s=n.icon,c=l?N??"z-[1] border-gray-200 bg-gray-50 text-gray-900":"border-transparent text-gray-600 hover:bg-gray-200/70 hover:text-gray-900",p=r>0&&!l&&e[r-1].key!==t,x={type:"button",role:"tab",id:i(n.key,"tab"),"aria-selected":l,"aria-controls":a?.(n.key)?i(n.key,"panel"):void 0,tabIndex:n.key===D?0:-1,title:n.title,onClick:()=>f(n.key)},k={onContextMenu:e=>((e,t)=>{e.preventDefault(),z({x:e.clientX,y:e.clientY,key:t.key})})(e,n),onAuxClick:e=>((e,t)=>{1!==e.button||t.pinned||(e.preventDefault(),g(t.key))})(e,n),onMouseDown:e=>{1===e.button&&e.preventDefault()}},v=s&&
7
+ /* @__PURE__ */m("span",{className:"relative flex size-4 shrink-0 items-center justify-center text-gray-500 [&>svg]:size-4","aria-hidden":"true",children:[s,o&&!l&&!n.pinned&&
8
8
  /* @__PURE__ */u("span",{className:"absolute -right-1 -top-1 hidden size-2 rounded-full bg-gray-500 ring-2 ring-gray-100 @max-[6.5rem]:block @max-[6.5rem]:group-hover:hidden"})]}),w=l&&!!C&&!!s;return n.pinned?/* @__PURE__ */u("div",{role:"presentation",className:`group relative flex h-9 flex-none items-center justify-center rounded-t-md border border-b-0 transition-colors ${s?"w-10":""} ${c}`,...k,children:/* @__PURE__ */m("button",{...x,className:`flex h-full items-center justify-center rounded-t-md ${s?"w-full":"px-3"} ${y}`,children:[v,
9
9
  /* @__PURE__ */u("span",{className:s?"sr-only":"whitespace-nowrap text-[13px]",children:n.title})]})},n.key):/* @__PURE__ */m(d,{children:[p&&/* @__PURE__ */u("span",{"aria-hidden":"true",className:"mb-2.5 h-4 w-px shrink-0 self-end border-l border-gray-300"}),
10
10
  /* @__PURE__ */m("div",{role:"presentation",className:`group @container relative flex h-9 items-center rounded-t-md border border-b-0 text-[13px] transition-colors ${l&&(n.copy||w)?"flex-[0_1_20rem]":"flex-[0_1_15rem]"} ${l?"min-w-[4.25rem]":"min-w-[2.75rem]"} ${c}`,...k,children:[w&&
11
- /* @__PURE__ */u("button",{type:"button",tabIndex:-1,"aria-haspopup":"menu","aria-label":$.tabMenu,title:$.tabMenu,onClick:e=>{const t=e.currentTarget.getBoundingClientRect();C?.(n.key,t.left,t.bottom+4)},className:`ml-2 flex size-6 shrink-0 items-center justify-center rounded hover:bg-gray-200 @max-[5rem]:ml-1.5 ${y}`,children:v}),
11
+ /* @__PURE__ */u("button",{type:"button",tabIndex:-1,"aria-haspopup":"menu","aria-label":I.tabMenu,title:I.tabMenu,onClick:e=>{const t=e.currentTarget.getBoundingClientRect();C?.(n.key,t.left,t.bottom+4)},className:`ml-2 flex size-6 shrink-0 items-center justify-center rounded hover:bg-gray-200 @max-[5rem]:ml-1.5 ${y}`,children:v}),
12
12
  /* @__PURE__ */m("button",{...x,className:`flex h-full min-w-0 flex-1 items-center gap-2 rounded-t-md pr-1 text-left ${w?"pl-1.5":"pl-3"} ${y} ${l?w?"":"@max-[5rem]:pl-2.5":"@max-[6.5rem]:pr-3 @max-[6.5rem]:group-hover:pr-1 @max-[4.5rem]:justify-center @max-[4.5rem]:px-0 @max-[4.5rem]:group-hover:pl-1.5"}`,children:[!w&&v,
13
- /* @__PURE__ */u("span",{className:"min-w-0 flex-1 overflow-hidden whitespace-nowrap [mask-image:linear-gradient(to_right,#000_calc(100%-1rem),transparent)] "+(s?l?"@max-[5rem]:sr-only":"@max-[4.5rem]:sr-only":""),children:n.title})]}),l&&n.copy&&/* @__PURE__ */u(b,{text:n.copy,label:$.copy(n.copy),copiedLabel:$.copied}),
14
- /* @__PURE__ */m("span",{className:"mr-1.5 flex size-5 shrink-0 items-center justify-center "+(l?"":"@max-[6.5rem]:hidden @max-[6.5rem]:group-hover:flex"),children:[a&&/* @__PURE__ */u("span",{role:"img","aria-label":$.unsaved,className:"size-2 rounded-full bg-gray-500 group-hover:hidden"}),
15
- /* @__PURE__ */u("button",{type:"button",tabIndex:-1,"aria-label":$.closeTab?.(n.title)??`${$.close} ${n.title}`,onClick:()=>g(n.key),className:"size-5 items-center justify-center rounded text-gray-400 hover:bg-gray-200 hover:text-gray-700 "+(a?"hidden group-hover:flex":l?"flex":"flex opacity-0 group-hover:opacity-100 focus-visible:opacity-100"),children:/* @__PURE__ */u(h,{})})]})]})]},n.key)})}),w&&/* @__PURE__ */u("div",{className:"flex shrink-0 items-center gap-2 self-center",children:w}),I&&L&&/* @__PURE__ */m(n,{portal:!0,style:{left:I.x,top:I.y},onClose:()=>z(null),children:[_.length>0&&/* @__PURE__ */m(p,{children:[_.map((e,t)=>/* @__PURE__ */m(r,{onClick:R(e.onSelect),children:[e.icon,e.label]},t)),
13
+ /* @__PURE__ */u("span",{className:"min-w-0 flex-1 overflow-hidden whitespace-nowrap [mask-image:linear-gradient(to_right,#000_calc(100%-1rem),transparent)] "+(s?l?"@max-[5rem]:sr-only":"@max-[4.5rem]:sr-only":""),children:n.title})]}),l&&n.copy&&/* @__PURE__ */u(b,{text:n.copy,label:I.copy(n.copy),copiedLabel:I.copied}),
14
+ /* @__PURE__ */m("span",{className:"mr-1.5 flex size-5 shrink-0 items-center justify-center "+(l?"":"@max-[6.5rem]:hidden @max-[6.5rem]:group-hover:flex"),children:[o&&/* @__PURE__ */u("span",{role:"img","aria-label":I.unsaved,className:"size-2 rounded-full bg-gray-500 group-hover:hidden"}),
15
+ /* @__PURE__ */u("button",{type:"button",tabIndex:-1,"aria-label":I.closeTab?.(n.title)??`${I.close} ${n.title}`,onClick:()=>g(n.key),className:"size-5 items-center justify-center rounded text-gray-400 hover:bg-gray-200 hover:text-gray-700 "+(o?"hidden group-hover:flex":l?"flex":"flex opacity-0 group-hover:opacity-100 focus-visible:opacity-100"),children:/* @__PURE__ */u(h,{})})]})]})]},n.key)})}),w&&/* @__PURE__ */u("div",{className:"flex shrink-0 items-center gap-2 self-center",children:w}),$&&A&&/* @__PURE__ */m(n,{portal:!0,style:{left:$.x,top:$.y},onClose:()=>z(null),children:[B.length>0&&/* @__PURE__ */m(p,{children:[B.map((e,t)=>/* @__PURE__ */m(r,{onClick:T(e.onSelect),children:[e.icon,e.label]},t)),
16
16
  /* @__PURE__ */u(l,{})]}),
17
- /* @__PURE__ */u(r,{disabled:L.pinned,onClick:R(()=>g(L.key)),children:$.close}),
17
+ /* @__PURE__ */u(r,{disabled:A.pinned,onClick:T(()=>g(A.key)),children:I.close}),
18
18
  /* @__PURE__ */u(l,{}),
19
- /* @__PURE__ */u(r,{disabled:!E(e.filter(e=>e.key!==L.key)),onClick:R(()=>x("others",L.key)),children:$.closeOthers}),
20
- /* @__PURE__ */u(r,{disabled:!E(e.slice(A+1)),onClick:R(()=>x("right",L.key)),children:$.closeRight}),
21
- /* @__PURE__ */u(r,{disabled:!E(e),onClick:R(()=>x("all",null)),children:$.closeAll})]})]})}export{f as TabStrip};
19
+ /* @__PURE__ */u(r,{disabled:!L(e.filter(e=>e.key!==A.key)),onClick:T(()=>x("others",A.key)),children:I.closeOthers}),
20
+ /* @__PURE__ */u(r,{disabled:!L(e.slice(E+1)),onClick:T(()=>x("right",A.key)),children:I.closeRight}),
21
+ /* @__PURE__ */u(r,{disabled:!L(e),onClick:T(()=>x("all",null)),children:I.closeAll})]})]})}export{f as TabStrip};
@@ -1546,6 +1546,8 @@ interface InputNumberProps {
1546
1546
  * Snap a committed number (Enter or blur) to the `step` grid counted from
1547
1547
  * `min` (or 0), then hold it to `min`/`max`. Typing is never snapped under
1548
1548
  * the caret. Default false: a typed 1.3 in a `step={0.5}` field stays 1.3.
1549
+ * The rounding is float-safe and an exact half step goes away from zero: a
1550
+ * typed 1.15 at `step={0.1}` is 1.2, and -1.15 is -1.2.
1549
1551
  */
1550
1552
  snap?: boolean;
1551
1553
  /**
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { S as SearchConfig, C as ColumnDef, a as SortState, P as PaginatedResponse } from './index-BgM75MC6.js';
2
- export { A as ALT, b as ALT_SHIFT_D, c as ALT_SHIFT_E, d as ALT_SHIFT_N, e as APP_UPDATE_POLL_MS, f as Accordion, g as AccordionItem, h as AccordionProps, i as Align, j as AlignmentGrid, k as AlignmentGridProps, l as AlignmentPoint, m as AngleScale, n as AppUpdateBanner, o as AppUpdateBannerProps, p as AttachButton, q as AttachButtonProps, r as AttachmentDropZone, s as AttachmentDropZoneProps, t as AttachmentList, u as AttachmentListProps, v as AuthScreen, w as AuthScreenProps, x as Avatar, y as AvatarGroup, z as AvatarGroupProps, B as AvatarProps, D as AvatarSize, E as AvatarStatus, F as BORDER_WIDTHS, G as BackgroundVariant, H as BandScale, I as Banner, J as BannerEmphasis, K as BannerProps, L as BannerTone, M as BarChart, N as BarChartProps, O as BorderRole, Q as BoxPlotBox, R as BoxPlotChart, T as BoxPlotChartProps, U as BrandAssetEditor, V as BrandAssetEditorProps, W as BrandAssetPreview, X as BrandMark, Y as BrandMarkProps, Z as BrandMarkSlot, _ as BrandMarkSurface, $ as BrandMarkTreatment, a0 as BreadcrumbItem, a1 as Breadcrumbs, a2 as BreadcrumbsProps, a3 as BudgetBar, a4 as BudgetBarProps, a5 as BudgetState, a6 as Button, a7 as ButtonClassesOptions, a8 as ButtonProps, a9 as ButtonSize, aa as ButtonVariant, ab as CHART_INK, ac as CMD_A, ad as CMD_DOT, ae as CMD_ENTER, af as CMD_K, ag as CMD_S, ah as COLUMN_COUNT_MAX, ai as COLUMN_COUNT_WIDTHS, aj as COLUMN_SHARES_EQUAL, ak as COLUMN_SHARE_MIN, al as CONTROL_HEIGHTS, am as CORNERS, an as Calendar, ao as CalendarMode, ap as CalendarProps, aq as Candle, ar as CandlestickChart, as as CandlestickChartProps, at as Card, au as CardPadding, av as CardProps, aw as CartesianPlot, ax as CartesianPlotProps, ay as CellStyle, az as ChartBackgroundVariant, aA as ChartBrush, aB as ChartBrushProps, aC as ChartCurve, aD as ChartDefs, aE as ChartDefsProps, aF as ChartDot, aG as ChartDotProps, aH as ChartDotVariant, aI as ChartFillVariant, aJ as ChartFrame, aK as ChartFrameProps, aL as ChartHighlightProvider, aM as ChartLegendEntry, aN as ChartLegendSwatch, aO as ChartRange, aP as ChartReferenceLine, aQ as ChartRevealDirection, aR as ChartSkeleton, aS as ChartSkeletonProps, aT as ChartStatusTone, aU as ChartStrokeVariant, aV as ChartTooltip, aW as ChartTooltipProps, aX as ChartTooltipRow, aY as ChatTemplate, aZ as Checkbox, a_ as CheckboxProps, a$ as CheckoutTemplate, b0 as ChordChart, b1 as ChordChartProps, b2 as ColorPicker, b3 as ColorPickerPanel, b4 as ColorPickerPanelProps, b5 as ColorPickerProps, b6 as ColorPreset, b7 as ColorSwatch, b8 as ColorSwatchProps, b9 as ColorSwatchSize, ba as ColoredBadge, bb as ColoredBadgeProps, bc as ColumnChart, bd as ColumnChartProps, be as ColumnSeries, bf as ColumnShares, bg as ComposerAttachments, bh as ComposerAttachmentsProps, bi as ConfirmProvider, bj as ContainerFillChart, bk as ContainerFillChartProps, bl as ContainerFillItem, bm as ContextMenu, bn as ContextMenuPoint, bo as ContextMenuProps, bp as ContextMenuState, bq as ControlSize, br as CornerOption, bs as Corners, bt as CornersInput, bu as CornersInputProps, bv as CountBadge, bw as CountBadgeProps, bx as CountBadgeTone, by as Curve, bz as DAY_MS, bA as DashboardTemplate, bB as DataTable, bC as DataTableColumn, bD as DataTableColumnGroup, bE as DataTableHeader, bF as DataTablePage, bG as DataTableProps, bH as DataTableRowLink, bI as DataTableRowProps, bJ as DatePicker, bK as DatePickerProps, bL as DateRangePicker, bM as DateRangePickerProps, bN as DateTimePicker, bO as DateTimePickerProps, bP as DescriptionColumns, bQ as DescriptionItem, bR as DescriptionList, bS as DescriptionListProps, bT as Dialog, bU as DialogProps, bV as DialogSize, bW as DisplayChipItem, bX as DisplayChips, bY as DisplayChipsProps, bZ as Divider, b_ as DividerProps, b$ as DividerSpacing, c0 as DonutChart, c1 as DonutChartProps, c2 as DonutSegment, c3 as Drawer, c4 as DrawerProps, c5 as DrawerSide, c6 as DrawerSize, c7 as DropdownMenu, c8 as DropdownMenuAlign, c9 as DropdownMenuCheckboxItem, ca as DropdownMenuDividerItem, cb as DropdownMenuEntry, cc as DropdownMenuItem, cd as DropdownMenuLabelItem, ce as DropdownMenuLinkItem, cf as DropdownMenuProps, cg as DropdownMenuRadioItem, ch as DropdownMenuSide, ci as DropdownPositionOptions, cj as ELEVATION_LEVELS, ck as ENGLISH, cl as ENTER, cm as EditableGrid, cn as EditableGridProps, co as ElevationLevel, cp as EmailTemplate, cq as EmptyState, cr as EmptyStateProps, cs as EmptyValue, ct as EmptyValueProps, cu as ErrorBoundary, cv as ErrorBoundaryProps, cw as ErrorPage, cx as ErrorPageProps, cy as FONT_WEIGHTS, cz as FileIntake, cA as FilePicker, cB as FilePickerProps, cC as FillVariant, cD as FontWeightRole, cE as FormError, cF as FormErrorSummary, cG as FormErrorSummaryProps, cH as FormField, cI as FormFieldProps, cJ as FormLayoutPage, cK as FunnelChart, cL as FunnelChartProps, cM as FunnelStage, cN as GLASS_DIVIDER, cO as GLASS_INPUT_BG, cP as GROUP_COLORS, cQ as GROUP_COLORS_SOLID, cR as GalleryTemplate, cS as Gap, cT as GlassOptions, cU as GlobalSearch, cV as GlobalSearchProps, cW as Grid, cX as GridCols, cY as GridColumn, cZ as GridProps, c_ as HeatmapChart, c$ as HeatmapChartProps, d0 as HelpCenter, d1 as HelpCenterDoc, d2 as HelpCenterProps, d3 as HexInput, d4 as HistogramBin, d5 as HistogramChart, d6 as HistogramChartProps, d7 as Hsv, d8 as INPUT_BASE, d9 as INPUT_SIZES, da as IconButton, db as IconButtonClassesOptions, dc as IconButtonProps, dd as IconRail, de as IconRailButton, df as IconRailButtonProps, dg as IconRailLabels, dh as IconRailLabelsShown, di as IconRailOrientation, dj as IconRailProps, dk as ImageFocusPoint, dl as ImageFocusPointProps, dm as Inline, dn as InlineProps, dp as Input, dq as InputNumber, dr as InputNumberProps, ds as InputProps, dt as InputSize, du as Justify, dv as Kanban, dw as KanbanColumn, dx as KanbanProps, dy as Kbd, dz as KbdProps, dA as KbdSize, dB as Label, dC as LabelClassesOptions, dD as LabelProps, dE as LadderScale, dF as LanguagePanel, dG as LanguagePanelProps, dH as LanguageSelect, dI as LanguageSelectProps, dJ as LineChart, dK as LineChartProps, dL as LineChartSeries, dM as LinearScale, dN as LinkFilter, dO as LinkFilterField, dP as LinkKindChoice, dQ as LinkOption, dR as LinkOptionGroup, dS as LinkPicker, dT as LinkPickerFieldProps, dU as LinkPickerProps, dV as LinkPickerWindowProps, dW as LinkRules, dX as LinkTarget, dY as ListDrop, dZ as ListFooter, d_ as ListLoadError, d$ as ListLoadErrorProps, e0 as ListMove, e1 as ListRow, e2 as ListRowProps, e3 as LoadingSpinner, e4 as LoadingSpinnerProps, e5 as MAX_FRACTION_DIGITS, e6 as MENU_MAX_HEIGHT, e7 as MOD, e8 as MOTION, e9 as MOTION_DURATIONS, ea as Markdown, ea as MarkdownLite, eb as MarkdownLiteProps, eb as MarkdownProps, ec as MediaUploadField, ed as MediaUploadFieldProps, ee as MediaUploadGrid, ef as MediaUploadGridItem, eg as MediaUploadGridProps, eh as MenuPos, ei as Meter, ej as MeterProps, ek as MetricBar, el as MetricBarProps, em as Milestone, en as MilestoneKind, eo as MilestoneTimeline, ep as MilestoneTimelineProps, eq as MotionSpeed, er as NATIVE_MENU_ATTR, es as NEXT_CHUNK_PATH_PREFIX, et as NativeSelect, eu as NumericKeypad, ev as NumericKeypadProps, ew as OVERLAY_OPEN_EVENT, ex as POPUP_MAX_WIDTH, ey as POST_PRODUCTION_STATUSES, ez as PageHeader, eA as PageHeaderProps, eB as Pagination, eC as PaginationProps, eD as PaperclipGlyph, eE as Paragraph, eF as ParagraphProps, eG as PieChart, eH as PieChartProps, eI as PieSegment, eJ as PlotGeometry, eK as Point, eL as Popover, eM as PopoverAlign, eN as PopoverProps, eO as PopoverRenderProps, eP as PopoverSide, eQ as PopupMenu, eR as PopupMenuDivider, eS as PopupMenuItem, eT as PopupMenuItemProps, eU as PopupMenuLabel, eV as PopupMenuProps, eW as PopupSubmenu, eX as PopupSubmenuProps, eY as PortalBrandingContextValue, eZ as PortalBrandingProvider, e_ as PortalBrandingProviderProps, e$ as ProductionTimeline, f0 as ProductionTimelineProps, f1 as ProductionTimelineSnapshot, f2 as ProgressItem, f3 as PublicPortal, f4 as PublicPortalBranding, f5 as RADAR_SERIES_CAP, f6 as RADIUS_ROLES, f7 as RadarAxis, f8 as RadarChart, f9 as RadarChartProps, fa as RadarSeries, fb as RadialBarChart, fc as RadialBarChartProps, fd as RadialBarRow, fe as Radio, ff as RadioGroup, fg as RadioGroupOption, fh as RadioGroupOrientation, fi as RadioGroupProps, fj as RadioProps, fk as RadiusRole, fl as Range, fm as RangeChart, fn as RangeChartProps, fo as RangeRow, fp as RankedBars, fq as RankedBarsProps, fr as RankedBarsRow, fs as ResizeHandle, ft as ResizeHandleProps, fu as ResizeHandleSide, fv as ResolvedPortalBrandAsset, fw as Result, fx as ResultProps, fy as ResultStatus, fz as RevealDirection, fA as SCATTER_SERIES_CAP, fB as SERIES_SLOT_COUNT, fC as SERIES_VARS, fD as SHELL_LANGUAGE_STORAGE_KEY, fE as SHIFT, fF as SPACING_ROLES, fG as SPACING_SCALE, fH as STAGES, fI as STALE_CHUNK_RELOAD_COOLDOWN_MS, fJ as STALE_CHUNK_RELOAD_KEY, fK as STATUS_VARS, fL as SankeyChart, fM as SankeyChartProps, fN as SankeyLink, fO as SankeyNode, fP as ScatterChart, fQ as ScatterChartProps, fR as ScatterPoint, fS as ScatterSeries, fT as SearchListRoute, fU as SearchProvider, fV as SearchQuickAction, fW as SearchResponse, fX as SearchResult, fY as SearchableItem, fZ as SearchableOption, f_ as SearchableOptionGroup, f$ as SearchableSelect, g0 as SearchableSelectBaseProps, g1 as SearchableSelectMultipleProps, g2 as SearchableSelectProps, g3 as Segmented, g4 as SegmentedOption, g5 as SegmentedProps, g6 as SegmentedSize, g7 as Select, g8 as SelectBaseProps, g9 as SelectItem, ga as SelectMultipleProps, gb as SelectOption, gc as SelectOptionGroup, gd as SelectProps, ge as SemanticGroup, gf as SettingRow, gg as SettingRowProps, gh as SeverityTone, gi as ShellContextKind, gj as ShellContextTarget, gk as ShellLanguage, gl as ShellLanguageProvider, gm as ShellLanguageState, gn as ShellPrefsAdapter, go as ShellPrefsProvider, gp as SidebarActionButton, gq as SidebarActionButtonProps, gr as SidebarGroupLabel, gs as SidebarGroupLabelProps, gt as SidebarLayout, gu as SidebarLayoutProps, gv as SidebarNavGroup, gw as SidebarNavGroupProps, gx as SidebarNavItem, gy as SidebarNavItemProps, gz as Skeleton, gA as SkeletonProps, gB as SkeletonVariant, gC as Slider, gD as SliderProps, gE as SliderSize, gF as Snippet, gG as SnippetProps, gH as SnippetSize, gI as SnippetVariant, gJ as SortableList, gK as SortableListProps, gL as SortableListSpacing, gM as SpacingRole, gN as SpacingStep, gO as Sparkline, gP as SparklineProps, gQ as Stack, gR as StackProps, gS as StaleChunkReloadOptions, gT as StatCard, gU as StatCardProps, gV as StatTile, gW as StatTileProps, gX as Statistic, gY as StatisticProps, gZ as StatisticSize, g_ as StatisticTone, g$ as StatusBadge, h0 as StatusBadgeProvider, h1 as StatusEmphasis, h2 as StepItem, h3 as Stepper, h4 as StepperProps, h5 as StrokeVariant, h6 as SunburstChart, h7 as SunburstChartProps, h8 as SunburstNode, h9 as Switch, ha as SwitchProps, hb as SwitchSize, hc as TYPE_SCALE, hd as TabItem, he as Tabs, hf as TabsProps, hg as TagInput, hh as TagInputOption, hi as TagInputProps, hj as Text, hk as TextLinkField, hl as TextLinkFieldProps, hm as TextProps, hn as TextSize, ho as TextTone, hp as TextWeight, hq as Textarea, hr as TextareaProps, hs as Theme, ht as TileButton, hu as TileButtonProps, hv as TileSize, hw as TimeAgo, hx as TimeAgoProps, hy as TimePicker, hz as TimePickerProps, hA as TimeSeriesChart, hB as TimeSeriesChartProps, hC as TimeSeriesSeries, hD as TimelineMarker, hE as TimelineMarkerKind, hF as TimelineReport, hG as TimelineScrubProgress, hH as TimelineTrack, hI as TimelineTrackItem, hJ as TimelineTrackKind, hK as TimelineTrackPending, hL as TimelineTrackPhase, hM as TimelineTrackPlayback, hN as TimelineTrackProps, hO as TimelineTrackThumb, hP as Title, hQ as TitleLevel, hR as TitleProps, hS as ToastOptions, hT as ToastPlacement, hU as Tooltip, hV as TooltipProps, hW as TopNav, hX as TopNavItem, hY as TopNavProps, hZ as Tree, h_ as TreeDrop, h$ as TreeEmptySlot, i0 as TreeEmptySlotProps, i1 as TreeGroup, i2 as TreeGroupLabel, i3 as TreeGroupProps, i4 as TreeMove, i5 as TreeProps, i6 as TreeRow, i7 as TreeRowProps, i8 as TreeSeam, i9 as TreeSeamProps, ia as TreemapChart, ib as TreemapChartProps, ic as TreemapItem, id as TreemapTile, ie as TypeStep, ig as UseAppUpdateOptions, ih as UseContextMenu, ii as UseProductionTimelineOpts, ij as VERSION, ik as VITE_PRELOAD_ERROR_EVENT, il as WaterfallChart, im as WaterfallChartProps, io as WaterfallStep, ip as WidthsBar, iq as WidthsBarProps, ir as ZLayer, is as Z_LAYERS, it as angleScale, iu as appendKey, iv as applyCorners, iw as applyIconSet, ix as applyThemePrefs, iy as arcPath, iz as areaBetween, iA as areaFrom, iB as autoHighlightIndex, iC as backspace, iD as bandScale, iE as binValues, iF as budgetState, iG as bumpPath, iH as buttonClasses, iI as calcOverall, iJ as calcReportOverall, iK as colorFill, iL as colorSwatchClasses, iM as columnSharesWidths, iN as confirm, iO as confirmDestructive, iP as curvePath, iQ as dashFor, iR as describeContextTarget, iS as dismissPopups, iT as fillFor, iU as fillId, iV as fmtSliderDate, iW as fromDateKey, iX as glassStyle, iY as glowId, iZ as groundId, i_ as groupColors, i$ as hexToHsv, j0 as highlightOpacity, j1 as hsvToHex, j2 as iconButtonClasses, j3 as inputClasses, j4 as installStaleChunkReload, j5 as isMac, j6 as isSafeLinkHref, j7 as isSeverityTone, j8 as isSpacingStep, j9 as isStaleChunkError, ja as keepsNativeMenu, jb as labelClasses, jc as ladderScale, jd as languageSelectWidth, je as leavesContextMenuAlone, jf as linearPath, jg as linearScale, jh as logScale, ji as maskId, jj as matchShellLanguage, jk as mediaFileName, jl as monotonePath, jm as niceMax, jn as openGlobalSearch, jo as parseHexColor, jp as polygonPoints, jq as popupBounds, jr as prompt, js as pushRecentSearch, jt as radiusScale, ju as readSavedShellLanguage, jv as registerModalEscapeInterceptor, jw as resolveBrandMarkTreatment, jx as resolveColumnShares, jy as resolveColumnWidths, jz as resolveCorners, jA as resolvePortalBrandAsset, jB as resolveSeriesColor, jC as resolveShellLanguage, jD as resolveTheme, jE as sanitizeRecentSearches, jF as saveShellLanguage, jG as seriesColor, jH as severityOf, jI as splinePath, jJ as squarify, jK as stagger, jL as stepPath, jM as tabButtonId, jN as tabPanelId, jO as toDateKey, jP as toDayMs, jQ as toISODate, jR as toast, jS as useAppUpdate, jT as useClickOutside, jU as useConfirm, jV as useContextMenu, jW as useDebouncedValue, jX as useDropdownPosition, jY as useFocusTrap, jZ as useHighlight, j_ as useIsMobile, j$ as useLocalStoragePrefs, k0 as usePlotWidth, k1 as usePortalBranding, k2 as useProductionTimeline, k3 as useScrollLock, k4 as useShellLanguage, k5 as useShellPrefs, k6 as useStatusLabel, k7 as useTheme } from './index-BgM75MC6.js';
1
+ import { S as SearchConfig, C as ColumnDef, a as SortState, P as PaginatedResponse } from './index-ZI6vl2Wq.js';
2
+ export { A as ALT, b as ALT_SHIFT_D, c as ALT_SHIFT_E, d as ALT_SHIFT_N, e as APP_UPDATE_POLL_MS, f as Accordion, g as AccordionItem, h as AccordionProps, i as Align, j as AlignmentGrid, k as AlignmentGridProps, l as AlignmentPoint, m as AngleScale, n as AppUpdateBanner, o as AppUpdateBannerProps, p as AttachButton, q as AttachButtonProps, r as AttachmentDropZone, s as AttachmentDropZoneProps, t as AttachmentList, u as AttachmentListProps, v as AuthScreen, w as AuthScreenProps, x as Avatar, y as AvatarGroup, z as AvatarGroupProps, B as AvatarProps, D as AvatarSize, E as AvatarStatus, F as BORDER_WIDTHS, G as BackgroundVariant, H as BandScale, I as Banner, J as BannerEmphasis, K as BannerProps, L as BannerTone, M as BarChart, N as BarChartProps, O as BorderRole, Q as BoxPlotBox, R as BoxPlotChart, T as BoxPlotChartProps, U as BrandAssetEditor, V as BrandAssetEditorProps, W as BrandAssetPreview, X as BrandMark, Y as BrandMarkProps, Z as BrandMarkSlot, _ as BrandMarkSurface, $ as BrandMarkTreatment, a0 as BreadcrumbItem, a1 as Breadcrumbs, a2 as BreadcrumbsProps, a3 as BudgetBar, a4 as BudgetBarProps, a5 as BudgetState, a6 as Button, a7 as ButtonClassesOptions, a8 as ButtonProps, a9 as ButtonSize, aa as ButtonVariant, ab as CHART_INK, ac as CMD_A, ad as CMD_DOT, ae as CMD_ENTER, af as CMD_K, ag as CMD_S, ah as COLUMN_COUNT_MAX, ai as COLUMN_COUNT_WIDTHS, aj as COLUMN_SHARES_EQUAL, ak as COLUMN_SHARE_MIN, al as CONTROL_HEIGHTS, am as CORNERS, an as Calendar, ao as CalendarMode, ap as CalendarProps, aq as Candle, ar as CandlestickChart, as as CandlestickChartProps, at as Card, au as CardPadding, av as CardProps, aw as CartesianPlot, ax as CartesianPlotProps, ay as CellStyle, az as ChartBackgroundVariant, aA as ChartBrush, aB as ChartBrushProps, aC as ChartCurve, aD as ChartDefs, aE as ChartDefsProps, aF as ChartDot, aG as ChartDotProps, aH as ChartDotVariant, aI as ChartFillVariant, aJ as ChartFrame, aK as ChartFrameProps, aL as ChartHighlightProvider, aM as ChartLegendEntry, aN as ChartLegendSwatch, aO as ChartRange, aP as ChartReferenceLine, aQ as ChartRevealDirection, aR as ChartSkeleton, aS as ChartSkeletonProps, aT as ChartStatusTone, aU as ChartStrokeVariant, aV as ChartTooltip, aW as ChartTooltipProps, aX as ChartTooltipRow, aY as ChatTemplate, aZ as Checkbox, a_ as CheckboxProps, a$ as CheckoutTemplate, b0 as ChordChart, b1 as ChordChartProps, b2 as ColorPicker, b3 as ColorPickerPanel, b4 as ColorPickerPanelProps, b5 as ColorPickerProps, b6 as ColorPreset, b7 as ColorSwatch, b8 as ColorSwatchProps, b9 as ColorSwatchSize, ba as ColoredBadge, bb as ColoredBadgeProps, bc as ColumnChart, bd as ColumnChartProps, be as ColumnSeries, bf as ColumnShares, bg as ComposerAttachments, bh as ComposerAttachmentsProps, bi as ConfirmProvider, bj as ContainerFillChart, bk as ContainerFillChartProps, bl as ContainerFillItem, bm as ContextMenu, bn as ContextMenuPoint, bo as ContextMenuProps, bp as ContextMenuState, bq as ControlSize, br as CornerOption, bs as Corners, bt as CornersInput, bu as CornersInputProps, bv as CountBadge, bw as CountBadgeProps, bx as CountBadgeTone, by as Curve, bz as DAY_MS, bA as DashboardTemplate, bB as DataTable, bC as DataTableColumn, bD as DataTableColumnGroup, bE as DataTableHeader, bF as DataTablePage, bG as DataTableProps, bH as DataTableRowLink, bI as DataTableRowProps, bJ as DatePicker, bK as DatePickerProps, bL as DateRangePicker, bM as DateRangePickerProps, bN as DateTimePicker, bO as DateTimePickerProps, bP as DescriptionColumns, bQ as DescriptionItem, bR as DescriptionList, bS as DescriptionListProps, bT as Dialog, bU as DialogProps, bV as DialogSize, bW as DisplayChipItem, bX as DisplayChips, bY as DisplayChipsProps, bZ as Divider, b_ as DividerProps, b$ as DividerSpacing, c0 as DonutChart, c1 as DonutChartProps, c2 as DonutSegment, c3 as Drawer, c4 as DrawerProps, c5 as DrawerSide, c6 as DrawerSize, c7 as DropdownMenu, c8 as DropdownMenuAlign, c9 as DropdownMenuCheckboxItem, ca as DropdownMenuDividerItem, cb as DropdownMenuEntry, cc as DropdownMenuItem, cd as DropdownMenuLabelItem, ce as DropdownMenuLinkItem, cf as DropdownMenuProps, cg as DropdownMenuRadioItem, ch as DropdownMenuSide, ci as DropdownPositionOptions, cj as ELEVATION_LEVELS, ck as ENGLISH, cl as ENTER, cm as EditableGrid, cn as EditableGridProps, co as ElevationLevel, cp as EmailTemplate, cq as EmptyState, cr as EmptyStateProps, cs as EmptyValue, ct as EmptyValueProps, cu as ErrorBoundary, cv as ErrorBoundaryProps, cw as ErrorPage, cx as ErrorPageProps, cy as FONT_WEIGHTS, cz as FileIntake, cA as FilePicker, cB as FilePickerProps, cC as FillVariant, cD as FontWeightRole, cE as FormError, cF as FormErrorSummary, cG as FormErrorSummaryProps, cH as FormField, cI as FormFieldProps, cJ as FormLayoutPage, cK as FunnelChart, cL as FunnelChartProps, cM as FunnelStage, cN as GLASS_DIVIDER, cO as GLASS_INPUT_BG, cP as GROUP_COLORS, cQ as GROUP_COLORS_SOLID, cR as GalleryTemplate, cS as Gap, cT as GlassOptions, cU as GlobalSearch, cV as GlobalSearchProps, cW as Grid, cX as GridCols, cY as GridColumn, cZ as GridProps, c_ as HeatmapChart, c$ as HeatmapChartProps, d0 as HelpCenter, d1 as HelpCenterDoc, d2 as HelpCenterProps, d3 as HexInput, d4 as HistogramBin, d5 as HistogramChart, d6 as HistogramChartProps, d7 as Hsv, d8 as INPUT_BASE, d9 as INPUT_SIZES, da as IconButton, db as IconButtonClassesOptions, dc as IconButtonProps, dd as IconRail, de as IconRailButton, df as IconRailButtonProps, dg as IconRailLabels, dh as IconRailLabelsShown, di as IconRailOrientation, dj as IconRailProps, dk as ImageFocusPoint, dl as ImageFocusPointProps, dm as Inline, dn as InlineProps, dp as Input, dq as InputNumber, dr as InputNumberProps, ds as InputProps, dt as InputSize, du as Justify, dv as Kanban, dw as KanbanColumn, dx as KanbanProps, dy as Kbd, dz as KbdProps, dA as KbdSize, dB as Label, dC as LabelClassesOptions, dD as LabelProps, dE as LadderScale, dF as LanguagePanel, dG as LanguagePanelProps, dH as LanguageSelect, dI as LanguageSelectProps, dJ as LineChart, dK as LineChartProps, dL as LineChartSeries, dM as LinearScale, dN as LinkFilter, dO as LinkFilterField, dP as LinkKindChoice, dQ as LinkOption, dR as LinkOptionGroup, dS as LinkPicker, dT as LinkPickerFieldProps, dU as LinkPickerProps, dV as LinkPickerWindowProps, dW as LinkRules, dX as LinkTarget, dY as ListDrop, dZ as ListFooter, d_ as ListLoadError, d$ as ListLoadErrorProps, e0 as ListMove, e1 as ListRow, e2 as ListRowProps, e3 as LoadingSpinner, e4 as LoadingSpinnerProps, e5 as MAX_FRACTION_DIGITS, e6 as MENU_MAX_HEIGHT, e7 as MOD, e8 as MOTION, e9 as MOTION_DURATIONS, ea as Markdown, ea as MarkdownLite, eb as MarkdownLiteProps, eb as MarkdownProps, ec as MediaUploadField, ed as MediaUploadFieldProps, ee as MediaUploadGrid, ef as MediaUploadGridItem, eg as MediaUploadGridProps, eh as MenuPos, ei as Meter, ej as MeterProps, ek as MetricBar, el as MetricBarProps, em as Milestone, en as MilestoneKind, eo as MilestoneTimeline, ep as MilestoneTimelineProps, eq as MotionSpeed, er as NATIVE_MENU_ATTR, es as NEXT_CHUNK_PATH_PREFIX, et as NativeSelect, eu as NumericKeypad, ev as NumericKeypadProps, ew as OVERLAY_OPEN_EVENT, ex as POPUP_MAX_WIDTH, ey as POST_PRODUCTION_STATUSES, ez as PageHeader, eA as PageHeaderProps, eB as Pagination, eC as PaginationProps, eD as PaperclipGlyph, eE as Paragraph, eF as ParagraphProps, eG as PieChart, eH as PieChartProps, eI as PieSegment, eJ as PlotGeometry, eK as Point, eL as Popover, eM as PopoverAlign, eN as PopoverProps, eO as PopoverRenderProps, eP as PopoverSide, eQ as PopupMenu, eR as PopupMenuDivider, eS as PopupMenuItem, eT as PopupMenuItemProps, eU as PopupMenuLabel, eV as PopupMenuProps, eW as PopupSubmenu, eX as PopupSubmenuProps, eY as PortalBrandingContextValue, eZ as PortalBrandingProvider, e_ as PortalBrandingProviderProps, e$ as ProductionTimeline, f0 as ProductionTimelineProps, f1 as ProductionTimelineSnapshot, f2 as ProgressItem, f3 as PublicPortal, f4 as PublicPortalBranding, f5 as RADAR_SERIES_CAP, f6 as RADIUS_ROLES, f7 as RadarAxis, f8 as RadarChart, f9 as RadarChartProps, fa as RadarSeries, fb as RadialBarChart, fc as RadialBarChartProps, fd as RadialBarRow, fe as Radio, ff as RadioGroup, fg as RadioGroupOption, fh as RadioGroupOrientation, fi as RadioGroupProps, fj as RadioProps, fk as RadiusRole, fl as Range, fm as RangeChart, fn as RangeChartProps, fo as RangeRow, fp as RankedBars, fq as RankedBarsProps, fr as RankedBarsRow, fs as ResizeHandle, ft as ResizeHandleProps, fu as ResizeHandleSide, fv as ResolvedPortalBrandAsset, fw as Result, fx as ResultProps, fy as ResultStatus, fz as RevealDirection, fA as SCATTER_SERIES_CAP, fB as SERIES_SLOT_COUNT, fC as SERIES_VARS, fD as SHELL_LANGUAGE_STORAGE_KEY, fE as SHIFT, fF as SPACING_ROLES, fG as SPACING_SCALE, fH as STAGES, fI as STALE_CHUNK_RELOAD_COOLDOWN_MS, fJ as STALE_CHUNK_RELOAD_KEY, fK as STATUS_VARS, fL as SankeyChart, fM as SankeyChartProps, fN as SankeyLink, fO as SankeyNode, fP as ScatterChart, fQ as ScatterChartProps, fR as ScatterPoint, fS as ScatterSeries, fT as SearchListRoute, fU as SearchProvider, fV as SearchQuickAction, fW as SearchResponse, fX as SearchResult, fY as SearchableItem, fZ as SearchableOption, f_ as SearchableOptionGroup, f$ as SearchableSelect, g0 as SearchableSelectBaseProps, g1 as SearchableSelectMultipleProps, g2 as SearchableSelectProps, g3 as Segmented, g4 as SegmentedOption, g5 as SegmentedProps, g6 as SegmentedSize, g7 as Select, g8 as SelectBaseProps, g9 as SelectItem, ga as SelectMultipleProps, gb as SelectOption, gc as SelectOptionGroup, gd as SelectProps, ge as SemanticGroup, gf as SettingRow, gg as SettingRowProps, gh as SeverityTone, gi as ShellContextKind, gj as ShellContextTarget, gk as ShellLanguage, gl as ShellLanguageProvider, gm as ShellLanguageState, gn as ShellPrefsAdapter, go as ShellPrefsProvider, gp as SidebarActionButton, gq as SidebarActionButtonProps, gr as SidebarGroupLabel, gs as SidebarGroupLabelProps, gt as SidebarLayout, gu as SidebarLayoutProps, gv as SidebarNavGroup, gw as SidebarNavGroupProps, gx as SidebarNavItem, gy as SidebarNavItemProps, gz as Skeleton, gA as SkeletonProps, gB as SkeletonVariant, gC as Slider, gD as SliderProps, gE as SliderSize, gF as Snippet, gG as SnippetProps, gH as SnippetSize, gI as SnippetVariant, gJ as SortableList, gK as SortableListProps, gL as SortableListSpacing, gM as SpacingRole, gN as SpacingStep, gO as Sparkline, gP as SparklineProps, gQ as Stack, gR as StackProps, gS as StaleChunkReloadOptions, gT as StatCard, gU as StatCardProps, gV as StatTile, gW as StatTileProps, gX as Statistic, gY as StatisticProps, gZ as StatisticSize, g_ as StatisticTone, g$ as StatusBadge, h0 as StatusBadgeProvider, h1 as StatusEmphasis, h2 as StepItem, h3 as Stepper, h4 as StepperProps, h5 as StrokeVariant, h6 as SunburstChart, h7 as SunburstChartProps, h8 as SunburstNode, h9 as Switch, ha as SwitchProps, hb as SwitchSize, hc as TYPE_SCALE, hd as TabItem, he as Tabs, hf as TabsProps, hg as TagInput, hh as TagInputOption, hi as TagInputProps, hj as Text, hk as TextLinkField, hl as TextLinkFieldProps, hm as TextProps, hn as TextSize, ho as TextTone, hp as TextWeight, hq as Textarea, hr as TextareaProps, hs as Theme, ht as TileButton, hu as TileButtonProps, hv as TileSize, hw as TimeAgo, hx as TimeAgoProps, hy as TimePicker, hz as TimePickerProps, hA as TimeSeriesChart, hB as TimeSeriesChartProps, hC as TimeSeriesSeries, hD as TimelineMarker, hE as TimelineMarkerKind, hF as TimelineReport, hG as TimelineScrubProgress, hH as TimelineTrack, hI as TimelineTrackItem, hJ as TimelineTrackKind, hK as TimelineTrackPending, hL as TimelineTrackPhase, hM as TimelineTrackPlayback, hN as TimelineTrackProps, hO as TimelineTrackThumb, hP as Title, hQ as TitleLevel, hR as TitleProps, hS as ToastOptions, hT as ToastPlacement, hU as Tooltip, hV as TooltipProps, hW as TopNav, hX as TopNavItem, hY as TopNavProps, hZ as Tree, h_ as TreeDrop, h$ as TreeEmptySlot, i0 as TreeEmptySlotProps, i1 as TreeGroup, i2 as TreeGroupLabel, i3 as TreeGroupProps, i4 as TreeMove, i5 as TreeProps, i6 as TreeRow, i7 as TreeRowProps, i8 as TreeSeam, i9 as TreeSeamProps, ia as TreemapChart, ib as TreemapChartProps, ic as TreemapItem, id as TreemapTile, ie as TypeStep, ig as UseAppUpdateOptions, ih as UseContextMenu, ii as UseProductionTimelineOpts, ij as VERSION, ik as VITE_PRELOAD_ERROR_EVENT, il as WaterfallChart, im as WaterfallChartProps, io as WaterfallStep, ip as WidthsBar, iq as WidthsBarProps, ir as ZLayer, is as Z_LAYERS, it as angleScale, iu as appendKey, iv as applyCorners, iw as applyIconSet, ix as applyThemePrefs, iy as arcPath, iz as areaBetween, iA as areaFrom, iB as autoHighlightIndex, iC as backspace, iD as bandScale, iE as binValues, iF as budgetState, iG as bumpPath, iH as buttonClasses, iI as calcOverall, iJ as calcReportOverall, iK as colorFill, iL as colorSwatchClasses, iM as columnSharesWidths, iN as confirm, iO as confirmDestructive, iP as curvePath, iQ as dashFor, iR as describeContextTarget, iS as dismissPopups, iT as fillFor, iU as fillId, iV as fmtSliderDate, iW as fromDateKey, iX as glassStyle, iY as glowId, iZ as groundId, i_ as groupColors, i$ as hexToHsv, j0 as highlightOpacity, j1 as hsvToHex, j2 as iconButtonClasses, j3 as inputClasses, j4 as installStaleChunkReload, j5 as isMac, j6 as isSafeLinkHref, j7 as isSeverityTone, j8 as isSpacingStep, j9 as isStaleChunkError, ja as keepsNativeMenu, jb as labelClasses, jc as ladderScale, jd as languageSelectWidth, je as leavesContextMenuAlone, jf as linearPath, jg as linearScale, jh as logScale, ji as maskId, jj as matchShellLanguage, jk as mediaFileName, jl as monotonePath, jm as niceMax, jn as openGlobalSearch, jo as parseHexColor, jp as polygonPoints, jq as popupBounds, jr as prompt, js as pushRecentSearch, jt as radiusScale, ju as readSavedShellLanguage, jv as registerModalEscapeInterceptor, jw as resolveBrandMarkTreatment, jx as resolveColumnShares, jy as resolveColumnWidths, jz as resolveCorners, jA as resolvePortalBrandAsset, jB as resolveSeriesColor, jC as resolveShellLanguage, jD as resolveTheme, jE as sanitizeRecentSearches, jF as saveShellLanguage, jG as seriesColor, jH as severityOf, jI as splinePath, jJ as squarify, jK as stagger, jL as stepPath, jM as tabButtonId, jN as tabPanelId, jO as toDateKey, jP as toDayMs, jQ as toISODate, jR as toast, jS as useAppUpdate, jT as useClickOutside, jU as useConfirm, jV as useContextMenu, jW as useDebouncedValue, jX as useDropdownPosition, jY as useFocusTrap, jZ as useHighlight, j_ as useIsMobile, j$ as useLocalStoragePrefs, k0 as usePlotWidth, k1 as usePortalBranding, k2 as useProductionTimeline, k3 as useScrollLock, k4 as useShellLanguage, k5 as useShellPrefs, k6 as useStatusLabel, k7 as useTheme } from './index-ZI6vl2Wq.js';
3
3
  export { C as CurrencyFormat, D as DATE_FORMAT_OPTIONS, a as DateFormatKey, E as EMPTY_VALUE, F as FOCAL_DEFAULT, b as FOCAL_NUDGE_COARSE, c as FOCAL_NUDGE_STEP, d as FocalPoint, e as FormatDateOptions, f as FormatMoneyOptions, T as TZ_AUTO, g as TimeAgoOptions, h as currencyDecimals, i as currencySymbol, j as firstDayOfWeek, k as focalFromRect, l as formatBytes, m as formatDate, n as formatDateTime, o as formatFocal, p as formatMoney, q as formatTime, r as getUserDateFormat, s as getUserTimezone, t as nudgeFocal, u as parseFocal, v as setCurrencyFormats, w as setUserDateFormat, x as setUserTimezone, y as syncTimezoneFromProfile, z as timeAgo } from './index-CHufemKB.js';
4
4
  export { FileIntakeAlert, FileIntakeLimits, FileIntakeOptions, FileRejection, FileRejectionReason, acceptsFile, useFileIntake } from './file-intake/index.js';
5
5
  export { ICON_NAMES, Icon, IconName, IconProps, IconTone, isIconName } from './icons/index.js';