{"version":3,"names":["createChangeEventDetails","REASONS","PopupTriggerMap","PreviewCardStore","_setOpen","_open","constructor","context","triggerElements","attachSetOpen","fn","setOpenMirror","next","setOpen","details","isOpen","PreviewCardHandle","store","open","triggerId","triggerElement","getById","Error","imperativeAction","undefined","close","createPreviewCardHandle"],"sources":["preview-card-store.ts"],"sourcesContent":["/**\n * PreviewCardStore — Solid 2 port of Base UI React's `PreviewCardStore`\n * (`packages/react/src/preview-card/store/PreviewCardStore.ts`).\n *\n * Same scope as `TooltipStore` / `PopoverStore` in the Solid port: the React\n * store owns the full preview-card state machine; the Solid port keeps the\n * legacy per-root signal-based state but exposes a thin imperative surface\n * here so `PreviewCardHandle` / `actionsRef` can plug in without rewriting\n * the root.\n */\n\nimport {\n\tcreateChangeEventDetails,\n\tREASONS,\n} from \"../../internals/change-event-details\";\nimport { PopupTriggerMap } from \"../../internals/floating-ui/popup-trigger-map\";\nimport type {\n\tPreviewCardRootChangeEventDetails,\n\tPreviewCardRootChangeEventReason,\n} from \"../preview-card-root-context\";\n\nexport type PreviewCardStoreSetOpen = (\n\tnext: boolean,\n\tdetails: PreviewCardRootChangeEventDetails,\n) => void;\n\nexport class PreviewCardStore<_Payload = unknown> {\n\tpublic readonly context: { triggerElements: PopupTriggerMap };\n\n\tprivate _setOpen: PreviewCardStoreSetOpen | null = null;\n\tprivate _open = false;\n\n\tconstructor() {\n\t\tthis.context = {\n\t\t\ttriggerElements: new PopupTriggerMap(),\n\t\t};\n\t}\n\n\t/** @internal */\n\tattachSetOpen(fn: PreviewCardStoreSetOpen | null): void {\n\t\tthis._setOpen = fn;\n\t}\n\n\t/** @internal */\n\tsetOpenMirror(next: boolean): void {\n\t\tthis._open = next;\n\t}\n\n\tsetOpen(next: boolean, details: PreviewCardRootChangeEventDetails): void {\n\t\tthis._setOpen?.(next, details);\n\t}\n\n\tget isOpen(): boolean {\n\t\treturn this._open;\n\t}\n}\n\n/**\n * A handle to control a preview card imperatively and to associate detached\n * triggers with it. Mirrors React's `PreviewCardHandle`.\n */\nexport class PreviewCardHandle<Payload = unknown> {\n\t/** @internal */\n\tpublic readonly store: PreviewCardStore<Payload>;\n\n\tconstructor() {\n\t\tthis.store = new PreviewCardStore<Payload>();\n\t}\n\n\t/**\n\t * Opens the preview card against the trigger with the given `triggerId`.\n\t * The trigger must be rendered with `<PreviewCard.Trigger handle={...} id={triggerId}>`.\n\t */\n\topen(triggerId: string): void {\n\t\tconst triggerElement = this.store.context.triggerElements.getById(\n\t\t\ttriggerId,\n\t\t) as HTMLElement | undefined;\n\n\t\tif (!triggerElement) {\n\t\t\tthrow new Error(\n\t\t\t\t`Base UI: PreviewCardHandle.open: No trigger found with id \"${triggerId}\".`,\n\t\t\t);\n\t\t}\n\n\t\tthis.store.setOpen(\n\t\t\ttrue,\n\t\t\tcreateChangeEventDetails<PreviewCardRootChangeEventReason>(\n\t\t\t\tREASONS.imperativeAction as PreviewCardRootChangeEventReason,\n\t\t\t\tundefined,\n\t\t\t\ttriggerElement,\n\t\t\t) as PreviewCardRootChangeEventDetails,\n\t\t);\n\t}\n\n\t/** Closes the preview card. */\n\tclose(): void {\n\t\tthis.store.setOpen(\n\t\t\tfalse,\n\t\t\tcreateChangeEventDetails<PreviewCardRootChangeEventReason>(\n\t\t\t\tREASONS.imperativeAction as PreviewCardRootChangeEventReason,\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t) as PreviewCardRootChangeEventDetails,\n\t\t);\n\t}\n\n\t/** Whether the preview card is currently open. */\n\tget isOpen(): boolean {\n\t\treturn this.store.isOpen;\n\t}\n}\n\nexport function createPreviewCardHandle<\n\tPayload = unknown,\n>(): PreviewCardHandle<Payload> {\n\treturn new PreviewCardHandle<Payload>();\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SACCA,wBAAwB,EACxBC,OAAO,QACD,sCAAsC;AAC7C,SAASC,eAAe,QAAQ,+CAA+C;AAW/E,OAAO,MAAMC,gBAAgB,CAAqB;EAGzCC,QAAQ,GAAmC,IAAI;EAC/CC,KAAK,GAAG,KAAK;EAErBC,WAAWA,CAAA,EAAG;IACb,IAAI,CAACC,OAAO,GAAG;MACdC,eAAe,EAAE,IAAIN,eAAe,CAAC;IACtC,CAAC;EACF;;EAEA;EACAO,aAAaA,CAACC,EAAkC,EAAQ;IACvD,IAAI,CAACN,QAAQ,GAAGM,EAAE;EACnB;;EAEA;EACAC,aAAaA,CAACC,IAAa,EAAQ;IAClC,IAAI,CAACP,KAAK,GAAGO,IAAI;EAClB;EAEAC,OAAOA,CAACD,IAAa,EAAEE,OAA0C,EAAQ;IACxE,IAAI,CAACV,QAAQ,GAAGQ,IAAI,EAAEE,OAAO,CAAC;EAC/B;EAEA,IAAIC,MAAMA,CAAA,EAAY;IACrB,OAAO,IAAI,CAACV,KAAK;EAClB;AACD;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMW,iBAAiB,CAAoB;EACjD;;EAGAV,WAAWA,CAAA,EAAG;IACb,IAAI,CAACW,KAAK,GAAG,IAAId,gBAAgB,CAAU,CAAC;EAC7C;;EAEA;AACD;AACA;AACA;EACCe,IAAIA,CAACC,SAAiB,EAAQ;IAC7B,MAAMC,cAAc,GAAG,IAAI,CAACH,KAAK,CAACV,OAAO,CAACC,eAAe,CAACa,OAAO,CAChEF,SACD,CAA4B;IAE5B,IAAI,CAACC,cAAc,EAAE;MACpB,MAAM,IAAIE,KAAK,CACd,8DAA8DH,SAAS,IACxE,CAAC;IACF;IAEA,IAAI,CAACF,KAAK,CAACJ,OAAO,CACjB,IAAI,EACJb,wBAAwB,CACvBC,OAAO,CAACsB,gBAAgB,EACxBC,SAAS,EACTJ,cACD,CACD,CAAC;EACF;;EAEA;EACAK,KAAKA,CAAA,EAAS;IACb,IAAI,CAACR,KAAK,CAACJ,OAAO,CACjB,KAAK,EACLb,wBAAwB,CACvBC,OAAO,CAACsB,gBAAgB,EACxBC,SAAS,EACTA,SACD,CACD,CAAC;EACF;;EAEA;EACA,IAAIT,MAAMA,CAAA,EAAY;IACrB,OAAO,IAAI,CAACE,KAAK,CAACF,MAAM;EACzB;AACD;AAEA,OAAO,SAASW,uBAAuBA,CAAA,EAEP;EAC/B,OAAO,IAAIV,iBAAiB,CAAU,CAAC;AACxC","ignoreList":[]}