@tenerife.music/ui 1.0.12 → 1.0.15

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.
@@ -682,6 +682,68 @@ var CARD_TOKENS = {
682
682
  }
683
683
  };
684
684
 
685
+ // src/tokens/components/artist.ts
686
+ var ARTIST_TOKENS = {
687
+ /**
688
+ * Image container tokens
689
+ * Layout classes for image container wrapper
690
+ */
691
+ image: {
692
+ /**
693
+ * Container layout tokens
694
+ * Positioning and sizing for image container
695
+ */
696
+ container: {
697
+ /**
698
+ * Base container layout
699
+ * Relative positioning, full width, overflow hidden
700
+ * Uses Tailwind layout utilities (allowed per architecture)
701
+ */
702
+ layout: "relative w-full overflow-hidden"
703
+ },
704
+ /**
705
+ * Image sizing tokens
706
+ * Full width and height for images
707
+ */
708
+ sizing: {
709
+ /**
710
+ * Full size image
711
+ * Uses Tailwind sizing utilities (allowed per architecture)
712
+ */
713
+ full: "h-full w-full"
714
+ },
715
+ /**
716
+ * Placeholder container tokens
717
+ * Layout for placeholder icon container when no image is provided
718
+ */
719
+ placeholder: {
720
+ /**
721
+ * Placeholder container layout
722
+ * Flex centering for placeholder icon
723
+ * Uses Tailwind layout utilities (allowed per architecture)
724
+ */
725
+ container: "flex h-full w-full items-center justify-center"
726
+ }
727
+ },
728
+ /**
729
+ * Footer border tokens
730
+ * Border styling for card footer separator
731
+ */
732
+ footer: {
733
+ /**
734
+ * Footer border tokens
735
+ * Top border separator for footer section
736
+ */
737
+ border: {
738
+ /**
739
+ * Footer border top
740
+ * Uses semantic border color token
741
+ */
742
+ top: "border-t border-border"
743
+ }
744
+ }
745
+ };
746
+
685
747
  // src/tokens/spacing.ts
686
748
  var spacing = {
687
749
  // Zero spacing
@@ -944,101 +1006,6 @@ var tailwindSpacingConfig = {
944
1006
 
945
1007
  // src/tokens/components/data.ts
946
1008
  var DATA_TOKENS = {
947
- /**
948
- * Table Component Tokens
949
- */
950
- table: {
951
- /**
952
- * Table row heights by size
953
- * Maps to Tailwind height utilities
954
- */
955
- rowHeight: {
956
- sm: "h-8",
957
- // 32px (2rem) - compact rows
958
- md: "h-10",
959
- // 40px (2.5rem) - default rows
960
- lg: "h-12"
961
- // 48px (3rem) - spacious rows
962
- },
963
- /**
964
- * Table cell and header padding by size
965
- * Maps to semantic spacing tokens
966
- */
967
- padding: {
968
- cell: {
969
- sm: "p-xs",
970
- // 4px (0.25rem) - maps to semanticSpacing.xs
971
- md: "p-sm",
972
- // 8px (0.5rem) - maps to semanticSpacing.sm
973
- lg: "p-md"
974
- // 16px (1rem) - maps to semanticSpacing.md
975
- },
976
- header: {
977
- sm: "px-xs py-sm",
978
- // 4px horizontal, 8px vertical
979
- md: "px-sm py-md",
980
- // 8px horizontal, 16px vertical
981
- lg: "px-md py-lg"
982
- // 16px horizontal, 24px vertical
983
- }
984
- },
985
- /**
986
- * Gap between table cells (horizontal spacing)
987
- */
988
- gap: {
989
- sm: "gap-xs",
990
- // 4px (0.25rem) - maps to semanticSpacing.xs
991
- md: "gap-sm"
992
- // 8px (0.5rem) - maps to semanticSpacing.sm
993
- },
994
- /**
995
- * Border radius for table
996
- */
997
- radius: {
998
- default: "rounded-md"
999
- // 6px (0.375rem) - maps to borderRadius.md
1000
- },
1001
- /**
1002
- * Shadow tokens for table
1003
- * Maps to foundation elevation shadow tokens
1004
- */
1005
- shadow: {
1006
- none: "shadow-none",
1007
- // No shadow
1008
- subtle: "shadow-sm"
1009
- // Maps to elevationShadows.sm
1010
- },
1011
- /**
1012
- * Typography tokens for table headers and cells
1013
- * Maps to foundation typography fontSize tokens
1014
- */
1015
- typography: {
1016
- header: {
1017
- fontSize: "text-sm",
1018
- // Maps to fontSize.sm[0]
1019
- fontWeight: "font-semibold"
1020
- // Maps to fontWeight.semibold
1021
- },
1022
- cell: {
1023
- fontSize: "text-sm",
1024
- // Maps to fontSize.sm[0]
1025
- fontWeight: "font-normal"
1026
- // Maps to fontWeight.normal
1027
- }
1028
- },
1029
- /**
1030
- * Color tokens for table states
1031
- * Uses semantic color tokens
1032
- */
1033
- colors: {
1034
- border: "border-border",
1035
- // Border color
1036
- rowHover: "hover:bg-muted/50",
1037
- // Row hover background
1038
- rowSelected: "bg-muted"
1039
- // Selected row background
1040
- }
1041
- },
1042
1009
  /**
1043
1010
  * Skeleton Component Tokens
1044
1011
  */
@@ -1104,97 +1071,6 @@ var DATA_TOKENS = {
1104
1071
  inline: "inline-block"
1105
1072
  // Inline block display
1106
1073
  }
1107
- },
1108
- /**
1109
- * EmptyState Component Tokens
1110
- */
1111
- emptyState: {
1112
- /**
1113
- * Spacing tokens for EmptyState
1114
- * Maps to semantic spacing tokens
1115
- */
1116
- spacing: {
1117
- gap: "gap-md",
1118
- // 16px (1rem) - gap between elements - maps to semanticSpacing.md
1119
- padding: "p-lg"
1120
- // 24px (1.5rem) - container padding - maps to semanticSpacing.lg
1121
- },
1122
- /**
1123
- * Border radius for EmptyState container
1124
- */
1125
- radius: {
1126
- default: "rounded-xl"
1127
- // 12px (0.75rem) - maps to borderRadius.xl
1128
- },
1129
- /**
1130
- * Icon sizes by variant
1131
- * Maps to Tailwind size utilities
1132
- */
1133
- iconSize: {
1134
- sm: "size-8",
1135
- // 32px (2rem)
1136
- md: "size-12",
1137
- // 48px (3rem)
1138
- lg: "size-16"
1139
- // 64px (4rem)
1140
- },
1141
- /**
1142
- * Typography tokens for EmptyState
1143
- * Maps to foundation typography tokens
1144
- */
1145
- typography: {
1146
- title: {
1147
- fontSize: "text-lg",
1148
- // Maps to fontSize.lg[0]
1149
- fontWeight: "font-semibold"
1150
- // Maps to fontWeight.semibold
1151
- },
1152
- description: {
1153
- fontSize: "text-sm",
1154
- // Maps to fontSize.sm[0]
1155
- fontWeight: "font-normal"
1156
- // Maps to fontWeight.normal
1157
- }
1158
- }
1159
- },
1160
- /**
1161
- * DataList Component Tokens
1162
- */
1163
- dataList: {
1164
- /**
1165
- * Spacing tokens for DataList
1166
- * Maps to semantic spacing tokens
1167
- */
1168
- spacing: {
1169
- gap: "gap-md",
1170
- // 16px (1rem) - gap between items - maps to semanticSpacing.md
1171
- padding: "p-md"
1172
- // 16px (1rem) - container padding - maps to semanticSpacing.md
1173
- },
1174
- /**
1175
- * Label width tokens (for desktop horizontal layout)
1176
- * Maps to Tailwind width utilities
1177
- */
1178
- labelWidth: {
1179
- sm: "w-24",
1180
- // 96px (6rem) - small label width
1181
- md: "w-32",
1182
- // 128px (8rem) - default label width
1183
- lg: "w-40"
1184
- // 160px (10rem) - large label width
1185
- },
1186
- /**
1187
- * Row padding tokens
1188
- * Maps to semantic spacing tokens
1189
- */
1190
- rowPadding: {
1191
- sm: "py-xs",
1192
- // 4px (0.25rem) - maps to semanticSpacing.xs
1193
- md: "py-sm",
1194
- // 8px (0.5rem) - maps to semanticSpacing.sm
1195
- lg: "py-md"
1196
- // 16px (1rem) - maps to semanticSpacing.md
1197
- }
1198
1074
  }
1199
1075
  };
1200
1076
 
@@ -1539,7 +1415,7 @@ var DOMAIN_TOKENS = {
1539
1415
  },
1540
1416
  /**
1541
1417
  * Image tokens for card media
1542
- * Defines aspect ratio, radius, and overlay styles
1418
+ * Defines aspect ratio, radius, overlay styles, and placeholder gradients
1543
1419
  */
1544
1420
  image: {
1545
1421
  /**
@@ -1562,6 +1438,40 @@ var DOMAIN_TOKENS = {
1562
1438
  overlay: {
1563
1439
  gradient: "bg-gradient-to-t from-black/60 via-transparent to-transparent"
1564
1440
  // Gradient overlay for image hover states
1441
+ },
1442
+ /**
1443
+ * Placeholder gradient tokens for image placeholders
1444
+ * Used when no image URL is provided
1445
+ */
1446
+ placeholder: {
1447
+ gradient: "bg-gradient-to-br from-muted to-muted/50"
1448
+ // Placeholder gradient background
1449
+ }
1450
+ },
1451
+ /**
1452
+ * Text tokens for card text elements
1453
+ * Defines hover states and line clamping for titles and descriptions
1454
+ */
1455
+ text: {
1456
+ /**
1457
+ * Hover state tokens for text elements
1458
+ * Used for interactive text elements like titles
1459
+ */
1460
+ hover: {
1461
+ primary: "group-hover:text-primary"
1462
+ // Hover state for primary text color
1463
+ },
1464
+ /**
1465
+ * Line clamp tokens for text truncation
1466
+ * Used for limiting text to specific number of lines
1467
+ */
1468
+ lineClamp: {
1469
+ one: "line-clamp-1",
1470
+ // Single line clamp
1471
+ two: "line-clamp-2",
1472
+ // Two line clamp
1473
+ three: "line-clamp-3"
1474
+ // Three line clamp
1565
1475
  }
1566
1476
  },
1567
1477
  /**
@@ -1784,6 +1694,94 @@ var DOMAIN_TOKENS = {
1784
1694
  height: "h-6"
1785
1695
  // References spacing[6] (1.5rem / 24px) via Tailwind
1786
1696
  }
1697
+ },
1698
+ /**
1699
+ * CTA (Call-to-Action) button tokens for domain card components
1700
+ * Provides PromoCard-specific CTA button styling tokens
1701
+ * These tokens are semantically owned by domain card components, not by the Button component
1702
+ * References foundation tokens (spacing, typography, radius, shadows, motion) for consistency
1703
+ */
1704
+ cta: {
1705
+ /**
1706
+ * CTA button styling tokens
1707
+ * Used by PromoCard and other domain card components for CTA button elements
1708
+ */
1709
+ button: {
1710
+ /**
1711
+ * Button heights by size
1712
+ * Maps to Tailwind height utilities: h-8, h-9
1713
+ */
1714
+ height: {
1715
+ sm: "h-8",
1716
+ // 32px (2rem) - compact size
1717
+ md: "h-9"
1718
+ // 36px (2.25rem) - default size
1719
+ },
1720
+ /**
1721
+ * Button padding by size
1722
+ * Horizontal and vertical padding values
1723
+ * References semanticSpacing tokens
1724
+ */
1725
+ padding: {
1726
+ horizontal: {
1727
+ sm: "px-sm",
1728
+ // 8px (0.5rem) - maps to semanticSpacing.sm
1729
+ md: "px-md"
1730
+ // 16px (1rem) - maps to semanticSpacing.md
1731
+ },
1732
+ vertical: {
1733
+ sm: "py-xs"
1734
+ // 4px (0.25rem) - maps to semanticSpacing.xs
1735
+ }
1736
+ },
1737
+ /**
1738
+ * Border radius for CTA buttons
1739
+ * References borderRadius.md (6px / 0.375rem)
1740
+ * Using Tailwind class "rounded-md" which maps to borderRadius.md
1741
+ */
1742
+ radius: "rounded-md",
1743
+ // References borderRadius.md via Tailwind
1744
+ /**
1745
+ * Font sizes by button size
1746
+ * Maps to foundation typography fontSize tokens
1747
+ */
1748
+ fontSize: {
1749
+ sm: "text-xs",
1750
+ // Maps to fontSize.xs[0]
1751
+ md: "text-sm"
1752
+ // Maps to fontSize.sm[0]
1753
+ },
1754
+ /**
1755
+ * Shadow tokens for CTA buttons
1756
+ * Maps to foundation elevation shadow tokens
1757
+ */
1758
+ shadow: {
1759
+ primary: "shadow"
1760
+ // Maps to elevationShadows.xs (primary variant uses shadow)
1761
+ },
1762
+ /**
1763
+ * Color tokens for CTA button variants
1764
+ * Uses semantic color tokens that map to CSS variables
1765
+ */
1766
+ variant: {
1767
+ primary: {
1768
+ background: "bg-primary",
1769
+ // Primary background using CSS var
1770
+ text: "text-primary-foreground",
1771
+ // Primary text using CSS var
1772
+ hover: "hover:bg-primary/90"
1773
+ // Primary hover using CSS var
1774
+ }
1775
+ },
1776
+ /**
1777
+ * Transition tokens for CTA buttons
1778
+ * References MOTION_TOKENS for transitions
1779
+ */
1780
+ transition: {
1781
+ colors: "transition-colors"
1782
+ // Color transition using motion tokens
1783
+ }
1784
+ }
1787
1785
  }
1788
1786
  };
1789
1787
 
@@ -1887,40 +1885,6 @@ var INPUT_TOKENS = {
1887
1885
  text: "text-[hsl(var(--foreground))]"
1888
1886
  // File input text color using CSS var
1889
1887
  },
1890
- /**
1891
- * Select listbox tokens
1892
- * Styling for select dropdown container
1893
- */
1894
- selectListbox: {
1895
- border: "border border-[hsl(var(--border))]",
1896
- // Border color using CSS var
1897
- background: "bg-[hsl(var(--popover))]",
1898
- // Background using CSS var
1899
- text: "text-[hsl(var(--popover-foreground))]",
1900
- // Text color using CSS var
1901
- radius: "rounded-md",
1902
- // Radius token (6px)
1903
- shadow: "shadow-md"
1904
- // Shadow token
1905
- },
1906
- /**
1907
- * Select option tokens
1908
- * Styling for select option items
1909
- */
1910
- selectOption: {
1911
- focus: {
1912
- background: "focus:bg-[hsl(var(--accent))]",
1913
- // Focus background using CSS var
1914
- text: "focus:text-[hsl(var(--accent-foreground))]"
1915
- // Focus text using CSS var
1916
- },
1917
- selected: {
1918
- background: "bg-[hsl(var(--accent))]",
1919
- // Selected background using CSS var
1920
- text: "text-[hsl(var(--accent-foreground))]"
1921
- // Selected text using CSS var
1922
- }
1923
- },
1924
1888
  /**
1925
1889
  * Variant-based tokens
1926
1890
  * Border, background, and text colors for different variants
@@ -3331,8 +3295,9 @@ var TOAST_TOKENS = {
3331
3295
  },
3332
3296
  /**
3333
3297
  * Animation tokens for toast enter/exit animations
3334
- * Maps to Motion V2 utility classes
3298
+ * Maps to Motion V2 utility classes and Radix data attributes
3335
3299
  * Uses CSS-only animations from motion/v2.ts
3300
+ * Radix Toast provides data-[state=open] and data-[state=closed] attributes
3336
3301
  */
3337
3302
  animation: {
3338
3303
  enter: {
@@ -3350,6 +3315,24 @@ var TOAST_TOKENS = {
3350
3315
  // Motion V2 fade out
3351
3316
  combined: "tm-motion-fade-slide-left-out"
3352
3317
  // Motion V2 fade + slide left out
3318
+ },
3319
+ /**
3320
+ * Radix Toast data attribute classes
3321
+ * These are applied automatically by Radix based on toast state
3322
+ */
3323
+ radix: {
3324
+ /**
3325
+ * Base classes for Radix Toast Root
3326
+ * Includes swipe handling and state-based animations
3327
+ */
3328
+ root: "data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out",
3329
+ /**
3330
+ * State-based animation classes
3331
+ */
3332
+ state: {
3333
+ open: "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",
3334
+ closed: "data-[state=closed]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full"
3335
+ }
3353
3336
  }
3354
3337
  },
3355
3338
  /**
@@ -4182,6 +4165,14 @@ var DROPDOWN_TOKENS = {
4182
4165
  // 256px
4183
4166
  }
4184
4167
  },
4168
+ /**
4169
+ * Width tokens
4170
+ * Common width utilities
4171
+ */
4172
+ width: {
4173
+ full: "w-full"
4174
+ // Full width (100%)
4175
+ },
4185
4176
  /**
4186
4177
  * Item tokens by size
4187
4178
  * Individual menu item
@@ -4272,6 +4263,511 @@ var TOOLTIP_TOKENS = {
4272
4263
  }
4273
4264
  };
4274
4265
 
4266
+ // src/tokens/components/select.ts
4267
+ var SELECT_TOKENS = {
4268
+ /**
4269
+ * Select trigger heights by size
4270
+ * Supports xs, sm, md, lg, xl sizes
4271
+ */
4272
+ trigger: {
4273
+ height: {
4274
+ xs: "h-7",
4275
+ // 28px (1.75rem)
4276
+ sm: "h-8",
4277
+ // 32px (2rem)
4278
+ md: "h-9",
4279
+ // 36px (2.25rem) - default
4280
+ lg: "h-10",
4281
+ // 40px (2.5rem)
4282
+ xl: "h-11"
4283
+ // 44px (2.75rem)
4284
+ },
4285
+ padding: {
4286
+ horizontal: {
4287
+ xs: "px-xs",
4288
+ // 4px (0.25rem)
4289
+ sm: "px-sm",
4290
+ // 8px (0.5rem)
4291
+ md: "px-sm",
4292
+ // 8px (0.5rem) - default
4293
+ lg: "px-md",
4294
+ // 16px (1rem)
4295
+ xl: "px-lg"
4296
+ // 24px (1.5rem)
4297
+ },
4298
+ vertical: {
4299
+ xs: "py-xs",
4300
+ // 4px (0.25rem)
4301
+ sm: "py-xs",
4302
+ // 4px (0.25rem)
4303
+ md: "py-xs",
4304
+ // 4px (0.25rem) - default
4305
+ lg: "py-sm",
4306
+ // 8px (0.5rem)
4307
+ xl: "py-md"
4308
+ // 16px (1rem)
4309
+ }
4310
+ },
4311
+ radius: {
4312
+ xs: "rounded-sm",
4313
+ // 4px (0.25rem)
4314
+ sm: "rounded-md",
4315
+ // 6px (0.375rem)
4316
+ md: "rounded-md",
4317
+ // 6px (0.375rem) - default
4318
+ lg: "rounded-md",
4319
+ // 6px (0.375rem)
4320
+ xl: "rounded-lg"
4321
+ // 8px (0.5rem)
4322
+ },
4323
+ fontSize: {
4324
+ xs: "text-xs",
4325
+ // Maps to fontSize.xs[0]
4326
+ sm: "text-sm",
4327
+ // Maps to fontSize.sm[0]
4328
+ md: "text-base",
4329
+ // Maps to fontSize.base[0] - default
4330
+ lg: "text-base",
4331
+ // Maps to fontSize.base[0]
4332
+ xl: "text-lg"
4333
+ // Maps to fontSize.lg[0]
4334
+ },
4335
+ icon: {
4336
+ size: "size-4",
4337
+ // 16px (1rem)
4338
+ gap: "gap-sm",
4339
+ // 8px (0.5rem)
4340
+ color: "text-[hsl(var(--muted-foreground))]"
4341
+ // Icon color using CSS variable
4342
+ }
4343
+ },
4344
+ /**
4345
+ * Select content (dropdown) tokens
4346
+ */
4347
+ content: {
4348
+ padding: {
4349
+ xs: "p-xs",
4350
+ // 4px (0.25rem)
4351
+ sm: "p-sm",
4352
+ // 8px (0.5rem)
4353
+ md: "p-sm",
4354
+ // 8px (0.5rem) - default
4355
+ lg: "p-md",
4356
+ // 16px (1rem)
4357
+ xl: "p-lg"
4358
+ // 24px (1.5rem)
4359
+ },
4360
+ radius: {
4361
+ xs: "rounded-sm",
4362
+ // 4px (0.25rem)
4363
+ sm: "rounded-md",
4364
+ // 6px (0.375rem)
4365
+ md: "rounded-md",
4366
+ // 6px (0.375rem) - default
4367
+ lg: "rounded-md",
4368
+ // 6px (0.375rem)
4369
+ xl: "rounded-lg"
4370
+ // 8px (0.5rem)
4371
+ },
4372
+ shadow: "shadow-md",
4373
+ // Maps to elevationShadows.md
4374
+ background: "bg-[hsl(var(--popover))]",
4375
+ // Background using CSS var
4376
+ text: "text-[hsl(var(--popover-foreground))]",
4377
+ // Text color using CSS var
4378
+ border: "border border-[hsl(var(--border))]",
4379
+ // Border color using CSS var
4380
+ maxHeight: "max-h-[384px]",
4381
+ // Maximum height for scrollable content (24rem = 384px)
4382
+ minWidth: "min-w-[128px]"
4383
+ // Minimum width (8rem = 128px)
4384
+ },
4385
+ /**
4386
+ * Select item tokens
4387
+ */
4388
+ item: {
4389
+ padding: {
4390
+ horizontal: {
4391
+ xs: "px-xs",
4392
+ // 4px (0.25rem)
4393
+ sm: "px-sm",
4394
+ // 8px (0.5rem)
4395
+ md: "px-sm",
4396
+ // 8px (0.5rem) - default
4397
+ lg: "px-md",
4398
+ // 16px (1rem)
4399
+ xl: "px-lg"
4400
+ // 24px (1.5rem)
4401
+ },
4402
+ vertical: {
4403
+ xs: "py-xs",
4404
+ // 4px (0.25rem)
4405
+ sm: "py-xs",
4406
+ // 4px (0.25rem)
4407
+ md: "py-xs",
4408
+ // 4px (0.25rem) - default
4409
+ lg: "py-sm",
4410
+ // 8px (0.5rem)
4411
+ xl: "py-sm"
4412
+ // 8px (0.5rem)
4413
+ }
4414
+ },
4415
+ radius: {
4416
+ xs: "rounded-[4px]",
4417
+ // 4px (0.25rem) - using explicit value to avoid numeric class
4418
+ sm: "rounded-[4px]",
4419
+ // 4px (0.25rem)
4420
+ md: "rounded-[4px]",
4421
+ // 4px (0.25rem) - default
4422
+ lg: "rounded-[4px]",
4423
+ // 4px (0.25rem)
4424
+ xl: "rounded-md"
4425
+ // 6px (0.375rem)
4426
+ },
4427
+ fontSize: {
4428
+ xs: "text-xs",
4429
+ // Maps to fontSize.xs[0]
4430
+ sm: "text-sm",
4431
+ // Maps to fontSize.sm[0]
4432
+ md: "text-sm",
4433
+ // Maps to fontSize.sm[0] - default
4434
+ lg: "text-sm",
4435
+ // Maps to fontSize.sm[0]
4436
+ xl: "text-base"
4437
+ // Maps to fontSize.base[0]
4438
+ },
4439
+ indicator: {
4440
+ size: "size-4",
4441
+ // 16px (1rem)
4442
+ position: "left-sm"
4443
+ // 8px (0.5rem) from left
4444
+ },
4445
+ focus: {
4446
+ background: "focus:bg-[hsl(var(--accent))]",
4447
+ // Focus background using CSS var
4448
+ text: "focus:text-[hsl(var(--accent-foreground))]"
4449
+ // Focus text using CSS var
4450
+ },
4451
+ selected: {
4452
+ background: "bg-[hsl(var(--accent))]",
4453
+ // Selected background using CSS var
4454
+ text: "text-[hsl(var(--accent-foreground))]"
4455
+ // Selected text using CSS var
4456
+ },
4457
+ disabled: {
4458
+ opacity: "opacity-50",
4459
+ // Disabled opacity
4460
+ pointerEvents: "pointer-events-none"
4461
+ // Disable pointer events
4462
+ }
4463
+ },
4464
+ /**
4465
+ * Select label tokens
4466
+ */
4467
+ label: {
4468
+ padding: {
4469
+ horizontal: {
4470
+ xs: "px-xs",
4471
+ // 4px (0.25rem)
4472
+ sm: "px-sm",
4473
+ // 8px (0.5rem)
4474
+ md: "px-sm",
4475
+ // 8px (0.5rem) - default
4476
+ lg: "px-md",
4477
+ // 16px (1rem)
4478
+ xl: "px-lg"
4479
+ // 24px (1.5rem)
4480
+ },
4481
+ vertical: {
4482
+ xs: "py-xs",
4483
+ // 4px (0.25rem)
4484
+ sm: "py-xs",
4485
+ // 4px (0.25rem)
4486
+ md: "py-xs",
4487
+ // 4px (0.25rem) - default
4488
+ lg: "py-sm",
4489
+ // 8px (0.5rem)
4490
+ xl: "py-sm"
4491
+ // 8px (0.5rem)
4492
+ }
4493
+ },
4494
+ fontSize: {
4495
+ xs: "text-xs",
4496
+ // Maps to fontSize.xs[0]
4497
+ sm: "text-sm",
4498
+ // Maps to fontSize.sm[0]
4499
+ md: "text-sm",
4500
+ // Maps to fontSize.sm[0] - default
4501
+ lg: "text-sm",
4502
+ // Maps to fontSize.sm[0]
4503
+ xl: "text-base"
4504
+ // Maps to fontSize.base[0]
4505
+ },
4506
+ fontWeight: "font-semibold"
4507
+ // Semibold weight for labels
4508
+ },
4509
+ /**
4510
+ * Select separator tokens
4511
+ */
4512
+ separator: {
4513
+ margin: {
4514
+ horizontal: {
4515
+ xs: "-mx-xs",
4516
+ // -4px
4517
+ sm: "-mx-xs",
4518
+ // -4px
4519
+ md: "-mx-xs",
4520
+ // -4px - default
4521
+ lg: "-mx-sm",
4522
+ // -8px
4523
+ xl: "-mx-sm"
4524
+ // -8px
4525
+ },
4526
+ vertical: {
4527
+ xs: "my-xs",
4528
+ // 4px (0.25rem)
4529
+ sm: "my-xs",
4530
+ // 4px (0.25rem)
4531
+ md: "my-xs",
4532
+ // 4px (0.25rem) - default
4533
+ lg: "my-sm",
4534
+ // 8px (0.5rem)
4535
+ xl: "my-sm"
4536
+ // 8px (0.5rem)
4537
+ }
4538
+ },
4539
+ height: "h-px",
4540
+ // 1px height
4541
+ background: "bg-[hsl(var(--muted))]"
4542
+ // Background using CSS var
4543
+ },
4544
+ /**
4545
+ * Variant-based tokens
4546
+ * Border, background, and text colors for different variants
4547
+ * All use CSS variable references for theme support
4548
+ */
4549
+ variant: {
4550
+ primary: {
4551
+ border: "border-[hsl(var(--tm-primary))]",
4552
+ // Primary border color
4553
+ background: "bg-[hsl(var(--tm-primary))]",
4554
+ // Primary background
4555
+ text: "text-[hsl(var(--tm-primary-foreground))]",
4556
+ // Primary text color
4557
+ focus: "focus-visible:shadow-[var(--focus-ring-primary)]"
4558
+ // Primary focus ring
4559
+ },
4560
+ secondary: {
4561
+ border: "border-[hsl(var(--tm-secondary))]",
4562
+ // Secondary border color
4563
+ background: "bg-[hsl(var(--tm-secondary))]",
4564
+ // Secondary background
4565
+ text: "text-[hsl(var(--tm-secondary-foreground))]",
4566
+ // Secondary text color
4567
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
4568
+ // Default focus ring
4569
+ },
4570
+ outline: {
4571
+ border: "border-[hsl(var(--input))]",
4572
+ // Input border color
4573
+ background: "bg-transparent",
4574
+ // Transparent background
4575
+ text: "text-[hsl(var(--foreground))]",
4576
+ // Foreground text color
4577
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
4578
+ // Default focus ring
4579
+ },
4580
+ ghost: {
4581
+ border: "border-transparent",
4582
+ // Transparent border
4583
+ background: "bg-transparent",
4584
+ // Transparent background
4585
+ text: "text-[hsl(var(--foreground))]",
4586
+ // Foreground text color
4587
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
4588
+ // Default focus ring
4589
+ },
4590
+ destructive: {
4591
+ border: "border-[hsl(var(--destructive))]",
4592
+ // Destructive border color
4593
+ background: "bg-[hsl(var(--destructive))]",
4594
+ // Destructive background
4595
+ text: "text-[hsl(var(--destructive-foreground))]",
4596
+ // Destructive text color
4597
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
4598
+ // Default focus ring
4599
+ }
4600
+ },
4601
+ /**
4602
+ * State-based tokens
4603
+ * Border, background, and text colors for different states
4604
+ * All use CSS variable references for theme support
4605
+ */
4606
+ state: {
4607
+ default: {
4608
+ border: "border-[hsl(var(--input))]",
4609
+ // Default border color using CSS var
4610
+ background: "bg-transparent",
4611
+ // Default background
4612
+ text: "text-[hsl(var(--foreground))]"
4613
+ // Default text color using CSS var
4614
+ },
4615
+ disabled: {
4616
+ border: "border-[hsl(var(--input))]",
4617
+ // Disabled state border (same as default)
4618
+ background: "bg-transparent",
4619
+ // Disabled background (same as default)
4620
+ text: "text-[hsl(var(--foreground))] disabled:opacity-50",
4621
+ // Disabled text opacity
4622
+ cursor: "cursor-not-allowed"
4623
+ // Disabled cursor
4624
+ },
4625
+ open: {
4626
+ border: "border-[hsl(var(--ring))]",
4627
+ // Open state border
4628
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
4629
+ // Focus ring using CSS var
4630
+ },
4631
+ closed: {
4632
+ border: "border-[hsl(var(--input))]"
4633
+ // Closed state border
4634
+ }
4635
+ },
4636
+ /**
4637
+ * Width tokens
4638
+ */
4639
+ width: {
4640
+ auto: "w-auto",
4641
+ // Auto width
4642
+ full: "w-full",
4643
+ // Full width (100%)
4644
+ sm: "w-48",
4645
+ // 192px (12rem)
4646
+ md: "w-64",
4647
+ // 256px (16rem)
4648
+ lg: "w-80",
4649
+ // 320px (20rem)
4650
+ xl: "w-96"
4651
+ // 384px (24rem)
4652
+ },
4653
+ /**
4654
+ * Size-based token structure
4655
+ * Organized by size for easy access
4656
+ */
4657
+ size: {
4658
+ xs: {
4659
+ trigger: {
4660
+ height: "h-7",
4661
+ padding: {
4662
+ horizontal: "px-xs",
4663
+ vertical: "py-xs"
4664
+ },
4665
+ radius: "rounded-sm",
4666
+ fontSize: "text-xs"
4667
+ },
4668
+ item: {
4669
+ padding: {
4670
+ horizontal: "px-xs",
4671
+ vertical: "py-xs"
4672
+ },
4673
+ fontSize: "text-xs"
4674
+ },
4675
+ content: {
4676
+ padding: "p-xs",
4677
+ radius: "rounded-sm"
4678
+ }
4679
+ },
4680
+ sm: {
4681
+ trigger: {
4682
+ height: "h-8",
4683
+ padding: {
4684
+ horizontal: "px-sm",
4685
+ vertical: "py-xs"
4686
+ },
4687
+ radius: "rounded-md",
4688
+ fontSize: "text-sm"
4689
+ },
4690
+ item: {
4691
+ padding: {
4692
+ horizontal: "px-sm",
4693
+ vertical: "py-xs"
4694
+ },
4695
+ fontSize: "text-sm"
4696
+ },
4697
+ content: {
4698
+ padding: "p-sm",
4699
+ radius: "rounded-md"
4700
+ }
4701
+ },
4702
+ md: {
4703
+ trigger: {
4704
+ height: "h-9",
4705
+ padding: {
4706
+ horizontal: "px-sm",
4707
+ vertical: "py-xs"
4708
+ },
4709
+ radius: "rounded-md",
4710
+ fontSize: "text-base"
4711
+ },
4712
+ item: {
4713
+ padding: {
4714
+ horizontal: "px-sm",
4715
+ vertical: "py-xs"
4716
+ },
4717
+ fontSize: "text-sm"
4718
+ },
4719
+ content: {
4720
+ padding: "p-sm",
4721
+ radius: "rounded-md"
4722
+ }
4723
+ },
4724
+ lg: {
4725
+ trigger: {
4726
+ height: "h-10",
4727
+ padding: {
4728
+ horizontal: "px-md",
4729
+ vertical: "py-sm"
4730
+ },
4731
+ radius: "rounded-md",
4732
+ fontSize: "text-base"
4733
+ },
4734
+ item: {
4735
+ padding: {
4736
+ horizontal: "px-md",
4737
+ vertical: "py-sm"
4738
+ },
4739
+ fontSize: "text-sm"
4740
+ },
4741
+ content: {
4742
+ padding: "p-md",
4743
+ radius: "rounded-md"
4744
+ }
4745
+ },
4746
+ xl: {
4747
+ trigger: {
4748
+ height: "h-11",
4749
+ padding: {
4750
+ horizontal: "px-lg",
4751
+ vertical: "py-md"
4752
+ },
4753
+ radius: "rounded-lg",
4754
+ fontSize: "text-lg"
4755
+ },
4756
+ item: {
4757
+ padding: {
4758
+ horizontal: "px-lg",
4759
+ vertical: "py-sm"
4760
+ },
4761
+ fontSize: "text-base"
4762
+ },
4763
+ content: {
4764
+ padding: "p-lg",
4765
+ radius: "rounded-lg"
4766
+ }
4767
+ }
4768
+ }
4769
+ };
4770
+
4275
4771
  // src/tokens/motion/v2.ts
4276
4772
  var motionV2Durations = {
4277
4773
  fast: "150ms",
@@ -5590,4 +6086,4 @@ var tokenSystemSummary = {
5590
6086
  // src/tokens/theme.ts
5591
6087
  var UI_COLORS = tailwindThemeColors;
5592
6088
 
5593
- export { ALERT_TOKENS, BUTTON_TOKENS, CARD_TOKENS, CHECKBOX_TOKENS, DATA_TOKENS, DOMAIN_TOKENS, DROPDOWN_TOKENS, ICON_TOKENS, INPUT_TOKENS, MENU_TOKENS, MOTION_TOKENS, NAVIGATION_TOKENS, NOTIFICATION_TOKENS, OVERLAY_TOKENS, POPOVER_TOKENS, RADIO_TOKENS, SECTION_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 };
6089
+ export { ALERT_TOKENS, ARTIST_TOKENS, BUTTON_TOKENS, CARD_TOKENS, CHECKBOX_TOKENS, DATA_TOKENS, DOMAIN_TOKENS, DROPDOWN_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 };