toastory 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/angular.cjs +1 -1
- package/dist/angular.cjs.map +1 -1
- package/dist/angular.d.cts +4 -4
- package/dist/angular.d.ts +4 -4
- package/dist/angular.js +1 -1
- package/dist/angular.js.map +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.cts +26 -5
- package/dist/core.d.ts +26 -5
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/dist/{dialog-DAgL0wyv.d.ts → dialog-D-y37Xl5.d.ts} +1 -1
- package/dist/{dialog-DosUuJM_.d.cts → dialog-mUI__8O3.d.cts} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -6
- package/dist/index.d.ts +6 -6
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/native.cjs +1 -1
- package/dist/native.cjs.map +1 -1
- package/dist/native.d.cts +43 -5
- package/dist/native.d.ts +43 -5
- package/dist/native.js +1 -1
- package/dist/native.js.map +1 -1
- package/dist/react.cjs +1 -1
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +5 -5
- package/dist/react.d.ts +5 -5
- package/dist/react.js +1 -1
- package/dist/react.js.map +1 -1
- package/dist/{sound-CedBML6j.d.ts → sound-DLXnQDzO.d.cts} +1 -5
- package/dist/{sound-DLGxVNC0.d.cts → sound-UiOhOgA9.d.ts} +1 -5
- package/dist/svelte.cjs +1 -1
- package/dist/svelte.cjs.map +1 -1
- package/dist/svelte.d.cts +6 -4
- package/dist/svelte.d.ts +6 -4
- package/dist/svelte.js +1 -1
- package/dist/svelte.js.map +1 -1
- package/dist/themes/_base.css +1 -1
- package/dist/themes/_base.dialog.css +1 -1
- package/dist/themes/_base.toast.css +1 -1
- package/dist/themes/all.css +1 -1
- package/dist/themes/aurora.css +1 -1
- package/dist/themes/aurora.dialog.css +1 -1
- package/dist/themes/aurora.toast.css +1 -1
- package/dist/themes/basic.css +1 -1
- package/dist/themes/basic.dialog.css +1 -1
- package/dist/themes/basic.toast.css +1 -1
- package/dist/themes/brutal.css +1 -1
- package/dist/themes/brutal.dialog.css +1 -1
- package/dist/themes/brutal.toast.css +1 -1
- package/dist/themes/classic-bar.css +1 -1
- package/dist/themes/classic-bar.dialog.css +1 -1
- package/dist/themes/classic-bar.toast.css +1 -1
- package/dist/themes/classic-stack.css +1 -1
- package/dist/themes/classic-stack.dialog.css +1 -1
- package/dist/themes/classic-stack.toast.css +1 -1
- package/dist/themes/dialogs.css +1 -1
- package/dist/themes/dialogs.dialog.css +1 -1
- package/dist/themes/dialogs.toast.css +1 -1
- package/dist/themes/essentials.css +1 -1
- package/dist/themes/essentials.dialog.css +1 -1
- package/dist/themes/essentials.toast.css +1 -1
- package/dist/themes/flat.css +1 -1
- package/dist/themes/flat.dialog.css +1 -1
- package/dist/themes/flat.toast.css +1 -1
- package/dist/themes/gradient-strip.css +1 -1
- package/dist/themes/gradient-strip.dialog.css +1 -1
- package/dist/themes/gradient-strip.toast.css +1 -1
- package/dist/themes/gradient.css +1 -1
- package/dist/themes/gradient.dialog.css +1 -1
- package/dist/themes/gradient.toast.css +1 -1
- package/dist/themes/ios-glass.css +1 -1
- package/dist/themes/ios-glass.dialog.css +1 -1
- package/dist/themes/ios-glass.toast.css +1 -1
- package/dist/themes/liquid-glass.css +1 -1
- package/dist/themes/liquid-glass.dialog.css +1 -1
- package/dist/themes/liquid-glass.toast.css +1 -1
- package/dist/themes/material.css +1 -1
- package/dist/themes/material.dialog.css +1 -1
- package/dist/themes/material.toast.css +1 -1
- package/dist/themes/minimal.css +1 -1
- package/dist/themes/minimal.dialog.css +1 -1
- package/dist/themes/minimal.toast.css +1 -1
- package/dist/themes/neon.css +1 -1
- package/dist/themes/neon.dialog.css +1 -1
- package/dist/themes/neon.toast.css +1 -1
- package/dist/themes/outline.css +1 -1
- package/dist/themes/outline.dialog.css +1 -1
- package/dist/themes/outline.toast.css +1 -1
- package/dist/themes/pastel.css +1 -1
- package/dist/themes/pastel.dialog.css +1 -1
- package/dist/themes/pastel.toast.css +1 -1
- package/dist/themes/pill.css +1 -1
- package/dist/themes/pill.dialog.css +1 -1
- package/dist/themes/pill.toast.css +1 -1
- package/dist/themes/ripple.css +1 -1
- package/dist/themes/ripple.dialog.css +1 -1
- package/dist/themes/ripple.toast.css +1 -1
- package/dist/themes/showcase.css +1 -1
- package/dist/themes/showcase.dialog.css +1 -1
- package/dist/themes/showcase.toast.css +1 -1
- package/dist/themes/sweet.css +1 -1
- package/dist/themes/sweet.dialog.css +1 -1
- package/dist/themes/sweet.toast.css +1 -1
- package/dist/{toast-api-Bwjc_Kxh.d.cts → toast-api-C5nqvDgA.d.cts} +66 -5
- package/dist/{toast-api-Bwjc_Kxh.d.ts → toast-api-C5nqvDgA.d.ts} +66 -5
- package/dist/{ui-DJXC9cko.d.ts → ui-C1Zh-Kff.d.ts} +2 -2
- package/dist/{ui-Bdu8EJ3m.d.cts → ui-D1WECTSn.d.cts} +2 -2
- package/dist/vue.cjs +1 -1
- package/dist/vue.cjs.map +1 -1
- package/dist/vue.d.cts +5 -5
- package/dist/vue.d.ts +5 -5
- package/dist/vue.js +1 -1
- package/dist/vue.js.map +1 -1
- package/package.json +1 -1
package/dist/core.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
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
|
|
3
|
-
import { S as StepsResult } from './dialog-
|
|
4
|
-
export { D as DialogController, a as DialogPromise, c as createDialogController, r as runSteps } from './dialog-
|
|
1
|
+
import { ac as ToastId, a2 as Store, C as Clock, ak as ToastType, r as DialogOptions, b as ToastStore, U as PromiseMessages, af as ToastOptions, R as PromiseHandle, o as DialogHandle, v as DialogState, L as Listener, ar as Unsubscribe, z as DismissReason, t as DialogResult, T as ToastApi, j as ConfigStore, _ as SheetOptions, d as BottomSheetOptions, B as BottomSheetHandle, J as LoadingOptions, H as LoadingHandle, G as GlazeConfig, a as ToastRecord } from './toast-api-C5nqvDgA.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 RobotCharacter, Y as SheetAction, Z as SheetActionStyle, $ as ShowcaseToastVariant, a0 as SoundCue, a1 as StackMode, a3 as SwipeDirection, a4 as ThemeName, a5 as ToastAction, a6 as ToastActionItem, a7 as ToastAvatarOption, a8 as ToastButton, a9 as ToastClassNames, aa as ToastCustomRenderer, ab as ToastFn, ad as ToastManager, ae as ToastManagerOptions, ag as ToastPatch, ah as ToastPosition, ai as ToastRenderContext, aj as ToastToggleOption, al as ToastTypeDefinition, am as ToastVariant, an as ToastoryConfig, ao as ToastoryConfigPatch, ap as TypeRegistry, aq as TypedDialogOptions, as as ValidateResult, at as createConfigStore, au as createToastApi, av as createToastManager, aw as createToastStore, ax as createTypeRegistry, ay as defaultClock, az as resolvePrecedence } from './toast-api-C5nqvDgA.js';
|
|
3
|
+
import { S as StepsResult } from './dialog-D-y37Xl5.js';
|
|
4
|
+
export { D as DialogController, a as DialogPromise, c as createDialogController, r as runSteps } from './dialog-D-y37Xl5.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Returns a collision-safe, incremental unique identifier.
|
|
@@ -123,6 +123,8 @@ interface SpringConfig {
|
|
|
123
123
|
damping?: number;
|
|
124
124
|
mass?: number;
|
|
125
125
|
}
|
|
126
|
+
/** Closed-form damped harmonic oscillator, 0 to 1, zero initial velocity. t in seconds. */
|
|
127
|
+
declare function springPosition(t: number, k: number, c: number, m: number): number;
|
|
126
128
|
/**
|
|
127
129
|
* Bakes a physics-accurate spring curve into a CSS linear() easing function.
|
|
128
130
|
* Enables 100% native GPU-accelerated spring animations without per-frame JS.
|
|
@@ -131,6 +133,25 @@ declare function springEasing(config?: SpringConfig): {
|
|
|
131
133
|
easing: string;
|
|
132
134
|
duration: number;
|
|
133
135
|
};
|
|
136
|
+
/**
|
|
137
|
+
* Numerical Mass-spring-damper on a scalar value.
|
|
138
|
+
* Retains instantaneous velocity when the target changes, ensuring fluid uninterrupted retargeting.
|
|
139
|
+
*/
|
|
140
|
+
declare class Spring {
|
|
141
|
+
x: number;
|
|
142
|
+
v: number;
|
|
143
|
+
to: number;
|
|
144
|
+
cfg: Required<SpringConfig>;
|
|
145
|
+
constructor(x: number, cfg?: SpringConfig);
|
|
146
|
+
tune(c: SpringConfig): void;
|
|
147
|
+
/**
|
|
148
|
+
* Advance dt seconds using numerical sub-stepping (h = 1/240) for high stability.
|
|
149
|
+
* Returns true while the spring is still in motion, false when settled at rest.
|
|
150
|
+
*/
|
|
151
|
+
step(dt: number): boolean;
|
|
152
|
+
}
|
|
153
|
+
/** Runs a spring task every frame until it returns false. Fully safe in Node and SSR environments. */
|
|
154
|
+
declare function runSpringTask(task: (dt: number) => boolean): void;
|
|
134
155
|
|
|
135
156
|
/**
|
|
136
157
|
* Renderer interface for bridging the framework-agnostic core to UI adapters.
|
|
@@ -201,5 +222,5 @@ declare function createToastEngine(options?: {
|
|
|
201
222
|
config?: ConfigStore;
|
|
202
223
|
}): ToastEngine;
|
|
203
224
|
|
|
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 };
|
|
225
|
+
export { BottomSheetHandle, BottomSheetOptions, Clock, ConfigStore, DialogHandle, DialogOptions, DialogResult, DialogState, DismissReason, GlazeConfig, Listener, LoadingHandle, LoadingOptions, PromiseHandle, PromiseMessages, SheetOptions, Spring, StepsResult, Store, ToastApi, ToastId, ToastOptions, ToastRecord, ToastStore, ToastType, Unsubscribe, createDialogManager, createStore, createTimer, createToastEngine, createUI, decideAriaLive, decideDialogLabels, decideDialogRole, decideFocusTarget, decideToastRole, nextId, normalizeId, registerRenderer, resetIdCounter, runPromiseToast, runSpringTask, springEasing, springPosition, ui };
|
|
205
226
|
export type { CoreUI, CreateUIOptions, DialogManager, DialogQueueItem, HeadlessDialogController, PausableTimer, Renderer, SpringConfig, ToastEngine };
|
package/dist/core.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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
|
|
1
|
+
function e(e="gk"){return`${e}-${++D}`}function t(t,o="gk"){return void 0!==t&&""!==t?t:e(o)}function o(){D=0}function r(e={}){let t=Object.freeze({...k,...i(e)});const o=new Set,r=()=>{o.forEach(e=>e())};return{get:()=>t,set(e){const o={...t,...i(e)};return Object.keys(o).some(e=>o[e]!==t[e])&&(t=Object.freeze(o),r()),t},reset(){t=k,r()},subscribe(e){return o.add(e),()=>{o.delete(e)}}}}function i(e){const t={};for(const o in e)void 0!==e[o]&&(t[o]=e[o]);return t}function s(e,t,o=S){let r,i,s=e,n=e,c=0,a=0,d=0;const u=new Map,l=new Set,p=()=>Number.isFinite(n)&&n>0,f=()=>a&&!u.size,m=()=>d?0:f()?Math.max(0,n-(o.now()-c)):n,g=()=>{if(!l.size)return;const e=m(),t=s>0?Math.max(0,Math.min(1,e/s)):0;for(const o of l)try{o(e,t)}catch(e){console.error(e)}},h=()=>{r?.(),i?.(),r=i=void 0},v=()=>{h(),!p()||u.size||d||(c=o.now(),r=o.setTimeout(()=>{h(),n=0,d=1,a=0,g(),t()},n),l.size&&(i=o.setInterval(g,50)))};return{start(){!d&&p()&&(a=1,u.clear(),v(),g())},pause(e="manual"){d||(u.set(e,(u.get(e)??0)+1),a&&1===u.size&&(n=Math.max(0,n-(o.now()-c)),h(),g()))},resume(e="manual"){const t=!d&&u.get(e);t&&(t>1?u.set(e,t-1):u.delete(e),f()&&p()&&(v(),g()))},clearReasons(){u.clear(),a&&p()&&v()},add(e){if(d||!Number.isFinite(n))return;const t=f();n=Math.max(1,m()+e),s=Math.max(s,n),t&&v(),g()},reset(e){d=0,n=s=e??s,f()&&(p()?v():h()),g()},cancel(){h(),l.clear(),a=0,d=1,n=0},remaining:m,elapsed:()=>Math.max(0,s-m()),isRunning:()=>f()&&!d&&p(),isPaused:()=>u.size>0,pausedReasons:()=>[...u.keys()],onTick(e){return l.add(e),f()&&!i&&(i=o.setInterval(g,50)),()=>{l.delete(e),!l.size&&i&&(i(),i=void 0)}}}}function n(){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)??O[t],list:()=>[...e.keys()]}}function c(e={}){const o=e.config??r(),i=e.clock??S,c=e.now??i.now,a=e.types??n(),d=new Map;let u=[],l=[],p=[];const f=new Set,m=()=>{l=u.map(e=>d.get(e)?.record).filter(Boolean),f.forEach(e=>e())},g=(e,t,r,i)=>{const s=o.get(),n=t.type??"default",d={...a.get(n)?.defaults,...t};d.title??(d.title=d.text1),d.description??(d.description=d.text2),d.onOpen??(d.onOpen=d.onShow),d.onClose??(d.onClose=d.onHide),!d.actions&&d.buttons&&(d.actions=d.buttons.map(e=>({label:e.label,onClick:t=>(e.onClick??e.onPress)?.({preventDefault:()=>t.preventDefault(),defaultPrevented:t.defaultPrevented}),autoDismiss:e.autoDismiss,kind:e.kind})));const u=0==d.autoHide?0:d.duration??d.visibilityTime??s.duration,l=Number.isFinite(u)&&u>0?u:0,p=d.important||"error"===n,f=c();return{...d,id:e,type:n,duration:l,position:d.position??s.position,ariaLive:d.ariaLive??(p?"assertive":"polite"),role:d.role??(p?"alert":"status"),createdAt:r?.createdAt??f,updatedAt:f,revision:(r?.revision??-1)+1,timerEpoch:r?.timerEpoch??0,count:r?.count??1,visible:r?.visible??0,dismissed:0,pausedBy:r?.pausedBy??(s.startPaused?[R]:[]),remaining:r?.remaining??(l||1/0),custom:i}},h=e=>0===e.record.duration?1/0:e.timer.remaining(),v=e=>{if(0==e.dedupe)return;if("string"==typeof e.dedupe)return e.dedupe;const t=e.title??e.text1,o=e.description??e.text2,r="string"==typeof t?t:"",i="string"==typeof o?o:"";return r||i?`${e.type??"default"}|${r}|${i}`:void 0},y=()=>{const e=o.get(),t=new Map;for(const o of u){const r=d.get(o);if(!r||r.record.dismissed)continue;const i=`${r.record.container??""}|${r.record.position}`,s=t.get(i)??0,n=!!r.record.important;s<e.maxVisible||n?(r.record.visible||(r.record={...r.record,visible:1},!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:0},r.timer.pause())}},b=e=>{e.exitHandle?.(),e.timer.cancel(),d.delete(e.record.id),u=u.filter(t=>t!==e.record.id),p=[{...e.record,dismissed:1},...p].slice(0,o.get().historyLimit),y(),M(),m(),2&e.flags||(e.flags|=2,L(e.record.onClose,e.record,e.reason??"api"))},w=(e,t)=>{if(e.record.dismissed)return;if(0==e.record.dismissible&&("user"===(r=t)||"swipe"===r||"click"===r))return;var r;e.reason=t,e.record={...e.record,dismissed:1,remaining:0,revision:e.record.revision+1},e.timer.cancel(),4&e.flags||"auto"===t||(e.flags|=4,L(e.record.onDismiss,e.record,t)),y(),M(),m();const s=o.get().exitDuration;s>0&&e.record.visible?e.exitHandle=i.setTimeout(()=>b(e),s):b(e)},x=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:h(e)}},M=()=>{for(const e of u){const t=d.get(e);!t||!t.record.visible||1&t.flags||t.record.dismissed||(t.flags|=1,L(t.record.onOpen,t.record))}},B={config:o,types:a,add(e){const o=t(e.id),r=d.get(o);if(r&&!r.record.dismissed){const{custom:t,...i}=e;return B.update(o,i),t&&(r.custom=t,r.record={...r.record,custom:t},m()),o}r&&b(r);const n=v(e);if(void 0!==n)for(const e of d.values())if(e.dedupeKey===n&&!e.record.dismissed)return e.record={...e.record,count:e.record.count+1,revision:e.record.revision+1,updatedAt:c()},x(e),m(),e.record.id;const a=((e,t)=>{const{custom:o,...r}=t,n=g(e,r,void 0,o),c={opts:r,custom:o,record:n,timer:void 0,dedupeKey:v(r),exitHandle:void 0,reason:void 0,flags:0};return c.timer=s(n.duration,()=>{8&c.flags||(c.flags|=8,L(c.record.onAutoClose,c.record)),w(c,"auto")},i),n.pausedBy.length&&c.timer.pause(),c})(o,e);return d.set(o,a),u=[...u,o],y(),m(),M(),o},update(e,t){const o=d.get(e);if(!o||o.record.dismissed)return 0;const{resetTimer:r=1,...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=0;for(const e in i){const t=i[e];void 0!==t&&(o.opts[e]!==t&&(n=1),s[e]=t)}if(!n&&void 0===i.type&&void 0===i.position)return 1;o.opts=s,o.dedupeKey=v(s);const c=g(e,s,o.record,o.custom),a=c.position!==o.record.position;return o.record=c,a&&(o.record={...o.record,visible:0},y()),r||a?x(o):o.record={...o.record,remaining:h(o)},m(),M(),1},dismiss(e,t="api"){if(void 0===e)return B.dismissAll(t);const o=d.get(e);o&&w(o,t)},dismissAll(e="api"){for(const t of d.values())w(t,e)},pause(e,t){const o=void 0!==e?[d.get(e)]:d.values();for(const e of o)e&&!e.record.pausedBy.includes(t)&&(e.timer.pause(t),e.record={...e.record,pausedBy:[...e.record.pausedBy,t],remaining:h(e)});m()},resume(e,t){const o=void 0!==e?[d.get(e)]:d.values();for(const e of o){if(!e||!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:h(e)},!o.length&&e.record.visible&&e.record.duration>0&&e.timer.start()}m()},extend(e,t){const o=d.get(e);o&&!o.record.dismissed&&(o.timer.add(t),o.record={...o.record,remaining:h(o),timerEpoch:o.record.timerEpoch+1,revision:o.record.revision+1},m())},getRemaining(e){const t=d.get(e);return t?h(t):0},getToasts:()=>l,getHistory:()=>p,clear(){for(const e of d.values())e.exitHandle?.(),e.timer.cancel();d.clear(),u=[],l=[],m()},clearHistory(){p=[],m()},subscribe(e){return f.add(e),()=>{f.delete(e)}}};return B}function a(e){let t=e;const o=new Set;let r=0;const i=()=>{r=0;const e=t;o.forEach(t=>{try{t(e)}catch(e){console.error(e)}})};return{getSnapshot:()=>t,setState(e,o=0){const s="function"==typeof e?e(t):e;Object.is(s,t)||(t=s,(e=>{e?i():r||(r=1,"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)}}}}function d(e,t,o,r={}){let i;try{i="function"==typeof t?t():t}catch(e){i=Promise.reject(e)}const{id:s,...n}=r,c=V(o.loading),a=e.add({...n,id:s,...c,type:"loading",duration:0}),d=(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(a,{duration:n.duration??e.config.get().duration,...V(r),type:t,...void 0!==s?{description:s}:{},resetTimer:1})};return i.then(t=>{void 0===o.success?e.dismiss(a):d("success","function"==typeof o.success?o.success(t):o.success,t)}).catch(e=>{var t;d("error",void 0===o.error?(t=e)instanceof Error?t.message:t+"":"function"==typeof o.error?o.error(e):o.error,e)}).finally(()=>{try{o.finally?.()}catch(e){console.error(e)}}),{id:a,unwrap:()=>i}}function u(e){let t,o,r={...e},i=null,n=1,c=0,a=()=>r.inputValue,d=()=>{};const u=new Set,l=new Promise(e=>{d=e});let p={options:r,loading:i,error:t,open:n,revision:c};const f=()=>{c+=1,p={options:r,loading:i,error:t,open:n,revision:c};for(const e of[...u])try{e()}catch(e){console.error(e)}},m=e=>{if(!n)return;const t={isConfirmed:0,isDenied:0,isDismissed:0,value:void 0,dismiss:void 0,...e};try{r.willClose?.(h,t)}catch(e){console.error(e)}n=0,o?.cancel(),f(),u.clear(),d(t)},g=e=>{o?.cancel(),o=void 0,e>0&&Number.isFinite(e)&&(o=s(e,()=>{m({isDismissed:1,dismiss:"timer"})}),o.start())},h={result:l,close(e){m(e??{isDismissed:1,dismiss:"close"})},update(e){n&&(r={...r,...e},void 0!==e.timer&&g(e.timer),f())},setLoading(e){n&&(i=1==e?"confirm":0==e?null:e,f())},showError(e){n&&(t=e??void 0,f())},timer:{pause(){o?.pause(),f()},resume(){o?.resume(),f()},add(e){o?o.add(e):g(Math.max(1,e)),f()},remaining:()=>o?.remaining()??0,paused:()=>o?!o.isRunning()&&o.remaining()>0:0}};return{handle:h,getState:()=>p,subscribe(e){return u.add(e),()=>{u.delete(e)}},setValueReader(e){a=e},opened(){if(n){void 0!==r.timer&&g(r.timer),f();try{r.didOpen?.(h)}catch(e){console.error(e)}}},async submit(e){if(!n||i)return;let o=a();if(void 0!==t&&(t=void 0,f()),"confirm"===e&&r.validate){let e;i="confirm",f();try{e=await r.validate(o,h)}catch(t){e=$(t)}if(i=null,!n)return;if("string"==typeof e&&e)return t=e,void f();f()}const s="confirm"===e?r.preConfirm:r.preDeny;if(s){let r;i=e,f();try{r=await s(o,h)}catch(e){return i=null,void(n&&(t=$(e),f()))}if(i=null,!n)return;if(0==r)return void f();void 0!==r&&(o=r)}m({isConfirmed:"confirm"===e,isDenied:"deny"===e,value:o})},dismiss(e){return!n||i&&"timer"!==e||"backdrop"===e&&0==r.allowOutsideClick||"esc"===e&&0==r.allowEscape?0:(m({isDismissed:1,dismiss:e}),1)}}}async function l(e,t,o="Back"){const r=[];let i=0,s={isConfirmed:0,isDenied:0,isDismissed:1,value:void 0,dismiss:"close"};for(;i<e.length;){const n=e[i];if(!n){i+=1;continue}const c=i>0?{...n,denyButton:{show:1,label:o,...n.denyButton}}:n,a=r[i],d="string"==typeof a||"number"==typeof a||"boolean"==typeof a?a:c.inputValue;if(s=await t({...c,inputValue:d}),s.isConfirmed)r[i]=s.value,i+=1;else{if(!s.isDenied||0>=i)return{...s,values:r.slice(0,i),step:i};i-=1}}return{...s,values:r,step:Math.max(0,e.length-1)}}function p(e=S){let t,o=0;const r=[],i=a(0),s=()=>{i.setState(e=>e+1,1)};return{clock:e,open(e){o+=1;const i=o,n=e.priority??0,c=u(e),a={handle:c.handle,getState:c.getState,subscribe:c.subscribe,setValueReader:c.setValueReader,opened:c.opened,submit:c.submit,async dismiss(e){c.dismiss(e)}};c.subscribe(()=>{c.getState().open||t?.id===i&&(t=void 0,s(),!t&&r.length&&(r.sort((e,t)=>t.priority!==e.priority?t.priority-e.priority:e.id-t.id),t=r.shift(),t&&(s(),t.controller.opened())))});const d={id:i,options:e,priority:n,resolve(){},controller:a};return t?r.push(d):(t=d,a.opened()),c.handle},getActive:()=>t?.controller,getQueue:()=>r.map(e=>e.options),clear(){if(t){const e=t;t=void 0,e.controller.handle.close({isDismissed:1,dismiss:"close"})}for(const e of r)e.controller.handle.close({isDismissed:1,dismiss:"close"});r.length=0,s()},subscribe:i.subscribe}}function f(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)};return Object.assign(t(),{success:t("success"),error:t("error"),info:t("info"),warning:t("warning"),loading:t("loading"),message:t("message"),custom:(t,o)=>e.add({...o,custom:t}),update:e.update,dismiss:e.dismiss,dismissAll:e.dismissAll,getToasts:e.getToasts,getHistory:e.getHistory,types:e.types,promise:(t,o,r)=>d(e,t,o,r)})}function m(e,t,o,r){const i=Math.sqrt(t/r),s=o/(2*Math.sqrt(t*r));if(1>s){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),c=-s*i+n,a=-s*i-n;return 1-(a*Math.exp(c*e)-c*Math.exp(a*e))/(a-c)}function g(e={}){const{stiffness:t=170,damping:o=18,mass:r=1}=e,i=e=>m(e,t,o,r),s=1/120;let n=0;for(let e=0;5>=e;e+=s)Math.abs(1-i(e))>.001&&(n=e);n=Math.max(n+s,.05);const c=Math.max(2,Math.ceil(60*n)),a=[];for(let e=0;c>=e;e++)a.push(+i(e/c*n).toFixed(4)+"");return a[c]="1",{easing:`linear(${a.join(",")})`,duration:Math.round(1e3*n)}}function h(){return"undefined"!=typeof globalThis&&"requestAnimationFrame"in globalThis?globalThis.requestAnimationFrame:void 0}function v(e){const t=Math.min(.1,(e-N)/1e3);if(N=e,M){for(const e of M)e(t)||M.delete(e);const e=h();F=M.size&&e?e(v):0}else F=0}function y(e){const t=h();t&&((M??(M=new Set)).add(e),F||(N="undefined"!=typeof performance?performance.now():Date.now(),F=t(v)))}function b(e={}){const t=e.clock??S,o=e.config??r(),i=c({config:o,clock:t}),s=f(i),n=p(t);let a;const d=[],u=e=>"string"==typeof e?{title:e}:{...e},m=e=>{const t=n.open(e);return a?.openDialog?a.openDialog(e,t):d.push(()=>{a?.openDialog?.(e,t)}),t.result},g={isConfirmed:0,isDenied:0,isDismissed:1,value:void 0,dismiss:"close"},h={toast:s,config:o,toastStore:i,dialogManager:n,confirm:e=>m({confirmButton:{show:1},cancelButton:{show:1},...u(e)}),alert:e=>m({confirmButton:{show:1},cancelButton:{show:0},denyButton:{show:0},...u(e)}),prompt:e=>m({input:"text",confirmButton:{show:1},cancelButton:{show:1},...u(e)}),steps:(e,t="Back")=>l(e,e=>h.confirm(e),t),sheet:e=>a?.openSheet?a.openSheet(e):new Promise(t=>{d.push(()=>a?.openSheet?void a.openSheet(e).then(t):t(g))}),bottomSheet(e){if(a?.openBottomSheet)return a.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=>{d.push(()=>a?.openBottomSheet?void(t=a.openBottomSheet(e)).result.then(o):o(g))})}},loading(e={}){const t="string"==typeof e?{text:e}:e;if(a?.openLoading)return a.openLoading(t);let o,r;const i=new Promise(e=>{r=e});return d.push(()=>a?.openLoading?void(o=a.openLoading(t)).closed.then(r):r()),{update:e=>o?.update(e),close(){o?.close(),r()},closed:i}},configure:e=>o.set(e),getConfig:()=>o.get(),clear(){i.clear(),n.clear(),d.length=0},registerRenderer(e){for(a=e;d.length;)d.shift()?.()},getRenderer:()=>a};return h}function w(e){I().registerRenderer(e)}function x(e={}){const t=c({config:e.config});return{store:t,toast:f(t)}}var M,B,S={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)}},D=0,k=Object.freeze({theme:"ios-glass",mode:"auto",position:"top-right",duration:4e3,maxVisible:8,gap:12,stack:1,dir:"auto",hotkey:"alt+t",pauseOn:["hover","focus","hidden"],shadow:1,closeButton:0,richColors:0,invert:0,swipe:1,dragThreshold:45,progress:0,closeOnClick:0,exitDuration:250,historyLimit:100,regionLabel:"Notifications",closeLabel:"Close notification",startPaused:0,newestOnTop:1,dedupeWindow:500,sound:0,soundVolume:.5,container:void 0}),C=(e,t,o,r)=>e??t??o??r,T=(e,t="polite")=>({color:`var(--gk-${e})`,ariaLive:t}),O={success:T("success"),error:T("error","assertive"),warning:T("warning","assertive"),info:T("info"),loading:{...T("info"),defaults:{duration:0,dismissible:0}},message:T("fg")},L=(e,t,o)=>{try{e?.(t,o)}catch(e){console.error(e)}},R="manual",E=c,A=(e,t,o)=>o??(t||"error"===e||"warning"===e?"assertive":"polite"),P=(e,t,o)=>o??(t||"error"===e?"alert":"status"),z=e=>e.input||"danger"!==e.tone&&"warning"!==e.tone?"dialog":"alertdialog",H=e=>e.focusOn??(void 0!==e.input?"input":"danger"===e.tone&&0!=e.cancelButton?.show?"cancel":"confirm"),j=e=>({confirmLabel:e.confirmButton?.label??"OK",denyLabel:e.denyButton?.label??"No",cancelLabel:e.cancelButton?.label??"Cancel"}),V=e=>"string"==typeof e?{title:e}:e,$=e=>e instanceof Error?e.message:e+"",q=class{constructor(e,t={}){this.x=e,this.v=0,this.to=e,this.cfg={stiffness:170,damping:18,mass:1,...t}}tune(e){Object.assign(this.cfg,e)}step(e){const{stiffness:t,damping:o,mass:r}=this.cfg,i=1/240;for(let s=0;e>s;s+=i)this.v+=(-t*(this.x-this.to)-o*this.v)/r*i,this.x+=this.v*i;return.05>Math.abs(this.v)&&.05>Math.abs(this.x-this.to)?(this.x=this.to,this.v=0,0):1}},F=0,N=0,I=()=>B??(B=b()),K={get toast(){return I().toast},get config(){return I().config},get toastStore(){return I().toastStore},get dialogManager(){return I().dialogManager},confirm:e=>I().confirm(e),alert:e=>I().alert(e),prompt:e=>I().prompt(e),steps:(e,t)=>I().steps(e,t),sheet:e=>I().sheet(e),bottomSheet:e=>I().bottomSheet(e),loading:e=>I().loading(e),configure:e=>I().configure(e),getConfig:()=>I().getConfig(),clear:()=>I().clear(),registerRenderer:e=>I().registerRenderer(e),getRenderer:()=>I().getRenderer()};export{k as DEFAULT_CONFIG,R as MANUAL_PAUSE,q as Spring,r as createConfigStore,u as createDialogController,p as createDialogManager,a as createStore,s as createTimer,f as createToastApi,x as createToastEngine,c as createToastManager,E as createToastStore,n as createTypeRegistry,b as createUI,A as decideAriaLive,j as decideDialogLabels,z as decideDialogRole,H as decideFocusTarget,P as decideToastRole,S as defaultClock,e as nextId,t as normalizeId,w as registerRenderer,o as resetIdCounter,C as resolvePrecedence,d as runPromiseToast,y as runSpringTask,l as runSteps,g as springEasing,m as springPosition,K as ui};//# sourceMappingURL=core.js.map
|