@tenerife.music/ui 1.2.1 → 2.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.
@@ -412,6 +412,12 @@ var ALERT_TOKENS = {
412
412
  */
413
413
  radius: "rounded-lg",
414
414
  // 8px (0.5rem) - maps to borderRadius.lg
415
+ /**
416
+ * Border token
417
+ * Base border style
418
+ */
419
+ border: "border",
420
+ // Base border
415
421
  /**
416
422
  * Icon size within alerts
417
423
  */
@@ -419,45 +425,48 @@ var ALERT_TOKENS = {
419
425
  // 16px (1rem) - standard icon size
420
426
  /**
421
427
  * Variant-based token structure
422
- * Organized by variant for future extensibility
428
+ * Organized by variant for token-driven styling
423
429
  */
424
430
  variant: {
425
431
  default: {
426
- padding: "p-md",
427
- radius: "rounded-lg"
432
+ background: "bg-muted",
433
+ // Muted background using CSS var
434
+ border: "border-border",
435
+ // Border using CSS var
436
+ text: "text-foreground"
437
+ // Foreground text using CSS var
428
438
  },
429
439
  primary: {
430
- padding: "p-md",
431
- radius: "rounded-lg"
440
+ background: "bg-primary/10",
441
+ // Primary background with opacity
442
+ border: "border-primary/20",
443
+ // Primary border with opacity
444
+ text: "text-primary-foreground"
445
+ // Primary text using CSS var
432
446
  },
433
447
  secondary: {
434
- padding: "p-md",
435
- radius: "rounded-lg"
448
+ background: "bg-secondary/10",
449
+ // Secondary background with opacity
450
+ border: "border-secondary/20",
451
+ // Secondary border with opacity
452
+ text: "text-secondary-foreground"
453
+ // Secondary text using CSS var
436
454
  },
437
455
  accent: {
438
- padding: "p-md",
439
- radius: "rounded-lg"
456
+ background: "bg-accent/10",
457
+ // Accent background with opacity
458
+ border: "border-accent/20",
459
+ // Accent border with opacity
460
+ text: "text-accent-foreground"
461
+ // Accent text using CSS var
440
462
  },
441
463
  destructive: {
442
- padding: "p-md",
443
- radius: "rounded-lg"
444
- },
445
- // Legacy semantic variants (mapped to canonical)
446
- success: {
447
- padding: "p-md",
448
- radius: "rounded-lg"
449
- },
450
- warning: {
451
- padding: "p-md",
452
- radius: "rounded-lg"
453
- },
454
- danger: {
455
- padding: "p-md",
456
- radius: "rounded-lg"
457
- },
458
- info: {
459
- padding: "p-md",
460
- radius: "rounded-lg"
464
+ background: "bg-destructive/10",
465
+ // Destructive background with opacity
466
+ border: "border-destructive/20",
467
+ // Destructive border with opacity
468
+ text: "text-destructive-foreground"
469
+ // Destructive text using CSS var
461
470
  }
462
471
  }
463
472
  };
@@ -606,10 +615,8 @@ var BUTTON_TOKENS = {
606
615
  // 32px (2rem)
607
616
  md: "h-9",
608
617
  // 36px (2.25rem)
609
- lg: "h-10",
618
+ lg: "h-10"
610
619
  // 40px (2.5rem)
611
- icon: "h-9"
612
- // 36px (2.25rem) - same as md
613
620
  },
614
621
  /**
615
622
  * Button padding by size
@@ -665,18 +672,28 @@ var BUTTON_TOKENS = {
665
672
  // 14px (0.875rem) - smaller icon for small buttons
666
673
  md: "[&_svg]:w-4 [&_svg]:h-4",
667
674
  // 16px (1rem) - medium icon for medium buttons
668
- lg: "[&_svg]:w-5 [&_svg]:h-5",
675
+ lg: "[&_svg]:w-5 [&_svg]:h-5"
669
676
  // 20px (1.25rem) - larger icon for large buttons
670
- icon: "[&_svg]:w-4 [&_svg]:h-4"
671
- // 16px (1rem) - medium icon for icon-only buttons
672
677
  },
673
678
  /**
674
679
  * Width tokens
680
+ * Used for icon-only buttons (square buttons with equal width and height)
675
681
  */
676
682
  width: {
677
- icon: "w-9"
678
- // 36px width for icon buttons
683
+ sm: "w-8",
684
+ // 32px (2rem) - matches height.sm for square icon-only buttons
685
+ md: "w-9",
686
+ // 36px (2.25rem) - matches height.md for square icon-only buttons
687
+ lg: "w-10"
688
+ // 40px (2.5rem) - matches height.lg for square icon-only buttons
679
689
  },
690
+ /**
691
+ * Padding token for icon-only buttons
692
+ * Zero padding required for square dimensions (icon-only buttons have no text, so no padding needed)
693
+ * Uses p-0 which is a standard Tailwind class for zero spacing (spacing[0])
694
+ */
695
+ paddingIconOnly: "p-0",
696
+ // Zero padding for icon-only buttons (required for square dimensions) - standard Tailwind class
680
697
  /**
681
698
  * Font sizes by button size
682
699
  * References foundation typography fontSize tokens from Typography Authority
@@ -1081,6 +1098,42 @@ var ARTIST_TOKENS = {
1081
1098
  }
1082
1099
  };
1083
1100
 
1101
+ // src/FOUNDATION/tokens/gradients.ts
1102
+ var GRADIENT_TOKENS = {
1103
+ /**
1104
+ * Brand gradient tokens
1105
+ * Used for brand identity elements, hero sections, and featured content
1106
+ */
1107
+ brand: {
1108
+ /**
1109
+ * Featured brand gradient: accent-500 → primary-600
1110
+ * Used for featured badges and premium content indicators
1111
+ */
1112
+ featured: "bg-gradient-to-r from-accent-500 to-primary-600"
1113
+ },
1114
+ /**
1115
+ * Surface gradient tokens
1116
+ * Used for surface elevation effects and placeholders
1117
+ */
1118
+ surface: {
1119
+ /**
1120
+ * Muted surface gradient: muted → muted/50
1121
+ * Used for placeholder backgrounds and subtle surface effects
1122
+ */
1123
+ muted: "bg-gradient-to-br from-muted to-muted/50"
1124
+ },
1125
+ /**
1126
+ * Overlay gradient tokens
1127
+ * Used for image overlays and hover effects
1128
+ */
1129
+ overlay: {
1130
+ /**
1131
+ * Dark overlay gradient: black/60 → transparent
1132
+ * Used for image hover states and text readability overlays
1133
+ */
1134
+ dark: "bg-gradient-to-t from-black/60 via-transparent to-transparent"
1135
+ }};
1136
+
1084
1137
  // src/FOUNDATION/tokens/spacing.ts
1085
1138
  var spacing = {
1086
1139
  // Zero spacing
@@ -1638,17 +1691,19 @@ var DOMAIN_TOKENS = {
1638
1691
  /**
1639
1692
  * Overlay gradient tokens for image overlays
1640
1693
  * Used for hover states and text readability
1694
+ * References GRADIENT_TOKENS.overlay.dark
1641
1695
  */
1642
1696
  overlay: {
1643
- gradient: "bg-gradient-to-t from-black/60 via-transparent to-transparent"
1697
+ gradient: GRADIENT_TOKENS.overlay.dark
1644
1698
  // Gradient overlay for image hover states
1645
1699
  },
1646
1700
  /**
1647
1701
  * Placeholder gradient tokens for image placeholders
1648
1702
  * Used when no image URL is provided
1703
+ * References GRADIENT_TOKENS.surface.muted
1649
1704
  */
1650
1705
  placeholder: {
1651
- gradient: "bg-gradient-to-br from-muted to-muted/50"
1706
+ gradient: GRADIENT_TOKENS.surface.muted
1652
1707
  // Placeholder gradient background
1653
1708
  }
1654
1709
  },
@@ -1759,11 +1814,12 @@ var DOMAIN_TOKENS = {
1759
1814
  /**
1760
1815
  * Badge surface (background) tokens
1761
1816
  * Maps to semantic color tokens
1817
+ * References GRADIENT_TOKENS.brand.featured for featured badges
1762
1818
  */
1763
1819
  surface: {
1764
1820
  default: "bg-primary",
1765
1821
  // Default badge background - maps to semantic primary color
1766
- featured: "bg-gradient-to-r from-accent-500 to-primary-600"
1822
+ featured: GRADIENT_TOKENS.brand.featured
1767
1823
  // Featured badge gradient
1768
1824
  },
1769
1825
  /**
@@ -1993,19 +2049,15 @@ var DOMAIN_TOKENS = {
1993
2049
  var INPUT_TOKENS = {
1994
2050
  /**
1995
2051
  * Input heights by size
1996
- * Supports xs, sm, md, lg, xl sizes
2052
+ * Supports sm, md, lg sizes (canonical interactive size scale)
1997
2053
  */
1998
2054
  height: {
1999
- xs: "h-7",
2000
- // 28px (1.75rem)
2001
2055
  sm: "h-8",
2002
2056
  // 32px (2rem)
2003
2057
  md: "h-9",
2004
2058
  // 36px (2.25rem) - default
2005
- lg: "h-10",
2059
+ lg: "h-10"
2006
2060
  // 40px (2.5rem)
2007
- xl: "h-11"
2008
- // 44px (2.75rem)
2009
2061
  },
2010
2062
  /**
2011
2063
  * Input padding by size
@@ -2013,60 +2065,44 @@ var INPUT_TOKENS = {
2013
2065
  */
2014
2066
  padding: {
2015
2067
  horizontal: {
2016
- xs: "px-xs",
2017
- // 4px (0.25rem)
2018
2068
  sm: "px-sm",
2019
2069
  // 8px (0.5rem)
2020
2070
  md: "px-sm",
2021
2071
  // 8px (0.5rem) - default
2022
- lg: "px-md",
2072
+ lg: "px-md"
2023
2073
  // 16px (1rem)
2024
- xl: "px-lg"
2025
- // 24px (1.5rem)
2026
2074
  },
2027
2075
  vertical: {
2028
- xs: "py-xs",
2029
- // 4px (0.25rem)
2030
2076
  sm: "py-xs",
2031
2077
  // 4px (0.25rem)
2032
2078
  md: "py-xs",
2033
2079
  // 4px (0.25rem) - default
2034
- lg: "py-sm",
2080
+ lg: "py-sm"
2035
2081
  // 8px (0.5rem)
2036
- xl: "py-md"
2037
- // 16px (1rem)
2038
2082
  }
2039
2083
  },
2040
2084
  /**
2041
2085
  * Border radius by size
2042
2086
  */
2043
2087
  radius: {
2044
- xs: "rounded-sm",
2045
- // 4px (0.25rem)
2046
2088
  sm: "rounded-md",
2047
2089
  // 6px (0.375rem)
2048
2090
  md: "rounded-md",
2049
2091
  // 6px (0.375rem) - default
2050
- lg: "rounded-md",
2092
+ lg: "rounded-md"
2051
2093
  // 6px (0.375rem)
2052
- xl: "rounded-lg"
2053
- // 8px (0.5rem)
2054
2094
  },
2055
2095
  /**
2056
2096
  * Font sizes by size variant
2057
2097
  * Maps to foundation typography fontSize tokens
2058
2098
  */
2059
2099
  fontSize: {
2060
- xs: "text-xs",
2061
- // Maps to fontSize.xs[0]
2062
2100
  sm: "text-sm",
2063
2101
  // Maps to fontSize.sm[0]
2064
2102
  md: "text-base",
2065
2103
  // Maps to fontSize.base[0] - default
2066
- lg: "text-base",
2104
+ lg: "text-base"
2067
2105
  // Maps to fontSize.base[0]
2068
- xl: "text-lg"
2069
- // Maps to fontSize.lg[0]
2070
2106
  },
2071
2107
  /**
2072
2108
  * Responsive font size (md breakpoint)
@@ -2248,16 +2284,6 @@ var INPUT_TOKENS = {
2248
2284
  * Organized by size for easy access
2249
2285
  */
2250
2286
  size: {
2251
- xs: {
2252
- height: "h-7",
2253
- padding: {
2254
- horizontal: "px-xs",
2255
- vertical: "py-xs"
2256
- },
2257
- radius: "rounded-sm",
2258
- fontSize: "text-xs",
2259
- shadow: "shadow-sm"
2260
- },
2261
2287
  sm: {
2262
2288
  height: "h-8",
2263
2289
  padding: {
@@ -2288,16 +2314,6 @@ var INPUT_TOKENS = {
2288
2314
  radius: "rounded-md",
2289
2315
  fontSize: "text-base",
2290
2316
  shadow: "shadow-sm"
2291
- },
2292
- xl: {
2293
- height: "h-11",
2294
- padding: {
2295
- horizontal: "px-lg",
2296
- vertical: "py-md"
2297
- },
2298
- radius: "rounded-lg",
2299
- fontSize: "text-lg",
2300
- shadow: "shadow-sm"
2301
2317
  }
2302
2318
  }
2303
2319
  };
@@ -2306,20 +2322,13 @@ var INPUT_TOKENS = {
2306
2322
  var CHECKBOX_TOKENS = {
2307
2323
  /**
2308
2324
  * Checkbox sizes by size variant
2309
- * Supports xs, sm, md, lg, xl sizes
2325
+ * Supports sm, md, lg sizes (canonical interactive scale)
2310
2326
  * Checkboxes are typically square and smaller than input fields
2327
+ *
2328
+ * NOTE: Size scale restricted to sm|md|lg per canonical interactive size scale (FOUNDATION_LOCK.md).
2329
+ * xs and xl sizes removed to comply with Button-defined canonical scale.
2311
2330
  */
2312
2331
  size: {
2313
- xs: {
2314
- width: "w-3.5",
2315
- // 14px (0.875rem)
2316
- height: "h-3.5",
2317
- // 14px (0.875rem)
2318
- radius: "rounded-sm",
2319
- // 4px (0.25rem)
2320
- iconSize: "size-2.5"
2321
- // 10px (0.625rem)
2322
- },
2323
2332
  sm: {
2324
2333
  width: "w-4",
2325
2334
  // 16px (1rem)
@@ -2349,16 +2358,6 @@ var CHECKBOX_TOKENS = {
2349
2358
  // 6px (0.375rem)
2350
2359
  iconSize: "size-4"
2351
2360
  // 16px (1rem)
2352
- },
2353
- xl: {
2354
- width: "w-6",
2355
- // 24px (1.5rem)
2356
- height: "h-6",
2357
- // 24px (1.5rem)
2358
- radius: "rounded-md",
2359
- // 6px (0.375rem)
2360
- iconSize: "size-5"
2361
- // 20px (1.25rem)
2362
2361
  }
2363
2362
  },
2364
2363
  /**
@@ -2464,19 +2463,16 @@ var CHECKBOX_TOKENS = {
2464
2463
  /**
2465
2464
  * Icon tokens
2466
2465
  * Size and styling for checkmark icon within checkbox
2466
+ * NOTE: Icon sizes restricted to sm|md|lg per canonical interactive size scale
2467
2467
  */
2468
2468
  icon: {
2469
2469
  size: {
2470
- xs: "size-2.5",
2471
- // 10px (0.625rem)
2472
2470
  sm: "size-3",
2473
2471
  // 12px (0.75rem)
2474
2472
  md: "size-3.5",
2475
2473
  // 14px (0.875rem) - default
2476
- lg: "size-4",
2474
+ lg: "size-4"
2477
2475
  // 16px (1rem)
2478
- xl: "size-5"
2479
- // 20px (1.25rem)
2480
2476
  },
2481
2477
  stroke: "stroke-2",
2482
2478
  // 2px stroke width for checkmark
@@ -2508,9 +2504,10 @@ var CHECKBOX_TOKENS = {
2508
2504
  /**
2509
2505
  * Transition tokens
2510
2506
  * Smooth transitions for state changes
2507
+ * Uses MOTION_TOKENS for canonical motion values
2511
2508
  */
2512
- transition: "transition-all duration-200 ease-in-out"
2513
- // Smooth transitions
2509
+ transition: MOTION_TOKENS.transitionPreset.normal
2510
+ // Smooth transitions - Motion Authority compliant
2514
2511
  };
2515
2512
 
2516
2513
  // src/FOUNDATION/tokens/components/switch.ts
@@ -2756,15 +2753,15 @@ var SWITCH_TOKENS = {
2756
2753
  /**
2757
2754
  * Transition tokens
2758
2755
  * Smooth transitions for handle animation and state changes
2759
- * Uses motion tokens for duration and easing
2756
+ * Uses MOTION_TOKENS for canonical motion values
2760
2757
  */
2761
2758
  transition: {
2762
- handle: "transition-transform duration-300 ease-in-out",
2763
- // Handle slide animation
2764
- track: "transition-colors duration-300 ease-in-out",
2765
- // Track color transition
2766
- combined: "transition-all duration-300 ease-in-out"
2767
- // Combined transitions
2759
+ handle: `${MOTION_TOKENS.transition.transform} ${MOTION_TOKENS.duration.normal} ${MOTION_TOKENS.easing["in-out"]}`,
2760
+ // Handle slide animation - Motion Authority compliant
2761
+ track: `${MOTION_TOKENS.transition.colors} ${MOTION_TOKENS.duration.normal} ${MOTION_TOKENS.easing["in-out"]}`,
2762
+ // Track color transition - Motion Authority compliant
2763
+ combined: MOTION_TOKENS.transitionPreset.normal
2764
+ // Combined transitions - Motion Authority compliant
2768
2765
  },
2769
2766
  /**
2770
2767
  * Shadow token
@@ -2968,9 +2965,10 @@ var RADIO_TOKENS = {
2968
2965
  /**
2969
2966
  * Transition tokens
2970
2967
  * Smooth transitions for state changes
2968
+ * Uses MOTION_TOKENS for canonical motion values
2971
2969
  */
2972
- transition: "transition-all duration-200 ease-in-out"
2973
- // Smooth transitions
2970
+ transition: MOTION_TOKENS.transitionPreset.normal
2971
+ // Smooth transitions - Motion Authority compliant
2974
2972
  };
2975
2973
 
2976
2974
  // src/FOUNDATION/tokens/components/surface.ts
@@ -3005,51 +3003,53 @@ var SURFACE_TOKENS = {
3005
3003
  /**
3006
3004
  * Shadow tokens by surface variant
3007
3005
  * Maps to foundation elevation shadow tokens
3006
+ * Uses canonical SurfaceVariant names
3008
3007
  */
3009
3008
  shadow: {
3010
- flat: "shadow-none",
3009
+ default: "shadow-none",
3011
3010
  // No shadow - maps to elevationShadows.none
3012
- raised: "shadow-sm",
3011
+ elevated: "shadow-sm",
3013
3012
  // Small shadow - maps to elevationShadows.sm
3014
- sunken: "shadow-none",
3015
- // No shadow - maps to elevationShadows.none
3016
- outline: "shadow-none",
3013
+ outlined: "shadow-none",
3017
3014
  // No shadow - border-focused variant
3015
+ filled: "shadow-none",
3016
+ // No shadow - maps to elevationShadows.none
3018
3017
  subtle: "shadow-none"
3019
3018
  // No shadow - minimal background difference
3020
3019
  },
3021
3020
  /**
3022
3021
  * Variant-based token structure
3023
3022
  * Organized by variant for easy access
3023
+ * Uses canonical SurfaceVariant names: default, elevated, outlined, filled, subtle
3024
3024
  */
3025
3025
  variant: {
3026
- flat: {
3026
+ default: {
3027
3027
  padding: "p-md",
3028
3028
  radius: "rounded-md",
3029
3029
  shadow: "shadow-none",
3030
3030
  bg: "bg-background",
3031
3031
  border: "border border-border"
3032
3032
  },
3033
- raised: {
3033
+ elevated: {
3034
3034
  padding: "p-md",
3035
3035
  radius: "rounded-md",
3036
3036
  shadow: "shadow-sm",
3037
3037
  bg: "bg-card",
3038
3038
  border: "border border-border"
3039
3039
  },
3040
- sunken: {
3040
+ outlined: {
3041
3041
  padding: "p-md",
3042
3042
  radius: "rounded-md",
3043
3043
  shadow: "shadow-none",
3044
- bg: "bg-muted",
3045
- border: "border border-border"
3044
+ bg: "bg-transparent",
3045
+ border: "border-2 border-border"
3046
3046
  },
3047
- outline: {
3047
+ filled: {
3048
3048
  padding: "p-md",
3049
3049
  radius: "rounded-md",
3050
3050
  shadow: "shadow-none",
3051
- bg: "bg-transparent",
3052
- border: "border-2 border-border"
3051
+ bg: "bg-muted",
3052
+ border: "border border-border"
3053
3053
  },
3054
3054
  subtle: {
3055
3055
  padding: "p-md",
@@ -4402,10 +4402,10 @@ var SELECT_TOKENS = {
4402
4402
  // Text color using CSS var
4403
4403
  border: "border border-[hsl(var(--border))]",
4404
4404
  // Border color using CSS var
4405
- maxHeight: "max-h-[384px]",
4406
- // Maximum height for scrollable content (24rem = 384px)
4407
- minWidth: "min-w-[128px]"
4408
- // Minimum width (8rem = 128px)
4405
+ maxHeight: "max-h-96",
4406
+ // Maximum height for scrollable content (24rem = 384px) - maps to spacing[96]
4407
+ minWidth: "min-w-32"
4408
+ // Minimum width (8rem = 128px) - maps to spacing[32]
4409
4409
  },
4410
4410
  /**
4411
4411
  * Select item tokens
@@ -4793,8 +4793,246 @@ var SELECT_TOKENS = {
4793
4793
  }
4794
4794
  };
4795
4795
 
4796
+ // src/FOUNDATION/tokens/components/simple-table.ts
4797
+ var SIMPLETABLE_TOKENS = {
4798
+ /**
4799
+ * Cell padding by size
4800
+ * Maps to semanticSpacing tokens
4801
+ */
4802
+ padding: {
4803
+ cell: {
4804
+ sm: "p-xs",
4805
+ // 4px - maps to semanticSpacing.xs
4806
+ md: "p-sm",
4807
+ // 8px - maps to semanticSpacing.sm
4808
+ lg: "p-md"
4809
+ // 16px - maps to semanticSpacing.md
4810
+ },
4811
+ header: {
4812
+ sm: "px-xs py-xs",
4813
+ // 4px horizontal, 4px vertical
4814
+ md: "px-sm py-sm",
4815
+ // 8px horizontal, 8px vertical
4816
+ lg: "px-md py-md"
4817
+ // 16px horizontal, 16px vertical
4818
+ }
4819
+ },
4820
+ /**
4821
+ * Typography tokens for table headers and cells by size
4822
+ * Maps to fontSize and fontWeight tokens
4823
+ */
4824
+ typography: {
4825
+ header: {
4826
+ sm: "text-xs font-medium text-muted-foreground",
4827
+ // Maps to fontSize.xs, fontWeight.medium
4828
+ md: "text-sm font-medium text-muted-foreground",
4829
+ // Maps to fontSize.sm, fontWeight.medium
4830
+ lg: "text-base font-medium text-muted-foreground"
4831
+ // Maps to fontSize.base, fontWeight.medium
4832
+ },
4833
+ cell: {
4834
+ sm: "text-xs",
4835
+ // Maps to fontSize.xs
4836
+ md: "text-sm",
4837
+ // Maps to fontSize.sm
4838
+ lg: "text-base"
4839
+ // Maps to fontSize.base
4840
+ }
4841
+ },
4842
+ /**
4843
+ * Layout tokens for table container and base styles
4844
+ */
4845
+ layout: {
4846
+ overflow: "overflow-x-auto",
4847
+ // Table container overflow
4848
+ table: "w-full border-collapse"
4849
+ // Table base styles
4850
+ },
4851
+ /**
4852
+ * Border tokens for table
4853
+ */
4854
+ border: {
4855
+ bottom: "border-b",
4856
+ // Border bottom for rows and headers
4857
+ color: "border-border"
4858
+ // Border color
4859
+ },
4860
+ /**
4861
+ * State tokens for table rows
4862
+ */
4863
+ state: {
4864
+ rowHover: "hover:bg-muted/50"
4865
+ // Row hover background
4866
+ },
4867
+ /**
4868
+ * Text alignment tokens
4869
+ */
4870
+ alignment: {
4871
+ left: "text-left"
4872
+ // Left alignment
4873
+ }
4874
+ };
4875
+
4876
+ // src/FOUNDATION/tokens/components/data-list.ts
4877
+ var DATA_LIST_TOKENS = {
4878
+ /**
4879
+ * Spacing tokens for DataList
4880
+ * Maps to semantic spacing tokens
4881
+ */
4882
+ spacing: {
4883
+ gap: "gap-md",
4884
+ // 16px (1rem) - gap between items - maps to semanticSpacing.md
4885
+ padding: "p-md"
4886
+ // 16px (1rem) - container padding - maps to semanticSpacing.md
4887
+ },
4888
+ /**
4889
+ * Label width tokens (for desktop horizontal layout)
4890
+ * Maps to Tailwind width utilities
4891
+ */
4892
+ labelWidth: {
4893
+ sm: "w-24",
4894
+ // 96px (6rem) - small label width
4895
+ md: "w-32",
4896
+ // 128px (8rem) - default label width
4897
+ lg: "w-40"
4898
+ // 160px (10rem) - large label width
4899
+ },
4900
+ /**
4901
+ * Row padding tokens
4902
+ * Maps to semantic spacing tokens
4903
+ */
4904
+ rowPadding: {
4905
+ sm: "py-xs",
4906
+ // 4px (0.25rem) - maps to semanticSpacing.xs
4907
+ md: "py-sm",
4908
+ // 8px (0.5rem) - maps to semanticSpacing.sm
4909
+ lg: "py-md"
4910
+ // 16px (1rem) - maps to semanticSpacing.md
4911
+ },
4912
+ /**
4913
+ * Item tokens
4914
+ * For individual DataList item styling
4915
+ */
4916
+ item: {
4917
+ /**
4918
+ * Border tokens for items
4919
+ */
4920
+ border: "border-b border-border last:border-0",
4921
+ // Item borders
4922
+ /**
4923
+ * Responsive layout tokens
4924
+ */
4925
+ layout: {
4926
+ mobile: "flex flex-col",
4927
+ // Mobile layout - vertical
4928
+ desktop: "md:flex-row md:items-center"
4929
+ // Desktop layout - horizontal
4930
+ }
4931
+ },
4932
+ /**
4933
+ * Label tokens
4934
+ * For DataList label styling
4935
+ */
4936
+ label: {
4937
+ mobile: "mb-1 font-semibold text-foreground",
4938
+ // Mobile label styles
4939
+ desktop: "md:mb-0"
4940
+ // Desktop label margin override
4941
+ },
4942
+ /**
4943
+ * Value tokens
4944
+ * For DataList value styling
4945
+ */
4946
+ value: {
4947
+ color: "text-muted-foreground",
4948
+ // Value text color
4949
+ flex: "flex-1"
4950
+ // Value flex grow
4951
+ }
4952
+ };
4953
+
4954
+ // src/FOUNDATION/tokens/components/list.ts
4955
+ var LIST_TOKENS = {
4956
+ /**
4957
+ * Spacing tokens for List container
4958
+ * Maps to semantic spacing tokens
4959
+ */
4960
+ spacing: {
4961
+ gap: "space-y-sm"
4962
+ // 8px (0.5rem) - gap between list items - maps to semanticSpacing.sm
4963
+ },
4964
+ /**
4965
+ * List item tokens
4966
+ * For individual list item styling
4967
+ */
4968
+ item: {
4969
+ /**
4970
+ * Padding tokens for item container
4971
+ * Maps to semantic spacing tokens
4972
+ */
4973
+ padding: "p-md",
4974
+ // 16px (1rem) - item padding - maps to semanticSpacing.md
4975
+ /**
4976
+ * Border radius tokens for item container
4977
+ * Maps to foundation radius tokens
4978
+ */
4979
+ radius: "rounded-lg",
4980
+ // 8px (0.5rem) - item border radius - maps to borderRadius.lg
4981
+ /**
4982
+ * Border token
4983
+ */
4984
+ border: "border",
4985
+ // Standard border
4986
+ /**
4987
+ * Transition token
4988
+ */
4989
+ transition: "transition-colors",
4990
+ // Color transitions
4991
+ /**
4992
+ * Hover state tokens
4993
+ */
4994
+ hover: {
4995
+ background: "hover:bg-muted/50"
4996
+ // Hover background - maps to muted color with 50% opacity
4997
+ }
4998
+ },
4999
+ /**
5000
+ * Title tokens
5001
+ * For list item title styling
5002
+ */
5003
+ title: {
5004
+ fontWeight: "font-medium",
5005
+ // Medium font weight
5006
+ color: "text-foreground"
5007
+ // Foreground text color
5008
+ },
5009
+ /**
5010
+ * Description tokens
5011
+ * For list item description styling
5012
+ */
5013
+ description: {
5014
+ /**
5015
+ * Margin top token
5016
+ * Maps to semantic spacing tokens
5017
+ */
5018
+ marginTop: "mt-xs",
5019
+ // 4px (0.25rem) - margin top - maps to semanticSpacing.xs
5020
+ /**
5021
+ * Font size token
5022
+ * Maps to foundation typography tokens
5023
+ */
5024
+ fontSize: "text-sm",
5025
+ // Small font size - maps to fontSize.sm
5026
+ /**
5027
+ * Text color token
5028
+ */
5029
+ color: "text-muted-foreground"
5030
+ // Muted foreground text color
5031
+ }
5032
+ };
5033
+
4796
5034
  // src/FOUNDATION/tokens/motion/v2.ts
4797
- var motionV2Durations = {
5035
+ var motionDurations = {
4798
5036
  fast: "150ms",
4799
5037
  // Quick interactions
4800
5038
  normal: "250ms",
@@ -4804,7 +5042,7 @@ var motionV2Durations = {
4804
5042
  reduced: "0ms"
4805
5043
  // For prefers-reduced-motion
4806
5044
  };
4807
- var motionV2Easings = {
5045
+ var motionEasings = {
4808
5046
  soft: "cubic-bezier(0.22, 1, 0.36, 1)",
4809
5047
  // Gentle, smooth
4810
5048
  standard: "cubic-bezier(0.4, 0, 0.2, 1)",
@@ -4812,526 +5050,201 @@ var motionV2Easings = {
4812
5050
  emphasized: "cubic-bezier(0.2, 0, 0, 1)"
4813
5051
  // Strong, decisive
4814
5052
  };
4815
- var motionV2Transitions = {
4816
- fast: `${motionV2Durations.fast} ${motionV2Easings.standard}`,
4817
- normal: `${motionV2Durations.normal} ${motionV2Easings.standard}`,
4818
- slow: `${motionV2Durations.slow} ${motionV2Easings.emphasized}`,
4819
- soft: `${motionV2Durations.normal} ${motionV2Easings.soft}`,
4820
- reduced: `${motionV2Durations.reduced} linear`
5053
+ var motionTransitions = {
5054
+ fast: `${motionDurations.fast} ${motionEasings.standard}`,
5055
+ normal: `${motionDurations.normal} ${motionEasings.standard}`,
5056
+ slow: `${motionDurations.slow} ${motionEasings.emphasized}`,
5057
+ soft: `${motionDurations.normal} ${motionEasings.soft}`,
5058
+ reduced: `${motionDurations.reduced} linear`
4821
5059
  };
4822
- var motionV2Fade = {
5060
+ var motionFade = {
4823
5061
  in: {
4824
- from: { opacity: 0 },
4825
- to: { opacity: 1 }
5062
+ from: { opacity: "0" },
5063
+ to: { opacity: "1" }
4826
5064
  },
4827
5065
  out: {
4828
- from: { opacity: 1 },
4829
- to: { opacity: 0 }
5066
+ from: { opacity: "1" },
5067
+ to: { opacity: "0" }
4830
5068
  }
4831
5069
  };
4832
- var motionV2Scale = {
5070
+ var motionScale = {
4833
5071
  in: {
4834
- from: { transform: "scale(0.95)", opacity: 0 },
4835
- to: { transform: "scale(1)", opacity: 1 }
5072
+ from: { transform: "scale(0.95)", opacity: "0" },
5073
+ to: { transform: "scale(1)", opacity: "1" }
4836
5074
  },
4837
5075
  out: {
4838
- from: { transform: "scale(1)", opacity: 1 },
4839
- to: { transform: "scale(0.95)", opacity: 0 }
5076
+ from: { transform: "scale(1)", opacity: "1" },
5077
+ to: { transform: "scale(0.95)", opacity: "0" }
4840
5078
  }
4841
5079
  };
4842
- var motionV2Slide = {
5080
+ var motionSlide = {
4843
5081
  up: {
4844
5082
  in: {
4845
- from: { transform: "translateY(100%)", opacity: 0 },
4846
- to: { transform: "translateY(0)", opacity: 1 }
5083
+ from: { transform: "translateY(100%)", opacity: "0" },
5084
+ to: { transform: "translateY(0)", opacity: "1" }
4847
5085
  },
4848
5086
  out: {
4849
- from: { transform: "translateY(0)", opacity: 1 },
4850
- to: { transform: "translateY(100%)", opacity: 0 }
5087
+ from: { transform: "translateY(0)", opacity: "1" },
5088
+ to: { transform: "translateY(100%)", opacity: "0" }
4851
5089
  }
4852
5090
  },
4853
5091
  down: {
4854
5092
  in: {
4855
- from: { transform: "translateY(-100%)", opacity: 0 },
4856
- to: { transform: "translateY(0)", opacity: 1 }
5093
+ from: { transform: "translateY(-100%)", opacity: "0" },
5094
+ to: { transform: "translateY(0)", opacity: "1" }
4857
5095
  },
4858
5096
  out: {
4859
- from: { transform: "translateY(0)", opacity: 1 },
4860
- to: { transform: "translateY(-100%)", opacity: 0 }
5097
+ from: { transform: "translateY(0)", opacity: "1" },
5098
+ to: { transform: "translateY(-100%)", opacity: "0" }
4861
5099
  }
4862
5100
  },
4863
5101
  left: {
4864
5102
  in: {
4865
- from: { transform: "translateX(100%)", opacity: 0 },
4866
- to: { transform: "translateX(0)", opacity: 1 }
5103
+ from: { transform: "translateX(100%)", opacity: "0" },
5104
+ to: { transform: "translateX(0)", opacity: "1" }
4867
5105
  },
4868
5106
  out: {
4869
- from: { transform: "translateX(0)", opacity: 1 },
4870
- to: { transform: "translateX(100%)", opacity: 0 }
5107
+ from: { transform: "translateX(0)", opacity: "1" },
5108
+ to: { transform: "translateX(100%)", opacity: "0" }
4871
5109
  }
4872
5110
  },
4873
5111
  right: {
4874
5112
  in: {
4875
- from: { transform: "translateX(-100%)", opacity: 0 },
4876
- to: { transform: "translateX(0)", opacity: 1 }
5113
+ from: { transform: "translateX(-100%)", opacity: "0" },
5114
+ to: { transform: "translateX(0)", opacity: "1" }
4877
5115
  },
4878
5116
  out: {
4879
- from: { transform: "translateX(0)", opacity: 1 },
4880
- to: { transform: "translateX(-100%)", opacity: 0 }
5117
+ from: { transform: "translateX(0)", opacity: "1" },
5118
+ to: { transform: "translateX(-100%)", opacity: "0" }
4881
5119
  }
4882
5120
  }
4883
5121
  };
4884
- var motionV2Combined = {
5122
+ var motionCombined = {
4885
5123
  fadeScale: {
4886
5124
  in: {
4887
- from: { transform: "scale(0.95)", opacity: 0 },
4888
- to: { transform: "scale(1)", opacity: 1 }
5125
+ from: { transform: "scale(0.95)", opacity: "0" },
5126
+ to: { transform: "scale(1)", opacity: "1" }
4889
5127
  },
4890
5128
  out: {
4891
- from: { transform: "scale(1)", opacity: 1 },
4892
- to: { transform: "scale(0.95)", opacity: 0 }
5129
+ from: { transform: "scale(1)", opacity: "1" },
5130
+ to: { transform: "scale(0.95)", opacity: "0" }
4893
5131
  }
4894
5132
  },
4895
5133
  fadeSlideUp: {
4896
5134
  in: {
4897
- from: { transform: "translateY(100%)", opacity: 0 },
4898
- to: { transform: "translateY(0)", opacity: 1 }
5135
+ from: { transform: "translateY(100%)", opacity: "0" },
5136
+ to: { transform: "translateY(0)", opacity: "1" }
4899
5137
  },
4900
5138
  out: {
4901
- from: { transform: "translateY(0)", opacity: 1 },
4902
- to: { transform: "translateY(100%)", opacity: 0 }
5139
+ from: { transform: "translateY(0)", opacity: "1" },
5140
+ to: { transform: "translateY(100%)", opacity: "0" }
4903
5141
  }
4904
5142
  },
4905
5143
  fadeSlideDown: {
4906
5144
  in: {
4907
- from: { transform: "translateY(-100%)", opacity: 0 },
4908
- to: { transform: "translateY(0)", opacity: 1 }
5145
+ from: { transform: "translateY(-100%)", opacity: "0" },
5146
+ to: { transform: "translateY(0)", opacity: "1" }
4909
5147
  },
4910
5148
  out: {
4911
- from: { transform: "translateY(0)", opacity: 1 },
4912
- to: { transform: "translateY(-100%)", opacity: 0 }
5149
+ from: { transform: "translateY(0)", opacity: "1" },
5150
+ to: { transform: "translateY(-100%)", opacity: "0" }
4913
5151
  }
4914
5152
  },
4915
5153
  fadeSlideLeft: {
4916
5154
  in: {
4917
- from: { transform: "translateX(100%)", opacity: 0 },
4918
- to: { transform: "translateX(0)", opacity: 1 }
5155
+ from: { transform: "translateX(100%)", opacity: "0" },
5156
+ to: { transform: "translateX(0)", opacity: "1" }
4919
5157
  },
4920
5158
  out: {
4921
- from: { transform: "translateX(0)", opacity: 1 },
4922
- to: { transform: "translateX(100%)", opacity: 0 }
5159
+ from: { transform: "translateX(0)", opacity: "1" },
5160
+ to: { transform: "translateX(100%)", opacity: "0" }
4923
5161
  }
4924
5162
  },
4925
5163
  fadeSlideRight: {
4926
5164
  in: {
4927
- from: { transform: "translateX(-100%)", opacity: 0 },
4928
- to: { transform: "translateX(0)", opacity: 1 }
5165
+ from: { transform: "translateX(-100%)", opacity: "0" },
5166
+ to: { transform: "translateX(0)", opacity: "1" }
4929
5167
  },
4930
5168
  out: {
4931
- from: { transform: "translateX(0)", opacity: 1 },
4932
- to: { transform: "translateX(-100%)", opacity: 0 }
5169
+ from: { transform: "translateX(0)", opacity: "1" },
5170
+ to: { transform: "translateX(-100%)", opacity: "0" }
4933
5171
  }
4934
5172
  }
4935
5173
  };
4936
- var motionV2CSSVariables = {
5174
+ var motionCSSVariables = {
4937
5175
  // Durations
4938
- "--motion-duration-fast": motionV2Durations.fast,
4939
- "--motion-duration-normal": motionV2Durations.normal,
4940
- "--motion-duration-slow": motionV2Durations.slow,
4941
- "--motion-duration-reduced": motionV2Durations.reduced,
5176
+ "--motion-duration-fast": motionDurations.fast,
5177
+ "--motion-duration-normal": motionDurations.normal,
5178
+ "--motion-duration-slow": motionDurations.slow,
5179
+ "--motion-duration-reduced": motionDurations.reduced,
4942
5180
  // Easings
4943
- "--motion-easing-soft": motionV2Easings.soft,
4944
- "--motion-easing-standard": motionV2Easings.standard,
4945
- "--motion-easing-emphasized": motionV2Easings.emphasized,
5181
+ "--motion-easing-soft": motionEasings.soft,
5182
+ "--motion-easing-standard": motionEasings.standard,
5183
+ "--motion-easing-emphasized": motionEasings.emphasized,
4946
5184
  // Transitions
4947
- "--motion-transition-fast": motionV2Transitions.fast,
4948
- "--motion-transition-normal": motionV2Transitions.normal,
4949
- "--motion-transition-slow": motionV2Transitions.slow,
4950
- "--motion-transition-soft": motionV2Transitions.soft,
4951
- "--motion-transition-reduced": motionV2Transitions.reduced
5185
+ "--motion-transition-fast": motionTransitions.fast,
5186
+ "--motion-transition-normal": motionTransitions.normal,
5187
+ "--motion-transition-slow": motionTransitions.slow,
5188
+ "--motion-transition-soft": motionTransitions.soft,
5189
+ "--motion-transition-reduced": motionTransitions.reduced
5190
+ };
5191
+ var motionTransitionProperty = {
5192
+ DEFAULT: "color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",
5193
+ colors: "color, background-color, border-color, text-decoration-color, fill, stroke",
5194
+ opacity: "opacity",
5195
+ shadow: "box-shadow",
5196
+ transform: "transform",
5197
+ all: "all",
5198
+ none: "none"
4952
5199
  };
4953
- var motionV2TailwindConfig = {
5200
+ var motionTailwindConfig = {
4954
5201
  transitionDuration: {
4955
- ...motionV2Durations
5202
+ ...motionDurations
4956
5203
  },
4957
5204
  transitionTimingFunction: {
4958
- ...motionV2Easings
5205
+ ...motionEasings
5206
+ },
5207
+ transitionProperty: {
5208
+ ...motionTransitionProperty
4959
5209
  },
4960
5210
  keyframes: {
4961
5211
  // Fade
4962
- "fade-in": motionV2Fade.in,
4963
- "fade-out": motionV2Fade.out,
5212
+ "fade-in": motionFade.in,
5213
+ "fade-out": motionFade.out,
4964
5214
  // Scale
4965
- "scale-in": motionV2Scale.in,
4966
- "scale-out": motionV2Scale.out,
5215
+ "scale-in": motionScale.in,
5216
+ "scale-out": motionScale.out,
4967
5217
  // Slide
4968
- "slide-up-in": motionV2Slide.up.in,
4969
- "slide-up-out": motionV2Slide.up.out,
4970
- "slide-down-in": motionV2Slide.down.in,
4971
- "slide-down-out": motionV2Slide.down.out,
4972
- "slide-left-in": motionV2Slide.left.in,
4973
- "slide-left-out": motionV2Slide.left.out,
4974
- "slide-right-in": motionV2Slide.right.in,
4975
- "slide-right-out": motionV2Slide.right.out,
5218
+ "slide-up-in": motionSlide.up.in,
5219
+ "slide-up-out": motionSlide.up.out,
5220
+ "slide-down-in": motionSlide.down.in,
5221
+ "slide-down-out": motionSlide.down.out,
5222
+ "slide-left-in": motionSlide.left.in,
5223
+ "slide-left-out": motionSlide.left.out,
5224
+ "slide-right-in": motionSlide.right.in,
5225
+ "slide-right-out": motionSlide.right.out,
4976
5226
  // Combined
4977
- "fade-scale-in": motionV2Combined.fadeScale.in,
4978
- "fade-scale-out": motionV2Combined.fadeScale.out,
4979
- "fade-slide-up-in": motionV2Combined.fadeSlideUp.in,
4980
- "fade-slide-up-out": motionV2Combined.fadeSlideUp.out,
4981
- "fade-slide-down-in": motionV2Combined.fadeSlideDown.in,
4982
- "fade-slide-down-out": motionV2Combined.fadeSlideDown.out,
4983
- "fade-slide-left-in": motionV2Combined.fadeSlideLeft.in,
4984
- "fade-slide-left-out": motionV2Combined.fadeSlideLeft.out,
4985
- "fade-slide-right-in": motionV2Combined.fadeSlideRight.in,
4986
- "fade-slide-right-out": motionV2Combined.fadeSlideRight.out
5227
+ "fade-scale-in": motionCombined.fadeScale.in,
5228
+ "fade-scale-out": motionCombined.fadeScale.out,
5229
+ "fade-slide-up-in": motionCombined.fadeSlideUp.in,
5230
+ "fade-slide-up-out": motionCombined.fadeSlideUp.out,
5231
+ "fade-slide-down-in": motionCombined.fadeSlideDown.in,
5232
+ "fade-slide-down-out": motionCombined.fadeSlideDown.out,
5233
+ "fade-slide-left-in": motionCombined.fadeSlideLeft.in,
5234
+ "fade-slide-left-out": motionCombined.fadeSlideLeft.out,
5235
+ "fade-slide-right-in": motionCombined.fadeSlideRight.in,
5236
+ "fade-slide-right-out": motionCombined.fadeSlideRight.out
4987
5237
  }
4988
5238
  };
4989
-
4990
- // src/FOUNDATION/tokens/motion.ts
4991
- var durations = {
4992
- instant: "0ms",
4993
- fast: "150ms",
4994
- // 1.5 × base (quick interactions)
4995
- normal: "300ms",
4996
- // 3 × base (default)
4997
- slow: "500ms",
4998
- // 5 × base (emphasized)
4999
- slower: "700ms",
5000
- // 7 × base (very emphasized)
5001
- slowest: "1000ms",
5002
- // 10 × base (maximum emphasis)
5003
- // Additional granular durations
5004
- "75": "75ms",
5005
- // Ultra-fast
5006
- "100": "100ms",
5007
- // Base unit
5008
- "200": "200ms",
5009
- // Fast-normal
5010
- "250": "250ms",
5011
- // Between fast and normal
5012
- "400": "400ms",
5013
- // Between normal and slow
5014
- "600": "600ms",
5015
- // Between slow and slower
5016
- "800": "800ms"
5017
- // Between slower and slowest
5018
- };
5019
- var easings = {
5020
- // Linear (no easing)
5021
- linear: "linear",
5022
- // Ease-in (accelerate) - cubic-bezier
5023
- "ease-in": "cubic-bezier(0.4, 0, 1, 1)",
5024
- // Ease-out (decelerate) - recommended for most UI - cubic-bezier
5025
- "ease-out": "cubic-bezier(0, 0, 0.2, 1)",
5026
- // Ease-in-out (accelerate and decelerate)
5027
- "ease-in-out": "cubic-bezier(0.4, 0, 0.2, 1)",
5028
- // Standard easing functions
5029
- ease: "ease",
5030
- // Advanced easing functions
5031
- bounce: "cubic-bezier(0.68, -0.55, 0.265, 1.55)",
5032
- elastic: "cubic-bezier(0.175, 0.885, 0.32, 1.275)",
5033
- // Material Design easing
5034
- "ease-out-cubic": "cubic-bezier(0.215, 0.61, 0.355, 1)",
5035
- "ease-in-cubic": "cubic-bezier(0.55, 0.055, 0.675, 0.19)",
5036
- "ease-in-out-cubic": "cubic-bezier(0.645, 0.045, 0.355, 1)"
5037
- };
5038
- var transitions = {
5039
- // Fast transitions (quick interactions)
5040
- fast: `${durations.fast} ${easings["ease-out"]}`,
5041
- "fast-in": `${durations.fast} ${easings["ease-in"]}`,
5042
- "fast-out": `${durations.fast} ${easings["ease-out"]}`,
5043
- "fast-in-out": `${durations.fast} ${easings["ease-in-out"]}`,
5044
- // Normal transitions (default)
5045
- normal: `${durations.normal} ${easings["ease-in-out"]}`,
5046
- "normal-in": `${durations.normal} ${easings["ease-in"]}`,
5047
- "normal-out": `${durations.normal} ${easings["ease-out"]}`,
5048
- "normal-in-out": `${durations.normal} ${easings["ease-in-out"]}`,
5049
- // Slow transitions (emphasized)
5050
- slow: `${durations.slow} ${easings["ease-in-out"]}`,
5051
- "slow-in": `${durations.slow} ${easings["ease-in"]}`,
5052
- "slow-out": `${durations.slow} ${easings["ease-out"]}`,
5053
- "slow-in-out": `${durations.slow} ${easings["ease-in-out"]}`,
5054
- // Special transitions
5055
- bounce: `${durations.normal} ${easings.bounce}`,
5056
- elastic: `${durations.slow} ${easings.elastic}`,
5057
- // Default (normal)
5058
- DEFAULT: `${durations.normal} ${easings["ease-in-out"]}`
5059
- };
5060
- var keyframes = {
5061
- // Fade animations
5062
- fadeIn: {
5063
- from: { opacity: "0" },
5064
- to: { opacity: "1" }
5065
- },
5066
- fadeOut: {
5067
- from: { opacity: "1" },
5068
- to: { opacity: "0" }
5069
- },
5070
- // Slide animations
5071
- slideInUp: {
5072
- from: { transform: "translateY(100%)", opacity: "0" },
5073
- to: { transform: "translateY(0)", opacity: "1" }
5074
- },
5075
- slideInDown: {
5076
- from: { transform: "translateY(-100%)", opacity: "0" },
5077
- to: { transform: "translateY(0)", opacity: "1" }
5078
- },
5079
- slideInLeft: {
5080
- from: { transform: "translateX(-100%)", opacity: "0" },
5081
- to: { transform: "translateX(0)", opacity: "1" }
5082
- },
5083
- slideInRight: {
5084
- from: { transform: "translateX(100%)", opacity: "0" },
5085
- to: { transform: "translateX(0)", opacity: "1" }
5086
- },
5087
- slideOutUp: {
5088
- from: { transform: "translateY(0)", opacity: "1" },
5089
- to: { transform: "translateY(-100%)", opacity: "0" }
5090
- },
5091
- slideOutDown: {
5092
- from: { transform: "translateY(0)", opacity: "1" },
5093
- to: { transform: "translateY(100%)", opacity: "0" }
5094
- },
5095
- slideOutLeft: {
5096
- from: { transform: "translateX(0)", opacity: "1" },
5097
- to: { transform: "translateX(-100%)", opacity: "0" }
5098
- },
5099
- slideOutRight: {
5100
- from: { transform: "translateX(0)", opacity: "1" },
5101
- to: { transform: "translateX(100%)", opacity: "0" }
5102
- },
5103
- // Scale animations
5104
- scaleIn: {
5105
- from: { transform: "scale(0.95)", opacity: "0" },
5106
- to: { transform: "scale(1)", opacity: "1" }
5107
- },
5108
- scaleOut: {
5109
- from: { transform: "scale(1)", opacity: "1" },
5110
- to: { transform: "scale(0.95)", opacity: "0" }
5111
- },
5112
- scaleUp: {
5113
- from: { transform: "scale(1)" },
5114
- to: { transform: "scale(1.05)" }
5115
- },
5116
- scaleDown: {
5117
- from: { transform: "scale(1.05)" },
5118
- to: { transform: "scale(1)" }
5119
- },
5120
- // Rotation animations
5121
- spin: {
5122
- from: { transform: "rotate(0deg)" },
5123
- to: { transform: "rotate(360deg)" }
5124
- },
5125
- spinReverse: {
5126
- from: { transform: "rotate(360deg)" },
5127
- to: { transform: "rotate(0deg)" }
5128
- },
5129
- // Pulse and bounce
5130
- pulse: {
5131
- "0%, 100%": { opacity: "1" },
5132
- "50%": { opacity: "0.5" }
5133
- },
5134
- bounce: {
5135
- "0%, 100%": {
5136
- transform: "translateY(-25%)",
5137
- animationTimingFunction: "cubic-bezier(0.8, 0, 1, 1)"
5138
- },
5139
- "50%": {
5140
- transform: "translateY(0)",
5141
- animationTimingFunction: "cubic-bezier(0, 0, 0.2, 1)"
5142
- }
5143
- },
5144
- // Shake animation
5145
- shake: {
5146
- "0%, 100%": { transform: "translateX(0)" },
5147
- "10%, 30%, 50%, 70%, 90%": { transform: "translateX(-4px)" },
5148
- "20%, 40%, 60%, 80%": { transform: "translateX(4px)" }
5149
- },
5150
- // Ping animation
5151
- ping: {
5152
- "75%, 100%": {
5153
- transform: "scale(2)",
5154
- opacity: "0"
5155
- }
5156
- },
5157
- // Accordion animations (for Radix UI)
5158
- "accordion-down": {
5159
- from: { height: "0" },
5160
- to: { height: "var(--radix-accordion-content-height)" }
5161
- },
5162
- "accordion-up": {
5163
- from: { height: "var(--radix-accordion-content-height)" },
5164
- to: { height: "0" }
5165
- }
5166
- };
5167
- var animations = {
5168
- // Fade animations
5169
- fadeIn: `fadeIn ${durations.normal} ${easings["ease-out"]}`,
5170
- fadeOut: `fadeOut ${durations.fast} ${easings["ease-in"]}`,
5171
- // Slide animations
5172
- slideInUp: `slideInUp ${durations.normal} ${easings["ease-out"]}`,
5173
- slideInDown: `slideInDown ${durations.normal} ${easings["ease-out"]}`,
5174
- slideInLeft: `slideInLeft ${durations.normal} ${easings["ease-out"]}`,
5175
- slideInRight: `slideInRight ${durations.normal} ${easings["ease-out"]}`,
5176
- slideOutUp: `slideOutUp ${durations.fast} ${easings["ease-in"]}`,
5177
- slideOutDown: `slideOutDown ${durations.fast} ${easings["ease-in"]}`,
5178
- slideOutLeft: `slideOutLeft ${durations.fast} ${easings["ease-in"]}`,
5179
- slideOutRight: `slideOutRight ${durations.fast} ${easings["ease-in"]}`,
5180
- // Scale animations
5181
- scaleIn: `scaleIn ${durations.normal} ${easings["ease-out"]}`,
5182
- scaleOut: `scaleOut ${durations.fast} ${easings["ease-in"]}`,
5183
- // Continuous animations
5184
- spin: `spin 1s ${easings.linear} infinite`,
5185
- pulse: `pulse 2s ${easings["ease-in-out"]} infinite`,
5186
- bounce: `bounce 1s ${easings.linear} infinite`,
5187
- ping: `ping 1s ${easings["ease-out"]} cubic-bezier(0, 0, 0.2, 1) infinite`,
5188
- shake: `shake 0.5s ${easings["ease-in-out"]}`,
5189
- // Accordion animations
5190
- "accordion-down": `accordion-down ${durations.normal} ${easings["ease-out"]}`,
5191
- "accordion-up": `accordion-up ${durations.normal} ${easings["ease-out"]}`
5192
- };
5193
- var springs = {
5194
- // Gentle spring (subtle, smooth)
5195
- gentle: {
5196
- type: "spring",
5197
- stiffness: 120,
5198
- damping: 14,
5199
- mass: 1
5200
- },
5201
- // Default spring (balanced)
5202
- default: {
5203
- type: "spring",
5204
- stiffness: 300,
5205
- damping: 30,
5206
- mass: 1
5207
- },
5208
- // Wobbly spring (bouncy, playful)
5209
- wobbly: {
5210
- type: "spring",
5211
- stiffness: 180,
5212
- damping: 12,
5213
- mass: 1
5214
- },
5215
- // Stiff spring (quick, precise)
5216
- stiff: {
5217
- type: "spring",
5218
- stiffness: 400,
5219
- damping: 30,
5220
- mass: 1
5221
- },
5222
- // Slow spring (smooth, deliberate)
5223
- slow: {
5224
- type: "spring",
5225
- stiffness: 200,
5226
- damping: 25,
5227
- mass: 1
5228
- },
5229
- // Bouncy spring (energetic, fun)
5230
- bouncy: {
5231
- type: "spring",
5232
- stiffness: 400,
5233
- damping: 10,
5234
- mass: 1
5235
- },
5236
- // No bounce (damped, controlled)
5237
- noBounce: {
5238
- type: "spring",
5239
- stiffness: 300,
5240
- damping: 35,
5241
- mass: 1
5242
- }
5243
- };
5244
- var reducedMotion = {
5245
- // Reduced motion duration (instant or minimal)
5239
+ var motionReducedMotion = {
5240
+ /** Reduced motion duration (instant, no animation) */
5246
5241
  duration: "0ms",
5247
- // Reduced motion easing (linear for instant)
5242
+ /** Reduced motion easing (linear for instant) */
5248
5243
  easing: "linear",
5249
- // Reduced motion transition (instant)
5244
+ /** Reduced motion transition (instant) */
5250
5245
  transition: "0ms linear",
5251
- // CSS media query for reduced motion
5252
- mediaQuery: "@media (prefers-reduced-motion: reduce)",
5253
- // Utility class to disable animations
5254
- disableAnimations: "animation: none !important; transition: none !important;",
5255
- // Reduced motion spring (instant, no animation)
5256
- spring: {
5257
- type: "spring",
5258
- stiffness: 1e3,
5259
- damping: 100,
5260
- mass: 1
5261
- }
5262
- };
5263
- var motionCSSVariables = {
5264
- // Durations
5265
- "--duration-instant": durations.instant,
5266
- "--duration-fast": durations.fast,
5267
- "--duration-normal": durations.normal,
5268
- "--duration-slow": durations.slow,
5269
- "--duration-slower": durations.slower,
5270
- "--duration-slowest": durations.slowest,
5271
- // Additional granular durations
5272
- "--duration-75": durations["75"],
5273
- "--duration-100": durations["100"],
5274
- "--duration-200": durations["200"],
5275
- "--duration-250": durations["250"],
5276
- "--duration-400": durations["400"],
5277
- "--duration-600": durations["600"],
5278
- "--duration-800": durations["800"],
5279
- // Easings
5280
- "--ease-linear": easings.linear,
5281
- "--ease-in": easings["ease-in"],
5282
- "--ease-out": easings["ease-out"],
5283
- "--ease-in-out": easings["ease-in-out"],
5284
- "--ease-bounce": easings.bounce,
5285
- "--ease-elastic": easings.elastic,
5286
- "--ease-out-cubic": easings["ease-out-cubic"],
5287
- "--ease-in-cubic": easings["ease-in-cubic"],
5288
- "--ease-in-out-cubic": easings["ease-in-out-cubic"],
5289
- // Transitions
5290
- "--transition-fast": transitions.fast,
5291
- "--transition-normal": transitions.normal,
5292
- "--transition-slow": transitions.slow,
5293
- "--transition-default": transitions.DEFAULT,
5294
- "--transition-fast-in": transitions["fast-in"],
5295
- "--transition-fast-out": transitions["fast-out"],
5296
- "--transition-fast-in-out": transitions["fast-in-out"],
5297
- "--transition-normal-in": transitions["normal-in"],
5298
- "--transition-normal-out": transitions["normal-out"],
5299
- "--transition-normal-in-out": transitions["normal-in-out"],
5300
- "--transition-slow-in": transitions["slow-in"],
5301
- "--transition-slow-out": transitions["slow-out"],
5302
- "--transition-slow-in-out": transitions["slow-in-out"],
5303
- "--transition-bounce": transitions.bounce,
5304
- "--transition-elastic": transitions.elastic
5305
- };
5306
- var tailwindMotionConfig = {
5307
- transitionDuration: {
5308
- ...durations
5309
- },
5310
- transitionTimingFunction: {
5311
- ...easings
5312
- },
5313
- transitionProperty: {
5314
- DEFAULT: "color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",
5315
- colors: "color, background-color, border-color, text-decoration-color, fill, stroke",
5316
- opacity: "opacity",
5317
- shadow: "box-shadow",
5318
- transform: "transform",
5319
- all: "all",
5320
- none: "none"
5321
- },
5322
- keyframes: {
5323
- ...keyframes
5324
- },
5325
- animation: {
5326
- ...animations,
5327
- // Additional animation utilities
5328
- none: "none",
5329
- spin: animations.spin,
5330
- pulse: animations.pulse,
5331
- bounce: animations.bounce,
5332
- ping: animations.ping,
5333
- shake: animations.shake
5334
- }
5246
+ /** CSS media query for reduced motion */
5247
+ mediaQuery: "@media (prefers-reduced-motion: reduce)"
5335
5248
  };
5336
5249
 
5337
5250
  // src/FOUNDATION/tokens/radius.ts
@@ -6111,4 +6024,4 @@ var tokenSystemSummary = {
6111
6024
  // src/FOUNDATION/tokens/theme.ts
6112
6025
  var UI_COLORS = tailwindThemeColors;
6113
6026
 
6114
- export { ALERT_TOKENS, ARTIST_TOKENS, BUTTON_TOKENS, CARD_TOKENS, CHECKBOX_TOKENS, DATA_TOKENS, DOMAIN_TOKENS, ICON_TOKENS, INPUT_TOKENS, MENU_TOKENS, MOTION_TOKENS, NAVIGATION_TOKENS, NOTIFICATION_TOKENS, OVERLAY_TOKENS, POPOVER_TOKENS, RADIO_TOKENS, SECTION_TOKENS, SELECT_TOKENS, SURFACE_TOKENS, SWITCH_TOKENS, TEXT_TOKENS, TOAST_TOKENS, TOOLTIP_TOKENS, UI_COLORS, accentColoredShadows, accentColors, allCSSVariables, allCSSVariablesCSS, animations, baseColors, borderRadius, chartColors, colorCSSVariables, componentRadius, componentShadowMapping, cssVariableColorTokens, durations, easings, elevationShadows, focusRings, fontFamily, fontSize, fontSizeWithMd, fontWeight, generateCSSVariablesCSS, glowEffects, keyframes, layoutSpacing, letterSpacing, lineHeight, motionCSSVariables, motionV2CSSVariables, motionV2Combined, motionV2Durations, motionV2Easings, motionV2Fade, motionV2Scale, motionV2Slide, motionV2TailwindConfig, motionV2Transitions, primaryColoredShadows, primaryColors, radiusCSSVariables, reducedMotion, secondaryColors, semanticColors, semanticSpacing, shadowBase, shadowCSSVariables, shadowOpacity, spacing, spacingCSSVariables, springs, surfaceColors, tailwindMotionConfig, tailwindRadiusConfig, tailwindShadowConfig, tailwindSpacingConfig, tailwindThemeColors, tailwindTypographyConfig, textColors, textStyles, tokenSystemSummary, transitions, typographyCSSVariables };
6027
+ export { ALERT_TOKENS, ARTIST_TOKENS, BUTTON_TOKENS, CARD_TOKENS, CHECKBOX_TOKENS, DATA_LIST_TOKENS, DATA_TOKENS, DOMAIN_TOKENS, ICON_TOKENS, INPUT_TOKENS, LIST_TOKENS, MENU_TOKENS, MOTION_TOKENS, NAVIGATION_TOKENS, NOTIFICATION_TOKENS, OVERLAY_TOKENS, POPOVER_TOKENS, RADIO_TOKENS, SECTION_TOKENS, SELECT_TOKENS, SIMPLETABLE_TOKENS, SURFACE_TOKENS, SWITCH_TOKENS, TEXT_TOKENS, TOAST_TOKENS, TOOLTIP_TOKENS, UI_COLORS, accentColoredShadows, accentColors, allCSSVariables, allCSSVariablesCSS, baseColors, borderRadius, chartColors, colorCSSVariables, componentRadius, componentShadowMapping, cssVariableColorTokens, elevationShadows, focusRings, fontFamily, fontSize, fontSizeWithMd, fontWeight, generateCSSVariablesCSS, glowEffects, layoutSpacing, letterSpacing, lineHeight, motionCSSVariables, motionCombined, motionDurations, motionEasings, motionFade, motionReducedMotion, motionScale, motionSlide, motionTailwindConfig, motionTransitionProperty, motionTransitions, primaryColoredShadows, primaryColors, radiusCSSVariables, secondaryColors, semanticColors, semanticSpacing, shadowBase, shadowCSSVariables, shadowOpacity, spacing, spacingCSSVariables, surfaceColors, tailwindRadiusConfig, tailwindShadowConfig, tailwindSpacingConfig, tailwindThemeColors, tailwindTypographyConfig, textColors, textStyles, tokenSystemSummary, typographyCSSVariables };