{"version":3,"names":["useDialogRootContext","useDialogRootInternal","createControlledState","FloatingTree","useFloatingParentNodeId","readOption","createAlertDialog","AlertDialogRootComponent","props","resolvedOpen","setUncontrolledOpen","controlled","open","undefined","Boolean","default","defaultOpen","fallback","name","state","alertDialogPrimitive","role","api","modal","disablePointerDismissal","AlertDialogRoot"],"sources":["alert-dialog-root.tsx"],"sourcesContent":["import type { JSX } from \"@solidjs/web\";\n/**\n * `<AlertDialog.Root>` — Solid 2 port of Base UI React's `AlertDialogRoot`\n * (`packages/react/src/alert-dialog/root/AlertDialogRoot.tsx`). Shares the\n * shared `useDialogRootInternal` helper with `<Dialog.Root>`; pins\n * `modal: true`, `disablePointerDismissal: true`, and `role:\n * \"alertdialog\"`.\n */\n\nimport {\n\ttype DialogRootChangeEventDetails,\n\ttype DialogRootChangeEventReason,\n\tuseDialogRootContext,\n} from \"../../dialog/dialog-root-context\";\nimport {\n\ttype DialogPayloadChildRenderFunction,\n\tuseDialogRootInternal,\n} from \"../../dialog/root/use-dialog-root-internal\";\nimport { createControlledState } from \"../../internals/create-controlled-state\";\nimport {\n\tFloatingTree,\n\tuseFloatingParentNodeId,\n} from \"../../internals/floating-ui/components/floating-tree\";\nimport { type MaybeAccessor, readOption } from \"../../internals/maybe-accessor\";\nimport { createAlertDialog } from \"../create-alert-dialog\";\nimport type { AlertDialogHandle } from \"../handle\";\n\nexport type AlertDialogRootChangeEventDetails = DialogRootChangeEventDetails;\nexport type AlertDialogRootChangeEventReason = DialogRootChangeEventReason;\nexport type AlertDialogPayloadChildRenderFunction<Payload> =\n\tDialogPayloadChildRenderFunction<Payload>;\n\n/** Imperative actions surface written into `actionsRef`. */\nexport interface AlertDialogRootActions {\n\tclose: () => void;\n\tunmount: () => void;\n}\n\nexport interface AlertDialogRootProps<Payload = unknown> {\n\t/**\n\t * Controlled open state. When provided (resolved value not\n\t * `undefined`), the consumer owns the state — pair with\n\t * {@link onOpenChange}. When omitted, the alert dialog manages its own\n\t * open state (seeded from {@link defaultOpen}).\n\t */\n\topen?: MaybeAccessor<boolean | undefined>;\n\t/**\n\t * Initial open state when uncontrolled. Read once at mount.\n\t * @default false\n\t */\n\tdefaultOpen?: MaybeAccessor<boolean | undefined>;\n\t/** Fires on every open/close request. */\n\tonOpenChange?:\n\t\t| ((open: boolean, eventDetails: AlertDialogRootChangeEventDetails) => void)\n\t\t| undefined;\n\t/**\n\t * Fires once the open/close transition has settled.\n\t */\n\tonOpenChangeComplete?: ((open: boolean) => void) | undefined;\n\t/**\n\t * Ref (callback or `{ current }`) that receives the imperative actions\n\t * object on mount.\n\t */\n\tactionsRef?:\n\t\t| ((actions: AlertDialogRootActions | null) => void)\n\t\t| { current: AlertDialogRootActions | null }\n\t\t| undefined;\n\t/**\n\t * Handle to connect with detached triggers or to control the dialog\n\t * imperatively.\n\t */\n\thandle?: AlertDialogHandle<Payload> | undefined;\n\t/** Controlled active trigger id (multi-trigger setups). */\n\ttriggerId?: string | null | undefined;\n\t/**\n\t * Children — plain JSX or `({ payload }) => JSX.Element` render\n\t * function.\n\t */\n\tchildren?: JSX.Element | AlertDialogPayloadChildRenderFunction<Payload>;\n}\n\nfunction AlertDialogRootComponent<Payload>(\n\tprops: AlertDialogRootProps<Payload>,\n): JSX.Element {\n\t// Compose the headless AlertDialog primitive — pins `modal: true` and\n\t// `disablePointerDismissal: true` as fixed invariants of the\n\t// `alertdialog` role. The wrapper layers floating-UI, focus trap,\n\t// scroll lock, portal, and animation on top. `onOpenChange` is NOT\n\t// wired into the primitive — the wrapper's own `setOpen` is the sole\n\t// writer so it can thread reason/event details through the full\n\t// floating-UI pipeline.\n\t// Controlled / uncontrolled open state (Base UI `open` / `defaultOpen`\n\t// contract) — see `<Dialog.Root>` for the reference wiring.\n\tconst [resolvedOpen, setUncontrolledOpen] = createControlledState<boolean>({\n\t\tcontrolled: () => {\n\t\t\tconst controlled = readOption(props.open);\n\t\t\treturn controlled === undefined ? undefined : Boolean(controlled);\n\t\t},\n\t\tdefault: () => readOption(props.defaultOpen),\n\t\tfallback: false,\n\t\tname: \"<AlertDialog.Root>\",\n\t\tstate: \"open\",\n\t});\n\n\tconst alertDialogPrimitive = createAlertDialog({\n\t\topen: resolvedOpen,\n\t});\n\n\treturn useDialogRootInternal<Payload>(props, {\n\t\trole: \"alertdialog\",\n\t\t// AlertDialog's primitive surfaces `modal` and\n\t\t// `disablePointerDismissal` as literal `true` (fixed invariants).\n\t\t// Adapt to `DialogRootInternalApi`'s accessor shape.\n\t\tapi: {\n\t\t\topen: alertDialogPrimitive.open,\n\t\t\tmodal: () => alertDialogPrimitive.modal,\n\t\t\tdisablePointerDismissal: () =>\n\t\t\t\talertDialogPrimitive.disablePointerDismissal,\n\t\t},\n\t\tsetUncontrolledOpen,\n\t});\n}\n\n/**\n * Groups all parts of the alert dialog. Doesn't render its own HTML\n * element.\n */\nexport function AlertDialogRoot<Payload = unknown>(\n\tprops: AlertDialogRootProps<Payload>,\n): JSX.Element {\n\tif (useDialogRootContext(true) != null || useFloatingParentNodeId() != null) {\n\t\treturn <AlertDialogRootComponent {...props} />;\n\t}\n\treturn (\n\t\t<FloatingTree>\n\t\t\t<AlertDialogRootComponent {...props} />\n\t\t</FloatingTree>\n\t);\n}\n"],"mappings":"AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAGCA,oBAAoB,QACd,kCAAkC;AACzC,SAECC,qBAAqB,QACf,4CAA4C;AACnD,SAASC,qBAAqB,QAAQ,yCAAyC;AAC/E,SACCC,YAAY,EACZC,uBAAuB,QACjB,sDAAsD;AAC7D,SAA6BC,UAAU,QAAQ,gCAAgC;AAC/E,SAASC,iBAAiB,QAAQ,wBAAwB;;AAQ1D;;AAiDA,SAASC,wBAAwBA,CAChCC,KAAoC,EACtB;EACd;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM,CAACC,YAAY,EAAEC,mBAAmB,CAAC,GAAGR,qBAAqB,CAAU;IAC1ES,UAAU,EAAEA,CAAA,KAAM;MACjB,MAAMA,UAAU,GAAGN,UAAU,CAACG,KAAK,CAACI,IAAI,CAAC;MACzC,OAAOD,UAAU,KAAKE,SAAS,GAAGA,SAAS,GAAGC,OAAO,CAACH,UAAU,CAAC;IAClE,CAAC;IACDI,OAAO,EAAEA,CAAA,KAAMV,UAAU,CAACG,KAAK,CAACQ,WAAW,CAAC;IAC5CC,QAAQ,EAAE,KAAK;IACfC,IAAI,EAAE,oBAAoB;IAC1BC,KAAK,EAAE;EACR,CAAC,CAAC;EAEF,MAAMC,oBAAoB,GAAGd,iBAAiB,CAAC;IAC9CM,IAAI,EAAEH;EACP,CAAC,CAAC;EAEF,OAAOR,qBAAqB,CAAUO,KAAK,EAAE;IAC5Ca,IAAI,EAAE,aAAa;IACnB;IACA;IACA;IACAC,GAAG,EAAE;MACJV,IAAI,EAAEQ,oBAAoB,CAACR,IAAI;MAC/BW,KAAK,EAAEA,CAAA,KAAMH,oBAAoB,CAACG,KAAK;MACvCC,uBAAuB,EAAEA,CAAA,KACxBJ,oBAAoB,CAACI;IACvB,CAAC;IACDd;EACD,CAAC,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASe,eAAeA,CAC9BjB,KAAoC,EACtB;EACd,IAAIR,oBAAoB,CAAC,IAAI,CAAC,IAAI,IAAI,IAAII,uBAAuB,CAAC,CAAC,IAAI,IAAI,EAAE;IAC5E,OAAO,CAAC,wBAAwB,CAAC,IAAII,KAAK,CAAC,GAAG;EAC/C;EACA,OACC,CAAC,YAAY;AACf,GAAG,CAAC,wBAAwB,CAAC,IAAIA,KAAK,CAAC;AACvC,EAAE,EAAE,YAAY,CAAC;AAEjB","ignoreList":[]}