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