toastory 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/README.md +15 -1
  2. package/dist/angular.cjs +1 -3
  3. package/dist/angular.cjs.map +1 -1
  4. package/dist/angular.d.cts +12 -5
  5. package/dist/angular.d.ts +12 -5
  6. package/dist/angular.js +1 -3
  7. package/dist/angular.js.map +1 -1
  8. package/dist/core.cjs +1 -2
  9. package/dist/core.cjs.map +1 -1
  10. package/dist/core.d.cts +20 -6
  11. package/dist/core.d.ts +20 -6
  12. package/dist/core.js +1 -2
  13. package/dist/core.js.map +1 -1
  14. package/dist/{dialog-Buemfm7I.d.ts → dialog-DAgL0wyv.d.ts} +1 -1
  15. package/dist/{dialog-fziFV6J0.d.cts → dialog-DosUuJM_.d.cts} +1 -1
  16. package/dist/index.cjs +1 -6
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.d.cts +6 -5
  19. package/dist/index.d.ts +6 -5
  20. package/dist/index.js +1 -6
  21. package/dist/index.js.map +1 -1
  22. package/dist/native.cjs +1 -2
  23. package/dist/native.cjs.map +1 -1
  24. package/dist/native.d.cts +45 -3
  25. package/dist/native.d.ts +45 -3
  26. package/dist/native.js +1 -2
  27. package/dist/native.js.map +1 -1
  28. package/dist/react.cjs +1 -3
  29. package/dist/react.cjs.map +1 -1
  30. package/dist/react.d.cts +5 -4
  31. package/dist/react.d.ts +5 -4
  32. package/dist/react.js +1 -3
  33. package/dist/react.js.map +1 -1
  34. package/dist/sound-CedBML6j.d.ts +22 -0
  35. package/dist/sound-DLGxVNC0.d.cts +22 -0
  36. package/dist/svelte.cjs +1 -3
  37. package/dist/svelte.cjs.map +1 -1
  38. package/dist/svelte.d.cts +3 -2
  39. package/dist/svelte.d.ts +3 -2
  40. package/dist/svelte.js +1 -3
  41. package/dist/svelte.js.map +1 -1
  42. package/dist/themes/_base.css +1 -1
  43. package/dist/themes/_base.toast.css +1 -1
  44. package/dist/themes/all.css +1 -1
  45. package/dist/themes/aurora.css +1 -1
  46. package/dist/themes/aurora.toast.css +1 -1
  47. package/dist/themes/basic.css +1 -1
  48. package/dist/themes/basic.toast.css +1 -1
  49. package/dist/themes/brutal.css +1 -1
  50. package/dist/themes/brutal.toast.css +1 -1
  51. package/dist/themes/classic-bar.css +1 -1
  52. package/dist/themes/classic-bar.toast.css +1 -1
  53. package/dist/themes/classic-stack.css +1 -1
  54. package/dist/themes/classic-stack.toast.css +1 -1
  55. package/dist/themes/dialogs.css +1 -1
  56. package/dist/themes/dialogs.toast.css +1 -1
  57. package/dist/themes/essentials.css +1 -1
  58. package/dist/themes/essentials.toast.css +1 -1
  59. package/dist/themes/flat.css +1 -1
  60. package/dist/themes/flat.toast.css +1 -1
  61. package/dist/themes/gradient-strip.css +1 -1
  62. package/dist/themes/gradient-strip.toast.css +1 -1
  63. package/dist/themes/gradient.css +1 -1
  64. package/dist/themes/gradient.toast.css +1 -1
  65. package/dist/themes/ios-glass.css +1 -1
  66. package/dist/themes/ios-glass.toast.css +1 -1
  67. package/dist/themes/liquid-glass.css +1 -1
  68. package/dist/themes/liquid-glass.toast.css +1 -1
  69. package/dist/themes/material.css +1 -1
  70. package/dist/themes/material.toast.css +1 -1
  71. package/dist/themes/minimal.css +1 -1
  72. package/dist/themes/minimal.toast.css +1 -1
  73. package/dist/themes/neon.css +1 -1
  74. package/dist/themes/neon.toast.css +1 -1
  75. package/dist/themes/outline.css +1 -1
  76. package/dist/themes/outline.toast.css +1 -1
  77. package/dist/themes/pastel.css +1 -1
  78. package/dist/themes/pastel.toast.css +1 -1
  79. package/dist/themes/pill.css +1 -1
  80. package/dist/themes/pill.toast.css +1 -1
  81. package/dist/themes/ripple.css +1 -1
  82. package/dist/themes/ripple.toast.css +1 -1
  83. package/dist/themes/showcase.css +1 -1
  84. package/dist/themes/showcase.toast.css +1 -1
  85. package/dist/themes/sweet.css +1 -1
  86. package/dist/themes/sweet.toast.css +1 -1
  87. package/dist/{toast-api-D6WYDtUy.d.cts → toast-api-Bwjc_Kxh.d.cts} +16 -4
  88. package/dist/{toast-api-D6WYDtUy.d.ts → toast-api-Bwjc_Kxh.d.ts} +16 -4
  89. package/dist/{ui-D5FwMD8Y.d.cts → ui-Bdu8EJ3m.d.cts} +4 -2
  90. package/dist/{ui-Cs1AjRNH.d.ts → ui-DJXC9cko.d.ts} +4 -2
  91. package/dist/vue.cjs +1 -3
  92. package/dist/vue.cjs.map +1 -1
  93. package/dist/vue.d.cts +42 -5
  94. package/dist/vue.d.ts +42 -5
  95. package/dist/vue.js +1 -3
  96. package/dist/vue.js.map +1 -1
  97. package/package.json +1 -1
package/dist/core.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { a9 as ToastId, $ as Store, C as Clock, ah as ToastType, q as DialogOptions, b as ToastStore, S as PromiseMessages, ac as ToastOptions, Q as PromiseHandle, n as DialogHandle, u as DialogState, L as Listener, ao as Unsubscribe, y as DismissReason, s as DialogResult, T as ToastApi, i as ConfigStore, Y as SheetOptions, d as BottomSheetOptions, B as BottomSheetHandle, H as LoadingOptions, F as LoadingHandle, G as GlazeConfig, a as ToastRecord } from './toast-api-D6WYDtUy.js';
2
- export { A as AddToastInput, c as AnimationType, e as BuiltInToastType, f as CloseReason, g as ColorMode, h as Config, D as DEFAULT_CONFIG, j as DialogBackdrop, k as DialogButton, l as DialogChoice, m as DialogColumn, o as DialogIcon, p as DialogInputType, r as DialogPosition, t as DialogRow, v as DialogTone, w as DialogVariant, x as Direction, E as EssentialsToastVariant, z as GlazeConfigPatch, I as IosGlassToastVariant, M as MANUAL_PAUSE, J as Mode, O as OffsetConfig, P as PauseOn, K as Position, N as PromiseData, R as PromiseMessage, U as PromiseOutcome, V as Renderable, W as SheetAction, X as SheetActionStyle, Z as ShowcaseToastVariant, _ as StackMode, a0 as SwipeDirection, a1 as ThemeName, a2 as ToastAction, a3 as ToastActionItem, a4 as ToastAvatarOption, a5 as ToastButton, a6 as ToastClassNames, a7 as ToastCustomRenderer, a8 as ToastFn, aa as ToastManager, ab as ToastManagerOptions, ad as ToastPatch, ae as ToastPosition, af as ToastRenderContext, ag as ToastToggleOption, ai as ToastTypeDefinition, aj as ToastVariant, ak as ToastoryConfig, al as ToastoryConfigPatch, am as TypeRegistry, an as TypedDialogOptions, ap as ValidateResult, aq as createConfigStore, ar as createToastApi, as as createToastManager, at as createToastStore, au as createTypeRegistry, av as defaultClock, aw as resolvePrecedence } from './toast-api-D6WYDtUy.js';
3
- import { S as StepsResult } from './dialog-Buemfm7I.js';
4
- export { D as DialogController, a as DialogPromise, c as createDialogController, r as runSteps } from './dialog-Buemfm7I.js';
1
+ import { ab as ToastId, a1 as Store, C as Clock, aj as ToastType, r as DialogOptions, b as ToastStore, U as PromiseMessages, ae as ToastOptions, R as PromiseHandle, o as DialogHandle, v as DialogState, L as Listener, aq as Unsubscribe, z as DismissReason, t as DialogResult, T as ToastApi, j as ConfigStore, Z as SheetOptions, d as BottomSheetOptions, B as BottomSheetHandle, J as LoadingOptions, H as LoadingHandle, G as GlazeConfig, a as ToastRecord } from './toast-api-Bwjc_Kxh.js';
2
+ export { A as AddToastInput, c as AnimationType, e as BuiltInSoundCue, f as BuiltInToastType, g as CloseReason, h as ColorMode, i as Config, D as DEFAULT_CONFIG, k as DialogBackdrop, l as DialogButton, m as DialogChoice, n as DialogColumn, p as DialogIcon, q as DialogInputType, s as DialogPosition, u as DialogRow, w as DialogTone, x as DialogVariant, y as Direction, E as EssentialsToastVariant, F as GlazeConfigPatch, I as IosGlassToastVariant, M as MANUAL_PAUSE, K as Mode, O as OffsetConfig, P as PauseOn, N as Position, Q as PromiseData, S as PromiseMessage, V as PromiseOutcome, W as Renderable, X as SheetAction, Y as SheetActionStyle, _ as ShowcaseToastVariant, $ as SoundCue, a0 as StackMode, a2 as SwipeDirection, a3 as ThemeName, a4 as ToastAction, a5 as ToastActionItem, a6 as ToastAvatarOption, a7 as ToastButton, a8 as ToastClassNames, a9 as ToastCustomRenderer, aa as ToastFn, ac as ToastManager, ad as ToastManagerOptions, af as ToastPatch, ag as ToastPosition, ah as ToastRenderContext, ai as ToastToggleOption, ak as ToastTypeDefinition, al as ToastVariant, am as ToastoryConfig, an as ToastoryConfigPatch, ao as TypeRegistry, ap as TypedDialogOptions, ar as ValidateResult, as as createConfigStore, at as createToastApi, au as createToastManager, av as createToastStore, aw as createTypeRegistry, ax as defaultClock, ay as resolvePrecedence } from './toast-api-Bwjc_Kxh.js';
3
+ import { S as StepsResult } from './dialog-DAgL0wyv.js';
4
+ export { D as DialogController, a as DialogPromise, c as createDialogController, r as runSteps } from './dialog-DAgL0wyv.js';
5
5
 
6
6
  /**
7
7
  * Returns a collision-safe, incremental unique identifier.
@@ -118,6 +118,20 @@ interface DialogManager {
118
118
  }
119
119
  declare function createDialogManager(clock?: Clock): DialogManager;
120
120
 
121
+ interface SpringConfig {
122
+ stiffness?: number;
123
+ damping?: number;
124
+ mass?: number;
125
+ }
126
+ /**
127
+ * Bakes a physics-accurate spring curve into a CSS linear() easing function.
128
+ * Enables 100% native GPU-accelerated spring animations without per-frame JS.
129
+ */
130
+ declare function springEasing(config?: SpringConfig): {
131
+ easing: string;
132
+ duration: number;
133
+ };
134
+
121
135
  /**
122
136
  * Renderer interface for bridging the framework-agnostic core to UI adapters.
123
137
  * If a call happens before a renderer is registered, it queues and replays upon registration.
@@ -187,5 +201,5 @@ declare function createToastEngine(options?: {
187
201
  config?: ConfigStore;
188
202
  }): ToastEngine;
189
203
 
190
- export { BottomSheetHandle, BottomSheetOptions, Clock, ConfigStore, DialogHandle, DialogOptions, DialogResult, DialogState, DismissReason, GlazeConfig, Listener, LoadingHandle, LoadingOptions, PromiseHandle, PromiseMessages, SheetOptions, StepsResult, Store, ToastApi, ToastId, ToastOptions, ToastRecord, ToastStore, ToastType, Unsubscribe, createDialogManager, createStore, createTimer, createToastEngine, createUI, decideAriaLive, decideDialogLabels, decideDialogRole, decideFocusTarget, decideToastRole, nextId, normalizeId, registerRenderer, resetIdCounter, runPromiseToast, ui };
191
- export type { CoreUI, CreateUIOptions, DialogManager, DialogQueueItem, HeadlessDialogController, PausableTimer, Renderer, ToastEngine };
204
+ export { BottomSheetHandle, BottomSheetOptions, Clock, ConfigStore, DialogHandle, DialogOptions, DialogResult, DialogState, DismissReason, GlazeConfig, Listener, LoadingHandle, LoadingOptions, PromiseHandle, PromiseMessages, SheetOptions, StepsResult, Store, ToastApi, ToastId, ToastOptions, ToastRecord, ToastStore, ToastType, Unsubscribe, createDialogManager, createStore, createTimer, createToastEngine, createUI, decideAriaLive, decideDialogLabels, decideDialogRole, decideFocusTarget, decideToastRole, nextId, normalizeId, registerRenderer, resetIdCounter, runPromiseToast, springEasing, ui };
205
+ export type { CoreUI, CreateUIOptions, DialogManager, DialogQueueItem, HeadlessDialogController, PausableTimer, Renderer, SpringConfig, ToastEngine };
package/dist/core.js CHANGED
@@ -1,2 +1 @@
1
- var L={now:()=>Date.now(),setTimeout:(e,i)=>{let o=setTimeout(e,i);return ()=>clearTimeout(o)},setInterval:(e,i)=>{let o=setInterval(e,i);return ()=>clearInterval(o)}};var q=0;function W(e="gk"){return `${e}-${++q}`}function N(e,i="gk"){return e!==void 0&&e!==""?e:W(i)}function oe(){q=0;}var G=Object.freeze({theme:"ios-glass",mode:"auto",position:"top-right",duration:4e3,maxVisible:8,gap:12,stack:true,dir:"auto",hotkey:"alt+t",pauseOn:["hover","focus","hidden"],shadow:true,closeButton:false,richColors:false,invert:false,swipe:true,dragThreshold:45,progress:false,closeOnClick:false,exitDuration:250,historyLimit:100,regionLabel:"Notifications",closeLabel:"Close notification",startPaused:false,newestOnTop:true,dedupeWindow:500,container:void 0}),ie=(e,i,o,u)=>e??i??o??u;function F(e={}){let i=Object.freeze({...G,...Y(e)}),o=new Set,u=()=>{o.forEach(n=>n());};return {get:()=>i,set(n){return i=Object.freeze({...i,...Y(n)}),u(),i},reset(){i=G,u();},subscribe(n){return o.add(n),()=>{o.delete(n);}}}}function Y(e){let i={};for(let o in e)e[o]!==void 0&&(i[o]=e[o]);return i}function M(e,i,o=L){let u=e,n=e,f=0,s,v,g=false,y=false,p=new Map,x=new Set,l=()=>Number.isFinite(n)&&n>0,d=()=>{if(x.size===0)return;let b=h(),R=u>0?Math.max(0,Math.min(1,b/u)):0;for(let I of x)try{I(b,R);}catch(t){console.error(t);}},h=()=>y?0:g&&p.size===0?Math.max(0,n-(o.now()-f)):n,C=()=>{s?.(),s=void 0,v?.(),v=void 0;},S=()=>{C(),!(!l()||p.size>0||y)&&(f=o.now(),s=o.setTimeout(()=>{C(),n=0,y=true,g=false,d(),i();},n),x.size>0&&(v=o.setInterval(()=>{d();},50)));};return {start(){y||!l()||(g=true,p.clear(),S(),d());},pause:(b="manual")=>{y||(p.set(b,(p.get(b)??0)+1),g&&p.size===1&&(n=Math.max(0,n-(o.now()-f)),C(),d()));},resume:(b="manual")=>{if(y)return;let R=p.get(b);R&&(R<=1?p.delete(b):p.set(b,R-1),g&&p.size===0&&l()&&(S(),d()));},clearReasons(){p.clear(),g&&l()&&S();},add(b){if(y||!Number.isFinite(n))return;let R=g&&p.size===0;n=Math.max(1,(R?n-(o.now()-f):n)+b),u=Math.max(u,n),R&&S(),d();},reset(b){y=false,n=u=b!==void 0?b:u,g&&p.size===0&&(l()?S():C()),d();},cancel(){C(),g=false,y=true,n=0;},remaining:h,elapsed(){return Math.max(0,u-h())},isRunning:()=>g&&!y&&!p.size&&l(),isPaused:()=>p.size>0,pausedReasons:()=>[...p.keys()],onTick(b){return x.add(b),g&&p.size===0&&!v&&(v=o.setInterval(d,50)),()=>{x.delete(b),x.size===0&&v&&(v(),v=void 0);}}}}var E=(e,i="polite")=>({color:`var(--gk-${e})`,ariaLive:i}),re={success:E("success"),error:E("error","assertive"),warning:E("warning","assertive"),info:E("info"),loading:{...E("info"),defaults:{duration:0,dismissible:false}},message:E("fg")};function Q(){let e=new Map;return {add(i,o={}){let u=typeof i=="string"?i.trim():"";if(!u)throw new TypeError("toastory: invalid type");e.set(u,o);},remove:i=>e.delete(i),get:i=>e.get(i)??re[i],list:()=>[...e.keys()]}}var ne=new Set(["user","swipe","click"]),U=(e,...i)=>{try{e?.(...i);}catch(o){console.error(o);}},J="manual",se={loading:{duration:0}};function z(e={}){let i=e.config??F(),o=e.clock??L,u=e.now??(()=>o.now()),n=e.types??Q(),f=new Map,s=[],v=[],g=[],y=new Set,p=()=>{v=s.map(t=>f.get(t)?.record).filter(Boolean),y.forEach(t=>t());},x=t=>`${t.container??""}|${t.position}`,l=(t,c,a,r)=>{let D=i.get(),T=c.type??"default",P={...se[T],...n.get(T)?.defaults,...c},w=P.duration??D.duration,B=Number.isFinite(w)&&w>0?w:0,A=P.important||T==="error",H=u();return {...P,id:t,type:T,duration:B,position:P.position??D.position,ariaLive:P.ariaLive??(A?"assertive":"polite"),role:P.role??(A?"alert":"status"),createdAt:a?.createdAt??H,updatedAt:H,revision:(a?.revision??-1)+1,timerEpoch:a?.timerEpoch??0,count:a?.count??1,visible:a?.visible??false,dismissed:false,pausedBy:a?.pausedBy??(D.startPaused?[J]:[]),remaining:a?.remaining??(B||1/0),custom:r}},d=t=>t.record.duration===0?1/0:t.timer.remaining(),h=t=>{if(t.dedupe===false)return;if(typeof t.dedupe=="string")return t.dedupe;let c=typeof t.title=="string"?t.title:"",a=typeof t.description=="string"?t.description:"";return c||a?`${t.type??"default"}|${c}|${a}`:void 0},C=()=>{let t=i.get(),c=new Map;for(let a of s){let r=f.get(a);if(!r||r.record.dismissed)continue;let D=x(r.record),T=c.get(D)??0,P=!!r.record.important;T<t.maxVisible||P?(r.record.visible||(r.record={...r.record,visible:true},!r.record.pausedBy.length&&r.record.duration>0&&r.timer.start()),P||c.set(D,T+1)):r.record.visible&&(r.record={...r.record,visible:false},r.timer.pause());}},S=t=>{t.exitHandle?.(),t.timer.cancel(),f.delete(t.record.id),s=s.filter(c=>c!==t.record.id),g=[{...t.record,dismissed:true},...g].slice(0,i.get().historyLimit),C(),R(),p(),t.closedFired||(t.closedFired=true,U(t.record.onClose,t.record,t.reason??"api"));},m=(t,c)=>{if(t.record.dismissed||t.record.dismissible===false&&ne.has(c))return;t.reason=c,t.record={...t.record,dismissed:true,remaining:0,revision:t.record.revision+1},t.timer.cancel(),!t.dismissFired&&c!=="auto"&&(t.dismissFired=true,U(t.record.onDismiss,t.record,c)),C(),R(),p();let a=i.get().exitDuration;a<=0||!t.record.visible?S(t):t.exitHandle=o.setTimeout(()=>S(t),a);},k=(t,c)=>{let{custom:a,...r}=c,D=l(t,r,void 0,a),T={opts:r,custom:a,record:D,timer:void 0,dedupeKey:h(r),exitHandle:void 0,reason:void 0,openedFired:false,closedFired:false,dismissFired:false,autoCloseFired:false};return T.timer=M(D.duration,()=>{T.autoCloseFired||(T.autoCloseFired=true,U(T.record.onAutoClose,T.record)),m(T,"auto");},o),D.pausedBy.length&&T.timer.pause(),T},b=t=>{t.timer.cancel(),t.record.duration>0&&(t.timer.reset(t.record.duration),t.record.visible&&!t.record.pausedBy.length&&t.timer.start()),t.record={...t.record,timerEpoch:t.record.timerEpoch+1,remaining:d(t)};},R=()=>{for(let t of s){let c=f.get(t);c&&c.record.visible&&!c.openedFired&&!c.record.dismissed&&(c.openedFired=true,U(c.record.onOpen,c.record));}},I={config:i,types:n,add(t){let c=N(t.id),a=f.get(c);if(a&&!a.record.dismissed){let{custom:T,...P}=t;return I.update(c,P),T&&(a.custom=T,a.record={...a.record,custom:T},p()),c}a&&S(a);let r=h(t);if(r!==void 0){for(let T of f.values())if(T.dedupeKey===r&&!T.record.dismissed)return T.record={...T.record,count:T.record.count+1,revision:T.record.revision+1,updatedAt:u()},b(T),p(),T.record.id}let D=k(c,t);return f.set(c,D),s=[...s,c],C(),p(),R(),c},update(t,c){let a=f.get(t);if(!a||a.record.dismissed)return false;let{resetTimer:r=true,...D}=c,T={...a.opts};D.type!==void 0&&D.type!==a.record.type&&(delete T.duration,delete T.ariaLive,delete T.role,delete T.icon);let P=false;for(let A in D){let H=D[A];H!==void 0&&(a.opts[A]!==H&&(P=true),T[A]=H);}if(!P&&D.type===void 0&&D.position===void 0)return true;a.opts=T,a.dedupeKey=h(T);let w=l(t,T,a.record,a.custom),B=w.position!==a.record.position;return a.record=w,B&&(a.record={...a.record,visible:false},C()),r||B?b(a):a.record={...a.record,remaining:d(a)},p(),R(),true},dismiss(t,c="api"){if(t===void 0)return I.dismissAll(c);let a=f.get(t);a&&m(a,c);},dismissAll(t="api"){for(let c of f.values())m(c,t);},pause(t,c){let a=t===void 0?[...f.values()]:[f.get(t)].filter(r=>!!r);for(let r of a)r.record.pausedBy.includes(c)||(r.timer.pause(c),r.record={...r.record,pausedBy:[...r.record.pausedBy,c],remaining:d(r)});p();},resume(t,c){let a=t===void 0?[...f.values()]:[f.get(t)].filter(r=>!!r);for(let r of a){if(!r.record.pausedBy.includes(c))continue;r.timer.resume(c);let D=r.record.pausedBy.filter(T=>T!==c);r.record={...r.record,pausedBy:D,remaining:d(r)},!D.length&&r.record.visible&&r.record.duration>0&&r.timer.start();}p();},extend(t,c){let a=f.get(t);!a||a.record.dismissed||(a.timer.add(c),a.record={...a.record,remaining:d(a),timerEpoch:a.record.timerEpoch+1,revision:a.record.revision+1},p());},getRemaining(t){let c=f.get(t);return c?d(c):0},getToasts:()=>v,getHistory:()=>g,clear(){for(let t of f.values())t.exitHandle?.(),t.timer.cancel();f.clear(),s=[],v=[],p();},clearHistory(){g=[],p();},subscribe(t){return y.add(t),()=>{y.delete(t);}}};return I}var ae=z;function _(e){let i=e,o=new Set,u=false,n=()=>{u=false;let s=i;o.forEach(v=>{try{v(s);}catch(g){console.error(g);}});},f=s=>{if(s){n();return}u||(u=true,typeof queueMicrotask=="function"?queueMicrotask(n):Promise.resolve().then(n));};return {getSnapshot:()=>i,setState:(s,v=false)=>{let g=typeof s=="function"?s(i):s;Object.is(g,i)||(i=g,f(v));},subscribe:s=>{if(o.add(s),s.length>0)try{s(i);}catch(v){console.error(v);}return ()=>{o.delete(s);}}}}var de=(e,i,o)=>o??(i||e==="error"||e==="warning"?"assertive":"polite"),le=(e,i,o)=>o??(i||e==="error"?"alert":"status"),ce=e=>!e.input&&(e.tone==="danger"||e.tone==="warning")?"alertdialog":"dialog",ue=e=>e.focusOn??(e.input!==void 0?"input":e.tone==="danger"&&e.cancelButton?.show!==false?"cancel":"confirm"),fe=e=>({confirmLabel:e.confirmButton?.label??"OK",denyLabel:e.denyButton?.label??"No",cancelLabel:e.cancelButton?.label??"Cancel"});function X(e){return typeof e=="string"?{title:e}:e}function pe(e){return e instanceof Error?e.message:String(e)}function $(e,i,o,u={}){let n;try{n=typeof i=="function"?i():i;}catch(p){n=Promise.reject(p);}let{id:f,...s}=u,v=X(o.loading),g=e.add({...s,id:f,...v,type:"loading",duration:0}),y=(p,x,l)=>{let d=typeof o.description=="function"?o.description(p==="success"?{status:p,value:l}:{status:p,error:l}):o.description;e.update(g,{duration:s.duration??e.config.get().duration,...X(x),type:p,...d!==void 0?{description:d}:{},resetTimer:true});};return n.then(p=>{o.success===void 0?e.dismiss(g):y("success",typeof o.success=="function"?o.success(p):o.success,p);}).catch(p=>{y("error",o.error===void 0?pe(p):typeof o.error=="function"?o.error(p):o.error,p);}).finally(()=>{try{o.finally?.();}catch(p){console.error(p);}}),{id:g,unwrap:()=>n}}function Z(e){return e instanceof Error?e.message:typeof e=="string"?e:String(e)}function j(e=L){let i=0,o,u=[],n=_(0),f=()=>{n.setState(g=>g+1,true);},s=()=>{o==null&&u.length!==0&&(u.sort((g,y)=>y.priority!==g.priority?y.priority-g.priority:g.id-y.id),o=u.shift(),o&&(f(),o.controller.opened()));};return {clock:e,open:g=>{i+=1;let y=i,p=g.priority??0,x,l=new Promise(r=>{x=r;}),d={options:{...g},loading:null,error:void 0,open:true,revision:0},h=new Set,C=()=>{for(let r of [...h])try{r();}catch(D){console.error(D);}},S,m=()=>d.options.inputValue,k=false,b=r=>{d={...d,...r,revision:d.revision+1},C();},R=()=>{S?.cancel(),d={...d,open:false,revision:d.revision+1},C(),o?.id===y&&(o=void 0,f(),s());},I=r=>{if(!k){k=true;try{d.options.willClose?.(t,r);}catch(D){console.error(D);}R(),x(r);}},t={close(r){I({isConfirmed:r?.isConfirmed??false,isDenied:r?.isDenied??false,isDismissed:r?.isDismissed??true,value:r?.value,dismiss:r?.dismiss??"close"});},update(r){k||b({options:{...d.options,...r}});},setLoading(r){b({loading:r===true?"confirm":r===false?null:r});},showError(r){b({error:r??void 0});},timer:{pause:()=>S?.pause("manual"),resume:()=>S?.resume("manual"),add:r=>S?.add(r),remaining:()=>S?.remaining()??0,paused:()=>S?.isPaused()??false},result:l},c={handle:t,getState:()=>d,subscribe(r){return h.add(r),()=>{h.delete(r);}},setValueReader(r){m=r;},opened(){d.options.timer&&d.options.timer>0&&(S=M(d.options.timer,()=>{c.dismiss("timer");},e),S.start());try{d.options.didOpen?.(t);}catch(r){console.error(r);}C();},async submit(r){if(k||d.loading!==null)return;let D=r==="confirm",T=m();if(D&&d.options.validate)try{let w=await d.options.validate(T,t);if(typeof w=="string"&&w.trim()!==""){t.showError(w);return}}catch(w){t.showError(Z(w));return}t.showError(void 0);let P=D?d.options.preConfirm:d.options.preDeny;if(P){t.setLoading(r);try{let w=await P(T,t);if(w===!1){t.setLoading(!1);return}w!==void 0&&(T=w);}catch(w){t.showError(Z(w)),t.setLoading(false);return}t.setLoading(false);}I({isConfirmed:D,isDenied:!D,isDismissed:false,value:T,dismiss:void 0});},async dismiss(r){I({isConfirmed:false,isDenied:false,isDismissed:true,value:void 0,dismiss:r});}},a={id:y,options:g,priority:p,resolve:x,controller:c};return o===void 0?(o=a,c.opened()):u.push(a),f(),t},getActive:()=>o?.controller,getQueue:()=>u.map(g=>g.options),clear(){let g=[...u];u.length=0;for(let y of g)y.resolve({isConfirmed:false,isDenied:false,isDismissed:true,value:void 0,dismiss:"close"});if(o){let y=o;o=void 0,y.controller.handle.close({dismiss:"close"});}f();},subscribe:n.subscribe}}var ee=e=>e instanceof Error?e.message:String(e);function me(e){let i={...e},o=null,u,n=true,f=0,s,v=()=>i.inputValue,g=()=>{},y=new Set,p=new Promise(m=>{g=m;}),x={options:i,loading:o,error:u,open:n,revision:f},l=()=>{f+=1,x={options:i,loading:o,error:u,open:n,revision:f};for(let m of [...y])m();},d=m=>{if(!n)return;let k={isConfirmed:false,isDenied:false,isDismissed:false,value:void 0,dismiss:void 0,...m};i.willClose?.(C,k),n=false,s?.cancel(),l(),g(k);},h=m=>{s?.cancel(),s=void 0,m>0&&Number.isFinite(m)&&(s=M(m,()=>{d({isDismissed:true,dismiss:"timer"});}),s.start());},C={result:p,close(m){d(m??{isDismissed:true,dismiss:"close"});},update(m){n&&(i={...i,...m},m.timer!==void 0&&h(m.timer),l());},setLoading(m){n&&(o=m===true?"confirm":m===false?null:m,l());},showError(m){n&&(u=m??void 0,l());},timer:{pause:()=>{s?.pause(),l();},resume:()=>{s?.resume(),l();},add:m=>{s?s.add(m):h(Math.max(1,m)),l();},remaining:()=>s?.remaining()??0,paused:()=>s?!s.isRunning()&&s.remaining()>0:false}};return {handle:C,getState:()=>x,subscribe(m){return y.add(m),()=>{y.delete(m);}},setValueReader(m){v=m;},opened(){n&&(i.timer!==void 0&&h(i.timer),l(),i.didOpen?.(C));},async submit(m){if(!n||o)return;let k=v();if(u!==void 0&&(u=void 0,l()),m==="confirm"&&i.validate){o="confirm",l();let R;try{R=await i.validate(k,C);}catch(I){R=ee(I);}if(o=null,!n)return;if(typeof R=="string"&&R){u=R,l();return}l();}let b=m==="confirm"?i.preConfirm:i.preDeny;if(b){o=m,l();let R;try{R=await b(k,C);}catch(I){o=null,n&&(u=ee(I),l());return}if(o=null,!n)return;if(R===false){l();return}R!==void 0&&(k=R);}d({isConfirmed:m==="confirm",isDenied:m==="deny",value:k});},dismiss(m){return !n||o&&m!=="timer"||m==="backdrop"&&i.allowOutsideClick===false||m==="esc"&&i.allowEscape===false?false:(d({isDismissed:true,dismiss:m}),true)}}}async function K(e,i,o="Back"){let u=[],n=0,f={isConfirmed:false,isDenied:false,isDismissed:true,value:void 0,dismiss:"close"};for(;n<e.length;){let s=e[n];if(!s){n+=1;continue}let v=n>0?{...s,denyButton:{show:true,label:o,...s.denyButton}}:s,g=u[n],y=typeof g=="string"||typeof g=="number"||typeof g=="boolean"?g:v.inputValue;if(f=await i({...v,inputValue:y}),f.isConfirmed)u[n]=f.value,n+=1;else if(f.isDenied&&n>0)n-=1;else return {...f,values:u.slice(0,n),step:n}}return {...f,values:u,step:Math.max(0,e.length-1)}}function V(e){let i=u=>(n,f={})=>{let s={type:u,...f};return f.type!==void 0&&(s.type=f.type),n!==void 0&&(f.title===void 0?s.title=n:f.description===void 0&&(s.description=n)),e.add(s)},o=i();return o.success=i("success"),o.error=i("error"),o.info=i("info"),o.warning=i("warning"),o.loading=i("loading"),o.message=i("message"),o.custom=(u,n)=>e.add({...n,custom:u}),o.update=e.update,o.dismiss=e.dismiss,o.dismissAll=e.dismissAll,o.getToasts=e.getToasts,o.getHistory=e.getHistory,o.types=e.types,o.promise=(u,n,f)=>$(e,u,n,f),o}function ge(e={}){let i=e.clock??L,o=e.config??F(),u=z({config:o,clock:i}),n=V(u),f=j(i),s,v=[],g=l=>typeof l=="string"?{title:l}:{...l},y=l=>{let d=f.open(l);return s?.openDialog?s.openDialog(l,d):v.push(()=>{s?.openDialog?.(l,d);}),d.result},p={isConfirmed:false,isDenied:false,isDismissed:true,value:void 0,dismiss:"close"},x={toast:n,config:o,toastStore:u,dialogManager:f,confirm:l=>y({confirmButton:{show:true},cancelButton:{show:true},...g(l)}),alert:l=>y({confirmButton:{show:true},cancelButton:{show:false},denyButton:{show:false},...g(l)}),prompt:l=>y({input:"text",confirmButton:{show:true},cancelButton:{show:true},...g(l)}),steps(l,d="Back"){return K(l,h=>x.confirm(h),d)},sheet:l=>s?.openSheet?s.openSheet(l):new Promise(d=>{v.push(()=>s?.openSheet?void s.openSheet(l).then(d):d(p));}),bottomSheet(l){if(s?.openBottomSheet)return s.openBottomSheet(l);let d;return {body:void 0,close:h=>d?.close(h),snapTo:h=>d?.snapTo(h),update:h=>d?.update(h),result:new Promise(h=>{v.push(()=>s?.openBottomSheet?void(d=s.openBottomSheet(l)).result.then(h):h(p));})}},loading(l={}){let d=typeof l=="string"?{text:l}:l;if(s?.openLoading)return s.openLoading(d);let h,C,S=new Promise(m=>{C=m;});return v.push(()=>s?.openLoading?void(h=s.openLoading(d)).closed.then(C):C()),{update:m=>h?.update(m),close:()=>{h?.close(),C();},closed:S}},configure:l=>o.set(l),getConfig:()=>o.get(),clear(){u.clear(),f.clear(),v.length=0;},registerRenderer(l){for(s=l;v.length>0;)v.shift()?.();},getRenderer:()=>s};return x}var te,O=()=>te??(te=ge()),je={get toast(){return O().toast},get config(){return O().config},get toastStore(){return O().toastStore},get dialogManager(){return O().dialogManager},confirm:e=>O().confirm(e),alert:e=>O().alert(e),prompt:e=>O().prompt(e),steps:(e,i)=>O().steps(e,i),sheet:e=>O().sheet(e),bottomSheet:e=>O().bottomSheet(e),loading:e=>O().loading(e),configure:e=>O().configure(e),getConfig:()=>O().getConfig(),clear:()=>O().clear(),registerRenderer:e=>O().registerRenderer(e),getRenderer:()=>O().getRenderer()};function Ke(e){O().registerRenderer(e);}function qe(e={}){let i=z({config:e.config});return {store:i,toast:V(i)}}export{G as DEFAULT_CONFIG,J as MANUAL_PAUSE,F as createConfigStore,me as createDialogController,j as createDialogManager,_ as createStore,M as createTimer,V as createToastApi,qe as createToastEngine,z as createToastManager,ae as createToastStore,Q as createTypeRegistry,ge as createUI,de as decideAriaLive,fe as decideDialogLabels,ce as decideDialogRole,ue as decideFocusTarget,le as decideToastRole,L as defaultClock,W as nextId,N as normalizeId,Ke as registerRenderer,oe as resetIdCounter,ie as resolvePrecedence,$ as runPromiseToast,K as runSteps,je as ui};//# sourceMappingURL=core.js.map
2
- //# sourceMappingURL=core.js.map
1
+ var e={now:()=>Date.now(),setTimeout:(e,t)=>{const o=setTimeout(e,t);return()=>clearTimeout(o)},setInterval:(e,t)=>{const o=setInterval(e,t);return()=>clearInterval(o)}},t=0;function o(e="gk"){return`${e}-${++t}`}function r(e,t="gk"){return void 0!==e&&""!==e?e:o(t)}function i(){t=0}var s=Object.freeze({theme:"ios-glass",mode:"auto",position:"top-right",duration:4e3,maxVisible:8,gap:12,stack:!0,dir:"auto",hotkey:"alt+t",pauseOn:["hover","focus","hidden"],shadow:!0,closeButton:!1,richColors:!1,invert:!1,swipe:!0,dragThreshold:45,progress:!1,closeOnClick:!1,exitDuration:250,historyLimit:100,regionLabel:"Notifications",closeLabel:"Close notification",startPaused:!1,newestOnTop:!0,dedupeWindow:500,container:void 0,sound:!1,soundVolume:.5}),n=(e,t,o,r)=>e??t??o??r;function d(e={}){let t=Object.freeze({...s,...c(e)});const o=new Set,r=()=>{o.forEach(e=>e())};return{get:()=>t,set:e=>(t=Object.freeze({...t,...c(e)}),r(),t),reset(){t=s,r()},subscribe:e=>(o.add(e),()=>{o.delete(e)})}}function c(e){const t={};for(const o in e)void 0!==e[o]&&(t[o]=e[o]);return t}function a(t,o,r=e){let i,s,n=t,d=t,c=0,a=!1,u=!1;const l=new Map,p=new Set,m=()=>Number.isFinite(d)&&d>0,f=()=>{if(0===p.size)return;const e=g(),t=n>0?Math.max(0,Math.min(1,e/n)):0;for(const o of p)try{o(e,t)}catch(e){console.error(e)}},g=()=>u?0:a&&0===l.size?Math.max(0,d-(r.now()-c)):d,v=()=>{i?.(),i=void 0,s?.(),s=void 0},h=()=>{v(),!m()||l.size>0||u||(c=r.now(),i=r.setTimeout(()=>{v(),d=0,u=!0,a=!1,f(),o()},d),p.size>0&&(s=r.setInterval(()=>{f()},50)))};return{start(){!u&&m()&&(a=!0,l.clear(),h(),f())},pause:(e="manual")=>{u||(l.set(e,(l.get(e)??0)+1),a&&1===l.size&&(d=Math.max(0,d-(r.now()-c)),v(),f()))},resume:(e="manual")=>{if(u)return;const t=l.get(e);t&&(t<=1?l.delete(e):l.set(e,t-1),a&&0===l.size&&m()&&(h(),f()))},clearReasons(){l.clear(),a&&m()&&h()},add(e){if(u||!Number.isFinite(d))return;const t=a&&0===l.size;d=Math.max(1,(t?d-(r.now()-c):d)+e),n=Math.max(n,d),t&&h(),f()},reset(e){u=!1,d=n=void 0!==e?e:n,a&&0===l.size&&(m()?h():v()),f()},cancel(){v(),a=!1,u=!0,d=0},remaining:g,elapsed:()=>Math.max(0,n-g()),isRunning:()=>a&&!u&&!l.size&&m(),isPaused:()=>l.size>0,pausedReasons:()=>[...l.keys()],onTick:e=>(p.add(e),a&&0===l.size&&!s&&(s=r.setInterval(f,50)),()=>{p.delete(e),0===p.size&&s&&(s(),s=void 0)})}}var u=(e,t="polite")=>({color:`var(--gk-${e})`,ariaLive:t}),l={success:u("success"),error:u("error","assertive"),warning:u("warning","assertive"),info:u("info"),loading:{...u("info"),defaults:{duration:0,dismissible:!1}},message:u("fg")};function p(){const e=new Map;return{add(t,o={}){const r="string"==typeof t?t.trim():"";if(!r)throw new TypeError("toastory: invalid type");e.set(r,o)},remove:t=>e.delete(t),get:t=>e.get(t)??l[t],list:()=>[...e.keys()]}}var m=(e,...t)=>{try{e?.(...t)}catch(e){console.error(e)}},f="manual",g={loading:{duration:0}};function v(t={}){const o=t.config??d(),i=t.clock??e,s=t.now??i.now,n=t.types??p(),c=new Map;let u=[],l=[],v=[];const h=new Set,y=()=>{l=u.map(e=>c.get(e)?.record).filter(Boolean),h.forEach(e=>e())},w=e=>`${e.container??""}|${e.position}`,b=(e,t,r,i)=>{const d=o.get(),c=t.type??"default",a={...g[c],...n.get(c)?.defaults,...t},u=a.duration??d.duration,l=Number.isFinite(u)&&u>0?u:0,p=a.important||"error"===c,m=s();return{...a,id:e,type:c,duration:l,position:a.position??d.position,ariaLive:a.ariaLive??(p?"assertive":"polite"),role:a.role??(p?"alert":"status"),createdAt:r?.createdAt??m,updatedAt:m,revision:(r?.revision??-1)+1,timerEpoch:r?.timerEpoch??0,count:r?.count??1,visible:r?.visible??!1,dismissed:!1,pausedBy:r?.pausedBy??(d.startPaused?[f]:[]),remaining:r?.remaining??(l||1/0),custom:i}},B=e=>0===e.record.duration?1/0:e.timer.remaining(),M=e=>{if(!1===e.dedupe)return;if("string"==typeof e.dedupe)return e.dedupe;const t="string"==typeof e.title?e.title:"",o="string"==typeof e.description?e.description:"";return t||o?`${e.type??"default"}|${t}|${o}`:void 0},D=()=>{const e=o.get(),t=new Map;for(const o of u){const r=c.get(o);if(!r||r.record.dismissed)continue;const i=w(r.record),s=t.get(i)??0,n=!!r.record.important;s<e.maxVisible||n?(r.record.visible||(r.record={...r.record,visible:!0},!r.record.pausedBy.length&&r.record.duration>0&&r.timer.start()),n||t.set(i,s+1)):r.record.visible&&(r.record={...r.record,visible:!1},r.timer.pause())}},S=e=>{e.exitHandle?.(),e.timer.cancel(),c.delete(e.record.id),u=u.filter(t=>t!==e.record.id),v=[{...e.record,dismissed:!0},...v].slice(0,o.get().historyLimit),D(),L(),y(),e.closedFired||(e.closedFired=!0,m(e.record.onClose,e.record,e.reason??"api"))},x=(e,t)=>{if(e.record.dismissed)return;if(!1===e.record.dismissible&&("user"===(r=t)||"swipe"===r||"click"===r))return;var r;e.reason=t,e.record={...e.record,dismissed:!0,remaining:0,revision:e.record.revision+1},e.timer.cancel(),e.dismissFired||"auto"===t||(e.dismissFired=!0,m(e.record.onDismiss,e.record,t)),D(),L(),y();const s=o.get().exitDuration;s<=0||!e.record.visible?S(e):e.exitHandle=i.setTimeout(()=>S(e),s)},C=e=>{e.timer.cancel(),e.record.duration>0&&(e.timer.reset(e.record.duration),e.record.visible&&!e.record.pausedBy.length&&e.timer.start()),e.record={...e.record,timerEpoch:e.record.timerEpoch+1,remaining:B(e)}},L=()=>{for(const e of u){const t=c.get(e);t&&t.record.visible&&!t.openedFired&&!t.record.dismissed&&(t.openedFired=!0,m(t.record.onOpen,t.record))}},k={config:o,types:n,add(e){const t=r(e.id),o=c.get(t);if(o&&!o.record.dismissed){const{custom:r,...i}=e;return k.update(t,i),r&&(o.custom=r,o.record={...o.record,custom:r},y()),t}o&&S(o);const n=M(e);if(void 0!==n)for(const e of c.values())if(e.dedupeKey===n&&!e.record.dismissed)return e.record={...e.record,count:e.record.count+1,revision:e.record.revision+1,updatedAt:s()},C(e),y(),e.record.id;const d=((e,t)=>{const{custom:o,...r}=t,s=b(e,r,void 0,o),n={opts:r,custom:o,record:s,timer:void 0,dedupeKey:M(r),exitHandle:void 0,reason:void 0,openedFired:!1,closedFired:!1,dismissFired:!1,autoCloseFired:!1};return n.timer=a(s.duration,()=>{n.autoCloseFired||(n.autoCloseFired=!0,m(n.record.onAutoClose,n.record)),x(n,"auto")},i),s.pausedBy.length&&n.timer.pause(),n})(t,e);return c.set(t,d),u=[...u,t],D(),y(),L(),t},update(e,t){const o=c.get(e);if(!o||o.record.dismissed)return!1;const{resetTimer:r=!0,...i}=t,s={...o.opts};void 0!==i.type&&i.type!==o.record.type&&(delete s.duration,delete s.ariaLive,delete s.role,delete s.icon);let n=!1;for(const e in i){const t=i[e];void 0!==t&&(o.opts[e]!==t&&(n=!0),s[e]=t)}if(!n&&void 0===i.type&&void 0===i.position)return!0;o.opts=s,o.dedupeKey=M(s);const d=b(e,s,o.record,o.custom),a=d.position!==o.record.position;return o.record=d,a&&(o.record={...o.record,visible:!1},D()),r||a?C(o):o.record={...o.record,remaining:B(o)},y(),L(),!0},dismiss(e,t="api"){if(void 0===e)return k.dismissAll(t);const o=c.get(e);o&&x(o,t)},dismissAll(e="api"){for(const t of c.values())x(t,e)},pause(e,t){const o=void 0===e?[...c.values()]:[c.get(e)].filter(e=>Boolean(e));for(const e of o)e.record.pausedBy.includes(t)||(e.timer.pause(t),e.record={...e.record,pausedBy:[...e.record.pausedBy,t],remaining:B(e)});y()},resume(e,t){const o=void 0===e?[...c.values()]:[c.get(e)].filter(e=>Boolean(e));for(const e of o){if(!e.record.pausedBy.includes(t))continue;e.timer.resume(t);const o=e.record.pausedBy.filter(e=>e!==t);e.record={...e.record,pausedBy:o,remaining:B(e)},!o.length&&e.record.visible&&e.record.duration>0&&e.timer.start()}y()},extend(e,t){const o=c.get(e);o&&!o.record.dismissed&&(o.timer.add(t),o.record={...o.record,remaining:B(o),timerEpoch:o.record.timerEpoch+1,revision:o.record.revision+1},y())},getRemaining(e){const t=c.get(e);return t?B(t):0},getToasts:()=>l,getHistory:()=>v,clear(){for(const e of c.values())e.exitHandle?.(),e.timer.cancel();c.clear(),u=[],l=[],y()},clearHistory(){v=[],y()},subscribe:e=>(h.add(e),()=>{h.delete(e)})};return k}var h=v;function y(e){let t=e;const o=new Set;let r=!1;const i=()=>{r=!1;const e=t;o.forEach(t=>{try{t(e)}catch(e){console.error(e)}})};return{getSnapshot:()=>t,setState:(e,o=!1)=>{const s="function"==typeof e?e(t):e;Object.is(s,t)||(t=s,(e=>{e?i():r||(r=!0,"function"==typeof queueMicrotask?queueMicrotask(i):Promise.resolve().then(i))})(o))},subscribe:e=>{if(o.add(e),e.length>0)try{e(t)}catch(e){console.error(e)}return()=>{o.delete(e)}}}}var w=(e,t,o)=>o??(t||"error"===e||"warning"===e?"assertive":"polite"),b=(e,t,o)=>o??(t||"error"===e?"alert":"status"),B=e=>e.input||"danger"!==e.tone&&"warning"!==e.tone?"dialog":"alertdialog",M=e=>e.focusOn??(void 0!==e.input?"input":"danger"===e.tone&&!1!==e.cancelButton?.show?"cancel":"confirm"),D=e=>({confirmLabel:e.confirmButton?.label??"OK",denyLabel:e.denyButton?.label??"No",cancelLabel:e.cancelButton?.label??"Cancel"});function S(e){return"string"==typeof e?{title:e}:e}function x(e,t,o,r={}){let i;try{i="function"==typeof t?t():t}catch(e){i=Promise.reject(e)}const{id:s,...n}=r,d=S(o.loading),c=e.add({...n,id:s,...d,type:"loading",duration:0}),a=(t,r,i)=>{const s="function"==typeof o.description?o.description("success"===t?{status:t,value:i}:{status:t,error:i}):o.description;e.update(c,{duration:n.duration??e.config.get().duration,...S(r),type:t,...void 0!==s?{description:s}:{},resetTimer:!0})};return i.then(t=>{void 0===o.success?e.dismiss(c):a("success","function"==typeof o.success?o.success(t):o.success,t)}).catch(e=>{a("error",void 0===o.error?function(e){return e instanceof Error?e.message:String(e)}(e):"function"==typeof o.error?o.error(e):o.error,e)}).finally(()=>{try{o.finally?.()}catch(e){console.error(e)}}),{id:c,unwrap:()=>i}}function C(e){return e instanceof Error?e.message:"string"==typeof e?e:String(e)}function L(t=e){let o,r=0;const i=[],s=y(0),n=()=>{s.setState(e=>e+1,!0)};return{clock:t,open:e=>{r+=1;const s=r,d=e.priority??0;let c;const u=new Promise(e=>{c=e});let l={options:{...e},loading:null,error:void 0,open:!0,revision:0};const p=new Set,m=()=>{for(const e of[...p])try{e()}catch(e){console.error(e)}};let f,g=()=>l.options.inputValue,v=!1;const h=e=>{l={...l,...e,revision:l.revision+1},m()},y=()=>{f?.cancel(),l={...l,open:!1,revision:l.revision+1},m(),o?.id===s&&(o=void 0,n(),null==o&&0!==i.length&&(i.sort((e,t)=>t.priority!==e.priority?t.priority-e.priority:e.id-t.id),o=i.shift(),o&&(n(),o.controller.opened())))},w=e=>{if(!v){v=!0;try{l.options.willClose?.(b,e)}catch(e){console.error(e)}y(),c(e)}},b={close(e){w({isConfirmed:e?.isConfirmed??!1,isDenied:e?.isDenied??!1,isDismissed:e?.isDismissed??!0,value:e?.value,dismiss:e?.dismiss??"close"})},update(e){v||h({options:{...l.options,...e}})},setLoading(e){h({loading:!0===e?"confirm":!1===e?null:e})},showError(e){h({error:e??void 0})},timer:{pause:()=>f?.pause("manual"),resume:()=>f?.resume("manual"),add:e=>f?.add(e),remaining:()=>f?.remaining()??0,paused:()=>f?.isPaused()??!1},result:u},B={handle:b,getState:()=>l,subscribe:e=>(p.add(e),()=>{p.delete(e)}),setValueReader(e){g=e},opened(){l.options.timer&&l.options.timer>0&&(f=a(l.options.timer,()=>{B.dismiss("timer")},t),f.start());try{l.options.didOpen?.(b)}catch(e){console.error(e)}m()},async submit(e){if(v||null!==l.loading)return;const t="confirm"===e;let o=g();if(t&&l.options.validate)try{const e=await l.options.validate(o,b);if("string"==typeof e&&""!==e.trim())return void b.showError(e)}catch(e){return void b.showError(C(e))}b.showError(void 0);const r=t?l.options.preConfirm:l.options.preDeny;if(r){b.setLoading(e);try{const e=await r(o,b);if(!1===e)return void b.setLoading(!1);void 0!==e&&(o=e)}catch(e){return b.showError(C(e)),void b.setLoading(!1)}b.setLoading(!1)}w({isConfirmed:t,isDenied:!t,isDismissed:!1,value:o,dismiss:void 0})},async dismiss(e){w({isConfirmed:!1,isDenied:!1,isDismissed:!0,value:void 0,dismiss:e})}},M={id:s,options:e,priority:d,resolve:c,controller:B};return void 0===o?(o=M,B.opened()):i.push(M),n(),b},getActive:()=>o?.controller,getQueue:()=>i.map(e=>e.options),clear(){const e=[...i];i.length=0;for(const t of e)t.resolve({isConfirmed:!1,isDenied:!1,isDismissed:!0,value:void 0,dismiss:"close"});if(o){const e=o;o=void 0,e.controller.handle.close({dismiss:"close"})}n()},subscribe:s.subscribe}}var k,E=e=>e instanceof Error?e.message:String(e);function F(e){let t,o,r={...e},i=null,s=!0,n=0,d=()=>r.inputValue,c=()=>{};const u=new Set,l=new Promise(e=>{c=e});let p={options:r,loading:i,error:t,open:s,revision:n};const m=()=>{n+=1,p={options:r,loading:i,error:t,open:s,revision:n};for(const e of[...u])e()},f=e=>{if(!s)return;const t={isConfirmed:!1,isDenied:!1,isDismissed:!1,value:void 0,dismiss:void 0,...e};r.willClose?.(v,t),s=!1,o?.cancel(),m(),c(t)},g=e=>{o?.cancel(),o=void 0,e>0&&Number.isFinite(e)&&(o=a(e,()=>{f({isDismissed:!0,dismiss:"timer"})}),o.start())},v={result:l,close(e){f(e??{isDismissed:!0,dismiss:"close"})},update(e){s&&(r={...r,...e},void 0!==e.timer&&g(e.timer),m())},setLoading(e){s&&(i=!0===e?"confirm":!1===e?null:e,m())},showError(e){s&&(t=e??void 0,m())},timer:{pause:()=>{o?.pause(),m()},resume:()=>{o?.resume(),m()},add:e=>{o?o.add(e):g(Math.max(1,e)),m()},remaining:()=>o?.remaining()??0,paused:()=>!!o&&(!o.isRunning()&&o.remaining()>0)}};return{handle:v,getState:()=>p,subscribe:e=>(u.add(e),()=>{u.delete(e)}),setValueReader(e){d=e},opened(){s&&(void 0!==r.timer&&g(r.timer),m(),r.didOpen?.(v))},async submit(e){if(!s||i)return;let o=d();if(void 0!==t&&(t=void 0,m()),"confirm"===e&&r.validate){let e;i="confirm",m();try{e=await r.validate(o,v)}catch(t){e=E(t)}if(i=null,!s)return;if("string"==typeof e&&e)return t=e,void m();m()}const n="confirm"===e?r.preConfirm:r.preDeny;if(n){let r;i=e,m();try{r=await n(o,v)}catch(e){return i=null,void(s&&(t=E(e),m()))}if(i=null,!s)return;if(!1===r)return void m();void 0!==r&&(o=r)}f({isConfirmed:"confirm"===e,isDenied:"deny"===e,value:o})},dismiss:e=>!(!s||i&&"timer"!==e)&&(("backdrop"!==e||!1!==r.allowOutsideClick)&&(("esc"!==e||!1!==r.allowEscape)&&(f({isDismissed:!0,dismiss:e}),!0)))}}async function T(e,t,o="Back"){const r=[];let i=0,s={isConfirmed:!1,isDenied:!1,isDismissed:!0,value:void 0,dismiss:"close"};for(;i<e.length;){const n=e[i];if(!n){i+=1;continue}const d=i>0?{...n,denyButton:{show:!0,label:o,...n.denyButton}}:n,c=r[i],a="string"==typeof c||"number"==typeof c||"boolean"==typeof c?c:d.inputValue;if(s=await t({...d,inputValue:a}),s.isConfirmed)r[i]=s.value,i+=1;else{if(!(s.isDenied&&i>0))return{...s,values:r.slice(0,i),step:i};i-=1}}return{...s,values:r,step:Math.max(0,e.length-1)}}function z(e){const t=t=>(o,r={})=>{const i={type:t,...r};return void 0!==r.type&&(i.type=r.type),void 0!==o&&(void 0===r.title?i.title=o:void 0===r.description&&(i.description=o)),e.add(i)},o=t();return o.success=t("success"),o.error=t("error"),o.info=t("info"),o.warning=t("warning"),o.loading=t("loading"),o.message=t("message"),o.custom=(t,o)=>e.add({...o,custom:t}),o.update=e.update,o.dismiss=e.dismiss,o.dismissAll=e.dismissAll,o.getToasts=e.getToasts,o.getHistory=e.getHistory,o.types=e.types,o.promise=(t,o,r)=>x(e,t,o,r),o}function R(e={}){const{stiffness:t=170,damping:o=18,mass:r=1}=e,i=e=>function(e,t,o,r){const i=Math.sqrt(t/r),s=o/(2*Math.sqrt(t*r));if(s<1){const t=i*Math.sqrt(1-s*s);return 1-Math.exp(-s*i*e)*(Math.cos(t*e)+s*i/t*Math.sin(t*e))}if(1===s)return 1-Math.exp(-i*e)*(1+i*e);const n=i*Math.sqrt(s*s-1),d=-s*i+n,c=-s*i-n;return 1-(c*Math.exp(d*e)-d*Math.exp(c*e))/(c-d)}(e,t,o,r),s=1/120;let n=0;for(let e=0;e<=5;e+=s)Math.abs(1-i(e))>.001&&(n=e);n=Math.max(n+s,.05);const d=Math.max(2,Math.ceil(60*n)),c=[];for(let e=0;e<=d;e++)c.push(String(+i(e/d*n).toFixed(4)));return c[d]="1",{easing:`linear(${c.join(",")})`,duration:Math.round(1e3*n)}}function O(t={}){const o=t.clock??e,r=t.config??d(),i=v({config:r,clock:o}),s=z(i),n=L(o);let c;const a=[],u=e=>"string"==typeof e?{title:e}:{...e},l=e=>{const t=n.open(e);return c?.openDialog?c.openDialog(e,t):a.push(()=>{c?.openDialog?.(e,t)}),t.result},p={isConfirmed:!1,isDenied:!1,isDismissed:!0,value:void 0,dismiss:"close"},m={toast:s,config:r,toastStore:i,dialogManager:n,confirm:e=>l({confirmButton:{show:!0},cancelButton:{show:!0},...u(e)}),alert:e=>l({confirmButton:{show:!0},cancelButton:{show:!1},denyButton:{show:!1},...u(e)}),prompt:e=>l({input:"text",confirmButton:{show:!0},cancelButton:{show:!0},...u(e)}),steps:(e,t="Back")=>T(e,e=>m.confirm(e),t),sheet:e=>c?.openSheet?c.openSheet(e):new Promise(t=>{a.push(()=>c?.openSheet?void c.openSheet(e).then(t):t(p))}),bottomSheet(e){if(c?.openBottomSheet)return c.openBottomSheet(e);let t;return{body:void 0,close:e=>t?.close(e),snapTo:e=>t?.snapTo(e),update:e=>t?.update(e),result:new Promise(o=>{a.push(()=>c?.openBottomSheet?void(t=c.openBottomSheet(e)).result.then(o):o(p))})}},loading(e={}){const t="string"==typeof e?{text:e}:e;if(c?.openLoading)return c.openLoading(t);let o,r;const i=new Promise(e=>{r=e});return a.push(()=>c?.openLoading?void(o=c.openLoading(t)).closed.then(r):r()),{update:e=>o?.update(e),close:()=>{o?.close(),r()},closed:i}},configure:e=>r.set(e),getConfig:()=>r.get(),clear(){i.clear(),n.clear(),a.length=0},registerRenderer(e){for(c=e;a.length>0;){const e=a.shift();e?.()}},getRenderer:()=>c};return m}var P=()=>k??(k=O()),A={get toast(){return P().toast},get config(){return P().config},get toastStore(){return P().toastStore},get dialogManager(){return P().dialogManager},confirm:e=>P().confirm(e),alert:e=>P().alert(e),prompt:e=>P().prompt(e),steps:(e,t)=>P().steps(e,t),sheet:e=>P().sheet(e),bottomSheet:e=>P().bottomSheet(e),loading:e=>P().loading(e),configure:e=>P().configure(e),getConfig:()=>P().getConfig(),clear:()=>P().clear(),registerRenderer:e=>P().registerRenderer(e),getRenderer:()=>P().getRenderer()};function V(e){P().registerRenderer(e)}function $(e={}){const t=v({config:e.config});return{store:t,toast:z(t)}}export{s as DEFAULT_CONFIG,f as MANUAL_PAUSE,d as createConfigStore,F as createDialogController,L as createDialogManager,y as createStore,a as createTimer,z as createToastApi,$ as createToastEngine,v as createToastManager,h as createToastStore,p as createTypeRegistry,O as createUI,w as decideAriaLive,D as decideDialogLabels,B as decideDialogRole,M as decideFocusTarget,b as decideToastRole,e as defaultClock,o as nextId,r as normalizeId,V as registerRenderer,i as resetIdCounter,n as resolvePrecedence,x as runPromiseToast,T as runSteps,R as springEasing,A as ui};//# sourceMappingURL=core.js.map