{"version":3,"names":["counter","gid","Math","random","toString","slice","createToastManager","listeners","Set","emit","event","listener","add","delete","options","id","action","transitionStatus","close","update","updates","promise","promiseValue","handled","setPromise","p"],"sources":["create-toast-manager.ts"],"sourcesContent":["import type {\n\tToastManagerAddOptions,\n\tToastManagerPromiseOptions,\n\tToastManagerUpdateOptions,\n} from \"./use-toast-manager\";\n\nexport interface ToastManagerEvent {\n\taction: \"add\" | \"close\" | \"update\" | \"promise\";\n\toptions: {\n\t\tid?: string | undefined;\n\t\tpromise?: Promise<unknown> | undefined;\n\t\tsetPromise?: (promise: Promise<unknown>) => void;\n\t\t[key: string]: unknown;\n\t};\n}\n\n/**\n * Outside-of-component toast manager. Matches Base UI React's\n * `createToastManager` surface (`add` / `close` / `update` / `promise` +\n * the private \" subscribe\" channel the provider consumes).\n *\n * The provider subscribes to every emitted event and dispatches to the\n * store. Consumers call this manager's methods anywhere — it does not\n * depend on the Solid owner tree.\n */\nexport interface ToastManager<Data extends object = object> {\n\t\" subscribe\": (listener: (event: ToastManagerEvent) => void) => () => void;\n\tadd: (options: ToastManagerAddOptions<Data>) => string;\n\tclose: (id?: string) => void;\n\tupdate: (id: string, updates: ToastManagerUpdateOptions<Data>) => void;\n\tpromise: <Value>(\n\t\tpromise: Promise<Value>,\n\t\toptions: ToastManagerPromiseOptions<Value, Data>,\n\t) => Promise<Value>;\n}\n\nlet counter = 0;\nfunction gid(): string {\n\tcounter += 1;\n\treturn `toast-ext-${counter}-${Math.random().toString(36).slice(2, 8)}`;\n}\n\n/**\n * Create a standalone toast manager. Pass the returned object to\n * `<Toast.Provider toastManager={...}>` so its events flow into the\n * provider's store.\n */\nexport function createToastManager<\n\tData extends object = object,\n>(): ToastManager<Data> {\n\tconst listeners = new Set<(event: ToastManagerEvent) => void>();\n\n\tfunction emit(event: ToastManagerEvent): void {\n\t\tfor (const listener of listeners) listener(event);\n\t}\n\n\treturn {\n\t\t\" subscribe\": (listener) => {\n\t\t\tlisteners.add(listener);\n\t\t\treturn () => {\n\t\t\t\tlisteners.delete(listener);\n\t\t\t};\n\t\t},\n\t\tadd(options) {\n\t\t\tconst id = options.id ?? gid();\n\t\t\temit({\n\t\t\t\taction: \"add\",\n\t\t\t\toptions: {\n\t\t\t\t\t...options,\n\t\t\t\t\tid,\n\t\t\t\t\ttransitionStatus: \"starting\",\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn id;\n\t\t},\n\t\tclose(id) {\n\t\t\temit({ action: \"close\", options: { id } });\n\t\t},\n\t\tupdate(id, updates) {\n\t\t\temit({\n\t\t\t\taction: \"update\",\n\t\t\t\toptions: { ...updates, id },\n\t\t\t});\n\t\t},\n\t\tpromise(promiseValue, options) {\n\t\t\tlet handled: Promise<unknown> = promiseValue;\n\t\t\temit({\n\t\t\t\taction: \"promise\",\n\t\t\t\toptions: {\n\t\t\t\t\t...options,\n\t\t\t\t\tpromise: promiseValue,\n\t\t\t\t\tsetPromise(p: Promise<unknown>) {\n\t\t\t\t\t\thandled = p;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn handled as typeof promiseValue;\n\t\t},\n\t};\n}\n"],"mappings":"AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA,IAAIA,OAAO,GAAG,CAAC;AACf,SAASC,GAAGA,CAAA,EAAW;EACtBD,OAAO,IAAI,CAAC;EACZ,OAAO,aAAaA,OAAO,IAAIE,IAAI,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAA,EAEV;EACvB,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAqC,CAAC;EAE/D,SAASC,IAAIA,CAACC,KAAwB,EAAQ;IAC7C,KAAK,MAAMC,QAAQ,IAAIJ,SAAS,EAAEI,QAAQ,CAACD,KAAK,CAAC;EAClD;EAEA,OAAO;IACN,YAAY,EAAGC,QAAQ,IAAK;MAC3BJ,SAAS,CAACK,GAAG,CAACD,QAAQ,CAAC;MACvB,OAAO,MAAM;QACZJ,SAAS,CAACM,MAAM,CAACF,QAAQ,CAAC;MAC3B,CAAC;IACF,CAAC;IACDC,GAAGA,CAACE,OAAO,EAAE;MACZ,MAAMC,EAAE,GAAGD,OAAO,CAACC,EAAE,IAAId,GAAG,CAAC,CAAC;MAC9BQ,IAAI,CAAC;QACJO,MAAM,EAAE,KAAK;QACbF,OAAO,EAAE;UACR,GAAGA,OAAO;UACVC,EAAE;UACFE,gBAAgB,EAAE;QACnB;MACD,CAAC,CAAC;MACF,OAAOF,EAAE;IACV,CAAC;IACDG,KAAKA,CAACH,EAAE,EAAE;MACTN,IAAI,CAAC;QAAEO,MAAM,EAAE,OAAO;QAAEF,OAAO,EAAE;UAAEC;QAAG;MAAE,CAAC,CAAC;IAC3C,CAAC;IACDI,MAAMA,CAACJ,EAAE,EAAEK,OAAO,EAAE;MACnBX,IAAI,CAAC;QACJO,MAAM,EAAE,QAAQ;QAChBF,OAAO,EAAE;UAAE,GAAGM,OAAO;UAAEL;QAAG;MAC3B,CAAC,CAAC;IACH,CAAC;IACDM,OAAOA,CAACC,YAAY,EAAER,OAAO,EAAE;MAC9B,IAAIS,OAAyB,GAAGD,YAAY;MAC5Cb,IAAI,CAAC;QACJO,MAAM,EAAE,SAAS;QACjBF,OAAO,EAAE;UACR,GAAGA,OAAO;UACVO,OAAO,EAAEC,YAAY;UACrBE,UAAUA,CAACC,CAAmB,EAAE;YAC/BF,OAAO,GAAGE,CAAC;UACZ;QACD;MACD,CAAC,CAAC;MACF,OAAOF,OAAO;IACf;EACD,CAAC;AACF","ignoreList":[]}