import {
  ActivationConfigZ,
  ConditionZ
} from "./chunk-LSU6P3XW.js";

// src/config/schema.ts
import { z } from "zod";
var NotificationDeepLinkZ = z.object({
  tileId: z.string(),
  itemId: z.string().optional()
}).strict();
var TileNotificationRuleZ = z.object({
  on: z.string(),
  title: z.string(),
  body: z.string().optional(),
  icon: z.string().optional(),
  ttl: z.number().optional(),
  cooldown: z.number().optional(),
  deepLink: NotificationDeepLinkZ.optional()
}).strict();
var TileZ = z.object({
  id: z.string(),
  title: z.string().optional(),
  subtitle: z.string().optional(),
  icon: z.string().optional(),
  priority: z.number().optional(),
  widget: z.string(),
  props: z.record(z.unknown()).optional(),
  activation: ActivationConfigZ.optional(),
  notifications: z.array(TileNotificationRuleZ).optional()
}).strict();
var CanvasElementConfigZ = z.object({
  position: z.enum(["left", "right"]).optional(),
  layout: z.enum(["overlay", "push"]).optional(),
  background: z.string().optional(),
  blur: z.string().optional(),
  border: z.string().optional(),
  width: z.string().optional(),
  /** Padding around tile content. Consumed by inline mode (drawer mode handles its own padding internally). */
  padding: z.string().optional(),
  transitionDuration: z.string().optional(),
  transitionEasing: z.string().optional(),
  transitionFade: z.string().optional(),
  backdrop: z.boolean().optional(),
  backdropColor: z.string().optional()
});
var MobileThemeOverrideZ = z.object({
  canvas: CanvasElementConfigZ.optional()
});
var LauncherElementConfigZ = z.object({
  background: z.string().optional(),
  backgroundHover: z.string().optional(),
  color: z.string().optional(),
  size: z.string().optional(),
  shadow: z.string().optional(),
  borderRadius: z.string().optional(),
  icon: z.string().optional()
});
var TileElementConfigZ = z.object({
  background: z.string().optional(),
  backgroundHover: z.string().optional(),
  border: z.string().optional(),
  borderRadius: z.string().optional(),
  shadow: z.string().optional(),
  titleColor: z.string().optional(),
  textColor: z.string().optional(),
  iconBackground: z.string().optional(),
  iconShadow: z.string().optional(),
  headerPadding: z.string().optional(),
  bodyPadding: z.string().optional(),
  gap: z.string().optional()
});
var OverlayElementConfigZ = z.object({
  background: z.string().optional(),
  textColor: z.string().optional(),
  titleColor: z.string().optional(),
  arrowColor: z.string().optional(),
  arrowSize: z.string().optional(),
  border: z.string().optional(),
  borderRadius: z.string().optional(),
  scrimOpacity: z.string().optional(),
  highlightRing: z.string().optional()
});
var NotificationElementConfigZ = z.object({
  background: z.string().optional(),
  textColor: z.string().optional(),
  textSecondaryColor: z.string().optional(),
  border: z.string().optional(),
  borderRadius: z.string().optional(),
  successColor: z.string().optional(),
  warningColor: z.string().optional(),
  errorColor: z.string().optional(),
  iconBackground: z.string().optional(),
  progressGradient: z.string().optional()
});
var ContentElementConfigZ = z.object({
  background: z.string().optional(),
  backgroundHover: z.string().optional(),
  border: z.string().optional(),
  borderRadius: z.string().optional(),
  textColor: z.string().optional(),
  textSecondaryColor: z.string().optional(),
  // Accordion layout
  itemDivider: z.string().optional(),
  itemGap: z.string().optional(),
  itemPadding: z.string().optional(),
  itemFontSize: z.string().optional(),
  // Expanded content
  bodyPadding: z.string().optional(),
  bodyFontSize: z.string().optional(),
  // Category headers
  categoryPadding: z.string().optional(),
  categoryGap: z.string().optional(),
  categoryFontSize: z.string().optional(),
  // Search
  searchBackground: z.string().optional(),
  searchColor: z.string().optional(),
  // Chevron
  chevronColor: z.string().optional()
});
var CanvasThemeConfigZ = z.object({
  mode: z.enum(["dark", "light"]).optional(),
  fontFamily: z.string().optional(),
  colorPrimary: z.string().optional(),
  colorPrimaryHover: z.string().optional(),
  borderRadius: z.string().optional(),
  canvas: CanvasElementConfigZ.optional(),
  launcher: LauncherElementConfigZ.optional(),
  tile: TileElementConfigZ.optional(),
  overlay: OverlayElementConfigZ.optional(),
  notification: NotificationElementConfigZ.optional(),
  content: ContentElementConfigZ.optional(),
  mobile: MobileThemeOverrideZ.optional()
}).strict();
var LauncherConfigZ = z.object({
  enabled: z.boolean().optional(),
  label: z.string().optional(),
  position: z.string().optional(),
  animate: z.boolean().optional(),
  animationStyle: z.enum(["pulse", "bounce", "glow"]).optional(),
  notificationCount: z.number().optional()
}).strict();
var CanvasConfigResponseZ = z.object({
  schemaVersion: z.string().optional(),
  fetchedAt: z.string().datetime(),
  configVersion: z.string().optional(),
  canvasTitle: z.string().optional(),
  displayMode: z.enum(["standard", "focused", "inline"]).describe(
    "DO NOT SET \u2014 determined automatically by the runtime based on the surface type (web \u2192 standard, agent/MCP \u2192 inline). Setting this field will be stripped by the config fixer."
  ).optional(),
  tiles: z.array(TileZ),
  actions: z.array(z.any()),
  theme: CanvasThemeConfigZ.optional(),
  launcher: LauncherConfigZ.optional(),
  meta: z.object({
    verificationSteps: z.array(
      z.union([
        z.string(),
        z.object({
          text: z.string(),
          check: ConditionZ.optional()
        })
      ])
    ).optional()
  }).passthrough().optional()
}).strict();
var configSchemas = [
  { defName: "tile", schema: TileZ },
  { defName: "themeConfig", schema: CanvasThemeConfigZ },
  { defName: "launcherConfig", schema: LauncherConfigZ },
  { defName: "canvasConfigResponse", schema: CanvasConfigResponseZ }
];

export {
  NotificationDeepLinkZ,
  TileNotificationRuleZ,
  TileZ,
  CanvasElementConfigZ,
  MobileThemeOverrideZ,
  LauncherElementConfigZ,
  TileElementConfigZ,
  OverlayElementConfigZ,
  NotificationElementConfigZ,
  ContentElementConfigZ,
  CanvasThemeConfigZ,
  LauncherConfigZ,
  CanvasConfigResponseZ,
  configSchemas
};
//# sourceMappingURL=chunk-3EK46GSN.js.map
