@almadar/ui 4.57.4 → 5.0.0

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.
Files changed (41) hide show
  1. package/dist/avl/index.cjs +270 -69
  2. package/dist/avl/index.js +270 -69
  3. package/dist/components/index.cjs +101 -68
  4. package/dist/components/index.js +101 -68
  5. package/dist/context/index.cjs +199 -0
  6. package/dist/context/index.js +199 -0
  7. package/dist/context/themeTokens.d.ts +1 -1
  8. package/dist/docs/index.cjs +21 -21
  9. package/dist/docs/index.js +21 -21
  10. package/dist/marketing/index.cjs +18 -18
  11. package/dist/marketing/index.js +18 -18
  12. package/dist/providers/index.cjs +101 -68
  13. package/dist/providers/index.js +101 -68
  14. package/dist/runtime/index.cjs +270 -69
  15. package/dist/runtime/index.js +270 -69
  16. package/package.json +2 -2
  17. package/tailwind-preset.cjs +118 -3
  18. package/themes/_contract.md +198 -0
  19. package/themes/almadar-website.css +212 -0
  20. package/themes/almadar.css +210 -0
  21. package/themes/arctic.css +210 -0
  22. package/themes/atelier.css +427 -0
  23. package/themes/copper.css +210 -0
  24. package/themes/ember.css +210 -0
  25. package/themes/forest.css +210 -0
  26. package/themes/gazette.css +411 -0
  27. package/themes/index.css +7 -0
  28. package/themes/kiosk.css +412 -0
  29. package/themes/lavender.css +210 -0
  30. package/themes/midnight.css +210 -0
  31. package/themes/minimalist.css +210 -0
  32. package/themes/neon.css +210 -0
  33. package/themes/ocean.css +210 -0
  34. package/themes/prism.css +406 -0
  35. package/themes/rose.css +210 -0
  36. package/themes/sand.css +210 -0
  37. package/themes/slate.css +210 -0
  38. package/themes/sunset.css +210 -0
  39. package/themes/terminal.css +422 -0
  40. package/themes/trait-wars.css +210 -0
  41. package/themes/wireframe.css +216 -0
@@ -1296,7 +1296,7 @@ var init_Button = __esm({
1296
1296
  };
1297
1297
  iconSizeStyles = {
1298
1298
  sm: "h-3.5 w-3.5",
1299
- md: "h-4 w-4",
1299
+ md: "h-icon-default w-icon-default",
1300
1300
  lg: "h-5 w-5"
1301
1301
  };
1302
1302
  exports.Button = React78__namespace.default.forwardRef(
@@ -1349,7 +1349,7 @@ var init_Button = __esm({
1349
1349
  ...props,
1350
1350
  "data-testid": props["data-testid"] ?? (action ? `action-${action}` : void 0),
1351
1351
  children: [
1352
- isLoading ? /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.Loader2, { className: "h-4 w-4 animate-spin" }) : resolvedLeftIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: resolvedLeftIcon }),
1352
+ isLoading ? /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.Loader2, { className: "h-icon-default w-icon-default animate-spin" }) : resolvedLeftIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: resolvedLeftIcon }),
1353
1353
  children || label,
1354
1354
  resolvedRightIcon && !isLoading && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: resolvedRightIcon })
1355
1355
  ]
@@ -1382,7 +1382,7 @@ var init_Input = __esm({
1382
1382
  ...props
1383
1383
  }, ref) => {
1384
1384
  const type = inputType || htmlType || "text";
1385
- const resolvedLeftIcon = leftIcon || IconComponent && /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: "h-4 w-4" });
1385
+ const resolvedLeftIcon = leftIcon || IconComponent && /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: "h-icon-default w-icon-default" });
1386
1386
  const showClearButton = clearable && value && String(value).length > 0;
1387
1387
  const baseClassName = cn(
1388
1388
  "block w-full rounded-sm transition-all duration-[var(--transition-fast)]",
@@ -1414,7 +1414,7 @@ var init_Input = __esm({
1414
1414
  ]
1415
1415
  }
1416
1416
  ),
1417
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center pointer-events-none text-muted-foreground", children: /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.ChevronDown, { className: "h-4 w-4" }) })
1417
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center pointer-events-none text-muted-foreground", children: /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.ChevronDown, { className: "h-icon-default w-icon-default" }) })
1418
1418
  ] });
1419
1419
  }
1420
1420
  if (type === "textarea") {
@@ -1468,7 +1468,7 @@ var init_Input = __esm({
1468
1468
  type: "button",
1469
1469
  onClick: onClear,
1470
1470
  className: "absolute inset-y-0 right-0 pr-3 flex items-center text-muted-foreground hover:text-foreground",
1471
- children: /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.X, { className: "h-4 w-4" })
1471
+ children: /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.X, { className: "h-icon-default w-icon-default" })
1472
1472
  }
1473
1473
  ),
1474
1474
  rightIcon && !showClearButton && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center text-muted-foreground", children: rightIcon })
@@ -1568,7 +1568,7 @@ var init_Select = __esm({
1568
1568
  ]
1569
1569
  }
1570
1570
  ),
1571
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center pointer-events-none", children: /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.ChevronDown, { className: "h-4 w-4 text-foreground" }) })
1571
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center pointer-events-none", children: /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.ChevronDown, { className: "h-icon-default w-icon-default text-foreground" }) })
1572
1572
  ] });
1573
1573
  }
1574
1574
  );
@@ -1621,23 +1621,23 @@ var init_Card = __esm({
1621
1621
  default: [
1622
1622
  "bg-card",
1623
1623
  "border-[length:var(--border-width)] border-border",
1624
- "shadow-sm",
1624
+ "shadow-elevation-card",
1625
1625
  "transition-all duration-[var(--transition-normal)]",
1626
- "hover:shadow-lg hover:-translate-y-0.5"
1626
+ "hover:shadow-elevation-dialog hover:-translate-y-0.5"
1627
1627
  ].join(" "),
1628
1628
  bordered: [
1629
1629
  "bg-card",
1630
1630
  "border-[length:var(--border-width)] border-border",
1631
- "shadow-sm",
1631
+ "shadow-elevation-card",
1632
1632
  "transition-all duration-[var(--transition-normal)]",
1633
- "hover:shadow-lg hover:-translate-y-0.5"
1633
+ "hover:shadow-elevation-dialog hover:-translate-y-0.5"
1634
1634
  ].join(" "),
1635
1635
  elevated: [
1636
1636
  "bg-card",
1637
1637
  "border-[length:var(--border-width)] border-border",
1638
1638
  "shadow",
1639
1639
  "transition-all duration-[var(--transition-normal)]",
1640
- "hover:shadow-lg hover:-translate-y-0.5"
1640
+ "hover:shadow-elevation-dialog hover:-translate-y-0.5"
1641
1641
  ].join(" "),
1642
1642
  // Interactive variant with theme-specific hover effects
1643
1643
  interactive: [
@@ -1646,20 +1646,20 @@ var init_Card = __esm({
1646
1646
  "shadow",
1647
1647
  "cursor-pointer",
1648
1648
  "transition-all duration-[var(--transition-normal)]",
1649
- "hover:shadow-lg"
1649
+ "hover:shadow-elevation-dialog"
1650
1650
  ].join(" ")
1651
1651
  };
1652
1652
  paddingStyles = {
1653
1653
  none: "",
1654
- sm: "p-3",
1655
- md: "p-4",
1656
- lg: "p-6"
1654
+ sm: "p-card-sm",
1655
+ md: "p-card-md",
1656
+ lg: "p-card-lg"
1657
1657
  };
1658
1658
  shadowStyles = {
1659
1659
  none: "shadow-none",
1660
- sm: "shadow-sm",
1660
+ sm: "shadow-elevation-card",
1661
1661
  md: "shadow",
1662
- lg: "shadow-lg"
1662
+ lg: "shadow-elevation-dialog"
1663
1663
  };
1664
1664
  exports.Card = React78__namespace.default.forwardRef(
1665
1665
  ({
@@ -1677,7 +1677,7 @@ var init_Card = __esm({
1677
1677
  {
1678
1678
  ref,
1679
1679
  className: cn(
1680
- "rounded-md",
1680
+ "rounded-container",
1681
1681
  "transition-all duration-[var(--transition-normal)]",
1682
1682
  variantStyles2[variant],
1683
1683
  paddingStyles[padding],
@@ -1896,7 +1896,7 @@ var init_FilterPill = __esm({
1896
1896
  {
1897
1897
  ref,
1898
1898
  className: cn(
1899
- "inline-flex items-center gap-1 font-bold rounded-full",
1899
+ "inline-flex items-center gap-1 font-bold rounded-pill",
1900
1900
  variantStyles4[variant],
1901
1901
  sizeStyles3[size],
1902
1902
  (onClick || clickEvent) && "cursor-pointer",
@@ -1997,8 +1997,8 @@ var init_Avatar = __esm({
1997
1997
  busy: "bg-error"
1998
1998
  };
1999
1999
  badgeSizeClasses = {
2000
- xs: "w-3 h-3 text-[8px]",
2001
- sm: "w-4 h-4 text-[10px]",
2000
+ xs: "w-3 h-3 text-xs",
2001
+ sm: "w-4 h-4 text-xs",
2002
2002
  md: "w-5 h-5 text-xs",
2003
2003
  lg: "w-6 h-6 text-sm",
2004
2004
  xl: "w-7 h-7 text-base"
@@ -2464,7 +2464,7 @@ var init_ProgressBar = __esm({
2464
2464
  "div",
2465
2465
  {
2466
2466
  className: cn(
2467
- "h-full transition-all duration-300 ease-out",
2467
+ "h-full transition-all duration-normal ease-emphasized",
2468
2468
  colorClasses[effectiveColor]
2469
2469
  ),
2470
2470
  style: { width: `${percentage}%` },
@@ -2520,7 +2520,7 @@ var init_ProgressBar = __esm({
2520
2520
  strokeDashoffset: offset,
2521
2521
  strokeLinecap: "round",
2522
2522
  className: cn(
2523
- "transition-all duration-300 ease-out",
2523
+ "transition-all duration-normal ease-emphasized",
2524
2524
  colorClasses[effectiveColor]
2525
2525
  )
2526
2526
  }
@@ -2559,7 +2559,7 @@ var init_ProgressBar = __esm({
2559
2559
  "div",
2560
2560
  {
2561
2561
  className: cn(
2562
- "h-full transition-all duration-300 ease-out",
2562
+ "h-full transition-all duration-normal ease-emphasized",
2563
2563
  (isActive || isPartial) && colorClasses[effectiveColor]
2564
2564
  ),
2565
2565
  style: {
@@ -3305,6 +3305,37 @@ var init_ThemeContext = __esm({
3305
3305
  displayName: "Copper",
3306
3306
  hasLightMode: true,
3307
3307
  hasDarkMode: true
3308
+ },
3309
+ // Layer 1 skin axes — truly-unique themes (compact tech / editorial / brutalist dense / display-heavy / touch-first)
3310
+ {
3311
+ name: "prism",
3312
+ displayName: "Prism",
3313
+ hasLightMode: true,
3314
+ hasDarkMode: true
3315
+ },
3316
+ {
3317
+ name: "gazette",
3318
+ displayName: "Gazette",
3319
+ hasLightMode: true,
3320
+ hasDarkMode: true
3321
+ },
3322
+ {
3323
+ name: "terminal",
3324
+ displayName: "Terminal",
3325
+ hasLightMode: true,
3326
+ hasDarkMode: true
3327
+ },
3328
+ {
3329
+ name: "atelier",
3330
+ displayName: "Atelier",
3331
+ hasLightMode: true,
3332
+ hasDarkMode: true
3333
+ },
3334
+ {
3335
+ name: "kiosk",
3336
+ displayName: "Kiosk",
3337
+ hasLightMode: true,
3338
+ hasDarkMode: true
3308
3339
  }
3309
3340
  ];
3310
3341
  ThemeContext = React78.createContext(void 0);
@@ -3343,7 +3374,7 @@ var init_ThemeToggle = __esm({
3343
3374
  "text-foreground",
3344
3375
  "hover:bg-muted border-[length:var(--border-width)] border-transparent hover:border-border",
3345
3376
  "focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
3346
- "transition-colors duration-200",
3377
+ "transition-colors duration-fast",
3347
3378
  sizeClasses3[size],
3348
3379
  className
3349
3380
  ),
@@ -3569,7 +3600,7 @@ var init_FlipContainer = __esm({
3569
3600
  children: /* @__PURE__ */ jsxRuntime.jsx(
3570
3601
  exports.Box,
3571
3602
  {
3572
- className: "relative w-full h-full transition-transform duration-500",
3603
+ className: "relative w-full h-full transition-transform duration-slow",
3573
3604
  style: {
3574
3605
  transformStyle: "preserve-3d",
3575
3606
  transform: flipped ? "rotateY(180deg)" : "rotateY(0deg)"
@@ -3653,7 +3684,7 @@ var init_ConditionalWrapper = __esm({
3653
3684
  exports.Box,
3654
3685
  {
3655
3686
  overflow: "hidden",
3656
- className: `transition-all duration-200 ${isVisible ? "opacity-100 max-h-[1000px]" : "opacity-0 max-h-0"}`,
3687
+ className: `transition-all duration-fast ${isVisible ? "opacity-100 max-h-[1000px]" : "opacity-0 max-h-0"}`,
3657
3688
  children: isVisible ? children : fallback
3658
3689
  }
3659
3690
  );
@@ -5556,7 +5587,7 @@ var init_Modal = __esm({
5556
5587
  // Reset browser-default dialog chrome — we own styling.
5557
5588
  "m-0 p-0 border-0 bg-transparent",
5558
5589
  // Pre-existing dialog frame
5559
- "pointer-events-auto w-full flex flex-col bg-surface border shadow-lg rounded-md",
5590
+ "pointer-events-auto w-full flex flex-col bg-surface border shadow-elevation-dialog rounded-container",
5560
5591
  // Desktop sizing + viewport-aware floor.
5561
5592
  sizeClasses5[size],
5562
5593
  minWidthClasses[size],
@@ -5893,7 +5924,7 @@ var init_Toast = __esm({
5893
5924
  // `min-w-[300px]` only kicks in at `sm:` and above so a phone
5894
5925
  // viewport doesn't get a toast wider than the screen near the
5895
5926
  // edge. `max-w-[calc(100vw-2rem)]` clamps to viewport too.
5896
- "border-l-4 p-4 shadow min-w-0 sm:min-w-[300px] max-w-md max-w-[calc(100vw-2rem)]",
5927
+ "border-l-4 p-4 shadow-elevation-toast min-w-0 sm:min-w-[300px] max-w-md max-w-[calc(100vw-2rem)]",
5897
5928
  "rounded-sm",
5898
5929
  variantClasses[variant],
5899
5930
  className
@@ -6489,7 +6520,7 @@ var init_InstallBox = __esm({
6489
6520
  /* @__PURE__ */ jsxRuntime.jsx(
6490
6521
  exports.Box,
6491
6522
  {
6492
- className: "bg-surface rounded-md border-[length:var(--border-width)] border-border",
6523
+ className: "bg-surface rounded-container border-[length:var(--border-width)] border-border",
6493
6524
  padding: "md",
6494
6525
  children: /* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: "flex items-center gap-3", children: [
6495
6526
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -7214,7 +7245,7 @@ var init_Tooltip = __esm({
7214
7245
  className: cn(
7215
7246
  "fixed z-50 px-3 py-2 max-w-xs",
7216
7247
  "bg-primary text-primary-foreground",
7217
- "shadow-sm rounded-sm",
7248
+ "shadow-elevation-popover rounded-sm",
7218
7249
  "text-sm pointer-events-none",
7219
7250
  "break-words whitespace-normal",
7220
7251
  "h-auto min-h-fit",
@@ -7369,7 +7400,7 @@ var init_Popover = __esm({
7369
7400
  ref: popoverRef,
7370
7401
  className: cn(
7371
7402
  "fixed z-50 p-4",
7372
- "bg-card border-2 border-border shadow-lg",
7403
+ "bg-card border-2 border-border shadow-elevation-popover",
7373
7404
  positionClasses2[position],
7374
7405
  className
7375
7406
  ),
@@ -7483,7 +7514,7 @@ var init_Menu = __esm({
7483
7514
  const menuContainerStyles = cn(
7484
7515
  "bg-card",
7485
7516
  "border-[length:var(--border-width)] border-border",
7486
- "shadow",
7517
+ "shadow-elevation-popover",
7487
7518
  "rounded-sm",
7488
7519
  "min-w-0 sm:min-w-[200px] max-w-[calc(100vw-1rem)] py-1"
7489
7520
  );
@@ -7651,7 +7682,7 @@ var init_Accordion = __esm({
7651
7682
  "w-full flex items-center justify-between px-4 py-3",
7652
7683
  "bg-card",
7653
7684
  "hover:bg-muted",
7654
- "transition-colors duration-200",
7685
+ "transition-colors duration-fast",
7655
7686
  "focus:outline-none focus:ring-2 focus:ring-ring focus:ring-inset",
7656
7687
  "disabled:opacity-50 disabled:cursor-not-allowed",
7657
7688
  isOpen && "bg-muted font-bold"
@@ -7666,7 +7697,7 @@ var init_Accordion = __esm({
7666
7697
  icon: LucideIcons.ChevronDown,
7667
7698
  size: "sm",
7668
7699
  className: cn(
7669
- "transition-transform duration-200",
7700
+ "transition-transform duration-fast",
7670
7701
  isOpen && "transform rotate-180"
7671
7702
  )
7672
7703
  }
@@ -7796,7 +7827,7 @@ var init_FloatingActionButton = __esm({
7796
7827
  {
7797
7828
  align: "center",
7798
7829
  gap: "sm",
7799
- className: "transition-all duration-200",
7830
+ className: "transition-all duration-fast",
7800
7831
  style: {
7801
7832
  opacity: isExpanded ? 1 : 0,
7802
7833
  transform: isExpanded ? "translateY(0)" : "translateY(10px)",
@@ -7834,7 +7865,7 @@ var init_FloatingActionButton = __esm({
7834
7865
  size: "lg",
7835
7866
  icon: isExpanded ? LucideIcons.X : LucideIcons.Plus,
7836
7867
  onClick: handleMainClick,
7837
- className: "rounded-full shadow-lg transition-all duration-300",
7868
+ className: "rounded-full shadow-lg transition-all duration-normal",
7838
7869
  "aria-label": isExpanded ? "Close actions" : "Open actions",
7839
7870
  "aria-expanded": isExpanded,
7840
7871
  children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { as: "span", className: "sr-only", children: isExpanded ? t("common.close") : t("common.open") })
@@ -12089,8 +12120,8 @@ function Card2({
12089
12120
  className: `
12090
12121
  bg-card
12091
12122
  border border-border
12092
- rounded-md shadow-sm
12093
- ${isClickable ? "cursor-pointer hover:shadow-lg transition-shadow" : ""}
12123
+ rounded-container shadow-elevation-card
12124
+ ${isClickable ? "cursor-pointer hover:shadow-elevation-dialog transition-shadow" : ""}
12094
12125
  ${className}
12095
12126
  `,
12096
12127
  onClick: isClickable ? handleClick : void 0,
@@ -14895,7 +14926,7 @@ var init_BranchingLogicBuilder = __esm({
14895
14926
  const height = PADDING * 2 + items.length * (NODE_HEIGHT + NODE_GAP_Y);
14896
14927
  return { items, positions, width, height };
14897
14928
  }, [questions]);
14898
- return /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "overflow-auto rounded-md border border-border bg-card p-2", children: /* @__PURE__ */ jsxRuntime.jsxs(
14929
+ return /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "overflow-auto rounded-container border border-border bg-card p-2", children: /* @__PURE__ */ jsxRuntime.jsxs(
14899
14930
  "svg",
14900
14931
  {
14901
14932
  width: layout.width,
@@ -17793,7 +17824,7 @@ var init_Carousel = __esm({
17793
17824
  exports.Box,
17794
17825
  {
17795
17826
  className: cn(
17796
- "rounded-full cursor-pointer transition-all duration-200"
17827
+ "rounded-full cursor-pointer transition-all duration-fast"
17797
17828
  ),
17798
17829
  style: {
17799
17830
  width: isActive ? 10 : 8,
@@ -18931,7 +18962,7 @@ var init_CodeExample = __esm({
18931
18962
  {
18932
18963
  className: cn(
18933
18964
  "bg-foreground",
18934
- "rounded-md",
18965
+ "rounded-container",
18935
18966
  "border-[length:var(--border-width)] border-border",
18936
18967
  "overflow-hidden",
18937
18968
  className
@@ -21497,7 +21528,7 @@ function DataGrid({
21497
21528
  className: cn(
21498
21529
  "bg-card rounded-lg",
21499
21530
  "border border-border",
21500
- "shadow-sm hover:shadow-lg",
21531
+ "shadow-elevation-card hover:shadow-elevation-dialog",
21501
21532
  "hover:border-primary transition-all",
21502
21533
  "flex flex-col",
21503
21534
  isSelected && "ring-2 ring-primary border-primary"
@@ -21871,7 +21902,7 @@ function DataList({
21871
21902
  {
21872
21903
  variant: "caption",
21873
21904
  className: cn(
21874
- "mt-1 text-[0.65rem]",
21905
+ "mt-1 text-xs",
21875
21906
  isSent ? "opacity-70" : "text-muted-foreground"
21876
21907
  ),
21877
21908
  children: formatDate3(timestamp)
@@ -21936,7 +21967,7 @@ function DataList({
21936
21967
  exports.Box,
21937
21968
  {
21938
21969
  className: cn(
21939
- "group flex items-center gap-4 transition-all duration-200",
21970
+ "group flex items-center gap-4 transition-all duration-fast",
21940
21971
  isCompact ? "px-4 py-2" : "px-6 py-4",
21941
21972
  "hover:bg-muted/80",
21942
21973
  !isCard && !isCompact && "rounded-lg border border-transparent hover:border-border"
@@ -22023,7 +22054,7 @@ function DataList({
22023
22054
  exports.Box,
22024
22055
  {
22025
22056
  className: cn(
22026
- isCard && "bg-card rounded-xl border border-border shadow-lg overflow-hidden",
22057
+ isCard && "bg-card rounded-xl border border-border shadow-elevation-dialog overflow-hidden",
22027
22058
  !isCard && gapClass,
22028
22059
  className
22029
22060
  ),
@@ -22165,7 +22196,7 @@ var init_FileTree = __esm({
22165
22196
  exports.Typography,
22166
22197
  {
22167
22198
  variant: "caption",
22168
- className: `truncate font-mono text-[11px] !text-inherit ${isSelected ? "font-semibold" : ""}`,
22199
+ className: `truncate font-mono text-xs !text-inherit ${isSelected ? "font-semibold" : ""}`,
22169
22200
  children: node.name
22170
22201
  }
22171
22202
  ),
@@ -22623,7 +22654,7 @@ var init_FilterGroup = __esm({
22623
22654
  "div",
22624
22655
  {
22625
22656
  className: cn(
22626
- "p-4 rounded-md",
22657
+ "p-4 rounded-container",
22627
22658
  "bg-card",
22628
22659
  "border-[length:var(--border-width)] border-border",
22629
22660
  className
@@ -23305,7 +23336,7 @@ var init_SidePanel = __esm({
23305
23336
  "border-l-2 border-border",
23306
23337
  position === "left" && "border-l-0 border-r-2",
23307
23338
  "flex flex-col",
23308
- "transition-transform duration-300 ease-in-out",
23339
+ "transition-transform duration-normal ease-standard",
23309
23340
  width,
23310
23341
  position === "right" ? "right-0" : "left-0",
23311
23342
  className
@@ -23707,7 +23738,7 @@ var init_ViolationAlert = __esm({
23707
23738
  exports.Box,
23708
23739
  {
23709
23740
  className: cn(
23710
- "px-3 py-2 rounded-md border",
23741
+ "px-3 py-2 rounded-container border",
23711
23742
  bgColor,
23712
23743
  className
23713
23744
  ),
@@ -23968,7 +23999,7 @@ var init_FlipCard = __esm({
23968
23999
  /* @__PURE__ */ jsxRuntime.jsx(
23969
24000
  exports.Box,
23970
24001
  {
23971
- className: "absolute inset-0 w-full h-full rounded-lg shadow-lg flex items-center justify-center p-6",
24002
+ className: "absolute inset-0 w-full h-full rounded-lg shadow-elevation-dialog flex items-center justify-center p-6",
23972
24003
  style: { backfaceVisibility: "hidden", transform: "rotateY(0deg)" },
23973
24004
  children: front
23974
24005
  }
@@ -23976,7 +24007,7 @@ var init_FlipCard = __esm({
23976
24007
  /* @__PURE__ */ jsxRuntime.jsx(
23977
24008
  exports.Box,
23978
24009
  {
23979
- className: "absolute inset-0 w-full h-full rounded-lg shadow-lg flex items-center justify-center p-6",
24010
+ className: "absolute inset-0 w-full h-full rounded-lg shadow-elevation-dialog flex items-center justify-center p-6",
23980
24011
  style: { backfaceVisibility: "hidden", transform: "rotateY(180deg)" },
23981
24012
  children: back
23982
24013
  }
@@ -24321,7 +24352,7 @@ var init_ProgressDots = __esm({
24321
24352
  exports.Box,
24322
24353
  {
24323
24354
  className: cn(
24324
- "rounded-full transition-all duration-200",
24355
+ "rounded-full transition-all duration-fast",
24325
24356
  onDotClick && "cursor-pointer"
24326
24357
  ),
24327
24358
  style: {
@@ -27626,7 +27657,7 @@ var init_Meter = __esm({
27626
27657
  strokeDasharray: circumference,
27627
27658
  strokeDashoffset: offset,
27628
27659
  strokeLinecap: "round",
27629
- className: "transition-all duration-500 ease-out"
27660
+ className: "transition-all duration-slow ease-emphasized"
27630
27661
  }
27631
27662
  )
27632
27663
  ]
@@ -27669,7 +27700,7 @@ var init_Meter = __esm({
27669
27700
  exports.Box,
27670
27701
  {
27671
27702
  className: cn(
27672
- "h-2 flex-1 rounded-sm transition-all duration-300",
27703
+ "h-2 flex-1 rounded-sm transition-all duration-normal",
27673
27704
  !isActive && "bg-muted"
27674
27705
  ),
27675
27706
  style: isActive ? { backgroundColor: segColor } : void 0
@@ -27688,7 +27719,7 @@ var init_Meter = __esm({
27688
27719
  /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "w-full h-3 bg-muted rounded-full overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
27689
27720
  exports.Box,
27690
27721
  {
27691
- className: "h-full rounded-full transition-all duration-500 ease-out",
27722
+ className: "h-full rounded-full transition-all duration-slow ease-emphasized",
27692
27723
  style: {
27693
27724
  width: `${percentage}%`,
27694
27725
  backgroundColor: activeColor
@@ -28214,7 +28245,7 @@ var init_PullToRefresh = __esm({
28214
28245
  className: cn(
28215
28246
  "top-0 left-0 right-0 z-10",
28216
28247
  "items-center justify-center",
28217
- "transition-opacity duration-200",
28248
+ "transition-opacity duration-fast",
28218
28249
  showIndicator ? "opacity-100" : "opacity-0"
28219
28250
  ),
28220
28251
  style: {
@@ -28400,7 +28431,7 @@ var init_PricingCard = __esm({
28400
28431
  "hover:-translate-y-1 transition-all",
28401
28432
  highlighted && [
28402
28433
  "border-[length:2px] border-primary",
28403
- "shadow-lg",
28434
+ "shadow-elevation-dialog",
28404
28435
  "scale-[1.05]",
28405
28436
  "ring-2 ring-primary"
28406
28437
  ],
@@ -30457,7 +30488,7 @@ var init_PositionedCanvas = __esm({
30457
30488
  {
30458
30489
  ref: containerRef,
30459
30490
  "data-testid": "positioned-canvas",
30460
- className: "relative bg-background border border-border rounded-md overflow-hidden",
30491
+ className: "relative bg-background border border-border rounded-container overflow-hidden",
30461
30492
  style: { width, height },
30462
30493
  onClick: handleContainerClick,
30463
30494
  children: items.map((item) => {
@@ -30658,7 +30689,7 @@ function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
30658
30689
  role: "menu",
30659
30690
  className: cn(
30660
30691
  "absolute right-0 z-10 mt-1 w-44",
30661
- "rounded-md border border-border bg-popover shadow-md",
30692
+ "rounded-container border border-border bg-popover shadow-elevation-popover",
30662
30693
  "py-1 text-sm"
30663
30694
  ),
30664
30695
  children: [
@@ -31934,7 +31965,7 @@ function DocCodeBlock({
31934
31965
  exports.Box,
31935
31966
  {
31936
31967
  className: cn(
31937
- "rounded-md border border-border overflow-hidden",
31968
+ "rounded-container border border-border overflow-hidden",
31938
31969
  className
31939
31970
  ),
31940
31971
  position: "relative",
@@ -32093,11 +32124,11 @@ var init_DocPagination = __esm({
32093
32124
  init_Typography();
32094
32125
  linkCardStyles = [
32095
32126
  "border border-border",
32096
- "rounded-md",
32127
+ "rounded-container",
32097
32128
  "p-4",
32098
32129
  "transition-all",
32099
32130
  "hover:border-primary",
32100
- "hover:shadow-lg",
32131
+ "hover:shadow-elevation-dialog",
32101
32132
  "no-underline",
32102
32133
  "flex-1",
32103
32134
  "min-w-0",
@@ -32234,7 +32265,7 @@ function DocSearch({
32234
32265
  exports.Box,
32235
32266
  {
32236
32267
  position: "absolute",
32237
- className: "top-full left-0 right-0 mt-1 z-50 bg-card border border-border rounded-md shadow-lg max-h-80 overflow-y-auto",
32268
+ className: "top-full left-0 right-0 mt-1 z-50 bg-card border border-border rounded-container shadow-elevation-popover max-h-80 overflow-y-auto",
32238
32269
  children: /* @__PURE__ */ jsxRuntime.jsx(exports.VStack, { gap: "none", children: results.map((result, index) => /* @__PURE__ */ jsxRuntime.jsx(
32239
32270
  exports.Box,
32240
32271
  {
@@ -35370,10 +35401,11 @@ var init_Form = __esm({
35370
35401
  type: f3.type,
35371
35402
  required: f3.required,
35372
35403
  defaultValue: f3.default,
35373
- values: f3.values,
35404
+ // EntityField is a discriminated union — `values` lives on Scalar/Enum, `relation` lives on Relation.
35405
+ values: "values" in f3 ? f3.values : void 0,
35374
35406
  min: f3.min,
35375
35407
  max: f3.max,
35376
- relation: f3.relation ? { entity: f3.relation.entity } : void 0
35408
+ relation: "relation" in f3 ? { entity: f3.relation.entity } : void 0
35377
35409
  })
35378
35410
  );
35379
35411
  }, [entity, fields]);
@@ -35601,10 +35633,11 @@ var init_Form = __esm({
35601
35633
  type: entityField.type,
35602
35634
  required: entityField.required,
35603
35635
  defaultValue: entityField.default,
35604
- values: entityField.values,
35636
+ // EntityField is a discriminated union — `values` lives on Scalar/Enum, `relation` lives on Relation.
35637
+ values: "values" in entityField ? entityField.values : void 0,
35605
35638
  min: entityField.min,
35606
35639
  max: entityField.max,
35607
- relation: entityField.relation ? { entity: entityField.relation.entity } : void 0
35640
+ relation: "relation" in entityField ? { entity: entityField.relation.entity } : void 0
35608
35641
  };
35609
35642
  }
35610
35643
  return { name: field, type: "string" };