{"version":3,"names":["REASONS","none","triggerPress","triggerHover","triggerFocus","outsidePress","itemPress","closePress","linkPress","clearPress","chipRemovePress","trackPress","incrementPress","decrementPress","inputChange","inputClear","inputBlur","inputPaste","inputPress","focusOut","escapeKey","closeWatcher","listNavigation","keyboard","pointer","drag","swipe","wheel","scrub","cancelOpen","siblingOpen","disabled","imperativeAction","windowResize","EMPTY_CUSTOM","Object","freeze","createChangeEventDetails","reason","event","trigger","customProperties","canceled","allowPropagation","custom","details","Event","cancel","isCanceled","isPropagationAllowed","createGenericEventDetails"],"sources":["change-event-details.ts"],"sourcesContent":["/**\n * Constants for every `reason` string carried on Base UI change-event details.\n * Mirrors the React Base UI `REASONS` namespace.\n */\nexport const REASONS = {\n\tnone: \"none\",\n\n\ttriggerPress: \"trigger-press\",\n\ttriggerHover: \"trigger-hover\",\n\ttriggerFocus: \"trigger-focus\",\n\n\toutsidePress: \"outside-press\",\n\titemPress: \"item-press\",\n\tclosePress: \"close-press\",\n\tlinkPress: \"link-press\",\n\tclearPress: \"clear-press\",\n\tchipRemovePress: \"chip-remove-press\",\n\ttrackPress: \"track-press\",\n\tincrementPress: \"increment-press\",\n\tdecrementPress: \"decrement-press\",\n\n\tinputChange: \"input-change\",\n\tinputClear: \"input-clear\",\n\tinputBlur: \"input-blur\",\n\tinputPaste: \"input-paste\",\n\tinputPress: \"input-press\",\n\n\tfocusOut: \"focus-out\",\n\tescapeKey: \"escape-key\",\n\tcloseWatcher: \"close-watcher\",\n\tlistNavigation: \"list-navigation\",\n\tkeyboard: \"keyboard\",\n\n\tpointer: \"pointer\",\n\tdrag: \"drag\",\n\tswipe: \"swipe\",\n\twheel: \"wheel\",\n\tscrub: \"scrub\",\n\n\tcancelOpen: \"cancel-open\",\n\tsiblingOpen: \"sibling-open\",\n\tdisabled: \"disabled\",\n\timperativeAction: \"imperative-action\",\n\n\twindowResize: \"window-resize\",\n} as const;\n\nexport type BaseUIEventReasons = typeof REASONS;\nexport type BaseUIEventReason = BaseUIEventReasons[keyof BaseUIEventReasons];\n\ninterface ReasonToEventMap {\n\t[REASONS.none]: Event;\n\n\t[REASONS.triggerPress]:\n\t\t| MouseEvent\n\t\t| PointerEvent\n\t\t| TouchEvent\n\t\t| KeyboardEvent;\n\t[REASONS.triggerHover]: MouseEvent;\n\t[REASONS.triggerFocus]: FocusEvent;\n\n\t[REASONS.outsidePress]: MouseEvent | PointerEvent | TouchEvent;\n\t[REASONS.itemPress]: MouseEvent | KeyboardEvent | PointerEvent;\n\t[REASONS.closePress]: MouseEvent | KeyboardEvent | PointerEvent;\n\t[REASONS.linkPress]: MouseEvent | PointerEvent;\n\t[REASONS.clearPress]: PointerEvent | MouseEvent | KeyboardEvent;\n\t[REASONS.chipRemovePress]: PointerEvent | MouseEvent | KeyboardEvent;\n\t[REASONS.trackPress]: PointerEvent | MouseEvent | TouchEvent;\n\t[REASONS.incrementPress]: PointerEvent | MouseEvent | TouchEvent;\n\t[REASONS.decrementPress]: PointerEvent | MouseEvent | TouchEvent;\n\n\t[REASONS.inputChange]: InputEvent | Event;\n\t[REASONS.inputClear]: InputEvent | FocusEvent | Event;\n\t[REASONS.inputBlur]: FocusEvent;\n\t[REASONS.inputPaste]: ClipboardEvent;\n\t[REASONS.inputPress]: MouseEvent | PointerEvent | TouchEvent | KeyboardEvent;\n\n\t[REASONS.focusOut]: FocusEvent | KeyboardEvent;\n\t[REASONS.escapeKey]: KeyboardEvent;\n\t[REASONS.closeWatcher]: Event;\n\t[REASONS.listNavigation]: KeyboardEvent;\n\t[REASONS.keyboard]: KeyboardEvent;\n\n\t[REASONS.pointer]: PointerEvent;\n\t[REASONS.drag]: PointerEvent | TouchEvent;\n\t[REASONS.swipe]: PointerEvent | TouchEvent;\n\t[REASONS.wheel]: WheelEvent;\n\t[REASONS.scrub]: PointerEvent;\n\n\t[REASONS.cancelOpen]: MouseEvent;\n\t[REASONS.siblingOpen]: Event;\n\t[REASONS.disabled]: Event;\n\t[REASONS.imperativeAction]: Event;\n\n\t[REASONS.windowResize]: UIEvent;\n}\n\n/**\n * Maps a change `reason` string to its corresponding native event type.\n */\nexport type ReasonToEvent<Reason extends string> =\n\tReason extends keyof ReasonToEventMap ? ReasonToEventMap[Reason] : Event;\n\ntype BaseUIChangeEventDetail<Reason extends string, Custom extends object> = {\n\t/** Reason the event fired. */\n\treason: Reason;\n\t/** Underlying native event. */\n\tevent: ReasonToEvent<Reason>;\n\t/** Prevent Base UI's internal handling of the event. */\n\tcancel: () => void;\n\t/**\n\t * Allow event propagation in cases where Base UI would otherwise stop it.\n\t */\n\tallowPropagation: () => void;\n\t/** `true` once `cancel()` has been called. */\n\treadonly isCanceled: boolean;\n\t/** `true` once `allowPropagation()` has been called. */\n\treadonly isPropagationAllowed: boolean;\n\t/** The element that triggered the event, if any. */\n\ttrigger: Element | undefined;\n} & Custom;\n\n/**\n * The \"details\" object passed as the second argument of every `onXChange`\n * callback in Base UI.\n */\nexport type BaseUIChangeEventDetails<\n\tReason extends string,\n\tCustom extends object = object,\n> = Reason extends string ? BaseUIChangeEventDetail<Reason, Custom> : never;\n\ntype BaseUIGenericEventDetail<Reason extends string, Custom extends object> = {\n\treason: Reason;\n\tevent: ReasonToEvent<Reason>;\n} & Custom;\n\nexport type BaseUIGenericEventDetails<\n\tReason extends string,\n\tCustom extends object = object,\n> = Reason extends string ? BaseUIGenericEventDetail<Reason, Custom> : never;\n\nconst EMPTY_CUSTOM: object = Object.freeze({});\n\n/**\n * Create a change-event details object with `cancel`/`allowPropagation`\n * utilities and their read-only observers.\n *\n * Plain value factory — not reactive, safe to call in event handlers.\n */\nexport function createChangeEventDetails<\n\tReason extends string,\n\tCustom extends object = object,\n>(\n\treason: Reason,\n\tevent?: ReasonToEvent<Reason>,\n\ttrigger?: HTMLElement,\n\tcustomProperties?: Custom,\n): BaseUIChangeEventDetails<Reason, Custom> {\n\tlet canceled = false;\n\tlet allowPropagation = false;\n\tconst custom = customProperties ?? (EMPTY_CUSTOM as Custom);\n\tconst details: BaseUIChangeEventDetail<Reason, Custom> = {\n\t\treason,\n\t\tevent: (event ?? new Event(\"base-ui\")) as ReasonToEvent<Reason>,\n\t\tcancel() {\n\t\t\tcanceled = true;\n\t\t},\n\t\tallowPropagation() {\n\t\t\tallowPropagation = true;\n\t\t},\n\t\tget isCanceled() {\n\t\t\treturn canceled;\n\t\t},\n\t\tget isPropagationAllowed() {\n\t\t\treturn allowPropagation;\n\t\t},\n\t\ttrigger,\n\t\t...custom,\n\t};\n\treturn details as BaseUIChangeEventDetails<Reason, Custom>;\n}\n\n/**\n * Create a \"generic\" (non-cancelable) event details object. Useful for\n * notification-style events where the consumer cannot influence the flow.\n */\nexport function createGenericEventDetails<\n\tReason extends keyof ReasonToEventMap,\n\tCustom extends object = object,\n>(\n\treason: Reason,\n\tevent?: ReasonToEvent<Reason>,\n\tcustomProperties?: Custom,\n): BaseUIGenericEventDetails<Reason, Custom> {\n\tconst custom = customProperties ?? (EMPTY_CUSTOM as Custom);\n\tconst details: BaseUIGenericEventDetail<Reason, Custom> = {\n\t\treason,\n\t\tevent: (event ?? new Event(\"base-ui\")) as ReasonToEvent<Reason>,\n\t\t...custom,\n\t};\n\treturn details as BaseUIGenericEventDetails<Reason, Custom>;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA,OAAO,MAAMA,OAAO,GAAG;EACtBC,IAAI,EAAE,MAAM;EAEZC,YAAY,EAAE,eAAe;EAC7BC,YAAY,EAAE,eAAe;EAC7BC,YAAY,EAAE,eAAe;EAE7BC,YAAY,EAAE,eAAe;EAC7BC,SAAS,EAAE,YAAY;EACvBC,UAAU,EAAE,aAAa;EACzBC,SAAS,EAAE,YAAY;EACvBC,UAAU,EAAE,aAAa;EACzBC,eAAe,EAAE,mBAAmB;EACpCC,UAAU,EAAE,aAAa;EACzBC,cAAc,EAAE,iBAAiB;EACjCC,cAAc,EAAE,iBAAiB;EAEjCC,WAAW,EAAE,cAAc;EAC3BC,UAAU,EAAE,aAAa;EACzBC,SAAS,EAAE,YAAY;EACvBC,UAAU,EAAE,aAAa;EACzBC,UAAU,EAAE,aAAa;EAEzBC,QAAQ,EAAE,WAAW;EACrBC,SAAS,EAAE,YAAY;EACvBC,YAAY,EAAE,eAAe;EAC7BC,cAAc,EAAE,iBAAiB;EACjCC,QAAQ,EAAE,UAAU;EAEpBC,OAAO,EAAE,SAAS;EAClBC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE,OAAO;EAEdC,UAAU,EAAE,aAAa;EACzBC,WAAW,EAAE,cAAc;EAC3BC,QAAQ,EAAE,UAAU;EACpBC,gBAAgB,EAAE,mBAAmB;EAErCC,YAAY,EAAE;AACf,CAAU;;AAoDV;AACA;AACA;;AAuBA;AACA;AACA;AACA;;AAgBA,MAAMC,YAAoB,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,wBAAwBA,CAIvCC,MAAc,EACdC,KAA6B,EAC7BC,OAAqB,EACrBC,gBAAyB,EACkB;EAC3C,IAAIC,QAAQ,GAAG,KAAK;EACpB,IAAIC,gBAAgB,GAAG,KAAK;EAC5B,MAAMC,MAAM,GAAGH,gBAAgB,IAAKP,YAAuB;EAC3D,MAAMW,OAAgD,GAAG;IACxDP,MAAM;IACNC,KAAK,EAAGA,KAAK,IAAI,IAAIO,KAAK,CAAC,SAAS,CAA2B;IAC/DC,MAAMA,CAAA,EAAG;MACRL,QAAQ,GAAG,IAAI;IAChB,CAAC;IACDC,gBAAgBA,CAAA,EAAG;MAClBA,gBAAgB,GAAG,IAAI;IACxB,CAAC;IACD,IAAIK,UAAUA,CAAA,EAAG;MAChB,OAAON,QAAQ;IAChB,CAAC;IACD,IAAIO,oBAAoBA,CAAA,EAAG;MAC1B,OAAON,gBAAgB;IACxB,CAAC;IACDH,OAAO;IACP,GAAGI;EACJ,CAAC;EACD,OAAOC,OAAO;AACf;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASK,yBAAyBA,CAIxCZ,MAAc,EACdC,KAA6B,EAC7BE,gBAAyB,EACmB;EAC5C,MAAMG,MAAM,GAAGH,gBAAgB,IAAKP,YAAuB;EAC3D,MAAMW,OAAiD,GAAG;IACzDP,MAAM;IACNC,KAAK,EAAGA,KAAK,IAAI,IAAIO,KAAK,CAAC,SAAS,CAA2B;IAC/D,GAAGF;EACJ,CAAC;EACD,OAAOC,OAAO;AACf","ignoreList":[]}