| [ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
1 var __create = Object.create; 2 var __defProp = Object.defineProperty; 3 var __getOwnPropDesc = Object.getOwnPropertyDescriptor; 4 var __getOwnPropNames = Object.getOwnPropertyNames; 5 var __getProtoOf = Object.getPrototypeOf; 6 var __hasOwnProp = Object.prototype.hasOwnProperty; 7 var __commonJS = (cb, mod) => function __require() { 8 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; 9 }; 10 var __copyProps = (to, from, except, desc) => { 11 if (from && typeof from === "object" || typeof from === "function") { 12 for (let key of __getOwnPropNames(from)) 13 if (!__hasOwnProp.call(to, key) && key !== except) 14 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); 15 } 16 return to; 17 }; 18 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( 19 // If the importer is in node compatibility mode or this is not an ESM 20 // file that has been converted to a CommonJS file using a Babel- 21 // compatible transform (i.e. "__esModule" has not been set), then set 22 // "default" to the CommonJS "module.exports" for node compatibility. 23 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, 24 mod 25 )); 26 27 // package-external:@wordpress/element 28 var require_element = __commonJS({ 29 "package-external:@wordpress/element"(exports, module) { 30 module.exports = window.wp.element; 31 } 32 }); 33 34 // vendor-external:react 35 var require_react = __commonJS({ 36 "vendor-external:react"(exports, module) { 37 module.exports = window.React; 38 } 39 }); 40 41 // vendor-external:react/jsx-runtime 42 var require_jsx_runtime = __commonJS({ 43 "vendor-external:react/jsx-runtime"(exports, module) { 44 module.exports = window.ReactJSXRuntime; 45 } 46 }); 47 48 // vendor-external:react-dom 49 var require_react_dom = __commonJS({ 50 "vendor-external:react-dom"(exports, module) { 51 module.exports = window.ReactDOM; 52 } 53 }); 54 55 // package-external:@wordpress/data 56 var require_data = __commonJS({ 57 "package-external:@wordpress/data"(exports, module) { 58 module.exports = window.wp.data; 59 } 60 }); 61 62 // package-external:@wordpress/i18n 63 var require_i18n = __commonJS({ 64 "package-external:@wordpress/i18n"(exports, module) { 65 module.exports = window.wp.i18n; 66 } 67 }); 68 69 // package-external:@wordpress/components 70 var require_components = __commonJS({ 71 "package-external:@wordpress/components"(exports, module) { 72 module.exports = window.wp.components; 73 } 74 }); 75 76 // package-external:@wordpress/keyboard-shortcuts 77 var require_keyboard_shortcuts = __commonJS({ 78 "package-external:@wordpress/keyboard-shortcuts"(exports, module) { 79 module.exports = window.wp.keyboardShortcuts; 80 } 81 }); 82 83 // package-external:@wordpress/primitives 84 var require_primitives = __commonJS({ 85 "package-external:@wordpress/primitives"(exports, module) { 86 module.exports = window.wp.primitives; 87 } 88 }); 89 90 // package-external:@wordpress/private-apis 91 var require_private_apis = __commonJS({ 92 "package-external:@wordpress/private-apis"(exports, module) { 93 module.exports = window.wp.privateApis; 94 } 95 }); 96 97 // packages/workflow/build-module/index.mjs 98 var import_element3 = __toESM(require_element(), 1); 99 100 // node_modules/cmdk/dist/chunk-NZJY6EH4.mjs 101 var U = 1; 102 var Y = 0.9; 103 var H = 0.8; 104 var J = 0.17; 105 var p = 0.1; 106 var u = 0.999; 107 var $ = 0.9999; 108 var k = 0.99; 109 var m = /[\\\/_+.#"@\[\(\{&]/; 110 var B = /[\\\/_+.#"@\[\(\{&]/g; 111 var K = /[\s-]/; 112 var X = /[\s-]/g; 113 function G(_, C, h, P2, A, f, O) { 114 if (f === C.length) return A === _.length ? U : k; 115 var T2 = `$A},$f}`; 116 if (O[T2] !== void 0) return O[T2]; 117 for (var L2 = P2.charAt(f), c = h.indexOf(L2, A), S = 0, E, N2, R, M; c >= 0; ) E = G(_, C, h, P2, c + 1, f + 1, O), E > S && (c === A ? E *= U : m.test(_.charAt(c - 1)) ? (E *= H, R = _.slice(A, c - 1).match(B), R && A > 0 && (E *= Math.pow(u, R.length))) : K.test(_.charAt(c - 1)) ? (E *= Y, M = _.slice(A, c - 1).match(X), M && A > 0 && (E *= Math.pow(u, M.length))) : (E *= J, A > 0 && (E *= Math.pow(u, c - A))), _.charAt(c) !== C.charAt(f) && (E *= $)), (E < p && h.charAt(c - 1) === P2.charAt(f + 1) || P2.charAt(f + 1) === P2.charAt(f) && h.charAt(c - 1) !== P2.charAt(f)) && (N2 = G(_, C, h, P2, c + 1, f + 2, O), N2 * p > E && (E = N2 * p)), E > S && (S = E), c = h.indexOf(L2, c + 1); 118 return O[T2] = S, S; 119 } 120 function D(_) { 121 return _.toLowerCase().replace(X, " "); 122 } 123 function W(_, C, h) { 124 return _ = h && h.length > 0 ? `$_ + " " + h.join(" ")}` : _, G(_, C, D(_), D(C), 0, 0, {}); 125 } 126 127 // node_modules/@radix-ui/react-dialog/dist/index.mjs 128 var React37 = __toESM(require_react(), 1); 129 130 // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/primitive/dist/index.mjs 131 var canUseDOM = !!(typeof window !== "undefined" && window.document && window.document.createElement); 132 function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) { 133 return function handleEvent(event) { 134 originalEventHandler?.(event); 135 if (checkForDefaultPrevented === false || !event.defaultPrevented) { 136 return ourEventHandler?.(event); 137 } 138 }; 139 } 140 141 // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-compose-refs/dist/index.mjs 142 var React = __toESM(require_react(), 1); 143 function setRef(ref, value) { 144 if (typeof ref === "function") { 145 return ref(value); 146 } else if (ref !== null && ref !== void 0) { 147 ref.current = value; 148 } 149 } 150 function composeRefs(...refs) { 151 return (node) => { 152 let hasCleanup = false; 153 const cleanups = refs.map((ref) => { 154 const cleanup = setRef(ref, node); 155 if (!hasCleanup && typeof cleanup == "function") { 156 hasCleanup = true; 157 } 158 return cleanup; 159 }); 160 if (hasCleanup) { 161 return () => { 162 for (let i = 0; i < cleanups.length; i++) { 163 const cleanup = cleanups[i]; 164 if (typeof cleanup == "function") { 165 cleanup(); 166 } else { 167 setRef(refs[i], null); 168 } 169 } 170 }; 171 } 172 }; 173 } 174 function useComposedRefs(...refs) { 175 return React.useCallback(composeRefs(...refs), refs); 176 } 177 178 // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-context/dist/index.mjs 179 var React2 = __toESM(require_react(), 1); 180 var import_jsx_runtime = __toESM(require_jsx_runtime(), 1); 181 function createContext2(rootComponentName, defaultContext) { 182 const Context = React2.createContext(defaultContext); 183 const Provider = (props) => { 184 const { children, ...context } = props; 185 const value = React2.useMemo(() => context, Object.values(context)); 186 return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Context.Provider, { value, children }); 187 }; 188 Provider.displayName = rootComponentName + "Provider"; 189 function useContext22(consumerName) { 190 const context = React2.useContext(Context); 191 if (context) return context; 192 if (defaultContext !== void 0) return defaultContext; 193 throw new Error(`\`$consumerName}\` must be used within \`$rootComponentName}\``); 194 } 195 return [Provider, useContext22]; 196 } 197 function createContextScope(scopeName, createContextScopeDeps = []) { 198 let defaultContexts = []; 199 function createContext32(rootComponentName, defaultContext) { 200 const BaseContext = React2.createContext(defaultContext); 201 const index = defaultContexts.length; 202 defaultContexts = [...defaultContexts, defaultContext]; 203 const Provider = (props) => { 204 const { scope, children, ...context } = props; 205 const Context = scope?.[scopeName]?.[index] || BaseContext; 206 const value = React2.useMemo(() => context, Object.values(context)); 207 return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Context.Provider, { value, children }); 208 }; 209 Provider.displayName = rootComponentName + "Provider"; 210 function useContext22(consumerName, scope) { 211 const Context = scope?.[scopeName]?.[index] || BaseContext; 212 const context = React2.useContext(Context); 213 if (context) return context; 214 if (defaultContext !== void 0) return defaultContext; 215 throw new Error(`\`$consumerName}\` must be used within \`$rootComponentName}\``); 216 } 217 return [Provider, useContext22]; 218 } 219 const createScope = () => { 220 const scopeContexts = defaultContexts.map((defaultContext) => { 221 return React2.createContext(defaultContext); 222 }); 223 return function useScope(scope) { 224 const contexts = scope?.[scopeName] || scopeContexts; 225 return React2.useMemo( 226 () => ({ [`__scope$scopeName}`]: { ...scope, [scopeName]: contexts } }), 227 [scope, contexts] 228 ); 229 }; 230 }; 231 createScope.scopeName = scopeName; 232 return [createContext32, composeContextScopes(createScope, ...createContextScopeDeps)]; 233 } 234 function composeContextScopes(...scopes) { 235 const baseScope = scopes[0]; 236 if (scopes.length === 1) return baseScope; 237 const createScope = () => { 238 const scopeHooks = scopes.map((createScope2) => ({ 239 useScope: createScope2(), 240 scopeName: createScope2.scopeName 241 })); 242 return function useComposedScopes(overrideScopes) { 243 const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => { 244 const scopeProps = useScope(overrideScopes); 245 const currentScope = scopeProps[`__scope$scopeName}`]; 246 return { ...nextScopes2, ...currentScope }; 247 }, {}); 248 return React2.useMemo(() => ({ [`__scope$baseScope.scopeName}`]: nextScopes }), [nextScopes]); 249 }; 250 }; 251 createScope.scopeName = baseScope.scopeName; 252 return createScope; 253 } 254 255 // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-id/dist/index.mjs 256 var React4 = __toESM(require_react(), 1); 257 258 // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs 259 var React3 = __toESM(require_react(), 1); 260 var useLayoutEffect2 = globalThis?.document ? React3.useLayoutEffect : () => { 261 }; 262 263 // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-id/dist/index.mjs 264 var useReactId = React4[" useId ".trim().toString()] || (() => void 0); 265 var count = 0; 266 function useId(deterministicId) { 267 const [id, setId] = React4.useState(useReactId()); 268 useLayoutEffect2(() => { 269 if (!deterministicId) setId((reactId) => reactId ?? String(count++)); 270 }, [deterministicId]); 271 return deterministicId || (id ? `radix-$id}` : ""); 272 } 273 274 // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs 275 var React5 = __toESM(require_react(), 1); 276 var React22 = __toESM(require_react(), 1); 277 var useInsertionEffect = React5[" useInsertionEffect ".trim().toString()] || useLayoutEffect2; 278 function useControllableState({ 279 prop, 280 defaultProp, 281 onChange = () => { 282 }, 283 caller 284 }) { 285 const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({ 286 defaultProp, 287 onChange 288 }); 289 const isControlled = prop !== void 0; 290 const value = isControlled ? prop : uncontrolledProp; 291 if (true) { 292 const isControlledRef = React5.useRef(prop !== void 0); 293 React5.useEffect(() => { 294 const wasControlled = isControlledRef.current; 295 if (wasControlled !== isControlled) { 296 const from = wasControlled ? "controlled" : "uncontrolled"; 297 const to = isControlled ? "controlled" : "uncontrolled"; 298 console.warn( 299 `$caller} is changing from $from} to $to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.` 300 ); 301 } 302 isControlledRef.current = isControlled; 303 }, [isControlled, caller]); 304 } 305 const setValue = React5.useCallback( 306 (nextValue) => { 307 if (isControlled) { 308 const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue; 309 if (value2 !== prop) { 310 onChangeRef.current?.(value2); 311 } 312 } else { 313 setUncontrolledProp(nextValue); 314 } 315 }, 316 [isControlled, prop, setUncontrolledProp, onChangeRef] 317 ); 318 return [value, setValue]; 319 } 320 function useUncontrolledState({ 321 defaultProp, 322 onChange 323 }) { 324 const [value, setValue] = React5.useState(defaultProp); 325 const prevValueRef = React5.useRef(value); 326 const onChangeRef = React5.useRef(onChange); 327 useInsertionEffect(() => { 328 onChangeRef.current = onChange; 329 }, [onChange]); 330 React5.useEffect(() => { 331 if (prevValueRef.current !== value) { 332 onChangeRef.current?.(value); 333 prevValueRef.current = value; 334 } 335 }, [value, prevValueRef]); 336 return [value, setValue, onChangeRef]; 337 } 338 function isFunction(value) { 339 return typeof value === "function"; 340 } 341 342 // node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs 343 var React11 = __toESM(require_react(), 1); 344 345 // node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/primitive/dist/index.mjs 346 var canUseDOM2 = !!(typeof window !== "undefined" && window.document && window.document.createElement); 347 function composeEventHandlers2(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) { 348 return function handleEvent(event) { 349 originalEventHandler?.(event); 350 if (checkForDefaultPrevented === false || !event.defaultPrevented) { 351 return ourEventHandler?.(event); 352 } 353 }; 354 } 355 356 // node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-primitive/dist/index.mjs 357 var React8 = __toESM(require_react(), 1); 358 var ReactDOM = __toESM(require_react_dom(), 1); 359 360 // node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-slot/dist/index.mjs 361 var React7 = __toESM(require_react(), 1); 362 363 // node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-compose-refs/dist/index.mjs 364 var React6 = __toESM(require_react(), 1); 365 function setRef2(ref, value) { 366 if (typeof ref === "function") { 367 return ref(value); 368 } else if (ref !== null && ref !== void 0) { 369 ref.current = value; 370 } 371 } 372 function composeRefs2(...refs) { 373 return (node) => { 374 let hasCleanup = false; 375 const cleanups = refs.map((ref) => { 376 const cleanup = setRef2(ref, node); 377 if (!hasCleanup && typeof cleanup == "function") { 378 hasCleanup = true; 379 } 380 return cleanup; 381 }); 382 if (hasCleanup) { 383 return () => { 384 for (let i = 0; i < cleanups.length; i++) { 385 const cleanup = cleanups[i]; 386 if (typeof cleanup == "function") { 387 cleanup(); 388 } else { 389 setRef2(refs[i], null); 390 } 391 } 392 }; 393 } 394 }; 395 } 396 function useComposedRefs2(...refs) { 397 return React6.useCallback(composeRefs2(...refs), refs); 398 } 399 400 // node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-slot/dist/index.mjs 401 var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1); 402 // @__NO_SIDE_EFFECTS__ 403 function createSlot(ownerName) { 404 const SlotClone = /* @__PURE__ */ createSlotClone(ownerName); 405 const Slot2 = React7.forwardRef((props, forwardedRef) => { 406 const { children, ...slotProps } = props; 407 const childrenArray = React7.Children.toArray(children); 408 const slottable = childrenArray.find(isSlottable); 409 if (slottable) { 410 const newElement = slottable.props.children; 411 const newChildren = childrenArray.map((child) => { 412 if (child === slottable) { 413 if (React7.Children.count(newElement) > 1) return React7.Children.only(null); 414 return React7.isValidElement(newElement) ? newElement.props.children : null; 415 } else { 416 return child; 417 } 418 }); 419 return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React7.isValidElement(newElement) ? React7.cloneElement(newElement, void 0, newChildren) : null }); 420 } 421 return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children }); 422 }); 423 Slot2.displayName = `$ownerName}.Slot`; 424 return Slot2; 425 } 426 // @__NO_SIDE_EFFECTS__ 427 function createSlotClone(ownerName) { 428 const SlotClone = React7.forwardRef((props, forwardedRef) => { 429 const { children, ...slotProps } = props; 430 if (React7.isValidElement(children)) { 431 const childrenRef = getElementRef(children); 432 const props2 = mergeProps(slotProps, children.props); 433 if (children.type !== React7.Fragment) { 434 props2.ref = forwardedRef ? composeRefs2(forwardedRef, childrenRef) : childrenRef; 435 } 436 return React7.cloneElement(children, props2); 437 } 438 return React7.Children.count(children) > 1 ? React7.Children.only(null) : null; 439 }); 440 SlotClone.displayName = `$ownerName}.SlotClone`; 441 return SlotClone; 442 } 443 var SLOTTABLE_IDENTIFIER = /* @__PURE__ */ Symbol("radix.slottable"); 444 function isSlottable(child) { 445 return React7.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER; 446 } 447 function mergeProps(slotProps, childProps) { 448 const overrideProps = { ...childProps }; 449 for (const propName in childProps) { 450 const slotPropValue = slotProps[propName]; 451 const childPropValue = childProps[propName]; 452 const isHandler = /^on[A-Z]/.test(propName); 453 if (isHandler) { 454 if (slotPropValue && childPropValue) { 455 overrideProps[propName] = (...args) => { 456 const result = childPropValue(...args); 457 slotPropValue(...args); 458 return result; 459 }; 460 } else if (slotPropValue) { 461 overrideProps[propName] = slotPropValue; 462 } 463 } else if (propName === "style") { 464 overrideProps[propName] = { ...slotPropValue, ...childPropValue }; 465 } else if (propName === "className") { 466 overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" "); 467 } 468 } 469 return { ...slotProps, ...overrideProps }; 470 } 471 function getElementRef(element) { 472 let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get; 473 let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; 474 if (mayWarn) { 475 return element.ref; 476 } 477 getter = Object.getOwnPropertyDescriptor(element, "ref")?.get; 478 mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; 479 if (mayWarn) { 480 return element.props.ref; 481 } 482 return element.props.ref || element.ref; 483 } 484 485 // node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-primitive/dist/index.mjs 486 var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1); 487 var NODES = [ 488 "a", 489 "button", 490 "div", 491 "form", 492 "h2", 493 "h3", 494 "img", 495 "input", 496 "label", 497 "li", 498 "nav", 499 "ol", 500 "p", 501 "select", 502 "span", 503 "svg", 504 "ul" 505 ]; 506 var Primitive = NODES.reduce((primitive, node) => { 507 const Slot2 = createSlot(`Primitive.$node}`); 508 const Node2 = React8.forwardRef((props, forwardedRef) => { 509 const { asChild, ...primitiveProps } = props; 510 const Comp = asChild ? Slot2 : node; 511 if (typeof window !== "undefined") { 512 window[/* @__PURE__ */ Symbol.for("radix-ui")] = true; 513 } 514 return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Comp, { ...primitiveProps, ref: forwardedRef }); 515 }); 516 Node2.displayName = `Primitive.$node}`; 517 return { ...primitive, [node]: Node2 }; 518 }, {}); 519 function dispatchDiscreteCustomEvent(target, event) { 520 if (target) ReactDOM.flushSync(() => target.dispatchEvent(event)); 521 } 522 523 // node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs 524 var React9 = __toESM(require_react(), 1); 525 function useCallbackRef(callback) { 526 const callbackRef = React9.useRef(callback); 527 React9.useEffect(() => { 528 callbackRef.current = callback; 529 }); 530 return React9.useMemo(() => (...args) => callbackRef.current?.(...args), []); 531 } 532 533 // node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs 534 var React10 = __toESM(require_react(), 1); 535 function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) { 536 const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp); 537 React10.useEffect(() => { 538 const handleKeyDown = (event) => { 539 if (event.key === "Escape") { 540 onEscapeKeyDown(event); 541 } 542 }; 543 ownerDocument.addEventListener("keydown", handleKeyDown, { capture: true }); 544 return () => ownerDocument.removeEventListener("keydown", handleKeyDown, { capture: true }); 545 }, [onEscapeKeyDown, ownerDocument]); 546 } 547 548 // node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs 549 var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1); 550 var DISMISSABLE_LAYER_NAME = "DismissableLayer"; 551 var CONTEXT_UPDATE = "dismissableLayer.update"; 552 var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside"; 553 var FOCUS_OUTSIDE = "dismissableLayer.focusOutside"; 554 var originalBodyPointerEvents; 555 var DismissableLayerContext = React11.createContext({ 556 layers: /* @__PURE__ */ new Set(), 557 layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(), 558 branches: /* @__PURE__ */ new Set() 559 }); 560 var DismissableLayer = React11.forwardRef( 561 (props, forwardedRef) => { 562 const { 563 disableOutsidePointerEvents = false, 564 onEscapeKeyDown, 565 onPointerDownOutside, 566 onFocusOutside, 567 onInteractOutside, 568 onDismiss, 569 ...layerProps 570 } = props; 571 const context = React11.useContext(DismissableLayerContext); 572 const [node, setNode] = React11.useState(null); 573 const ownerDocument = node?.ownerDocument ?? globalThis?.document; 574 const [, force] = React11.useState({}); 575 const composedRefs = useComposedRefs2(forwardedRef, (node2) => setNode(node2)); 576 const layers = Array.from(context.layers); 577 const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1); 578 const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled); 579 const index = node ? layers.indexOf(node) : -1; 580 const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0; 581 const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex; 582 const pointerDownOutside = usePointerDownOutside((event) => { 583 const target = event.target; 584 const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target)); 585 if (!isPointerEventsEnabled || isPointerDownOnBranch) return; 586 onPointerDownOutside?.(event); 587 onInteractOutside?.(event); 588 if (!event.defaultPrevented) onDismiss?.(); 589 }, ownerDocument); 590 const focusOutside = useFocusOutside((event) => { 591 const target = event.target; 592 const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target)); 593 if (isFocusInBranch) return; 594 onFocusOutside?.(event); 595 onInteractOutside?.(event); 596 if (!event.defaultPrevented) onDismiss?.(); 597 }, ownerDocument); 598 useEscapeKeydown((event) => { 599 const isHighestLayer = index === context.layers.size - 1; 600 if (!isHighestLayer) return; 601 onEscapeKeyDown?.(event); 602 if (!event.defaultPrevented && onDismiss) { 603 event.preventDefault(); 604 onDismiss(); 605 } 606 }, ownerDocument); 607 React11.useEffect(() => { 608 if (!node) return; 609 if (disableOutsidePointerEvents) { 610 if (context.layersWithOutsidePointerEventsDisabled.size === 0) { 611 originalBodyPointerEvents = ownerDocument.body.style.pointerEvents; 612 ownerDocument.body.style.pointerEvents = "none"; 613 } 614 context.layersWithOutsidePointerEventsDisabled.add(node); 615 } 616 context.layers.add(node); 617 dispatchUpdate(); 618 return () => { 619 if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) { 620 ownerDocument.body.style.pointerEvents = originalBodyPointerEvents; 621 } 622 }; 623 }, [node, ownerDocument, disableOutsidePointerEvents, context]); 624 React11.useEffect(() => { 625 return () => { 626 if (!node) return; 627 context.layers.delete(node); 628 context.layersWithOutsidePointerEventsDisabled.delete(node); 629 dispatchUpdate(); 630 }; 631 }, [node, context]); 632 React11.useEffect(() => { 633 const handleUpdate = () => force({}); 634 document.addEventListener(CONTEXT_UPDATE, handleUpdate); 635 return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate); 636 }, []); 637 return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)( 638 Primitive.div, 639 { 640 ...layerProps, 641 ref: composedRefs, 642 style: { 643 pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0, 644 ...props.style 645 }, 646 onFocusCapture: composeEventHandlers2(props.onFocusCapture, focusOutside.onFocusCapture), 647 onBlurCapture: composeEventHandlers2(props.onBlurCapture, focusOutside.onBlurCapture), 648 onPointerDownCapture: composeEventHandlers2( 649 props.onPointerDownCapture, 650 pointerDownOutside.onPointerDownCapture 651 ) 652 } 653 ); 654 } 655 ); 656 DismissableLayer.displayName = DISMISSABLE_LAYER_NAME; 657 var BRANCH_NAME = "DismissableLayerBranch"; 658 var DismissableLayerBranch = React11.forwardRef((props, forwardedRef) => { 659 const context = React11.useContext(DismissableLayerContext); 660 const ref = React11.useRef(null); 661 const composedRefs = useComposedRefs2(forwardedRef, ref); 662 React11.useEffect(() => { 663 const node = ref.current; 664 if (node) { 665 context.branches.add(node); 666 return () => { 667 context.branches.delete(node); 668 }; 669 } 670 }, [context.branches]); 671 return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Primitive.div, { ...props, ref: composedRefs }); 672 }); 673 DismissableLayerBranch.displayName = BRANCH_NAME; 674 function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) { 675 const handlePointerDownOutside = useCallbackRef(onPointerDownOutside); 676 const isPointerInsideReactTreeRef = React11.useRef(false); 677 const handleClickRef = React11.useRef(() => { 678 }); 679 React11.useEffect(() => { 680 const handlePointerDown = (event) => { 681 if (event.target && !isPointerInsideReactTreeRef.current) { 682 let handleAndDispatchPointerDownOutsideEvent2 = function() { 683 handleAndDispatchCustomEvent( 684 POINTER_DOWN_OUTSIDE, 685 handlePointerDownOutside, 686 eventDetail, 687 { discrete: true } 688 ); 689 }; 690 var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2; 691 const eventDetail = { originalEvent: event }; 692 if (event.pointerType === "touch") { 693 ownerDocument.removeEventListener("click", handleClickRef.current); 694 handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2; 695 ownerDocument.addEventListener("click", handleClickRef.current, { once: true }); 696 } else { 697 handleAndDispatchPointerDownOutsideEvent2(); 698 } 699 } else { 700 ownerDocument.removeEventListener("click", handleClickRef.current); 701 } 702 isPointerInsideReactTreeRef.current = false; 703 }; 704 const timerId = window.setTimeout(() => { 705 ownerDocument.addEventListener("pointerdown", handlePointerDown); 706 }, 0); 707 return () => { 708 window.clearTimeout(timerId); 709 ownerDocument.removeEventListener("pointerdown", handlePointerDown); 710 ownerDocument.removeEventListener("click", handleClickRef.current); 711 }; 712 }, [ownerDocument, handlePointerDownOutside]); 713 return { 714 // ensures we check React component tree (not just DOM tree) 715 onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true 716 }; 717 } 718 function useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) { 719 const handleFocusOutside = useCallbackRef(onFocusOutside); 720 const isFocusInsideReactTreeRef = React11.useRef(false); 721 React11.useEffect(() => { 722 const handleFocus = (event) => { 723 if (event.target && !isFocusInsideReactTreeRef.current) { 724 const eventDetail = { originalEvent: event }; 725 handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, { 726 discrete: false 727 }); 728 } 729 }; 730 ownerDocument.addEventListener("focusin", handleFocus); 731 return () => ownerDocument.removeEventListener("focusin", handleFocus); 732 }, [ownerDocument, handleFocusOutside]); 733 return { 734 onFocusCapture: () => isFocusInsideReactTreeRef.current = true, 735 onBlurCapture: () => isFocusInsideReactTreeRef.current = false 736 }; 737 } 738 function dispatchUpdate() { 739 const event = new CustomEvent(CONTEXT_UPDATE); 740 document.dispatchEvent(event); 741 } 742 function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) { 743 const target = detail.originalEvent.target; 744 const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail }); 745 if (handler) target.addEventListener(name, handler, { once: true }); 746 if (discrete) { 747 dispatchDiscreteCustomEvent(target, event); 748 } else { 749 target.dispatchEvent(event); 750 } 751 } 752 753 // node_modules/@radix-ui/react-focus-scope/dist/index.mjs 754 var React16 = __toESM(require_react(), 1); 755 756 // node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-compose-refs/dist/index.mjs 757 var React12 = __toESM(require_react(), 1); 758 function setRef3(ref, value) { 759 if (typeof ref === "function") { 760 return ref(value); 761 } else if (ref !== null && ref !== void 0) { 762 ref.current = value; 763 } 764 } 765 function composeRefs3(...refs) { 766 return (node) => { 767 let hasCleanup = false; 768 const cleanups = refs.map((ref) => { 769 const cleanup = setRef3(ref, node); 770 if (!hasCleanup && typeof cleanup == "function") { 771 hasCleanup = true; 772 } 773 return cleanup; 774 }); 775 if (hasCleanup) { 776 return () => { 777 for (let i = 0; i < cleanups.length; i++) { 778 const cleanup = cleanups[i]; 779 if (typeof cleanup == "function") { 780 cleanup(); 781 } else { 782 setRef3(refs[i], null); 783 } 784 } 785 }; 786 } 787 }; 788 } 789 function useComposedRefs3(...refs) { 790 return React12.useCallback(composeRefs3(...refs), refs); 791 } 792 793 // node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-primitive/dist/index.mjs 794 var React14 = __toESM(require_react(), 1); 795 var ReactDOM2 = __toESM(require_react_dom(), 1); 796 797 // node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-slot/dist/index.mjs 798 var React13 = __toESM(require_react(), 1); 799 var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1); 800 // @__NO_SIDE_EFFECTS__ 801 function createSlot2(ownerName) { 802 const SlotClone = /* @__PURE__ */ createSlotClone2(ownerName); 803 const Slot2 = React13.forwardRef((props, forwardedRef) => { 804 const { children, ...slotProps } = props; 805 const childrenArray = React13.Children.toArray(children); 806 const slottable = childrenArray.find(isSlottable2); 807 if (slottable) { 808 const newElement = slottable.props.children; 809 const newChildren = childrenArray.map((child) => { 810 if (child === slottable) { 811 if (React13.Children.count(newElement) > 1) return React13.Children.only(null); 812 return React13.isValidElement(newElement) ? newElement.props.children : null; 813 } else { 814 return child; 815 } 816 }); 817 return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React13.isValidElement(newElement) ? React13.cloneElement(newElement, void 0, newChildren) : null }); 818 } 819 return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children }); 820 }); 821 Slot2.displayName = `$ownerName}.Slot`; 822 return Slot2; 823 } 824 // @__NO_SIDE_EFFECTS__ 825 function createSlotClone2(ownerName) { 826 const SlotClone = React13.forwardRef((props, forwardedRef) => { 827 const { children, ...slotProps } = props; 828 if (React13.isValidElement(children)) { 829 const childrenRef = getElementRef2(children); 830 const props2 = mergeProps2(slotProps, children.props); 831 if (children.type !== React13.Fragment) { 832 props2.ref = forwardedRef ? composeRefs3(forwardedRef, childrenRef) : childrenRef; 833 } 834 return React13.cloneElement(children, props2); 835 } 836 return React13.Children.count(children) > 1 ? React13.Children.only(null) : null; 837 }); 838 SlotClone.displayName = `$ownerName}.SlotClone`; 839 return SlotClone; 840 } 841 var SLOTTABLE_IDENTIFIER2 = /* @__PURE__ */ Symbol("radix.slottable"); 842 function isSlottable2(child) { 843 return React13.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER2; 844 } 845 function mergeProps2(slotProps, childProps) { 846 const overrideProps = { ...childProps }; 847 for (const propName in childProps) { 848 const slotPropValue = slotProps[propName]; 849 const childPropValue = childProps[propName]; 850 const isHandler = /^on[A-Z]/.test(propName); 851 if (isHandler) { 852 if (slotPropValue && childPropValue) { 853 overrideProps[propName] = (...args) => { 854 const result = childPropValue(...args); 855 slotPropValue(...args); 856 return result; 857 }; 858 } else if (slotPropValue) { 859 overrideProps[propName] = slotPropValue; 860 } 861 } else if (propName === "style") { 862 overrideProps[propName] = { ...slotPropValue, ...childPropValue }; 863 } else if (propName === "className") { 864 overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" "); 865 } 866 } 867 return { ...slotProps, ...overrideProps }; 868 } 869 function getElementRef2(element) { 870 let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get; 871 let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; 872 if (mayWarn) { 873 return element.ref; 874 } 875 getter = Object.getOwnPropertyDescriptor(element, "ref")?.get; 876 mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; 877 if (mayWarn) { 878 return element.props.ref; 879 } 880 return element.props.ref || element.ref; 881 } 882 883 // node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-primitive/dist/index.mjs 884 var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1); 885 var NODES2 = [ 886 "a", 887 "button", 888 "div", 889 "form", 890 "h2", 891 "h3", 892 "img", 893 "input", 894 "label", 895 "li", 896 "nav", 897 "ol", 898 "p", 899 "select", 900 "span", 901 "svg", 902 "ul" 903 ]; 904 var Primitive2 = NODES2.reduce((primitive, node) => { 905 const Slot2 = createSlot2(`Primitive.$node}`); 906 const Node2 = React14.forwardRef((props, forwardedRef) => { 907 const { asChild, ...primitiveProps } = props; 908 const Comp = asChild ? Slot2 : node; 909 if (typeof window !== "undefined") { 910 window[/* @__PURE__ */ Symbol.for("radix-ui")] = true; 911 } 912 return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Comp, { ...primitiveProps, ref: forwardedRef }); 913 }); 914 Node2.displayName = `Primitive.$node}`; 915 return { ...primitive, [node]: Node2 }; 916 }, {}); 917 918 // node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs 919 var React15 = __toESM(require_react(), 1); 920 function useCallbackRef2(callback) { 921 const callbackRef = React15.useRef(callback); 922 React15.useEffect(() => { 923 callbackRef.current = callback; 924 }); 925 return React15.useMemo(() => (...args) => callbackRef.current?.(...args), []); 926 } 927 928 // node_modules/@radix-ui/react-focus-scope/dist/index.mjs 929 var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1); 930 var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount"; 931 var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount"; 932 var EVENT_OPTIONS = { bubbles: false, cancelable: true }; 933 var FOCUS_SCOPE_NAME = "FocusScope"; 934 var FocusScope = React16.forwardRef((props, forwardedRef) => { 935 const { 936 loop = false, 937 trapped = false, 938 onMountAutoFocus: onMountAutoFocusProp, 939 onUnmountAutoFocus: onUnmountAutoFocusProp, 940 ...scopeProps 941 } = props; 942 const [container, setContainer] = React16.useState(null); 943 const onMountAutoFocus = useCallbackRef2(onMountAutoFocusProp); 944 const onUnmountAutoFocus = useCallbackRef2(onUnmountAutoFocusProp); 945 const lastFocusedElementRef = React16.useRef(null); 946 const composedRefs = useComposedRefs3(forwardedRef, (node) => setContainer(node)); 947 const focusScope = React16.useRef({ 948 paused: false, 949 pause() { 950 this.paused = true; 951 }, 952 resume() { 953 this.paused = false; 954 } 955 }).current; 956 React16.useEffect(() => { 957 if (trapped) { 958 let handleFocusIn2 = function(event) { 959 if (focusScope.paused || !container) return; 960 const target = event.target; 961 if (container.contains(target)) { 962 lastFocusedElementRef.current = target; 963 } else { 964 focus(lastFocusedElementRef.current, { select: true }); 965 } 966 }, handleFocusOut2 = function(event) { 967 if (focusScope.paused || !container) return; 968 const relatedTarget = event.relatedTarget; 969 if (relatedTarget === null) return; 970 if (!container.contains(relatedTarget)) { 971 focus(lastFocusedElementRef.current, { select: true }); 972 } 973 }, handleMutations2 = function(mutations) { 974 const focusedElement = document.activeElement; 975 if (focusedElement !== document.body) return; 976 for (const mutation of mutations) { 977 if (mutation.removedNodes.length > 0) focus(container); 978 } 979 }; 980 var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2; 981 document.addEventListener("focusin", handleFocusIn2); 982 document.addEventListener("focusout", handleFocusOut2); 983 const mutationObserver = new MutationObserver(handleMutations2); 984 if (container) mutationObserver.observe(container, { childList: true, subtree: true }); 985 return () => { 986 document.removeEventListener("focusin", handleFocusIn2); 987 document.removeEventListener("focusout", handleFocusOut2); 988 mutationObserver.disconnect(); 989 }; 990 } 991 }, [trapped, container, focusScope.paused]); 992 React16.useEffect(() => { 993 if (container) { 994 focusScopesStack.add(focusScope); 995 const previouslyFocusedElement = document.activeElement; 996 const hasFocusedCandidate = container.contains(previouslyFocusedElement); 997 if (!hasFocusedCandidate) { 998 const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS); 999 container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus); 1000 container.dispatchEvent(mountEvent); 1001 if (!mountEvent.defaultPrevented) { 1002 focusFirst(removeLinks(getTabbableCandidates(container)), { select: true }); 1003 if (document.activeElement === previouslyFocusedElement) { 1004 focus(container); 1005 } 1006 } 1007 } 1008 return () => { 1009 container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus); 1010 setTimeout(() => { 1011 const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS); 1012 container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus); 1013 container.dispatchEvent(unmountEvent); 1014 if (!unmountEvent.defaultPrevented) { 1015 focus(previouslyFocusedElement ?? document.body, { select: true }); 1016 } 1017 container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus); 1018 focusScopesStack.remove(focusScope); 1019 }, 0); 1020 }; 1021 } 1022 }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]); 1023 const handleKeyDown = React16.useCallback( 1024 (event) => { 1025 if (!loop && !trapped) return; 1026 if (focusScope.paused) return; 1027 const isTabKey = event.key === "Tab" && !event.altKey && !event.ctrlKey && !event.metaKey; 1028 const focusedElement = document.activeElement; 1029 if (isTabKey && focusedElement) { 1030 const container2 = event.currentTarget; 1031 const [first, last] = getTabbableEdges(container2); 1032 const hasTabbableElementsInside = first && last; 1033 if (!hasTabbableElementsInside) { 1034 if (focusedElement === container2) event.preventDefault(); 1035 } else { 1036 if (!event.shiftKey && focusedElement === last) { 1037 event.preventDefault(); 1038 if (loop) focus(first, { select: true }); 1039 } else if (event.shiftKey && focusedElement === first) { 1040 event.preventDefault(); 1041 if (loop) focus(last, { select: true }); 1042 } 1043 } 1044 } 1045 }, 1046 [loop, trapped, focusScope.paused] 1047 ); 1048 return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Primitive2.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown }); 1049 }); 1050 FocusScope.displayName = FOCUS_SCOPE_NAME; 1051 function focusFirst(candidates, { select = false } = {}) { 1052 const previouslyFocusedElement = document.activeElement; 1053 for (const candidate of candidates) { 1054 focus(candidate, { select }); 1055 if (document.activeElement !== previouslyFocusedElement) return; 1056 } 1057 } 1058 function getTabbableEdges(container) { 1059 const candidates = getTabbableCandidates(container); 1060 const first = findVisible(candidates, container); 1061 const last = findVisible(candidates.reverse(), container); 1062 return [first, last]; 1063 } 1064 function getTabbableCandidates(container) { 1065 const nodes = []; 1066 const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, { 1067 acceptNode: (node) => { 1068 const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden"; 1069 if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP; 1070 return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP; 1071 } 1072 }); 1073 while (walker.nextNode()) nodes.push(walker.currentNode); 1074 return nodes; 1075 } 1076 function findVisible(elements, container) { 1077 for (const element of elements) { 1078 if (!isHidden(element, { upTo: container })) return element; 1079 } 1080 } 1081 function isHidden(node, { upTo }) { 1082 if (getComputedStyle(node).visibility === "hidden") return true; 1083 while (node) { 1084 if (upTo !== void 0 && node === upTo) return false; 1085 if (getComputedStyle(node).display === "none") return true; 1086 node = node.parentElement; 1087 } 1088 return false; 1089 } 1090 function isSelectableInput(element) { 1091 return element instanceof HTMLInputElement && "select" in element; 1092 } 1093 function focus(element, { select = false } = {}) { 1094 if (element && element.focus) { 1095 const previouslyFocusedElement = document.activeElement; 1096 element.focus({ preventScroll: true }); 1097 if (element !== previouslyFocusedElement && isSelectableInput(element) && select) 1098 element.select(); 1099 } 1100 } 1101 var focusScopesStack = createFocusScopesStack(); 1102 function createFocusScopesStack() { 1103 let stack = []; 1104 return { 1105 add(focusScope) { 1106 const activeFocusScope = stack[0]; 1107 if (focusScope !== activeFocusScope) { 1108 activeFocusScope?.pause(); 1109 } 1110 stack = arrayRemove(stack, focusScope); 1111 stack.unshift(focusScope); 1112 }, 1113 remove(focusScope) { 1114 stack = arrayRemove(stack, focusScope); 1115 stack[0]?.resume(); 1116 } 1117 }; 1118 } 1119 function arrayRemove(array, item) { 1120 const updatedArray = [...array]; 1121 const index = updatedArray.indexOf(item); 1122 if (index !== -1) { 1123 updatedArray.splice(index, 1); 1124 } 1125 return updatedArray; 1126 } 1127 function removeLinks(items) { 1128 return items.filter((item) => item.tagName !== "A"); 1129 } 1130 1131 // node_modules/@radix-ui/react-portal/dist/index.mjs 1132 var React21 = __toESM(require_react(), 1); 1133 var import_react_dom = __toESM(require_react_dom(), 1); 1134 1135 // node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-primitive/dist/index.mjs 1136 var React19 = __toESM(require_react(), 1); 1137 var ReactDOM3 = __toESM(require_react_dom(), 1); 1138 1139 // node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-slot/dist/index.mjs 1140 var React18 = __toESM(require_react(), 1); 1141 1142 // node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-compose-refs/dist/index.mjs 1143 var React17 = __toESM(require_react(), 1); 1144 function setRef4(ref, value) { 1145 if (typeof ref === "function") { 1146 return ref(value); 1147 } else if (ref !== null && ref !== void 0) { 1148 ref.current = value; 1149 } 1150 } 1151 function composeRefs4(...refs) { 1152 return (node) => { 1153 let hasCleanup = false; 1154 const cleanups = refs.map((ref) => { 1155 const cleanup = setRef4(ref, node); 1156 if (!hasCleanup && typeof cleanup == "function") { 1157 hasCleanup = true; 1158 } 1159 return cleanup; 1160 }); 1161 if (hasCleanup) { 1162 return () => { 1163 for (let i = 0; i < cleanups.length; i++) { 1164 const cleanup = cleanups[i]; 1165 if (typeof cleanup == "function") { 1166 cleanup(); 1167 } else { 1168 setRef4(refs[i], null); 1169 } 1170 } 1171 }; 1172 } 1173 }; 1174 } 1175 1176 // node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-slot/dist/index.mjs 1177 var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1); 1178 // @__NO_SIDE_EFFECTS__ 1179 function createSlot3(ownerName) { 1180 const SlotClone = /* @__PURE__ */ createSlotClone3(ownerName); 1181 const Slot2 = React18.forwardRef((props, forwardedRef) => { 1182 const { children, ...slotProps } = props; 1183 const childrenArray = React18.Children.toArray(children); 1184 const slottable = childrenArray.find(isSlottable3); 1185 if (slottable) { 1186 const newElement = slottable.props.children; 1187 const newChildren = childrenArray.map((child) => { 1188 if (child === slottable) { 1189 if (React18.Children.count(newElement) > 1) return React18.Children.only(null); 1190 return React18.isValidElement(newElement) ? newElement.props.children : null; 1191 } else { 1192 return child; 1193 } 1194 }); 1195 return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React18.isValidElement(newElement) ? React18.cloneElement(newElement, void 0, newChildren) : null }); 1196 } 1197 return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children }); 1198 }); 1199 Slot2.displayName = `$ownerName}.Slot`; 1200 return Slot2; 1201 } 1202 // @__NO_SIDE_EFFECTS__ 1203 function createSlotClone3(ownerName) { 1204 const SlotClone = React18.forwardRef((props, forwardedRef) => { 1205 const { children, ...slotProps } = props; 1206 if (React18.isValidElement(children)) { 1207 const childrenRef = getElementRef3(children); 1208 const props2 = mergeProps3(slotProps, children.props); 1209 if (children.type !== React18.Fragment) { 1210 props2.ref = forwardedRef ? composeRefs4(forwardedRef, childrenRef) : childrenRef; 1211 } 1212 return React18.cloneElement(children, props2); 1213 } 1214 return React18.Children.count(children) > 1 ? React18.Children.only(null) : null; 1215 }); 1216 SlotClone.displayName = `$ownerName}.SlotClone`; 1217 return SlotClone; 1218 } 1219 var SLOTTABLE_IDENTIFIER3 = /* @__PURE__ */ Symbol("radix.slottable"); 1220 function isSlottable3(child) { 1221 return React18.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER3; 1222 } 1223 function mergeProps3(slotProps, childProps) { 1224 const overrideProps = { ...childProps }; 1225 for (const propName in childProps) { 1226 const slotPropValue = slotProps[propName]; 1227 const childPropValue = childProps[propName]; 1228 const isHandler = /^on[A-Z]/.test(propName); 1229 if (isHandler) { 1230 if (slotPropValue && childPropValue) { 1231 overrideProps[propName] = (...args) => { 1232 const result = childPropValue(...args); 1233 slotPropValue(...args); 1234 return result; 1235 }; 1236 } else if (slotPropValue) { 1237 overrideProps[propName] = slotPropValue; 1238 } 1239 } else if (propName === "style") { 1240 overrideProps[propName] = { ...slotPropValue, ...childPropValue }; 1241 } else if (propName === "className") { 1242 overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" "); 1243 } 1244 } 1245 return { ...slotProps, ...overrideProps }; 1246 } 1247 function getElementRef3(element) { 1248 let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get; 1249 let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; 1250 if (mayWarn) { 1251 return element.ref; 1252 } 1253 getter = Object.getOwnPropertyDescriptor(element, "ref")?.get; 1254 mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; 1255 if (mayWarn) { 1256 return element.props.ref; 1257 } 1258 return element.props.ref || element.ref; 1259 } 1260 1261 // node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-primitive/dist/index.mjs 1262 var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1); 1263 var NODES3 = [ 1264 "a", 1265 "button", 1266 "div", 1267 "form", 1268 "h2", 1269 "h3", 1270 "img", 1271 "input", 1272 "label", 1273 "li", 1274 "nav", 1275 "ol", 1276 "p", 1277 "select", 1278 "span", 1279 "svg", 1280 "ul" 1281 ]; 1282 var Primitive3 = NODES3.reduce((primitive, node) => { 1283 const Slot2 = createSlot3(`Primitive.$node}`); 1284 const Node2 = React19.forwardRef((props, forwardedRef) => { 1285 const { asChild, ...primitiveProps } = props; 1286 const Comp = asChild ? Slot2 : node; 1287 if (typeof window !== "undefined") { 1288 window[/* @__PURE__ */ Symbol.for("radix-ui")] = true; 1289 } 1290 return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Comp, { ...primitiveProps, ref: forwardedRef }); 1291 }); 1292 Node2.displayName = `Primitive.$node}`; 1293 return { ...primitive, [node]: Node2 }; 1294 }, {}); 1295 1296 // node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs 1297 var React20 = __toESM(require_react(), 1); 1298 var useLayoutEffect22 = globalThis?.document ? React20.useLayoutEffect : () => { 1299 }; 1300 1301 // node_modules/@radix-ui/react-portal/dist/index.mjs 1302 var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1); 1303 var PORTAL_NAME = "Portal"; 1304 var Portal = React21.forwardRef((props, forwardedRef) => { 1305 const { container: containerProp, ...portalProps } = props; 1306 const [mounted, setMounted] = React21.useState(false); 1307 useLayoutEffect22(() => setMounted(true), []); 1308 const container = containerProp || mounted && globalThis?.document?.body; 1309 return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Primitive3.div, { ...portalProps, ref: forwardedRef }), container) : null; 1310 }); 1311 Portal.displayName = PORTAL_NAME; 1312 1313 // node_modules/@radix-ui/react-presence/dist/index.mjs 1314 var React25 = __toESM(require_react(), 1); 1315 1316 // node_modules/@radix-ui/react-presence/node_modules/@radix-ui/react-compose-refs/dist/index.mjs 1317 var React23 = __toESM(require_react(), 1); 1318 function setRef5(ref, value) { 1319 if (typeof ref === "function") { 1320 return ref(value); 1321 } else if (ref !== null && ref !== void 0) { 1322 ref.current = value; 1323 } 1324 } 1325 function composeRefs5(...refs) { 1326 return (node) => { 1327 let hasCleanup = false; 1328 const cleanups = refs.map((ref) => { 1329 const cleanup = setRef5(ref, node); 1330 if (!hasCleanup && typeof cleanup == "function") { 1331 hasCleanup = true; 1332 } 1333 return cleanup; 1334 }); 1335 if (hasCleanup) { 1336 return () => { 1337 for (let i = 0; i < cleanups.length; i++) { 1338 const cleanup = cleanups[i]; 1339 if (typeof cleanup == "function") { 1340 cleanup(); 1341 } else { 1342 setRef5(refs[i], null); 1343 } 1344 } 1345 }; 1346 } 1347 }; 1348 } 1349 function useComposedRefs4(...refs) { 1350 return React23.useCallback(composeRefs5(...refs), refs); 1351 } 1352 1353 // node_modules/@radix-ui/react-presence/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs 1354 var React24 = __toESM(require_react(), 1); 1355 var useLayoutEffect23 = globalThis?.document ? React24.useLayoutEffect : () => { 1356 }; 1357 1358 // node_modules/@radix-ui/react-presence/dist/index.mjs 1359 var React26 = __toESM(require_react(), 1); 1360 function useStateMachine(initialState, machine) { 1361 return React26.useReducer((state, event) => { 1362 const nextState = machine[state][event]; 1363 return nextState ?? state; 1364 }, initialState); 1365 } 1366 var Presence = (props) => { 1367 const { present, children } = props; 1368 const presence = usePresence(present); 1369 const child = typeof children === "function" ? children({ present: presence.isPresent }) : React25.Children.only(children); 1370 const ref = useComposedRefs4(presence.ref, getElementRef4(child)); 1371 const forceMount = typeof children === "function"; 1372 return forceMount || presence.isPresent ? React25.cloneElement(child, { ref }) : null; 1373 }; 1374 Presence.displayName = "Presence"; 1375 function usePresence(present) { 1376 const [node, setNode] = React25.useState(); 1377 const stylesRef = React25.useRef(null); 1378 const prevPresentRef = React25.useRef(present); 1379 const prevAnimationNameRef = React25.useRef("none"); 1380 const initialState = present ? "mounted" : "unmounted"; 1381 const [state, send] = useStateMachine(initialState, { 1382 mounted: { 1383 UNMOUNT: "unmounted", 1384 ANIMATION_OUT: "unmountSuspended" 1385 }, 1386 unmountSuspended: { 1387 MOUNT: "mounted", 1388 ANIMATION_END: "unmounted" 1389 }, 1390 unmounted: { 1391 MOUNT: "mounted" 1392 } 1393 }); 1394 React25.useEffect(() => { 1395 const currentAnimationName = getAnimationName(stylesRef.current); 1396 prevAnimationNameRef.current = state === "mounted" ? currentAnimationName : "none"; 1397 }, [state]); 1398 useLayoutEffect23(() => { 1399 const styles = stylesRef.current; 1400 const wasPresent = prevPresentRef.current; 1401 const hasPresentChanged = wasPresent !== present; 1402 if (hasPresentChanged) { 1403 const prevAnimationName = prevAnimationNameRef.current; 1404 const currentAnimationName = getAnimationName(styles); 1405 if (present) { 1406 send("MOUNT"); 1407 } else if (currentAnimationName === "none" || styles?.display === "none") { 1408 send("UNMOUNT"); 1409 } else { 1410 const isAnimating = prevAnimationName !== currentAnimationName; 1411 if (wasPresent && isAnimating) { 1412 send("ANIMATION_OUT"); 1413 } else { 1414 send("UNMOUNT"); 1415 } 1416 } 1417 prevPresentRef.current = present; 1418 } 1419 }, [present, send]); 1420 useLayoutEffect23(() => { 1421 if (node) { 1422 let timeoutId; 1423 const ownerWindow = node.ownerDocument.defaultView ?? window; 1424 const handleAnimationEnd = (event) => { 1425 const currentAnimationName = getAnimationName(stylesRef.current); 1426 const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName)); 1427 if (event.target === node && isCurrentAnimation) { 1428 send("ANIMATION_END"); 1429 if (!prevPresentRef.current) { 1430 const currentFillMode = node.style.animationFillMode; 1431 node.style.animationFillMode = "forwards"; 1432 timeoutId = ownerWindow.setTimeout(() => { 1433 if (node.style.animationFillMode === "forwards") { 1434 node.style.animationFillMode = currentFillMode; 1435 } 1436 }); 1437 } 1438 } 1439 }; 1440 const handleAnimationStart = (event) => { 1441 if (event.target === node) { 1442 prevAnimationNameRef.current = getAnimationName(stylesRef.current); 1443 } 1444 }; 1445 node.addEventListener("animationstart", handleAnimationStart); 1446 node.addEventListener("animationcancel", handleAnimationEnd); 1447 node.addEventListener("animationend", handleAnimationEnd); 1448 return () => { 1449 ownerWindow.clearTimeout(timeoutId); 1450 node.removeEventListener("animationstart", handleAnimationStart); 1451 node.removeEventListener("animationcancel", handleAnimationEnd); 1452 node.removeEventListener("animationend", handleAnimationEnd); 1453 }; 1454 } else { 1455 send("ANIMATION_END"); 1456 } 1457 }, [node, send]); 1458 return { 1459 isPresent: ["mounted", "unmountSuspended"].includes(state), 1460 ref: React25.useCallback((node2) => { 1461 stylesRef.current = node2 ? getComputedStyle(node2) : null; 1462 setNode(node2); 1463 }, []) 1464 }; 1465 } 1466 function getAnimationName(styles) { 1467 return styles?.animationName || "none"; 1468 } 1469 function getElementRef4(element) { 1470 let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get; 1471 let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; 1472 if (mayWarn) { 1473 return element.ref; 1474 } 1475 getter = Object.getOwnPropertyDescriptor(element, "ref")?.get; 1476 mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; 1477 if (mayWarn) { 1478 return element.props.ref; 1479 } 1480 return element.props.ref || element.ref; 1481 } 1482 1483 // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive/dist/index.mjs 1484 var React28 = __toESM(require_react(), 1); 1485 var ReactDOM5 = __toESM(require_react_dom(), 1); 1486 1487 // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot/dist/index.mjs 1488 var React27 = __toESM(require_react(), 1); 1489 var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1); 1490 // @__NO_SIDE_EFFECTS__ 1491 function createSlot4(ownerName) { 1492 const SlotClone = /* @__PURE__ */ createSlotClone4(ownerName); 1493 const Slot2 = React27.forwardRef((props, forwardedRef) => { 1494 const { children, ...slotProps } = props; 1495 const childrenArray = React27.Children.toArray(children); 1496 const slottable = childrenArray.find(isSlottable4); 1497 if (slottable) { 1498 const newElement = slottable.props.children; 1499 const newChildren = childrenArray.map((child) => { 1500 if (child === slottable) { 1501 if (React27.Children.count(newElement) > 1) return React27.Children.only(null); 1502 return React27.isValidElement(newElement) ? newElement.props.children : null; 1503 } else { 1504 return child; 1505 } 1506 }); 1507 return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React27.isValidElement(newElement) ? React27.cloneElement(newElement, void 0, newChildren) : null }); 1508 } 1509 return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children }); 1510 }); 1511 Slot2.displayName = `$ownerName}.Slot`; 1512 return Slot2; 1513 } 1514 // @__NO_SIDE_EFFECTS__ 1515 function createSlotClone4(ownerName) { 1516 const SlotClone = React27.forwardRef((props, forwardedRef) => { 1517 const { children, ...slotProps } = props; 1518 if (React27.isValidElement(children)) { 1519 const childrenRef = getElementRef5(children); 1520 const props2 = mergeProps4(slotProps, children.props); 1521 if (children.type !== React27.Fragment) { 1522 props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef; 1523 } 1524 return React27.cloneElement(children, props2); 1525 } 1526 return React27.Children.count(children) > 1 ? React27.Children.only(null) : null; 1527 }); 1528 SlotClone.displayName = `$ownerName}.SlotClone`; 1529 return SlotClone; 1530 } 1531 var SLOTTABLE_IDENTIFIER4 = /* @__PURE__ */ Symbol("radix.slottable"); 1532 function isSlottable4(child) { 1533 return React27.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER4; 1534 } 1535 function mergeProps4(slotProps, childProps) { 1536 const overrideProps = { ...childProps }; 1537 for (const propName in childProps) { 1538 const slotPropValue = slotProps[propName]; 1539 const childPropValue = childProps[propName]; 1540 const isHandler = /^on[A-Z]/.test(propName); 1541 if (isHandler) { 1542 if (slotPropValue && childPropValue) { 1543 overrideProps[propName] = (...args) => { 1544 const result = childPropValue(...args); 1545 slotPropValue(...args); 1546 return result; 1547 }; 1548 } else if (slotPropValue) { 1549 overrideProps[propName] = slotPropValue; 1550 } 1551 } else if (propName === "style") { 1552 overrideProps[propName] = { ...slotPropValue, ...childPropValue }; 1553 } else if (propName === "className") { 1554 overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" "); 1555 } 1556 } 1557 return { ...slotProps, ...overrideProps }; 1558 } 1559 function getElementRef5(element) { 1560 let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get; 1561 let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; 1562 if (mayWarn) { 1563 return element.ref; 1564 } 1565 getter = Object.getOwnPropertyDescriptor(element, "ref")?.get; 1566 mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; 1567 if (mayWarn) { 1568 return element.props.ref; 1569 } 1570 return element.props.ref || element.ref; 1571 } 1572 1573 // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive/dist/index.mjs 1574 var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1); 1575 var NODES4 = [ 1576 "a", 1577 "button", 1578 "div", 1579 "form", 1580 "h2", 1581 "h3", 1582 "img", 1583 "input", 1584 "label", 1585 "li", 1586 "nav", 1587 "ol", 1588 "p", 1589 "select", 1590 "span", 1591 "svg", 1592 "ul" 1593 ]; 1594 var Primitive4 = NODES4.reduce((primitive, node) => { 1595 const Slot2 = createSlot4(`Primitive.$node}`); 1596 const Node2 = React28.forwardRef((props, forwardedRef) => { 1597 const { asChild, ...primitiveProps } = props; 1598 const Comp = asChild ? Slot2 : node; 1599 if (typeof window !== "undefined") { 1600 window[/* @__PURE__ */ Symbol.for("radix-ui")] = true; 1601 } 1602 return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Comp, { ...primitiveProps, ref: forwardedRef }); 1603 }); 1604 Node2.displayName = `Primitive.$node}`; 1605 return { ...primitive, [node]: Node2 }; 1606 }, {}); 1607 1608 // node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-focus-guards/dist/index.mjs 1609 var React29 = __toESM(require_react(), 1); 1610 var count2 = 0; 1611 function useFocusGuards() { 1612 React29.useEffect(() => { 1613 const edgeGuards = document.querySelectorAll("[data-radix-focus-guard]"); 1614 document.body.insertAdjacentElement("afterbegin", edgeGuards[0] ?? createFocusGuard()); 1615 document.body.insertAdjacentElement("beforeend", edgeGuards[1] ?? createFocusGuard()); 1616 count2++; 1617 return () => { 1618 if (count2 === 1) { 1619 document.querySelectorAll("[data-radix-focus-guard]").forEach((node) => node.remove()); 1620 } 1621 count2--; 1622 }; 1623 }, []); 1624 } 1625 function createFocusGuard() { 1626 const element = document.createElement("span"); 1627 element.setAttribute("data-radix-focus-guard", ""); 1628 element.tabIndex = 0; 1629 element.style.outline = "none"; 1630 element.style.opacity = "0"; 1631 element.style.position = "fixed"; 1632 element.style.pointerEvents = "none"; 1633 return element; 1634 } 1635 1636 // node_modules/tslib/tslib.es6.mjs 1637 var __assign = function() { 1638 __assign = Object.assign || function __assign2(t2) { 1639 for (var s, i = 1, n = arguments.length; i < n; i++) { 1640 s = arguments[i]; 1641 for (var p2 in s) if (Object.prototype.hasOwnProperty.call(s, p2)) t2[p2] = s[p2]; 1642 } 1643 return t2; 1644 }; 1645 return __assign.apply(this, arguments); 1646 }; 1647 function __rest(s, e) { 1648 var t2 = {}; 1649 for (var p2 in s) if (Object.prototype.hasOwnProperty.call(s, p2) && e.indexOf(p2) < 0) 1650 t2[p2] = s[p2]; 1651 if (s != null && typeof Object.getOwnPropertySymbols === "function") 1652 for (var i = 0, p2 = Object.getOwnPropertySymbols(s); i < p2.length; i++) { 1653 if (e.indexOf(p2[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p2[i])) 1654 t2[p2[i]] = s[p2[i]]; 1655 } 1656 return t2; 1657 } 1658 function __spreadArray(to, from, pack) { 1659 if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { 1660 if (ar || !(i in from)) { 1661 if (!ar) ar = Array.prototype.slice.call(from, 0, i); 1662 ar[i] = from[i]; 1663 } 1664 } 1665 return to.concat(ar || Array.prototype.slice.call(from)); 1666 } 1667 1668 // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/Combination.js 1669 var React36 = __toESM(require_react()); 1670 1671 // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/UI.js 1672 var React32 = __toESM(require_react()); 1673 1674 // node_modules/react-remove-scroll-bar/dist/es2015/constants.js 1675 var zeroRightClassName = "right-scroll-bar-position"; 1676 var fullWidthClassName = "width-before-scroll-bar"; 1677 var noScrollbarsClassName = "with-scroll-bars-hidden"; 1678 var removedBarSizeVariable = "--removed-body-scroll-bar-size"; 1679 1680 // node_modules/use-callback-ref/dist/es2015/assignRef.js 1681 function assignRef(ref, value) { 1682 if (typeof ref === "function") { 1683 ref(value); 1684 } else if (ref) { 1685 ref.current = value; 1686 } 1687 return ref; 1688 } 1689 1690 // node_modules/use-callback-ref/dist/es2015/useRef.js 1691 var import_react = __toESM(require_react()); 1692 function useCallbackRef3(initialValue, callback) { 1693 var ref = (0, import_react.useState)(function() { 1694 return { 1695 // value 1696 value: initialValue, 1697 // last callback 1698 callback, 1699 // "memoized" public interface 1700 facade: { 1701 get current() { 1702 return ref.value; 1703 }, 1704 set current(value) { 1705 var last = ref.value; 1706 if (last !== value) { 1707 ref.value = value; 1708 ref.callback(value, last); 1709 } 1710 } 1711 } 1712 }; 1713 })[0]; 1714 ref.callback = callback; 1715 return ref.facade; 1716 } 1717 1718 // node_modules/use-callback-ref/dist/es2015/useMergeRef.js 1719 var React30 = __toESM(require_react()); 1720 var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React30.useLayoutEffect : React30.useEffect; 1721 var currentValues = /* @__PURE__ */ new WeakMap(); 1722 function useMergeRefs(refs, defaultValue) { 1723 var callbackRef = useCallbackRef3(defaultValue || null, function(newValue) { 1724 return refs.forEach(function(ref) { 1725 return assignRef(ref, newValue); 1726 }); 1727 }); 1728 useIsomorphicLayoutEffect(function() { 1729 var oldValue = currentValues.get(callbackRef); 1730 if (oldValue) { 1731 var prevRefs_1 = new Set(oldValue); 1732 var nextRefs_1 = new Set(refs); 1733 var current_1 = callbackRef.current; 1734 prevRefs_1.forEach(function(ref) { 1735 if (!nextRefs_1.has(ref)) { 1736 assignRef(ref, null); 1737 } 1738 }); 1739 nextRefs_1.forEach(function(ref) { 1740 if (!prevRefs_1.has(ref)) { 1741 assignRef(ref, current_1); 1742 } 1743 }); 1744 } 1745 currentValues.set(callbackRef, refs); 1746 }, [refs]); 1747 return callbackRef; 1748 } 1749 1750 // node_modules/use-sidecar/dist/es2015/medium.js 1751 function ItoI(a) { 1752 return a; 1753 } 1754 function innerCreateMedium(defaults, middleware) { 1755 if (middleware === void 0) { 1756 middleware = ItoI; 1757 } 1758 var buffer = []; 1759 var assigned = false; 1760 var medium = { 1761 read: function() { 1762 if (assigned) { 1763 throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`."); 1764 } 1765 if (buffer.length) { 1766 return buffer[buffer.length - 1]; 1767 } 1768 return defaults; 1769 }, 1770 useMedium: function(data) { 1771 var item = middleware(data, assigned); 1772 buffer.push(item); 1773 return function() { 1774 buffer = buffer.filter(function(x) { 1775 return x !== item; 1776 }); 1777 }; 1778 }, 1779 assignSyncMedium: function(cb) { 1780 assigned = true; 1781 while (buffer.length) { 1782 var cbs = buffer; 1783 buffer = []; 1784 cbs.forEach(cb); 1785 } 1786 buffer = { 1787 push: function(x) { 1788 return cb(x); 1789 }, 1790 filter: function() { 1791 return buffer; 1792 } 1793 }; 1794 }, 1795 assignMedium: function(cb) { 1796 assigned = true; 1797 var pendingQueue = []; 1798 if (buffer.length) { 1799 var cbs = buffer; 1800 buffer = []; 1801 cbs.forEach(cb); 1802 pendingQueue = buffer; 1803 } 1804 var executeQueue = function() { 1805 var cbs2 = pendingQueue; 1806 pendingQueue = []; 1807 cbs2.forEach(cb); 1808 }; 1809 var cycle = function() { 1810 return Promise.resolve().then(executeQueue); 1811 }; 1812 cycle(); 1813 buffer = { 1814 push: function(x) { 1815 pendingQueue.push(x); 1816 cycle(); 1817 }, 1818 filter: function(filter) { 1819 pendingQueue = pendingQueue.filter(filter); 1820 return buffer; 1821 } 1822 }; 1823 } 1824 }; 1825 return medium; 1826 } 1827 function createSidecarMedium(options) { 1828 if (options === void 0) { 1829 options = {}; 1830 } 1831 var medium = innerCreateMedium(null); 1832 medium.options = __assign({ async: true, ssr: false }, options); 1833 return medium; 1834 } 1835 1836 // node_modules/use-sidecar/dist/es2015/exports.js 1837 var React31 = __toESM(require_react()); 1838 var SideCar = function(_a) { 1839 var sideCar = _a.sideCar, rest = __rest(_a, ["sideCar"]); 1840 if (!sideCar) { 1841 throw new Error("Sidecar: please provide `sideCar` property to import the right car"); 1842 } 1843 var Target = sideCar.read(); 1844 if (!Target) { 1845 throw new Error("Sidecar medium not found"); 1846 } 1847 return React31.createElement(Target, __assign({}, rest)); 1848 }; 1849 SideCar.isSideCarExport = true; 1850 function exportSidecar(medium, exported) { 1851 medium.useMedium(exported); 1852 return SideCar; 1853 } 1854 1855 // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/medium.js 1856 var effectCar = createSidecarMedium(); 1857 1858 // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/UI.js 1859 var nothing = function() { 1860 return; 1861 }; 1862 var RemoveScroll = React32.forwardRef(function(props, parentRef) { 1863 var ref = React32.useRef(null); 1864 var _a = React32.useState({ 1865 onScrollCapture: nothing, 1866 onWheelCapture: nothing, 1867 onTouchMoveCapture: nothing 1868 }), callbacks = _a[0], setCallbacks = _a[1]; 1869 var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noRelative = props.noRelative, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? "div" : _b, gapMode = props.gapMode, rest = __rest(props, ["forwardProps", "children", "className", "removeScrollBar", "enabled", "shards", "sideCar", "noRelative", "noIsolation", "inert", "allowPinchZoom", "as", "gapMode"]); 1870 var SideCar2 = sideCar; 1871 var containerRef = useMergeRefs([ref, parentRef]); 1872 var containerProps = __assign(__assign({}, rest), callbacks); 1873 return React32.createElement( 1874 React32.Fragment, 1875 null, 1876 enabled && React32.createElement(SideCar2, { sideCar: effectCar, removeScrollBar, shards, noRelative, noIsolation, inert, setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode }), 1877 forwardProps ? React32.cloneElement(React32.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef })) : React32.createElement(Container, __assign({}, containerProps, { className, ref: containerRef }), children) 1878 ); 1879 }); 1880 RemoveScroll.defaultProps = { 1881 enabled: true, 1882 removeScrollBar: true, 1883 inert: false 1884 }; 1885 RemoveScroll.classNames = { 1886 fullWidth: fullWidthClassName, 1887 zeroRight: zeroRightClassName 1888 }; 1889 1890 // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/SideEffect.js 1891 var React35 = __toESM(require_react()); 1892 1893 // node_modules/react-remove-scroll-bar/dist/es2015/component.js 1894 var React34 = __toESM(require_react()); 1895 1896 // node_modules/react-style-singleton/dist/es2015/hook.js 1897 var React33 = __toESM(require_react()); 1898 1899 // node_modules/get-nonce/dist/es2015/index.js 1900 var currentNonce; 1901 var getNonce = function() { 1902 if (currentNonce) { 1903 return currentNonce; 1904 } 1905 if (typeof __webpack_nonce__ !== "undefined") { 1906 return __webpack_nonce__; 1907 } 1908 return void 0; 1909 }; 1910 1911 // node_modules/react-style-singleton/dist/es2015/singleton.js 1912 function makeStyleTag() { 1913 if (!document) 1914 return null; 1915 var tag = document.createElement("style"); 1916 tag.type = "text/css"; 1917 var nonce = getNonce(); 1918 if (nonce) { 1919 tag.setAttribute("nonce", nonce); 1920 } 1921 return tag; 1922 } 1923 function injectStyles(tag, css) { 1924 if (tag.styleSheet) { 1925 tag.styleSheet.cssText = css; 1926 } else { 1927 tag.appendChild(document.createTextNode(css)); 1928 } 1929 } 1930 function insertStyleTag(tag) { 1931 var head = document.head || document.getElementsByTagName("head")[0]; 1932 head.appendChild(tag); 1933 } 1934 var stylesheetSingleton = function() { 1935 var counter = 0; 1936 var stylesheet = null; 1937 return { 1938 add: function(style) { 1939 if (counter == 0) { 1940 if (stylesheet = makeStyleTag()) { 1941 injectStyles(stylesheet, style); 1942 insertStyleTag(stylesheet); 1943 } 1944 } 1945 counter++; 1946 }, 1947 remove: function() { 1948 counter--; 1949 if (!counter && stylesheet) { 1950 stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet); 1951 stylesheet = null; 1952 } 1953 } 1954 }; 1955 }; 1956 1957 // node_modules/react-style-singleton/dist/es2015/hook.js 1958 var styleHookSingleton = function() { 1959 var sheet = stylesheetSingleton(); 1960 return function(styles, isDynamic) { 1961 React33.useEffect(function() { 1962 sheet.add(styles); 1963 return function() { 1964 sheet.remove(); 1965 }; 1966 }, [styles && isDynamic]); 1967 }; 1968 }; 1969 1970 // node_modules/react-style-singleton/dist/es2015/component.js 1971 var styleSingleton = function() { 1972 var useStyle = styleHookSingleton(); 1973 var Sheet = function(_a) { 1974 var styles = _a.styles, dynamic = _a.dynamic; 1975 useStyle(styles, dynamic); 1976 return null; 1977 }; 1978 return Sheet; 1979 }; 1980 1981 // node_modules/react-remove-scroll-bar/dist/es2015/utils.js 1982 var zeroGap = { 1983 left: 0, 1984 top: 0, 1985 right: 0, 1986 gap: 0 1987 }; 1988 var parse = function(x) { 1989 return parseInt(x || "", 10) || 0; 1990 }; 1991 var getOffset = function(gapMode) { 1992 var cs = window.getComputedStyle(document.body); 1993 var left = cs[gapMode === "padding" ? "paddingLeft" : "marginLeft"]; 1994 var top = cs[gapMode === "padding" ? "paddingTop" : "marginTop"]; 1995 var right = cs[gapMode === "padding" ? "paddingRight" : "marginRight"]; 1996 return [parse(left), parse(top), parse(right)]; 1997 }; 1998 var getGapWidth = function(gapMode) { 1999 if (gapMode === void 0) { 2000 gapMode = "margin"; 2001 } 2002 if (typeof window === "undefined") { 2003 return zeroGap; 2004 } 2005 var offsets = getOffset(gapMode); 2006 var documentWidth = document.documentElement.clientWidth; 2007 var windowWidth = window.innerWidth; 2008 return { 2009 left: offsets[0], 2010 top: offsets[1], 2011 right: offsets[2], 2012 gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]) 2013 }; 2014 }; 2015 2016 // node_modules/react-remove-scroll-bar/dist/es2015/component.js 2017 var Style = styleSingleton(); 2018 var lockAttribute = "data-scroll-locked"; 2019 var getStyles = function(_a, allowRelative, gapMode, important) { 2020 var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap; 2021 if (gapMode === void 0) { 2022 gapMode = "margin"; 2023 } 2024 return "\n .".concat(noScrollbarsClassName, " {\n overflow: hidden ").concat(important, ";\n padding-right: ").concat(gap, "px ").concat(important, ";\n }\n body[").concat(lockAttribute, "] {\n overflow: hidden ").concat(important, ";\n overscroll-behavior: contain;\n ").concat([ 2025 allowRelative && "position: relative ".concat(important, ";"), 2026 gapMode === "margin" && "\n padding-left: ".concat(left, "px;\n padding-top: ").concat(top, "px;\n padding-right: ").concat(right, "px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(gap, "px ").concat(important, ";\n "), 2027 gapMode === "padding" && "padding-right: ".concat(gap, "px ").concat(important, ";") 2028 ].filter(Boolean).join(""), "\n }\n \n .").concat(zeroRightClassName, " {\n right: ").concat(gap, "px ").concat(important, ";\n }\n \n .").concat(fullWidthClassName, " {\n margin-right: ").concat(gap, "px ").concat(important, ";\n }\n \n .").concat(zeroRightClassName, " .").concat(zeroRightClassName, " {\n right: 0 ").concat(important, ";\n }\n \n .").concat(fullWidthClassName, " .").concat(fullWidthClassName, " {\n margin-right: 0 ").concat(important, ";\n }\n \n body[").concat(lockAttribute, "] {\n ").concat(removedBarSizeVariable, ": ").concat(gap, "px;\n }\n"); 2029 }; 2030 var getCurrentUseCounter = function() { 2031 var counter = parseInt(document.body.getAttribute(lockAttribute) || "0", 10); 2032 return isFinite(counter) ? counter : 0; 2033 }; 2034 var useLockAttribute = function() { 2035 React34.useEffect(function() { 2036 document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString()); 2037 return function() { 2038 var newCounter = getCurrentUseCounter() - 1; 2039 if (newCounter <= 0) { 2040 document.body.removeAttribute(lockAttribute); 2041 } else { 2042 document.body.setAttribute(lockAttribute, newCounter.toString()); 2043 } 2044 }; 2045 }, []); 2046 }; 2047 var RemoveScrollBar = function(_a) { 2048 var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? "margin" : _b; 2049 useLockAttribute(); 2050 var gap = React34.useMemo(function() { 2051 return getGapWidth(gapMode); 2052 }, [gapMode]); 2053 return React34.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? "!important" : "") }); 2054 }; 2055 2056 // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js 2057 var passiveSupported = false; 2058 if (typeof window !== "undefined") { 2059 try { 2060 options = Object.defineProperty({}, "passive", { 2061 get: function() { 2062 passiveSupported = true; 2063 return true; 2064 } 2065 }); 2066 window.addEventListener("test", options, options); 2067 window.removeEventListener("test", options, options); 2068 } catch (err) { 2069 passiveSupported = false; 2070 } 2071 } 2072 var options; 2073 var nonPassive = passiveSupported ? { passive: false } : false; 2074 2075 // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/handleScroll.js 2076 var alwaysContainsScroll = function(node) { 2077 return node.tagName === "TEXTAREA"; 2078 }; 2079 var elementCanBeScrolled = function(node, overflow) { 2080 if (!(node instanceof Element)) { 2081 return false; 2082 } 2083 var styles = window.getComputedStyle(node); 2084 return ( 2085 // not-not-scrollable 2086 styles[overflow] !== "hidden" && // contains scroll inside self 2087 !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === "visible") 2088 ); 2089 }; 2090 var elementCouldBeVScrolled = function(node) { 2091 return elementCanBeScrolled(node, "overflowY"); 2092 }; 2093 var elementCouldBeHScrolled = function(node) { 2094 return elementCanBeScrolled(node, "overflowX"); 2095 }; 2096 var locationCouldBeScrolled = function(axis, node) { 2097 var ownerDocument = node.ownerDocument; 2098 var current = node; 2099 do { 2100 if (typeof ShadowRoot !== "undefined" && current instanceof ShadowRoot) { 2101 current = current.host; 2102 } 2103 var isScrollable = elementCouldBeScrolled(axis, current); 2104 if (isScrollable) { 2105 var _a = getScrollVariables(axis, current), scrollHeight = _a[1], clientHeight = _a[2]; 2106 if (scrollHeight > clientHeight) { 2107 return true; 2108 } 2109 } 2110 current = current.parentNode; 2111 } while (current && current !== ownerDocument.body); 2112 return false; 2113 }; 2114 var getVScrollVariables = function(_a) { 2115 var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight; 2116 return [ 2117 scrollTop, 2118 scrollHeight, 2119 clientHeight 2120 ]; 2121 }; 2122 var getHScrollVariables = function(_a) { 2123 var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth; 2124 return [ 2125 scrollLeft, 2126 scrollWidth, 2127 clientWidth 2128 ]; 2129 }; 2130 var elementCouldBeScrolled = function(axis, node) { 2131 return axis === "v" ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node); 2132 }; 2133 var getScrollVariables = function(axis, node) { 2134 return axis === "v" ? getVScrollVariables(node) : getHScrollVariables(node); 2135 }; 2136 var getDirectionFactor = function(axis, direction) { 2137 return axis === "h" && direction === "rtl" ? -1 : 1; 2138 }; 2139 var handleScroll = function(axis, endTarget, event, sourceDelta, noOverscroll) { 2140 var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction); 2141 var delta = directionFactor * sourceDelta; 2142 var target = event.target; 2143 var targetInLock = endTarget.contains(target); 2144 var shouldCancelScroll = false; 2145 var isDeltaPositive = delta > 0; 2146 var availableScroll = 0; 2147 var availableScrollTop = 0; 2148 do { 2149 if (!target) { 2150 break; 2151 } 2152 var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2]; 2153 var elementScroll = scroll_1 - capacity - directionFactor * position; 2154 if (position || elementScroll) { 2155 if (elementCouldBeScrolled(axis, target)) { 2156 availableScroll += elementScroll; 2157 availableScrollTop += position; 2158 } 2159 } 2160 var parent_1 = target.parentNode; 2161 target = parent_1 && parent_1.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? parent_1.host : parent_1; 2162 } while ( 2163 // portaled content 2164 !targetInLock && target !== document.body || // self content 2165 targetInLock && (endTarget.contains(target) || endTarget === target) 2166 ); 2167 if (isDeltaPositive && (noOverscroll && Math.abs(availableScroll) < 1 || !noOverscroll && delta > availableScroll)) { 2168 shouldCancelScroll = true; 2169 } else if (!isDeltaPositive && (noOverscroll && Math.abs(availableScrollTop) < 1 || !noOverscroll && -delta > availableScrollTop)) { 2170 shouldCancelScroll = true; 2171 } 2172 return shouldCancelScroll; 2173 }; 2174 2175 // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/SideEffect.js 2176 var getTouchXY = function(event) { 2177 return "changedTouches" in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0]; 2178 }; 2179 var getDeltaXY = function(event) { 2180 return [event.deltaX, event.deltaY]; 2181 }; 2182 var extractRef = function(ref) { 2183 return ref && "current" in ref ? ref.current : ref; 2184 }; 2185 var deltaCompare = function(x, y) { 2186 return x[0] === y[0] && x[1] === y[1]; 2187 }; 2188 var generateStyle = function(id) { 2189 return "\n .block-interactivity-".concat(id, " {pointer-events: none;}\n .allow-interactivity-").concat(id, " {pointer-events: all;}\n"); 2190 }; 2191 var idCounter = 0; 2192 var lockStack = []; 2193 function RemoveScrollSideCar(props) { 2194 var shouldPreventQueue = React35.useRef([]); 2195 var touchStartRef = React35.useRef([0, 0]); 2196 var activeAxis = React35.useRef(); 2197 var id = React35.useState(idCounter++)[0]; 2198 var Style2 = React35.useState(styleSingleton)[0]; 2199 var lastProps = React35.useRef(props); 2200 React35.useEffect(function() { 2201 lastProps.current = props; 2202 }, [props]); 2203 React35.useEffect(function() { 2204 if (props.inert) { 2205 document.body.classList.add("block-interactivity-".concat(id)); 2206 var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean); 2207 allow_1.forEach(function(el) { 2208 return el.classList.add("allow-interactivity-".concat(id)); 2209 }); 2210 return function() { 2211 document.body.classList.remove("block-interactivity-".concat(id)); 2212 allow_1.forEach(function(el) { 2213 return el.classList.remove("allow-interactivity-".concat(id)); 2214 }); 2215 }; 2216 } 2217 return; 2218 }, [props.inert, props.lockRef.current, props.shards]); 2219 var shouldCancelEvent = React35.useCallback(function(event, parent) { 2220 if ("touches" in event && event.touches.length === 2 || event.type === "wheel" && event.ctrlKey) { 2221 return !lastProps.current.allowPinchZoom; 2222 } 2223 var touch = getTouchXY(event); 2224 var touchStart = touchStartRef.current; 2225 var deltaX = "deltaX" in event ? event.deltaX : touchStart[0] - touch[0]; 2226 var deltaY = "deltaY" in event ? event.deltaY : touchStart[1] - touch[1]; 2227 var currentAxis; 2228 var target = event.target; 2229 var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? "h" : "v"; 2230 if ("touches" in event && moveDirection === "h" && target.type === "range") { 2231 return false; 2232 } 2233 var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target); 2234 if (!canBeScrolledInMainDirection) { 2235 return true; 2236 } 2237 if (canBeScrolledInMainDirection) { 2238 currentAxis = moveDirection; 2239 } else { 2240 currentAxis = moveDirection === "v" ? "h" : "v"; 2241 canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target); 2242 } 2243 if (!canBeScrolledInMainDirection) { 2244 return false; 2245 } 2246 if (!activeAxis.current && "changedTouches" in event && (deltaX || deltaY)) { 2247 activeAxis.current = currentAxis; 2248 } 2249 if (!currentAxis) { 2250 return true; 2251 } 2252 var cancelingAxis = activeAxis.current || currentAxis; 2253 return handleScroll(cancelingAxis, parent, event, cancelingAxis === "h" ? deltaX : deltaY, true); 2254 }, []); 2255 var shouldPrevent = React35.useCallback(function(_event) { 2256 var event = _event; 2257 if (!lockStack.length || lockStack[lockStack.length - 1] !== Style2) { 2258 return; 2259 } 2260 var delta = "deltaY" in event ? getDeltaXY(event) : getTouchXY(event); 2261 var sourceEvent = shouldPreventQueue.current.filter(function(e) { 2262 return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); 2263 })[0]; 2264 if (sourceEvent && sourceEvent.should) { 2265 if (event.cancelable) { 2266 event.preventDefault(); 2267 } 2268 return; 2269 } 2270 if (!sourceEvent) { 2271 var shardNodes = (lastProps.current.shards || []).map(extractRef).filter(Boolean).filter(function(node) { 2272 return node.contains(event.target); 2273 }); 2274 var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation; 2275 if (shouldStop) { 2276 if (event.cancelable) { 2277 event.preventDefault(); 2278 } 2279 } 2280 } 2281 }, []); 2282 var shouldCancel = React35.useCallback(function(name, delta, target, should) { 2283 var event = { name, delta, target, should, shadowParent: getOutermostShadowParent(target) }; 2284 shouldPreventQueue.current.push(event); 2285 setTimeout(function() { 2286 shouldPreventQueue.current = shouldPreventQueue.current.filter(function(e) { 2287 return e !== event; 2288 }); 2289 }, 1); 2290 }, []); 2291 var scrollTouchStart = React35.useCallback(function(event) { 2292 touchStartRef.current = getTouchXY(event); 2293 activeAxis.current = void 0; 2294 }, []); 2295 var scrollWheel = React35.useCallback(function(event) { 2296 shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current)); 2297 }, []); 2298 var scrollTouchMove = React35.useCallback(function(event) { 2299 shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current)); 2300 }, []); 2301 React35.useEffect(function() { 2302 lockStack.push(Style2); 2303 props.setCallbacks({ 2304 onScrollCapture: scrollWheel, 2305 onWheelCapture: scrollWheel, 2306 onTouchMoveCapture: scrollTouchMove 2307 }); 2308 document.addEventListener("wheel", shouldPrevent, nonPassive); 2309 document.addEventListener("touchmove", shouldPrevent, nonPassive); 2310 document.addEventListener("touchstart", scrollTouchStart, nonPassive); 2311 return function() { 2312 lockStack = lockStack.filter(function(inst) { 2313 return inst !== Style2; 2314 }); 2315 document.removeEventListener("wheel", shouldPrevent, nonPassive); 2316 document.removeEventListener("touchmove", shouldPrevent, nonPassive); 2317 document.removeEventListener("touchstart", scrollTouchStart, nonPassive); 2318 }; 2319 }, []); 2320 var removeScrollBar = props.removeScrollBar, inert = props.inert; 2321 return React35.createElement( 2322 React35.Fragment, 2323 null, 2324 inert ? React35.createElement(Style2, { styles: generateStyle(id) }) : null, 2325 removeScrollBar ? React35.createElement(RemoveScrollBar, { noRelative: props.noRelative, gapMode: props.gapMode }) : null 2326 ); 2327 } 2328 function getOutermostShadowParent(node) { 2329 var shadowParent = null; 2330 while (node !== null) { 2331 if (node instanceof ShadowRoot) { 2332 shadowParent = node.host; 2333 node = node.host; 2334 } 2335 node = node.parentNode; 2336 } 2337 return shadowParent; 2338 } 2339 2340 // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/sidecar.js 2341 var sidecar_default = exportSidecar(effectCar, RemoveScrollSideCar); 2342 2343 // node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll/dist/es2015/Combination.js 2344 var ReactRemoveScroll = React36.forwardRef(function(props, ref) { 2345 return React36.createElement(RemoveScroll, __assign({}, props, { ref, sideCar: sidecar_default })); 2346 }); 2347 ReactRemoveScroll.classNames = RemoveScroll.classNames; 2348 var Combination_default = ReactRemoveScroll; 2349 2350 // node_modules/aria-hidden/dist/es2015/index.js 2351 var getDefaultParent = function(originalTarget) { 2352 if (typeof document === "undefined") { 2353 return null; 2354 } 2355 var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget; 2356 return sampleTarget.ownerDocument.body; 2357 }; 2358 var counterMap = /* @__PURE__ */ new WeakMap(); 2359 var uncontrolledNodes = /* @__PURE__ */ new WeakMap(); 2360 var markerMap = {}; 2361 var lockCount = 0; 2362 var unwrapHost = function(node) { 2363 return node && (node.host || unwrapHost(node.parentNode)); 2364 }; 2365 var correctTargets = function(parent, targets) { 2366 return targets.map(function(target) { 2367 if (parent.contains(target)) { 2368 return target; 2369 } 2370 var correctedTarget = unwrapHost(target); 2371 if (correctedTarget && parent.contains(correctedTarget)) { 2372 return correctedTarget; 2373 } 2374 console.error("aria-hidden", target, "in not contained inside", parent, ". Doing nothing"); 2375 return null; 2376 }).filter(function(x) { 2377 return Boolean(x); 2378 }); 2379 }; 2380 var applyAttributeToOthers = function(originalTarget, parentNode, markerName, controlAttribute) { 2381 var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]); 2382 if (!markerMap[markerName]) { 2383 markerMap[markerName] = /* @__PURE__ */ new WeakMap(); 2384 } 2385 var markerCounter = markerMap[markerName]; 2386 var hiddenNodes = []; 2387 var elementsToKeep = /* @__PURE__ */ new Set(); 2388 var elementsToStop = new Set(targets); 2389 var keep = function(el) { 2390 if (!el || elementsToKeep.has(el)) { 2391 return; 2392 } 2393 elementsToKeep.add(el); 2394 keep(el.parentNode); 2395 }; 2396 targets.forEach(keep); 2397 var deep = function(parent) { 2398 if (!parent || elementsToStop.has(parent)) { 2399 return; 2400 } 2401 Array.prototype.forEach.call(parent.children, function(node) { 2402 if (elementsToKeep.has(node)) { 2403 deep(node); 2404 } else { 2405 try { 2406 var attr = node.getAttribute(controlAttribute); 2407 var alreadyHidden = attr !== null && attr !== "false"; 2408 var counterValue = (counterMap.get(node) || 0) + 1; 2409 var markerValue = (markerCounter.get(node) || 0) + 1; 2410 counterMap.set(node, counterValue); 2411 markerCounter.set(node, markerValue); 2412 hiddenNodes.push(node); 2413 if (counterValue === 1 && alreadyHidden) { 2414 uncontrolledNodes.set(node, true); 2415 } 2416 if (markerValue === 1) { 2417 node.setAttribute(markerName, "true"); 2418 } 2419 if (!alreadyHidden) { 2420 node.setAttribute(controlAttribute, "true"); 2421 } 2422 } catch (e) { 2423 console.error("aria-hidden: cannot operate on ", node, e); 2424 } 2425 } 2426 }); 2427 }; 2428 deep(parentNode); 2429 elementsToKeep.clear(); 2430 lockCount++; 2431 return function() { 2432 hiddenNodes.forEach(function(node) { 2433 var counterValue = counterMap.get(node) - 1; 2434 var markerValue = markerCounter.get(node) - 1; 2435 counterMap.set(node, counterValue); 2436 markerCounter.set(node, markerValue); 2437 if (!counterValue) { 2438 if (!uncontrolledNodes.has(node)) { 2439 node.removeAttribute(controlAttribute); 2440 } 2441 uncontrolledNodes.delete(node); 2442 } 2443 if (!markerValue) { 2444 node.removeAttribute(markerName); 2445 } 2446 }); 2447 lockCount--; 2448 if (!lockCount) { 2449 counterMap = /* @__PURE__ */ new WeakMap(); 2450 counterMap = /* @__PURE__ */ new WeakMap(); 2451 uncontrolledNodes = /* @__PURE__ */ new WeakMap(); 2452 markerMap = {}; 2453 } 2454 }; 2455 }; 2456 var hideOthers = function(originalTarget, parentNode, markerName) { 2457 if (markerName === void 0) { 2458 markerName = "data-aria-hidden"; 2459 } 2460 var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]); 2461 var activeParentNode = parentNode || getDefaultParent(originalTarget); 2462 if (!activeParentNode) { 2463 return function() { 2464 return null; 2465 }; 2466 } 2467 targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll("[aria-live], script"))); 2468 return applyAttributeToOthers(targets, activeParentNode, markerName, "aria-hidden"); 2469 }; 2470 2471 // node_modules/@radix-ui/react-dialog/dist/index.mjs 2472 var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1); 2473 var DIALOG_NAME = "Dialog"; 2474 var [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME); 2475 var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME); 2476 var Dialog = (props) => { 2477 const { 2478 __scopeDialog, 2479 children, 2480 open: openProp, 2481 defaultOpen, 2482 onOpenChange, 2483 modal = true 2484 } = props; 2485 const triggerRef = React37.useRef(null); 2486 const contentRef = React37.useRef(null); 2487 const [open, setOpen] = useControllableState({ 2488 prop: openProp, 2489 defaultProp: defaultOpen ?? false, 2490 onChange: onOpenChange, 2491 caller: DIALOG_NAME 2492 }); 2493 return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( 2494 DialogProvider, 2495 { 2496 scope: __scopeDialog, 2497 triggerRef, 2498 contentRef, 2499 contentId: useId(), 2500 titleId: useId(), 2501 descriptionId: useId(), 2502 open, 2503 onOpenChange: setOpen, 2504 onOpenToggle: React37.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]), 2505 modal, 2506 children 2507 } 2508 ); 2509 }; 2510 Dialog.displayName = DIALOG_NAME; 2511 var TRIGGER_NAME = "DialogTrigger"; 2512 var DialogTrigger = React37.forwardRef( 2513 (props, forwardedRef) => { 2514 const { __scopeDialog, ...triggerProps } = props; 2515 const context = useDialogContext(TRIGGER_NAME, __scopeDialog); 2516 const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef); 2517 return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( 2518 Primitive4.button, 2519 { 2520 type: "button", 2521 "aria-haspopup": "dialog", 2522 "aria-expanded": context.open, 2523 "aria-controls": context.contentId, 2524 "data-state": getState(context.open), 2525 ...triggerProps, 2526 ref: composedTriggerRef, 2527 onClick: composeEventHandlers(props.onClick, context.onOpenToggle) 2528 } 2529 ); 2530 } 2531 ); 2532 DialogTrigger.displayName = TRIGGER_NAME; 2533 var PORTAL_NAME2 = "DialogPortal"; 2534 var [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME2, { 2535 forceMount: void 0 2536 }); 2537 var DialogPortal = (props) => { 2538 const { __scopeDialog, forceMount, children, container } = props; 2539 const context = useDialogContext(PORTAL_NAME2, __scopeDialog); 2540 return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(PortalProvider, { scope: __scopeDialog, forceMount, children: React37.Children.map(children, (child) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Portal, { asChild: true, container, children: child }) })) }); 2541 }; 2542 DialogPortal.displayName = PORTAL_NAME2; 2543 var OVERLAY_NAME = "DialogOverlay"; 2544 var DialogOverlay = React37.forwardRef( 2545 (props, forwardedRef) => { 2546 const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog); 2547 const { forceMount = portalContext.forceMount, ...overlayProps } = props; 2548 const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog); 2549 return context.modal ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null; 2550 } 2551 ); 2552 DialogOverlay.displayName = OVERLAY_NAME; 2553 var Slot = createSlot4("DialogOverlay.RemoveScroll"); 2554 var DialogOverlayImpl = React37.forwardRef( 2555 (props, forwardedRef) => { 2556 const { __scopeDialog, ...overlayProps } = props; 2557 const context = useDialogContext(OVERLAY_NAME, __scopeDialog); 2558 return ( 2559 // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll` 2560 // ie. when `Overlay` and `Content` are siblings 2561 /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Combination_default, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( 2562 Primitive4.div, 2563 { 2564 "data-state": getState(context.open), 2565 ...overlayProps, 2566 ref: forwardedRef, 2567 style: { pointerEvents: "auto", ...overlayProps.style } 2568 } 2569 ) }) 2570 ); 2571 } 2572 ); 2573 var CONTENT_NAME = "DialogContent"; 2574 var DialogContent = React37.forwardRef( 2575 (props, forwardedRef) => { 2576 const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog); 2577 const { forceMount = portalContext.forceMount, ...contentProps } = props; 2578 const context = useDialogContext(CONTENT_NAME, props.__scopeDialog); 2579 return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) }); 2580 } 2581 ); 2582 DialogContent.displayName = CONTENT_NAME; 2583 var DialogContentModal = React37.forwardRef( 2584 (props, forwardedRef) => { 2585 const context = useDialogContext(CONTENT_NAME, props.__scopeDialog); 2586 const contentRef = React37.useRef(null); 2587 const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef); 2588 React37.useEffect(() => { 2589 const content = contentRef.current; 2590 if (content) return hideOthers(content); 2591 }, []); 2592 return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( 2593 DialogContentImpl, 2594 { 2595 ...props, 2596 ref: composedRefs, 2597 trapFocus: context.open, 2598 disableOutsidePointerEvents: true, 2599 onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => { 2600 event.preventDefault(); 2601 context.triggerRef.current?.focus(); 2602 }), 2603 onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => { 2604 const originalEvent = event.detail.originalEvent; 2605 const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true; 2606 const isRightClick = originalEvent.button === 2 || ctrlLeftClick; 2607 if (isRightClick) event.preventDefault(); 2608 }), 2609 onFocusOutside: composeEventHandlers( 2610 props.onFocusOutside, 2611 (event) => event.preventDefault() 2612 ) 2613 } 2614 ); 2615 } 2616 ); 2617 var DialogContentNonModal = React37.forwardRef( 2618 (props, forwardedRef) => { 2619 const context = useDialogContext(CONTENT_NAME, props.__scopeDialog); 2620 const hasInteractedOutsideRef = React37.useRef(false); 2621 const hasPointerDownOutsideRef = React37.useRef(false); 2622 return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( 2623 DialogContentImpl, 2624 { 2625 ...props, 2626 ref: forwardedRef, 2627 trapFocus: false, 2628 disableOutsidePointerEvents: false, 2629 onCloseAutoFocus: (event) => { 2630 props.onCloseAutoFocus?.(event); 2631 if (!event.defaultPrevented) { 2632 if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus(); 2633 event.preventDefault(); 2634 } 2635 hasInteractedOutsideRef.current = false; 2636 hasPointerDownOutsideRef.current = false; 2637 }, 2638 onInteractOutside: (event) => { 2639 props.onInteractOutside?.(event); 2640 if (!event.defaultPrevented) { 2641 hasInteractedOutsideRef.current = true; 2642 if (event.detail.originalEvent.type === "pointerdown") { 2643 hasPointerDownOutsideRef.current = true; 2644 } 2645 } 2646 const target = event.target; 2647 const targetIsTrigger = context.triggerRef.current?.contains(target); 2648 if (targetIsTrigger) event.preventDefault(); 2649 if (event.detail.originalEvent.type === "focusin" && hasPointerDownOutsideRef.current) { 2650 event.preventDefault(); 2651 } 2652 } 2653 } 2654 ); 2655 } 2656 ); 2657 var DialogContentImpl = React37.forwardRef( 2658 (props, forwardedRef) => { 2659 const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props; 2660 const context = useDialogContext(CONTENT_NAME, __scopeDialog); 2661 const contentRef = React37.useRef(null); 2662 const composedRefs = useComposedRefs(forwardedRef, contentRef); 2663 useFocusGuards(); 2664 return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [ 2665 /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( 2666 FocusScope, 2667 { 2668 asChild: true, 2669 loop: true, 2670 trapped: trapFocus, 2671 onMountAutoFocus: onOpenAutoFocus, 2672 onUnmountAutoFocus: onCloseAutoFocus, 2673 children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( 2674 DismissableLayer, 2675 { 2676 role: "dialog", 2677 id: context.contentId, 2678 "aria-describedby": context.descriptionId, 2679 "aria-labelledby": context.titleId, 2680 "data-state": getState(context.open), 2681 ...contentProps, 2682 ref: composedRefs, 2683 onDismiss: () => context.onOpenChange(false) 2684 } 2685 ) 2686 } 2687 ), 2688 /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [ 2689 /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(TitleWarning, { titleId: context.titleId }), 2690 /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DescriptionWarning, { contentRef, descriptionId: context.descriptionId }) 2691 ] }) 2692 ] }); 2693 } 2694 ); 2695 var TITLE_NAME = "DialogTitle"; 2696 var DialogTitle = React37.forwardRef( 2697 (props, forwardedRef) => { 2698 const { __scopeDialog, ...titleProps } = props; 2699 const context = useDialogContext(TITLE_NAME, __scopeDialog); 2700 return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Primitive4.h2, { id: context.titleId, ...titleProps, ref: forwardedRef }); 2701 } 2702 ); 2703 DialogTitle.displayName = TITLE_NAME; 2704 var DESCRIPTION_NAME = "DialogDescription"; 2705 var DialogDescription = React37.forwardRef( 2706 (props, forwardedRef) => { 2707 const { __scopeDialog, ...descriptionProps } = props; 2708 const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog); 2709 return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Primitive4.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef }); 2710 } 2711 ); 2712 DialogDescription.displayName = DESCRIPTION_NAME; 2713 var CLOSE_NAME = "DialogClose"; 2714 var DialogClose = React37.forwardRef( 2715 (props, forwardedRef) => { 2716 const { __scopeDialog, ...closeProps } = props; 2717 const context = useDialogContext(CLOSE_NAME, __scopeDialog); 2718 return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( 2719 Primitive4.button, 2720 { 2721 type: "button", 2722 ...closeProps, 2723 ref: forwardedRef, 2724 onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false)) 2725 } 2726 ); 2727 } 2728 ); 2729 DialogClose.displayName = CLOSE_NAME; 2730 function getState(open) { 2731 return open ? "open" : "closed"; 2732 } 2733 var TITLE_WARNING_NAME = "DialogTitleWarning"; 2734 var [WarningProvider, useWarningContext] = createContext2(TITLE_WARNING_NAME, { 2735 contentName: CONTENT_NAME, 2736 titleName: TITLE_NAME, 2737 docsSlug: "dialog" 2738 }); 2739 var TitleWarning = ({ titleId }) => { 2740 const titleWarningContext = useWarningContext(TITLE_WARNING_NAME); 2741 const MESSAGE = `\`$titleWarningContext.contentName}\` requires a \`$titleWarningContext.titleName}\` for the component to be accessible for screen reader users. 2742 2743 If you want to hide the \`$titleWarningContext.titleName}\`, you can wrap it with our VisuallyHidden component. 2744 2745 For more information, see https://radix-ui.com/primitives/docs/components/$titleWarningContext.docsSlug}`; 2746 React37.useEffect(() => { 2747 if (titleId) { 2748 const hasTitle = document.getElementById(titleId); 2749 if (!hasTitle) console.error(MESSAGE); 2750 } 2751 }, [MESSAGE, titleId]); 2752 return null; 2753 }; 2754 var DESCRIPTION_WARNING_NAME = "DialogDescriptionWarning"; 2755 var DescriptionWarning = ({ contentRef, descriptionId }) => { 2756 const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME); 2757 const MESSAGE = `Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {$descriptionWarningContext.contentName}}.`; 2758 React37.useEffect(() => { 2759 const describedById = contentRef.current?.getAttribute("aria-describedby"); 2760 if (descriptionId && describedById) { 2761 const hasDescription = document.getElementById(descriptionId); 2762 if (!hasDescription) console.warn(MESSAGE); 2763 } 2764 }, [MESSAGE, contentRef, descriptionId]); 2765 return null; 2766 }; 2767 var Root = Dialog; 2768 var Portal2 = DialogPortal; 2769 var Overlay = DialogOverlay; 2770 var Content = DialogContent; 2771 2772 // node_modules/cmdk/dist/index.mjs 2773 var t = __toESM(require_react(), 1); 2774 2775 // node_modules/cmdk/node_modules/@radix-ui/react-primitive/dist/index.mjs 2776 var React40 = __toESM(require_react(), 1); 2777 var ReactDOM6 = __toESM(require_react_dom(), 1); 2778 2779 // node_modules/cmdk/node_modules/@radix-ui/react-slot/dist/index.mjs 2780 var React39 = __toESM(require_react(), 1); 2781 2782 // node_modules/cmdk/node_modules/@radix-ui/react-compose-refs/dist/index.mjs 2783 var React38 = __toESM(require_react(), 1); 2784 function setRef6(ref, value) { 2785 if (typeof ref === "function") { 2786 return ref(value); 2787 } else if (ref !== null && ref !== void 0) { 2788 ref.current = value; 2789 } 2790 } 2791 function composeRefs6(...refs) { 2792 return (node) => { 2793 let hasCleanup = false; 2794 const cleanups = refs.map((ref) => { 2795 const cleanup = setRef6(ref, node); 2796 if (!hasCleanup && typeof cleanup == "function") { 2797 hasCleanup = true; 2798 } 2799 return cleanup; 2800 }); 2801 if (hasCleanup) { 2802 return () => { 2803 for (let i = 0; i < cleanups.length; i++) { 2804 const cleanup = cleanups[i]; 2805 if (typeof cleanup == "function") { 2806 cleanup(); 2807 } else { 2808 setRef6(refs[i], null); 2809 } 2810 } 2811 }; 2812 } 2813 }; 2814 } 2815 2816 // node_modules/cmdk/node_modules/@radix-ui/react-slot/dist/index.mjs 2817 var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1); 2818 var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy"); 2819 var use = React39[" use ".trim().toString()]; 2820 function isPromiseLike(value) { 2821 return typeof value === "object" && value !== null && "then" in value; 2822 } 2823 function isLazyComponent(element) { 2824 return element != null && typeof element === "object" && "$$typeof" in element && element.$$typeof === REACT_LAZY_TYPE && "_payload" in element && isPromiseLike(element._payload); 2825 } 2826 // @__NO_SIDE_EFFECTS__ 2827 function createSlot5(ownerName) { 2828 const SlotClone = /* @__PURE__ */ createSlotClone5(ownerName); 2829 const Slot2 = React39.forwardRef((props, forwardedRef) => { 2830 let { children, ...slotProps } = props; 2831 if (isLazyComponent(children) && typeof use === "function") { 2832 children = use(children._payload); 2833 } 2834 const childrenArray = React39.Children.toArray(children); 2835 const slottable = childrenArray.find(isSlottable5); 2836 if (slottable) { 2837 const newElement = slottable.props.children; 2838 const newChildren = childrenArray.map((child) => { 2839 if (child === slottable) { 2840 if (React39.Children.count(newElement) > 1) return React39.Children.only(null); 2841 return React39.isValidElement(newElement) ? newElement.props.children : null; 2842 } else { 2843 return child; 2844 } 2845 }); 2846 return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React39.isValidElement(newElement) ? React39.cloneElement(newElement, void 0, newChildren) : null }); 2847 } 2848 return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children }); 2849 }); 2850 Slot2.displayName = `$ownerName}.Slot`; 2851 return Slot2; 2852 } 2853 // @__NO_SIDE_EFFECTS__ 2854 function createSlotClone5(ownerName) { 2855 const SlotClone = React39.forwardRef((props, forwardedRef) => { 2856 let { children, ...slotProps } = props; 2857 if (isLazyComponent(children) && typeof use === "function") { 2858 children = use(children._payload); 2859 } 2860 if (React39.isValidElement(children)) { 2861 const childrenRef = getElementRef6(children); 2862 const props2 = mergeProps5(slotProps, children.props); 2863 if (children.type !== React39.Fragment) { 2864 props2.ref = forwardedRef ? composeRefs6(forwardedRef, childrenRef) : childrenRef; 2865 } 2866 return React39.cloneElement(children, props2); 2867 } 2868 return React39.Children.count(children) > 1 ? React39.Children.only(null) : null; 2869 }); 2870 SlotClone.displayName = `$ownerName}.SlotClone`; 2871 return SlotClone; 2872 } 2873 var SLOTTABLE_IDENTIFIER5 = /* @__PURE__ */ Symbol("radix.slottable"); 2874 function isSlottable5(child) { 2875 return React39.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER5; 2876 } 2877 function mergeProps5(slotProps, childProps) { 2878 const overrideProps = { ...childProps }; 2879 for (const propName in childProps) { 2880 const slotPropValue = slotProps[propName]; 2881 const childPropValue = childProps[propName]; 2882 const isHandler = /^on[A-Z]/.test(propName); 2883 if (isHandler) { 2884 if (slotPropValue && childPropValue) { 2885 overrideProps[propName] = (...args) => { 2886 const result = childPropValue(...args); 2887 slotPropValue(...args); 2888 return result; 2889 }; 2890 } else if (slotPropValue) { 2891 overrideProps[propName] = slotPropValue; 2892 } 2893 } else if (propName === "style") { 2894 overrideProps[propName] = { ...slotPropValue, ...childPropValue }; 2895 } else if (propName === "className") { 2896 overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" "); 2897 } 2898 } 2899 return { ...slotProps, ...overrideProps }; 2900 } 2901 function getElementRef6(element) { 2902 let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get; 2903 let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; 2904 if (mayWarn) { 2905 return element.ref; 2906 } 2907 getter = Object.getOwnPropertyDescriptor(element, "ref")?.get; 2908 mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; 2909 if (mayWarn) { 2910 return element.props.ref; 2911 } 2912 return element.props.ref || element.ref; 2913 } 2914 2915 // node_modules/cmdk/node_modules/@radix-ui/react-primitive/dist/index.mjs 2916 var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1); 2917 var NODES5 = [ 2918 "a", 2919 "button", 2920 "div", 2921 "form", 2922 "h2", 2923 "h3", 2924 "img", 2925 "input", 2926 "label", 2927 "li", 2928 "nav", 2929 "ol", 2930 "p", 2931 "select", 2932 "span", 2933 "svg", 2934 "ul" 2935 ]; 2936 var Primitive5 = NODES5.reduce((primitive, node) => { 2937 const Slot2 = createSlot5(`Primitive.$node}`); 2938 const Node2 = React40.forwardRef((props, forwardedRef) => { 2939 const { asChild, ...primitiveProps } = props; 2940 const Comp = asChild ? Slot2 : node; 2941 if (typeof window !== "undefined") { 2942 window[/* @__PURE__ */ Symbol.for("radix-ui")] = true; 2943 } 2944 return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Comp, { ...primitiveProps, ref: forwardedRef }); 2945 }); 2946 Node2.displayName = `Primitive.$node}`; 2947 return { ...primitive, [node]: Node2 }; 2948 }, {}); 2949 2950 // node_modules/cmdk/node_modules/@radix-ui/react-id/dist/index.mjs 2951 var React42 = __toESM(require_react(), 1); 2952 2953 // node_modules/cmdk/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs 2954 var React41 = __toESM(require_react(), 1); 2955 var useLayoutEffect24 = globalThis?.document ? React41.useLayoutEffect : () => { 2956 }; 2957 2958 // node_modules/cmdk/node_modules/@radix-ui/react-id/dist/index.mjs 2959 var useReactId2 = React42[" useId ".trim().toString()] || (() => void 0); 2960 var count3 = 0; 2961 function useId2(deterministicId) { 2962 const [id, setId] = React42.useState(useReactId2()); 2963 useLayoutEffect24(() => { 2964 if (!deterministicId) setId((reactId) => reactId ?? String(count3++)); 2965 }, [deterministicId]); 2966 return deterministicId || (id ? `radix-$id}` : ""); 2967 } 2968 2969 // node_modules/cmdk/dist/index.mjs 2970 var N = '[cmdk-group=""]'; 2971 var Y2 = '[cmdk-group-items=""]'; 2972 var be = '[cmdk-group-heading=""]'; 2973 var le = '[cmdk-item=""]'; 2974 var ce = `$le}:not([aria-disabled="true"])`; 2975 var Z = "cmdk-item-select"; 2976 var T = "data-value"; 2977 var Re = (r, o, n) => W(r, o, n); 2978 var ue = t.createContext(void 0); 2979 var K2 = () => t.useContext(ue); 2980 var de = t.createContext(void 0); 2981 var ee = () => t.useContext(de); 2982 var fe = t.createContext(void 0); 2983 var me = t.forwardRef((r, o) => { 2984 let n = L(() => { 2985 var e, a; 2986 return { search: "", value: (a = (e = r.value) != null ? e : r.defaultValue) != null ? a : "", selectedItemId: void 0, filtered: { count: 0, items: /* @__PURE__ */ new Map(), groups: /* @__PURE__ */ new Set() } }; 2987 }), u2 = L(() => /* @__PURE__ */ new Set()), c = L(() => /* @__PURE__ */ new Map()), d = L(() => /* @__PURE__ */ new Map()), f = L(() => /* @__PURE__ */ new Set()), p2 = pe(r), { label: b, children: m2, value: R, onValueChange: x, filter: C, shouldFilter: S, loop: A, disablePointerSelection: ge = false, vimBindings: j = true, ...O } = r, $2 = useId2(), q = useId2(), _ = useId2(), I = t.useRef(null), v = ke(); 2988 k2(() => { 2989 if (R !== void 0) { 2990 let e = R.trim(); 2991 n.current.value = e, E.emit(); 2992 } 2993 }, [R]), k2(() => { 2994 v(6, ne); 2995 }, []); 2996 let E = t.useMemo(() => ({ subscribe: (e) => (f.current.add(e), () => f.current.delete(e)), snapshot: () => n.current, setState: (e, a, s) => { 2997 var i, l, g, y; 2998 if (!Object.is(n.current[e], a)) { 2999 if (n.current[e] = a, e === "search") J2(), z(), v(1, W2); 3000 else if (e === "value") { 3001 if (document.activeElement.hasAttribute("cmdk-input") || document.activeElement.hasAttribute("cmdk-root")) { 3002 let h = document.getElementById(_); 3003 h ? h.focus() : (i = document.getElementById($2)) == null || i.focus(); 3004 } 3005 if (v(7, () => { 3006 var h; 3007 n.current.selectedItemId = (h = M()) == null ? void 0 : h.id, E.emit(); 3008 }), s || v(5, ne), ((l = p2.current) == null ? void 0 : l.value) !== void 0) { 3009 let h = a != null ? a : ""; 3010 (y = (g = p2.current).onValueChange) == null || y.call(g, h); 3011 return; 3012 } 3013 } 3014 E.emit(); 3015 } 3016 }, emit: () => { 3017 f.current.forEach((e) => e()); 3018 } }), []), U2 = t.useMemo(() => ({ value: (e, a, s) => { 3019 var i; 3020 a !== ((i = d.current.get(e)) == null ? void 0 : i.value) && (d.current.set(e, { value: a, keywords: s }), n.current.filtered.items.set(e, te(a, s)), v(2, () => { 3021 z(), E.emit(); 3022 })); 3023 }, item: (e, a) => (u2.current.add(e), a && (c.current.has(a) ? c.current.get(a).add(e) : c.current.set(a, /* @__PURE__ */ new Set([e]))), v(3, () => { 3024 J2(), z(), n.current.value || W2(), E.emit(); 3025 }), () => { 3026 d.current.delete(e), u2.current.delete(e), n.current.filtered.items.delete(e); 3027 let s = M(); 3028 v(4, () => { 3029 J2(), (s == null ? void 0 : s.getAttribute("id")) === e && W2(), E.emit(); 3030 }); 3031 }), group: (e) => (c.current.has(e) || c.current.set(e, /* @__PURE__ */ new Set()), () => { 3032 d.current.delete(e), c.current.delete(e); 3033 }), filter: () => p2.current.shouldFilter, label: b || r["aria-label"], getDisablePointerSelection: () => p2.current.disablePointerSelection, listId: $2, inputId: _, labelId: q, listInnerRef: I }), []); 3034 function te(e, a) { 3035 var i, l; 3036 let s = (l = (i = p2.current) == null ? void 0 : i.filter) != null ? l : Re; 3037 return e ? s(e, n.current.search, a) : 0; 3038 } 3039 function z() { 3040 if (!n.current.search || p2.current.shouldFilter === false) return; 3041 let e = n.current.filtered.items, a = []; 3042 n.current.filtered.groups.forEach((i) => { 3043 let l = c.current.get(i), g = 0; 3044 l.forEach((y) => { 3045 let h = e.get(y); 3046 g = Math.max(h, g); 3047 }), a.push([i, g]); 3048 }); 3049 let s = I.current; 3050 V().sort((i, l) => { 3051 var h, F; 3052 let g = i.getAttribute("id"), y = l.getAttribute("id"); 3053 return ((h = e.get(y)) != null ? h : 0) - ((F = e.get(g)) != null ? F : 0); 3054 }).forEach((i) => { 3055 let l = i.closest(Y2); 3056 l ? l.appendChild(i.parentElement === l ? i : i.closest(`$Y2} > *`)) : s.appendChild(i.parentElement === s ? i : i.closest(`$Y2} > *`)); 3057 }), a.sort((i, l) => l[1] - i[1]).forEach((i) => { 3058 var g; 3059 let l = (g = I.current) == null ? void 0 : g.querySelector(`$N}[$T}="$encodeURIComponent(i[0])}"]`); 3060 l == null || l.parentElement.appendChild(l); 3061 }); 3062 } 3063 function W2() { 3064 let e = V().find((s) => s.getAttribute("aria-disabled") !== "true"), a = e == null ? void 0 : e.getAttribute(T); 3065 E.setState("value", a || void 0); 3066 } 3067 function J2() { 3068 var a, s, i, l; 3069 if (!n.current.search || p2.current.shouldFilter === false) { 3070 n.current.filtered.count = u2.current.size; 3071 return; 3072 } 3073 n.current.filtered.groups = /* @__PURE__ */ new Set(); 3074 let e = 0; 3075 for (let g of u2.current) { 3076 let y = (s = (a = d.current.get(g)) == null ? void 0 : a.value) != null ? s : "", h = (l = (i = d.current.get(g)) == null ? void 0 : i.keywords) != null ? l : [], F = te(y, h); 3077 n.current.filtered.items.set(g, F), F > 0 && e++; 3078 } 3079 for (let [g, y] of c.current) for (let h of y) if (n.current.filtered.items.get(h) > 0) { 3080 n.current.filtered.groups.add(g); 3081 break; 3082 } 3083 n.current.filtered.count = e; 3084 } 3085 function ne() { 3086 var a, s, i; 3087 let e = M(); 3088 e && (((a = e.parentElement) == null ? void 0 : a.firstChild) === e && ((i = (s = e.closest(N)) == null ? void 0 : s.querySelector(be)) == null || i.scrollIntoView({ block: "nearest" })), e.scrollIntoView({ block: "nearest" })); 3089 } 3090 function M() { 3091 var e; 3092 return (e = I.current) == null ? void 0 : e.querySelector(`$le}[aria-selected="true"]`); 3093 } 3094 function V() { 3095 var e; 3096 return Array.from(((e = I.current) == null ? void 0 : e.querySelectorAll(ce)) || []); 3097 } 3098 function X2(e) { 3099 let s = V()[e]; 3100 s && E.setState("value", s.getAttribute(T)); 3101 } 3102 function Q(e) { 3103 var g; 3104 let a = M(), s = V(), i = s.findIndex((y) => y === a), l = s[i + e]; 3105 (g = p2.current) != null && g.loop && (l = i + e < 0 ? s[s.length - 1] : i + e === s.length ? s[0] : s[i + e]), l && E.setState("value", l.getAttribute(T)); 3106 } 3107 function re(e) { 3108 let a = M(), s = a == null ? void 0 : a.closest(N), i; 3109 for (; s && !i; ) s = e > 0 ? we(s, N) : De(s, N), i = s == null ? void 0 : s.querySelector(ce); 3110 i ? E.setState("value", i.getAttribute(T)) : Q(e); 3111 } 3112 let oe = () => X2(V().length - 1), ie = (e) => { 3113 e.preventDefault(), e.metaKey ? oe() : e.altKey ? re(1) : Q(1); 3114 }, se = (e) => { 3115 e.preventDefault(), e.metaKey ? X2(0) : e.altKey ? re(-1) : Q(-1); 3116 }; 3117 return t.createElement(Primitive5.div, { ref: o, tabIndex: -1, ...O, "cmdk-root": "", onKeyDown: (e) => { 3118 var s; 3119 (s = O.onKeyDown) == null || s.call(O, e); 3120 let a = e.nativeEvent.isComposing || e.keyCode === 229; 3121 if (!(e.defaultPrevented || a)) switch (e.key) { 3122 case "n": 3123 case "j": { 3124 j && e.ctrlKey && ie(e); 3125 break; 3126 } 3127 case "ArrowDown": { 3128 ie(e); 3129 break; 3130 } 3131 case "p": 3132 case "k": { 3133 j && e.ctrlKey && se(e); 3134 break; 3135 } 3136 case "ArrowUp": { 3137 se(e); 3138 break; 3139 } 3140 case "Home": { 3141 e.preventDefault(), X2(0); 3142 break; 3143 } 3144 case "End": { 3145 e.preventDefault(), oe(); 3146 break; 3147 } 3148 case "Enter": { 3149 e.preventDefault(); 3150 let i = M(); 3151 if (i) { 3152 let l = new Event(Z); 3153 i.dispatchEvent(l); 3154 } 3155 } 3156 } 3157 } }, t.createElement("label", { "cmdk-label": "", htmlFor: U2.inputId, id: U2.labelId, style: Te }, b), B2(r, (e) => t.createElement(de.Provider, { value: E }, t.createElement(ue.Provider, { value: U2 }, e)))); 3158 }); 3159 var he = t.forwardRef((r, o) => { 3160 var _, I; 3161 let n = useId2(), u2 = t.useRef(null), c = t.useContext(fe), d = K2(), f = pe(r), p2 = (I = (_ = f.current) == null ? void 0 : _.forceMount) != null ? I : c == null ? void 0 : c.forceMount; 3162 k2(() => { 3163 if (!p2) return d.item(n, c == null ? void 0 : c.id); 3164 }, [p2]); 3165 let b = ve(n, u2, [r.value, r.children, u2], r.keywords), m2 = ee(), R = P((v) => v.value && v.value === b.current), x = P((v) => p2 || d.filter() === false ? true : v.search ? v.filtered.items.get(n) > 0 : true); 3166 t.useEffect(() => { 3167 let v = u2.current; 3168 if (!(!v || r.disabled)) return v.addEventListener(Z, C), () => v.removeEventListener(Z, C); 3169 }, [x, r.onSelect, r.disabled]); 3170 function C() { 3171 var v, E; 3172 S(), (E = (v = f.current).onSelect) == null || E.call(v, b.current); 3173 } 3174 function S() { 3175 m2.setState("value", b.current, true); 3176 } 3177 if (!x) return null; 3178 let { disabled: A, value: ge, onSelect: j, forceMount: O, keywords: $2, ...q } = r; 3179 return t.createElement(Primitive5.div, { ref: composeRefs6(u2, o), ...q, id: n, "cmdk-item": "", role: "option", "aria-disabled": !!A, "aria-selected": !!R, "data-disabled": !!A, "data-selected": !!R, onPointerMove: A || d.getDisablePointerSelection() ? void 0 : S, onClick: A ? void 0 : C }, r.children); 3180 }); 3181 var Ee = t.forwardRef((r, o) => { 3182 let { heading: n, children: u2, forceMount: c, ...d } = r, f = useId2(), p2 = t.useRef(null), b = t.useRef(null), m2 = useId2(), R = K2(), x = P((S) => c || R.filter() === false ? true : S.search ? S.filtered.groups.has(f) : true); 3183 k2(() => R.group(f), []), ve(f, p2, [r.value, r.heading, b]); 3184 let C = t.useMemo(() => ({ id: f, forceMount: c }), [c]); 3185 return t.createElement(Primitive5.div, { ref: composeRefs6(p2, o), ...d, "cmdk-group": "", role: "presentation", hidden: x ? void 0 : true }, n && t.createElement("div", { ref: b, "cmdk-group-heading": "", "aria-hidden": true, id: m2 }, n), B2(r, (S) => t.createElement("div", { "cmdk-group-items": "", role: "group", "aria-labelledby": n ? m2 : void 0 }, t.createElement(fe.Provider, { value: C }, S)))); 3186 }); 3187 var ye = t.forwardRef((r, o) => { 3188 let { alwaysRender: n, ...u2 } = r, c = t.useRef(null), d = P((f) => !f.search); 3189 return !n && !d ? null : t.createElement(Primitive5.div, { ref: composeRefs6(c, o), ...u2, "cmdk-separator": "", role: "separator" }); 3190 }); 3191 var Se = t.forwardRef((r, o) => { 3192 let { onValueChange: n, ...u2 } = r, c = r.value != null, d = ee(), f = P((m2) => m2.search), p2 = P((m2) => m2.selectedItemId), b = K2(); 3193 return t.useEffect(() => { 3194 r.value != null && d.setState("search", r.value); 3195 }, [r.value]), t.createElement(Primitive5.input, { ref: o, ...u2, "cmdk-input": "", autoComplete: "off", autoCorrect: "off", spellCheck: false, "aria-autocomplete": "list", role: "combobox", "aria-expanded": true, "aria-controls": b.listId, "aria-labelledby": b.labelId, "aria-activedescendant": p2, id: b.inputId, type: "text", value: c ? r.value : f, onChange: (m2) => { 3196 c || d.setState("search", m2.target.value), n == null || n(m2.target.value); 3197 } }); 3198 }); 3199 var Ce = t.forwardRef((r, o) => { 3200 let { children: n, label: u2 = "Suggestions", ...c } = r, d = t.useRef(null), f = t.useRef(null), p2 = P((m2) => m2.selectedItemId), b = K2(); 3201 return t.useEffect(() => { 3202 if (f.current && d.current) { 3203 let m2 = f.current, R = d.current, x, C = new ResizeObserver(() => { 3204 x = requestAnimationFrame(() => { 3205 let S = m2.offsetHeight; 3206 R.style.setProperty("--cmdk-list-height", S.toFixed(1) + "px"); 3207 }); 3208 }); 3209 return C.observe(m2), () => { 3210 cancelAnimationFrame(x), C.unobserve(m2); 3211 }; 3212 } 3213 }, []), t.createElement(Primitive5.div, { ref: composeRefs6(d, o), ...c, "cmdk-list": "", role: "listbox", tabIndex: -1, "aria-activedescendant": p2, "aria-label": u2, id: b.listId }, B2(r, (m2) => t.createElement("div", { ref: composeRefs6(f, b.listInnerRef), "cmdk-list-sizer": "" }, m2))); 3214 }); 3215 var xe = t.forwardRef((r, o) => { 3216 let { open: n, onOpenChange: u2, overlayClassName: c, contentClassName: d, container: f, ...p2 } = r; 3217 return t.createElement(Root, { open: n, onOpenChange: u2 }, t.createElement(Portal2, { container: f }, t.createElement(Overlay, { "cmdk-overlay": "", className: c }), t.createElement(Content, { "aria-label": r.label, "cmdk-dialog": "", className: d }, t.createElement(me, { ref: o, ...p2 })))); 3218 }); 3219 var Ie = t.forwardRef((r, o) => P((u2) => u2.filtered.count === 0) ? t.createElement(Primitive5.div, { ref: o, ...r, "cmdk-empty": "", role: "presentation" }) : null); 3220 var Pe = t.forwardRef((r, o) => { 3221 let { progress: n, children: u2, label: c = "Loading...", ...d } = r; 3222 return t.createElement(Primitive5.div, { ref: o, ...d, "cmdk-loading": "", role: "progressbar", "aria-valuenow": n, "aria-valuemin": 0, "aria-valuemax": 100, "aria-label": c }, B2(r, (f) => t.createElement("div", { "aria-hidden": true }, f))); 3223 }); 3224 var _e = Object.assign(me, { List: Ce, Item: he, Input: Se, Group: Ee, Separator: ye, Dialog: xe, Empty: Ie, Loading: Pe }); 3225 function we(r, o) { 3226 let n = r.nextElementSibling; 3227 for (; n; ) { 3228 if (n.matches(o)) return n; 3229 n = n.nextElementSibling; 3230 } 3231 } 3232 function De(r, o) { 3233 let n = r.previousElementSibling; 3234 for (; n; ) { 3235 if (n.matches(o)) return n; 3236 n = n.previousElementSibling; 3237 } 3238 } 3239 function pe(r) { 3240 let o = t.useRef(r); 3241 return k2(() => { 3242 o.current = r; 3243 }), o; 3244 } 3245 var k2 = typeof window == "undefined" ? t.useEffect : t.useLayoutEffect; 3246 function L(r) { 3247 let o = t.useRef(); 3248 return o.current === void 0 && (o.current = r()), o; 3249 } 3250 function P(r) { 3251 let o = ee(), n = () => r(o.snapshot()); 3252 return t.useSyncExternalStore(o.subscribe, n, n); 3253 } 3254 function ve(r, o, n, u2 = []) { 3255 let c = t.useRef(), d = K2(); 3256 return k2(() => { 3257 var b; 3258 let f = (() => { 3259 var m2; 3260 for (let R of n) { 3261 if (typeof R == "string") return R.trim(); 3262 if (typeof R == "object" && "current" in R) return R.current ? (m2 = R.current.textContent) == null ? void 0 : m2.trim() : c.current; 3263 } 3264 })(), p2 = u2.map((m2) => m2.trim()); 3265 d.value(r, f, p2), (b = o.current) == null || b.setAttribute(T, f), c.current = f; 3266 }), c; 3267 } 3268 var ke = () => { 3269 let [r, o] = t.useState(), n = L(() => /* @__PURE__ */ new Map()); 3270 return k2(() => { 3271 n.current.forEach((u2) => u2()), n.current = /* @__PURE__ */ new Map(); 3272 }, [r]), (u2, c) => { 3273 n.current.set(u2, c), o({}); 3274 }; 3275 }; 3276 function Me(r) { 3277 let o = r.type; 3278 return typeof o == "function" ? o(r.props) : "render" in o ? o.render(r.props) : r; 3279 } 3280 function B2({ asChild: r, children: o }, n) { 3281 return r && t.isValidElement(o) ? t.cloneElement(Me(o), { ref: o.ref }, n(o.props.children)) : n(o); 3282 } 3283 var Te = { position: "absolute", width: "1px", height: "1px", padding: "0", margin: "-1px", overflow: "hidden", clip: "rect(0, 0, 0, 0)", whiteSpace: "nowrap", borderWidth: "0" }; 3284 3285 // packages/workflow/build-module/components/workflow-menu.mjs 3286 var import_data = __toESM(require_data(), 1); 3287 var import_element2 = __toESM(require_element(), 1); 3288 var import_i18n = __toESM(require_i18n(), 1); 3289 var import_components = __toESM(require_components(), 1); 3290 var import_keyboard_shortcuts = __toESM(require_keyboard_shortcuts(), 1); 3291 3292 // packages/icons/build-module/icon/index.mjs 3293 var import_element = __toESM(require_element(), 1); 3294 var icon_default = (0, import_element.forwardRef)( 3295 ({ icon, size = 24, ...props }, ref) => { 3296 return (0, import_element.cloneElement)(icon, { 3297 width: size, 3298 height: size, 3299 ...props, 3300 ref 3301 }); 3302 } 3303 ); 3304 3305 // packages/icons/build-module/library/search.mjs 3306 var import_primitives = __toESM(require_primitives(), 1); 3307 var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1); 3308 var search_default = /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_primitives.Path, { d: "M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z" }) }); 3309 3310 // packages/workflow/build-module/components/workflow-menu.mjs 3311 import { executeAbility, store as abilitiesStore } from "@wordpress/abilities"; 3312 3313 // packages/workflow/build-module/lock-unlock.mjs 3314 var import_private_apis = __toESM(require_private_apis(), 1); 3315 var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)( 3316 "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.", 3317 "@wordpress/workflows" 3318 ); 3319 3320 // packages/workflow/build-module/components/workflow-menu.mjs 3321 var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1); 3322 if (typeof document !== "undefined" && !document.head.querySelector("style[data-wp-hash='cbad731ae6']")) { 3323 const style = document.createElement("style"); 3324 style.setAttribute("data-wp-hash", "cbad731ae6"); 3325 style.appendChild(document.createTextNode(":root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.workflows-workflow-menu{border-radius:4px;margin:auto;max-width:400px;position:relative;top:calc(5% + 64px);width:calc(100% - 32px)}@media (min-width:600px){.workflows-workflow-menu{top:calc(10% + 64px)}}.workflows-workflow-menu .components-modal__content{margin:0;padding:0}.workflows-workflow-menu__overlay{align-items:start;display:block}.workflows-workflow-menu__header{padding:0 16px}.workflows-workflow-menu__header-search-icon:dir(ltr){transform:scaleX(-1)}.workflows-workflow-menu__container{will-change:transform}.workflows-workflow-menu__container:focus{outline:none}.workflows-workflow-menu__container [cmdk-input]{border:none;border-radius:0;color:#1e1e1e;font-size:15px;line-height:28px;margin:0;outline:none;padding:16px 4px;width:100%}.workflows-workflow-menu__container [cmdk-input]::placeholder{color:#757575}.workflows-workflow-menu__container [cmdk-input]:focus{box-shadow:none;outline:none}.workflows-workflow-menu__container [cmdk-item]{align-items:center;border-radius:2px;color:#1e1e1e;cursor:pointer;display:flex;font-size:13px}.workflows-workflow-menu__container [cmdk-item]:active,.workflows-workflow-menu__container [cmdk-item][aria-selected=true]{background:var(--wp-admin-theme-color);color:#fff}.workflows-workflow-menu__container [cmdk-item][aria-disabled=true]{color:#949494;cursor:not-allowed}.workflows-workflow-menu__container [cmdk-item]>div{min-height:40px;padding:4px 4px 4px 16px}.workflows-workflow-menu__container [cmdk-root]>[cmdk-list]{max-height:368px;overflow:auto}.workflows-workflow-menu__container [cmdk-root]>[cmdk-list] [cmdk-list-sizer]>[cmdk-group]:last-child [cmdk-group-items]:not(:empty){padding-bottom:8px}.workflows-workflow-menu__container [cmdk-root]>[cmdk-list] [cmdk-list-sizer]>[cmdk-group]>[cmdk-group-items]:not(:empty){padding:0 8px}.workflows-workflow-menu__container [cmdk-empty]{align-items:center;color:#1e1e1e;display:flex;justify-content:center;padding:8px 0 32px;white-space:pre-wrap}.workflows-workflow-menu__container [cmdk-loading]{padding:16px}.workflows-workflow-menu__container [cmdk-list-sizer]{position:relative}.workflows-workflow-menu__item span{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workflows-workflow-menu__item mark{background:unset;color:inherit;font-weight:600}.workflows-workflow-menu__output{padding:16px}.workflows-workflow-menu__output-header{border-bottom:1px solid #ddd;margin-bottom:16px;padding-bottom:8px}.workflows-workflow-menu__output-header h3{color:#1e1e1e;font-size:16px;font-weight:600;margin:0 0 4px}.workflows-workflow-menu__output-hint{color:#757575;font-size:12px;margin:0}.workflows-workflow-menu__output-content{max-height:400px;overflow:auto}.workflows-workflow-menu__output-content pre{background:#f0f0f0;border-radius:2px;color:#1e1e1e;font-size:12px;line-height:1.5;margin:0;padding:12px;white-space:pre-wrap;word-break:break-word}.workflows-workflow-menu__output-error{background:#e0e0e0;border:1px solid #9e1313;border-radius:2px;color:#cc1818;padding:12px}.workflows-workflow-menu__output-error p{font-size:13px;margin:0}.workflows-workflow-menu__executing{color:#757575;font-size:14px;padding:24px 16px}")); 3326 document.head.appendChild(style); 3327 } 3328 var { withIgnoreIMEEvents } = unlock(import_components.privateApis); 3329 var EMPTY_ARRAY = []; 3330 var inputLabel = (0, import_i18n.__)("Run abilities and workflows"); 3331 function WorkflowInput({ isOpen, search, setSearch, abilities }) { 3332 const workflowMenuInput = (0, import_element2.useRef)(); 3333 const _value = P((state) => state.value); 3334 const selectedItemId = (0, import_element2.useMemo)(() => { 3335 const ability = abilities.find((a) => a.label === _value); 3336 return ability?.name; 3337 }, [_value, abilities]); 3338 (0, import_element2.useEffect)(() => { 3339 if (isOpen) { 3340 workflowMenuInput.current.focus(); 3341 } 3342 }, [isOpen]); 3343 return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)( 3344 _e.Input, 3345 { 3346 ref: workflowMenuInput, 3347 value: search, 3348 onValueChange: setSearch, 3349 placeholder: inputLabel, 3350 "aria-activedescendant": selectedItemId 3351 } 3352 ); 3353 } 3354 function WorkflowMenu() { 3355 const { registerShortcut } = (0, import_data.useDispatch)(import_keyboard_shortcuts.store); 3356 const [search, setSearch] = (0, import_element2.useState)(""); 3357 const [isOpen, setIsOpen] = (0, import_element2.useState)(false); 3358 const [abilityOutput, setAbilityOutput] = (0, import_element2.useState)(null); 3359 const [isExecuting, setIsExecuting] = (0, import_element2.useState)(false); 3360 const containerRef = (0, import_element2.useRef)(); 3361 const abilities = (0, import_data.useSelect)((select) => { 3362 const allAbilities = select(abilitiesStore).getAbilities(); 3363 return allAbilities || EMPTY_ARRAY; 3364 }, []); 3365 const filteredAbilities = (0, import_element2.useMemo)(() => { 3366 if (!search) { 3367 return abilities; 3368 } 3369 const searchLower = search.toLowerCase(); 3370 return abilities.filter( 3371 (ability) => ability.label?.toLowerCase().includes(searchLower) || ability.name?.toLowerCase().includes(searchLower) 3372 ); 3373 }, [abilities, search]); 3374 (0, import_element2.useEffect)(() => { 3375 if (abilityOutput && containerRef.current) { 3376 containerRef.current.focus(); 3377 } 3378 }, [abilityOutput]); 3379 (0, import_element2.useEffect)(() => { 3380 registerShortcut({ 3381 name: "core/workflows", 3382 category: "global", 3383 description: (0, import_i18n.__)("Open the workflow palette."), 3384 keyCombination: { 3385 modifier: "primary", 3386 character: "j" 3387 } 3388 }); 3389 }, [registerShortcut]); 3390 (0, import_keyboard_shortcuts.useShortcut)( 3391 "core/workflows", 3392 /** @type {React.KeyboardEventHandler} */ 3393 withIgnoreIMEEvents((event) => { 3394 if (event.defaultPrevented) { 3395 return; 3396 } 3397 event.preventDefault(); 3398 setIsOpen(!isOpen); 3399 }), 3400 { 3401 bindGlobal: true 3402 } 3403 ); 3404 const closeAndReset = () => { 3405 setSearch(""); 3406 setIsOpen(false); 3407 setAbilityOutput(null); 3408 setIsExecuting(false); 3409 }; 3410 const goBack = () => { 3411 setAbilityOutput(null); 3412 setIsExecuting(false); 3413 setSearch(""); 3414 }; 3415 const handleExecuteAbility = async (ability) => { 3416 setIsExecuting(true); 3417 try { 3418 const result = await executeAbility(ability.name); 3419 setAbilityOutput({ 3420 name: ability.name, 3421 label: ability?.label || ability.name, 3422 description: ability?.description || "", 3423 success: true, 3424 data: result 3425 }); 3426 } catch (error) { 3427 setAbilityOutput({ 3428 name: ability.name, 3429 label: ability?.label || ability.name, 3430 description: ability?.description || "", 3431 success: false, 3432 error: error.message || String(error) 3433 }); 3434 } finally { 3435 setIsExecuting(false); 3436 } 3437 }; 3438 const onContainerKeyDown = (event) => { 3439 if (abilityOutput && (event.key === "Escape" || event.key === "Backspace" || event.key === "Delete")) { 3440 event.preventDefault(); 3441 event.stopPropagation(); 3442 goBack(); 3443 } 3444 }; 3445 if (!isOpen) { 3446 return null; 3447 } 3448 return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)( 3449 import_components.Modal, 3450 { 3451 className: "workflows-workflow-menu", 3452 overlayClassName: "workflows-workflow-menu__overlay", 3453 onRequestClose: abilityOutput ? goBack : closeAndReset, 3454 __experimentalHideHeader: true, 3455 contentLabel: (0, import_i18n.__)("Workflow palette"), 3456 children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)( 3457 "div", 3458 { 3459 className: "workflows-workflow-menu__container", 3460 onKeyDown: withIgnoreIMEEvents(onContainerKeyDown), 3461 ref: containerRef, 3462 tabIndex: -1, 3463 role: "presentation", 3464 children: abilityOutput ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "workflows-workflow-menu__output", children: [ 3465 /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "workflows-workflow-menu__output-header", children: [ 3466 /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h3", { children: abilityOutput.label }), 3467 abilityOutput.description && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "workflows-workflow-menu__output-hint", children: abilityOutput.description }) 3468 ] }), 3469 /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "workflows-workflow-menu__output-content", children: abilityOutput.success ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("pre", { children: JSON.stringify( 3470 abilityOutput.data, 3471 null, 3472 2 3473 ) }) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "workflows-workflow-menu__output-error", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { children: abilityOutput.error }) }) }) 3474 ] }) : /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(_e, { label: inputLabel, shouldFilter: false, children: [ 3475 /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_components.__experimentalHStack, { className: "workflows-workflow-menu__header", children: [ 3476 /* @__PURE__ */ (0, import_jsx_runtime17.jsx)( 3477 icon_default, 3478 { 3479 className: "workflows-workflow-menu__header-search-icon", 3480 icon: search_default 3481 } 3482 ), 3483 /* @__PURE__ */ (0, import_jsx_runtime17.jsx)( 3484 WorkflowInput, 3485 { 3486 search, 3487 setSearch, 3488 isOpen, 3489 abilities 3490 } 3491 ) 3492 ] }), 3493 /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(_e.List, { label: (0, import_i18n.__)("Workflow suggestions"), children: [ 3494 isExecuting && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)( 3495 import_components.__experimentalHStack, 3496 { 3497 className: "workflows-workflow-menu__executing", 3498 align: "center", 3499 children: (0, import_i18n.__)("Executing ability\u2026") 3500 } 3501 ), 3502 !isExecuting && search && filteredAbilities.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(_e.Empty, { children: (0, import_i18n.__)("No results found.") }), 3503 !isExecuting && filteredAbilities.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(_e.Group, { children: filteredAbilities.map((ability) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)( 3504 _e.Item, 3505 { 3506 value: ability.label, 3507 className: "workflows-workflow-menu__item", 3508 onSelect: () => handleExecuteAbility(ability), 3509 id: ability.name, 3510 children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_components.__experimentalHStack, { alignment: "left", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)( 3511 import_components.TextHighlight, 3512 { 3513 text: ability.label, 3514 highlight: search 3515 } 3516 ) }) }) 3517 }, 3518 ability.name 3519 )) }) 3520 ] }) 3521 ] }) 3522 } 3523 ) 3524 } 3525 ); 3526 } 3527 3528 // packages/workflow/build-module/index.mjs 3529 var root = document.createElement("div"); 3530 document.body.appendChild(root); 3531 (0, import_element3.createRoot)(root).render((0, import_element3.createElement)(WorkflowMenu));
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated : Sun Jun 14 08:20:09 2026 | Cross-referenced by PHPXref |