"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }"use client";



var _chunk664KA5FIcjs = require('./chunk-664KA5FI.cjs');


var _chunkWZW7C7TFcjs = require('./chunk-WZW7C7TF.cjs');



var _chunkWBR7H6E3cjs = require('./chunk-WBR7H6E3.cjs');


var _chunkVRHGVLSLcjs = require('./chunk-VRHGVLSL.cjs');

// src/components/ui/button/button-styles.ts
var buttonSurfaceClasses, outlineBorderClasses, splitDividerColorClasses;
var init_button_styles = _chunkVRHGVLSLcjs.__esm.call(void 0, {
  "src/components/ui/button/button-styles.ts"() {
    "use strict";
    buttonSurfaceClasses = {
      accent: "bg-ods-accent text-ods-text-on-accent hover:bg-ods-accent-hover active:bg-ods-accent-active disabled:bg-ods-disabled aria-disabled:bg-ods-disabled",
      outline: "bg-ods-card text-ods-text-primary hover:bg-ods-bg-hover active:bg-ods-bg-active disabled:bg-ods-card disabled:text-ods-text-disabled aria-disabled:bg-ods-card aria-disabled:text-ods-text-disabled",
      transparent: "bg-transparent text-ods-text-primary hover:bg-ods-bg-hover active:bg-ods-bg-active disabled:bg-transparent disabled:text-ods-text-disabled aria-disabled:bg-transparent aria-disabled:text-ods-text-disabled",
      destructive: "bg-ods-error text-ods-text-on-accent hover:bg-ods-error-hover active:bg-ods-error-active disabled:bg-ods-disabled aria-disabled:bg-ods-disabled"
    };
    outlineBorderClasses = "border border-ods-border hover:border-ods-border-hover active:border-ods-border-active disabled:border-ods-border aria-disabled:border-ods-border";
    splitDividerColorClasses = {
      accent: "border-ods-accent-active",
      outline: "border-ods-border",
      transparent: "border-ods-border",
      destructive: "border-ods-error-active"
    };
  }
});

// src/components/ui/button/button.tsx
var _reactslot = require('@radix-ui/react-slot');
var _classvarianceauthority = require('class-variance-authority');
var _react = require('react'); var React = _interopRequireWildcard(_react); var React2 = _interopRequireWildcard(_react); var React5 = _interopRequireWildcard(_react); var React6 = _interopRequireWildcard(_react); var React7 = _interopRequireWildcard(_react);
var _jsxruntime = require('react/jsx-runtime');
var buttonVariants, splitShellVariants, splitSlotVariants, Spinner, Button;
var init_button = _chunkVRHGVLSLcjs.__esm.call(void 0, {
  "src/components/ui/button/button.tsx"() {
    "use strict";
    "use client";
    _chunkWBR7H6E3cjs.init_next_link.call(void 0, );
    _chunk664KA5FIcjs.init_cn.call(void 0, );
    init_button_styles();
    buttonVariants = exports.buttonVariants = _classvarianceauthority.cva.call(void 0, 
      [
        "relative inline-flex items-center justify-center gap-[var(--spacing-system-xsf)]",
        "rounded-md whitespace-nowrap",
        "transition-colors duration-200",
        "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-focus",
        "disabled:pointer-events-none",
        "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:h-5 [&_svg]:w-5"
      ],
      {
        variants: {
          variant: {
            accent: buttonSurfaceClasses.accent,
            outline: _chunk664KA5FIcjs.cn.call(void 0, buttonSurfaceClasses.outline, outlineBorderClasses),
            transparent: buttonSurfaceClasses.transparent,
            destructive: buttonSurfaceClasses.destructive
          },
          size: {
            default: "py-[var(--spacing-system-sf)] px-[var(--spacing-system-m)] text-h3 md:h-12 h-10",
            small: "p-[var(--spacing-system-xs)] text-h5 h-6 md:h-8",
            "small-legacy": "py-[var(--spacing-system-xs)] px-[var(--spacing-system-m)] h-10 text-[14px] font-bold",
            // Temporary alias for "small" to avoid breaking changes in AnnouncementBar's CTA button; will be removed in the future
            icon: "p-[var(--spacing-system-sf)] h-11 w-11 md:h-12 md:w-12 [&_svg]:h-4 [&_svg]:w-4 md:[&_svg]:h-6 md:[&_svg]:w-6"
          },
          fullWidth: {
            true: "w-full",
            false: ""
          },
          noPaddingX: {
            true: "px-0",
            false: ""
          }
        },
        compoundVariants: [
          { size: "small", class: "[&_svg]:h-4 [&_svg]:w-4" }
        ],
        defaultVariants: {
          variant: "accent",
          size: "default",
          fullWidth: false,
          noPaddingX: false
        }
      }
    );
    splitShellVariants = _classvarianceauthority.cva.call(void 0, 
      [
        "group relative inline-flex items-stretch overflow-hidden rounded-md whitespace-nowrap",
        "transition-colors duration-200",
        "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-focus",
        "disabled:pointer-events-none"
      ],
      {
        variants: {
          variant: {
            accent: buttonSurfaceClasses.accent,
            outline: _chunk664KA5FIcjs.cn.call(void 0, buttonSurfaceClasses.outline, outlineBorderClasses),
            transparent: buttonSurfaceClasses.transparent,
            destructive: buttonSurfaceClasses.destructive
          },
          size: {
            default: "h-12 text-h3",
            small: "h-6 md:h-8 text-h5"
          },
          fullWidth: { true: "w-full", false: "" }
        },
        defaultVariants: { variant: "accent", size: "default", fullWidth: false }
      }
    );
    splitSlotVariants = _classvarianceauthority.cva.call(void 0, 
      ["inline-flex items-center justify-center", "[&_svg]:shrink-0 [&_svg]:h-5 [&_svg]:w-5"],
      {
        variants: {
          slot: {
            main: "gap-[var(--spacing-system-xsf)]",
            icon: "border-l"
          },
          size: { default: "", small: "[&_svg]:h-4 [&_svg]:w-4" },
          variant: { accent: "", outline: "", transparent: "", destructive: "" }
        },
        compoundVariants: [
          { slot: "main", size: "default", class: "px-[var(--spacing-system-m)] py-[var(--spacing-system-sf)]" },
          { slot: "main", size: "small", class: "px-[var(--spacing-system-xs)]" },
          { slot: "icon", size: "default", class: "w-10" },
          { slot: "icon", size: "small", class: "w-6 md:w-8" },
          { slot: "icon", variant: "accent", class: _chunk664KA5FIcjs.cn.call(void 0, 
            splitDividerColorClasses.accent,
            "group-disabled:border-ods-disabled group-aria-disabled:border-ods-disabled"
          ) },
          { slot: "icon", variant: "outline", class: splitDividerColorClasses.outline },
          { slot: "icon", variant: "transparent", class: splitDividerColorClasses.transparent },
          { slot: "icon", variant: "destructive", class: _chunk664KA5FIcjs.cn.call(void 0, 
            splitDividerColorClasses.destructive,
            "group-disabled:border-ods-disabled group-aria-disabled:border-ods-disabled"
          ) }
        ],
        defaultVariants: { slot: "main", size: "default", variant: "accent" }
      }
    );
    Spinner = () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", { className: "animate-spin", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "aria-hidden": "true", children: [
      /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }),
      /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
        "path",
        {
          className: "opacity-75",
          fill: "currentColor",
          d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
        }
      )
    ] });
    Button = exports.Button = React.default.forwardRef(function Button2({
      className,
      variant,
      size,
      fullWidth,
      noPaddingX,
      asChild,
      href,
      openInNewTab,
      prefetch,
      linkProps,
      leftIcon,
      rightIcon,
      splitIcon,
      loading,
      children,
      disabled,
      onClick,
      ...props
    }, ref) {
      const isDisabled = disabled || loading;
      const useSplitLayout = !!splitIcon && (size === "default" || size === "small" || size === void 0);
      if (useSplitLayout) {
        const safeSize = _nullishCoalesce(size, () => ( "default"));
        const safeVariant = _nullishCoalesce(variant, () => ( "accent"));
        const shellClasses = _chunk664KA5FIcjs.cn.call(void 0, 
          splitShellVariants({ variant: safeVariant, size: safeSize, fullWidth }),
          className
        );
        const mainSlotClass = splitSlotVariants({ slot: "main", size: safeSize, variant: safeVariant });
        const iconSlotClass = splitSlotVariants({ slot: "icon", size: safeSize, variant: safeVariant });
        const splitContent = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
          /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk664KA5FIcjs.cn.call(void 0, "contents", loading && "invisible"), children: [
            /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: mainSlotClass, children: [
              leftIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "inline-flex items-center", children: leftIcon }),
              children,
              rightIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "inline-flex items-center", children: rightIcon })
            ] }),
            /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "aria-hidden": "true", className: iconSlotClass, children: splitIcon })
          ] }),
          loading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "absolute inset-0 inline-flex items-center justify-center text-ods-text-primary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Spinner, {}) })
        ] });
        const splitAnchor = _nullishCoalesce(linkProps, () => ( (href ? {
          href,
          target: openInNewTab ? "_blank" : void 0,
          rel: openInNewTab ? "noopener noreferrer" : void 0,
          onClick
        } : null)));
        if (splitAnchor) {
          return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
            _chunkWBR7H6E3cjs.next_link_default,
            {
              href: splitAnchor.href,
              prefetch,
              target: splitAnchor.target,
              rel: splitAnchor.rel,
              "aria-disabled": isDisabled || void 0,
              tabIndex: isDisabled ? -1 : void 0,
              className: _chunk664KA5FIcjs.cn.call(void 0, shellClasses, isDisabled && "pointer-events-none"),
              onClick: splitAnchor.onClick,
              children: splitContent
            }
          );
        }
        return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
          "button",
          {
            ref,
            className: shellClasses,
            disabled: isDisabled,
            onClick,
            ...props,
            children: splitContent
          }
        );
      }
      const classes = _chunk664KA5FIcjs.cn.call(void 0, buttonVariants({ variant, size, fullWidth, noPaddingX }), className);
      if (asChild) {
        return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactslot.Slot, { ref, className: classes, ...props, children });
      }
      const content = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
        /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk664KA5FIcjs.cn.call(void 0, "contents", loading && "invisible"), children: [
          leftIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "inline-flex items-center", children: leftIcon }),
          children,
          rightIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "inline-flex items-center", children: rightIcon })
        ] }),
        loading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "absolute inset-0 inline-flex items-center justify-center text-ods-text-primary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Spinner, {}) })
      ] });
      const anchor = _nullishCoalesce(linkProps, () => ( (href ? {
        href,
        target: openInNewTab ? "_blank" : void 0,
        rel: openInNewTab ? "noopener noreferrer" : void 0,
        onClick
      } : null)));
      if (anchor) {
        return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
          _chunkWBR7H6E3cjs.next_link_default,
          {
            href: anchor.href,
            prefetch,
            target: anchor.target,
            rel: anchor.rel,
            "aria-disabled": isDisabled || void 0,
            tabIndex: isDisabled ? -1 : void 0,
            className: _chunk664KA5FIcjs.cn.call(void 0, classes, isDisabled && "pointer-events-none"),
            onClick: anchor.onClick,
            children: content
          }
        );
      }
      return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
        "button",
        {
          ref,
          className: classes,
          disabled: isDisabled,
          onClick,
          ...props,
          children: content
        }
      );
    });
  }
});

// src/components/ui/button/split-button.tsx



function Half({ variant, size, side, href, openInNewTab, prefetch, onClick, disabled, type = "button", ariaLabel, children }) {
  const classes = splitHalfVariants({ variant, size, side });
  if (href) {
    return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
      _chunkWBR7H6E3cjs.next_link_default,
      {
        href,
        prefetch,
        target: openInNewTab ? "_blank" : void 0,
        rel: openInNewTab ? "noopener noreferrer" : void 0,
        "aria-disabled": disabled || void 0,
        tabIndex: disabled ? -1 : void 0,
        "aria-label": ariaLabel,
        className: _chunk664KA5FIcjs.cn.call(void 0, classes, disabled && "pointer-events-none"),
        onClick,
        children
      }
    );
  }
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
    "button",
    {
      type,
      className: classes,
      disabled,
      "aria-label": ariaLabel,
      onClick,
      children
    }
  );
}
var splitHalfBase, splitHalfVariants, SplitButton;
var init_split_button = _chunkVRHGVLSLcjs.__esm.call(void 0, {
  "src/components/ui/button/split-button.tsx"() {
    "use strict";
    "use client";
    _chunkWBR7H6E3cjs.init_next_link.call(void 0, );
    _chunk664KA5FIcjs.init_cn.call(void 0, );
    init_button_styles();
    splitHalfBase = [
      "relative inline-flex items-center justify-center gap-[var(--spacing-system-xsf)]",
      "whitespace-nowrap transition-colors duration-200",
      "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-focus focus-visible:z-10",
      "disabled:pointer-events-none",
      "[&_svg]:pointer-events-none [&_svg]:shrink-0"
    ];
    splitHalfVariants = _classvarianceauthority.cva.call(void 0, splitHalfBase, {
      variants: {
        variant: {
          accent: buttonSurfaceClasses.accent,
          outline: buttonSurfaceClasses.outline,
          // Outline border lives in compoundVariants so we can omit the seam edge.
          transparent: buttonSurfaceClasses.transparent,
          destructive: buttonSurfaceClasses.destructive
        },
        size: {
          default: "h-10 md:h-12 px-[var(--spacing-system-m)] py-[var(--spacing-system-sf)] text-h3 [&_svg]:h-4 [&_svg]:w-4 md:[&_svg]:h-6 md:[&_svg]:w-6",
          small: "h-6 md:h-8 px-[var(--spacing-system-xs)] text-h5 [&_svg]:h-3 [&_svg]:w-3 md:[&_svg]:h-4 md:[&_svg]:w-4"
        },
        side: { main: "", icon: "" }
      },
      compoundVariants: [
        // Rounded corners + per-variant seam. The icon-side's left border is the divider.
        { variant: "accent", side: "main", class: "rounded-l-md" },
        { variant: "accent", side: "icon", class: _chunk664KA5FIcjs.cn.call(void 0, 
          "rounded-r-md border-l",
          splitDividerColorClasses.accent,
          "disabled:border-ods-disabled aria-disabled:border-ods-disabled"
        ) },
        { variant: "destructive", side: "main", class: "rounded-l-md" },
        { variant: "destructive", side: "icon", class: _chunk664KA5FIcjs.cn.call(void 0, 
          "rounded-r-md border-l",
          splitDividerColorClasses.destructive,
          "disabled:border-ods-disabled aria-disabled:border-ods-disabled"
        ) },
        { variant: "outline", side: "main", class: "rounded-l-md border-y border-l border-ods-border" },
        { variant: "outline", side: "icon", class: "rounded-r-md border border-ods-border" },
        { variant: "transparent", side: "main", class: "rounded-md" },
        { variant: "transparent", side: "icon", class: _chunk664KA5FIcjs.cn.call(void 0, "rounded-md", splitDividerColorClasses.transparent) },
        // Icon half: per Figma, narrower than main height (default: 40×48; small: 32×32).
        { side: "icon", size: "default", class: "w-10 px-0" },
        { side: "icon", size: "small", class: "w-6 md:w-8 px-0" }
      ],
      defaultVariants: { variant: "accent", size: "default", side: "main" }
    });
    SplitButton = exports.SplitButton = React.default.forwardRef(function SplitButton2({
      variant = "accent",
      size = "default",
      fullWidth = false,
      className,
      children,
      onClick,
      href,
      openInNewTab,
      prefetch,
      leftIcon,
      rightIcon,
      disabled,
      mainDisabled,
      type,
      iconAction,
      "aria-label": ariaLabel,
      groupAriaLabel
    }, ref) {
      return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, 
        "div",
        {
          ref,
          role: "group",
          "aria-label": groupAriaLabel,
          className: _chunk664KA5FIcjs.cn.call(void 0, "inline-flex items-stretch", fullWidth && "w-full", className),
          children: [
            /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, 
              Half,
              {
                variant,
                size,
                side: "main",
                href,
                openInNewTab,
                prefetch,
                onClick,
                disabled: disabled || mainDisabled,
                type,
                ariaLabel,
                children: [
                  leftIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "inline-flex items-center", children: leftIcon }),
                  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children }),
                  rightIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "inline-flex items-center", children: rightIcon })
                ]
              }
            ),
            /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
              Half,
              {
                variant,
                size,
                side: "icon",
                href: iconAction.href,
                openInNewTab: iconAction.openInNewTab,
                prefetch: iconAction.prefetch,
                onClick: iconAction.onClick,
                disabled: disabled || iconAction.disabled,
                ariaLabel: iconAction["aria-label"],
                children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "inline-flex items-center", children: iconAction.icon })
              }
            )
          ]
        }
      );
    });
  }
});

// src/components/ui/button/index.ts
var init_button2 = _chunkVRHGVLSLcjs.__esm.call(void 0, {
  "src/components/ui/button/index.ts"() {
    "use strict";
    init_button();
    init_split_button();
  }
});

// src/components/ui/field-wrapper.tsx
_chunk664KA5FIcjs.init_cn.call(void 0, );


var errorVariantClasses = {
  error: "text-ods-error",
  warning: "text-[var(--ods-attention-yellow-warning)]"
};
var FieldWrapper = React.forwardRef(
  ({ label, error, errorVariant = "error", className, children }, ref) => {
    const hasChrome = label != null || error != null;
    return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref, className: _chunk664KA5FIcjs.cn.call(void 0, hasChrome ? "relative flex w-full flex-col" : "contents", className), children: [
      label && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "label", { className: "text-h4 text-ods-text-primary mb-1", children: label }),
      children,
      error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunk664KA5FIcjs.cn.call(void 0, "absolute bottom-0 left-0 right-0 translate-y-full text-h6 truncate", errorVariantClasses[errorVariant]), title: error, children: error })
    ] });
  }
);
FieldWrapper.displayName = "FieldWrapper";

// src/components/ui/input.tsx
_chunk664KA5FIcjs.init_cn.call(void 0, );

var _lucidereact = require('lucide-react');

var invalidBorderClasses = {
  error: "border-ods-error hover:border-ods-error has-[:focus]:border-ods-error",
  warning: "!border-[var(--ods-attention-yellow-warning)] hover:!border-[var(--ods-attention-yellow-warning)] has-[:focus]:!border-[var(--ods-attention-yellow-warning)]"
};
var Input = React2.forwardRef(
  ({ className, type, invalid = false, startAdornment, endAdornment, label, error, errorVariant = "error", loading = false, ...props }, ref) => {
    const isInvalid = invalid || !!error;
    if (type === "range") {
      const rangeInput = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
        "input",
        {
          type: "range",
          className: _chunk664KA5FIcjs.cn.call(void 0, 
            "w-full cursor-pointer appearance-none rounded-full bg-white/30 h-1",
            // Webkit (Chrome/Safari) thumb
            "[&::-webkit-slider-thumb]:appearance-none",
            "[&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:h-3",
            "[&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-white",
            "[&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:shadow-sm",
            // Firefox thumb
            "[&::-moz-range-thumb]:w-3 [&::-moz-range-thumb]:h-3",
            "[&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:bg-white",
            "[&::-moz-range-thumb]:border-0 [&::-moz-range-thumb]:cursor-pointer",
            // Firefox track
            "[&::-moz-range-track]:bg-transparent",
            // Disabled
            "disabled:cursor-not-allowed disabled:opacity-50",
            className
          ),
          ref,
          ...props
        }
      );
      return label ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FieldWrapper, { label, error, errorVariant, children: rangeInput }) : rangeInput;
    }
    const content = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, 
      "label",
      {
        "data-invalid": isInvalid || void 0,
        className: _chunk664KA5FIcjs.cn.call(void 0, 
          // Layout & spacing
          "flex w-full items-center gap-2 rounded-[6px] border px-3 h-11 md:h-12 cursor-text",
          // Focus-within states
          "has-[:focus-visible]:outline-none",
          "group",
          // Animations & touch UX
          "transition-colors duration-200",
          // Theme palette
          "bg-ods-card border-ods-border has-[:focus]:border-ods-accent",
          // Hover & active (not disabled)
          !props.disabled && "hover:bg-ods-bg-hover hover:border-ods-border-hover active:bg-ods-bg-active active:border-ods-border-active",
          // Disabled
          props.disabled && "!cursor-not-allowed bg-ods-bg",
          // Invalid
          isInvalid && invalidBorderClasses[errorVariant],
          className
        ),
        children: [
          startAdornment && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h6 flex-shrink-0 text-ods-text-secondary transition-colors duration-200 group-has-[:focus]:text-ods-accent group-data-[invalid]:text-ods-error [&_svg]:size-4 md:[&_svg]:size-6", children: startAdornment }),
          /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
            "input",
            {
              type,
              className: _chunk664KA5FIcjs.cn.call(void 0, 
                // Layout
                "flex-1 min-w-0 bg-transparent border-none outline-none",
                // Typography
                "text-h4",
                // Colors
                "text-ods-text-primary placeholder:text-ods-text-secondary",
                // File input adjustments
                "file:border-0 file:bg-transparent",
                // Disabled
                "disabled:cursor-not-allowed disabled:placeholder:text-ods-border",
                // Touch
                "touch-manipulation",
                // Autofill override
                "[&:-webkit-autofill]:[-webkit-box-shadow:0_0_0_9999px_transparent_inset] [&:-webkit-autofill]:[-webkit-text-fill-color:var(--color-text-primary)] [&:-webkit-autofill]:[caret-color:var(--color-text-primary)] [&:-webkit-autofill]:[transition:background-color_9999s_ease-in-out_0s]"
              ),
              ref,
              ...props
            }
          ),
          loading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "animate-spin flex-shrink-0 text-ods-text-secondary size-4 md:size-6" }),
          !loading && endAdornment && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h6 flex-shrink-0 text-ods-text-secondary transition-colors duration-200 group-has-[:focus]:text-ods-accent group-data-[invalid]:text-ods-error [&_svg]:size-4 md:[&_svg]:size-6", children: endAdornment })
        ]
      }
    );
    return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FieldWrapper, { label, error, errorVariant, children: content });
  }
);
Input.displayName = "Input";

// src/components/ui/checkbox.tsx
_chunk664KA5FIcjs.init_cn.call(void 0, );

var _reactcheckbox = require('@radix-ui/react-checkbox'); var CheckboxPrimitive = _interopRequireWildcard(_reactcheckbox);

var Checkbox = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
  CheckboxPrimitive.Root,
  {
    ref,
    className: _chunk664KA5FIcjs.cn.call(void 0, 
      "peer h-4 w-4 shrink-0 rounded-sm border border-ods-border bg-ods-card focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-ods-accent data-[state=checked]:border-ods-accent",
      className
    ),
    ...props,
    children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
      CheckboxPrimitive.Indicator,
      {
        className: _chunk664KA5FIcjs.cn.call(void 0, "flex items-center justify-center text-ods-text-on-accent"),
        children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.CheckboxCheckmarkIcon, { size: 10 })
      }
    )
  }
));
Checkbox.displayName = CheckboxPrimitive.Root.displayName;

// src/components/ui/dropdown-menu.tsx
_chunk664KA5FIcjs.init_cn.call(void 0, );

var _reactdropdownmenu = require('@radix-ui/react-dropdown-menu'); var DropdownMenuPrimitive = _interopRequireWildcard(_reactdropdownmenu);


var DropdownMenu = DropdownMenuPrimitive.Root;
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
var DropdownMenuGroup = DropdownMenuPrimitive.Group;
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
var DropdownMenuSubTrigger = React6.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, 
  DropdownMenuPrimitive.SubTrigger,
  {
    ref,
    className: _chunk664KA5FIcjs.cn.call(void 0, 
      "flex cursor-pointer gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-ods-bg-hover focus:bg-ods-bg-hover data-[state=open]:bg-ods-bg-hover [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
      inset && "pl-8",
      className
    ),
    ...props,
    children: [
      children,
      /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "ml-auto" })
    ]
  }
));
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
var DropdownMenuSubContent = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
  DropdownMenuPrimitive.SubContent,
  {
    ref,
    className: _chunk664KA5FIcjs.cn.call(void 0, 
      "z-50 min-w-[8rem] overflow-hidden rounded-md border border-ods-border bg-ods-card p-1 text-ods-text-primary shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
      className
    ),
    ...props
  }
));
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
var DropdownMenuContent = React6.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
  DropdownMenuPrimitive.Content,
  {
    ref,
    sideOffset,
    className: _chunk664KA5FIcjs.cn.call(void 0, 
      "z-50 min-w-[8rem] overflow-hidden rounded-md border border-ods-border bg-ods-card p-1 text-ods-text-primary shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
      className
    ),
    ...props
  }
) }));
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
var DropdownMenuItem = React6.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
  DropdownMenuPrimitive.Item,
  {
    ref,
    className: _chunk664KA5FIcjs.cn.call(void 0, 
      "relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-base outline-none transition-colors text-ods-text-primary hover:bg-ods-bg-hover hover:text-ods-text-primary focus:bg-ods-bg-hover focus:text-ods-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
      inset && "pl-8",
      className
    ),
    ...props
  }
));
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
var DropdownMenuCheckboxItem = React6.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, 
  DropdownMenuPrimitive.CheckboxItem,
  {
    ref,
    className: _chunk664KA5FIcjs.cn.call(void 0, 
      "relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors text-ods-text-primary hover:bg-ods-bg-hover hover:text-ods-text-primary focus:bg-ods-bg-hover focus:text-ods-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
      className
    ),
    checked,
    ...props,
    children: [
      /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Check, { className: "h-4 w-4" }) }) }),
      children
    ]
  }
));
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
var DropdownMenuRadioItem = React6.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, 
  DropdownMenuPrimitive.RadioItem,
  {
    ref,
    className: _chunk664KA5FIcjs.cn.call(void 0, 
      "relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors text-ods-text-primary hover:bg-ods-bg-hover hover:text-ods-text-primary focus:bg-ods-bg-hover focus:text-ods-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
      className
    ),
    ...props,
    children: [
      /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Circle, { className: "h-2 w-2 fill-ods-accent" }) }) }),
      children
    ]
  }
));
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
var DropdownMenuLabel = React6.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
  DropdownMenuPrimitive.Label,
  {
    ref,
    className: _chunk664KA5FIcjs.cn.call(void 0, 
      "px-2 py-1.5 text-sm font-semibold text-ods-text-secondary",
      inset && "pl-8",
      className
    ),
    ...props
  }
));
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
var DropdownMenuSeparator = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
  DropdownMenuPrimitive.Separator,
  {
    ref,
    className: _chunk664KA5FIcjs.cn.call(void 0, "-mx-1 my-1 h-px bg-ods-border", className),
    ...props
  }
));
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
var DropdownMenuShortcut = ({
  className,
  ...props
}) => {
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
    "span",
    {
      className: _chunk664KA5FIcjs.cn.call(void 0, "ml-auto text-xs tracking-widest text-ods-text-secondary opacity-60", className),
      ...props
    }
  );
};
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";

// src/components/ui/skeleton.tsx
_chunk664KA5FIcjs.init_cn.call(void 0, );


var Skeleton = React7.forwardRef(
  ({ className, ...props }, ref) => {
    return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
      "div",
      {
        ref,
        className: _chunk664KA5FIcjs.cn.call(void 0, 
          "animate-pulse rounded-md bg-ods-border",
          className
        ),
        ...props
      }
    );
  }
);
Skeleton.displayName = "Skeleton";
var SkeletonText = React7.forwardRef(
  ({ lines = 1, className, ...props }, ref) => {
    return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunk664KA5FIcjs.cn.call(void 0, "space-y-2", className), ...props, children: Array.from({ length: lines }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
      Skeleton,
      {
        className: _chunk664KA5FIcjs.cn.call(void 0, 
          "h-4",
          i === lines - 1 && lines > 1 && "w-3/4"
          // Last line shorter for multi-line
        )
      },
      i
    )) });
  }
);
SkeletonText.displayName = "SkeletonText";
var SkeletonCard = React7.forwardRef(
  ({ showImage = false, className, ...props }, ref) => {
    return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, 
      "div",
      {
        ref,
        className: _chunk664KA5FIcjs.cn.call(void 0, 
          "rounded-lg border border-ods-border overflow-hidden",
          className
        ),
        ...props,
        children: [
          showImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Skeleton, { className: "h-48 w-full" }),
          /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "p-6", children: [
            /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Skeleton, { className: "h-6 w-3/4 mb-4" }),
            /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SkeletonText, { lines: 3 })
          ] })
        ]
      }
    );
  }
);
SkeletonCard.displayName = "SkeletonCard";
var SkeletonGrid = React7.forwardRef(
  ({ columns = 3, items = 6, showImages = false, className, ...props }, ref) => {
    return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
      "div",
      {
        ref,
        className: _chunk664KA5FIcjs.cn.call(void 0, 
          `grid grid-cols-1 gap-6`,
          columns === 2 && "md:grid-cols-2",
          columns === 3 && "md:grid-cols-3",
          columns === 4 && "md:grid-cols-4",
          className
        ),
        ...props,
        children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SkeletonCard, { showImage: showImages }, i))
      }
    );
  }
);
SkeletonGrid.displayName = "SkeletonGrid";
var SkeletonButton = React7.forwardRef(
  ({ size = "default", className, ...props }, ref) => {
    const sizeClasses = {
      sm: "h-8 w-20",
      default: "h-10 w-32",
      lg: "h-12 w-40"
    };
    return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
      Skeleton,
      {
        ref,
        className: _chunk664KA5FIcjs.cn.call(void 0, 
          "rounded-lg",
          sizeClasses[size],
          className
        ),
        ...props
      }
    );
  }
);
SkeletonButton.displayName = "SkeletonButton";
var SkeletonHeading = React7.forwardRef(
  ({ level = 1, className, ...props }, ref) => {
    const heightClasses = {
      1: "h-12",
      2: "h-10",
      3: "h-8",
      4: "h-7",
      5: "h-6",
      6: "h-5"
    };
    return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, 
      Skeleton,
      {
        ref,
        className: _chunk664KA5FIcjs.cn.call(void 0, 
          heightClasses[level],
          "w-3/4",
          className
        ),
        ...props
      }
    );
  }
);
SkeletonHeading.displayName = "SkeletonHeading";
var SkeletonList = React7.forwardRef(
  ({ items = 5, className, ...props }, ref) => {
    return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunk664KA5FIcjs.cn.call(void 0, "space-y-3", className), ...props, children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
      /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Skeleton, { className: "h-10 w-10 rounded-full flex-shrink-0" }),
      /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1", children: [
        /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Skeleton, { className: "h-4 w-1/3 mb-1" }),
        /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Skeleton, { className: "h-3 w-1/2" })
      ] })
    ] }, i)) });
  }
);
SkeletonList.displayName = "SkeletonList";
var SkeletonNavigation = React7.forwardRef(
  ({ items = 6, className, ...props }, ref) => {
    return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunk664KA5FIcjs.cn.call(void 0, "flex items-center gap-6", className), ...props, children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Skeleton, { className: "h-5 w-20" }, i)) });
  }
);
SkeletonNavigation.displayName = "SkeletonNavigation";

































exports.FieldWrapper = FieldWrapper; exports.Input = Input; exports.buttonVariants = buttonVariants; exports.Button = Button; exports.init_button = init_button; exports.SplitButton = SplitButton; exports.init_button2 = init_button2; exports.Checkbox = Checkbox; exports.DropdownMenu = DropdownMenu; exports.DropdownMenuTrigger = DropdownMenuTrigger; exports.DropdownMenuGroup = DropdownMenuGroup; exports.DropdownMenuPortal = DropdownMenuPortal; exports.DropdownMenuSub = DropdownMenuSub; exports.DropdownMenuRadioGroup = DropdownMenuRadioGroup; exports.DropdownMenuSubTrigger = DropdownMenuSubTrigger; exports.DropdownMenuSubContent = DropdownMenuSubContent; exports.DropdownMenuContent = DropdownMenuContent; exports.DropdownMenuItem = DropdownMenuItem; exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem; exports.DropdownMenuRadioItem = DropdownMenuRadioItem; exports.DropdownMenuLabel = DropdownMenuLabel; exports.DropdownMenuSeparator = DropdownMenuSeparator; exports.DropdownMenuShortcut = DropdownMenuShortcut; exports.Skeleton = Skeleton; exports.SkeletonText = SkeletonText; exports.SkeletonCard = SkeletonCard; exports.SkeletonGrid = SkeletonGrid; exports.SkeletonButton = SkeletonButton; exports.SkeletonHeading = SkeletonHeading; exports.SkeletonList = SkeletonList; exports.SkeletonNavigation = SkeletonNavigation;
//# sourceMappingURL=chunk-UXZ3ZJ3M.cjs.map