@juv/codego-react-ui 1.1.3 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1455,720 +1455,720 @@ var CodegoUI = (() => {
1455
1455
  }
1456
1456
  });
1457
1457
 
1458
- // node_modules/react/cjs/react-jsx-runtime.production.js
1459
- var require_react_jsx_runtime_production = __commonJS({
1460
- "node_modules/react/cjs/react-jsx-runtime.production.js"(exports) {
1458
+ // node_modules/react-dom/cjs/react-dom.production.js
1459
+ var require_react_dom_production = __commonJS({
1460
+ "node_modules/react-dom/cjs/react-dom.production.js"(exports) {
1461
1461
  "use strict";
1462
- var REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.transitional.element");
1463
- var REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment");
1464
- function jsxProd(type, config, maybeKey) {
1465
- var key = null;
1466
- void 0 !== maybeKey && (key = "" + maybeKey);
1467
- void 0 !== config.key && (key = "" + config.key);
1468
- if ("key" in config) {
1469
- maybeKey = {};
1470
- for (var propName in config)
1471
- "key" !== propName && (maybeKey[propName] = config[propName]);
1472
- } else maybeKey = config;
1473
- config = maybeKey.ref;
1462
+ var React45 = require_react();
1463
+ function formatProdErrorMessage(code) {
1464
+ var url = "https://react.dev/errors/" + code;
1465
+ if (1 < arguments.length) {
1466
+ url += "?args[]=" + encodeURIComponent(arguments[1]);
1467
+ for (var i = 2; i < arguments.length; i++)
1468
+ url += "&args[]=" + encodeURIComponent(arguments[i]);
1469
+ }
1470
+ return "Minified React error #" + code + "; visit " + url + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
1471
+ }
1472
+ function noop() {
1473
+ }
1474
+ var Internals = {
1475
+ d: {
1476
+ f: noop,
1477
+ r: function() {
1478
+ throw Error(formatProdErrorMessage(522));
1479
+ },
1480
+ D: noop,
1481
+ C: noop,
1482
+ L: noop,
1483
+ m: noop,
1484
+ X: noop,
1485
+ S: noop,
1486
+ M: noop
1487
+ },
1488
+ p: 0,
1489
+ findDOMNode: null
1490
+ };
1491
+ var REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal");
1492
+ function createPortal$1(children, containerInfo, implementation) {
1493
+ var key = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
1474
1494
  return {
1475
- $$typeof: REACT_ELEMENT_TYPE,
1476
- type,
1477
- key,
1478
- ref: void 0 !== config ? config : null,
1479
- props: maybeKey
1495
+ $$typeof: REACT_PORTAL_TYPE,
1496
+ key: null == key ? null : "" + key,
1497
+ children,
1498
+ containerInfo,
1499
+ implementation
1480
1500
  };
1481
1501
  }
1482
- exports.Fragment = REACT_FRAGMENT_TYPE;
1483
- exports.jsx = jsxProd;
1484
- exports.jsxs = jsxProd;
1502
+ var ReactSharedInternals = React45.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
1503
+ function getCrossOriginStringAs(as, input) {
1504
+ if ("font" === as) return "";
1505
+ if ("string" === typeof input)
1506
+ return "use-credentials" === input ? input : "";
1507
+ }
1508
+ exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = Internals;
1509
+ exports.createPortal = function(children, container) {
1510
+ var key = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
1511
+ if (!container || 1 !== container.nodeType && 9 !== container.nodeType && 11 !== container.nodeType)
1512
+ throw Error(formatProdErrorMessage(299));
1513
+ return createPortal$1(children, container, null, key);
1514
+ };
1515
+ exports.flushSync = function(fn) {
1516
+ var previousTransition = ReactSharedInternals.T, previousUpdatePriority = Internals.p;
1517
+ try {
1518
+ if (ReactSharedInternals.T = null, Internals.p = 2, fn) return fn();
1519
+ } finally {
1520
+ ReactSharedInternals.T = previousTransition, Internals.p = previousUpdatePriority, Internals.d.f();
1521
+ }
1522
+ };
1523
+ exports.preconnect = function(href, options) {
1524
+ "string" === typeof href && (options ? (options = options.crossOrigin, options = "string" === typeof options ? "use-credentials" === options ? options : "" : void 0) : options = null, Internals.d.C(href, options));
1525
+ };
1526
+ exports.prefetchDNS = function(href) {
1527
+ "string" === typeof href && Internals.d.D(href);
1528
+ };
1529
+ exports.preinit = function(href, options) {
1530
+ if ("string" === typeof href && options && "string" === typeof options.as) {
1531
+ var as = options.as, crossOrigin = getCrossOriginStringAs(as, options.crossOrigin), integrity = "string" === typeof options.integrity ? options.integrity : void 0, fetchPriority = "string" === typeof options.fetchPriority ? options.fetchPriority : void 0;
1532
+ "style" === as ? Internals.d.S(
1533
+ href,
1534
+ "string" === typeof options.precedence ? options.precedence : void 0,
1535
+ {
1536
+ crossOrigin,
1537
+ integrity,
1538
+ fetchPriority
1539
+ }
1540
+ ) : "script" === as && Internals.d.X(href, {
1541
+ crossOrigin,
1542
+ integrity,
1543
+ fetchPriority,
1544
+ nonce: "string" === typeof options.nonce ? options.nonce : void 0
1545
+ });
1546
+ }
1547
+ };
1548
+ exports.preinitModule = function(href, options) {
1549
+ if ("string" === typeof href)
1550
+ if ("object" === typeof options && null !== options) {
1551
+ if (null == options.as || "script" === options.as) {
1552
+ var crossOrigin = getCrossOriginStringAs(
1553
+ options.as,
1554
+ options.crossOrigin
1555
+ );
1556
+ Internals.d.M(href, {
1557
+ crossOrigin,
1558
+ integrity: "string" === typeof options.integrity ? options.integrity : void 0,
1559
+ nonce: "string" === typeof options.nonce ? options.nonce : void 0
1560
+ });
1561
+ }
1562
+ } else null == options && Internals.d.M(href);
1563
+ };
1564
+ exports.preload = function(href, options) {
1565
+ if ("string" === typeof href && "object" === typeof options && null !== options && "string" === typeof options.as) {
1566
+ var as = options.as, crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);
1567
+ Internals.d.L(href, as, {
1568
+ crossOrigin,
1569
+ integrity: "string" === typeof options.integrity ? options.integrity : void 0,
1570
+ nonce: "string" === typeof options.nonce ? options.nonce : void 0,
1571
+ type: "string" === typeof options.type ? options.type : void 0,
1572
+ fetchPriority: "string" === typeof options.fetchPriority ? options.fetchPriority : void 0,
1573
+ referrerPolicy: "string" === typeof options.referrerPolicy ? options.referrerPolicy : void 0,
1574
+ imageSrcSet: "string" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,
1575
+ imageSizes: "string" === typeof options.imageSizes ? options.imageSizes : void 0,
1576
+ media: "string" === typeof options.media ? options.media : void 0
1577
+ });
1578
+ }
1579
+ };
1580
+ exports.preloadModule = function(href, options) {
1581
+ if ("string" === typeof href)
1582
+ if (options) {
1583
+ var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);
1584
+ Internals.d.m(href, {
1585
+ as: "string" === typeof options.as && "script" !== options.as ? options.as : void 0,
1586
+ crossOrigin,
1587
+ integrity: "string" === typeof options.integrity ? options.integrity : void 0
1588
+ });
1589
+ } else Internals.d.m(href);
1590
+ };
1591
+ exports.requestFormReset = function(form) {
1592
+ Internals.d.r(form);
1593
+ };
1594
+ exports.unstable_batchedUpdates = function(fn, a) {
1595
+ return fn(a);
1596
+ };
1597
+ exports.useFormState = function(action, initialState2, permalink) {
1598
+ return ReactSharedInternals.H.useFormState(action, initialState2, permalink);
1599
+ };
1600
+ exports.useFormStatus = function() {
1601
+ return ReactSharedInternals.H.useHostTransitionStatus();
1602
+ };
1603
+ exports.version = "19.2.4";
1485
1604
  }
1486
1605
  });
1487
1606
 
1488
- // node_modules/react/cjs/react-jsx-runtime.development.js
1489
- var require_react_jsx_runtime_development = __commonJS({
1490
- "node_modules/react/cjs/react-jsx-runtime.development.js"(exports) {
1607
+ // node_modules/react-dom/cjs/react-dom.development.js
1608
+ var require_react_dom_development = __commonJS({
1609
+ "node_modules/react-dom/cjs/react-dom.development.js"(exports) {
1491
1610
  "use strict";
1492
1611
  "production" !== process.env.NODE_ENV && (function() {
1493
- function getComponentNameFromType(type) {
1494
- if (null == type) return null;
1495
- if ("function" === typeof type)
1496
- return type.$$typeof === REACT_CLIENT_REFERENCE ? null : type.displayName || type.name || null;
1497
- if ("string" === typeof type) return type;
1498
- switch (type) {
1499
- case REACT_FRAGMENT_TYPE:
1500
- return "Fragment";
1501
- case REACT_PROFILER_TYPE:
1502
- return "Profiler";
1503
- case REACT_STRICT_MODE_TYPE:
1504
- return "StrictMode";
1505
- case REACT_SUSPENSE_TYPE:
1506
- return "Suspense";
1507
- case REACT_SUSPENSE_LIST_TYPE:
1508
- return "SuspenseList";
1509
- case REACT_ACTIVITY_TYPE:
1510
- return "Activity";
1511
- }
1512
- if ("object" === typeof type)
1513
- switch ("number" === typeof type.tag && console.error(
1514
- "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
1515
- ), type.$$typeof) {
1516
- case REACT_PORTAL_TYPE:
1517
- return "Portal";
1518
- case REACT_CONTEXT_TYPE:
1519
- return type.displayName || "Context";
1520
- case REACT_CONSUMER_TYPE:
1521
- return (type._context.displayName || "Context") + ".Consumer";
1522
- case REACT_FORWARD_REF_TYPE:
1523
- var innerType = type.render;
1524
- type = type.displayName;
1525
- type || (type = innerType.displayName || innerType.name || "", type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef");
1526
- return type;
1527
- case REACT_MEMO_TYPE:
1528
- return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || "Memo";
1529
- case REACT_LAZY_TYPE:
1530
- innerType = type._payload;
1531
- type = type._init;
1532
- try {
1533
- return getComponentNameFromType(type(innerType));
1534
- } catch (x) {
1535
- }
1536
- }
1537
- return null;
1612
+ function noop() {
1538
1613
  }
1539
1614
  function testStringCoercion(value) {
1540
1615
  return "" + value;
1541
1616
  }
1542
- function checkKeyStringCoercion(value) {
1617
+ function createPortal$1(children, containerInfo, implementation) {
1618
+ var key = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
1543
1619
  try {
1544
- testStringCoercion(value);
1620
+ testStringCoercion(key);
1545
1621
  var JSCompiler_inline_result = false;
1546
1622
  } catch (e) {
1547
1623
  JSCompiler_inline_result = true;
1548
1624
  }
1549
- if (JSCompiler_inline_result) {
1550
- JSCompiler_inline_result = console;
1551
- var JSCompiler_temp_const = JSCompiler_inline_result.error;
1552
- var JSCompiler_inline_result$jscomp$0 = "function" === typeof Symbol && Symbol.toStringTag && value[Symbol.toStringTag] || value.constructor.name || "Object";
1553
- JSCompiler_temp_const.call(
1554
- JSCompiler_inline_result,
1555
- "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
1556
- JSCompiler_inline_result$jscomp$0
1557
- );
1558
- return testStringCoercion(value);
1559
- }
1560
- }
1561
- function getTaskName(type) {
1562
- if (type === REACT_FRAGMENT_TYPE) return "<>";
1563
- if ("object" === typeof type && null !== type && type.$$typeof === REACT_LAZY_TYPE)
1564
- return "<...>";
1565
- try {
1566
- var name = getComponentNameFromType(type);
1567
- return name ? "<" + name + ">" : "<...>";
1568
- } catch (x) {
1569
- return "<...>";
1570
- }
1625
+ JSCompiler_inline_result && (console.error(
1626
+ "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
1627
+ "function" === typeof Symbol && Symbol.toStringTag && key[Symbol.toStringTag] || key.constructor.name || "Object"
1628
+ ), testStringCoercion(key));
1629
+ return {
1630
+ $$typeof: REACT_PORTAL_TYPE,
1631
+ key: null == key ? null : "" + key,
1632
+ children,
1633
+ containerInfo,
1634
+ implementation
1635
+ };
1571
1636
  }
1572
- function getOwner() {
1573
- var dispatcher = ReactSharedInternals.A;
1574
- return null === dispatcher ? null : dispatcher.getOwner();
1575
- }
1576
- function UnknownOwner() {
1577
- return Error("react-stack-top-frame");
1578
- }
1579
- function hasValidKey(config) {
1580
- if (hasOwnProperty.call(config, "key")) {
1581
- var getter = Object.getOwnPropertyDescriptor(config, "key").get;
1582
- if (getter && getter.isReactWarning) return false;
1583
- }
1584
- return void 0 !== config.key;
1637
+ function getCrossOriginStringAs(as, input) {
1638
+ if ("font" === as) return "";
1639
+ if ("string" === typeof input)
1640
+ return "use-credentials" === input ? input : "";
1585
1641
  }
1586
- function defineKeyPropWarningGetter(props, displayName) {
1587
- function warnAboutAccessingKey() {
1588
- specialPropKeyWarningShown || (specialPropKeyWarningShown = true, console.error(
1589
- "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
1590
- displayName
1591
- ));
1592
- }
1593
- warnAboutAccessingKey.isReactWarning = true;
1594
- Object.defineProperty(props, "key", {
1595
- get: warnAboutAccessingKey,
1596
- configurable: true
1597
- });
1642
+ function getValueDescriptorExpectingObjectForWarning(thing) {
1643
+ return null === thing ? "`null`" : void 0 === thing ? "`undefined`" : "" === thing ? "an empty string" : 'something with type "' + typeof thing + '"';
1598
1644
  }
1599
- function elementRefGetterWithDeprecationWarning() {
1600
- var componentName = getComponentNameFromType(this.type);
1601
- didWarnAboutElementRef[componentName] || (didWarnAboutElementRef[componentName] = true, console.error(
1602
- "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
1603
- ));
1604
- componentName = this.props.ref;
1605
- return void 0 !== componentName ? componentName : null;
1645
+ function getValueDescriptorExpectingEnumForWarning(thing) {
1646
+ return null === thing ? "`null`" : void 0 === thing ? "`undefined`" : "" === thing ? "an empty string" : "string" === typeof thing ? JSON.stringify(thing) : "number" === typeof thing ? "`" + thing + "`" : 'something with type "' + typeof thing + '"';
1606
1647
  }
1607
- function ReactElement(type, key, props, owner, debugStack, debugTask) {
1608
- var refProp = props.ref;
1609
- type = {
1610
- $$typeof: REACT_ELEMENT_TYPE,
1611
- type,
1612
- key,
1613
- props,
1614
- _owner: owner
1615
- };
1616
- null !== (void 0 !== refProp ? refProp : null) ? Object.defineProperty(type, "ref", {
1617
- enumerable: false,
1618
- get: elementRefGetterWithDeprecationWarning
1619
- }) : Object.defineProperty(type, "ref", { enumerable: false, value: null });
1620
- type._store = {};
1621
- Object.defineProperty(type._store, "validated", {
1622
- configurable: false,
1623
- enumerable: false,
1624
- writable: true,
1625
- value: 0
1626
- });
1627
- Object.defineProperty(type, "_debugInfo", {
1628
- configurable: false,
1629
- enumerable: false,
1630
- writable: true,
1631
- value: null
1632
- });
1633
- Object.defineProperty(type, "_debugStack", {
1634
- configurable: false,
1635
- enumerable: false,
1636
- writable: true,
1637
- value: debugStack
1638
- });
1639
- Object.defineProperty(type, "_debugTask", {
1640
- configurable: false,
1641
- enumerable: false,
1642
- writable: true,
1643
- value: debugTask
1644
- });
1645
- Object.freeze && (Object.freeze(type.props), Object.freeze(type));
1646
- return type;
1648
+ function resolveDispatcher() {
1649
+ var dispatcher = ReactSharedInternals.H;
1650
+ null === dispatcher && console.error(
1651
+ "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
1652
+ );
1653
+ return dispatcher;
1647
1654
  }
1648
- function jsxDEVImpl(type, config, maybeKey, isStaticChildren, debugStack, debugTask) {
1649
- var children = config.children;
1650
- if (void 0 !== children)
1651
- if (isStaticChildren)
1652
- if (isArrayImpl(children)) {
1653
- for (isStaticChildren = 0; isStaticChildren < children.length; isStaticChildren++)
1654
- validateChildKeys(children[isStaticChildren]);
1655
- Object.freeze && Object.freeze(children);
1656
- } else
1657
- console.error(
1658
- "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
1659
- );
1660
- else validateChildKeys(children);
1661
- if (hasOwnProperty.call(config, "key")) {
1662
- children = getComponentNameFromType(type);
1663
- var keys = Object.keys(config).filter(function(k) {
1664
- return "key" !== k;
1665
- });
1666
- isStaticChildren = 0 < keys.length ? "{key: someKey, " + keys.join(": ..., ") + ": ...}" : "{key: someKey}";
1667
- didWarnAboutKeySpread[children + isStaticChildren] || (keys = 0 < keys.length ? "{" + keys.join(": ..., ") + ": ...}" : "{}", console.error(
1668
- 'A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',
1669
- isStaticChildren,
1670
- children,
1671
- keys,
1672
- children
1673
- ), didWarnAboutKeySpread[children + isStaticChildren] = true);
1655
+ "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
1656
+ var React45 = require_react(), Internals = {
1657
+ d: {
1658
+ f: noop,
1659
+ r: function() {
1660
+ throw Error(
1661
+ "Invalid form element. requestFormReset must be passed a form that was rendered by React."
1662
+ );
1663
+ },
1664
+ D: noop,
1665
+ C: noop,
1666
+ L: noop,
1667
+ m: noop,
1668
+ X: noop,
1669
+ S: noop,
1670
+ M: noop
1671
+ },
1672
+ p: 0,
1673
+ findDOMNode: null
1674
+ }, REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal"), ReactSharedInternals = React45.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
1675
+ "function" === typeof Map && null != Map.prototype && "function" === typeof Map.prototype.forEach && "function" === typeof Set && null != Set.prototype && "function" === typeof Set.prototype.clear && "function" === typeof Set.prototype.forEach || console.error(
1676
+ "React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"
1677
+ );
1678
+ exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = Internals;
1679
+ exports.createPortal = function(children, container) {
1680
+ var key = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
1681
+ if (!container || 1 !== container.nodeType && 9 !== container.nodeType && 11 !== container.nodeType)
1682
+ throw Error("Target container is not a DOM element.");
1683
+ return createPortal$1(children, container, null, key);
1684
+ };
1685
+ exports.flushSync = function(fn) {
1686
+ var previousTransition = ReactSharedInternals.T, previousUpdatePriority = Internals.p;
1687
+ try {
1688
+ if (ReactSharedInternals.T = null, Internals.p = 2, fn)
1689
+ return fn();
1690
+ } finally {
1691
+ ReactSharedInternals.T = previousTransition, Internals.p = previousUpdatePriority, Internals.d.f() && console.error(
1692
+ "flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task."
1693
+ );
1674
1694
  }
1675
- children = null;
1676
- void 0 !== maybeKey && (checkKeyStringCoercion(maybeKey), children = "" + maybeKey);
1677
- hasValidKey(config) && (checkKeyStringCoercion(config.key), children = "" + config.key);
1678
- if ("key" in config) {
1679
- maybeKey = {};
1680
- for (var propName in config)
1681
- "key" !== propName && (maybeKey[propName] = config[propName]);
1682
- } else maybeKey = config;
1683
- children && defineKeyPropWarningGetter(
1684
- maybeKey,
1685
- "function" === typeof type ? type.displayName || type.name || "Unknown" : type
1695
+ };
1696
+ exports.preconnect = function(href, options) {
1697
+ "string" === typeof href && href ? null != options && "object" !== typeof options ? console.error(
1698
+ "ReactDOM.preconnect(): Expected the `options` argument (second) to be an object but encountered %s instead. The only supported option at this time is `crossOrigin` which accepts a string.",
1699
+ getValueDescriptorExpectingEnumForWarning(options)
1700
+ ) : null != options && "string" !== typeof options.crossOrigin && console.error(
1701
+ "ReactDOM.preconnect(): Expected the `crossOrigin` option (second argument) to be a string but encountered %s instead. Try removing this option or passing a string value instead.",
1702
+ getValueDescriptorExpectingObjectForWarning(options.crossOrigin)
1703
+ ) : console.error(
1704
+ "ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.",
1705
+ getValueDescriptorExpectingObjectForWarning(href)
1686
1706
  );
1687
- return ReactElement(
1688
- type,
1689
- children,
1690
- maybeKey,
1691
- getOwner(),
1692
- debugStack,
1693
- debugTask
1707
+ "string" === typeof href && (options ? (options = options.crossOrigin, options = "string" === typeof options ? "use-credentials" === options ? options : "" : void 0) : options = null, Internals.d.C(href, options));
1708
+ };
1709
+ exports.prefetchDNS = function(href) {
1710
+ if ("string" !== typeof href || !href)
1711
+ console.error(
1712
+ "ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.",
1713
+ getValueDescriptorExpectingObjectForWarning(href)
1714
+ );
1715
+ else if (1 < arguments.length) {
1716
+ var options = arguments[1];
1717
+ "object" === typeof options && options.hasOwnProperty("crossOrigin") ? console.error(
1718
+ "ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. It looks like the you are attempting to set a crossOrigin property for this DNS lookup hint. Browsers do not perform DNS queries using CORS and setting this attribute on the resource hint has no effect. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.",
1719
+ getValueDescriptorExpectingEnumForWarning(options)
1720
+ ) : console.error(
1721
+ "ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.",
1722
+ getValueDescriptorExpectingEnumForWarning(options)
1723
+ );
1724
+ }
1725
+ "string" === typeof href && Internals.d.D(href);
1726
+ };
1727
+ exports.preinit = function(href, options) {
1728
+ "string" === typeof href && href ? null == options || "object" !== typeof options ? console.error(
1729
+ "ReactDOM.preinit(): Expected the `options` argument (second) to be an object with an `as` property describing the type of resource to be preinitialized but encountered %s instead.",
1730
+ getValueDescriptorExpectingEnumForWarning(options)
1731
+ ) : "style" !== options.as && "script" !== options.as && console.error(
1732
+ 'ReactDOM.preinit(): Expected the `as` property in the `options` argument (second) to contain a valid value describing the type of resource to be preinitialized but encountered %s instead. Valid values for `as` are "style" and "script".',
1733
+ getValueDescriptorExpectingEnumForWarning(options.as)
1734
+ ) : console.error(
1735
+ "ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.",
1736
+ getValueDescriptorExpectingObjectForWarning(href)
1694
1737
  );
1695
- }
1696
- function validateChildKeys(node) {
1697
- isValidElement(node) ? node._store && (node._store.validated = 1) : "object" === typeof node && null !== node && node.$$typeof === REACT_LAZY_TYPE && ("fulfilled" === node._payload.status ? isValidElement(node._payload.value) && node._payload.value._store && (node._payload.value._store.validated = 1) : node._store && (node._store.validated = 1));
1698
- }
1699
- function isValidElement(object) {
1700
- return "object" === typeof object && null !== object && object.$$typeof === REACT_ELEMENT_TYPE;
1701
- }
1702
- var React45 = require_react(), REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for("react.profiler"), REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo"), REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy"), REACT_ACTIVITY_TYPE = /* @__PURE__ */ Symbol.for("react.activity"), REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for("react.client.reference"), ReactSharedInternals = React45.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, hasOwnProperty = Object.prototype.hasOwnProperty, isArrayImpl = Array.isArray, createTask = console.createTask ? console.createTask : function() {
1703
- return null;
1738
+ if ("string" === typeof href && options && "string" === typeof options.as) {
1739
+ var as = options.as, crossOrigin = getCrossOriginStringAs(as, options.crossOrigin), integrity = "string" === typeof options.integrity ? options.integrity : void 0, fetchPriority = "string" === typeof options.fetchPriority ? options.fetchPriority : void 0;
1740
+ "style" === as ? Internals.d.S(
1741
+ href,
1742
+ "string" === typeof options.precedence ? options.precedence : void 0,
1743
+ {
1744
+ crossOrigin,
1745
+ integrity,
1746
+ fetchPriority
1747
+ }
1748
+ ) : "script" === as && Internals.d.X(href, {
1749
+ crossOrigin,
1750
+ integrity,
1751
+ fetchPriority,
1752
+ nonce: "string" === typeof options.nonce ? options.nonce : void 0
1753
+ });
1754
+ }
1704
1755
  };
1705
- React45 = {
1706
- react_stack_bottom_frame: function(callStackForError) {
1707
- return callStackForError();
1756
+ exports.preinitModule = function(href, options) {
1757
+ var encountered = "";
1758
+ "string" === typeof href && href || (encountered += " The `href` argument encountered was " + getValueDescriptorExpectingObjectForWarning(href) + ".");
1759
+ void 0 !== options && "object" !== typeof options ? encountered += " The `options` argument encountered was " + getValueDescriptorExpectingObjectForWarning(options) + "." : options && "as" in options && "script" !== options.as && (encountered += " The `as` option encountered was " + getValueDescriptorExpectingEnumForWarning(options.as) + ".");
1760
+ if (encountered)
1761
+ console.error(
1762
+ "ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s",
1763
+ encountered
1764
+ );
1765
+ else
1766
+ switch (encountered = options && "string" === typeof options.as ? options.as : "script", encountered) {
1767
+ case "script":
1768
+ break;
1769
+ default:
1770
+ encountered = getValueDescriptorExpectingEnumForWarning(encountered), console.error(
1771
+ 'ReactDOM.preinitModule(): Currently the only supported "as" type for this function is "script" but received "%s" instead. This warning was generated for `href` "%s". In the future other module types will be supported, aligning with the import-attributes proposal. Learn more here: (https://github.com/tc39/proposal-import-attributes)',
1772
+ encountered,
1773
+ href
1774
+ );
1775
+ }
1776
+ if ("string" === typeof href)
1777
+ if ("object" === typeof options && null !== options) {
1778
+ if (null == options.as || "script" === options.as)
1779
+ encountered = getCrossOriginStringAs(
1780
+ options.as,
1781
+ options.crossOrigin
1782
+ ), Internals.d.M(href, {
1783
+ crossOrigin: encountered,
1784
+ integrity: "string" === typeof options.integrity ? options.integrity : void 0,
1785
+ nonce: "string" === typeof options.nonce ? options.nonce : void 0
1786
+ });
1787
+ } else null == options && Internals.d.M(href);
1788
+ };
1789
+ exports.preload = function(href, options) {
1790
+ var encountered = "";
1791
+ "string" === typeof href && href || (encountered += " The `href` argument encountered was " + getValueDescriptorExpectingObjectForWarning(href) + ".");
1792
+ null == options || "object" !== typeof options ? encountered += " The `options` argument encountered was " + getValueDescriptorExpectingObjectForWarning(options) + "." : "string" === typeof options.as && options.as || (encountered += " The `as` option encountered was " + getValueDescriptorExpectingObjectForWarning(options.as) + ".");
1793
+ encountered && console.error(
1794
+ 'ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `<link rel="preload" as="..." />` tag.%s',
1795
+ encountered
1796
+ );
1797
+ if ("string" === typeof href && "object" === typeof options && null !== options && "string" === typeof options.as) {
1798
+ encountered = options.as;
1799
+ var crossOrigin = getCrossOriginStringAs(
1800
+ encountered,
1801
+ options.crossOrigin
1802
+ );
1803
+ Internals.d.L(href, encountered, {
1804
+ crossOrigin,
1805
+ integrity: "string" === typeof options.integrity ? options.integrity : void 0,
1806
+ nonce: "string" === typeof options.nonce ? options.nonce : void 0,
1807
+ type: "string" === typeof options.type ? options.type : void 0,
1808
+ fetchPriority: "string" === typeof options.fetchPriority ? options.fetchPriority : void 0,
1809
+ referrerPolicy: "string" === typeof options.referrerPolicy ? options.referrerPolicy : void 0,
1810
+ imageSrcSet: "string" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,
1811
+ imageSizes: "string" === typeof options.imageSizes ? options.imageSizes : void 0,
1812
+ media: "string" === typeof options.media ? options.media : void 0
1813
+ });
1708
1814
  }
1709
1815
  };
1710
- var specialPropKeyWarningShown;
1711
- var didWarnAboutElementRef = {};
1712
- var unknownOwnerDebugStack = React45.react_stack_bottom_frame.bind(
1713
- React45,
1714
- UnknownOwner
1715
- )();
1716
- var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
1717
- var didWarnAboutKeySpread = {};
1718
- exports.Fragment = REACT_FRAGMENT_TYPE;
1719
- exports.jsx = function(type, config, maybeKey) {
1720
- var trackActualOwner = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
1721
- return jsxDEVImpl(
1722
- type,
1723
- config,
1724
- maybeKey,
1725
- false,
1726
- trackActualOwner ? Error("react-stack-top-frame") : unknownOwnerDebugStack,
1727
- trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
1816
+ exports.preloadModule = function(href, options) {
1817
+ var encountered = "";
1818
+ "string" === typeof href && href || (encountered += " The `href` argument encountered was " + getValueDescriptorExpectingObjectForWarning(href) + ".");
1819
+ void 0 !== options && "object" !== typeof options ? encountered += " The `options` argument encountered was " + getValueDescriptorExpectingObjectForWarning(options) + "." : options && "as" in options && "string" !== typeof options.as && (encountered += " The `as` option encountered was " + getValueDescriptorExpectingObjectForWarning(options.as) + ".");
1820
+ encountered && console.error(
1821
+ 'ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `<link rel="modulepreload" as="..." />` tag.%s',
1822
+ encountered
1728
1823
  );
1824
+ "string" === typeof href && (options ? (encountered = getCrossOriginStringAs(
1825
+ options.as,
1826
+ options.crossOrigin
1827
+ ), Internals.d.m(href, {
1828
+ as: "string" === typeof options.as && "script" !== options.as ? options.as : void 0,
1829
+ crossOrigin: encountered,
1830
+ integrity: "string" === typeof options.integrity ? options.integrity : void 0
1831
+ })) : Internals.d.m(href));
1729
1832
  };
1730
- exports.jsxs = function(type, config, maybeKey) {
1731
- var trackActualOwner = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
1732
- return jsxDEVImpl(
1733
- type,
1734
- config,
1735
- maybeKey,
1736
- true,
1737
- trackActualOwner ? Error("react-stack-top-frame") : unknownOwnerDebugStack,
1738
- trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
1739
- );
1833
+ exports.requestFormReset = function(form) {
1834
+ Internals.d.r(form);
1835
+ };
1836
+ exports.unstable_batchedUpdates = function(fn, a) {
1837
+ return fn(a);
1838
+ };
1839
+ exports.useFormState = function(action, initialState2, permalink) {
1840
+ return resolveDispatcher().useFormState(action, initialState2, permalink);
1841
+ };
1842
+ exports.useFormStatus = function() {
1843
+ return resolveDispatcher().useHostTransitionStatus();
1740
1844
  };
1845
+ exports.version = "19.2.4";
1846
+ "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
1741
1847
  })();
1742
1848
  }
1743
1849
  });
1744
1850
 
1745
- // node_modules/react/jsx-runtime.js
1746
- var require_jsx_runtime = __commonJS({
1747
- "node_modules/react/jsx-runtime.js"(exports, module) {
1851
+ // node_modules/react-dom/index.js
1852
+ var require_react_dom = __commonJS({
1853
+ "node_modules/react-dom/index.js"(exports, module) {
1748
1854
  "use strict";
1855
+ function checkDCE() {
1856
+ if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === "undefined" || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== "function") {
1857
+ return;
1858
+ }
1859
+ if (process.env.NODE_ENV !== "production") {
1860
+ throw new Error("^_^");
1861
+ }
1862
+ try {
1863
+ __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
1864
+ } catch (err) {
1865
+ console.error(err);
1866
+ }
1867
+ }
1749
1868
  if (process.env.NODE_ENV === "production") {
1750
- module.exports = require_react_jsx_runtime_production();
1869
+ checkDCE();
1870
+ module.exports = require_react_dom_production();
1751
1871
  } else {
1752
- module.exports = require_react_jsx_runtime_development();
1872
+ module.exports = require_react_dom_development();
1753
1873
  }
1754
1874
  }
1755
1875
  });
1756
1876
 
1757
- // node_modules/react-dom/cjs/react-dom.production.js
1758
- var require_react_dom_production = __commonJS({
1759
- "node_modules/react-dom/cjs/react-dom.production.js"(exports) {
1877
+ // node_modules/react/cjs/react-jsx-runtime.production.js
1878
+ var require_react_jsx_runtime_production = __commonJS({
1879
+ "node_modules/react/cjs/react-jsx-runtime.production.js"(exports) {
1760
1880
  "use strict";
1761
- var React45 = require_react();
1762
- function formatProdErrorMessage(code) {
1763
- var url = "https://react.dev/errors/" + code;
1764
- if (1 < arguments.length) {
1765
- url += "?args[]=" + encodeURIComponent(arguments[1]);
1766
- for (var i = 2; i < arguments.length; i++)
1767
- url += "&args[]=" + encodeURIComponent(arguments[i]);
1768
- }
1769
- return "Minified React error #" + code + "; visit " + url + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
1770
- }
1771
- function noop() {
1772
- }
1773
- var Internals = {
1774
- d: {
1775
- f: noop,
1776
- r: function() {
1777
- throw Error(formatProdErrorMessage(522));
1778
- },
1779
- D: noop,
1780
- C: noop,
1781
- L: noop,
1782
- m: noop,
1783
- X: noop,
1784
- S: noop,
1785
- M: noop
1786
- },
1787
- p: 0,
1788
- findDOMNode: null
1789
- };
1790
- var REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal");
1791
- function createPortal$1(children, containerInfo, implementation) {
1792
- var key = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
1881
+ var REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.transitional.element");
1882
+ var REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment");
1883
+ function jsxProd(type, config, maybeKey) {
1884
+ var key = null;
1885
+ void 0 !== maybeKey && (key = "" + maybeKey);
1886
+ void 0 !== config.key && (key = "" + config.key);
1887
+ if ("key" in config) {
1888
+ maybeKey = {};
1889
+ for (var propName in config)
1890
+ "key" !== propName && (maybeKey[propName] = config[propName]);
1891
+ } else maybeKey = config;
1892
+ config = maybeKey.ref;
1793
1893
  return {
1794
- $$typeof: REACT_PORTAL_TYPE,
1795
- key: null == key ? null : "" + key,
1796
- children,
1797
- containerInfo,
1798
- implementation
1894
+ $$typeof: REACT_ELEMENT_TYPE,
1895
+ type,
1896
+ key,
1897
+ ref: void 0 !== config ? config : null,
1898
+ props: maybeKey
1799
1899
  };
1800
1900
  }
1801
- var ReactSharedInternals = React45.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
1802
- function getCrossOriginStringAs(as, input) {
1803
- if ("font" === as) return "";
1804
- if ("string" === typeof input)
1805
- return "use-credentials" === input ? input : "";
1806
- }
1807
- exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = Internals;
1808
- exports.createPortal = function(children, container) {
1809
- var key = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
1810
- if (!container || 1 !== container.nodeType && 9 !== container.nodeType && 11 !== container.nodeType)
1811
- throw Error(formatProdErrorMessage(299));
1812
- return createPortal$1(children, container, null, key);
1813
- };
1814
- exports.flushSync = function(fn) {
1815
- var previousTransition = ReactSharedInternals.T, previousUpdatePriority = Internals.p;
1816
- try {
1817
- if (ReactSharedInternals.T = null, Internals.p = 2, fn) return fn();
1818
- } finally {
1819
- ReactSharedInternals.T = previousTransition, Internals.p = previousUpdatePriority, Internals.d.f();
1820
- }
1821
- };
1822
- exports.preconnect = function(href, options) {
1823
- "string" === typeof href && (options ? (options = options.crossOrigin, options = "string" === typeof options ? "use-credentials" === options ? options : "" : void 0) : options = null, Internals.d.C(href, options));
1824
- };
1825
- exports.prefetchDNS = function(href) {
1826
- "string" === typeof href && Internals.d.D(href);
1827
- };
1828
- exports.preinit = function(href, options) {
1829
- if ("string" === typeof href && options && "string" === typeof options.as) {
1830
- var as = options.as, crossOrigin = getCrossOriginStringAs(as, options.crossOrigin), integrity = "string" === typeof options.integrity ? options.integrity : void 0, fetchPriority = "string" === typeof options.fetchPriority ? options.fetchPriority : void 0;
1831
- "style" === as ? Internals.d.S(
1832
- href,
1833
- "string" === typeof options.precedence ? options.precedence : void 0,
1834
- {
1835
- crossOrigin,
1836
- integrity,
1837
- fetchPriority
1838
- }
1839
- ) : "script" === as && Internals.d.X(href, {
1840
- crossOrigin,
1841
- integrity,
1842
- fetchPriority,
1843
- nonce: "string" === typeof options.nonce ? options.nonce : void 0
1844
- });
1845
- }
1846
- };
1847
- exports.preinitModule = function(href, options) {
1848
- if ("string" === typeof href)
1849
- if ("object" === typeof options && null !== options) {
1850
- if (null == options.as || "script" === options.as) {
1851
- var crossOrigin = getCrossOriginStringAs(
1852
- options.as,
1853
- options.crossOrigin
1854
- );
1855
- Internals.d.M(href, {
1856
- crossOrigin,
1857
- integrity: "string" === typeof options.integrity ? options.integrity : void 0,
1858
- nonce: "string" === typeof options.nonce ? options.nonce : void 0
1859
- });
1860
- }
1861
- } else null == options && Internals.d.M(href);
1862
- };
1863
- exports.preload = function(href, options) {
1864
- if ("string" === typeof href && "object" === typeof options && null !== options && "string" === typeof options.as) {
1865
- var as = options.as, crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);
1866
- Internals.d.L(href, as, {
1867
- crossOrigin,
1868
- integrity: "string" === typeof options.integrity ? options.integrity : void 0,
1869
- nonce: "string" === typeof options.nonce ? options.nonce : void 0,
1870
- type: "string" === typeof options.type ? options.type : void 0,
1871
- fetchPriority: "string" === typeof options.fetchPriority ? options.fetchPriority : void 0,
1872
- referrerPolicy: "string" === typeof options.referrerPolicy ? options.referrerPolicy : void 0,
1873
- imageSrcSet: "string" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,
1874
- imageSizes: "string" === typeof options.imageSizes ? options.imageSizes : void 0,
1875
- media: "string" === typeof options.media ? options.media : void 0
1876
- });
1877
- }
1878
- };
1879
- exports.preloadModule = function(href, options) {
1880
- if ("string" === typeof href)
1881
- if (options) {
1882
- var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);
1883
- Internals.d.m(href, {
1884
- as: "string" === typeof options.as && "script" !== options.as ? options.as : void 0,
1885
- crossOrigin,
1886
- integrity: "string" === typeof options.integrity ? options.integrity : void 0
1887
- });
1888
- } else Internals.d.m(href);
1889
- };
1890
- exports.requestFormReset = function(form) {
1891
- Internals.d.r(form);
1892
- };
1893
- exports.unstable_batchedUpdates = function(fn, a) {
1894
- return fn(a);
1895
- };
1896
- exports.useFormState = function(action, initialState2, permalink) {
1897
- return ReactSharedInternals.H.useFormState(action, initialState2, permalink);
1898
- };
1899
- exports.useFormStatus = function() {
1900
- return ReactSharedInternals.H.useHostTransitionStatus();
1901
- };
1902
- exports.version = "19.2.4";
1901
+ exports.Fragment = REACT_FRAGMENT_TYPE;
1902
+ exports.jsx = jsxProd;
1903
+ exports.jsxs = jsxProd;
1903
1904
  }
1904
1905
  });
1905
-
1906
- // node_modules/react-dom/cjs/react-dom.development.js
1907
- var require_react_dom_development = __commonJS({
1908
- "node_modules/react-dom/cjs/react-dom.development.js"(exports) {
1906
+
1907
+ // node_modules/react/cjs/react-jsx-runtime.development.js
1908
+ var require_react_jsx_runtime_development = __commonJS({
1909
+ "node_modules/react/cjs/react-jsx-runtime.development.js"(exports) {
1909
1910
  "use strict";
1910
1911
  "production" !== process.env.NODE_ENV && (function() {
1911
- function noop() {
1912
+ function getComponentNameFromType(type) {
1913
+ if (null == type) return null;
1914
+ if ("function" === typeof type)
1915
+ return type.$$typeof === REACT_CLIENT_REFERENCE ? null : type.displayName || type.name || null;
1916
+ if ("string" === typeof type) return type;
1917
+ switch (type) {
1918
+ case REACT_FRAGMENT_TYPE:
1919
+ return "Fragment";
1920
+ case REACT_PROFILER_TYPE:
1921
+ return "Profiler";
1922
+ case REACT_STRICT_MODE_TYPE:
1923
+ return "StrictMode";
1924
+ case REACT_SUSPENSE_TYPE:
1925
+ return "Suspense";
1926
+ case REACT_SUSPENSE_LIST_TYPE:
1927
+ return "SuspenseList";
1928
+ case REACT_ACTIVITY_TYPE:
1929
+ return "Activity";
1930
+ }
1931
+ if ("object" === typeof type)
1932
+ switch ("number" === typeof type.tag && console.error(
1933
+ "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
1934
+ ), type.$$typeof) {
1935
+ case REACT_PORTAL_TYPE:
1936
+ return "Portal";
1937
+ case REACT_CONTEXT_TYPE:
1938
+ return type.displayName || "Context";
1939
+ case REACT_CONSUMER_TYPE:
1940
+ return (type._context.displayName || "Context") + ".Consumer";
1941
+ case REACT_FORWARD_REF_TYPE:
1942
+ var innerType = type.render;
1943
+ type = type.displayName;
1944
+ type || (type = innerType.displayName || innerType.name || "", type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef");
1945
+ return type;
1946
+ case REACT_MEMO_TYPE:
1947
+ return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || "Memo";
1948
+ case REACT_LAZY_TYPE:
1949
+ innerType = type._payload;
1950
+ type = type._init;
1951
+ try {
1952
+ return getComponentNameFromType(type(innerType));
1953
+ } catch (x) {
1954
+ }
1955
+ }
1956
+ return null;
1912
1957
  }
1913
1958
  function testStringCoercion(value) {
1914
1959
  return "" + value;
1915
1960
  }
1916
- function createPortal$1(children, containerInfo, implementation) {
1917
- var key = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
1961
+ function checkKeyStringCoercion(value) {
1918
1962
  try {
1919
- testStringCoercion(key);
1963
+ testStringCoercion(value);
1920
1964
  var JSCompiler_inline_result = false;
1921
1965
  } catch (e) {
1922
1966
  JSCompiler_inline_result = true;
1923
1967
  }
1924
- JSCompiler_inline_result && (console.error(
1925
- "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
1926
- "function" === typeof Symbol && Symbol.toStringTag && key[Symbol.toStringTag] || key.constructor.name || "Object"
1927
- ), testStringCoercion(key));
1928
- return {
1929
- $$typeof: REACT_PORTAL_TYPE,
1930
- key: null == key ? null : "" + key,
1931
- children,
1932
- containerInfo,
1933
- implementation
1934
- };
1935
- }
1936
- function getCrossOriginStringAs(as, input) {
1937
- if ("font" === as) return "";
1938
- if ("string" === typeof input)
1939
- return "use-credentials" === input ? input : "";
1968
+ if (JSCompiler_inline_result) {
1969
+ JSCompiler_inline_result = console;
1970
+ var JSCompiler_temp_const = JSCompiler_inline_result.error;
1971
+ var JSCompiler_inline_result$jscomp$0 = "function" === typeof Symbol && Symbol.toStringTag && value[Symbol.toStringTag] || value.constructor.name || "Object";
1972
+ JSCompiler_temp_const.call(
1973
+ JSCompiler_inline_result,
1974
+ "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
1975
+ JSCompiler_inline_result$jscomp$0
1976
+ );
1977
+ return testStringCoercion(value);
1978
+ }
1940
1979
  }
1941
- function getValueDescriptorExpectingObjectForWarning(thing) {
1942
- return null === thing ? "`null`" : void 0 === thing ? "`undefined`" : "" === thing ? "an empty string" : 'something with type "' + typeof thing + '"';
1980
+ function getTaskName(type) {
1981
+ if (type === REACT_FRAGMENT_TYPE) return "<>";
1982
+ if ("object" === typeof type && null !== type && type.$$typeof === REACT_LAZY_TYPE)
1983
+ return "<...>";
1984
+ try {
1985
+ var name = getComponentNameFromType(type);
1986
+ return name ? "<" + name + ">" : "<...>";
1987
+ } catch (x) {
1988
+ return "<...>";
1989
+ }
1943
1990
  }
1944
- function getValueDescriptorExpectingEnumForWarning(thing) {
1945
- return null === thing ? "`null`" : void 0 === thing ? "`undefined`" : "" === thing ? "an empty string" : "string" === typeof thing ? JSON.stringify(thing) : "number" === typeof thing ? "`" + thing + "`" : 'something with type "' + typeof thing + '"';
1991
+ function getOwner() {
1992
+ var dispatcher = ReactSharedInternals.A;
1993
+ return null === dispatcher ? null : dispatcher.getOwner();
1946
1994
  }
1947
- function resolveDispatcher() {
1948
- var dispatcher = ReactSharedInternals.H;
1949
- null === dispatcher && console.error(
1950
- "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."
1951
- );
1952
- return dispatcher;
1995
+ function UnknownOwner() {
1996
+ return Error("react-stack-top-frame");
1953
1997
  }
1954
- "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
1955
- var React45 = require_react(), Internals = {
1956
- d: {
1957
- f: noop,
1958
- r: function() {
1959
- throw Error(
1960
- "Invalid form element. requestFormReset must be passed a form that was rendered by React."
1961
- );
1962
- },
1963
- D: noop,
1964
- C: noop,
1965
- L: noop,
1966
- m: noop,
1967
- X: noop,
1968
- S: noop,
1969
- M: noop
1970
- },
1971
- p: 0,
1972
- findDOMNode: null
1973
- }, REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal"), ReactSharedInternals = React45.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
1974
- "function" === typeof Map && null != Map.prototype && "function" === typeof Map.prototype.forEach && "function" === typeof Set && null != Set.prototype && "function" === typeof Set.prototype.clear && "function" === typeof Set.prototype.forEach || console.error(
1975
- "React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"
1976
- );
1977
- exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = Internals;
1978
- exports.createPortal = function(children, container) {
1979
- var key = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
1980
- if (!container || 1 !== container.nodeType && 9 !== container.nodeType && 11 !== container.nodeType)
1981
- throw Error("Target container is not a DOM element.");
1982
- return createPortal$1(children, container, null, key);
1983
- };
1984
- exports.flushSync = function(fn) {
1985
- var previousTransition = ReactSharedInternals.T, previousUpdatePriority = Internals.p;
1986
- try {
1987
- if (ReactSharedInternals.T = null, Internals.p = 2, fn)
1988
- return fn();
1989
- } finally {
1990
- ReactSharedInternals.T = previousTransition, Internals.p = previousUpdatePriority, Internals.d.f() && console.error(
1991
- "flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task."
1992
- );
1993
- }
1994
- };
1995
- exports.preconnect = function(href, options) {
1996
- "string" === typeof href && href ? null != options && "object" !== typeof options ? console.error(
1997
- "ReactDOM.preconnect(): Expected the `options` argument (second) to be an object but encountered %s instead. The only supported option at this time is `crossOrigin` which accepts a string.",
1998
- getValueDescriptorExpectingEnumForWarning(options)
1999
- ) : null != options && "string" !== typeof options.crossOrigin && console.error(
2000
- "ReactDOM.preconnect(): Expected the `crossOrigin` option (second argument) to be a string but encountered %s instead. Try removing this option or passing a string value instead.",
2001
- getValueDescriptorExpectingObjectForWarning(options.crossOrigin)
2002
- ) : console.error(
2003
- "ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.",
2004
- getValueDescriptorExpectingObjectForWarning(href)
2005
- );
2006
- "string" === typeof href && (options ? (options = options.crossOrigin, options = "string" === typeof options ? "use-credentials" === options ? options : "" : void 0) : options = null, Internals.d.C(href, options));
2007
- };
2008
- exports.prefetchDNS = function(href) {
2009
- if ("string" !== typeof href || !href)
2010
- console.error(
2011
- "ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.",
2012
- getValueDescriptorExpectingObjectForWarning(href)
2013
- );
2014
- else if (1 < arguments.length) {
2015
- var options = arguments[1];
2016
- "object" === typeof options && options.hasOwnProperty("crossOrigin") ? console.error(
2017
- "ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. It looks like the you are attempting to set a crossOrigin property for this DNS lookup hint. Browsers do not perform DNS queries using CORS and setting this attribute on the resource hint has no effect. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.",
2018
- getValueDescriptorExpectingEnumForWarning(options)
2019
- ) : console.error(
2020
- "ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.",
2021
- getValueDescriptorExpectingEnumForWarning(options)
2022
- );
1998
+ function hasValidKey(config) {
1999
+ if (hasOwnProperty.call(config, "key")) {
2000
+ var getter = Object.getOwnPropertyDescriptor(config, "key").get;
2001
+ if (getter && getter.isReactWarning) return false;
2023
2002
  }
2024
- "string" === typeof href && Internals.d.D(href);
2025
- };
2026
- exports.preinit = function(href, options) {
2027
- "string" === typeof href && href ? null == options || "object" !== typeof options ? console.error(
2028
- "ReactDOM.preinit(): Expected the `options` argument (second) to be an object with an `as` property describing the type of resource to be preinitialized but encountered %s instead.",
2029
- getValueDescriptorExpectingEnumForWarning(options)
2030
- ) : "style" !== options.as && "script" !== options.as && console.error(
2031
- 'ReactDOM.preinit(): Expected the `as` property in the `options` argument (second) to contain a valid value describing the type of resource to be preinitialized but encountered %s instead. Valid values for `as` are "style" and "script".',
2032
- getValueDescriptorExpectingEnumForWarning(options.as)
2033
- ) : console.error(
2034
- "ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.",
2035
- getValueDescriptorExpectingObjectForWarning(href)
2036
- );
2037
- if ("string" === typeof href && options && "string" === typeof options.as) {
2038
- var as = options.as, crossOrigin = getCrossOriginStringAs(as, options.crossOrigin), integrity = "string" === typeof options.integrity ? options.integrity : void 0, fetchPriority = "string" === typeof options.fetchPriority ? options.fetchPriority : void 0;
2039
- "style" === as ? Internals.d.S(
2040
- href,
2041
- "string" === typeof options.precedence ? options.precedence : void 0,
2042
- {
2043
- crossOrigin,
2044
- integrity,
2045
- fetchPriority
2046
- }
2047
- ) : "script" === as && Internals.d.X(href, {
2048
- crossOrigin,
2049
- integrity,
2050
- fetchPriority,
2051
- nonce: "string" === typeof options.nonce ? options.nonce : void 0
2052
- });
2003
+ return void 0 !== config.key;
2004
+ }
2005
+ function defineKeyPropWarningGetter(props, displayName) {
2006
+ function warnAboutAccessingKey() {
2007
+ specialPropKeyWarningShown || (specialPropKeyWarningShown = true, console.error(
2008
+ "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
2009
+ displayName
2010
+ ));
2053
2011
  }
2054
- };
2055
- exports.preinitModule = function(href, options) {
2056
- var encountered = "";
2057
- "string" === typeof href && href || (encountered += " The `href` argument encountered was " + getValueDescriptorExpectingObjectForWarning(href) + ".");
2058
- void 0 !== options && "object" !== typeof options ? encountered += " The `options` argument encountered was " + getValueDescriptorExpectingObjectForWarning(options) + "." : options && "as" in options && "script" !== options.as && (encountered += " The `as` option encountered was " + getValueDescriptorExpectingEnumForWarning(options.as) + ".");
2059
- if (encountered)
2060
- console.error(
2061
- "ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s",
2062
- encountered
2063
- );
2064
- else
2065
- switch (encountered = options && "string" === typeof options.as ? options.as : "script", encountered) {
2066
- case "script":
2067
- break;
2068
- default:
2069
- encountered = getValueDescriptorExpectingEnumForWarning(encountered), console.error(
2070
- 'ReactDOM.preinitModule(): Currently the only supported "as" type for this function is "script" but received "%s" instead. This warning was generated for `href` "%s". In the future other module types will be supported, aligning with the import-attributes proposal. Learn more here: (https://github.com/tc39/proposal-import-attributes)',
2071
- encountered,
2072
- href
2012
+ warnAboutAccessingKey.isReactWarning = true;
2013
+ Object.defineProperty(props, "key", {
2014
+ get: warnAboutAccessingKey,
2015
+ configurable: true
2016
+ });
2017
+ }
2018
+ function elementRefGetterWithDeprecationWarning() {
2019
+ var componentName = getComponentNameFromType(this.type);
2020
+ didWarnAboutElementRef[componentName] || (didWarnAboutElementRef[componentName] = true, console.error(
2021
+ "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
2022
+ ));
2023
+ componentName = this.props.ref;
2024
+ return void 0 !== componentName ? componentName : null;
2025
+ }
2026
+ function ReactElement(type, key, props, owner, debugStack, debugTask) {
2027
+ var refProp = props.ref;
2028
+ type = {
2029
+ $$typeof: REACT_ELEMENT_TYPE,
2030
+ type,
2031
+ key,
2032
+ props,
2033
+ _owner: owner
2034
+ };
2035
+ null !== (void 0 !== refProp ? refProp : null) ? Object.defineProperty(type, "ref", {
2036
+ enumerable: false,
2037
+ get: elementRefGetterWithDeprecationWarning
2038
+ }) : Object.defineProperty(type, "ref", { enumerable: false, value: null });
2039
+ type._store = {};
2040
+ Object.defineProperty(type._store, "validated", {
2041
+ configurable: false,
2042
+ enumerable: false,
2043
+ writable: true,
2044
+ value: 0
2045
+ });
2046
+ Object.defineProperty(type, "_debugInfo", {
2047
+ configurable: false,
2048
+ enumerable: false,
2049
+ writable: true,
2050
+ value: null
2051
+ });
2052
+ Object.defineProperty(type, "_debugStack", {
2053
+ configurable: false,
2054
+ enumerable: false,
2055
+ writable: true,
2056
+ value: debugStack
2057
+ });
2058
+ Object.defineProperty(type, "_debugTask", {
2059
+ configurable: false,
2060
+ enumerable: false,
2061
+ writable: true,
2062
+ value: debugTask
2063
+ });
2064
+ Object.freeze && (Object.freeze(type.props), Object.freeze(type));
2065
+ return type;
2066
+ }
2067
+ function jsxDEVImpl(type, config, maybeKey, isStaticChildren, debugStack, debugTask) {
2068
+ var children = config.children;
2069
+ if (void 0 !== children)
2070
+ if (isStaticChildren)
2071
+ if (isArrayImpl(children)) {
2072
+ for (isStaticChildren = 0; isStaticChildren < children.length; isStaticChildren++)
2073
+ validateChildKeys(children[isStaticChildren]);
2074
+ Object.freeze && Object.freeze(children);
2075
+ } else
2076
+ console.error(
2077
+ "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
2073
2078
  );
2074
- }
2075
- if ("string" === typeof href)
2076
- if ("object" === typeof options && null !== options) {
2077
- if (null == options.as || "script" === options.as)
2078
- encountered = getCrossOriginStringAs(
2079
- options.as,
2080
- options.crossOrigin
2081
- ), Internals.d.M(href, {
2082
- crossOrigin: encountered,
2083
- integrity: "string" === typeof options.integrity ? options.integrity : void 0,
2084
- nonce: "string" === typeof options.nonce ? options.nonce : void 0
2085
- });
2086
- } else null == options && Internals.d.M(href);
2087
- };
2088
- exports.preload = function(href, options) {
2089
- var encountered = "";
2090
- "string" === typeof href && href || (encountered += " The `href` argument encountered was " + getValueDescriptorExpectingObjectForWarning(href) + ".");
2091
- null == options || "object" !== typeof options ? encountered += " The `options` argument encountered was " + getValueDescriptorExpectingObjectForWarning(options) + "." : "string" === typeof options.as && options.as || (encountered += " The `as` option encountered was " + getValueDescriptorExpectingObjectForWarning(options.as) + ".");
2092
- encountered && console.error(
2093
- 'ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `<link rel="preload" as="..." />` tag.%s',
2094
- encountered
2095
- );
2096
- if ("string" === typeof href && "object" === typeof options && null !== options && "string" === typeof options.as) {
2097
- encountered = options.as;
2098
- var crossOrigin = getCrossOriginStringAs(
2099
- encountered,
2100
- options.crossOrigin
2101
- );
2102
- Internals.d.L(href, encountered, {
2103
- crossOrigin,
2104
- integrity: "string" === typeof options.integrity ? options.integrity : void 0,
2105
- nonce: "string" === typeof options.nonce ? options.nonce : void 0,
2106
- type: "string" === typeof options.type ? options.type : void 0,
2107
- fetchPriority: "string" === typeof options.fetchPriority ? options.fetchPriority : void 0,
2108
- referrerPolicy: "string" === typeof options.referrerPolicy ? options.referrerPolicy : void 0,
2109
- imageSrcSet: "string" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,
2110
- imageSizes: "string" === typeof options.imageSizes ? options.imageSizes : void 0,
2111
- media: "string" === typeof options.media ? options.media : void 0
2079
+ else validateChildKeys(children);
2080
+ if (hasOwnProperty.call(config, "key")) {
2081
+ children = getComponentNameFromType(type);
2082
+ var keys = Object.keys(config).filter(function(k) {
2083
+ return "key" !== k;
2112
2084
  });
2085
+ isStaticChildren = 0 < keys.length ? "{key: someKey, " + keys.join(": ..., ") + ": ...}" : "{key: someKey}";
2086
+ didWarnAboutKeySpread[children + isStaticChildren] || (keys = 0 < keys.length ? "{" + keys.join(": ..., ") + ": ...}" : "{}", console.error(
2087
+ 'A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',
2088
+ isStaticChildren,
2089
+ children,
2090
+ keys,
2091
+ children
2092
+ ), didWarnAboutKeySpread[children + isStaticChildren] = true);
2113
2093
  }
2114
- };
2115
- exports.preloadModule = function(href, options) {
2116
- var encountered = "";
2117
- "string" === typeof href && href || (encountered += " The `href` argument encountered was " + getValueDescriptorExpectingObjectForWarning(href) + ".");
2118
- void 0 !== options && "object" !== typeof options ? encountered += " The `options` argument encountered was " + getValueDescriptorExpectingObjectForWarning(options) + "." : options && "as" in options && "string" !== typeof options.as && (encountered += " The `as` option encountered was " + getValueDescriptorExpectingObjectForWarning(options.as) + ".");
2119
- encountered && console.error(
2120
- 'ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `<link rel="modulepreload" as="..." />` tag.%s',
2121
- encountered
2094
+ children = null;
2095
+ void 0 !== maybeKey && (checkKeyStringCoercion(maybeKey), children = "" + maybeKey);
2096
+ hasValidKey(config) && (checkKeyStringCoercion(config.key), children = "" + config.key);
2097
+ if ("key" in config) {
2098
+ maybeKey = {};
2099
+ for (var propName in config)
2100
+ "key" !== propName && (maybeKey[propName] = config[propName]);
2101
+ } else maybeKey = config;
2102
+ children && defineKeyPropWarningGetter(
2103
+ maybeKey,
2104
+ "function" === typeof type ? type.displayName || type.name || "Unknown" : type
2122
2105
  );
2123
- "string" === typeof href && (options ? (encountered = getCrossOriginStringAs(
2124
- options.as,
2125
- options.crossOrigin
2126
- ), Internals.d.m(href, {
2127
- as: "string" === typeof options.as && "script" !== options.as ? options.as : void 0,
2128
- crossOrigin: encountered,
2129
- integrity: "string" === typeof options.integrity ? options.integrity : void 0
2130
- })) : Internals.d.m(href));
2131
- };
2132
- exports.requestFormReset = function(form) {
2133
- Internals.d.r(form);
2106
+ return ReactElement(
2107
+ type,
2108
+ children,
2109
+ maybeKey,
2110
+ getOwner(),
2111
+ debugStack,
2112
+ debugTask
2113
+ );
2114
+ }
2115
+ function validateChildKeys(node) {
2116
+ isValidElement(node) ? node._store && (node._store.validated = 1) : "object" === typeof node && null !== node && node.$$typeof === REACT_LAZY_TYPE && ("fulfilled" === node._payload.status ? isValidElement(node._payload.value) && node._payload.value._store && (node._payload.value._store.validated = 1) : node._store && (node._store.validated = 1));
2117
+ }
2118
+ function isValidElement(object) {
2119
+ return "object" === typeof object && null !== object && object.$$typeof === REACT_ELEMENT_TYPE;
2120
+ }
2121
+ var React45 = require_react(), REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = /* @__PURE__ */ Symbol.for("react.profiler"), REACT_CONSUMER_TYPE = /* @__PURE__ */ Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = /* @__PURE__ */ Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = /* @__PURE__ */ Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = /* @__PURE__ */ Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo"), REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy"), REACT_ACTIVITY_TYPE = /* @__PURE__ */ Symbol.for("react.activity"), REACT_CLIENT_REFERENCE = /* @__PURE__ */ Symbol.for("react.client.reference"), ReactSharedInternals = React45.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, hasOwnProperty = Object.prototype.hasOwnProperty, isArrayImpl = Array.isArray, createTask = console.createTask ? console.createTask : function() {
2122
+ return null;
2134
2123
  };
2135
- exports.unstable_batchedUpdates = function(fn, a) {
2136
- return fn(a);
2124
+ React45 = {
2125
+ react_stack_bottom_frame: function(callStackForError) {
2126
+ return callStackForError();
2127
+ }
2137
2128
  };
2138
- exports.useFormState = function(action, initialState2, permalink) {
2139
- return resolveDispatcher().useFormState(action, initialState2, permalink);
2129
+ var specialPropKeyWarningShown;
2130
+ var didWarnAboutElementRef = {};
2131
+ var unknownOwnerDebugStack = React45.react_stack_bottom_frame.bind(
2132
+ React45,
2133
+ UnknownOwner
2134
+ )();
2135
+ var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
2136
+ var didWarnAboutKeySpread = {};
2137
+ exports.Fragment = REACT_FRAGMENT_TYPE;
2138
+ exports.jsx = function(type, config, maybeKey) {
2139
+ var trackActualOwner = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
2140
+ return jsxDEVImpl(
2141
+ type,
2142
+ config,
2143
+ maybeKey,
2144
+ false,
2145
+ trackActualOwner ? Error("react-stack-top-frame") : unknownOwnerDebugStack,
2146
+ trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
2147
+ );
2140
2148
  };
2141
- exports.useFormStatus = function() {
2142
- return resolveDispatcher().useHostTransitionStatus();
2149
+ exports.jsxs = function(type, config, maybeKey) {
2150
+ var trackActualOwner = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
2151
+ return jsxDEVImpl(
2152
+ type,
2153
+ config,
2154
+ maybeKey,
2155
+ true,
2156
+ trackActualOwner ? Error("react-stack-top-frame") : unknownOwnerDebugStack,
2157
+ trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
2158
+ );
2143
2159
  };
2144
- exports.version = "19.2.4";
2145
- "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
2146
2160
  })();
2147
2161
  }
2148
2162
  });
2149
2163
 
2150
- // node_modules/react-dom/index.js
2151
- var require_react_dom = __commonJS({
2152
- "node_modules/react-dom/index.js"(exports, module) {
2164
+ // node_modules/react/jsx-runtime.js
2165
+ var require_jsx_runtime = __commonJS({
2166
+ "node_modules/react/jsx-runtime.js"(exports, module) {
2153
2167
  "use strict";
2154
- function checkDCE() {
2155
- if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === "undefined" || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== "function") {
2156
- return;
2157
- }
2158
- if (process.env.NODE_ENV !== "production") {
2159
- throw new Error("^_^");
2160
- }
2161
- try {
2162
- __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
2163
- } catch (err) {
2164
- console.error(err);
2165
- }
2166
- }
2167
2168
  if (process.env.NODE_ENV === "production") {
2168
- checkDCE();
2169
- module.exports = require_react_dom_production();
2169
+ module.exports = require_react_jsx_runtime_production();
2170
2170
  } else {
2171
- module.exports = require_react_dom_development();
2171
+ module.exports = require_react_jsx_runtime_development();
2172
2172
  }
2173
2173
  }
2174
2174
  });
@@ -6035,9 +6035,25 @@ var CodegoUI = (() => {
6035
6035
  var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
6036
6036
 
6037
6037
  // src/lib/utils.ts
6038
+ var ReactDOM = __toESM(require_react_dom(), 1);
6038
6039
  function cn(...inputs) {
6039
6040
  return twMerge(clsx(inputs));
6040
6041
  }
6042
+ function getPortalPosition(triggerEl, dropdownHeight = 300, preferredPlacement = "bottom") {
6043
+ const r2 = triggerEl.getBoundingClientRect();
6044
+ const spaceBelow = window.innerHeight - r2.bottom;
6045
+ const spaceAbove = r2.top;
6046
+ const placement = preferredPlacement === "bottom" && spaceBelow < dropdownHeight && spaceAbove > spaceBelow ? "top" : preferredPlacement;
6047
+ return {
6048
+ top: placement === "bottom" ? r2.bottom + 4 : r2.top - 4,
6049
+ left: r2.left,
6050
+ width: r2.width,
6051
+ placement
6052
+ };
6053
+ }
6054
+ function FloatingPortal({ children }) {
6055
+ return ReactDOM.createPortal(children, document.body);
6056
+ }
6041
6057
 
6042
6058
  // src/components/ui/accordion.tsx
6043
6059
  var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
@@ -6827,6 +6843,8 @@ var CodegoUI = (() => {
6827
6843
  const [opacity, setOpacity] = React7.useState(100);
6828
6844
  const [recent, setRecent] = React7.useState([]);
6829
6845
  const ref = React7.useRef(null);
6846
+ const triggerRef = React7.useRef(null);
6847
+ const [dropStyle, setDropStyle] = React7.useState({});
6830
6848
  const color = controlled ?? internal;
6831
6849
  React7.useEffect(() => {
6832
6850
  setHex(color);
@@ -6838,6 +6856,19 @@ var CodegoUI = (() => {
6838
6856
  document.addEventListener("mousedown", handler);
6839
6857
  return () => document.removeEventListener("mousedown", handler);
6840
6858
  }, []);
6859
+ function openPicker() {
6860
+ if (triggerRef.current) {
6861
+ const pos = getPortalPosition(triggerRef.current, 280);
6862
+ setDropStyle({
6863
+ position: "fixed",
6864
+ top: pos.placement === "bottom" ? pos.top : void 0,
6865
+ bottom: pos.placement === "top" ? window.innerHeight - pos.top : void 0,
6866
+ left: pos.left,
6867
+ zIndex: 9999
6868
+ });
6869
+ }
6870
+ setOpen(true);
6871
+ }
6841
6872
  function apply(c) {
6842
6873
  if (!controlled) setInternal(c);
6843
6874
  onChange?.(c);
@@ -6852,9 +6883,10 @@ var CodegoUI = (() => {
6852
6883
  /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
6853
6884
  "button",
6854
6885
  {
6886
+ ref: triggerRef,
6855
6887
  type: "button",
6856
6888
  disabled,
6857
- onClick: () => setOpen((v) => !v),
6889
+ onClick: () => open ? setOpen(false) : openPicker(),
6858
6890
  className: cn(
6859
6891
  "flex items-center gap-2 h-9 px-3 rounded-xl border border-border bg-background text-sm transition-colors hover:border-primary/40 focus:outline-none focus:ring-2 focus:ring-ring",
6860
6892
  disabled && "opacity-50 cursor-not-allowed pointer-events-none"
@@ -6865,7 +6897,7 @@ var CodegoUI = (() => {
6865
6897
  ]
6866
6898
  }
6867
6899
  ),
6868
- open && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "absolute z-50 mt-1 w-56 rounded-xl border border-border glass shadow-2xl p-3 space-y-3", children: [
6900
+ open && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(FloatingPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "w-56 rounded-xl border border-border glass shadow-2xl p-3 space-y-3", style: dropStyle, children: [
6869
6901
  /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "flex items-center gap-2", children: [
6870
6902
  /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
6871
6903
  "input",
@@ -6920,10 +6952,7 @@ var CodegoUI = (() => {
6920
6952
  apply(s);
6921
6953
  setHex(s);
6922
6954
  },
6923
- className: cn(
6924
- "h-6 w-6 rounded-md border transition-transform hover:scale-110",
6925
- color === s ? "border-primary ring-1 ring-primary" : "border-border/60"
6926
- ),
6955
+ className: cn("h-6 w-6 rounded-md border transition-transform hover:scale-110", color === s ? "border-primary ring-1 ring-primary" : "border-border/60"),
6927
6956
  style: { backgroundColor: s },
6928
6957
  title: s
6929
6958
  },
@@ -6947,7 +6976,7 @@ var CodegoUI = (() => {
6947
6976
  s
6948
6977
  )) })
6949
6978
  ] })
6950
- ] })
6979
+ ] }) })
6951
6980
  ] });
6952
6981
  }
6953
6982
 
@@ -6973,7 +7002,9 @@ var CodegoUI = (() => {
6973
7002
  const [open, setOpen] = React8.useState(false);
6974
7003
  const [query, setQuery] = React8.useState("");
6975
7004
  const ref = React8.useRef(null);
7005
+ const triggerRef = React8.useRef(null);
6976
7006
  const inputRef = React8.useRef(null);
7007
+ const [dropStyle, setDropStyle] = React8.useState({});
6977
7008
  const selected = controlled ?? internal;
6978
7009
  function update(val) {
6979
7010
  if (!controlled) setInternal(val);
@@ -6997,6 +7028,20 @@ var CodegoUI = (() => {
6997
7028
  e.stopPropagation();
6998
7029
  update(multiple ? [] : "");
6999
7030
  }
7031
+ const openDropdown = () => {
7032
+ if (triggerRef.current) {
7033
+ const pos = getPortalPosition(triggerRef.current, 300);
7034
+ setDropStyle({
7035
+ position: "fixed",
7036
+ top: pos.placement === "bottom" ? pos.top : void 0,
7037
+ bottom: pos.placement === "top" ? window.innerHeight - pos.top : void 0,
7038
+ left: pos.left,
7039
+ width: pos.width,
7040
+ zIndex: 9999
7041
+ });
7042
+ }
7043
+ setOpen(true);
7044
+ };
7000
7045
  React8.useEffect(() => {
7001
7046
  function handler(e) {
7002
7047
  if (ref.current && !ref.current.contains(e.target)) {
@@ -7010,13 +7055,10 @@ var CodegoUI = (() => {
7010
7055
  React8.useEffect(() => {
7011
7056
  if (open) setTimeout(() => inputRef.current?.focus(), 50);
7012
7057
  }, [open]);
7013
- const filtered = options.filter(
7014
- (o) => o.label.toLowerCase().includes(query.toLowerCase())
7015
- );
7058
+ const filtered = options.filter((o) => o.label.toLowerCase().includes(query.toLowerCase()));
7016
7059
  const groups = Array.from(new Set(filtered.map((o) => o.group ?? ""))).filter(Boolean);
7017
7060
  const ungrouped = filtered.filter((o) => !o.group);
7018
7061
  const showCreate = creatable && query && !options.find((o) => o.label.toLowerCase() === query.toLowerCase());
7019
- const selectedLabels = multiple ? selected.map((v) => options.find((o) => o.value === v)?.label ?? v) : options.find((o) => o.value === selected)?.label;
7020
7062
  const hasValue = multiple ? selected.length > 0 : !!selected;
7021
7063
  function renderOptions(opts) {
7022
7064
  return opts.map((opt) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
@@ -7044,9 +7086,10 @@ var CodegoUI = (() => {
7044
7086
  /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
7045
7087
  "button",
7046
7088
  {
7089
+ ref: triggerRef,
7047
7090
  type: "button",
7048
7091
  disabled,
7049
- onClick: () => setOpen((v) => !v),
7092
+ onClick: () => open ? setOpen(false) : openDropdown(),
7050
7093
  className: cn(
7051
7094
  "flex w-full items-center justify-between gap-2 rounded-xl border border-border bg-background px-3 py-2 text-sm transition-colors",
7052
7095
  "hover:border-primary/40 focus:outline-none focus:ring-2 focus:ring-ring",
@@ -7054,7 +7097,7 @@ var CodegoUI = (() => {
7054
7097
  disabled && "opacity-50 cursor-not-allowed pointer-events-none"
7055
7098
  ),
7056
7099
  children: [
7057
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: cn("flex-1 truncate text-left", !hasValue && "text-muted-foreground"), children: multiple ? selected.length > 0 ? `${selected.length} selected` : placeholder : selectedLabels || placeholder }),
7100
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: cn("flex-1 truncate text-left", !hasValue && "text-muted-foreground"), children: multiple ? selected.length > 0 ? `${selected.length} selected` : placeholder : options.find((o) => o.value === selected)?.label || placeholder }),
7058
7101
  /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("span", { className: "flex items-center gap-1 shrink-0", children: [
7059
7102
  clearable && hasValue && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { onClick: clear, className: "text-muted-foreground hover:text-foreground transition-colors", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(X, { className: "h-3.5 w-3.5" }) }),
7060
7103
  /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ChevronDown, { className: cn("h-4 w-4 text-muted-foreground transition-transform", open && "rotate-180") })
@@ -7062,50 +7105,57 @@ var CodegoUI = (() => {
7062
7105
  ]
7063
7106
  }
7064
7107
  ),
7065
- open && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "absolute z-50 mt-1 w-full rounded-xl border border-border glass shadow-2xl overflow-hidden", children: [
7066
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "flex items-center gap-2 border-b border-border px-3 py-2", children: [
7067
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Search, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }),
7068
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
7069
- "input",
7070
- {
7071
- ref: inputRef,
7072
- value: query,
7073
- onChange: (e) => setQuery(e.target.value),
7074
- placeholder: searchPlaceholder,
7075
- className: "flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground"
7076
- }
7077
- )
7078
- ] }),
7079
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "overflow-y-auto p-1", style: { maxHeight }, children: [
7080
- showCreate && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
7081
- "button",
7082
- {
7083
- type: "button",
7084
- onClick: () => {
7085
- toggle(query);
7086
- setQuery("");
7087
- },
7088
- className: "flex w-full items-center gap-2 px-3 py-2 text-sm rounded-lg hover:bg-accent text-primary",
7089
- children: [
7090
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Plus, { className: "h-3.5 w-3.5" }),
7091
- 'Create "',
7092
- query,
7093
- '"'
7094
- ]
7095
- }
7096
- ),
7097
- groups.map((group) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { children: [
7098
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: "px-3 py-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground", children: group }),
7099
- renderOptions(filtered.filter((o) => o.group === group))
7100
- ] }, group)),
7101
- renderOptions(ungrouped),
7102
- filtered.length === 0 && !showCreate && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: "px-3 py-4 text-center text-sm text-muted-foreground", children: "No results" })
7103
- ] }),
7104
- multiple && selected.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "border-t border-border px-3 py-2 flex flex-wrap gap-1", children: selected.map((v) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("span", { className: "inline-flex items-center gap-1 rounded-full bg-primary/15 text-primary text-xs px-2 py-0.5", children: [
7105
- options.find((o) => o.value === v)?.label ?? v,
7106
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("button", { type: "button", onClick: () => toggle(v), className: "opacity-60 hover:opacity-100", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(X, { className: "h-3 w-3" }) })
7107
- ] }, v)) })
7108
- ] })
7108
+ open && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(FloatingPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
7109
+ "div",
7110
+ {
7111
+ className: "rounded-xl border border-border glass shadow-2xl overflow-hidden",
7112
+ style: dropStyle,
7113
+ children: [
7114
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "flex items-center gap-2 border-b border-border px-3 py-2", children: [
7115
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Search, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }),
7116
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
7117
+ "input",
7118
+ {
7119
+ ref: inputRef,
7120
+ value: query,
7121
+ onChange: (e) => setQuery(e.target.value),
7122
+ placeholder: searchPlaceholder,
7123
+ className: "flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground"
7124
+ }
7125
+ )
7126
+ ] }),
7127
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "overflow-y-auto p-1", style: { maxHeight }, children: [
7128
+ showCreate && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
7129
+ "button",
7130
+ {
7131
+ type: "button",
7132
+ onClick: () => {
7133
+ toggle(query);
7134
+ setQuery("");
7135
+ },
7136
+ className: "flex w-full items-center gap-2 px-3 py-2 text-sm rounded-lg hover:bg-accent text-primary",
7137
+ children: [
7138
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Plus, { className: "h-3.5 w-3.5" }),
7139
+ 'Create "',
7140
+ query,
7141
+ '"'
7142
+ ]
7143
+ }
7144
+ ),
7145
+ groups.map((group) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { children: [
7146
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: "px-3 py-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground", children: group }),
7147
+ renderOptions(filtered.filter((o) => o.group === group))
7148
+ ] }, group)),
7149
+ renderOptions(ungrouped),
7150
+ filtered.length === 0 && !showCreate && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: "px-3 py-4 text-center text-sm text-muted-foreground", children: "No results" })
7151
+ ] }),
7152
+ multiple && selected.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "border-t border-border px-3 py-2 flex flex-wrap gap-1", children: selected.map((v) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("span", { className: "inline-flex items-center gap-1 rounded-full bg-primary/15 text-primary text-xs px-2 py-0.5", children: [
7153
+ options.find((o) => o.value === v)?.label ?? v,
7154
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("button", { type: "button", onClick: () => toggle(v), className: "opacity-60 hover:opacity-100", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(X, { className: "h-3 w-3" }) })
7155
+ ] }, v)) })
7156
+ ]
7157
+ }
7158
+ ) })
7109
7159
  ] });
7110
7160
  }
7111
7161
 
@@ -9914,6 +9964,20 @@ var CodegoUI = (() => {
9914
9964
  return null;
9915
9965
  }
9916
9966
  }
9967
+ function getAnchorStyle(anchorEl, wide = false) {
9968
+ if (!anchorEl) return { position: "fixed", top: 0, left: 0, zIndex: 9999 };
9969
+ const r2 = anchorEl.getBoundingClientRect();
9970
+ const spaceBelow = window.innerHeight - r2.bottom;
9971
+ const dropH = wide ? 320 : 300;
9972
+ const placement = spaceBelow < dropH && r2.top > spaceBelow ? "top" : "bottom";
9973
+ return {
9974
+ position: "fixed",
9975
+ top: placement === "bottom" ? r2.bottom + 4 : void 0,
9976
+ bottom: placement === "top" ? window.innerHeight - r2.top + 4 : void 0,
9977
+ left: r2.left,
9978
+ zIndex: 9999
9979
+ };
9980
+ }
9917
9981
  function TimePicker({
9918
9982
  selected,
9919
9983
  disabledDateTimes,
@@ -9981,25 +10045,9 @@ var CodegoUI = (() => {
9981
10045
  const isDisabled = (d) => disabledDates?.includes(format(d, "yyyy-MM-dd")) ?? false;
9982
10046
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "p-3 select-none", children: [
9983
10047
  /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [
9984
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
9985
- "button",
9986
- {
9987
- type: "button",
9988
- onClick: onPrevMonth,
9989
- className: "p-1 rounded hover:bg-white/10 text-muted-foreground hover:text-foreground transition-colors",
9990
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ChevronLeft, { size: 16 })
9991
- }
9992
- ),
10048
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("button", { type: "button", onClick: onPrevMonth, className: "p-1 rounded hover:bg-white/10 text-muted-foreground hover:text-foreground transition-colors", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ChevronLeft, { size: 16 }) }),
9993
10049
  /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "text-sm font-semibold text-foreground", children: format(month, "MMMM yyyy") }),
9994
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
9995
- "button",
9996
- {
9997
- type: "button",
9998
- onClick: onNextMonth,
9999
- className: "p-1 rounded hover:bg-white/10 text-muted-foreground hover:text-foreground transition-colors",
10000
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ChevronRight, { size: 16 })
10001
- }
10002
- )
10050
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("button", { type: "button", onClick: onNextMonth, className: "p-1 rounded hover:bg-white/10 text-muted-foreground hover:text-foreground transition-colors", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ChevronRight, { size: 16 }) })
10003
10051
  ] }),
10004
10052
  /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "grid grid-cols-7 mb-1", children: DAYS2.map((d) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "text-center text-xs text-muted-foreground py-1", children: d }, d)) }),
10005
10053
  /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "grid grid-cols-7 gap-y-1", children: days.map((d, i) => {
@@ -10034,136 +10082,44 @@ var CodegoUI = (() => {
10034
10082
  disabledDates,
10035
10083
  disabledDateTimes,
10036
10084
  onChange,
10037
- onClose
10085
+ onClose,
10086
+ anchorEl
10038
10087
  }) {
10039
10088
  const parsed = parseValue(value, mode);
10040
10089
  const [month, setMonth] = React13.useState(parsed ?? /* @__PURE__ */ new Date());
10041
10090
  const [selected, setSelected] = React13.useState(parsed);
10042
- const ref = React13.useRef(null);
10091
+ const anchorStyle = getAnchorStyle(anchorEl ?? null, mode === "dateTime");
10043
10092
  const commit = (d) => {
10044
- if (mode === "date") {
10045
- onChange(format(d, "yyyy-MM-dd"));
10046
- } else if (mode === "dateTime") {
10047
- onChange(format(d, "yyyy-MM-dd'T'HH:mm"));
10048
- } else {
10049
- onChange(format(d, "HH:mm"));
10050
- }
10093
+ if (mode === "date") onChange(format(d, "yyyy-MM-dd"));
10094
+ else if (mode === "dateTime") onChange(format(d, "yyyy-MM-dd'T'HH:mm"));
10095
+ else onChange(format(d, "HH:mm"));
10051
10096
  setSelected(d);
10052
10097
  };
10053
10098
  const handleDayClick = (d) => {
10054
10099
  const base = selected ?? /* @__PURE__ */ new Date();
10055
- const merged = setMinutes(setHours(d, getHours(base)), getMinutes(base));
10056
- commit(merged);
10100
+ commit(setMinutes(setHours(d, getHours(base)), getMinutes(base)));
10057
10101
  };
10058
10102
  const handleTimeChange = (h, m) => {
10059
- const base = selected ?? /* @__PURE__ */ new Date();
10060
- const merged = setMinutes(setHours(base, h), m);
10061
- commit(merged);
10103
+ commit(setMinutes(setHours(selected ?? /* @__PURE__ */ new Date(), h), m));
10062
10104
  };
10063
10105
  const datePrefix = selected ? format(selected, "yyyy-MM-dd") : void 0;
10064
- if (mode === "dateTime") {
10065
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
10066
- "div",
10106
+ const footer = (label) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "border-t border-white/10 px-3 py-2 flex items-center justify-between", children: [
10107
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "text-xs text-muted-foreground", children: label }),
10108
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
10109
+ "button",
10067
10110
  {
10068
- ref,
10069
- className: "absolute z-50 mt-1 rounded-xl border border-white/10 bg-card shadow-xl backdrop-blur-sm",
10070
- style: { top: "100%", left: 0 },
10071
- children: [
10072
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex", children: [
10073
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex-1 min-w-[240px]", children: [
10074
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-xs font-medium text-muted-foreground px-3 pt-3 pb-1", children: "Date" }),
10075
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
10076
- Calendar2,
10077
- {
10078
- selected,
10079
- month,
10080
- disabledDates,
10081
- onDayClick: handleDayClick,
10082
- onPrevMonth: () => setMonth((m) => subMonths(m, 1)),
10083
- onNextMonth: () => setMonth((m) => addMonths(m, 1))
10084
- }
10085
- )
10086
- ] }),
10087
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "w-px bg-white/10 my-3" }),
10088
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex-1 min-w-[140px] flex flex-col", children: [
10089
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-xs font-medium text-muted-foreground px-3 pt-3 pb-1", children: "Time" }),
10090
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex gap-2 px-3 pb-3 flex-1", children: [
10091
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex-1", children: [
10092
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-xs text-muted-foreground mb-1 text-center", children: "HH" }),
10093
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "grid grid-cols-1 gap-1 max-h-52 overflow-y-auto", children: HOURS.map((h) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
10094
- "button",
10095
- {
10096
- type: "button",
10097
- disabled: MINUTES.every((m) => {
10098
- if (!disabledDateTimes || !datePrefix) return false;
10099
- return disabledDateTimes.includes(`${datePrefix}T${String(h).padStart(2, "0")}:${String(m).padStart(2, "0")}`);
10100
- }),
10101
- onClick: () => handleTimeChange(h, selected ? getMinutes(selected) : 0),
10102
- className: cn(
10103
- "text-xs rounded py-1 transition-colors",
10104
- selected && getHours(selected) === h ? "bg-primary text-primary-foreground" : "hover:bg-white/10 text-foreground",
10105
- MINUTES.every((m) => {
10106
- if (!disabledDateTimes || !datePrefix) return false;
10107
- return disabledDateTimes.includes(`${datePrefix}T${String(h).padStart(2, "0")}:${String(m).padStart(2, "0")}`);
10108
- }) && "opacity-30 cursor-not-allowed line-through"
10109
- ),
10110
- children: String(h).padStart(2, "0")
10111
- },
10112
- h
10113
- )) })
10114
- ] }),
10115
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "w-12", children: [
10116
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-xs text-muted-foreground mb-1 text-center", children: "MM" }),
10117
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "grid grid-cols-1 gap-1 max-h-52 overflow-y-auto", children: MINUTES.map((m) => {
10118
- const h = selected ? getHours(selected) : 0;
10119
- const isDisabled = disabledDateTimes && datePrefix ? disabledDateTimes.includes(`${datePrefix}T${String(h).padStart(2, "0")}:${String(m).padStart(2, "0")}`) : false;
10120
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
10121
- "button",
10122
- {
10123
- type: "button",
10124
- disabled: isDisabled,
10125
- onClick: () => handleTimeChange(h, m),
10126
- className: cn(
10127
- "text-xs rounded py-1 transition-colors",
10128
- selected && getMinutes(selected) === m ? "bg-primary text-primary-foreground" : "hover:bg-white/10 text-foreground",
10129
- isDisabled && "opacity-30 cursor-not-allowed line-through"
10130
- ),
10131
- children: [
10132
- ":",
10133
- String(m).padStart(2, "0")
10134
- ]
10135
- },
10136
- m
10137
- );
10138
- }) })
10139
- ] })
10140
- ] })
10141
- ] })
10142
- ] }),
10143
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "border-t border-white/10 px-3 py-2 flex items-center justify-between", children: [
10144
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "text-xs text-muted-foreground", children: selected ? format(selected, "MMM d, yyyy HH:mm") : "No date selected" }),
10145
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
10146
- "button",
10147
- {
10148
- type: "button",
10149
- onClick: onClose,
10150
- className: "text-xs rounded-lg bg-primary text-primary-foreground px-3 py-1 hover:opacity-90 transition-opacity",
10151
- children: "Done"
10152
- }
10153
- )
10154
- ] })
10155
- ]
10111
+ type: "button",
10112
+ onClick: onClose,
10113
+ className: "text-xs rounded-lg bg-primary text-primary-foreground px-3 py-1 hover:opacity-90 transition-opacity",
10114
+ children: "Done"
10156
10115
  }
10157
- );
10158
- }
10159
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
10160
- "div",
10161
- {
10162
- ref,
10163
- className: "absolute z-50 mt-1 rounded-xl border border-white/10 bg-card shadow-xl backdrop-blur-sm min-w-[260px]",
10164
- style: { top: "100%", left: 0 },
10165
- children: [
10166
- mode === "date" && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
10116
+ )
10117
+ ] });
10118
+ if (mode === "dateTime") {
10119
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(FloatingPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "rounded-xl border border-white/10 bg-card shadow-xl backdrop-blur-sm", style: anchorStyle, children: [
10120
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex", children: [
10121
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex-1 min-w-[240px]", children: [
10122
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-xs font-medium text-muted-foreground px-3 pt-3 pb-1", children: "Date" }),
10167
10123
  /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
10168
10124
  Calendar2,
10169
10125
  {
@@ -10174,46 +10130,91 @@ var CodegoUI = (() => {
10174
10130
  onPrevMonth: () => setMonth((m) => subMonths(m, 1)),
10175
10131
  onNextMonth: () => setMonth((m) => addMonths(m, 1))
10176
10132
  }
10177
- ),
10178
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "border-t border-white/10 px-3 py-2 flex items-center justify-between", children: [
10179
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "text-xs text-muted-foreground", children: selected ? format(selected, "MMM d, yyyy") : "No date selected" }),
10180
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
10181
- "button",
10182
- {
10183
- type: "button",
10184
- onClick: onClose,
10185
- className: "text-xs rounded-lg bg-primary text-primary-foreground px-3 py-1 hover:opacity-90 transition-opacity",
10186
- children: "Done"
10187
- }
10188
- )
10189
- ] })
10133
+ )
10190
10134
  ] }),
10191
- mode === "time" && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
10192
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
10193
- TimePicker,
10194
- {
10195
- selected,
10196
- disabledDateTimes,
10197
- datePrefix,
10198
- onChange: handleTimeChange
10199
- }
10200
- ),
10201
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "border-t border-white/10 px-3 py-2 flex items-center justify-between", children: [
10202
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "text-xs text-muted-foreground", children: selected ? format(selected, "HH:mm") : "No time selected" }),
10203
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
10204
- "button",
10205
- {
10206
- type: "button",
10207
- onClick: onClose,
10208
- className: "text-xs rounded-lg bg-primary text-primary-foreground px-3 py-1 hover:opacity-90 transition-opacity",
10209
- children: "Done"
10210
- }
10211
- )
10135
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "w-px bg-white/10 my-3" }),
10136
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex-1 min-w-[140px] flex flex-col", children: [
10137
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-xs font-medium text-muted-foreground px-3 pt-3 pb-1", children: "Time" }),
10138
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex gap-2 px-3 pb-3 flex-1", children: [
10139
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex-1", children: [
10140
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-xs text-muted-foreground mb-1 text-center", children: "HH" }),
10141
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "grid grid-cols-1 gap-1 max-h-52 overflow-y-auto", children: HOURS.map((h) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
10142
+ "button",
10143
+ {
10144
+ type: "button",
10145
+ disabled: MINUTES.every((m) => {
10146
+ if (!disabledDateTimes || !datePrefix) return false;
10147
+ return disabledDateTimes.includes(`${datePrefix}T${String(h).padStart(2, "0")}:${String(m).padStart(2, "0")}`);
10148
+ }),
10149
+ onClick: () => handleTimeChange(h, selected ? getMinutes(selected) : 0),
10150
+ className: cn(
10151
+ "text-xs rounded py-1 transition-colors",
10152
+ selected && getHours(selected) === h ? "bg-primary text-primary-foreground" : "hover:bg-white/10 text-foreground"
10153
+ ),
10154
+ children: String(h).padStart(2, "0")
10155
+ },
10156
+ h
10157
+ )) })
10158
+ ] }),
10159
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "w-12", children: [
10160
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-xs text-muted-foreground mb-1 text-center", children: "MM" }),
10161
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "grid grid-cols-1 gap-1 max-h-52 overflow-y-auto", children: MINUTES.map((m) => {
10162
+ const h = selected ? getHours(selected) : 0;
10163
+ const dis = disabledDateTimes && datePrefix ? disabledDateTimes.includes(`${datePrefix}T${String(h).padStart(2, "0")}:${String(m).padStart(2, "0")}`) : false;
10164
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
10165
+ "button",
10166
+ {
10167
+ type: "button",
10168
+ disabled: dis,
10169
+ onClick: () => handleTimeChange(h, m),
10170
+ className: cn(
10171
+ "text-xs rounded py-1 transition-colors",
10172
+ selected && getMinutes(selected) === m ? "bg-primary text-primary-foreground" : "hover:bg-white/10 text-foreground",
10173
+ dis && "opacity-30 cursor-not-allowed line-through"
10174
+ ),
10175
+ children: [
10176
+ ":",
10177
+ String(m).padStart(2, "0")
10178
+ ]
10179
+ },
10180
+ m
10181
+ );
10182
+ }) })
10183
+ ] })
10212
10184
  ] })
10213
10185
  ] })
10214
- ]
10215
- }
10216
- );
10186
+ ] }),
10187
+ footer(selected ? format(selected, "MMM d, yyyy HH:mm") : "No date selected")
10188
+ ] }) });
10189
+ }
10190
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(FloatingPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "rounded-xl border border-white/10 bg-card shadow-xl backdrop-blur-sm min-w-[260px]", style: anchorStyle, children: [
10191
+ mode === "date" && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
10192
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
10193
+ Calendar2,
10194
+ {
10195
+ selected,
10196
+ month,
10197
+ disabledDates,
10198
+ onDayClick: handleDayClick,
10199
+ onPrevMonth: () => setMonth((m) => subMonths(m, 1)),
10200
+ onNextMonth: () => setMonth((m) => addMonths(m, 1))
10201
+ }
10202
+ ),
10203
+ footer(selected ? format(selected, "MMM d, yyyy") : "No date selected")
10204
+ ] }),
10205
+ mode === "time" && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
10206
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
10207
+ TimePicker,
10208
+ {
10209
+ selected,
10210
+ disabledDateTimes,
10211
+ datePrefix,
10212
+ onChange: handleTimeChange
10213
+ }
10214
+ ),
10215
+ footer(selected ? format(selected, "HH:mm") : "No time selected")
10216
+ ] })
10217
+ ] }) });
10217
10218
  }
10218
10219
 
10219
10220
  // src/components/ui/date-range-picker.tsx
@@ -10250,6 +10251,8 @@ var CodegoUI = (() => {
10250
10251
  const [viewMonth, setViewMonth] = React14.useState(today.getMonth());
10251
10252
  const [viewYear, setViewYear] = React14.useState(today.getFullYear());
10252
10253
  const ref = React14.useRef(null);
10254
+ const triggerRef = React14.useRef(null);
10255
+ const [dropStyle, setDropStyle] = React14.useState({});
10253
10256
  const range2 = controlled ?? internal;
10254
10257
  React14.useEffect(() => {
10255
10258
  function handler(e) {
@@ -10262,6 +10265,19 @@ var CodegoUI = (() => {
10262
10265
  if (!controlled) setInternal(r2);
10263
10266
  onChange?.(r2);
10264
10267
  }
10268
+ function openPicker() {
10269
+ if (triggerRef.current) {
10270
+ const pos = getPortalPosition(triggerRef.current, 340);
10271
+ setDropStyle({
10272
+ position: "fixed",
10273
+ top: pos.placement === "bottom" ? pos.top : void 0,
10274
+ bottom: pos.placement === "top" ? window.innerHeight - pos.top : void 0,
10275
+ left: pos.left,
10276
+ zIndex: 9999
10277
+ });
10278
+ }
10279
+ setOpen(true);
10280
+ }
10265
10281
  function selectDay(d) {
10266
10282
  if (selecting === "from") {
10267
10283
  update({ from: d, to: null });
@@ -10296,9 +10312,10 @@ var CodegoUI = (() => {
10296
10312
  /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
10297
10313
  "button",
10298
10314
  {
10315
+ ref: triggerRef,
10299
10316
  type: "button",
10300
10317
  disabled,
10301
- onClick: () => setOpen((v) => !v),
10318
+ onClick: () => open ? setOpen(false) : openPicker(),
10302
10319
  className: cn(
10303
10320
  "flex w-full items-center gap-2 rounded-xl border border-border bg-background px-3 py-2 text-sm transition-colors",
10304
10321
  "hover:border-primary/40 focus:outline-none focus:ring-2 focus:ring-ring",
@@ -10324,25 +10341,41 @@ var CodegoUI = (() => {
10324
10341
  ]
10325
10342
  }
10326
10343
  ),
10327
- open && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "absolute z-50 mt-1 rounded-xl border border-border glass shadow-2xl p-4 w-72", children: [
10344
+ open && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(FloatingPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "rounded-xl border border-border glass shadow-2xl p-4 w-72", style: dropStyle, children: [
10328
10345
  /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [
10329
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("button", { type: "button", onClick: () => {
10330
- if (viewMonth === 0) {
10331
- setViewMonth(11);
10332
- setViewYear((y) => y - 1);
10333
- } else setViewMonth((m) => m - 1);
10334
- }, className: "p-1 rounded-md hover:bg-accent transition-colors", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ChevronLeft, { className: "h-4 w-4" }) }),
10346
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
10347
+ "button",
10348
+ {
10349
+ type: "button",
10350
+ onClick: () => {
10351
+ if (viewMonth === 0) {
10352
+ setViewMonth(11);
10353
+ setViewYear((y) => y - 1);
10354
+ } else setViewMonth((m) => m - 1);
10355
+ },
10356
+ className: "p-1 rounded-md hover:bg-accent transition-colors",
10357
+ children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ChevronLeft, { className: "h-4 w-4" })
10358
+ }
10359
+ ),
10335
10360
  /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("span", { className: "text-sm font-semibold", children: [
10336
10361
  MONTHS2[viewMonth],
10337
10362
  " ",
10338
10363
  viewYear
10339
10364
  ] }),
10340
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("button", { type: "button", onClick: () => {
10341
- if (viewMonth === 11) {
10342
- setViewMonth(0);
10343
- setViewYear((y) => y + 1);
10344
- } else setViewMonth((m) => m + 1);
10345
- }, className: "p-1 rounded-md hover:bg-accent transition-colors", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ChevronRight, { className: "h-4 w-4" }) })
10365
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
10366
+ "button",
10367
+ {
10368
+ type: "button",
10369
+ onClick: () => {
10370
+ if (viewMonth === 11) {
10371
+ setViewMonth(0);
10372
+ setViewYear((y) => y + 1);
10373
+ } else setViewMonth((m) => m + 1);
10374
+ },
10375
+ className: "p-1 rounded-md hover:bg-accent transition-colors",
10376
+ children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ChevronRight, { className: "h-4 w-4" })
10377
+ }
10378
+ )
10346
10379
  ] }),
10347
10380
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "grid grid-cols-7 mb-1", children: DAYS3.map((d) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "text-center text-[10px] font-semibold text-muted-foreground py-1", children: d }, d)) }),
10348
10381
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "grid grid-cols-7 gap-y-0.5", children: days.map((d, i) => {
@@ -10377,7 +10410,7 @@ var CodegoUI = (() => {
10377
10410
  );
10378
10411
  }) }),
10379
10412
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "mt-3 text-center text-xs text-muted-foreground", children: selecting === "from" ? "Select start date" : "Select end date" })
10380
- ] })
10413
+ ] }) })
10381
10414
  ] });
10382
10415
  }
10383
10416
 
@@ -10478,10 +10511,10 @@ var CodegoUI = (() => {
10478
10511
  var React16 = __toESM(require_react(), 1);
10479
10512
  var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
10480
10513
  var widthMap = {
10481
- sm: "w-40",
10482
- md: "w-56",
10483
- lg: "w-72",
10484
- auto: "w-auto min-w-[10rem]"
10514
+ sm: 160,
10515
+ md: 224,
10516
+ lg: 288,
10517
+ auto: void 0
10485
10518
  };
10486
10519
  function Dropdown({
10487
10520
  trigger,
@@ -10495,25 +10528,40 @@ var CodegoUI = (() => {
10495
10528
  className
10496
10529
  }) {
10497
10530
  const [isOpen, setIsOpen] = React16.useState(false);
10498
- const containerRef = React16.useRef(null);
10499
- const toggle = () => {
10531
+ const triggerRef = React16.useRef(null);
10532
+ const [dropStyle, setDropStyle] = React16.useState({});
10533
+ const open = () => {
10500
10534
  if (disabled) return;
10501
- const next = !isOpen;
10502
- setIsOpen(next);
10503
- onOpenChange?.(next);
10535
+ if (triggerRef.current) {
10536
+ const r2 = triggerRef.current.getBoundingClientRect();
10537
+ const pos = getPortalPosition(triggerRef.current, 320, placement);
10538
+ const w = widthMap[width];
10539
+ let left = r2.left;
10540
+ if (align === "right") left = r2.right - (w ?? r2.width);
10541
+ if (align === "center") left = r2.left + r2.width / 2 - (w ?? r2.width) / 2;
10542
+ setDropStyle({
10543
+ position: "fixed",
10544
+ top: pos.placement === "bottom" ? pos.top : void 0,
10545
+ bottom: pos.placement === "top" ? window.innerHeight - r2.top + 4 : void 0,
10546
+ left,
10547
+ width: w,
10548
+ minWidth: w ? void 0 : "10rem",
10549
+ zIndex: 9999
10550
+ });
10551
+ }
10552
+ setIsOpen(true);
10553
+ onOpenChange?.(true);
10504
10554
  };
10505
10555
  const close = () => {
10506
10556
  setIsOpen(false);
10507
10557
  onOpenChange?.(false);
10508
10558
  };
10509
10559
  React16.useEffect(() => {
10510
- const handleClickOutside = (event) => {
10511
- if (containerRef.current && !containerRef.current.contains(event.target)) {
10512
- close();
10513
- }
10560
+ const handleClickOutside = (e) => {
10561
+ if (triggerRef.current && !triggerRef.current.contains(e.target)) close();
10514
10562
  };
10515
- const handleKeyDown = (event) => {
10516
- if (event.key === "Escape") close();
10563
+ const handleKeyDown = (e) => {
10564
+ if (e.key === "Escape") close();
10517
10565
  };
10518
10566
  document.addEventListener("mousedown", handleClickOutside);
10519
10567
  document.addEventListener("keydown", handleKeyDown);
@@ -10522,39 +10570,30 @@ var CodegoUI = (() => {
10522
10570
  document.removeEventListener("keydown", handleKeyDown);
10523
10571
  };
10524
10572
  }, [isOpen]);
10525
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "relative inline-block text-left", ref: containerRef, children: [
10573
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "relative inline-block text-left", ref: triggerRef, children: [
10526
10574
  /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
10527
10575
  "div",
10528
10576
  {
10529
- onClick: toggle,
10577
+ onClick: () => isOpen ? close() : open(),
10530
10578
  "aria-expanded": isOpen,
10531
10579
  "aria-haspopup": "true",
10532
10580
  className: cn(disabled && "opacity-50 cursor-not-allowed pointer-events-none"),
10533
10581
  children: trigger
10534
10582
  }
10535
10583
  ),
10536
- isOpen && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
10584
+ isOpen && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(FloatingPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
10537
10585
  "div",
10538
10586
  {
10539
10587
  className: cn(
10540
- "absolute z-50 rounded-xl border border-white/10 bg-background/90 backdrop-blur-2xl text-popover-foreground",
10588
+ "rounded-xl border border-white/10 bg-background/90 backdrop-blur-2xl text-popover-foreground",
10541
10589
  "shadow-[0_8px_32px_rgba(0,0,0,0.35)] ring-1 ring-white/5",
10542
10590
  "animate-in fade-in-0 zoom-in-95 duration-150",
10543
- widthMap[width],
10544
- placement === "top" ? "bottom-full mb-2" : "top-full mt-2",
10545
- align === "right" ? "right-0" : align === "center" ? "left-1/2 -translate-x-1/2" : "left-0",
10546
10591
  className
10547
10592
  ),
10548
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
10549
- "div",
10550
- {
10551
- className: "py-1.5",
10552
- onClick: closeOnSelect ? close : void 0,
10553
- children
10554
- }
10555
- )
10593
+ style: dropStyle,
10594
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "py-1.5", onClick: closeOnSelect ? close : void 0, children })
10556
10595
  }
10557
- )
10596
+ ) })
10558
10597
  ] });
10559
10598
  }
10560
10599
  function DropdownItem({
@@ -10587,10 +10626,7 @@ var CodegoUI = (() => {
10587
10626
  function DropdownSeparator({ className }) {
10588
10627
  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: cn("my-1.5 h-px bg-white/8", className) });
10589
10628
  }
10590
- function DropdownLabel({
10591
- children,
10592
- className
10593
- }) {
10629
+ function DropdownLabel({ children, className }) {
10594
10630
  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: cn("px-3.5 py-1.5 text-xs font-semibold uppercase tracking-wider text-muted-foreground/60", className), children });
10595
10631
  }
10596
10632
 
@@ -11451,6 +11487,7 @@ var CodegoUI = (() => {
11451
11487
  value: internalValue,
11452
11488
  disabledDates,
11453
11489
  disabledDateTimes,
11490
+ anchorEl: containerRef.current,
11454
11491
  onChange: (v) => {
11455
11492
  setInternalValue(v);
11456
11493
  setValidationError(null);
@@ -11838,30 +11875,43 @@ var CodegoUI = (() => {
11838
11875
  const [search, setSearch] = React23.useState("");
11839
11876
  const [isSearching, setIsSearching] = React23.useState(false);
11840
11877
  const containerRef = React23.useRef(null);
11878
+ const triggerRef = React23.useRef(null);
11879
+ const [dropStyle, setDropStyle] = React23.useState({});
11841
11880
  const getKey = (opt) => String(Object.keys(opt)[0]);
11842
11881
  const getLabel = (opt) => Object.values(opt)[0];
11843
11882
  const selectedValues = React23.useMemo(() => {
11844
- if (multiple && Array.isArray(value)) {
11845
- return value;
11846
- } else if (typeof value === "string") {
11847
- return [value];
11848
- }
11883
+ if (multiple && Array.isArray(value)) return value;
11884
+ if (typeof value === "string") return [value];
11849
11885
  return [];
11850
11886
  }, [value, multiple]);
11851
- const selectedOptions = React23.useMemo(() => {
11852
- return options.filter((opt) => selectedValues.includes(getKey(opt)));
11853
- }, [options, selectedValues]);
11854
- const filteredOptions = searchable ? options.filter(
11855
- (opt) => getLabel(opt).toLowerCase().includes(search.toLowerCase())
11856
- ) : options;
11887
+ const selectedOptions = React23.useMemo(
11888
+ () => options.filter((opt) => selectedValues.includes(getKey(opt))),
11889
+ [options, selectedValues]
11890
+ );
11891
+ const filteredOptions = searchable ? options.filter((opt) => getLabel(opt).toLowerCase().includes(search.toLowerCase())) : options;
11892
+ const openDropdown = () => {
11893
+ if (disabled) return;
11894
+ if (triggerRef.current) {
11895
+ const pos = getPortalPosition(triggerRef.current, 260);
11896
+ setDropStyle({
11897
+ position: "fixed",
11898
+ top: pos.placement === "bottom" ? pos.top : void 0,
11899
+ bottom: pos.placement === "top" ? window.innerHeight - pos.top : void 0,
11900
+ left: pos.left,
11901
+ width: pos.width,
11902
+ zIndex: 9999
11903
+ });
11904
+ }
11905
+ setIsOpen(true);
11906
+ };
11857
11907
  React23.useEffect(() => {
11858
- const handleClickOutside = (event) => {
11859
- if (containerRef.current && !containerRef.current.contains(event.target)) {
11908
+ const handler = (e) => {
11909
+ if (containerRef.current && !containerRef.current.contains(e.target)) {
11860
11910
  setIsOpen(false);
11861
11911
  }
11862
11912
  };
11863
- document.addEventListener("mousedown", handleClickOutside);
11864
- return () => document.removeEventListener("mousedown", handleClickOutside);
11913
+ document.addEventListener("mousedown", handler);
11914
+ return () => document.removeEventListener("mousedown", handler);
11865
11915
  }, []);
11866
11916
  const handleSelect = (optionValue) => {
11867
11917
  if (multiple) {
@@ -11875,10 +11925,7 @@ var CodegoUI = (() => {
11875
11925
  };
11876
11926
  const handleRemove = (optionValue, e) => {
11877
11927
  e.stopPropagation();
11878
- if (multiple) {
11879
- const newValues = selectedValues.filter((v) => v !== optionValue);
11880
- onChange?.(newValues);
11881
- }
11928
+ if (multiple) onChange?.(selectedValues.filter((v) => v !== optionValue));
11882
11929
  };
11883
11930
  const handleReorder = (fromIndex, toIndex) => {
11884
11931
  if (!multiple || !reorderable || !Array.isArray(value)) return;
@@ -11892,16 +11939,13 @@ var CodegoUI = (() => {
11892
11939
  e.dataTransfer.setData("text/plain", index.toString());
11893
11940
  };
11894
11941
  const handleDragOver = (e) => {
11895
- if (!reorderable) return;
11896
- e.preventDefault();
11942
+ if (reorderable) e.preventDefault();
11897
11943
  };
11898
11944
  const handleDrop = (e, toIndex) => {
11899
11945
  if (!reorderable) return;
11900
11946
  e.preventDefault();
11901
11947
  const fromIndex = parseInt(e.dataTransfer.getData("text/plain"));
11902
- if (fromIndex !== toIndex) {
11903
- handleReorder(fromIndex, toIndex);
11904
- }
11948
+ if (fromIndex !== toIndex) handleReorder(fromIndex, toIndex);
11905
11949
  };
11906
11950
  if (native) {
11907
11951
  if (multiple) {
@@ -11911,58 +11955,29 @@ var CodegoUI = (() => {
11911
11955
  "w-full rounded-xl border border-slate-900/30 bg-background/50 backdrop-blur-sm overflow-hidden ring-offset-background focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2",
11912
11956
  disabled && "opacity-50 pointer-events-none"
11913
11957
  ), children: [
11914
- selectedValues.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "flex flex-wrap gap-1 px-3 pt-2 pb-1 border-b border-slate-900/10", children: selectedOptions.map((opt) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
11915
- "span",
11916
- {
11917
- className: "inline-flex items-center gap-1 rounded-sm bg-primary/15 text-primary px-2 py-0.5 text-xs",
11918
- children: [
11919
- getLabel(opt),
11920
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
11921
- "button",
11922
- {
11923
- type: "button",
11924
- disabled,
11925
- onClick: () => onChange?.(selectedValues.filter((v) => v !== getKey(opt))),
11926
- className: "hover:text-destructive",
11927
- children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(X, { className: "h-3 w-3" })
11928
- }
11929
- )
11930
- ]
11931
- },
11932
- getKey(opt)
11933
- )) }),
11958
+ selectedValues.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "flex flex-wrap gap-1 px-3 pt-2 pb-1 border-b border-slate-900/10", children: selectedOptions.map((opt) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("span", { className: "inline-flex items-center gap-1 rounded-sm bg-primary/15 text-primary px-2 py-0.5 text-xs", children: [
11959
+ getLabel(opt),
11960
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("button", { type: "button", disabled, onClick: () => onChange?.(selectedValues.filter((v) => v !== getKey(opt))), className: "hover:text-destructive", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(X, { className: "h-3 w-3" }) })
11961
+ ] }, getKey(opt))) }),
11934
11962
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "max-h-48 overflow-y-auto p-1", children: options.map((option) => {
11935
11963
  const checked = selectedValues.includes(getKey(option));
11936
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
11937
- "label",
11938
- {
11939
- className: cn(
11940
- "flex items-center gap-3 rounded-lg px-3 py-2 text-sm cursor-pointer transition-colors hover:bg-accent",
11941
- checked && "bg-primary/8 text-primary"
11942
- ),
11943
- children: [
11944
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: cn(
11945
- "flex h-4 w-4 shrink-0 items-center justify-center rounded border transition-colors",
11946
- checked ? "bg-primary border-primary text-primary-foreground" : "border-slate-900/30 bg-background/50"
11947
- ), children: checked && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Check, { className: "h-3 w-3" }) }),
11948
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
11949
- "input",
11950
- {
11951
- type: "checkbox",
11952
- className: "sr-only",
11953
- checked,
11954
- disabled,
11955
- onChange: () => {
11956
- const newValues = checked ? selectedValues.filter((v) => v !== getKey(option)) : [...selectedValues, getKey(option)];
11957
- onChange?.(newValues);
11958
- }
11959
- }
11960
- ),
11961
- getLabel(option)
11962
- ]
11963
- },
11964
- getKey(option)
11965
- );
11964
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("label", { className: cn("flex items-center gap-3 rounded-lg px-3 py-2 text-sm cursor-pointer transition-colors hover:bg-accent", checked && "bg-primary/8 text-primary"), children: [
11965
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: cn("flex h-4 w-4 shrink-0 items-center justify-center rounded border transition-colors", checked ? "bg-primary border-primary text-primary-foreground" : "border-slate-900/30 bg-background/50"), children: checked && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Check, { className: "h-3 w-3" }) }),
11966
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
11967
+ "input",
11968
+ {
11969
+ type: "checkbox",
11970
+ className: "sr-only",
11971
+ checked,
11972
+ disabled,
11973
+ onChange: () => {
11974
+ const newValues = checked ? selectedValues.filter((v) => v !== getKey(option)) : [...selectedValues, getKey(option)];
11975
+ onChange?.(newValues);
11976
+ }
11977
+ }
11978
+ ),
11979
+ getLabel(option)
11980
+ ] }, getKey(option));
11966
11981
  }) })
11967
11982
  ] })
11968
11983
  ] });
@@ -11993,14 +12008,15 @@ var CodegoUI = (() => {
11993
12008
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
11994
12009
  "button",
11995
12010
  {
12011
+ ref: triggerRef,
11996
12012
  type: "button",
11997
12013
  className: cn(
11998
12014
  "relative flex w-full items-center min-h-[2.5rem] rounded-xl border border-slate-900/30 bg-background/50 backdrop-blur-sm px-4 py-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 transition-colors hover:bg-background/80",
11999
12015
  multiple && selectedValues.length > 0 && "flex-wrap gap-1",
12000
- (suffixIcon || !suffixIcon) && "pr-10",
12016
+ "pr-10",
12001
12017
  disabled && "cursor-not-allowed opacity-50"
12002
12018
  ),
12003
- onClick: () => !disabled && setIsOpen(!isOpen),
12019
+ onClick: () => isOpen ? setIsOpen(false) : openDropdown(),
12004
12020
  disabled,
12005
12021
  children: multiple && selectedOptions.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "flex flex-wrap gap-1 flex-1 min-w-0", children: selectedOptions.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
12006
12022
  "span",
@@ -12009,22 +12025,11 @@ var CodegoUI = (() => {
12009
12025
  onDragStart: (e) => handleDragStart(e, index),
12010
12026
  onDragOver: handleDragOver,
12011
12027
  onDrop: (e) => handleDrop(e, index),
12012
- className: cn(
12013
- "inline-flex items-center gap-1 rounded-sm bg-primary/15 text-primary px-2 py-1 text-xs",
12014
- reorderable && "cursor-move"
12015
- ),
12028
+ className: cn("inline-flex items-center gap-1 rounded-sm bg-primary/15 text-primary px-2 py-1 text-xs", reorderable && "cursor-move"),
12016
12029
  children: [
12017
12030
  reorderable && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(GripVertical, { className: "h-3 w-3 opacity-50" }),
12018
12031
  getLabel(option),
12019
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
12020
- "button",
12021
- {
12022
- type: "button",
12023
- onClick: (e) => handleRemove(getKey(option), e),
12024
- className: "ml-1 hover:text-destructive",
12025
- children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(X, { className: "h-3 w-3" })
12026
- }
12027
- )
12032
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("button", { type: "button", onClick: (e) => handleRemove(getKey(option), e), className: "ml-1 hover:text-destructive", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(X, { className: "h-3 w-3" }) })
12028
12033
  ]
12029
12034
  },
12030
12035
  getKey(option)
@@ -12037,50 +12042,56 @@ var CodegoUI = (() => {
12037
12042
  {
12038
12043
  type: "button",
12039
12044
  disabled,
12040
- onClick: () => !disabled && setIsOpen(!isOpen),
12045
+ onClick: () => isOpen ? setIsOpen(false) : openDropdown(),
12041
12046
  className: "absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground transition-colors z-10 disabled:opacity-50",
12042
- "aria-label": "Open options",
12043
12047
  style: iconColor ? { color: iconColor } : void 0,
12044
12048
  children: suffixIcon
12045
12049
  }
12046
12050
  ),
12047
- isOpen && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "absolute z-50 mt-1 max-h-60 w-full overflow-auto rounded-md border border-white/10 bg-background/80 backdrop-blur-xl text-popover-foreground shadow-lg animate-in fade-in-80", children: [
12048
- searchable && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "sticky top-0 z-10 flex items-center border-b border-white/10 bg-background/90 px-3 py-2", children: [
12049
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
12050
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
12051
- "input",
12052
- {
12053
- className: "flex h-8 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
12054
- placeholder: searchingMessage,
12055
- value: search,
12056
- onChange: (e) => {
12057
- setSearch(e.target.value);
12058
- setIsSearching(true);
12059
- setTimeout(() => setIsSearching(false), 300);
12060
- },
12061
- onClick: (e) => e.stopPropagation()
12062
- }
12063
- )
12064
- ] }),
12065
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "p-1", children: isSearching ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "py-6 text-center text-sm text-muted-foreground", children: loadingMessage }) : filteredOptions.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "py-6 text-center text-sm text-muted-foreground", children: search ? noSearchResultsMessage : "No options available." }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
12066
- filteredOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
12067
- "div",
12068
- {
12069
- className: cn(
12070
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none hover:bg-accent hover:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
12071
- (multiple ? selectedValues.includes(getKey(option)) : value === getKey(option)) && "bg-accent text-accent-foreground"
12072
- ),
12073
- onClick: () => handleSelect(getKey(option)),
12074
- children: [
12075
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: (multiple ? selectedValues.includes(getKey(option)) : value === getKey(option)) && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Check, { className: "h-4 w-4" }) }),
12076
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "truncate", children: getLabel(option) })
12077
- ]
12078
- },
12079
- getKey(option)
12080
- )),
12081
- createOptionForm && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "border-t border-white/10 mt-1 pt-1", children: createOptionForm })
12082
- ] }) })
12083
- ] })
12051
+ isOpen && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(FloatingPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
12052
+ "div",
12053
+ {
12054
+ className: "max-h-60 overflow-auto rounded-md border border-white/10 bg-background/80 backdrop-blur-xl text-popover-foreground shadow-lg animate-in fade-in-80",
12055
+ style: dropStyle,
12056
+ children: [
12057
+ searchable && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "sticky top-0 z-10 flex items-center border-b border-white/10 bg-background/90 px-3 py-2", children: [
12058
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
12059
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
12060
+ "input",
12061
+ {
12062
+ className: "flex h-8 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground",
12063
+ placeholder: searchingMessage,
12064
+ value: search,
12065
+ onChange: (e) => {
12066
+ setSearch(e.target.value);
12067
+ setIsSearching(true);
12068
+ setTimeout(() => setIsSearching(false), 300);
12069
+ },
12070
+ onClick: (e) => e.stopPropagation()
12071
+ }
12072
+ )
12073
+ ] }),
12074
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "p-1", children: isSearching ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "py-6 text-center text-sm text-muted-foreground", children: loadingMessage }) : filteredOptions.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "py-6 text-center text-sm text-muted-foreground", children: search ? noSearchResultsMessage : "No options available." }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
12075
+ filteredOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
12076
+ "div",
12077
+ {
12078
+ className: cn(
12079
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none hover:bg-accent hover:text-accent-foreground",
12080
+ (multiple ? selectedValues.includes(getKey(option)) : value === getKey(option)) && "bg-accent text-accent-foreground"
12081
+ ),
12082
+ onClick: () => handleSelect(getKey(option)),
12083
+ children: [
12084
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: (multiple ? selectedValues.includes(getKey(option)) : value === getKey(option)) && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Check, { className: "h-4 w-4" }) }),
12085
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "truncate", children: getLabel(option) })
12086
+ ]
12087
+ },
12088
+ getKey(option)
12089
+ )),
12090
+ createOptionForm && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "border-t border-white/10 mt-1 pt-1", children: createOptionForm })
12091
+ ] }) })
12092
+ ]
12093
+ }
12094
+ ) })
12084
12095
  ] })
12085
12096
  ] });
12086
12097
  }
@@ -12920,7 +12931,7 @@ var CodegoUI = (() => {
12920
12931
 
12921
12932
  // src/components/ui/tooltip.tsx
12922
12933
  var React28 = __toESM(require_react(), 1);
12923
- var ReactDOM = __toESM(require_react_dom(), 1);
12934
+ var ReactDOM2 = __toESM(require_react_dom(), 1);
12924
12935
  var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1);
12925
12936
  function Tooltip({
12926
12937
  content,
@@ -12975,7 +12986,7 @@ var CodegoUI = (() => {
12975
12986
  onBlur: () => setVisible(false),
12976
12987
  children: [
12977
12988
  children,
12978
- visible && ReactDOM.createPortal(
12989
+ visible && ReactDOM2.createPortal(
12979
12990
  /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
12980
12991
  "div",
12981
12992
  {
@@ -13250,16 +13261,28 @@ var CodegoUI = (() => {
13250
13261
  // src/components/ui/popover.tsx
13251
13262
  var React31 = __toESM(require_react(), 1);
13252
13263
  var import_jsx_runtime36 = __toESM(require_jsx_runtime(), 1);
13253
- var PLACEMENT_CLASSES = {
13254
- "top": "bottom-full left-1/2 -translate-x-1/2 mb-2",
13255
- "bottom": "top-full left-1/2 -translate-x-1/2 mt-2",
13256
- "left": "right-full top-1/2 -translate-y-1/2 mr-2",
13257
- "right": "left-full top-1/2 -translate-y-1/2 ml-2",
13258
- "top-start": "bottom-full left-0 mb-2",
13259
- "top-end": "bottom-full right-0 mb-2",
13260
- "bottom-start": "top-full left-0 mt-2",
13261
- "bottom-end": "top-full right-0 mt-2"
13262
- };
13264
+ function calcStyle(triggerEl, placement) {
13265
+ const r2 = triggerEl.getBoundingClientRect();
13266
+ const GAP = 8;
13267
+ switch (placement) {
13268
+ case "bottom":
13269
+ return { top: r2.bottom + GAP, left: r2.left + r2.width / 2, transform: "translateX(-50%)" };
13270
+ case "bottom-start":
13271
+ return { top: r2.bottom + GAP, left: r2.left };
13272
+ case "bottom-end":
13273
+ return { top: r2.bottom + GAP, left: r2.right, transform: "translateX(-100%)" };
13274
+ case "top":
13275
+ return { top: r2.top - GAP, left: r2.left + r2.width / 2, transform: "translate(-50%, -100%)" };
13276
+ case "top-start":
13277
+ return { top: r2.top - GAP, left: r2.left, transform: "translateY(-100%)" };
13278
+ case "top-end":
13279
+ return { top: r2.top - GAP, left: r2.right, transform: "translate(-100%, -100%)" };
13280
+ case "left":
13281
+ return { top: r2.top + r2.height / 2, left: r2.left - GAP, transform: "translate(-100%, -50%)" };
13282
+ case "right":
13283
+ return { top: r2.top + r2.height / 2, left: r2.right + GAP, transform: "translateY(-50%)" };
13284
+ }
13285
+ }
13263
13286
  function Popover({
13264
13287
  trigger,
13265
13288
  content,
@@ -13271,11 +13294,18 @@ var CodegoUI = (() => {
13271
13294
  }) {
13272
13295
  const [internal, setInternal] = React31.useState(false);
13273
13296
  const ref = React31.useRef(null);
13297
+ const [popStyle, setPopStyle] = React31.useState({});
13274
13298
  const open = controlled ?? internal;
13275
13299
  function setOpen(v) {
13276
13300
  if (controlled === void 0) setInternal(v);
13277
13301
  onOpenChange?.(v);
13278
13302
  }
13303
+ function openPopover() {
13304
+ if (ref.current) {
13305
+ setPopStyle({ position: "fixed", zIndex: 9999, ...calcStyle(ref.current, placement) });
13306
+ }
13307
+ setOpen(true);
13308
+ }
13279
13309
  React31.useEffect(() => {
13280
13310
  if (triggerOn !== "click") return;
13281
13311
  function handler(e) {
@@ -13284,14 +13314,17 @@ var CodegoUI = (() => {
13284
13314
  document.addEventListener("mousedown", handler);
13285
13315
  return () => document.removeEventListener("mousedown", handler);
13286
13316
  }, [triggerOn]);
13287
- const hoverProps = triggerOn === "hover" ? { onMouseEnter: () => setOpen(true), onMouseLeave: () => setOpen(false) } : {};
13317
+ const hoverProps = triggerOn === "hover" ? { onMouseEnter: openPopover, onMouseLeave: () => setOpen(false) } : {};
13288
13318
  return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { ref, className: "relative inline-block", ...hoverProps, children: [
13289
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { onClick: () => triggerOn === "click" && setOpen(!open), children: trigger }),
13290
- open && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: cn(
13291
- "absolute z-50 min-w-max rounded-xl border border-border glass shadow-2xl",
13292
- PLACEMENT_CLASSES[placement],
13293
- className
13294
- ), children: content })
13319
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { onClick: () => triggerOn === "click" && (open ? setOpen(false) : openPopover()), children: trigger }),
13320
+ open && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(FloatingPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
13321
+ "div",
13322
+ {
13323
+ className: cn("min-w-max rounded-xl border border-border glass shadow-2xl", className),
13324
+ style: popStyle,
13325
+ children: content
13326
+ }
13327
+ ) })
13295
13328
  ] });
13296
13329
  }
13297
13330
 
@@ -15760,10 +15793,10 @@ react/cjs/react.development.js:
15760
15793
  * LICENSE file in the root directory of this source tree.
15761
15794
  *)
15762
15795
 
15763
- react/cjs/react-jsx-runtime.production.js:
15796
+ react-dom/cjs/react-dom.production.js:
15764
15797
  (**
15765
15798
  * @license React
15766
- * react-jsx-runtime.production.js
15799
+ * react-dom.production.js
15767
15800
  *
15768
15801
  * Copyright (c) Meta Platforms, Inc. and affiliates.
15769
15802
  *
@@ -15771,10 +15804,10 @@ react/cjs/react-jsx-runtime.production.js:
15771
15804
  * LICENSE file in the root directory of this source tree.
15772
15805
  *)
15773
15806
 
15774
- react/cjs/react-jsx-runtime.development.js:
15807
+ react-dom/cjs/react-dom.development.js:
15775
15808
  (**
15776
15809
  * @license React
15777
- * react-jsx-runtime.development.js
15810
+ * react-dom.development.js
15778
15811
  *
15779
15812
  * Copyright (c) Meta Platforms, Inc. and affiliates.
15780
15813
  *
@@ -15782,10 +15815,10 @@ react/cjs/react-jsx-runtime.development.js:
15782
15815
  * LICENSE file in the root directory of this source tree.
15783
15816
  *)
15784
15817
 
15785
- react-dom/cjs/react-dom.production.js:
15818
+ react/cjs/react-jsx-runtime.production.js:
15786
15819
  (**
15787
15820
  * @license React
15788
- * react-dom.production.js
15821
+ * react-jsx-runtime.production.js
15789
15822
  *
15790
15823
  * Copyright (c) Meta Platforms, Inc. and affiliates.
15791
15824
  *
@@ -15793,10 +15826,10 @@ react-dom/cjs/react-dom.production.js:
15793
15826
  * LICENSE file in the root directory of this source tree.
15794
15827
  *)
15795
15828
 
15796
- react-dom/cjs/react-dom.development.js:
15829
+ react/cjs/react-jsx-runtime.development.js:
15797
15830
  (**
15798
15831
  * @license React
15799
- * react-dom.development.js
15832
+ * react-jsx-runtime.development.js
15800
15833
  *
15801
15834
  * Copyright (c) Meta Platforms, Inc. and affiliates.
15802
15835
  *