@tenerife.music/ui 1.0.3 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (491) hide show
  1. package/README.md +407 -123
  2. package/dist/animation/index.d.ts +0 -1
  3. package/dist/animation/presets.d.ts +6 -9
  4. package/dist/animation/tas.d.ts +2 -58
  5. package/dist/animation/types.d.ts +9 -48
  6. package/dist/animation/useInView.d.ts +36 -0
  7. package/dist/animation/utils.d.ts +0 -1
  8. package/dist/components/SectionBuilder.d.ts +0 -1
  9. package/dist/components/SectionBuilder.presets.d.ts +0 -1
  10. package/dist/components/SectionBuilder.types.d.ts +0 -1
  11. package/dist/components/admin/Dashboard.d.ts +0 -1
  12. package/dist/components/admin/UserManagement.d.ts +0 -1
  13. package/dist/components/auth/LoginForm.d.ts +0 -1
  14. package/dist/components/auth/ProfileCard.d.ts +0 -1
  15. package/dist/components/auth/RegisterForm.d.ts +0 -1
  16. package/dist/components/cards/ArtistCard/ArtistCard.d.ts +22 -0
  17. package/dist/components/cards/ArtistCard/ArtistCard.types.d.ts +46 -0
  18. package/dist/components/cards/ArtistCard/ArtistCard.variants.d.ts +83 -0
  19. package/dist/components/cards/ArtistCard/index.d.ts +8 -0
  20. package/dist/components/cards/CardBase/CardBase.d.ts +45 -0
  21. package/dist/components/cards/CardBase/CardBase.types.d.ts +70 -0
  22. package/dist/components/cards/CardBase/CardBase.variants.d.ts +38 -0
  23. package/dist/components/cards/CardBase/index.d.ts +8 -0
  24. package/dist/components/cards/CategoryCard/CategoryCard.d.ts +18 -0
  25. package/dist/components/cards/CategoryCard/CategoryCard.types.d.ts +38 -0
  26. package/dist/components/cards/CategoryCard/CategoryCard.variants.d.ts +21 -0
  27. package/dist/components/cards/CategoryCard/index.d.ts +7 -0
  28. package/dist/components/cards/EventCard/EventCard.d.ts +19 -0
  29. package/dist/components/cards/{EventCard.d.ts → EventCard/EventCard.types.d.ts} +13 -4
  30. package/dist/components/cards/EventCard/EventCard.variants.d.ts +70 -0
  31. package/dist/components/cards/EventCard/index.d.ts +7 -0
  32. package/dist/components/cards/PromoCard/PromoCard.d.ts +20 -0
  33. package/dist/components/cards/PromoCard/PromoCard.types.d.ts +42 -0
  34. package/dist/components/cards/PromoCard/PromoCard.variants.d.ts +35 -0
  35. package/dist/components/cards/PromoCard/index.d.ts +7 -0
  36. package/dist/components/cards/TicketCard/TicketCard.d.ts +19 -0
  37. package/dist/components/cards/TicketCard/TicketCard.types.d.ts +55 -0
  38. package/dist/components/cards/TicketCard/TicketCard.variants.d.ts +71 -0
  39. package/dist/components/cards/TicketCard/index.d.ts +7 -0
  40. package/dist/components/cards/VenueCard/VenueCard.d.ts +21 -0
  41. package/dist/components/cards/{VenueCard.d.ts → VenueCard/VenueCard.types.d.ts} +15 -7
  42. package/dist/components/cards/VenueCard/VenueCard.variants.d.ts +60 -0
  43. package/dist/components/cards/VenueCard/index.d.ts +8 -0
  44. package/dist/components/cards/index.d.ts +19 -0
  45. package/dist/components/checkbox/Checkbox.d.ts +22 -0
  46. package/dist/components/checkbox/Checkbox.types.d.ts +68 -0
  47. package/dist/components/checkbox/checkbox-variants.d.ts +13 -0
  48. package/dist/components/checkbox/index.d.ts +3 -0
  49. package/dist/components/containers/Card.d.ts +75 -0
  50. package/dist/components/containers/Section.d.ts +31 -0
  51. package/dist/components/containers/Surface.d.ts +28 -0
  52. package/dist/components/containers/index.d.ts +9 -0
  53. package/dist/components/controls/LanguageSelector.d.ts +0 -1
  54. package/dist/components/data/List.d.ts +0 -1
  55. package/dist/components/data/Table.d.ts +0 -1
  56. package/dist/components/data/Timeline.d.ts +0 -1
  57. package/dist/components/data/data-list/DataList.d.ts +29 -0
  58. package/dist/components/data/data-list/DataList.types.d.ts +43 -0
  59. package/dist/components/data/data-list/DataListItem.d.ts +20 -0
  60. package/dist/components/data/data-list/DataListLabel.d.ts +19 -0
  61. package/dist/components/data/data-list/DataListValue.d.ts +18 -0
  62. package/dist/components/data/data-list/index.d.ts +10 -0
  63. package/dist/components/data/empty-state/EmptyState.d.ts +31 -0
  64. package/dist/components/data/empty-state/EmptyState.types.d.ts +51 -0
  65. package/dist/components/data/empty-state/EmptyStateAction.d.ts +17 -0
  66. package/dist/components/data/empty-state/EmptyStateDescription.d.ts +17 -0
  67. package/dist/components/data/empty-state/EmptyStateIcon.d.ts +22 -0
  68. package/dist/components/data/empty-state/EmptyStateTitle.d.ts +17 -0
  69. package/dist/components/data/empty-state/index.d.ts +10 -0
  70. package/dist/components/data/index.d.ts +9 -0
  71. package/dist/components/data/skeleton/Skeleton.d.ts +24 -0
  72. package/dist/components/data/skeleton/Skeleton.types.d.ts +12 -0
  73. package/dist/components/data/skeleton/index.d.ts +6 -0
  74. package/dist/components/data/table/Table.d.ts +33 -0
  75. package/dist/components/data/table/Table.types.d.ts +264 -0
  76. package/dist/components/data/table/TableBody.d.ts +13 -0
  77. package/dist/components/data/table/TableCell.d.ts +13 -0
  78. package/dist/components/data/table/TableEmpty.d.ts +13 -0
  79. package/dist/components/data/table/TableExpandableContent.d.ts +14 -0
  80. package/dist/components/data/table/TableHead.d.ts +13 -0
  81. package/dist/components/data/table/TableHeader.d.ts +13 -0
  82. package/dist/components/data/table/TableLoadingState.d.ts +13 -0
  83. package/dist/components/data/table/TableRow.d.ts +13 -0
  84. package/dist/components/data/table/TableSortIcon.d.ts +14 -0
  85. package/dist/components/data/table/index.d.ts +17 -0
  86. package/dist/components/drawer/Drawer.d.ts +41 -0
  87. package/dist/components/drawer/Drawer.types.d.ts +75 -0
  88. package/dist/components/drawer/drawer-variants.d.ts +17 -0
  89. package/dist/components/drawer/index.d.ts +8 -0
  90. package/dist/components/dropdown/Dropdown.d.ts +38 -0
  91. package/dist/components/dropdown/Dropdown.types.d.ts +82 -0
  92. package/dist/components/dropdown/dropdown-variants.d.ts +33 -0
  93. package/dist/components/feedback/ConsentBanner.d.ts +0 -1
  94. package/dist/components/feedback/Progress.d.ts +0 -1
  95. package/dist/components/feedback/Skeleton.d.ts +0 -1
  96. package/dist/components/filters/DateRangePicker.d.ts +0 -1
  97. package/dist/components/filters/FilterBar.d.ts +0 -1
  98. package/dist/components/filters/FilterSelect.d.ts +0 -1
  99. package/dist/components/filters/PriceRangeSlider.d.ts +0 -1
  100. package/dist/components/filters/SearchFilters.d.ts +0 -1
  101. package/dist/components/filters/SearchInput.d.ts +1 -2
  102. package/dist/components/filters/types.d.ts +0 -1
  103. package/dist/components/icon/Icon.d.ts +32 -0
  104. package/dist/components/icon/Icon.types.d.ts +7 -0
  105. package/dist/components/icon/index.d.ts +4 -0
  106. package/dist/components/icons/TrendingIcon.d.ts +0 -1
  107. package/dist/components/image/Image.d.ts +0 -1
  108. package/dist/components/input/Input.d.ts +20 -0
  109. package/dist/components/input/Input.types.d.ts +38 -0
  110. package/dist/components/input/index.d.ts +3 -0
  111. package/dist/components/input/input-variants.d.ts +14 -0
  112. package/dist/components/input/legacy/input.d.ts +11 -0
  113. package/dist/components/layout/Box.d.ts +40 -11
  114. package/dist/components/layout/Column.d.ts +6 -0
  115. package/dist/components/layout/Container.d.ts +1 -2
  116. package/dist/components/layout/Flex.d.ts +29 -14
  117. package/dist/components/layout/Footer.d.ts +0 -1
  118. package/dist/components/layout/Grid.d.ts +34 -26
  119. package/dist/components/layout/ModeHero.d.ts +0 -1
  120. package/dist/components/layout/Navbar.d.ts +0 -1
  121. package/dist/components/layout/Row.d.ts +28 -0
  122. package/dist/components/layout/Section.d.ts +0 -1
  123. package/dist/components/layout/Stack.d.ts +24 -15
  124. package/dist/components/layout/Surface.d.ts +21 -0
  125. package/dist/components/layout/index.d.ts +10 -5
  126. package/dist/components/layout/layout.types.d.ts +16 -1
  127. package/dist/components/menus/DropdownMenu.d.ts +0 -1
  128. package/dist/components/menus/NavigationMenu.d.ts +0 -1
  129. package/dist/components/menus/Tabs.d.ts +0 -1
  130. package/dist/components/menus/context-menu/ContextMenuContent.d.ts +22 -0
  131. package/dist/components/menus/context-menu/ContextMenuGroup.d.ts +14 -0
  132. package/dist/components/menus/context-menu/ContextMenuItem.d.ts +14 -0
  133. package/dist/components/menus/context-menu/ContextMenuLabel.d.ts +14 -0
  134. package/dist/components/menus/context-menu/ContextMenuRoot.d.ts +47 -0
  135. package/dist/components/menus/context-menu/ContextMenuSeparator.d.ts +14 -0
  136. package/dist/components/menus/context-menu/ContextMenuTrigger.d.ts +16 -0
  137. package/dist/components/menus/context-menu/index.d.ts +12 -0
  138. package/dist/components/menus/dropdown/DropdownMenuCheckItem.d.ts +18 -0
  139. package/dist/components/menus/dropdown/DropdownMenuContent.d.ts +15 -0
  140. package/dist/components/menus/dropdown/DropdownMenuGroup.d.ts +12 -0
  141. package/dist/components/menus/dropdown/DropdownMenuItem.d.ts +30 -0
  142. package/dist/components/menus/dropdown/DropdownMenuLabel.d.ts +17 -0
  143. package/dist/components/menus/dropdown/DropdownMenuRadioGroup.d.ts +24 -0
  144. package/dist/components/menus/dropdown/DropdownMenuRadioItem.d.ts +18 -0
  145. package/dist/components/menus/dropdown/DropdownMenuRoot.d.ts +33 -0
  146. package/dist/components/menus/dropdown/DropdownMenuSeparator.d.ts +13 -0
  147. package/dist/components/menus/dropdown/DropdownMenuSub.d.ts +10 -0
  148. package/dist/components/menus/dropdown/DropdownMenuSubContent.d.ts +13 -0
  149. package/dist/components/menus/dropdown/DropdownMenuSubTrigger.d.ts +13 -0
  150. package/dist/components/menus/dropdown/DropdownMenuTrigger.d.ts +14 -0
  151. package/dist/components/menus/dropdown/index.d.ts +18 -0
  152. package/dist/components/menus/hover-card/HoverCardContent.d.ts +14 -0
  153. package/dist/components/menus/hover-card/HoverCardRoot.d.ts +20 -0
  154. package/dist/components/menus/hover-card/HoverCardTrigger.d.ts +13 -0
  155. package/dist/components/menus/hover-card/index.d.ts +8 -0
  156. package/dist/components/menus/index.d.ts +9 -0
  157. package/dist/components/menus/popover/PopoverArrow.d.ts +17 -0
  158. package/dist/components/menus/popover/PopoverContent.d.ts +24 -0
  159. package/dist/components/menus/popover/PopoverRoot.d.ts +43 -0
  160. package/dist/components/menus/popover/PopoverTrigger.d.ts +17 -0
  161. package/dist/components/menus/popover/index.d.ts +9 -0
  162. package/dist/components/modal/Modal.d.ts +70 -0
  163. package/dist/components/modal/modal-variants.d.ts +26 -0
  164. package/dist/components/modals/ConfirmDialog.d.ts +3 -3
  165. package/dist/components/modals/CustomDialog.d.ts +0 -1
  166. package/dist/components/modals/Modal.d.ts +0 -1
  167. package/dist/components/modals/ModalProvider.d.ts +0 -1
  168. package/dist/components/modals/SimpleModal.d.ts +0 -1
  169. package/dist/components/navigation/Breadcrumbs.d.ts +0 -1
  170. package/dist/components/navigation/Pagination.d.ts +0 -1
  171. package/dist/components/navigation/breadcrumbs/Breadcrumbs.d.ts +52 -0
  172. package/dist/components/navigation/breadcrumbs/index.d.ts +5 -0
  173. package/dist/components/navigation/index.d.ts +10 -0
  174. package/dist/components/navigation/pagination/Pagination.d.ts +60 -0
  175. package/dist/components/navigation/pagination/index.d.ts +5 -0
  176. package/dist/components/navigation/segmented-control/SegmentedControl.d.ts +43 -0
  177. package/dist/components/navigation/segmented-control/index.d.ts +5 -0
  178. package/dist/components/navigation/stepper/Stepper.d.ts +129 -0
  179. package/dist/components/navigation/stepper/index.d.ts +5 -0
  180. package/dist/components/navigation/tabs/Tabs.d.ts +73 -0
  181. package/dist/components/navigation/tabs/index.d.ts +5 -0
  182. package/dist/components/notifications/NotificationCenter.DismissAll.d.ts +21 -0
  183. package/dist/components/notifications/NotificationCenter.GroupHeader.d.ts +23 -0
  184. package/dist/components/notifications/NotificationCenter.Item.d.ts +24 -0
  185. package/dist/components/notifications/NotificationCenter.List.d.ts +22 -0
  186. package/dist/components/notifications/NotificationCenter.Panel.d.ts +32 -0
  187. package/dist/components/notifications/NotificationCenter.Provider.d.ts +31 -0
  188. package/dist/components/notifications/NotificationCenter.Trigger.d.ts +15 -0
  189. package/dist/components/notifications/NotificationCenter.d.ts +27 -0
  190. package/dist/components/notifications/NotificationCenter.types.d.ts +89 -0
  191. package/dist/components/notifications/index.d.ts +23 -0
  192. package/dist/components/notifications/useNotificationCenter.d.ts +47 -0
  193. package/dist/components/overlays/Backdrop.d.ts +24 -0
  194. package/dist/components/overlays/Dialog.d.ts +66 -0
  195. package/dist/components/overlays/Modal.d.ts +60 -0
  196. package/dist/components/overlays/OverlayPortal.d.ts +0 -1
  197. package/dist/components/overlays/Popover.d.ts +2 -3
  198. package/dist/components/overlays/Portal.d.ts +29 -0
  199. package/dist/components/overlays/Toast.d.ts +36 -0
  200. package/dist/components/overlays/ToastProvider.d.ts +58 -0
  201. package/dist/components/overlays/ToastViewport.d.ts +27 -0
  202. package/dist/components/overlays/Tooltip.d.ts +2 -3
  203. package/dist/components/overlays/index.d.ts +13 -0
  204. package/dist/components/overlays/utils/FocusLock.d.ts +30 -0
  205. package/dist/components/overlays/utils/ScrollLock.d.ts +11 -0
  206. package/dist/components/overlays/utils/positioning.d.ts +68 -0
  207. package/dist/components/primitives/Badge.d.ts +1 -2
  208. package/dist/components/primitives/Button.d.ts +0 -1
  209. package/dist/components/primitives/Card.d.ts +0 -1
  210. package/dist/components/primitives/Divider.d.ts +0 -1
  211. package/dist/components/primitives/Input.d.ts +2 -3
  212. package/dist/components/primitives/Label.d.ts +0 -1
  213. package/dist/components/primitives/Link.d.ts +1 -2
  214. package/dist/components/primitives/ThemeSwitch.d.ts +3 -3
  215. package/dist/components/radio/Radio.d.ts +23 -0
  216. package/dist/components/radio/Radio.types.d.ts +63 -0
  217. package/dist/components/radio/RadioGroup.d.ts +20 -0
  218. package/dist/components/radio/RadioGroup.types.d.ts +61 -0
  219. package/dist/components/radio/index.d.ts +5 -0
  220. package/dist/components/radio/radio-variants.d.ts +13 -0
  221. package/dist/components/search/SearchBar.d.ts +0 -1
  222. package/dist/components/sections/ArticlesSection.d.ts +0 -1
  223. package/dist/components/sections/CTASection.d.ts +0 -1
  224. package/dist/components/sections/FeatureSection.d.ts +0 -1
  225. package/dist/components/sections/HeroSection.d.ts +0 -1
  226. package/dist/components/sections/TrendingSection.d.ts +0 -1
  227. package/dist/components/select/Select.d.ts +38 -0
  228. package/dist/components/select/Select.types.d.ts +107 -0
  229. package/dist/components/select/index.d.ts +5 -0
  230. package/dist/components/select/legacy/select.d.ts +11 -0
  231. package/dist/components/select/select-variants.d.ts +32 -0
  232. package/dist/components/skeletons/EventCardSkeleton.d.ts +0 -1
  233. package/dist/components/skeletons/VenueCardSkeleton.d.ts +0 -1
  234. package/dist/components/switch/Switch.d.ts +24 -0
  235. package/dist/components/switch/Switch.types.d.ts +53 -0
  236. package/dist/components/switch/index.d.ts +3 -0
  237. package/dist/components/switch/switch-variants.d.ts +34 -0
  238. package/dist/components/textarea/Textarea.d.ts +21 -0
  239. package/dist/components/textarea/Textarea.types.d.ts +40 -0
  240. package/dist/components/textarea/index.d.ts +3 -0
  241. package/dist/components/textarea/legacy/textarea.d.ts +11 -0
  242. package/dist/components/textarea/textarea-variants.d.ts +14 -0
  243. package/dist/components/toasts/Toast.d.ts +1 -2
  244. package/dist/components/toasts/ToastProvider.d.ts +0 -1
  245. package/dist/components/ui/alert.d.ts +9 -0
  246. package/dist/components/ui/body.d.ts +12 -0
  247. package/dist/components/ui/button.d.ts +2 -3
  248. package/dist/components/ui/caption.d.ts +11 -0
  249. package/dist/components/ui/card.d.ts +0 -1
  250. package/dist/components/ui/code.d.ts +11 -0
  251. package/dist/components/ui/dialog.d.ts +0 -1
  252. package/dist/components/ui/display.d.ts +12 -0
  253. package/dist/components/ui/field.d.ts +45 -0
  254. package/dist/components/ui/heading.d.ts +12 -0
  255. package/dist/components/ui/label.d.ts +9 -3
  256. package/dist/components/ui/lead.d.ts +11 -0
  257. package/dist/components/ui/text.d.ts +18 -0
  258. package/dist/components/ui/toast.d.ts +0 -1
  259. package/dist/components/ui/toaster.d.ts +0 -1
  260. package/dist/components/ui/tooltip.d.ts +0 -1
  261. package/dist/hooks/use-toast.d.ts +0 -1
  262. package/dist/hooks/useDebounce.d.ts +0 -1
  263. package/dist/hooks/useModal.d.ts +0 -1
  264. package/dist/hooks/useToast.d.ts +0 -1
  265. package/dist/icons/IconArrowRight.d.ts +6 -0
  266. package/dist/icons/IconCalendar.d.ts +6 -0
  267. package/dist/icons/IconCheck.d.ts +6 -0
  268. package/dist/icons/IconChevronDown.d.ts +6 -0
  269. package/dist/icons/IconChevronRight.d.ts +6 -0
  270. package/dist/icons/IconClose.d.ts +6 -0
  271. package/dist/icons/IconError.d.ts +6 -0
  272. package/dist/icons/IconInfo.d.ts +6 -0
  273. package/dist/icons/IconLocation.d.ts +6 -0
  274. package/dist/icons/IconMenu.d.ts +6 -0
  275. package/dist/icons/IconSearch.d.ts +6 -0
  276. package/dist/icons/IconSuccess.d.ts +6 -0
  277. package/dist/icons/IconWarning.d.ts +6 -0
  278. package/dist/icons/icon.types.d.ts +25 -0
  279. package/dist/icons/index.d.ts +34 -0
  280. package/dist/index.cjs +1 -1
  281. package/dist/index.d.ts +37 -78
  282. package/dist/index.mjs +7675 -5926
  283. package/dist/lib/a11y.d.ts +0 -1
  284. package/dist/lib/responsive-props.d.ts +0 -1
  285. package/dist/lib/utils.d.ts +0 -1
  286. package/dist/{motion-CuHacXY1.js → motion-CzQhSEqk.js} +122 -106
  287. package/dist/motion-DJx1TbXJ.cjs +2 -0
  288. package/dist/preset.cjs +1 -1
  289. package/dist/preset.d.ts +0 -1
  290. package/dist/preset.mjs +172 -53
  291. package/dist/styles.cjs +2 -0
  292. package/dist/styles.css +1 -1
  293. package/dist/styles.d.ts +0 -0
  294. package/dist/styles.mjs +1 -0
  295. package/dist/theme/ThemeProvider.d.ts +1 -2
  296. package/dist/theme/applyMode.d.ts +0 -1
  297. package/dist/theme/colors.d.ts +6 -71
  298. package/dist/theme/index.cjs +1 -1
  299. package/dist/theme/index.d.ts +1 -2
  300. package/dist/theme/index.mjs +1352 -224
  301. package/dist/theme/loader.d.ts +0 -1
  302. package/dist/theme/motion/gestures.d.ts +76 -0
  303. package/dist/theme/motion/useReducedMotion.d.ts +11 -0
  304. package/dist/theme/motion.d.ts +0 -1
  305. package/dist/theme/registry.d.ts +0 -1
  306. package/dist/theme/schema.d.ts +0 -1
  307. package/dist/theme/spacing.d.ts +0 -1
  308. package/dist/theme/typography.d.ts +0 -1
  309. package/dist/themes/brand.d.ts +0 -1
  310. package/dist/themes/brand_engine.d.ts +7 -1
  311. package/dist/themes/dark.d.ts +0 -1
  312. package/dist/themes/default.d.ts +0 -1
  313. package/dist/themes/index.d.ts +0 -1
  314. package/dist/themes/minimal.d.ts +0 -1
  315. package/dist/themes/neon.d.ts +0 -1
  316. package/dist/themes/types.d.ts +0 -1
  317. package/dist/tokens/colors.d.ts +14 -20
  318. package/dist/tokens/components/alert.d.ts +74 -0
  319. package/dist/tokens/components/button.d.ts +130 -0
  320. package/dist/tokens/components/card.d.ts +91 -0
  321. package/dist/tokens/components/checkbox.d.ts +161 -0
  322. package/dist/tokens/components/data.d.ts +227 -0
  323. package/dist/tokens/components/domain.d.ts +379 -0
  324. package/dist/tokens/components/dropdown.d.ts +146 -0
  325. package/dist/tokens/components/icon.d.ts +57 -0
  326. package/dist/tokens/components/index.d.ts +31 -0
  327. package/dist/tokens/components/input.d.ts +284 -0
  328. package/dist/tokens/components/menu.d.ts +114 -0
  329. package/dist/tokens/components/motion.d.ts +103 -0
  330. package/dist/tokens/components/navigation.d.ts +181 -0
  331. package/dist/tokens/components/notifications.d.ts +159 -0
  332. package/dist/tokens/components/overlay.d.ts +227 -0
  333. package/dist/tokens/components/popover.d.ts +84 -0
  334. package/dist/tokens/components/radio.d.ts +149 -0
  335. package/dist/tokens/components/section.d.ts +41 -0
  336. package/dist/tokens/components/surface.d.ts +94 -0
  337. package/dist/tokens/components/switch.d.ts +208 -0
  338. package/dist/tokens/components/text.d.ts +68 -0
  339. package/dist/tokens/components/toast.d.ts +146 -0
  340. package/dist/tokens/components/tooltip.d.ts +52 -0
  341. package/dist/tokens/css-variables.d.ts +0 -20
  342. package/dist/tokens/index.cjs +3 -3
  343. package/dist/tokens/index.d.ts +2 -1
  344. package/dist/tokens/index.mjs +3640 -821
  345. package/dist/tokens/motion/v2.d.ts +342 -0
  346. package/dist/tokens/motion.d.ts +55 -5
  347. package/dist/tokens/opacity.d.ts +22 -0
  348. package/dist/tokens/radius.d.ts +22 -2
  349. package/dist/tokens/shadows.d.ts +64 -6
  350. package/dist/tokens/spacing.d.ts +47 -2
  351. package/dist/tokens/theme.d.ts +119 -0
  352. package/dist/tokens/typography.d.ts +141 -24
  353. package/dist/typography-C-Nb4y0o.cjs +2 -0
  354. package/dist/typography-DHym9KAP.js +1196 -0
  355. package/package.json +31 -22
  356. package/dist/ThemeProvider-CaUX_Jam.cjs +0 -2
  357. package/dist/ThemeProvider-ltuW-773.js +0 -1227
  358. package/dist/animation/index.d.ts.map +0 -1
  359. package/dist/animation/presets.d.ts.map +0 -1
  360. package/dist/animation/tas.d.ts.map +0 -1
  361. package/dist/animation/types.d.ts.map +0 -1
  362. package/dist/animation/utils.d.ts.map +0 -1
  363. package/dist/components/SectionBuilder.d.ts.map +0 -1
  364. package/dist/components/SectionBuilder.presets.d.ts.map +0 -1
  365. package/dist/components/SectionBuilder.types.d.ts.map +0 -1
  366. package/dist/components/admin/Dashboard.d.ts.map +0 -1
  367. package/dist/components/admin/UserManagement.d.ts.map +0 -1
  368. package/dist/components/auth/LoginForm.d.ts.map +0 -1
  369. package/dist/components/auth/ProfileCard.d.ts.map +0 -1
  370. package/dist/components/auth/RegisterForm.d.ts.map +0 -1
  371. package/dist/components/cards/EventCard.d.ts.map +0 -1
  372. package/dist/components/cards/VenueCard.d.ts.map +0 -1
  373. package/dist/components/controls/LanguageSelector.d.ts.map +0 -1
  374. package/dist/components/data/List.d.ts.map +0 -1
  375. package/dist/components/data/Table.d.ts.map +0 -1
  376. package/dist/components/data/Timeline.d.ts.map +0 -1
  377. package/dist/components/feedback/Alert.d.ts +0 -10
  378. package/dist/components/feedback/Alert.d.ts.map +0 -1
  379. package/dist/components/feedback/ConsentBanner.d.ts.map +0 -1
  380. package/dist/components/feedback/Progress.d.ts.map +0 -1
  381. package/dist/components/feedback/Skeleton.d.ts.map +0 -1
  382. package/dist/components/filters/DateRangePicker.d.ts.map +0 -1
  383. package/dist/components/filters/FilterBar.d.ts.map +0 -1
  384. package/dist/components/filters/FilterSelect.d.ts.map +0 -1
  385. package/dist/components/filters/PriceRangeSlider.d.ts.map +0 -1
  386. package/dist/components/filters/SearchFilters.d.ts.map +0 -1
  387. package/dist/components/filters/SearchInput.d.ts.map +0 -1
  388. package/dist/components/filters/types.d.ts.map +0 -1
  389. package/dist/components/forms/FormInput.d.ts +0 -12
  390. package/dist/components/forms/FormInput.d.ts.map +0 -1
  391. package/dist/components/forms/FormSelect.d.ts +0 -18
  392. package/dist/components/forms/FormSelect.d.ts.map +0 -1
  393. package/dist/components/forms/FormTextarea.d.ts +0 -11
  394. package/dist/components/forms/FormTextarea.d.ts.map +0 -1
  395. package/dist/components/icons/TrendingIcon.d.ts.map +0 -1
  396. package/dist/components/image/Image.d.ts.map +0 -1
  397. package/dist/components/layout/Box.d.ts.map +0 -1
  398. package/dist/components/layout/Container.d.ts.map +0 -1
  399. package/dist/components/layout/Flex.d.ts.map +0 -1
  400. package/dist/components/layout/Footer.d.ts.map +0 -1
  401. package/dist/components/layout/Grid.d.ts.map +0 -1
  402. package/dist/components/layout/ModeHero.d.ts.map +0 -1
  403. package/dist/components/layout/Navbar.d.ts.map +0 -1
  404. package/dist/components/layout/Section.d.ts.map +0 -1
  405. package/dist/components/layout/Stack.d.ts.map +0 -1
  406. package/dist/components/layout/index.d.ts.map +0 -1
  407. package/dist/components/layout/layout.types.d.ts.map +0 -1
  408. package/dist/components/menus/DropdownMenu.d.ts.map +0 -1
  409. package/dist/components/menus/NavigationMenu.d.ts.map +0 -1
  410. package/dist/components/menus/Tabs.d.ts.map +0 -1
  411. package/dist/components/modals/ConfirmDialog.d.ts.map +0 -1
  412. package/dist/components/modals/CustomDialog.d.ts.map +0 -1
  413. package/dist/components/modals/Modal.d.ts.map +0 -1
  414. package/dist/components/modals/ModalProvider.d.ts.map +0 -1
  415. package/dist/components/modals/SimpleModal.d.ts.map +0 -1
  416. package/dist/components/navigation/Breadcrumbs.d.ts.map +0 -1
  417. package/dist/components/navigation/Pagination.d.ts.map +0 -1
  418. package/dist/components/overlays/OverlayPortal.d.ts.map +0 -1
  419. package/dist/components/overlays/Popover.d.ts.map +0 -1
  420. package/dist/components/overlays/Tooltip.d.ts.map +0 -1
  421. package/dist/components/primitives/Badge.d.ts.map +0 -1
  422. package/dist/components/primitives/Button.d.ts.map +0 -1
  423. package/dist/components/primitives/Card.d.ts.map +0 -1
  424. package/dist/components/primitives/Divider.d.ts.map +0 -1
  425. package/dist/components/primitives/Input.d.ts.map +0 -1
  426. package/dist/components/primitives/Label.d.ts.map +0 -1
  427. package/dist/components/primitives/Link.d.ts.map +0 -1
  428. package/dist/components/primitives/ThemeSwitch.d.ts.map +0 -1
  429. package/dist/components/primitives/Typography.d.ts +0 -21
  430. package/dist/components/primitives/Typography.d.ts.map +0 -1
  431. package/dist/components/search/SearchBar.d.ts.map +0 -1
  432. package/dist/components/sections/ArticlesSection.d.ts.map +0 -1
  433. package/dist/components/sections/CTASection.d.ts.map +0 -1
  434. package/dist/components/sections/FeatureSection.d.ts.map +0 -1
  435. package/dist/components/sections/HeroSection.d.ts.map +0 -1
  436. package/dist/components/sections/TrendingSection.d.ts.map +0 -1
  437. package/dist/components/skeletons/EventCardSkeleton.d.ts.map +0 -1
  438. package/dist/components/skeletons/VenueCardSkeleton.d.ts.map +0 -1
  439. package/dist/components/toasts/Toast.d.ts.map +0 -1
  440. package/dist/components/toasts/ToastProvider.d.ts.map +0 -1
  441. package/dist/components/ui/button.d.ts.map +0 -1
  442. package/dist/components/ui/card.d.ts.map +0 -1
  443. package/dist/components/ui/dialog.d.ts.map +0 -1
  444. package/dist/components/ui/input.d.ts +0 -4
  445. package/dist/components/ui/input.d.ts.map +0 -1
  446. package/dist/components/ui/label.d.ts.map +0 -1
  447. package/dist/components/ui/toast.d.ts.map +0 -1
  448. package/dist/components/ui/toaster.d.ts.map +0 -1
  449. package/dist/components/ui/tooltip.d.ts.map +0 -1
  450. package/dist/hooks/use-toast.d.ts.map +0 -1
  451. package/dist/hooks/useDebounce.d.ts.map +0 -1
  452. package/dist/hooks/useModal.d.ts.map +0 -1
  453. package/dist/hooks/useToast.d.ts.map +0 -1
  454. package/dist/index.d.ts.map +0 -1
  455. package/dist/lib/a11y.d.ts.map +0 -1
  456. package/dist/lib/responsive-props.d.ts.map +0 -1
  457. package/dist/lib/utils.d.ts.map +0 -1
  458. package/dist/motion-4SRNkZlz.cjs +0 -2
  459. package/dist/preset.d.ts.map +0 -1
  460. package/dist/radius-CAu4qr9R.js +0 -185
  461. package/dist/radius-Cz6tayZG.cjs +0 -2
  462. package/dist/test/animation-utils.d.ts +0 -60
  463. package/dist/test/animation-utils.d.ts.map +0 -1
  464. package/dist/test/setup.d.ts +0 -1
  465. package/dist/test/setup.d.ts.map +0 -1
  466. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  467. package/dist/theme/applyMode.d.ts.map +0 -1
  468. package/dist/theme/colors.d.ts.map +0 -1
  469. package/dist/theme/index.d.ts.map +0 -1
  470. package/dist/theme/loader.d.ts.map +0 -1
  471. package/dist/theme/motion.d.ts.map +0 -1
  472. package/dist/theme/registry.d.ts.map +0 -1
  473. package/dist/theme/schema.d.ts.map +0 -1
  474. package/dist/theme/spacing.d.ts.map +0 -1
  475. package/dist/theme/typography.d.ts.map +0 -1
  476. package/dist/themes/brand.d.ts.map +0 -1
  477. package/dist/themes/brand_engine.d.ts.map +0 -1
  478. package/dist/themes/dark.d.ts.map +0 -1
  479. package/dist/themes/default.d.ts.map +0 -1
  480. package/dist/themes/index.d.ts.map +0 -1
  481. package/dist/themes/minimal.d.ts.map +0 -1
  482. package/dist/themes/neon.d.ts.map +0 -1
  483. package/dist/themes/types.d.ts.map +0 -1
  484. package/dist/tokens/colors.d.ts.map +0 -1
  485. package/dist/tokens/css-variables.d.ts.map +0 -1
  486. package/dist/tokens/index.d.ts.map +0 -1
  487. package/dist/tokens/motion.d.ts.map +0 -1
  488. package/dist/tokens/radius.d.ts.map +0 -1
  489. package/dist/tokens/shadows.d.ts.map +0 -1
  490. package/dist/tokens/spacing.d.ts.map +0 -1
  491. package/dist/tokens/typography.d.ts.map +0 -1
@@ -1,852 +1,3671 @@
1
1
  "use client";
2
- import { m as x, i as h } from "../motion-CuHacXY1.js";
3
- import { a as U, n as E, b as L, h as N, e as A, g as B, l as D, p as $, r as G, s as q, d as J, f as K, c as P, o as Q, j as X, t as Y, k as Z } from "../motion-CuHacXY1.js";
4
- import { r as d } from "../radius-CAu4qr9R.js";
5
- import { b as ee, c as te, t as le } from "../radius-CAu4qr9R.js";
6
- const i = {
7
- none: "none",
8
- xs: "0 1px 2px 0 rgb(0 0 0 / 0.05)",
9
- sm: "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",
10
- md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
11
- lg: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",
12
- xl: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)",
13
- "2xl": "0 25px 50px -12px rgb(0 0 0 / 0.25)"
14
- }, g = {
15
- xs: "0 1px 2px 0 hsl(var(--primary-500) / 0.15)",
16
- sm: "0 2px 4px 0 hsl(var(--primary-500) / 0.2)",
17
- md: "0 4px 8px 0 hsl(var(--primary-500) / 0.3)",
18
- lg: "0 8px 16px 0 hsl(var(--primary-500) / 0.4)",
19
- xl: "0 12px 24px 0 hsl(var(--primary-500) / 0.5)",
20
- "2xl": "0 16px 32px 0 hsl(var(--primary-500) / 0.6)"
21
- }, c = {
22
- xs: "0 1px 2px 0 hsl(var(--accent-500) / 0.15)",
23
- sm: "0 2px 4px 0 hsl(var(--accent-500) / 0.2)",
24
- md: "0 4px 8px 0 hsl(var(--accent-500) / 0.3)",
25
- lg: "0 8px 16px 0 hsl(var(--accent-500) / 0.4)",
26
- xl: "0 12px 24px 0 hsl(var(--accent-500) / 0.5)",
27
- "2xl": "0 16px 32px 0 hsl(var(--accent-500) / 0.6)"
28
- }, m = {
29
- // Primary glow effects
30
- "glow-primary": "0 0 20px 0 hsl(var(--primary-500) / 0.5), 0 0 40px 0 hsl(var(--primary-500) / 0.3)",
31
- "glow-primary-subtle": "0 0 8px 0 hsl(var(--primary-500) / 0.3)",
32
- "glow-primary-medium": "0 0 16px 0 hsl(var(--primary-500) / 0.5)",
33
- "glow-primary-strong": "0 0 24px 0 hsl(var(--primary-500) / 0.6)",
34
- // Accent glow effects
35
- "glow-accent": "0 0 20px 0 hsl(var(--accent-500) / 0.5), 0 0 40px 0 hsl(var(--accent-500) / 0.3)",
36
- "glow-accent-subtle": "0 0 8px 0 hsl(var(--accent-500) / 0.3)",
37
- "glow-accent-medium": "0 0 16px 0 hsl(var(--accent-500) / 0.5)",
38
- "glow-accent-strong": "0 0 24px 0 hsl(var(--accent-500) / 0.6)"
39
- }, p = {
40
- default: "0 0 0 3px hsl(var(--ring) / 0.5)",
41
- primary: "0 0 0 3px hsl(var(--primary-500) / 0.3)",
42
- accent: "0 0 0 3px hsl(var(--accent-500) / 0.3)",
43
- "focus-primary": "0 0 0 3px hsl(var(--primary-500) / 0.3)",
44
- "focus-accent": "0 0 0 3px hsl(var(--accent-500) / 0.3)"
2
+ import { m as r, i as t, a as g } from "../motion-CzQhSEqk.js";
3
+ import { b as U, o as B, c as F, g as G, h as q, j as X, k as Y, n as $, p as J, r as Q, s as Z, e as ee, q as de, d as re, t as te, f as oe, l as ae } from "../motion-CzQhSEqk.js";
4
+ import { A as e, r as o, x as a, C as s, I as i } from "../typography-DHym9KAP.js";
5
+ import { u as ie, l as ne, n as le, y as me, p as ue, w as ge, D as ce, E as he, K as pe, F as be, v as fe, B as xe, H as ve, G as we, m as ye, k as ke, e as Se, f as ze, h as Oe, i as Te, j as Ce, a as Ne, g as Ee, q as Ie, s as Re, o as Ve, z as Ke, t as _e, b as We, c as Le, d as Me, J as Ae } from "../typography-DHym9KAP.js";
6
+ const v = {
7
+ /**
8
+ * Padding for alert content
9
+ */
10
+ padding: "p-md",
11
+ // 16px (1rem) - maps to semanticSpacing.md
12
+ /**
13
+ * Border radius for alerts
14
+ */
15
+ radius: "rounded-lg",
16
+ // 8px (0.5rem) - maps to borderRadius.lg
17
+ /**
18
+ * Icon size within alerts
19
+ */
20
+ iconSize: "size-4",
21
+ // 16px (1rem) - standard icon size
22
+ /**
23
+ * Variant-based token structure
24
+ * Organized by variant for future extensibility
25
+ */
26
+ variant: {
27
+ default: {
28
+ padding: "p-md",
29
+ radius: "rounded-lg"
30
+ },
31
+ primary: {
32
+ padding: "p-md",
33
+ radius: "rounded-lg"
34
+ },
35
+ secondary: {
36
+ padding: "p-md",
37
+ radius: "rounded-lg"
38
+ },
39
+ accent: {
40
+ padding: "p-md",
41
+ radius: "rounded-lg"
42
+ },
43
+ destructive: {
44
+ padding: "p-md",
45
+ radius: "rounded-lg"
46
+ },
47
+ // Legacy semantic variants (mapped to canonical)
48
+ success: {
49
+ padding: "p-md",
50
+ radius: "rounded-lg"
51
+ },
52
+ warning: {
53
+ padding: "p-md",
54
+ radius: "rounded-lg"
55
+ },
56
+ danger: {
57
+ padding: "p-md",
58
+ radius: "rounded-lg"
59
+ },
60
+ info: {
61
+ padding: "p-md",
62
+ radius: "rounded-lg"
63
+ }
64
+ }
65
+ }, w = {
66
+ /**
67
+ * Button heights by size
68
+ * Maps to Tailwind height utilities: h-8, h-9, h-10
69
+ */
70
+ height: {
71
+ sm: "h-8",
72
+ // 32px (2rem)
73
+ md: "h-9",
74
+ // 36px (2.25rem)
75
+ lg: "h-10",
76
+ // 40px (2.5rem)
77
+ icon: "h-9"
78
+ // 36px (2.25rem) - same as md
79
+ },
80
+ /**
81
+ * Button padding by size
82
+ * Horizontal and vertical padding values
83
+ */
84
+ padding: {
85
+ horizontal: {
86
+ sm: "px-sm",
87
+ // 8px (0.5rem) - maps to semanticSpacing.sm
88
+ md: "px-md",
89
+ // 16px (1rem) - maps to semanticSpacing.md
90
+ lg: "px-lg"
91
+ // 24px (1.5rem) - maps to semanticSpacing.lg
92
+ },
93
+ vertical: {
94
+ sm: "py-xs",
95
+ // 4px (0.25rem) - maps to semanticSpacing.xs
96
+ md: "py-sm"
97
+ // 8px (0.5rem) - maps to semanticSpacing.sm
98
+ }
99
+ },
100
+ /**
101
+ * Gap between icon and text
102
+ */
103
+ gap: "gap-sm",
104
+ // 8px (0.5rem) - maps to semanticSpacing.sm
105
+ /**
106
+ * Border radius for all button sizes
107
+ */
108
+ radius: "rounded-md",
109
+ // 6px (0.375rem) - maps to borderRadius.md
110
+ /**
111
+ * Icon size within buttons
112
+ */
113
+ iconSize: "size-4",
114
+ // 16px (1rem) - maps to spacing[4]
115
+ /**
116
+ * Width tokens
117
+ */
118
+ width: {
119
+ icon: "w-9"
120
+ // 36px width for icon buttons
121
+ },
122
+ /**
123
+ * Font sizes by button size
124
+ * Maps to foundation typography fontSize tokens
125
+ */
126
+ fontSize: {
127
+ sm: "text-xs",
128
+ // Maps to fontSize.xs[0]
129
+ md: "text-sm",
130
+ // Maps to fontSize.sm[0]
131
+ lg: "text-sm"
132
+ // Maps to fontSize.sm[0]
133
+ },
134
+ /**
135
+ * Shadow tokens by variant
136
+ * Maps to foundation elevation shadow tokens
137
+ */
138
+ shadow: {
139
+ default: "shadow-sm",
140
+ // Maps to elevationShadows.sm
141
+ primary: "shadow"
142
+ // Maps to elevationShadows.xs (primary variant uses shadow)
143
+ },
144
+ /**
145
+ * Color tokens for button variants
146
+ * Uses semantic color tokens that map to CSS variables
147
+ */
148
+ variant: {
149
+ primary: {
150
+ background: "bg-primary",
151
+ // Primary background using CSS var
152
+ text: "text-primary-foreground",
153
+ // Primary text using CSS var
154
+ hover: "hover:bg-primary/90"
155
+ // Primary hover using CSS var
156
+ },
157
+ secondary: {
158
+ background: "bg-secondary",
159
+ // Secondary background using CSS var
160
+ text: "text-secondary-foreground",
161
+ // Secondary text using CSS var
162
+ hover: "hover:bg-secondary/80"
163
+ // Secondary hover using CSS var
164
+ },
165
+ accent: {
166
+ background: "bg-accent",
167
+ // Accent background using CSS var
168
+ text: "text-accent-foreground",
169
+ // Accent text using CSS var
170
+ hover: "hover:bg-accent/90"
171
+ // Accent hover using CSS var
172
+ },
173
+ outline: {
174
+ border: "border border-input",
175
+ // Input border using CSS var
176
+ background: "bg-background",
177
+ // Background using CSS var
178
+ hover: {
179
+ background: "hover:bg-accent",
180
+ // Accent hover using CSS var
181
+ text: "hover:text-accent-foreground"
182
+ // Accent text using CSS var
183
+ }
184
+ },
185
+ ghost: {
186
+ hover: {
187
+ background: "hover:bg-accent",
188
+ // Accent hover using CSS var
189
+ text: "hover:text-accent-foreground"
190
+ // Accent text using CSS var
191
+ }
192
+ },
193
+ destructive: {
194
+ background: "bg-destructive",
195
+ // Destructive background using CSS var
196
+ text: "text-destructive-foreground",
197
+ // Destructive text using CSS var
198
+ hover: "hover:bg-destructive/90"
199
+ // Destructive hover using CSS var
200
+ }
201
+ },
202
+ /**
203
+ * Transition tokens
204
+ */
205
+ transition: {
206
+ colors: "transition-colors"
207
+ // Color transition using motion tokens
208
+ }
45
209
  }, y = {
46
- // Elevation shadows
47
- "--shadow-none": i.none,
48
- "--shadow-xs": i.xs,
49
- "--shadow-sm": i.sm,
50
- "--shadow-md": i.md,
51
- "--shadow-lg": i.lg,
52
- "--shadow-xl": i.xl,
53
- "--shadow-2xl": i["2xl"],
54
- // Primary colored shadows
55
- "--shadow-primary-xs": g.xs,
56
- "--shadow-primary-sm": g.sm,
57
- "--shadow-primary-md": g.md,
58
- "--shadow-primary-lg": g.lg,
59
- "--shadow-primary-xl": g.xl,
60
- "--shadow-primary-2xl": g["2xl"],
61
- // Accent colored shadows
62
- "--shadow-accent-xs": c.xs,
63
- "--shadow-accent-sm": c.sm,
64
- "--shadow-accent-md": c.md,
65
- "--shadow-accent-lg": c.lg,
66
- "--shadow-accent-xl": c.xl,
67
- "--shadow-accent-2xl": c["2xl"],
68
- // Glow effects
69
- "--glow-primary": m["glow-primary"],
70
- "--glow-primary-subtle": m["glow-primary-subtle"],
71
- "--glow-primary-medium": m["glow-primary-medium"],
72
- "--glow-primary-strong": m["glow-primary-strong"],
73
- "--glow-accent": m["glow-accent"],
74
- "--glow-accent-subtle": m["glow-accent-subtle"],
75
- "--glow-accent-medium": m["glow-accent-medium"],
76
- "--glow-accent-strong": m["glow-accent-strong"],
77
- // Focus rings
78
- "--focus-ring-default": p.default,
79
- "--focus-ring-primary": p.primary,
80
- "--focus-ring-accent": p.accent,
81
- "--focus-primary": p["focus-primary"],
82
- "--focus-accent": p["focus-accent"]
83
- }, z = {
84
- card: {
85
- default: i.sm,
86
- hover: i.md,
87
- active: i.xs,
88
- selected: g.sm
89
- },
90
- button: {
91
- default: i.xs,
92
- hover: i.sm,
93
- active: i.none,
94
- focus: p.primary
95
- },
96
- "button-accent": {
97
- default: c.xs,
98
- hover: c.sm,
99
- active: i.none,
100
- focus: p.accent
210
+ /**
211
+ * Padding for card sections (CardHeader, CardContent, CardFooter)
212
+ */
213
+ padding: {
214
+ sm: "p-sm",
215
+ // 8px (0.5rem) - maps to semanticSpacing.sm
216
+ md: "p-lg",
217
+ // 24px (1.5rem) - current default - maps to semanticSpacing.lg
218
+ lg: "p-xl"
219
+ // 32px (2rem) - for future lg variant - maps to semanticSpacing.xl
101
220
  },
102
- modal: {
103
- default: i.xl,
104
- backdrop: "rgba(0, 0, 0, 0.5)"
221
+ /**
222
+ * Border radius for cards
223
+ */
224
+ radius: {
225
+ sm: "rounded-md",
226
+ // 6px (0.375rem) - maps to borderRadius.md
227
+ md: "rounded-xl",
228
+ // 12px (0.75rem) - current default - maps to borderRadius.xl
229
+ lg: "rounded-2xl"
230
+ // 16px (1rem) - for future lg variant - maps to borderRadius["2xl"]
105
231
  },
106
- dropdown: {
107
- default: i.md,
108
- hover: i.lg
232
+ /**
233
+ * Vertical spacing within card sections
234
+ * Used for CardHeader spacing
235
+ */
236
+ spacing: {
237
+ vertical: {
238
+ xs: "space-y-xs",
239
+ // 4px (0.25rem) - maps to semanticSpacing.xs
240
+ sm: "space-y-sm",
241
+ // 8px (0.5rem) - maps to semanticSpacing.sm
242
+ md: "space-y-md"
243
+ // 16px (1rem) - maps to semanticSpacing.md
244
+ }
109
245
  },
110
- tooltip: {
111
- default: i.sm
246
+ /**
247
+ * Shadow (elevation) for cards
248
+ * Maps to foundation elevation shadow tokens
249
+ */
250
+ shadow: {
251
+ default: "shadow",
252
+ // Maps to elevationShadows.xs (default elevation)
253
+ sm: "shadow-sm",
254
+ // Maps to elevationShadows.sm
255
+ md: "shadow-md",
256
+ // Maps to elevationShadows.md
257
+ lg: "shadow-lg"
258
+ // Maps to elevationShadows.lg
112
259
  },
113
- toast: {
114
- default: i.lg,
115
- success: "0 10px 15px -3px hsl(var(--success) / 0.3)",
116
- error: "0 10px 15px -3px hsl(var(--error) / 0.3)"
260
+ /**
261
+ * Size-based token structure
262
+ * Organized by size for easy access
263
+ */
264
+ size: {
265
+ sm: {
266
+ padding: "p-sm",
267
+ radius: "rounded-md",
268
+ shadow: "shadow-sm",
269
+ spacing: {
270
+ vertical: "space-y-xs"
271
+ }
272
+ },
273
+ md: {
274
+ padding: "p-lg",
275
+ radius: "rounded-xl",
276
+ shadow: "shadow",
277
+ spacing: {
278
+ vertical: "space-y-xs"
279
+ }
280
+ },
281
+ lg: {
282
+ padding: "p-xl",
283
+ radius: "rounded-2xl",
284
+ shadow: "shadow-md",
285
+ spacing: {
286
+ vertical: "space-y-sm"
287
+ }
288
+ }
117
289
  }
118
- }, F = {
119
- boxShadow: {
120
- // Elevation shadows
121
- none: i.none,
122
- xs: i.xs,
123
- sm: i.sm,
124
- md: i.md,
125
- lg: i.lg,
126
- xl: i.xl,
127
- "2xl": i["2xl"],
128
- // Primary colored shadows
129
- "primary-xs": g.xs,
130
- "primary-sm": g.sm,
131
- "primary-md": g.md,
132
- "primary-lg": g.lg,
133
- "primary-xl": g.xl,
134
- "primary-2xl": g["2xl"],
135
- // Accent colored shadows
136
- "accent-xs": c.xs,
137
- "accent-sm": c.sm,
138
- "accent-md": c.md,
139
- "accent-lg": c.lg,
140
- "accent-xl": c.xl,
141
- "accent-2xl": c["2xl"],
142
- // Glow effects
143
- "glow-primary": m["glow-primary"],
144
- "glow-primary-subtle": m["glow-primary-subtle"],
145
- "glow-primary-medium": m["glow-primary-medium"],
146
- "glow-primary-strong": m["glow-primary-strong"],
147
- "glow-accent": m["glow-accent"],
148
- "glow-accent-subtle": m["glow-accent-subtle"],
149
- "glow-accent-medium": m["glow-accent-medium"],
150
- "glow-accent-strong": m["glow-accent-strong"],
151
- // Focus rings (using box-shadow for focus states)
152
- "focus-ring": p.default,
153
- "focus-primary": p["focus-primary"],
154
- "focus-accent": p["focus-accent"]
155
- },
156
- // Ring width (for focus rings using ring utilities)
157
- ringWidth: {
158
- DEFAULT: "3px",
159
- sm: "2px",
160
- md: "3px",
161
- lg: "4px"
162
- },
163
- // Ring color (for focus rings)
164
- ringColor: {
165
- DEFAULT: "hsl(var(--ring) / 0.5)",
166
- primary: "hsl(var(--primary-500) / 0.3)",
167
- accent: "hsl(var(--accent-500) / 0.3)",
168
- "focus-primary": "hsl(var(--primary-500) / 0.3)",
169
- "focus-accent": "hsl(var(--accent-500) / 0.3)"
290
+ }, d = {
291
+ /**
292
+ * Table Component Tokens
293
+ */
294
+ table: {
295
+ /**
296
+ * Table row heights by size
297
+ * Maps to Tailwind height utilities
298
+ */
299
+ rowHeight: {
300
+ sm: "h-8",
301
+ // 32px (2rem) - compact rows
302
+ md: "h-10",
303
+ // 40px (2.5rem) - default rows
304
+ lg: "h-12"
305
+ // 48px (3rem) - spacious rows
306
+ },
307
+ /**
308
+ * Table cell and header padding by size
309
+ * Maps to semantic spacing tokens
310
+ */
311
+ padding: {
312
+ cell: {
313
+ sm: "p-xs",
314
+ // 4px (0.25rem) - maps to semanticSpacing.xs
315
+ md: "p-sm",
316
+ // 8px (0.5rem) - maps to semanticSpacing.sm
317
+ lg: "p-md"
318
+ // 16px (1rem) - maps to semanticSpacing.md
319
+ },
320
+ header: {
321
+ sm: "px-xs py-sm",
322
+ // 4px horizontal, 8px vertical
323
+ md: "px-sm py-md",
324
+ // 8px horizontal, 16px vertical
325
+ lg: "px-md py-lg"
326
+ // 16px horizontal, 24px vertical
327
+ }
328
+ },
329
+ /**
330
+ * Gap between table cells (horizontal spacing)
331
+ */
332
+ gap: {
333
+ sm: "gap-xs",
334
+ // 4px (0.25rem) - maps to semanticSpacing.xs
335
+ md: "gap-sm"
336
+ // 8px (0.5rem) - maps to semanticSpacing.sm
337
+ },
338
+ /**
339
+ * Border radius for table
340
+ */
341
+ radius: {
342
+ default: "rounded-md"
343
+ // 6px (0.375rem) - maps to borderRadius.md
344
+ },
345
+ /**
346
+ * Shadow tokens for table
347
+ * Maps to foundation elevation shadow tokens
348
+ */
349
+ shadow: {
350
+ none: "shadow-none",
351
+ // No shadow
352
+ subtle: "shadow-sm"
353
+ // Maps to elevationShadows.sm
354
+ },
355
+ /**
356
+ * Typography tokens for table headers and cells
357
+ * Maps to foundation typography fontSize tokens
358
+ */
359
+ typography: {
360
+ header: {
361
+ fontSize: "text-sm",
362
+ // Maps to fontSize.sm[0]
363
+ fontWeight: "font-semibold"
364
+ // Maps to fontWeight.semibold
365
+ },
366
+ cell: {
367
+ fontSize: "text-sm",
368
+ // Maps to fontSize.sm[0]
369
+ fontWeight: "font-normal"
370
+ // Maps to fontWeight.normal
371
+ }
372
+ },
373
+ /**
374
+ * Color tokens for table states
375
+ * Uses semantic color tokens
376
+ */
377
+ colors: {
378
+ border: "border-border",
379
+ // Border color
380
+ rowHover: "hover:bg-muted/50",
381
+ // Row hover background
382
+ rowSelected: "bg-muted"
383
+ // Selected row background
384
+ }
385
+ },
386
+ /**
387
+ * Skeleton Component Tokens
388
+ */
389
+ skeleton: {
390
+ /**
391
+ * Skeleton heights by variant
392
+ * Maps to Tailwind height utilities
393
+ */
394
+ height: {
395
+ text: "h-4",
396
+ // 16px (1rem) - text line height
397
+ circle: "h-10 w-10",
398
+ // 40px × 40px (2.5rem) - circular skeleton
399
+ block: "h-20",
400
+ // 80px (5rem) - block skeleton
401
+ card: "h-32",
402
+ // 128px (8rem) - card skeleton
403
+ inline: "h-4"
404
+ // 16px (1rem) - inline text
405
+ },
406
+ /**
407
+ * Border radius by variant
408
+ * Maps to foundation borderRadius tokens
409
+ */
410
+ radius: {
411
+ text: "rounded-sm",
412
+ // 4px (0.25rem) - maps to borderRadius.sm
413
+ circle: "rounded-full",
414
+ // Full circle - maps to borderRadius.full
415
+ block: "rounded-md",
416
+ // 6px (0.375rem) - maps to borderRadius.md
417
+ card: "rounded-xl",
418
+ // 12px (0.75rem) - maps to borderRadius.xl
419
+ inline: "rounded-sm"
420
+ // 4px (0.25rem) - maps to borderRadius.sm
421
+ },
422
+ /**
423
+ * Animation tokens
424
+ * Uses motion tokens for animations
425
+ */
426
+ animation: {
427
+ pulse: "animate-pulse",
428
+ // Pulse animation from motion tokens
429
+ fade: "animate-pulse"
430
+ // Fade animation (using pulse as fallback)
431
+ },
432
+ /**
433
+ * Background color tokens
434
+ * Uses semantic color tokens
435
+ */
436
+ background: {
437
+ default: "bg-muted",
438
+ // Default skeleton background
439
+ subtle: "bg-muted/50"
440
+ // Subtle skeleton background
441
+ },
442
+ /**
443
+ * Width tokens for skeleton variants
444
+ */
445
+ width: {
446
+ full: "w-full",
447
+ // Full width (100%)
448
+ inline: "inline-block"
449
+ // Inline block display
450
+ }
451
+ },
452
+ /**
453
+ * EmptyState Component Tokens
454
+ */
455
+ emptyState: {
456
+ /**
457
+ * Spacing tokens for EmptyState
458
+ * Maps to semantic spacing tokens
459
+ */
460
+ spacing: {
461
+ gap: "gap-md",
462
+ // 16px (1rem) - gap between elements - maps to semanticSpacing.md
463
+ padding: "p-lg"
464
+ // 24px (1.5rem) - container padding - maps to semanticSpacing.lg
465
+ },
466
+ /**
467
+ * Border radius for EmptyState container
468
+ */
469
+ radius: {
470
+ default: "rounded-xl"
471
+ // 12px (0.75rem) - maps to borderRadius.xl
472
+ },
473
+ /**
474
+ * Icon sizes by variant
475
+ * Maps to Tailwind size utilities
476
+ */
477
+ iconSize: {
478
+ sm: "size-8",
479
+ // 32px (2rem)
480
+ md: "size-12",
481
+ // 48px (3rem)
482
+ lg: "size-16"
483
+ // 64px (4rem)
484
+ },
485
+ /**
486
+ * Typography tokens for EmptyState
487
+ * Maps to foundation typography tokens
488
+ */
489
+ typography: {
490
+ title: {
491
+ fontSize: "text-lg",
492
+ // Maps to fontSize.lg[0]
493
+ fontWeight: "font-semibold"
494
+ // Maps to fontWeight.semibold
495
+ },
496
+ description: {
497
+ fontSize: "text-sm",
498
+ // Maps to fontSize.sm[0]
499
+ fontWeight: "font-normal"
500
+ // Maps to fontWeight.normal
501
+ }
502
+ }
503
+ },
504
+ /**
505
+ * DataList Component Tokens
506
+ */
507
+ dataList: {
508
+ /**
509
+ * Spacing tokens for DataList
510
+ * Maps to semantic spacing tokens
511
+ */
512
+ spacing: {
513
+ gap: "gap-md",
514
+ // 16px (1rem) - gap between items - maps to semanticSpacing.md
515
+ padding: "p-md"
516
+ // 16px (1rem) - container padding - maps to semanticSpacing.md
517
+ },
518
+ /**
519
+ * Label width tokens (for desktop horizontal layout)
520
+ * Maps to Tailwind width utilities
521
+ */
522
+ labelWidth: {
523
+ sm: "w-24",
524
+ // 96px (6rem) - small label width
525
+ md: "w-32",
526
+ // 128px (8rem) - default label width
527
+ lg: "w-40"
528
+ // 160px (10rem) - large label width
529
+ },
530
+ /**
531
+ * Row padding tokens
532
+ * Maps to semantic spacing tokens
533
+ */
534
+ rowPadding: {
535
+ sm: "py-xs",
536
+ // 4px (0.25rem) - maps to semanticSpacing.xs
537
+ md: "py-sm",
538
+ // 8px (0.5rem) - maps to semanticSpacing.sm
539
+ lg: "py-md"
540
+ // 16px (1rem) - maps to semanticSpacing.md
541
+ }
170
542
  }
171
- }, t = {
172
- // Zero spacing
173
- 0: "0",
174
- px: "1px",
175
- // Half unit (4px)
176
- 0.5: "0.125rem",
177
- // 4px
178
- // Base unit multiples (8px increments)
179
- 1: "0.25rem",
180
- // 4px (half unit, common)
181
- 1.5: "0.375rem",
182
- // 6px (rare, for fine adjustments)
183
- 2: "0.5rem",
184
- // 8px (base unit)
185
- 2.5: "0.625rem",
186
- // 10px (rare)
187
- 3: "0.75rem",
188
- // 12px (1.5 × base)
189
- 3.5: "0.875rem",
190
- // 14px (rare)
191
- 4: "1rem",
192
- // 16px (2 × base)
193
- 5: "1.25rem",
194
- // 20px (2.5 × base)
195
- 6: "1.5rem",
196
- // 24px (3 × base)
197
- 7: "1.75rem",
198
- // 28px (3.5 × base)
199
- 8: "2rem",
200
- // 32px (4 × base)
201
- 9: "2.25rem",
202
- // 36px (4.5 × base)
203
- 10: "2.5rem",
204
- // 40px (5 × base)
205
- 11: "2.75rem",
206
- // 44px (5.5 × base)
207
- 12: "3rem",
208
- // 48px (6 × base)
209
- 14: "3.5rem",
210
- // 56px (7 × base)
211
- 16: "4rem",
212
- // 64px (8 × base)
213
- 20: "5rem",
214
- // 80px (10 × base)
215
- 24: "6rem",
216
- // 96px (12 × base)
217
- // Extended scale for larger spacing
218
- 28: "7rem",
219
- // 112px (14 × base)
220
- 32: "8rem",
221
- // 128px (16 × base)
222
- 36: "9rem",
223
- // 144px (18 × base)
224
- 40: "10rem",
225
- // 160px (20 × base)
226
- 44: "11rem",
227
- // 176px (22 × base)
228
- 48: "12rem",
229
- // 192px (24 × base)
230
- 52: "13rem",
231
- // 208px (26 × base)
232
- 56: "14rem",
233
- // 224px (28 × base)
234
- 60: "15rem",
235
- // 240px (30 × base)
236
- 64: "16rem",
237
- // 256px (32 × base)
238
- 72: "18rem",
239
- // 288px (36 × base)
240
- 80: "20rem",
241
- // 320px (40 × base)
242
- 96: "24rem"
243
- // 384px (48 × base)
244
- }, r = {
245
- // Extra small spacing (tight, minimal)
246
- xs: t[1],
247
- // 4px (0.25rem)
248
- // Small spacing (compact)
249
- sm: t[2],
250
- // 8px (0.5rem)
251
- // Medium spacing (default)
252
- md: t[4],
253
- // 16px (1rem)
254
- // Large spacing (spacious)
255
- lg: t[6],
256
- // 24px (1.5rem)
257
- // Extra large spacing (very spacious)
258
- xl: t[8],
259
- // 32px (2rem)
260
- // 2XL spacing (section-level)
261
- "2xl": t[12],
262
- // 48px (3rem)
263
- // 3XL spacing (major sections)
264
- "3xl": t[16],
265
- // 64px (4rem)
266
- // 4XL spacing (page sections)
267
- "4xl": t[20],
268
- // 80px (5rem)
269
- // 5XL spacing (hero sections)
270
- "5xl": t[24],
271
- // 96px (6rem)
272
- // None (no spacing)
273
- none: t[0]
274
- // 0
275
- }, l = {
276
- // Section spacing (vertical spacing between major sections)
277
- section: {
278
- xs: t[6],
279
- // 24px (compact sections)
280
- sm: t[8],
281
- // 32px (small sections)
282
- md: t[12],
283
- // 48px (default sections)
284
- lg: t[16],
285
- // 64px (large sections)
286
- xl: t[20],
287
- // 80px (extra large sections)
288
- "2xl": t[24]
289
- // 96px (hero sections)
290
- },
291
- // Container spacing (padding inside containers)
292
- container: {
293
- xs: t[2],
294
- // 8px (tight containers)
295
- sm: t[4],
296
- // 16px (compact containers)
297
- md: t[6],
298
- // 24px (default containers)
299
- lg: t[8],
300
- // 32px (spacious containers)
301
- xl: t[12]
302
- // 48px (very spacious containers)
303
- },
304
- // Grid spacing (gap between grid items)
305
- grid: {
306
- xs: t[2],
307
- // 8px (tight grids)
308
- sm: t[4],
309
- // 16px (compact grids)
310
- md: t[6],
311
- // 24px (default grids)
312
- lg: t[8],
313
- // 32px (spacious grids)
314
- xl: t[12]
315
- // 48px (very spacious grids)
316
- },
317
- // Stack spacing (gap between stacked items)
318
- stack: {
319
- xs: t[1],
320
- // 4px (tight stacks)
321
- sm: t[2],
322
- // 8px (compact stacks)
323
- md: t[4],
324
- // 16px (default stacks)
325
- lg: t[6],
326
- // 24px (spacious stacks)
327
- xl: t[8]
328
- // 32px (very spacious stacks)
329
- },
330
- // Component internal spacing (padding inside components)
331
- component: {
332
- xs: t[1],
333
- // 4px (tight components)
334
- sm: t[2],
335
- // 8px (compact components)
336
- md: t[4],
337
- // 16px (default components)
338
- lg: t[6],
339
- // 24px (spacious components)
340
- xl: t[8]
341
- // 32px (extra spacious components)
543
+ }, c = {
544
+ /**
545
+ * Icon sizes
546
+ * Maps to Tailwind size utilities for consistent icon sizing
547
+ */
548
+ sizes: {
549
+ xs: "h-2.5 w-2.5",
550
+ // 10px (0.625rem) - extra small icons
551
+ sm: "h-3 w-3",
552
+ // 12px (0.75rem) - maps to spacing[3]
553
+ md: "h-4 w-4",
554
+ // 16px (1rem) - maps to spacing[4] (default)
555
+ lg: "h-5 w-5",
556
+ // 20px (1.25rem) - maps to spacing[5]
557
+ xl: "h-6 w-6",
558
+ // 24px (1.5rem) - maps to spacing[6]
559
+ "2xl": "h-8 w-8",
560
+ // 32px (2rem) - maps to spacing[8]
561
+ "3xl": "h-10 w-10",
562
+ // 40px (2.5rem) - maps to spacing[10]
563
+ "4xl": "h-12 w-12"
564
+ // 48px (3rem) - maps to spacing[12]
565
+ },
566
+ /**
567
+ * Stroke width variants
568
+ * Maps to Tailwind stroke-width utilities
569
+ */
570
+ stroke: {
571
+ thin: "stroke-[1px]",
572
+ // 1px stroke width
573
+ normal: "stroke-[1.5px]",
574
+ // 1.5px stroke width
575
+ bold: "stroke-2"
576
+ // 2px stroke width
577
+ },
578
+ /**
579
+ * Color variants
580
+ * Maps to semantic text color tokens
581
+ */
582
+ colors: {
583
+ default: "text-foreground",
584
+ // Default foreground color
585
+ muted: "text-muted-foreground",
586
+ // Muted foreground color
587
+ success: "text-success",
588
+ // Semantic success color
589
+ warning: "text-warning",
590
+ // Semantic warning color
591
+ danger: "text-destructive",
592
+ // Semantic destructive/danger color
593
+ info: "text-info"
594
+ // Semantic info color
342
595
  }
343
- }, f = {
344
- // Base spacing scale
345
- "--spacing-0": t[0],
346
- "--spacing-px": t.px,
347
- "--spacing-0-5": t[0.5],
348
- "--spacing-1": t[1],
349
- "--spacing-1-5": t[1.5],
350
- "--spacing-2": t[2],
351
- "--spacing-2-5": t[2.5],
352
- "--spacing-3": t[3],
353
- "--spacing-3-5": t[3.5],
354
- "--spacing-4": t[4],
355
- "--spacing-5": t[5],
356
- "--spacing-6": t[6],
357
- "--spacing-7": t[7],
358
- "--spacing-8": t[8],
359
- "--spacing-9": t[9],
360
- "--spacing-10": t[10],
361
- "--spacing-11": t[11],
362
- "--spacing-12": t[12],
363
- "--spacing-14": t[14],
364
- "--spacing-16": t[16],
365
- "--spacing-20": t[20],
366
- "--spacing-24": t[24],
367
- // Semantic spacing
368
- "--spacing-xs": r.xs,
369
- "--spacing-sm": r.sm,
370
- "--spacing-md": r.md,
371
- "--spacing-lg": r.lg,
372
- "--spacing-xl": r.xl,
373
- "--spacing-2xl": r["2xl"],
374
- "--spacing-3xl": r["3xl"],
375
- "--spacing-4xl": r["4xl"],
376
- "--spacing-5xl": r["5xl"],
377
- "--spacing-none": r.none,
378
- // Layout spacing - sections
379
- "--layout-section-xs": l.section.xs,
380
- "--layout-section-sm": l.section.sm,
381
- "--layout-section-md": l.section.md,
382
- "--layout-section-lg": l.section.lg,
383
- "--layout-section-xl": l.section.xl,
384
- "--layout-section-2xl": l.section["2xl"],
385
- // Layout spacing - containers
386
- "--layout-container-xs": l.container.xs,
387
- "--layout-container-sm": l.container.sm,
388
- "--layout-container-md": l.container.md,
389
- "--layout-container-lg": l.container.lg,
390
- "--layout-container-xl": l.container.xl,
391
- // Layout spacing - grids
392
- "--layout-grid-xs": l.grid.xs,
393
- "--layout-grid-sm": l.grid.sm,
394
- "--layout-grid-md": l.grid.md,
395
- "--layout-grid-lg": l.grid.lg,
396
- "--layout-grid-xl": l.grid.xl,
397
- // Layout spacing - stacks
398
- "--layout-stack-xs": l.stack.xs,
399
- "--layout-stack-sm": l.stack.sm,
400
- "--layout-stack-md": l.stack.md,
401
- "--layout-stack-lg": l.stack.lg,
402
- "--layout-stack-xl": l.stack.xl,
403
- // Layout spacing - components
404
- "--layout-component-xs": l.component.xs,
405
- "--layout-component-sm": l.component.sm,
406
- "--layout-component-md": l.component.md,
407
- "--layout-component-lg": l.component.lg,
408
- "--layout-component-xl": l.component.xl
409
- }, W = {
596
+ }, h = {
597
+ /**
598
+ * Transition property tokens
599
+ * Maps to Tailwind transition utilities
600
+ */
601
+ transition: {
602
+ all: "transition-all",
603
+ // All properties
604
+ colors: "transition-colors",
605
+ // Color properties only
606
+ opacity: "transition-opacity",
607
+ // Opacity only
608
+ transform: "transition-transform",
609
+ // Transform only
610
+ shadow: "transition-shadow",
611
+ // Box shadow only
612
+ none: "transition-none"
613
+ // No transition
614
+ },
615
+ /**
616
+ * Duration tokens
617
+ * Maps to foundation motion duration tokens via Tailwind
618
+ */
619
+ duration: {
620
+ instant: "duration-0",
621
+ // 0ms
622
+ fast: "duration-fast",
623
+ // 150ms - maps to motion.durations.fast
624
+ normal: "duration-normal",
625
+ // 300ms - maps to motion.durations.normal
626
+ slow: "duration-slow",
627
+ // 500ms - maps to motion.durations.slow
628
+ slower: "duration-slower",
629
+ // 700ms - maps to motion.durations.slower
630
+ slowest: "duration-slowest",
631
+ // 1000ms - maps to motion.durations.slowest
632
+ // Granular durations
633
+ 75: "duration-75",
634
+ // 75ms
635
+ 100: "duration-100",
636
+ // 100ms
637
+ 200: "duration-200",
638
+ // 200ms
639
+ 250: "duration-250",
640
+ // 250ms
641
+ 300: "duration-300",
642
+ // 300ms
643
+ 400: "duration-400",
644
+ // 400ms
645
+ 500: "duration-500",
646
+ // 500ms
647
+ 600: "duration-600",
648
+ // 600ms
649
+ 700: "duration-700",
650
+ // 700ms
651
+ 800: "duration-800",
652
+ // 800ms
653
+ 1e3: "duration-1000"
654
+ // 1000ms
655
+ },
656
+ /**
657
+ * Easing tokens
658
+ * Maps to foundation motion easing tokens via Tailwind
659
+ */
660
+ easing: {
661
+ linear: "ease-linear",
662
+ // Linear easing
663
+ in: "ease-in",
664
+ // Ease in
665
+ out: "ease-out",
666
+ // Ease out (recommended for most UI)
667
+ "in-out": "ease-in-out",
668
+ // Ease in-out
669
+ bounce: "ease-bounce",
670
+ // Bounce easing
671
+ elastic: "ease-elastic"
672
+ // Elastic easing
673
+ },
674
+ /**
675
+ * Pre-configured transition tokens
676
+ * Combines duration and easing for common use cases
677
+ */
678
+ transitionPreset: {
679
+ fast: "transition-all duration-fast ease-out",
680
+ // Fast transition
681
+ normal: "transition-all duration-normal ease-in-out",
682
+ // Normal transition (default)
683
+ slow: "transition-all duration-slow ease-in-out",
684
+ // Slow transition
685
+ colors: "transition-colors duration-normal ease-out",
686
+ // Color transitions (common)
687
+ transform: "transition-transform duration-normal ease-out",
688
+ // Transform transitions
689
+ opacity: "transition-opacity duration-fast ease-out"
690
+ // Opacity transitions
691
+ },
692
+ /**
693
+ * Animation tokens
694
+ * Maps to foundation motion animation tokens via Tailwind
695
+ */
696
+ animation: {
697
+ none: "animate-none",
698
+ // No animation
699
+ spin: "animate-spin",
700
+ // Spin animation
701
+ pulse: "animate-pulse",
702
+ // Pulse animation
703
+ bounce: "animate-bounce",
704
+ // Bounce animation
705
+ ping: "animate-ping",
706
+ // Ping animation
707
+ shake: "animate-shake",
708
+ // Shake animation
709
+ fadeIn: "animate-fadeIn",
710
+ // Fade in
711
+ fadeOut: "animate-fadeOut",
712
+ // Fade out
713
+ slideInUp: "animate-slideInUp",
714
+ // Slide in from bottom
715
+ slideInDown: "animate-slideInDown",
716
+ // Slide in from top
717
+ slideInLeft: "animate-slideInLeft",
718
+ // Slide in from right
719
+ slideInRight: "animate-slideInRight",
720
+ // Slide in from left
721
+ scaleIn: "animate-scaleIn",
722
+ // Scale in
723
+ scaleOut: "animate-scaleOut"
724
+ // Scale out
725
+ }
726
+ }, k = {
727
+ /**
728
+ * Surface tokens for card containers
729
+ * Defines background, border, radius, and shadow for card surfaces
730
+ */
731
+ surface: {
732
+ /**
733
+ * Background colors
734
+ * Maps to semantic color tokens
735
+ */
736
+ bg: {
737
+ default: "bg-card",
738
+ // Default card background - maps to semantic color tokens
739
+ hover: "hover:bg-card/95"
740
+ // Hover state background with 95% opacity
741
+ },
742
+ /**
743
+ * Border styles
744
+ * Maps to semantic border tokens
745
+ */
746
+ border: {
747
+ default: "border border-border",
748
+ // Default border - maps to semantic border tokens
749
+ hover: "hover:border-primary/20"
750
+ // Hover state border with primary color at 20% opacity
751
+ },
752
+ /**
753
+ * Border radius
754
+ * References borderRadius.xl (0.75rem / 12px)
755
+ * Using Tailwind class "rounded-xl" which maps to borderRadius.xl
756
+ */
757
+ radius: {
758
+ default: "rounded-xl"
759
+ // References borderRadius.xl (0.75rem / 12px) via Tailwind
760
+ },
761
+ /**
762
+ * Shadow (elevation) tokens
763
+ * References elevationShadows.md
764
+ * Using Tailwind class "shadow-md" which maps to elevationShadows.md
765
+ */
766
+ shadow: {
767
+ default: "shadow-md"
768
+ // References elevationShadows.md via Tailwind
769
+ },
770
+ /**
771
+ * Elevation change on hover
772
+ * References elevationShadows.xl
773
+ * Using Tailwind class "hover:shadow-xl" which maps to elevationShadows.xl
774
+ */
775
+ elevation: {
776
+ hover: "hover:shadow-xl"
777
+ // References elevationShadows.xl via Tailwind
778
+ }
779
+ },
780
+ /**
781
+ * Spacing tokens for card component spacing
782
+ * References semanticSpacing tokens
783
+ * Note: Tailwind classes are used for component className application
784
+ */
410
785
  spacing: {
411
- ...t,
412
- // Add semantic tokens as aliases
413
- xs: r.xs,
414
- sm: r.sm,
415
- md: r.md,
416
- lg: r.lg,
417
- xl: r.xl,
418
- "2xl": r["2xl"],
419
- "3xl": r["3xl"],
420
- "4xl": r["4xl"],
421
- "5xl": r["5xl"],
422
- none: r.none
786
+ /**
787
+ * Section spacing - vertical spacing between card sections
788
+ */
789
+ section: {
790
+ titleToSubtitle: "mb-xs",
791
+ // Spacing between title and subtitle/description - references semanticSpacing.xs (4px) via Tailwind
792
+ subtitleToMetadata: "mb-sm"
793
+ // Spacing between description and metadata - references semanticSpacing.sm (8px) via Tailwind
794
+ },
795
+ /**
796
+ * Badge spacing offsets
797
+ */
798
+ badges: {
799
+ offsetX: e.md,
800
+ // Horizontal offset for badges (16px)
801
+ offsetY: e.md
802
+ // Vertical offset for badges (16px)
803
+ },
804
+ /**
805
+ * Image spacing
806
+ */
807
+ image: {
808
+ bottomMargin: e.none
809
+ // Margin below image (0px)
810
+ },
811
+ /**
812
+ * Card vertical gap
813
+ */
814
+ card: {
815
+ verticalGap: e.md
816
+ // Vertical gap in card content (16px)
817
+ },
818
+ /**
819
+ * Metadata item gap
820
+ */
821
+ metadata: {
822
+ itemGap: e.xs
823
+ // Gap between metadata items (4px)
824
+ },
825
+ /**
826
+ * Footer spacing
827
+ */
828
+ footer: {
829
+ paddingTopDefault: "pt-sm",
830
+ // Footer padding top default - references semanticSpacing.sm (8px) via Tailwind
831
+ paddingTopCompact: "pt-xs"
832
+ // Footer padding top compact - references semanticSpacing.xs (4px) via Tailwind
833
+ },
834
+ /**
835
+ * Button spacing
836
+ */
837
+ button: {
838
+ paddingDefault: "px-md py-xs",
839
+ // Button padding default - references semanticSpacing.md (16px) horizontal, xs (4px) vertical via Tailwind
840
+ paddingCompact: "px-sm py-xs",
841
+ // Button padding compact - references semanticSpacing.sm (8px) horizontal, xs (4px) vertical via Tailwind
842
+ iconMarginLeft: "ml-xs"
843
+ // Icon margin left - references semanticSpacing.xs (4px) via Tailwind
844
+ }
845
+ },
846
+ /**
847
+ * Layout tokens for card spacing and gaps
848
+ * References semanticSpacing tokens
849
+ * Note: Tailwind utilities are used for component className application
850
+ */
851
+ layout: {
852
+ /**
853
+ * Padding tokens
854
+ * References semanticSpacing (md = 16px, sm = 8px)
855
+ * Note: "p-md" and "p-sm" are Tailwind utilities that apply semanticSpacing values
856
+ */
857
+ padding: {
858
+ default: "p-md",
859
+ // Default padding - references semanticSpacing.md (16px)
860
+ compact: "p-sm"
861
+ // Compact variant padding - references semanticSpacing.sm (8px)
862
+ },
863
+ /**
864
+ * Gap tokens for spacing between card elements
865
+ * References semanticSpacing (md = 16px, xs = 4px)
866
+ * Note: "gap-md" and "gap-xs" are Tailwind utilities that apply semanticSpacing values
867
+ */
868
+ gap: {
869
+ default: "gap-md",
870
+ // Default gap - references semanticSpacing.md (16px)
871
+ compact: "gap-xs"
872
+ // Compact variant gap - references semanticSpacing.xs (4px)
873
+ }
874
+ },
875
+ /**
876
+ * Image tokens for card media
877
+ * Defines aspect ratio, radius, and overlay styles
878
+ */
879
+ image: {
880
+ /**
881
+ * Aspect ratio for card images
882
+ * Standard 16:9 aspect ratio for card images
883
+ */
884
+ aspectRatio: "aspect-video",
885
+ // 16:9 aspect ratio - standard for card images
886
+ /**
887
+ * Border radius for images
888
+ * References borderRadius.xl (0.75rem / 12px) for top corners only
889
+ * Using Tailwind class "rounded-t-xl" which maps to borderRadius.xl
890
+ */
891
+ radius: "rounded-t-xl",
892
+ // References borderRadius.xl (0.75rem / 12px) via Tailwind
893
+ /**
894
+ * Overlay gradient tokens for image overlays
895
+ * Used for hover states and text readability
896
+ */
897
+ overlay: {
898
+ gradient: "bg-gradient-to-t from-black/60 via-transparent to-transparent"
899
+ // Gradient overlay for image hover states
900
+ }
901
+ },
902
+ /**
903
+ * Metadata tokens for card information displays
904
+ * Used for date/time, location, and other metadata patterns
905
+ * Maps to TEXT_TOKENS, ICON_TOKENS, and semanticSpacing
906
+ */
907
+ metadata: {
908
+ /**
909
+ * Text color tokens
910
+ * Maps to semantic text color tokens
911
+ */
912
+ text: {
913
+ primary: "text-foreground",
914
+ // Primary metadata text - maps to semantic text color
915
+ secondary: "text-muted-foreground"
916
+ // Secondary metadata text - maps to semantic muted text color
917
+ },
918
+ /**
919
+ * Icon tokens
920
+ * Maps to ICON_TOKENS for sizes and colors
921
+ */
922
+ icon: {
923
+ default: "text-muted-foreground",
924
+ // Default icon color - maps to ICON_TOKENS.colors.muted
925
+ sizeSm: c.sizes.md
926
+ // Small icon size - references ICON_TOKENS.sizes.md (16px)
927
+ },
928
+ /**
929
+ * Spacing tokens for metadata layouts
930
+ * References semanticSpacing (xs = 4px, sm = 8px)
931
+ * Using Tailwind classes which map to semanticSpacing values
932
+ */
933
+ spacing: {
934
+ vertical: "gap-xs",
935
+ // References semanticSpacing.xs (4px) via Tailwind
936
+ horizontal: "gap-sm"
937
+ // References semanticSpacing.sm (8px) via Tailwind
938
+ }
939
+ },
940
+ /**
941
+ * Badge tokens for featured/popular badges
942
+ * References semanticSpacing, borderRadius, and elevationShadows
943
+ */
944
+ badges: {
945
+ /**
946
+ * Badge size tokens (padding)
947
+ * References semanticSpacing for padding values
948
+ * Using Tailwind classes which map to semanticSpacing values
949
+ */
950
+ size: {
951
+ sm: "px-xs py-xs",
952
+ // References semanticSpacing.xs (4px) for both horizontal and vertical via Tailwind
953
+ md: "px-sm py-xs"
954
+ // References semanticSpacing.sm (8px) horizontal, semanticSpacing.xs (4px) vertical via Tailwind
955
+ },
956
+ /**
957
+ * Badge positioning tokens
958
+ * References semanticSpacing for absolute positioning
959
+ * Using Tailwind classes which map to semanticSpacing values
960
+ */
961
+ position: {
962
+ default: "right-md top-md",
963
+ // References semanticSpacing.md (16px) for both right and top via Tailwind
964
+ compact: "right-sm top-sm"
965
+ // References semanticSpacing.sm (8px) for both right and top via Tailwind
966
+ },
967
+ /**
968
+ * Additional vertical positioning tokens for multi-badge scenarios
969
+ * References semanticSpacing for top positioning
970
+ * Using Tailwind classes which map to semanticSpacing values
971
+ */
972
+ positionY: {
973
+ xl: "top-xl",
974
+ // References semanticSpacing.xl (32px) via Tailwind
975
+ "2xl": "top-2xl",
976
+ // References semanticSpacing["2xl"] (48px) via Tailwind
977
+ "3xl": "top-3xl"
978
+ // References semanticSpacing["3xl"] (64px) via Tailwind
979
+ },
980
+ /**
981
+ * Badge surface (background) tokens
982
+ * Maps to semantic color tokens
983
+ */
984
+ surface: {
985
+ default: "bg-primary",
986
+ // Default badge background - maps to semantic primary color
987
+ featured: "bg-gradient-to-r from-accent-500 to-primary-600"
988
+ // Featured badge gradient
989
+ },
990
+ /**
991
+ * Badge text color
992
+ * White for contrast on colored backgrounds
993
+ */
994
+ text: {
995
+ color: "text-white"
996
+ // Badge text color - white for contrast on colored backgrounds
997
+ },
998
+ /**
999
+ * Badge border radius
1000
+ * References borderRadius.full (pill shape)
1001
+ * Using Tailwind class "rounded-full" which maps to borderRadius.full
1002
+ */
1003
+ radius: "rounded-full",
1004
+ // References borderRadius.full via Tailwind
1005
+ /**
1006
+ * Badge shadow
1007
+ * References elevationShadows.lg
1008
+ * Using Tailwind class "shadow-lg" which maps to elevationShadows.lg
1009
+ */
1010
+ shadow: "shadow-lg"
1011
+ // References elevationShadows.lg via Tailwind
1012
+ },
1013
+ /**
1014
+ * Price/Capacity tokens for displaying price and capacity information
1015
+ * Maps to semantic text color tokens and semanticSpacing
1016
+ */
1017
+ priceCapacity: {
1018
+ /**
1019
+ * Text color tokens
1020
+ * Maps to semantic text color tokens
1021
+ */
1022
+ text: {
1023
+ primary: "text-foreground",
1024
+ // Primary price/capacity text - maps to semantic text color
1025
+ secondary: "text-muted-foreground"
1026
+ // Secondary price/capacity text - maps to semantic muted text color
1027
+ },
1028
+ /**
1029
+ * Spacing between price and capacity elements
1030
+ * References semanticSpacing.sm (8px)
1031
+ * Using Tailwind class "gap-sm" which maps to semanticSpacing.sm
1032
+ */
1033
+ spacing: "gap-sm"
1034
+ // References semanticSpacing.sm (8px) via Tailwind
1035
+ },
1036
+ /**
1037
+ * Motion tokens for hover and interaction states
1038
+ * References MOTION_TOKENS for transitions and animations
1039
+ */
1040
+ motion: {
1041
+ /**
1042
+ * Hover state tokens
1043
+ * References MOTION_TOKENS and elevationShadows
1044
+ */
1045
+ hover: {
1046
+ transition: h.transitionPreset.normal,
1047
+ // References MOTION_TOKENS.transitionPreset.normal
1048
+ scale: "hover:scale-110",
1049
+ // Hover scale transform (110% scale) - domain-specific value
1050
+ elevation: "hover:shadow-xl"
1051
+ // References elevationShadows.xl via Tailwind
1052
+ }
1053
+ },
1054
+ /**
1055
+ * Skeleton tokens for loading states
1056
+ * References DATA_TOKENS.skeleton for skeleton patterns and semanticSpacing for dimensions
1057
+ */
1058
+ skeleton: {
1059
+ /**
1060
+ * Base skeleton wrapper tokens
1061
+ * Default styling for skeleton wrapper components
1062
+ */
1063
+ base: {
1064
+ /**
1065
+ * Default border radius for skeleton wrapper
1066
+ * References DATA_TOKENS.skeleton.radius.text
1067
+ */
1068
+ radius: d.skeleton.radius.text,
1069
+ /**
1070
+ * Default animation for skeleton wrapper
1071
+ * References DATA_TOKENS.skeleton.animation.pulse
1072
+ */
1073
+ animation: d.skeleton.animation.pulse,
1074
+ /**
1075
+ * Default background for skeleton wrapper
1076
+ * References DATA_TOKENS.skeleton.background.default
1077
+ */
1078
+ background: d.skeleton.background.default
1079
+ },
1080
+ /**
1081
+ * Image skeleton height
1082
+ * Domain-specific: card images need 192px (spacing[48] = 12rem)
1083
+ * Note: DATA_TOKENS.skeleton.height.card is 128px, but card images need 192px
1084
+ * Using Tailwind class "h-48" which maps to spacing[48] (12rem / 192px)
1085
+ */
1086
+ image: {
1087
+ height: "h-48"
1088
+ // References spacing[48] (12rem / 192px) via Tailwind
1089
+ },
1090
+ /**
1091
+ * Content gap for skeleton elements
1092
+ * References semanticSpacing.md (16px)
1093
+ * Using Tailwind class "gap-md" which maps to semanticSpacing.md
1094
+ */
1095
+ content: {
1096
+ gap: "gap-md",
1097
+ // References semanticSpacing.md (16px) via Tailwind
1098
+ /**
1099
+ * Content width tokens for skeleton elements
1100
+ * References DATA_TOKENS where available, uses Tailwind fraction classes for domain-specific values
1101
+ */
1102
+ width: {
1103
+ full: d.skeleton.width.full,
1104
+ // References DATA_TOKENS.skeleton.width.full
1105
+ threeQuarters: "w-3/4",
1106
+ // Three quarters width (75%) - domain-specific, using Tailwind fraction
1107
+ half: "w-1/2"
1108
+ // Half width (50%) - domain-specific, using Tailwind fraction
1109
+ }
1110
+ },
1111
+ /**
1112
+ * Badge skeleton dimensions
1113
+ * Domain-specific values for badge skeleton sizing
1114
+ * References spacing values via Tailwind classes
1115
+ */
1116
+ badge: {
1117
+ width: "w-20",
1118
+ // References spacing[20] (5rem / 80px) via Tailwind
1119
+ height: "h-6"
1120
+ // References spacing[6] (1.5rem / 24px) via Tailwind
1121
+ }
423
1122
  }
424
- }, n = {
425
- // Primary font - Inter (default sans)
426
- sans: [
427
- "Inter",
428
- "ui-sans-serif",
429
- "system-ui",
430
- "-apple-system",
431
- "BlinkMacSystemFont",
432
- "Segoe UI",
433
- "Roboto",
434
- "Helvetica Neue",
435
- "Arial",
436
- "Noto Sans",
437
- "sans-serif",
438
- "Apple Color Emoji",
439
- "Segoe UI Emoji",
440
- "Segoe UI Symbol",
441
- "Noto Color Emoji"
442
- ],
443
- // Optional font - Satoshi
444
- satoshi: [
445
- "Satoshi",
446
- "Inter",
447
- "ui-sans-serif",
448
- "system-ui",
449
- "-apple-system",
450
- "BlinkMacSystemFont",
451
- "Segoe UI",
452
- "Roboto",
453
- "sans-serif"
454
- ],
455
- // Display font - Clash Display (for headings and hero sections)
456
- display: [
457
- "Clash Display",
458
- "Inter",
459
- "ui-sans-serif",
460
- "system-ui",
461
- "-apple-system",
462
- "BlinkMacSystemFont",
463
- "Segoe UI",
464
- "Roboto",
465
- "sans-serif"
466
- ],
467
- // Serif font family
468
- serif: ["ui-serif", "Georgia", "Cambria", "Times New Roman", "Times", "serif"],
469
- // Monospace font family
470
- mono: [
471
- "ui-monospace",
472
- "SFMono-Regular",
473
- "Menlo",
474
- "Monaco",
475
- "Consolas",
476
- "Liberation Mono",
477
- "Courier New",
478
- "monospace"
479
- ]
480
- }, e = {
481
- // text-xs: 12px base, scales from 0.75rem to 0.875rem
482
- xs: [
483
- "clamp(0.75rem, 0.7rem + 0.125vw, 0.875rem)",
484
- { lineHeight: "1rem", letterSpacing: "0.05em" }
485
- ],
486
- // text-sm: 14px base, scales from 0.875rem to 1rem
487
- sm: [
488
- "clamp(0.875rem, 0.8rem + 0.25vw, 1rem)",
489
- { lineHeight: "1.25rem", letterSpacing: "0.025em" }
490
- ],
491
- // text-base: 16px base, scales from 1rem to 1.125rem
492
- base: ["clamp(1rem, 0.95rem + 0.25vw, 1.125rem)", { lineHeight: "1.5rem", letterSpacing: "0em" }],
493
- // text-lg: 18px base, scales from 1.125rem to 1.25rem
494
- lg: [
495
- "clamp(1.125rem, 1rem + 0.5vw, 1.25rem)",
496
- { lineHeight: "1.75rem", letterSpacing: "-0.025em" }
497
- ],
498
- // text-xl: 20px base, scales from 1.25rem to 1.5rem
499
- xl: [
500
- "clamp(1.25rem, 1.1rem + 0.75vw, 1.5rem)",
501
- { lineHeight: "1.75rem", letterSpacing: "-0.025em" }
502
- ],
503
- // text-2xl: 24px base, scales from 1.5rem to 2rem
504
- "2xl": [
505
- "clamp(1.5rem, 1.25rem + 1.25vw, 2rem)",
506
- { lineHeight: "2rem", letterSpacing: "-0.05em" }
507
- ],
508
- // text-3xl: 30px base, scales from 1.875rem to 2.5rem
509
- "3xl": [
510
- "clamp(1.875rem, 1.5rem + 1.875vw, 2.5rem)",
511
- { lineHeight: "2.25rem", letterSpacing: "-0.05em" }
512
- ],
513
- // text-4xl: 36px base, scales from 2.25rem to 3rem
514
- "4xl": [
515
- "clamp(2.25rem, 1.75rem + 2.5vw, 3rem)",
516
- { lineHeight: "2.5rem", letterSpacing: "-0.025em" }
517
- ],
518
- // text-5xl: 48px base, scales from 3rem to 4rem
519
- "5xl": ["clamp(3rem, 2rem + 5vw, 4rem)", { lineHeight: "1", letterSpacing: "-0.025em" }],
520
- // text-6xl: 60px base, scales from 3.75rem to 5rem
521
- "6xl": ["clamp(3.75rem, 2.5rem + 6.25vw, 5rem)", { lineHeight: "1", letterSpacing: "-0.05em" }],
522
- // text-7xl: 72px base (optional, for hero sections)
523
- "7xl": ["clamp(4.5rem, 3rem + 7.5vw, 6rem)", { lineHeight: "1", letterSpacing: "-0.05em" }],
524
- // text-8xl: 96px base (optional, for hero sections)
525
- "8xl": ["clamp(6rem, 4rem + 10vw, 8rem)", { lineHeight: "1", letterSpacing: "-0.05em" }],
526
- // text-9xl: 128px base (optional, for hero sections)
527
- "9xl": ["clamp(8rem, 5rem + 15vw, 12rem)", { lineHeight: "1", letterSpacing: "-0.05em" }]
528
- }, a = {
529
- thin: "100",
530
- extralight: "200",
531
- light: "300",
532
- normal: "400",
533
- medium: "500",
534
- semibold: "600",
535
- bold: "700",
536
- extrabold: "800",
537
- black: "900"
538
- }, s = {
539
- none: "1",
540
- tight: "1.25",
541
- snug: "1.375",
542
- normal: "1.5",
543
- relaxed: "1.625",
544
- loose: "2"
545
- }, o = {
546
- tighter: "-0.05em",
547
- tight: "-0.025em",
548
- normal: "0em",
549
- wide: "0.025em",
550
- wider: "0.05em",
551
- widest: "0.1em"
552
- }, u = {
553
- // Font families
554
- "--font-sans": n.sans.join(", "),
555
- "--font-satoshi": n.satoshi.join(", "),
556
- "--font-display": n.display.join(", "),
557
- "--font-serif": n.serif.join(", "),
558
- "--font-mono": n.mono.join(", "),
559
- // Font sizes (using clamp values)
560
- "--font-size-xs": e.xs[0],
561
- "--font-size-sm": e.sm[0],
562
- "--font-size-base": e.base[0],
563
- "--font-size-lg": e.lg[0],
564
- "--font-size-xl": e.xl[0],
565
- "--font-size-2xl": e["2xl"][0],
566
- "--font-size-3xl": e["3xl"][0],
567
- "--font-size-4xl": e["4xl"][0],
568
- "--font-size-5xl": e["5xl"][0],
569
- "--font-size-6xl": e["6xl"][0],
570
- // Font weights
571
- "--font-weight-thin": a.thin,
572
- "--font-weight-extralight": a.extralight,
573
- "--font-weight-light": a.light,
574
- "--font-weight-normal": a.normal,
575
- "--font-weight-medium": a.medium,
576
- "--font-weight-semibold": a.semibold,
577
- "--font-weight-bold": a.bold,
578
- "--font-weight-extrabold": a.extrabold,
579
- "--font-weight-black": a.black,
580
- // Line heights
581
- "--line-height-none": s.none,
582
- "--line-height-tight": s.tight,
583
- "--line-height-snug": s.snug,
584
- "--line-height-normal": s.normal,
585
- "--line-height-relaxed": s.relaxed,
586
- "--line-height-loose": s.loose,
587
- // Letter spacing
588
- "--letter-spacing-tighter": o.tighter,
589
- "--letter-spacing-tight": o.tight,
590
- "--letter-spacing-normal": o.normal,
591
- "--letter-spacing-wide": o.wide,
592
- "--letter-spacing-wider": o.wider,
593
- "--letter-spacing-widest": o.widest
594
- }, M = {
595
- // Display styles (for hero sections)
596
- display: {
597
- fontFamily: n.display.join(", "),
598
- fontSize: e["6xl"][0],
599
- fontWeight: a.bold,
600
- lineHeight: s.none,
601
- letterSpacing: o.tight
602
- },
603
- // Heading styles
604
- h1: {
605
- fontFamily: n.display.join(", "),
606
- fontSize: e["5xl"][0],
607
- fontWeight: a.bold,
608
- lineHeight: s.tight,
609
- letterSpacing: o.tight
610
- },
611
- h2: {
612
- fontFamily: n.display.join(", "),
613
- fontSize: e["4xl"][0],
614
- fontWeight: a.bold,
615
- lineHeight: s.tight,
616
- letterSpacing: o.tight
617
- },
618
- h3: {
619
- fontFamily: n.sans.join(", "),
620
- fontSize: e["3xl"][0],
621
- fontWeight: a.semibold,
622
- lineHeight: s.snug,
623
- letterSpacing: o.normal
624
- },
625
- h4: {
626
- fontFamily: n.sans.join(", "),
627
- fontSize: e["2xl"][0],
628
- fontWeight: a.semibold,
629
- lineHeight: s.snug,
630
- letterSpacing: o.normal
631
- },
632
- h5: {
633
- fontFamily: n.sans.join(", "),
634
- fontSize: e.xl[0],
635
- fontWeight: a.medium,
636
- lineHeight: s.normal,
637
- letterSpacing: o.normal
638
- },
639
- h6: {
640
- fontFamily: n.sans.join(", "),
641
- fontSize: e.lg[0],
642
- fontWeight: a.medium,
643
- lineHeight: s.normal,
644
- letterSpacing: o.normal
645
- },
646
- // Body text styles
647
- body: {
648
- fontFamily: n.sans.join(", "),
649
- fontSize: e.base[0],
650
- fontWeight: a.normal,
651
- lineHeight: s.relaxed,
652
- letterSpacing: o.normal
653
- },
654
- "body-sm": {
655
- fontFamily: n.sans.join(", "),
656
- fontSize: e.sm[0],
657
- fontWeight: a.normal,
658
- lineHeight: s.normal,
659
- letterSpacing: o.normal
660
- },
661
- "body-xs": {
662
- fontFamily: n.sans.join(", "),
663
- fontSize: e.xs[0],
664
- fontWeight: a.normal,
665
- lineHeight: s.normal,
666
- letterSpacing: o.wide
667
- },
668
- // Label styles
1123
+ }, S = {
1124
+ /**
1125
+ * Input heights by size
1126
+ * Supports xs, sm, md, lg, xl sizes
1127
+ */
1128
+ height: {
1129
+ xs: "h-7",
1130
+ // 28px (1.75rem)
1131
+ sm: "h-8",
1132
+ // 32px (2rem)
1133
+ md: "h-9",
1134
+ // 36px (2.25rem) - default
1135
+ lg: "h-10",
1136
+ // 40px (2.5rem)
1137
+ xl: "h-11"
1138
+ // 44px (2.75rem)
1139
+ },
1140
+ /**
1141
+ * Input padding by size
1142
+ * Horizontal and vertical padding values
1143
+ */
1144
+ padding: {
1145
+ horizontal: {
1146
+ xs: "px-xs",
1147
+ // 4px (0.25rem)
1148
+ sm: "px-sm",
1149
+ // 8px (0.5rem)
1150
+ md: "px-sm",
1151
+ // 8px (0.5rem) - default
1152
+ lg: "px-md",
1153
+ // 16px (1rem)
1154
+ xl: "px-lg"
1155
+ // 24px (1.5rem)
1156
+ },
1157
+ vertical: {
1158
+ xs: "py-xs",
1159
+ // 4px (0.25rem)
1160
+ sm: "py-xs",
1161
+ // 4px (0.25rem)
1162
+ md: "py-xs",
1163
+ // 4px (0.25rem) - default
1164
+ lg: "py-sm",
1165
+ // 8px (0.5rem)
1166
+ xl: "py-md"
1167
+ // 16px (1rem)
1168
+ }
1169
+ },
1170
+ /**
1171
+ * Border radius by size
1172
+ */
1173
+ radius: {
1174
+ xs: "rounded-sm",
1175
+ // 4px (0.25rem)
1176
+ sm: "rounded-md",
1177
+ // 6px (0.375rem)
1178
+ md: "rounded-md",
1179
+ // 6px (0.375rem) - default
1180
+ lg: "rounded-md",
1181
+ // 6px (0.375rem)
1182
+ xl: "rounded-lg"
1183
+ // 8px (0.5rem)
1184
+ },
1185
+ /**
1186
+ * Font sizes by size variant
1187
+ * Maps to foundation typography fontSize tokens
1188
+ */
1189
+ fontSize: {
1190
+ xs: "text-xs",
1191
+ // Maps to fontSize.xs[0]
1192
+ sm: "text-sm",
1193
+ // Maps to fontSize.sm[0]
1194
+ md: "text-base",
1195
+ // Maps to fontSize.base[0] - default
1196
+ lg: "text-base",
1197
+ // Maps to fontSize.base[0]
1198
+ xl: "text-lg"
1199
+ // Maps to fontSize.lg[0]
1200
+ },
1201
+ /**
1202
+ * Responsive font size (md breakpoint)
1203
+ */
1204
+ fontSizeResponsive: {
1205
+ md: "md:text-sm"
1206
+ // Maps to fontSize.sm[0] at md breakpoint
1207
+ },
1208
+ /**
1209
+ * Shadow token
1210
+ * Maps to foundation elevation shadow tokens
1211
+ */
1212
+ shadow: "shadow-sm",
1213
+ // Maps to elevationShadows.sm
1214
+ /**
1215
+ * File input tokens
1216
+ * Styling for file input elements
1217
+ */
1218
+ file: {
1219
+ text: "text-[hsl(var(--foreground))]"
1220
+ // File input text color using CSS var
1221
+ },
1222
+ /**
1223
+ * Select listbox tokens
1224
+ * Styling for select dropdown container
1225
+ */
1226
+ selectListbox: {
1227
+ border: "border border-[hsl(var(--border))]",
1228
+ // Border color using CSS var
1229
+ background: "bg-[hsl(var(--popover))]",
1230
+ // Background using CSS var
1231
+ text: "text-[hsl(var(--popover-foreground))]",
1232
+ // Text color using CSS var
1233
+ radius: "rounded-md",
1234
+ // Radius token (6px)
1235
+ shadow: "shadow-md"
1236
+ // Shadow token
1237
+ },
1238
+ /**
1239
+ * Select option tokens
1240
+ * Styling for select option items
1241
+ */
1242
+ selectOption: {
1243
+ focus: {
1244
+ background: "focus:bg-[hsl(var(--accent))]",
1245
+ // Focus background using CSS var
1246
+ text: "focus:text-[hsl(var(--accent-foreground))]"
1247
+ // Focus text using CSS var
1248
+ },
1249
+ selected: {
1250
+ background: "bg-[hsl(var(--accent))]",
1251
+ // Selected background using CSS var
1252
+ text: "text-[hsl(var(--accent-foreground))]"
1253
+ // Selected text using CSS var
1254
+ }
1255
+ },
1256
+ /**
1257
+ * Variant-based tokens
1258
+ * Border, background, and text colors for different variants
1259
+ * All use CSS variable references for theme support
1260
+ */
1261
+ variant: {
1262
+ primary: {
1263
+ border: "border-[hsl(var(--tm-primary))]",
1264
+ // Primary border color
1265
+ background: "bg-[hsl(var(--tm-primary))]",
1266
+ // Primary background
1267
+ text: "text-[hsl(var(--tm-primary-foreground))]",
1268
+ // Primary text color
1269
+ focus: "focus-visible:shadow-[var(--focus-ring-primary)]"
1270
+ // Primary focus ring
1271
+ },
1272
+ secondary: {
1273
+ border: "border-[hsl(var(--tm-secondary))]",
1274
+ // Secondary border color
1275
+ background: "bg-[hsl(var(--tm-secondary))]",
1276
+ // Secondary background
1277
+ text: "text-[hsl(var(--tm-secondary-foreground))]",
1278
+ // Secondary text color
1279
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
1280
+ // Default focus ring
1281
+ },
1282
+ outline: {
1283
+ border: "border-[hsl(var(--input))]",
1284
+ // Input border color
1285
+ background: "bg-transparent",
1286
+ // Transparent background
1287
+ text: "text-[hsl(var(--foreground))]",
1288
+ // Foreground text color
1289
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
1290
+ // Default focus ring
1291
+ },
1292
+ ghost: {
1293
+ border: "border-transparent",
1294
+ // Transparent border
1295
+ background: "bg-transparent",
1296
+ // Transparent background
1297
+ text: "text-[hsl(var(--foreground))]",
1298
+ // Foreground text color
1299
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
1300
+ // Default focus ring
1301
+ },
1302
+ destructive: {
1303
+ border: "border-[hsl(var(--destructive))]",
1304
+ // Destructive border color
1305
+ background: "bg-[hsl(var(--destructive))]",
1306
+ // Destructive background
1307
+ text: "text-[hsl(var(--destructive-foreground))]",
1308
+ // Destructive text color
1309
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
1310
+ // Default focus ring
1311
+ }
1312
+ },
1313
+ /**
1314
+ * State-based tokens
1315
+ * Border, background, and text colors for different states
1316
+ * All use CSS variable references for theme support
1317
+ */
1318
+ state: {
1319
+ border: {
1320
+ default: "border-[hsl(var(--input))]",
1321
+ // Default border color using CSS var
1322
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]",
1323
+ // Focus ring using CSS var
1324
+ error: "border-[hsl(var(--destructive))]",
1325
+ // Error state border using CSS var
1326
+ success: "border-[hsl(var(--semantic-success))]",
1327
+ // Success state border using CSS var
1328
+ disabled: "border-[hsl(var(--input))]"
1329
+ // Disabled state border (same as default)
1330
+ },
1331
+ background: {
1332
+ default: "bg-transparent",
1333
+ // Default background
1334
+ disabled: "bg-transparent"
1335
+ // Disabled background (same as default)
1336
+ },
1337
+ text: {
1338
+ default: "text-[hsl(var(--foreground))]",
1339
+ // Default text color using CSS var
1340
+ placeholder: "placeholder:text-[hsl(var(--muted-foreground))]",
1341
+ // Placeholder text color using CSS var
1342
+ disabled: "disabled:opacity-50"
1343
+ // Disabled text opacity
1344
+ }
1345
+ },
1346
+ /**
1347
+ * Icon tokens
1348
+ * Size, spacing, and color for icons within inputs
1349
+ */
1350
+ icon: {
1351
+ size: "size-4",
1352
+ // 16px (1rem) - maps to spacing[4]
1353
+ gap: "gap-sm",
1354
+ // 8px (0.5rem) - maps to semanticSpacing.sm
1355
+ paddingLeft: "pl-lg",
1356
+ // 24px (1.5rem) - padding when icon on left
1357
+ paddingRight: "pr-lg",
1358
+ // 24px (1.5rem) - padding when icon on right
1359
+ color: "text-[hsl(var(--muted-foreground))]",
1360
+ // Icon color using CSS variable
1361
+ position: {
1362
+ left: "left-0",
1363
+ // Position left
1364
+ right: "right-0",
1365
+ // Position right
1366
+ top: "top-0"
1367
+ // Position top
1368
+ }
1369
+ },
1370
+ /**
1371
+ * Label tokens
1372
+ * Spacing and styling for labels
1373
+ */
669
1374
  label: {
670
- fontFamily: n.sans.join(", "),
671
- fontSize: e.sm[0],
672
- fontWeight: a.medium,
673
- lineHeight: s.normal,
674
- letterSpacing: o.wide
675
- },
676
- "label-sm": {
677
- fontFamily: n.sans.join(", "),
678
- fontSize: e.xs[0],
679
- fontWeight: a.medium,
680
- lineHeight: s.normal,
681
- letterSpacing: o.wider
682
- },
683
- // Caption styles
684
- caption: {
685
- fontFamily: n.sans.join(", "),
686
- fontSize: e.xs[0],
687
- fontWeight: a.normal,
688
- lineHeight: s.normal,
689
- letterSpacing: o.wide
1375
+ spacing: "space-y-sm",
1376
+ // 8px (0.5rem) - spacing between label and control
1377
+ requiredMark: "text-destructive"
1378
+ // Color for required asterisk
1379
+ },
1380
+ /**
1381
+ * Width tokens
1382
+ * Common width utilities
1383
+ */
1384
+ width: {
1385
+ full: "w-full"
1386
+ // Full width (100%)
1387
+ },
1388
+ /**
1389
+ * Message tokens
1390
+ * Spacing, positioning, and styling for helper text and error messages
1391
+ */
1392
+ message: {
1393
+ spacing: "space-y-sm",
1394
+ // 8px (0.5rem) - spacing between control and message
1395
+ position: {
1396
+ bottom: "bottom-sm",
1397
+ // 8px (0.5rem) - bottom position for character counter
1398
+ right: "right-sm"
1399
+ // 8px (0.5rem) - right position for character counter
1400
+ },
1401
+ color: {
1402
+ default: "text-[hsl(var(--muted-foreground))]",
1403
+ // Default message color
1404
+ error: "text-[hsl(var(--destructive))]",
1405
+ // Error message color
1406
+ success: "text-[hsl(var(--semantic-success))]"
1407
+ // Success message color
1408
+ }
1409
+ },
1410
+ /**
1411
+ * Size-based token structure
1412
+ * Organized by size for easy access
1413
+ */
1414
+ size: {
1415
+ xs: {
1416
+ height: "h-7",
1417
+ padding: {
1418
+ horizontal: "px-xs",
1419
+ vertical: "py-xs"
1420
+ },
1421
+ radius: "rounded-sm",
1422
+ fontSize: "text-xs",
1423
+ shadow: "shadow-sm"
1424
+ },
1425
+ sm: {
1426
+ height: "h-8",
1427
+ padding: {
1428
+ horizontal: "px-sm",
1429
+ vertical: "py-xs"
1430
+ },
1431
+ radius: "rounded-md",
1432
+ fontSize: "text-sm",
1433
+ shadow: "shadow-sm"
1434
+ },
1435
+ md: {
1436
+ height: "h-9",
1437
+ padding: {
1438
+ horizontal: "px-sm",
1439
+ vertical: "py-xs"
1440
+ },
1441
+ radius: "rounded-md",
1442
+ fontSize: "text-base",
1443
+ fontSizeResponsive: "md:text-sm",
1444
+ shadow: "shadow-sm"
1445
+ },
1446
+ lg: {
1447
+ height: "h-10",
1448
+ padding: {
1449
+ horizontal: "px-md",
1450
+ vertical: "py-sm"
1451
+ },
1452
+ radius: "rounded-md",
1453
+ fontSize: "text-base",
1454
+ shadow: "shadow-sm"
1455
+ },
1456
+ xl: {
1457
+ height: "h-11",
1458
+ padding: {
1459
+ horizontal: "px-lg",
1460
+ vertical: "py-md"
1461
+ },
1462
+ radius: "rounded-lg",
1463
+ fontSize: "text-lg",
1464
+ shadow: "shadow-sm"
1465
+ }
690
1466
  }
691
- }, V = {
692
- fontFamily: {
693
- sans: [...n.sans],
694
- satoshi: [...n.satoshi],
695
- display: [...n.display],
696
- serif: [...n.serif],
697
- mono: [...n.mono]
1467
+ }, z = {
1468
+ /**
1469
+ * Checkbox sizes by size variant
1470
+ * Supports xs, sm, md, lg, xl sizes
1471
+ * Checkboxes are typically square and smaller than input fields
1472
+ */
1473
+ size: {
1474
+ xs: {
1475
+ width: "w-3.5",
1476
+ // 14px (0.875rem)
1477
+ height: "h-3.5",
1478
+ // 14px (0.875rem)
1479
+ radius: "rounded-sm",
1480
+ // 4px (0.25rem)
1481
+ iconSize: "size-2.5"
1482
+ // 10px (0.625rem)
1483
+ },
1484
+ sm: {
1485
+ width: "w-4",
1486
+ // 16px (1rem)
1487
+ height: "h-4",
1488
+ // 16px (1rem)
1489
+ radius: "rounded-sm",
1490
+ // 4px (0.25rem)
1491
+ iconSize: "size-3"
1492
+ // 12px (0.75rem)
1493
+ },
1494
+ md: {
1495
+ width: "w-4.5",
1496
+ // 18px (1.125rem) - default
1497
+ height: "h-4.5",
1498
+ // 18px (1.125rem) - default
1499
+ radius: "rounded-md",
1500
+ // 6px (0.375rem)
1501
+ iconSize: "size-3.5"
1502
+ // 14px (0.875rem)
1503
+ },
1504
+ lg: {
1505
+ width: "w-5",
1506
+ // 20px (1.25rem)
1507
+ height: "h-5",
1508
+ // 20px (1.25rem)
1509
+ radius: "rounded-md",
1510
+ // 6px (0.375rem)
1511
+ iconSize: "size-4"
1512
+ // 16px (1rem)
1513
+ },
1514
+ xl: {
1515
+ width: "w-6",
1516
+ // 24px (1.5rem)
1517
+ height: "h-6",
1518
+ // 24px (1.5rem)
1519
+ radius: "rounded-md",
1520
+ // 6px (0.375rem)
1521
+ iconSize: "size-5"
1522
+ // 20px (1.25rem)
1523
+ }
1524
+ },
1525
+ /**
1526
+ * Variant-based tokens
1527
+ * Border, background, and text colors for different variants
1528
+ * All use CSS variable references for theme support
1529
+ */
1530
+ variant: {
1531
+ primary: {
1532
+ border: "border-[hsl(var(--tm-primary))]",
1533
+ // Primary border color
1534
+ background: "bg-[hsl(var(--tm-primary))]",
1535
+ // Primary background
1536
+ text: "text-[hsl(var(--tm-primary-foreground))]",
1537
+ // Primary text color (for checkmark)
1538
+ focus: "focus-visible:shadow-[var(--focus-ring-primary)]"
1539
+ // Primary focus ring
1540
+ },
1541
+ secondary: {
1542
+ border: "border-[hsl(var(--tm-secondary))]",
1543
+ // Secondary border color
1544
+ background: "bg-[hsl(var(--tm-secondary))]",
1545
+ // Secondary background
1546
+ text: "text-[hsl(var(--tm-secondary-foreground))]",
1547
+ // Secondary text color (for checkmark)
1548
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
1549
+ // Default focus ring
1550
+ },
1551
+ outline: {
1552
+ border: "border-[hsl(var(--input))]",
1553
+ // Input border color
1554
+ background: "bg-transparent",
1555
+ // Transparent background
1556
+ text: "text-[hsl(var(--foreground))]",
1557
+ // Foreground text color (for checkmark)
1558
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
1559
+ // Default focus ring
1560
+ },
1561
+ ghost: {
1562
+ border: "border-transparent",
1563
+ // Transparent border
1564
+ background: "bg-transparent",
1565
+ // Transparent background
1566
+ text: "text-[hsl(var(--foreground))]",
1567
+ // Foreground text color (for checkmark)
1568
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
1569
+ // Default focus ring
1570
+ },
1571
+ destructive: {
1572
+ border: "border-[hsl(var(--destructive))]",
1573
+ // Destructive border color
1574
+ background: "bg-[hsl(var(--destructive))]",
1575
+ // Destructive background
1576
+ text: "text-[hsl(var(--destructive-foreground))]",
1577
+ // Destructive text color (for checkmark)
1578
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
1579
+ // Default focus ring
1580
+ }
1581
+ },
1582
+ /**
1583
+ * State-based tokens
1584
+ * Border, background, and text colors for different states
1585
+ * All use CSS variable references for theme support
1586
+ */
1587
+ state: {
1588
+ border: {
1589
+ default: "border-[hsl(var(--input))]",
1590
+ // Default border color using CSS var
1591
+ checked: "border-[hsl(var(--tm-primary))]",
1592
+ // Checked state border
1593
+ indeterminate: "border-[hsl(var(--tm-primary))]",
1594
+ // Indeterminate state border
1595
+ error: "border-[hsl(var(--destructive))]",
1596
+ // Error state border using CSS var
1597
+ disabled: "border-[hsl(var(--input))]",
1598
+ // Disabled state border (same as default)
1599
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
1600
+ // Focus ring using CSS var
1601
+ },
1602
+ background: {
1603
+ default: "bg-transparent",
1604
+ // Default background
1605
+ checked: "bg-[hsl(var(--tm-primary))]",
1606
+ // Checked state background
1607
+ indeterminate: "bg-[hsl(var(--tm-primary))]",
1608
+ // Indeterminate state background
1609
+ disabled: "bg-transparent",
1610
+ // Disabled background (same as default)
1611
+ disabledChecked: "bg-[hsl(var(--muted))]"
1612
+ // Disabled checked background
1613
+ },
1614
+ text: {
1615
+ default: "text-[hsl(var(--foreground))]",
1616
+ // Default text color using CSS var
1617
+ checked: "text-[hsl(var(--tm-primary-foreground))]",
1618
+ // Checked state text (for checkmark)
1619
+ indeterminate: "text-[hsl(var(--tm-primary-foreground))]",
1620
+ // Indeterminate state text
1621
+ disabled: "disabled:opacity-50"
1622
+ // Disabled text opacity
1623
+ }
1624
+ },
1625
+ /**
1626
+ * Icon tokens
1627
+ * Size and styling for checkmark icon within checkbox
1628
+ */
1629
+ icon: {
1630
+ size: {
1631
+ xs: "size-2.5",
1632
+ // 10px (0.625rem)
1633
+ sm: "size-3",
1634
+ // 12px (0.75rem)
1635
+ md: "size-3.5",
1636
+ // 14px (0.875rem) - default
1637
+ lg: "size-4",
1638
+ // 16px (1rem)
1639
+ xl: "size-5"
1640
+ // 20px (1.25rem)
1641
+ },
1642
+ stroke: "stroke-2",
1643
+ // 2px stroke width for checkmark
1644
+ color: {
1645
+ default: "text-[hsl(var(--tm-primary-foreground))]",
1646
+ // Default checkmark color
1647
+ disabled: "text-[hsl(var(--muted-foreground))]"
1648
+ // Disabled checkmark color
1649
+ }
1650
+ },
1651
+ /**
1652
+ * Indeterminate indicator tokens
1653
+ * Styling for indeterminate state (horizontal line)
1654
+ */
1655
+ indeterminate: {
1656
+ width: "w-2",
1657
+ // Width of indeterminate indicator
1658
+ height: "h-0.5",
1659
+ // Height of indeterminate indicator (horizontal line)
1660
+ color: "bg-[hsl(var(--tm-primary-foreground))]"
1661
+ // Color of indeterminate indicator
1662
+ },
1663
+ /**
1664
+ * Shadow token
1665
+ * Maps to foundation elevation shadow tokens
1666
+ */
1667
+ shadow: "shadow-sm",
1668
+ // Maps to elevationShadows.sm
1669
+ /**
1670
+ * Transition tokens
1671
+ * Smooth transitions for state changes
1672
+ */
1673
+ transition: "transition-all duration-200 ease-in-out"
1674
+ // Smooth transitions
1675
+ }, O = {
1676
+ /**
1677
+ * Track sizes by size variant
1678
+ * Supports xs, sm, md, lg, xl sizes
1679
+ * Track is wider than tall (typical switch proportions)
1680
+ */
1681
+ track: {
1682
+ xs: {
1683
+ width: "w-8",
1684
+ // 32px (2rem)
1685
+ height: "h-4",
1686
+ // 16px (1rem)
1687
+ radius: "rounded-full"
1688
+ // Fully rounded
1689
+ },
1690
+ sm: {
1691
+ width: "w-9",
1692
+ // 36px (2.25rem)
1693
+ height: "h-5",
1694
+ // 20px (1.25rem)
1695
+ radius: "rounded-full"
1696
+ // Fully rounded
1697
+ },
1698
+ md: {
1699
+ width: "w-11",
1700
+ // 44px (2.75rem) - default
1701
+ height: "h-6",
1702
+ // 24px (1.5rem) - default
1703
+ radius: "rounded-full"
1704
+ // Fully rounded
1705
+ },
1706
+ lg: {
1707
+ width: "w-14",
1708
+ // 56px (3.5rem)
1709
+ height: "h-7",
1710
+ // 28px (1.75rem)
1711
+ radius: "rounded-full"
1712
+ // Fully rounded
1713
+ },
1714
+ xl: {
1715
+ width: "w-16",
1716
+ // 64px (4rem)
1717
+ height: "h-8",
1718
+ // 32px (2rem)
1719
+ radius: "rounded-full"
1720
+ // Fully rounded
1721
+ }
1722
+ },
1723
+ /**
1724
+ * Handle sizes by size variant
1725
+ * Circular thumb that slides within the track
1726
+ * Slightly smaller than track height to allow for padding
1727
+ */
1728
+ handle: {
1729
+ xs: {
1730
+ width: "w-3",
1731
+ // 12px (0.75rem)
1732
+ height: "h-3",
1733
+ // 12px (0.75rem)
1734
+ radius: "rounded-full",
1735
+ // Fully rounded
1736
+ translate: "translate-x-4"
1737
+ // Distance to move when checked (32px - 12px - 4px padding = 16px)
1738
+ },
1739
+ sm: {
1740
+ width: "w-4",
1741
+ // 16px (1rem)
1742
+ height: "h-4",
1743
+ // 16px (1rem)
1744
+ radius: "rounded-full",
1745
+ // Fully rounded
1746
+ translate: "translate-x-4"
1747
+ // Distance to move when checked (36px - 16px - 4px padding = 16px)
1748
+ },
1749
+ md: {
1750
+ width: "w-5",
1751
+ // 20px (1.25rem) - default
1752
+ height: "h-5",
1753
+ // 20px (1.25rem) - default
1754
+ radius: "rounded-full",
1755
+ // Fully rounded
1756
+ translate: "translate-x-5"
1757
+ // Distance to move when checked (44px - 20px - 4px padding = 20px)
1758
+ },
1759
+ lg: {
1760
+ width: "w-6",
1761
+ // 24px (1.5rem)
1762
+ height: "h-6",
1763
+ // 24px (1.5rem)
1764
+ radius: "rounded-full",
1765
+ // Fully rounded
1766
+ translate: "translate-x-7"
1767
+ // Distance to move when checked (56px - 24px - 4px padding = 28px)
1768
+ },
1769
+ xl: {
1770
+ width: "w-7",
1771
+ // 28px (1.75rem)
1772
+ height: "h-7",
1773
+ // 28px (1.75rem)
1774
+ radius: "rounded-full",
1775
+ // Fully rounded
1776
+ translate: "translate-x-8"
1777
+ // Distance to move when checked (64px - 28px - 4px padding = 32px)
1778
+ },
1779
+ /**
1780
+ * Handle positioning tokens
1781
+ * For absolute positioning within the track
1782
+ */
1783
+ position: {
1784
+ left: "left-xs",
1785
+ // 4px (0.125rem) - small offset from track edge
1786
+ top: "top-1/2",
1787
+ // Center vertically (50%)
1788
+ center: "-translate-y-1/2"
1789
+ // Center vertically using transform
1790
+ }
1791
+ },
1792
+ /**
1793
+ * Variant-based tokens
1794
+ * Track and handle colors for different variants
1795
+ * All use CSS variable references for theme support
1796
+ */
1797
+ variant: {
1798
+ primary: {
1799
+ track: {
1800
+ unchecked: "bg-[hsl(var(--input))]",
1801
+ // Input border color when unchecked
1802
+ checked: "bg-[hsl(var(--tm-primary))]"
1803
+ // Primary color when checked
1804
+ },
1805
+ handle: {
1806
+ unchecked: "bg-[hsl(var(--muted))]",
1807
+ // Muted color when unchecked
1808
+ checked: "bg-[hsl(var(--tm-primary-foreground))]"
1809
+ // Primary foreground when checked
1810
+ },
1811
+ focus: "focus-visible:shadow-[var(--focus-ring-primary)]"
1812
+ // Primary focus ring
1813
+ },
1814
+ secondary: {
1815
+ track: {
1816
+ unchecked: "bg-[hsl(var(--input))]",
1817
+ // Input border color when unchecked
1818
+ checked: "bg-[hsl(var(--tm-secondary))]"
1819
+ // Secondary color when checked
1820
+ },
1821
+ handle: {
1822
+ unchecked: "bg-[hsl(var(--muted))]",
1823
+ // Muted color when unchecked
1824
+ checked: "bg-[hsl(var(--tm-secondary-foreground))]"
1825
+ // Secondary foreground when checked
1826
+ },
1827
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
1828
+ // Default focus ring
1829
+ },
1830
+ outline: {
1831
+ track: {
1832
+ unchecked: "bg-[hsl(var(--input))]",
1833
+ // Input border color when unchecked
1834
+ checked: "bg-[hsl(var(--tm-primary))]"
1835
+ // Primary color when checked
1836
+ },
1837
+ handle: {
1838
+ unchecked: "bg-[hsl(var(--muted))]",
1839
+ // Muted color when unchecked
1840
+ checked: "bg-[hsl(var(--tm-primary-foreground))]"
1841
+ // Primary foreground when checked
1842
+ },
1843
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
1844
+ // Default focus ring
1845
+ },
1846
+ ghost: {
1847
+ track: {
1848
+ unchecked: "bg-[hsl(var(--muted))]",
1849
+ // Muted background when unchecked
1850
+ checked: "bg-[hsl(var(--tm-primary))]"
1851
+ // Primary color when checked
1852
+ },
1853
+ handle: {
1854
+ unchecked: "bg-[hsl(var(--muted-foreground))]",
1855
+ // Muted foreground when unchecked
1856
+ checked: "bg-[hsl(var(--tm-primary-foreground))]"
1857
+ // Primary foreground when checked
1858
+ },
1859
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
1860
+ // Default focus ring
1861
+ },
1862
+ destructive: {
1863
+ track: {
1864
+ unchecked: "bg-[hsl(var(--input))]",
1865
+ // Input border color when unchecked
1866
+ checked: "bg-[hsl(var(--destructive))]"
1867
+ // Destructive color when checked
1868
+ },
1869
+ handle: {
1870
+ unchecked: "bg-[hsl(var(--muted))]",
1871
+ // Muted color when unchecked
1872
+ checked: "bg-[hsl(var(--destructive-foreground))]"
1873
+ // Destructive foreground when checked
1874
+ },
1875
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
1876
+ // Default focus ring
1877
+ }
1878
+ },
1879
+ /**
1880
+ * State-based tokens
1881
+ * Track and handle colors for different states
1882
+ * All use CSS variable references for theme support
1883
+ */
1884
+ state: {
1885
+ track: {
1886
+ default: "bg-[hsl(var(--input))]",
1887
+ // Default track color using CSS var
1888
+ checked: "bg-[hsl(var(--tm-primary))]",
1889
+ // Checked state track
1890
+ disabled: "bg-[hsl(var(--muted))]",
1891
+ // Disabled state track
1892
+ disabledChecked: "bg-[hsl(var(--muted))]",
1893
+ // Disabled checked track
1894
+ error: "bg-[hsl(var(--destructive))]"
1895
+ // Error state track using CSS var
1896
+ },
1897
+ handle: {
1898
+ default: "bg-[hsl(var(--muted-foreground))]",
1899
+ // Default handle color using CSS var
1900
+ checked: "bg-[hsl(var(--tm-primary-foreground))]",
1901
+ // Checked state handle
1902
+ disabled: "bg-[hsl(var(--muted-foreground))]",
1903
+ // Disabled state handle
1904
+ disabledChecked: "bg-[hsl(var(--muted-foreground))]",
1905
+ // Disabled checked handle
1906
+ error: "bg-[hsl(var(--destructive-foreground))]"
1907
+ // Error state handle
1908
+ },
1909
+ opacity: {
1910
+ disabled: "opacity-50"
1911
+ // Disabled opacity
1912
+ }
1913
+ },
1914
+ /**
1915
+ * Transition tokens
1916
+ * Smooth transitions for handle animation and state changes
1917
+ * Uses motion tokens for duration and easing
1918
+ */
1919
+ transition: {
1920
+ handle: "transition-transform duration-300 ease-in-out",
1921
+ // Handle slide animation
1922
+ track: "transition-colors duration-300 ease-in-out",
1923
+ // Track color transition
1924
+ combined: "transition-all duration-300 ease-in-out"
1925
+ // Combined transitions
1926
+ },
1927
+ /**
1928
+ * Shadow token
1929
+ * Maps to foundation elevation shadow tokens
1930
+ */
1931
+ shadow: "shadow-sm",
1932
+ // Maps to elevationShadows.sm
1933
+ /**
1934
+ * Padding token
1935
+ * Space between track edge and handle
1936
+ */
1937
+ padding: "p-0.5"
1938
+ // 2px padding around handle
1939
+ }, T = {
1940
+ /**
1941
+ * Radio sizes by size variant
1942
+ * Supports xs, sm, md, lg, xl sizes
1943
+ * Radios are typically circular and smaller than input fields
1944
+ */
1945
+ size: {
1946
+ xs: {
1947
+ width: "w-3.5",
1948
+ // 14px (0.875rem)
1949
+ height: "h-3.5",
1950
+ // 14px (0.875rem)
1951
+ radius: "rounded-full",
1952
+ // Fully circular
1953
+ dotSize: "size-1.5"
1954
+ // 6px (0.375rem) - inner dot
1955
+ },
1956
+ sm: {
1957
+ width: "w-4",
1958
+ // 16px (1rem)
1959
+ height: "h-4",
1960
+ // 16px (1rem)
1961
+ radius: "rounded-full",
1962
+ // Fully circular
1963
+ dotSize: "size-2"
1964
+ // 8px (0.5rem) - inner dot
1965
+ },
1966
+ md: {
1967
+ width: "w-4.5",
1968
+ // 18px (1.125rem) - default
1969
+ height: "h-4.5",
1970
+ // 18px (1.125rem) - default
1971
+ radius: "rounded-full",
1972
+ // Fully circular
1973
+ dotSize: "size-2.5"
1974
+ // 10px (0.625rem) - inner dot
1975
+ },
1976
+ lg: {
1977
+ width: "w-5",
1978
+ // 20px (1.25rem)
1979
+ height: "h-5",
1980
+ // 20px (1.25rem)
1981
+ radius: "rounded-full",
1982
+ // Fully circular
1983
+ dotSize: "size-3"
1984
+ // 12px (0.75rem) - inner dot
1985
+ },
1986
+ xl: {
1987
+ width: "w-6",
1988
+ // 24px (1.5rem)
1989
+ height: "h-6",
1990
+ // 24px (1.5rem)
1991
+ radius: "rounded-full",
1992
+ // Fully circular
1993
+ dotSize: "size-3.5"
1994
+ // 14px (0.875rem) - inner dot
1995
+ }
1996
+ },
1997
+ /**
1998
+ * Variant-based tokens
1999
+ * Border, background, and text colors for different variants
2000
+ * All use CSS variable references for theme support
2001
+ */
2002
+ variant: {
2003
+ primary: {
2004
+ border: "border-[hsl(var(--tm-primary))]",
2005
+ // Primary border color
2006
+ background: "bg-[hsl(var(--tm-primary))]",
2007
+ // Primary background
2008
+ text: "text-[hsl(var(--tm-primary-foreground))]",
2009
+ // Primary text color (for dot)
2010
+ focus: "focus-visible:shadow-[var(--focus-ring-primary)]"
2011
+ // Primary focus ring
2012
+ },
2013
+ secondary: {
2014
+ border: "border-[hsl(var(--tm-secondary))]",
2015
+ // Secondary border color
2016
+ background: "bg-[hsl(var(--tm-secondary))]",
2017
+ // Secondary background
2018
+ text: "text-[hsl(var(--tm-secondary-foreground))]",
2019
+ // Secondary text color (for dot)
2020
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
2021
+ // Default focus ring
2022
+ },
2023
+ outline: {
2024
+ border: "border-[hsl(var(--input))]",
2025
+ // Input border color
2026
+ background: "bg-transparent",
2027
+ // Transparent background
2028
+ text: "text-[hsl(var(--foreground))]",
2029
+ // Foreground text color (for dot)
2030
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
2031
+ // Default focus ring
2032
+ },
2033
+ ghost: {
2034
+ border: "border-transparent",
2035
+ // Transparent border
2036
+ background: "bg-transparent",
2037
+ // Transparent background
2038
+ text: "text-[hsl(var(--foreground))]",
2039
+ // Foreground text color (for dot)
2040
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
2041
+ // Default focus ring
2042
+ },
2043
+ destructive: {
2044
+ border: "border-[hsl(var(--destructive))]",
2045
+ // Destructive border color
2046
+ background: "bg-[hsl(var(--destructive))]",
2047
+ // Destructive background
2048
+ text: "text-[hsl(var(--destructive-foreground))]",
2049
+ // Destructive text color (for dot)
2050
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
2051
+ // Default focus ring
2052
+ }
698
2053
  },
2054
+ /**
2055
+ * State-based tokens
2056
+ * Border, background, and text colors for different states
2057
+ * All use CSS variable references for theme support
2058
+ */
2059
+ state: {
2060
+ border: {
2061
+ default: "border-[hsl(var(--input))]",
2062
+ // Default border color using CSS var
2063
+ checked: "border-[hsl(var(--tm-primary))]",
2064
+ // Checked state border
2065
+ error: "border-[hsl(var(--destructive))]",
2066
+ // Error state border using CSS var
2067
+ disabled: "border-[hsl(var(--input))]",
2068
+ // Disabled state border (same as default)
2069
+ focus: "focus-visible:shadow-[var(--focus-ring-default)]"
2070
+ // Focus ring using CSS var
2071
+ },
2072
+ background: {
2073
+ default: "bg-transparent",
2074
+ // Default background
2075
+ checked: "bg-[hsl(var(--tm-primary))]",
2076
+ // Checked state background
2077
+ disabled: "bg-transparent",
2078
+ // Disabled background (same as default)
2079
+ disabledChecked: "bg-[hsl(var(--muted))]"
2080
+ // Disabled checked background
2081
+ },
2082
+ text: {
2083
+ default: "text-[hsl(var(--foreground))]",
2084
+ // Default text color using CSS var
2085
+ checked: "text-[hsl(var(--tm-primary-foreground))]",
2086
+ // Checked state text (for dot)
2087
+ disabled: "disabled:opacity-50"
2088
+ // Disabled text opacity
2089
+ }
2090
+ },
2091
+ /**
2092
+ * Dot tokens (inner filled circle indicator)
2093
+ * Size and styling for radio dot within radio button
2094
+ */
2095
+ dot: {
2096
+ size: {
2097
+ xs: "size-1.5",
2098
+ // 6px (0.375rem)
2099
+ sm: "size-2",
2100
+ // 8px (0.5rem)
2101
+ md: "size-2.5",
2102
+ // 10px (0.625rem) - default
2103
+ lg: "size-3",
2104
+ // 12px (0.75rem)
2105
+ xl: "size-3.5"
2106
+ // 14px (0.875rem)
2107
+ },
2108
+ color: {
2109
+ default: "bg-[hsl(var(--tm-primary-foreground))]",
2110
+ // Default dot color
2111
+ disabled: "bg-[hsl(var(--muted-foreground))]"
2112
+ // Disabled dot color
2113
+ },
2114
+ radius: "rounded-full"
2115
+ // Fully circular dot
2116
+ },
2117
+ /**
2118
+ * Shadow token
2119
+ * Maps to foundation elevation shadow tokens
2120
+ */
2121
+ shadow: "shadow-sm",
2122
+ // Maps to elevationShadows.sm
2123
+ /**
2124
+ * Transition tokens
2125
+ * Smooth transitions for state changes
2126
+ */
2127
+ transition: "transition-all duration-200 ease-in-out"
2128
+ // Smooth transitions
2129
+ }, C = {
2130
+ /**
2131
+ * Padding values for surface variants
2132
+ * Can be customized per variant if needed
2133
+ */
2134
+ padding: {
2135
+ default: "p-md",
2136
+ // 16px (1rem) - maps to semanticSpacing.md
2137
+ sm: "p-sm",
2138
+ // 8px (0.5rem) - maps to semanticSpacing.sm
2139
+ md: "p-md",
2140
+ // 16px (1rem) - maps to semanticSpacing.md
2141
+ lg: "p-lg"
2142
+ // 24px (1.5rem) - maps to semanticSpacing.lg
2143
+ },
2144
+ /**
2145
+ * Border radius for surfaces
2146
+ */
2147
+ radius: {
2148
+ default: "rounded-md",
2149
+ // 6px (0.375rem) - maps to borderRadius.md
2150
+ sm: "rounded-sm",
2151
+ // 4px (0.25rem) - maps to borderRadius.sm
2152
+ md: "rounded-md",
2153
+ // 6px (0.375rem) - maps to borderRadius.md
2154
+ lg: "rounded-lg"
2155
+ // 8px (0.5rem) - maps to borderRadius.lg
2156
+ },
2157
+ /**
2158
+ * Shadow tokens by surface variant
2159
+ * Maps to foundation elevation shadow tokens
2160
+ */
2161
+ shadow: {
2162
+ flat: "shadow-none",
2163
+ // No shadow - maps to elevationShadows.none
2164
+ raised: "shadow-sm",
2165
+ // Small shadow - maps to elevationShadows.sm
2166
+ sunken: "shadow-none",
2167
+ // No shadow - maps to elevationShadows.none
2168
+ outline: "shadow-none",
2169
+ // No shadow - border-focused variant
2170
+ subtle: "shadow-none"
2171
+ // No shadow - minimal background difference
2172
+ },
2173
+ /**
2174
+ * Variant-based token structure
2175
+ * Organized by variant for easy access
2176
+ */
2177
+ variant: {
2178
+ flat: {
2179
+ padding: "p-md",
2180
+ radius: "rounded-md",
2181
+ shadow: "shadow-none",
2182
+ bg: "bg-background",
2183
+ border: "border border-border"
2184
+ },
2185
+ raised: {
2186
+ padding: "p-md",
2187
+ radius: "rounded-md",
2188
+ shadow: "shadow-sm",
2189
+ bg: "bg-card",
2190
+ border: "border border-border"
2191
+ },
2192
+ sunken: {
2193
+ padding: "p-md",
2194
+ radius: "rounded-md",
2195
+ shadow: "shadow-none",
2196
+ bg: "bg-muted",
2197
+ border: "border border-border"
2198
+ },
2199
+ outline: {
2200
+ padding: "p-md",
2201
+ radius: "rounded-md",
2202
+ shadow: "shadow-none",
2203
+ bg: "bg-transparent",
2204
+ border: "border-2 border-border"
2205
+ },
2206
+ subtle: {
2207
+ padding: "p-md",
2208
+ radius: "rounded-md",
2209
+ shadow: "shadow-none",
2210
+ bg: "bg-muted/50",
2211
+ border: "border border-border/50"
2212
+ }
2213
+ }
2214
+ }, N = {
2215
+ /**
2216
+ * Font sizes by text size variant
2217
+ * Maps to foundation fontSize tokens
2218
+ */
699
2219
  fontSize: {
700
- xs: [
701
- e.xs[0],
702
- { lineHeight: e.xs[1].lineHeight, letterSpacing: e.xs[1].letterSpacing }
703
- ],
704
- sm: [
705
- e.sm[0],
706
- { lineHeight: e.sm[1].lineHeight, letterSpacing: e.sm[1].letterSpacing }
707
- ],
708
- base: [
709
- e.base[0],
710
- { lineHeight: e.base[1].lineHeight, letterSpacing: e.base[1].letterSpacing }
711
- ],
712
- lg: [
713
- e.lg[0],
714
- { lineHeight: e.lg[1].lineHeight, letterSpacing: e.lg[1].letterSpacing }
715
- ],
716
- xl: [
717
- e.xl[0],
718
- { lineHeight: e.xl[1].lineHeight, letterSpacing: e.xl[1].letterSpacing }
719
- ],
720
- "2xl": [
721
- e["2xl"][0],
722
- {
723
- lineHeight: e["2xl"][1].lineHeight,
724
- letterSpacing: e["2xl"][1].letterSpacing
725
- }
726
- ],
727
- "3xl": [
728
- e["3xl"][0],
729
- {
730
- lineHeight: e["3xl"][1].lineHeight,
731
- letterSpacing: e["3xl"][1].letterSpacing
2220
+ xs: "text-xs",
2221
+ // Maps to fontSize.xs[0]
2222
+ sm: "text-sm",
2223
+ // Maps to fontSize.sm[0]
2224
+ md: "text-base",
2225
+ // Maps to fontSize.base[0]
2226
+ lg: "text-lg",
2227
+ // Maps to fontSize.lg[0]
2228
+ xl: "text-xl"
2229
+ // Maps to fontSize.xl[0]
2230
+ },
2231
+ /**
2232
+ * Font weights by weight variant
2233
+ * Maps to foundation fontWeight tokens
2234
+ */
2235
+ fontWeight: {
2236
+ normal: "font-normal",
2237
+ // Maps to fontWeight.normal (400)
2238
+ medium: "font-medium",
2239
+ // Maps to fontWeight.medium (500)
2240
+ semibold: "font-semibold",
2241
+ // Maps to fontWeight.semibold (600)
2242
+ bold: "font-bold"
2243
+ // Maps to fontWeight.bold (700)
2244
+ },
2245
+ /**
2246
+ * Line heights (if component-specific)
2247
+ * Maps to foundation lineHeight tokens
2248
+ */
2249
+ lineHeight: {
2250
+ none: "leading-none",
2251
+ // Maps to lineHeight.none
2252
+ tight: "leading-tight",
2253
+ // Maps to lineHeight.tight
2254
+ normal: "leading-normal",
2255
+ // Maps to lineHeight.normal
2256
+ relaxed: "leading-relaxed",
2257
+ // Maps to lineHeight.relaxed
2258
+ loose: "leading-loose"
2259
+ // Maps to lineHeight.loose
2260
+ },
2261
+ /**
2262
+ * Letter spacing (tracking) values
2263
+ * Maps to foundation letterSpacing tokens
2264
+ */
2265
+ letterSpacing: {
2266
+ tighter: "tracking-tighter",
2267
+ // Maps to letterSpacing.tighter
2268
+ tight: "tracking-tight",
2269
+ // Maps to letterSpacing.tight
2270
+ normal: "tracking-normal",
2271
+ // Maps to letterSpacing.normal
2272
+ wide: "tracking-wide",
2273
+ // Maps to letterSpacing.wide
2274
+ wider: "tracking-wider",
2275
+ // Maps to letterSpacing.wider
2276
+ widest: "tracking-widest"
2277
+ // Maps to letterSpacing.widest
2278
+ }
2279
+ }, E = {
2280
+ /**
2281
+ * Vertical padding for sections
2282
+ * Used for spacing between major page sections
2283
+ */
2284
+ padding: {
2285
+ sm: "py-md",
2286
+ // 16px (1rem) - maps to semanticSpacing.md
2287
+ md: "py-xl",
2288
+ // 32px (2rem) - maps to semanticSpacing.xl
2289
+ lg: "py-2xl",
2290
+ // 48px (3rem) - maps to semanticSpacing.2xl
2291
+ xl: "py-3xl"
2292
+ // 64px (4rem) - maps to semanticSpacing.3xl
2293
+ },
2294
+ /**
2295
+ * Gap spacing for content blocks within sections
2296
+ * Used for spacing between content elements in a section
2297
+ */
2298
+ spacing: {
2299
+ sm: "gap-sm",
2300
+ // 8px (0.5rem) - maps to semanticSpacing.sm
2301
+ md: "gap-md",
2302
+ // 16px (1rem) - maps to semanticSpacing.md
2303
+ lg: "gap-lg",
2304
+ // 24px (1.5rem) - maps to semanticSpacing.lg
2305
+ xl: "gap-xl"
2306
+ // 32px (2rem) - maps to semanticSpacing.xl
2307
+ }
2308
+ }, I = {
2309
+ /**
2310
+ * Backdrop tokens by variant
2311
+ * Maps to SURFACE_TOKENS for background colors
2312
+ */
2313
+ backdrop: {
2314
+ default: {
2315
+ bg: "bg-black/50",
2316
+ // Maps to surface overlay opacity
2317
+ opacity: "opacity-100"
2318
+ },
2319
+ blurred: {
2320
+ bg: "bg-black/50",
2321
+ // Maps to surface overlay opacity
2322
+ opacity: "opacity-100",
2323
+ backdropFilter: "backdrop-blur-sm"
2324
+ // Maps to backdrop blur utilities
2325
+ },
2326
+ transparent: {
2327
+ bg: "bg-transparent",
2328
+ opacity: "opacity-0"
2329
+ }
2330
+ },
2331
+ /**
2332
+ * Modal tokens by size variant
2333
+ * Maps to foundation tokens for spacing, radius, and shadows
2334
+ */
2335
+ modal: {
2336
+ radius: {
2337
+ sm: "rounded-md",
2338
+ // 6px - maps to borderRadius.md / componentRadius.modal.sm
2339
+ md: "rounded-lg",
2340
+ // 8px - maps to borderRadius.lg / componentRadius.modal.md
2341
+ lg: "rounded-xl",
2342
+ // 12px - maps to borderRadius.xl / componentRadius.modal.lg
2343
+ xl: "rounded-2xl",
2344
+ // 16px - maps to borderRadius.2xl / componentRadius.modal.xl
2345
+ fullscreen: "rounded-none"
2346
+ // No radius - maps to borderRadius.none
2347
+ },
2348
+ padding: {
2349
+ sm: "p-md",
2350
+ // 16px - maps to semanticSpacing.md
2351
+ md: "p-lg",
2352
+ // 24px - maps to semanticSpacing.lg
2353
+ lg: "p-xl",
2354
+ // 32px - maps to semanticSpacing.xl
2355
+ xl: "p-xl"
2356
+ // 32px - maps to semanticSpacing.xl (same as lg)
2357
+ },
2358
+ shadow: {
2359
+ sm: "shadow-md",
2360
+ // Maps to elevationShadows.md
2361
+ md: "shadow-lg",
2362
+ // Maps to elevationShadows.lg
2363
+ lg: "shadow-xl",
2364
+ // Maps to elevationShadows.xl
2365
+ xl: "shadow-xl"
2366
+ // Maps to elevationShadows.xl (same as lg)
2367
+ },
2368
+ maxWidth: {
2369
+ sm: "max-w-md",
2370
+ // 448px
2371
+ md: "max-w-lg",
2372
+ // 512px
2373
+ lg: "max-w-2xl",
2374
+ // 672px
2375
+ xl: "max-w-4xl",
2376
+ // 896px
2377
+ fullscreen: "max-w-full"
2378
+ // Full width
2379
+ },
2380
+ /**
2381
+ * Modal surface tokens by variant
2382
+ * Token-based styling for all modal surface variants
2383
+ */
2384
+ surface: {
2385
+ primary: {
2386
+ bg: "bg-background",
2387
+ // Maps to SURFACE_TOKENS.variant.flat.bg
2388
+ border: "border border-border"
2389
+ // Maps to SURFACE_TOKENS.variant.flat.border
2390
+ },
2391
+ secondary: {
2392
+ bg: "bg-card",
2393
+ // Maps to elevated surface
2394
+ border: "border border-border",
2395
+ // Maps to border
2396
+ shadow: "shadow-sm"
2397
+ // Maps to elevation shadow
2398
+ },
2399
+ tinted: {
2400
+ bg: "bg-muted/50",
2401
+ // Maps to SURFACE_TOKENS.variant.subtle.bg
2402
+ border: "border border-border/50"
2403
+ // Maps to SURFACE_TOKENS.variant.subtle.border
2404
+ },
2405
+ bare: {
2406
+ bg: "bg-transparent",
2407
+ // No background
2408
+ border: "border-none",
2409
+ // No border
2410
+ shadow: "shadow-none"
2411
+ // No shadow
732
2412
  }
733
- ],
734
- "4xl": [
735
- e["4xl"][0],
736
- {
737
- lineHeight: e["4xl"][1].lineHeight,
738
- letterSpacing: e["4xl"][1].letterSpacing
2413
+ },
2414
+ /**
2415
+ * Modal container tokens
2416
+ * For backdrop container positioning and layout
2417
+ */
2418
+ container: {
2419
+ layout: "fixed inset-0 z-40 flex items-center justify-center"
2420
+ // Container for backdrop and modal content
2421
+ },
2422
+ /**
2423
+ * Modal position tokens
2424
+ * For centering and positioning modal content
2425
+ */
2426
+ position: {
2427
+ center: "left-[50%] top-[50%] -translate-x-1/2 -translate-y-1/2"
2428
+ // Center positioning
2429
+ },
2430
+ /**
2431
+ * Modal transition tokens
2432
+ * Maps to motion tokens for appear/disappear animations
2433
+ */
2434
+ transition: {
2435
+ appear: "tm-motion-fade-scale",
2436
+ // Maps to OVERLAY_TOKENS.animation.enter.combined
2437
+ disappear: "tm-motion-fade-scale-out"
2438
+ // Maps to OVERLAY_TOKENS.animation.exit.combined
2439
+ },
2440
+ /**
2441
+ * Modal section spacing tokens
2442
+ * For header, body, and footer spacing
2443
+ */
2444
+ spacing: {
2445
+ header: {
2446
+ marginBottom: "mb-md",
2447
+ // 16px - spacing below header
2448
+ gap: "gap-xs"
2449
+ // 4px - gap between header elements
2450
+ },
2451
+ body: {
2452
+ layout: "flex-1"
2453
+ // Layout utility for body to take remaining space
2454
+ },
2455
+ footer: {
2456
+ marginTop: "mt-md",
2457
+ // 16px - spacing above footer
2458
+ gap: "gap-sm"
2459
+ // 8px - gap between footer elements
739
2460
  }
740
- ],
741
- "5xl": [
742
- e["5xl"][0],
743
- {
744
- lineHeight: e["5xl"][1].lineHeight,
745
- letterSpacing: e["5xl"][1].letterSpacing
2461
+ }
2462
+ },
2463
+ /**
2464
+ * Animation tokens for overlay enter/exit animations
2465
+ * Maps to Motion V2 utility classes
2466
+ * Uses CSS-only animations from motion/v2.ts
2467
+ */
2468
+ animation: {
2469
+ enter: {
2470
+ duration: "duration-normal",
2471
+ // 250ms - maps to motion V2 durations.normal
2472
+ easing: "ease-out",
2473
+ // Maps to motion V2 easings.standard
2474
+ keyframes: "tm-motion-fade-in",
2475
+ // Motion V2 fade in
2476
+ scale: "tm-motion-scale-in",
2477
+ // Motion V2 scale in
2478
+ combined: "tm-motion-fade-scale"
2479
+ // Motion V2 fade + scale
2480
+ },
2481
+ exit: {
2482
+ duration: "duration-fast",
2483
+ // 150ms - maps to motion V2 durations.fast
2484
+ easing: "ease-in",
2485
+ // Maps to motion V2 easings.standard
2486
+ keyframes: "tm-motion-fade-out",
2487
+ // Motion V2 fade out
2488
+ scale: "tm-motion-scale-out",
2489
+ // Motion V2 scale out
2490
+ combined: "tm-motion-fade-scale-out"
2491
+ // Motion V2 fade + scale out
2492
+ }
2493
+ },
2494
+ /**
2495
+ * Drawer tokens by size variant
2496
+ * Maps to foundation tokens for spacing, radius, and shadows
2497
+ */
2498
+ drawer: {
2499
+ width: {
2500
+ sm: "w-64",
2501
+ // 256px
2502
+ md: "w-80",
2503
+ // 320px
2504
+ lg: "w-96"
2505
+ // 384px
2506
+ },
2507
+ height: {
2508
+ sm: "h-64",
2509
+ // 256px
2510
+ md: "h-80",
2511
+ // 320px
2512
+ lg: "h-96"
2513
+ // 384px
2514
+ },
2515
+ radius: {
2516
+ left: {
2517
+ sm: "rounded-r-md",
2518
+ // Right radius for left drawer
2519
+ md: "rounded-r-lg",
2520
+ lg: "rounded-r-xl"
2521
+ },
2522
+ right: {
2523
+ sm: "rounded-l-md",
2524
+ // Left radius for right drawer
2525
+ md: "rounded-l-lg",
2526
+ lg: "rounded-l-xl"
2527
+ },
2528
+ bottom: {
2529
+ sm: "rounded-t-md",
2530
+ // Top radius for bottom drawer
2531
+ md: "rounded-t-lg",
2532
+ lg: "rounded-t-xl"
746
2533
  }
747
- ],
748
- "6xl": [
749
- e["6xl"][0],
750
- {
751
- lineHeight: e["6xl"][1].lineHeight,
752
- letterSpacing: e["6xl"][1].letterSpacing
2534
+ },
2535
+ padding: {
2536
+ sm: "p-md",
2537
+ // 16px
2538
+ md: "p-lg",
2539
+ // 24px
2540
+ lg: "p-xl"
2541
+ // 32px
2542
+ },
2543
+ shadow: {
2544
+ sm: "shadow-md",
2545
+ // Maps to elevationShadows.md
2546
+ md: "shadow-lg",
2547
+ // Maps to elevationShadows.lg
2548
+ lg: "shadow-xl"
2549
+ // Maps to elevationShadows.xl
2550
+ },
2551
+ animation: {
2552
+ left: {
2553
+ enter: "tm-motion-slide-right-in",
2554
+ // Slide in from left
2555
+ exit: "tm-motion-slide-right-out"
2556
+ // Slide out to left
2557
+ },
2558
+ right: {
2559
+ enter: "tm-motion-slide-left-in",
2560
+ // Slide in from right
2561
+ exit: "tm-motion-slide-left-out"
2562
+ // Slide out to right
2563
+ },
2564
+ bottom: {
2565
+ enter: "tm-motion-slide-up-in",
2566
+ // Slide in from bottom
2567
+ exit: "tm-motion-slide-up-out"
2568
+ // Slide out to bottom
753
2569
  }
754
- ],
755
- "7xl": [
756
- e["7xl"][0],
757
- {
758
- lineHeight: e["7xl"][1].lineHeight,
759
- letterSpacing: e["7xl"][1].letterSpacing
2570
+ },
2571
+ /**
2572
+ * Drawer section spacing tokens
2573
+ * For header, body, and footer spacing
2574
+ */
2575
+ spacing: {
2576
+ header: {
2577
+ marginBottom: "mb-md",
2578
+ // 16px - spacing below header
2579
+ gap: "gap-xs"
2580
+ // 4px - gap between header elements
2581
+ },
2582
+ footer: {
2583
+ marginTop: "mt-md",
2584
+ // 16px - spacing above footer
2585
+ gap: "gap-sm"
2586
+ // 8px - gap between footer elements
760
2587
  }
761
- ],
762
- "8xl": [
763
- e["8xl"][0],
764
- {
765
- lineHeight: e["8xl"][1].lineHeight,
766
- letterSpacing: e["8xl"][1].letterSpacing
2588
+ }
2589
+ }
2590
+ }, R = {
2591
+ /**
2592
+ * Spacing tokens for toast layout
2593
+ * Maps to semanticSpacing tokens
2594
+ */
2595
+ spacing: {
2596
+ gap: "gap-sm",
2597
+ // 8px - maps to semanticSpacing.sm
2598
+ padding: "p-md",
2599
+ // 16px - maps to semanticSpacing.md
2600
+ paddingHorizontal: "px-md",
2601
+ // 16px horizontal padding
2602
+ paddingVertical: "py-md"
2603
+ // 16px vertical padding
2604
+ },
2605
+ /**
2606
+ * Width tokens for toast layout
2607
+ * Maps to width utilities
2608
+ */
2609
+ width: {
2610
+ full: "w-full"
2611
+ // Full width (100%)
2612
+ },
2613
+ /**
2614
+ * Border radius for toasts
2615
+ * Maps to componentRadius.toast
2616
+ */
2617
+ radius: {
2618
+ default: "rounded-lg"
2619
+ // 8px - maps to borderRadius.lg / componentRadius.toast.md
2620
+ },
2621
+ /**
2622
+ * Shadow for toasts
2623
+ * Maps to elevationShadows
2624
+ */
2625
+ shadow: {
2626
+ default: "shadow-lg"
2627
+ // Maps to elevationShadows.lg
2628
+ },
2629
+ /**
2630
+ * Surface tokens for toast variants
2631
+ * Maps to SURFACE_TOKENS for background colors
2632
+ */
2633
+ surface: {
2634
+ success: "bg-success/10 border-success/20 text-success-foreground",
2635
+ info: "bg-info/10 border-info/20 text-info-foreground",
2636
+ warning: "bg-warning/10 border-warning/20 text-warning-foreground",
2637
+ danger: "bg-destructive/10 border-destructive/20 text-destructive-foreground",
2638
+ default: "bg-background border border-border text-foreground"
2639
+ },
2640
+ /**
2641
+ * Animation tokens for toast enter/exit animations
2642
+ * Maps to Motion V2 utility classes
2643
+ * Uses CSS-only animations from motion/v2.ts
2644
+ */
2645
+ animation: {
2646
+ enter: {
2647
+ slideUp: "tm-motion-fade-slide-up",
2648
+ // Motion V2 fade + slide up
2649
+ fadeIn: "tm-motion-fade-in",
2650
+ // Motion V2 fade in
2651
+ combined: "tm-motion-fade-slide-right"
2652
+ // Motion V2 fade + slide right (for toast from right)
2653
+ },
2654
+ exit: {
2655
+ slideOutRight: "tm-motion-fade-slide-left-out",
2656
+ // Motion V2 fade + slide left out
2657
+ fadeOut: "tm-motion-fade-out",
2658
+ // Motion V2 fade out
2659
+ combined: "tm-motion-fade-slide-left-out"
2660
+ // Motion V2 fade + slide left out
2661
+ }
2662
+ },
2663
+ /**
2664
+ * Position tokens for toast viewport
2665
+ * Maps to spacing tokens for positioning
2666
+ */
2667
+ position: {
2668
+ spacing: {
2669
+ top: "top-md",
2670
+ // 16px - maps to semanticSpacing.md
2671
+ right: "right-md",
2672
+ // 16px - maps to semanticSpacing.md
2673
+ bottom: "bottom-md",
2674
+ // 16px - maps to semanticSpacing.md
2675
+ left: "left-md"
2676
+ // 16px - maps to semanticSpacing.md
2677
+ }
2678
+ },
2679
+ /**
2680
+ * Content layout tokens
2681
+ * For toast content container
2682
+ */
2683
+ content: {
2684
+ layout: "flex flex-1 items-start",
2685
+ // Content container layout
2686
+ gap: "gap-sm",
2687
+ // Gap between content elements - maps to spacing.gap
2688
+ verticalSpacing: "space-y-xs"
2689
+ // Vertical spacing between title and description (4px)
2690
+ },
2691
+ /**
2692
+ * Title typography tokens
2693
+ * Maps to TEXT_TOKENS for font sizing and weight
2694
+ */
2695
+ title: {
2696
+ fontSize: "text-sm",
2697
+ // Maps to TEXT_TOKENS.fontSize.sm
2698
+ fontWeight: "font-semibold"
2699
+ // Maps to TEXT_TOKENS.fontWeight.semibold
2700
+ },
2701
+ /**
2702
+ * Description typography tokens
2703
+ * Maps to TEXT_TOKENS for font sizing
2704
+ */
2705
+ description: {
2706
+ fontSize: "text-sm",
2707
+ // Maps to TEXT_TOKENS.fontSize.sm
2708
+ opacity: "opacity-90"
2709
+ // Description text opacity (90%)
2710
+ },
2711
+ /**
2712
+ * Action button tokens
2713
+ * For toast action button sizing
2714
+ */
2715
+ action: {
2716
+ height: "h-8",
2717
+ // Action button height (32px)
2718
+ padding: "px-xs",
2719
+ // Action button horizontal padding
2720
+ fontSize: "text-xs"
2721
+ // Maps to TEXT_TOKENS.fontSize.xs
2722
+ },
2723
+ /**
2724
+ * Dismiss button tokens
2725
+ * For toast dismiss button styling
2726
+ */
2727
+ dismiss: {
2728
+ position: "absolute right-xs top-xs",
2729
+ // Dismiss button positioning
2730
+ size: "h-6 w-6",
2731
+ // Dismiss button size (24px)
2732
+ radius: "rounded-md",
2733
+ // Dismiss button border radius (6px)
2734
+ padding: "p-xs",
2735
+ // Dismiss button padding
2736
+ transition: "transition-opacity",
2737
+ // Maps to MOTION_TOKENS.transition.opacity
2738
+ colors: {
2739
+ default: "text-foreground/50",
2740
+ // Default text color with 50% opacity
2741
+ hover: "hover:text-foreground"
2742
+ // Hover text color
2743
+ },
2744
+ states: {
2745
+ default: "opacity-0",
2746
+ // Default opacity (hidden)
2747
+ groupHover: "group-hover:opacity-100",
2748
+ // Visible on group hover
2749
+ focus: "focus:opacity-100",
2750
+ // Visible on focus
2751
+ focusRing: "focus:outline-none focus:ring-1"
2752
+ // Focus ring styling
2753
+ }
2754
+ }
2755
+ }, V = {
2756
+ /**
2757
+ * Spacing tokens for notification layout
2758
+ * Maps to semanticSpacing tokens
2759
+ */
2760
+ spacing: {
2761
+ gap: "gap-sm",
2762
+ // 8px - maps to semanticSpacing.sm
2763
+ padding: "p-md",
2764
+ // 16px - maps to semanticSpacing.md
2765
+ paddingHorizontal: "px-md",
2766
+ // 16px horizontal padding
2767
+ paddingVertical: "py-md",
2768
+ // 16px vertical padding
2769
+ itemPadding: "p-sm",
2770
+ // 8px - maps to semanticSpacing.sm
2771
+ panelPadding: "p-lg"
2772
+ // 24px - maps to semanticSpacing.lg
2773
+ },
2774
+ /**
2775
+ * Border radius for notifications
2776
+ * Maps to componentRadius.notification
2777
+ */
2778
+ radius: {
2779
+ item: "rounded-md",
2780
+ // 6px - maps to borderRadius.md / componentRadius.notification.item
2781
+ panel: "rounded-lg",
2782
+ // 8px - maps to borderRadius.lg / componentRadius.notification.panel
2783
+ default: "rounded-lg"
2784
+ // 8px - maps to borderRadius.lg
2785
+ },
2786
+ /**
2787
+ * Shadow for notifications
2788
+ * Maps to elevationShadows
2789
+ */
2790
+ shadow: {
2791
+ item: "shadow-sm",
2792
+ // Maps to elevationShadows.sm
2793
+ panel: "shadow-xl",
2794
+ // Maps to elevationShadows.xl
2795
+ default: "shadow-lg"
2796
+ // Maps to elevationShadows.lg
2797
+ },
2798
+ /**
2799
+ * Width tokens for notifications
2800
+ * Maps to spacing tokens for width constraints
2801
+ */
2802
+ width: {
2803
+ item: "w-full",
2804
+ // Full width within container
2805
+ itemMax: "max-w-md",
2806
+ // 448px - max width for item
2807
+ panel: "w-full",
2808
+ // Full width on mobile
2809
+ panelSm: "w-sm",
2810
+ // 384px - small panel width
2811
+ panelMd: "w-md",
2812
+ // 448px - medium panel width (default)
2813
+ panelLg: "w-lg",
2814
+ // 512px - large panel width
2815
+ panelMaxHeight: "max-h-[calc(100vh-2rem)]"
2816
+ // Max height with spacing
2817
+ },
2818
+ /**
2819
+ * Item-specific tokens
2820
+ * For individual notification items in lists
2821
+ */
2822
+ item: {
2823
+ padding: "p-sm",
2824
+ // 8px - maps to semanticSpacing.sm
2825
+ gap: "gap-sm",
2826
+ // 8px - maps to semanticSpacing.sm
2827
+ iconSize: "h-5 w-5",
2828
+ // 20px - icon size
2829
+ radius: "rounded-md",
2830
+ // 6px - maps to borderRadius.md
2831
+ minHeight: "min-h-[3rem]"
2832
+ // 48px - minimum item height
2833
+ },
2834
+ /**
2835
+ * Surface tokens for notification variants
2836
+ * Extends toast variants with system and log
2837
+ * Maps to SURFACE_TOKENS for background colors
2838
+ */
2839
+ surface: {
2840
+ success: "bg-success/10 border-success/20 text-success-foreground",
2841
+ info: "bg-info/10 border-info/20 text-info-foreground",
2842
+ warning: "bg-warning/10 border-warning/20 text-warning-foreground",
2843
+ danger: "bg-destructive/10 border-destructive/20 text-destructive-foreground",
2844
+ system: "bg-muted border-border text-foreground",
2845
+ log: "bg-background border-border/50 text-muted-foreground",
2846
+ default: "bg-background border border-border text-foreground"
2847
+ },
2848
+ /**
2849
+ * Timeline tokens for grouped notifications
2850
+ * Visual timeline indicators for grouped items
2851
+ */
2852
+ timeline: {
2853
+ dotSize: "h-2 w-2",
2854
+ // 8px - timeline dot size
2855
+ lineWidth: "w-0.5",
2856
+ // 2px - timeline line width
2857
+ gap: "gap-xs"
2858
+ // 4px - gap between timeline elements
2859
+ },
2860
+ /**
2861
+ * Animation tokens for notification enter/exit animations
2862
+ * Maps to Motion V2 utility classes
2863
+ * Uses CSS-only animations from motion/v2.ts
2864
+ */
2865
+ animation: {
2866
+ enter: {
2867
+ slideInRight: "tm-motion-fade-slide-right",
2868
+ // Motion V2 fade + slide right
2869
+ fadeIn: "tm-motion-fade-in",
2870
+ // Motion V2 fade in
2871
+ combined: "tm-motion-fade-slide-right"
2872
+ // Motion V2 fade + slide right
2873
+ },
2874
+ exit: {
2875
+ slideOutRight: "tm-motion-fade-slide-right-out",
2876
+ // Motion V2 fade + slide right out
2877
+ fadeOut: "tm-motion-fade-out",
2878
+ // Motion V2 fade out
2879
+ combined: "tm-motion-fade-slide-right-out"
2880
+ // Motion V2 fade + slide right out
2881
+ },
2882
+ panel: {
2883
+ enter: {
2884
+ slideInRight: "tm-motion-fade-slide-right",
2885
+ // Motion V2 panel slide in from right
2886
+ fadeIn: "tm-motion-fade-in",
2887
+ // Motion V2 panel fade in
2888
+ combined: "tm-motion-fade-slide-right"
2889
+ // Motion V2 panel fade + slide right
2890
+ },
2891
+ exit: {
2892
+ slideOutRight: "tm-motion-fade-slide-right-out",
2893
+ // Motion V2 panel slide out to right
2894
+ fadeOut: "tm-motion-fade-out",
2895
+ // Motion V2 panel fade out
2896
+ combined: "tm-motion-fade-slide-right-out"
2897
+ // Motion V2 panel fade + slide right out
767
2898
  }
768
- ],
769
- "9xl": [
770
- e["9xl"][0],
771
- {
772
- lineHeight: e["9xl"][1].lineHeight,
773
- letterSpacing: e["9xl"][1].letterSpacing
2899
+ }
2900
+ },
2901
+ /**
2902
+ * Panel-specific tokens
2903
+ * For the side drawer notification panel
2904
+ */
2905
+ panel: {
2906
+ width: {
2907
+ default: "w-md",
2908
+ // 448px - default panel width
2909
+ sm: "w-sm",
2910
+ // 384px - small panel
2911
+ md: "w-md",
2912
+ // 448px - medium panel
2913
+ lg: "w-lg"
2914
+ // 512px - large panel
2915
+ },
2916
+ maxHeight: "max-h-[calc(100vh-2rem)]",
2917
+ // Max height with spacing
2918
+ spacing: {
2919
+ gap: "gap-md",
2920
+ // 16px - gap between panel sections
2921
+ padding: "p-lg",
2922
+ // 24px - panel padding
2923
+ headerPadding: "px-lg py-md"
2924
+ // Header padding
2925
+ },
2926
+ radius: {
2927
+ default: "rounded-lg",
2928
+ // 8px - panel border radius
2929
+ topLeft: "rounded-tl-lg",
2930
+ // Top-left radius
2931
+ topRight: "rounded-tr-lg"
2932
+ // Top-right radius
2933
+ },
2934
+ shadow: {
2935
+ default: "shadow-xl"
2936
+ // Large shadow for panel elevation
2937
+ },
2938
+ backdrop: {
2939
+ bg: "bg-black/50",
2940
+ // Backdrop background
2941
+ blur: "backdrop-blur-sm"
2942
+ // Backdrop blur
2943
+ }
2944
+ }
2945
+ }, K = {
2946
+ /**
2947
+ * Navigation item heights by size
2948
+ * Maps to Tailwind height utilities: h-8, h-9, h-10
2949
+ */
2950
+ sizes: {
2951
+ sm: {
2952
+ height: "h-8",
2953
+ // 32px (2rem)
2954
+ width: "w-8",
2955
+ // 32px (2rem) - for square indicators
2956
+ padding: {
2957
+ horizontal: "px-sm",
2958
+ // 8px (0.5rem) - maps to semanticSpacing.sm
2959
+ vertical: "py-xs"
2960
+ // 4px (0.25rem) - maps to semanticSpacing.xs
2961
+ },
2962
+ fontSize: "text-xs",
2963
+ // Maps to fontSize.xs[0]
2964
+ gap: "gap-xs"
2965
+ // 4px (0.25rem) - maps to semanticSpacing.xs
2966
+ },
2967
+ md: {
2968
+ height: "h-9",
2969
+ // 36px (2.25rem)
2970
+ padding: {
2971
+ horizontal: "px-md",
2972
+ // 16px (1rem) - maps to semanticSpacing.md
2973
+ vertical: "py-sm"
2974
+ // 8px (0.5rem) - maps to semanticSpacing.sm
2975
+ },
2976
+ fontSize: "text-sm",
2977
+ // Maps to fontSize.sm[0]
2978
+ gap: "gap-sm"
2979
+ // 8px (0.5rem) - maps to semanticSpacing.sm
2980
+ },
2981
+ lg: {
2982
+ height: "h-10",
2983
+ // 40px (2.5rem)
2984
+ padding: {
2985
+ horizontal: "px-lg",
2986
+ // 24px (1.5rem) - maps to semanticSpacing.lg
2987
+ vertical: "py-sm"
2988
+ // 8px (0.5rem) - maps to semanticSpacing.sm
2989
+ },
2990
+ fontSize: "text-base",
2991
+ // Maps to fontSize.base[0]
2992
+ gap: "gap-sm"
2993
+ // 8px (0.5rem) - maps to semanticSpacing.sm
2994
+ }
2995
+ },
2996
+ /**
2997
+ * Border radius for navigation items
2998
+ */
2999
+ radius: {
3000
+ default: "rounded-md",
3001
+ // 6px (0.375rem) - maps to borderRadius.md
3002
+ sm: "rounded-sm",
3003
+ // 4px (0.25rem) - maps to borderRadius.sm
3004
+ md: "rounded-md",
3005
+ // 6px (0.375rem) - maps to borderRadius.md
3006
+ lg: "rounded-lg",
3007
+ // 8px (0.5rem) - maps to borderRadius.lg
3008
+ full: "rounded-full"
3009
+ // 9999px - maps to borderRadius.full
3010
+ },
3011
+ /**
3012
+ * Spacing tokens for navigation components
3013
+ */
3014
+ spacing: {
3015
+ itemPadding: {
3016
+ sm: "px-sm py-xs",
3017
+ // 8px horizontal, 4px vertical
3018
+ md: "px-md py-sm",
3019
+ // 16px horizontal, 8px vertical
3020
+ lg: "px-lg py-sm"
3021
+ // 24px horizontal, 8px vertical
3022
+ },
3023
+ listGap: {
3024
+ xs: "gap-xs",
3025
+ // 4px (0.25rem)
3026
+ sm: "gap-sm",
3027
+ // 8px (0.5rem)
3028
+ md: "gap-md",
3029
+ // 16px (1rem)
3030
+ lg: "gap-lg"
3031
+ // 24px (1.5rem)
3032
+ },
3033
+ content: {
3034
+ marginTop: "mt-md"
3035
+ // 16px (1rem) - spacing above content sections
3036
+ }
3037
+ },
3038
+ /**
3039
+ * Typography tokens for navigation components
3040
+ */
3041
+ typography: {
3042
+ default: "text-sm",
3043
+ // Maps to fontSize.sm[0]
3044
+ sm: "text-xs",
3045
+ // Maps to fontSize.xs[0]
3046
+ md: "text-sm",
3047
+ // Maps to fontSize.sm[0]
3048
+ lg: "text-base",
3049
+ // Maps to fontSize.base[0]
3050
+ fontWeight: {
3051
+ default: "font-medium",
3052
+ normal: "font-normal",
3053
+ medium: "font-medium",
3054
+ semibold: "font-semibold"
3055
+ }
3056
+ },
3057
+ /**
3058
+ * State-based tokens for navigation items
3059
+ * Colors, backgrounds, and borders for different states
3060
+ */
3061
+ states: {
3062
+ default: {
3063
+ background: "bg-transparent",
3064
+ text: "text-foreground",
3065
+ border: "border-transparent"
3066
+ },
3067
+ hover: {
3068
+ background: "hover:bg-accent",
3069
+ text: "hover:text-accent-foreground",
3070
+ border: "hover:border-accent"
3071
+ },
3072
+ active: {
3073
+ background: "bg-accent",
3074
+ text: "text-accent-foreground",
3075
+ border: "border-accent"
3076
+ },
3077
+ selected: {
3078
+ background: "bg-primary",
3079
+ text: "text-primary-foreground",
3080
+ border: "border-primary"
3081
+ },
3082
+ disabled: {
3083
+ background: "bg-transparent",
3084
+ text: "text-muted-foreground disabled:opacity-50",
3085
+ border: "border-transparent",
3086
+ cursor: "disabled:cursor-not-allowed"
3087
+ }
3088
+ },
3089
+ /**
3090
+ * Indicator tokens for Tabs component
3091
+ * Used for underline/indicator animation
3092
+ */
3093
+ indicator: {
3094
+ height: "h-0.5",
3095
+ // 2px - thin underline
3096
+ radius: "rounded-full",
3097
+ // Fully rounded
3098
+ transition: "transition-all duration-normal ease-out",
3099
+ // Maps to motion tokens
3100
+ background: "bg-primary",
3101
+ // Primary color for indicator
3102
+ position: "absolute bottom-0 left-0 right-0"
3103
+ // Position at bottom
3104
+ },
3105
+ /**
3106
+ * Shadow tokens for navigation components
3107
+ */
3108
+ shadow: {
3109
+ none: "shadow-none",
3110
+ sm: "shadow-sm",
3111
+ // Maps to elevationShadows.sm
3112
+ default: "shadow-sm",
3113
+ // Maps to elevationShadows.sm
3114
+ md: "shadow"
3115
+ // Maps to elevationShadows.xs
3116
+ },
3117
+ /**
3118
+ * Focus ring tokens for accessibility
3119
+ */
3120
+ focus: {
3121
+ ring: "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2",
3122
+ ringOffset: "focus-visible:ring-offset-2"
3123
+ },
3124
+ /**
3125
+ * Container background tokens
3126
+ * For segmented control and tab container backgrounds
3127
+ */
3128
+ container: {
3129
+ background: {
3130
+ muted: "bg-muted"
3131
+ // Muted background for container
3132
+ },
3133
+ padding: {
3134
+ xs: "p-xs",
3135
+ // 4px padding
3136
+ sm: "p-sm"
3137
+ // 8px padding
3138
+ }
3139
+ },
3140
+ /**
3141
+ * Border color tokens
3142
+ */
3143
+ border: {
3144
+ muted: "border-muted-foreground"
3145
+ // Muted border color
3146
+ }
3147
+ }, _ = {
3148
+ /**
3149
+ * Menu item tokens by size
3150
+ * Maps to foundation spacing and radius tokens
3151
+ */
3152
+ item: {
3153
+ padding: {
3154
+ xs: "px-xs py-xs",
3155
+ // 4px horizontal, 4px vertical - maps to semanticSpacing.xs
3156
+ sm: "px-sm py-sm",
3157
+ // 8px horizontal, 8px vertical - maps to semanticSpacing.sm
3158
+ md: "px-md py-sm"
3159
+ // 16px horizontal, 8px vertical - maps to semanticSpacing.md/sm
3160
+ },
3161
+ radius: {
3162
+ sm: "rounded-sm",
3163
+ // 4px - maps to borderRadius.sm
3164
+ md: "rounded-md"
3165
+ // 6px - maps to borderRadius.md
3166
+ },
3167
+ gap: {
3168
+ xs: "gap-xs",
3169
+ // 4px - maps to semanticSpacing.xs
3170
+ sm: "gap-sm"
3171
+ // 8px - maps to semanticSpacing.sm
3172
+ },
3173
+ height: {
3174
+ sm: "h-8",
3175
+ // 32px - maps to spacing[8]
3176
+ md: "h-10",
3177
+ // 40px - maps to spacing[10]
3178
+ lg: "h-12"
3179
+ // 48px - maps to spacing[12]
3180
+ }
3181
+ },
3182
+ /**
3183
+ * Menu content tokens by size
3184
+ * Maps to foundation spacing, radius, and shadow tokens
3185
+ */
3186
+ content: {
3187
+ padding: {
3188
+ sm: "p-sm",
3189
+ // 8px - maps to semanticSpacing.sm
3190
+ md: "p-md"
3191
+ // 16px - maps to semanticSpacing.md
3192
+ },
3193
+ radius: {
3194
+ sm: "rounded-md",
3195
+ // 6px - maps to borderRadius.md
3196
+ md: "rounded-lg"
3197
+ // 8px - maps to borderRadius.lg
3198
+ },
3199
+ shadow: {
3200
+ sm: "shadow-md",
3201
+ // Maps to elevationShadows.md
3202
+ md: "shadow-lg"
3203
+ // Maps to elevationShadows.lg
3204
+ },
3205
+ minWidth: {
3206
+ sm: "min-w-32",
3207
+ // 128px - maps to spacing[32]
3208
+ md: "min-w-48"
3209
+ // 192px - maps to spacing[48]
3210
+ }
3211
+ },
3212
+ /**
3213
+ * Menu separator tokens
3214
+ * Maps to foundation spacing and color tokens
3215
+ */
3216
+ separator: {
3217
+ margin: {
3218
+ sm: "my-xs",
3219
+ // 4px vertical margin - maps to semanticSpacing.xs
3220
+ md: "my-sm"
3221
+ // 8px vertical margin - maps to semanticSpacing.sm
3222
+ },
3223
+ height: "h-px",
3224
+ // 1px height
3225
+ color: "bg-border"
3226
+ // Maps to border color token
3227
+ },
3228
+ /**
3229
+ * Menu label tokens
3230
+ * Maps to foundation spacing and typography tokens
3231
+ */
3232
+ label: {
3233
+ padding: {
3234
+ sm: "px-sm py-xs",
3235
+ // 8px horizontal, 4px vertical - maps to semanticSpacing.sm/xs
3236
+ md: "px-md py-sm"
3237
+ // 16px horizontal, 8px vertical - maps to semanticSpacing.md/sm
3238
+ },
3239
+ textStyle: "text-sm font-semibold"
3240
+ // Maps to fontSize.sm and fontWeight.semibold
3241
+ },
3242
+ /**
3243
+ * Menu indicator tokens (for checkboxes, radio buttons)
3244
+ * Maps to foundation spacing tokens
3245
+ */
3246
+ indicator: {
3247
+ size: {
3248
+ sm: "w-4 h-4",
3249
+ // 16px - maps to spacing[4]
3250
+ md: "w-5 h-5"
3251
+ // 20px - maps to spacing[5]
3252
+ },
3253
+ offset: {
3254
+ sm: "left-xs",
3255
+ // 4px - maps to semanticSpacing.xs
3256
+ md: "left-sm"
3257
+ // 8px - maps to semanticSpacing.sm
3258
+ }
3259
+ }
3260
+ }, W = {
3261
+ /**
3262
+ * Popover content tokens by size
3263
+ * Maps to foundation spacing, radius, and shadow tokens
3264
+ */
3265
+ content: {
3266
+ border: {
3267
+ default: "border",
3268
+ // Border utility
3269
+ color: "border-border"
3270
+ // Border color using token
3271
+ },
3272
+ background: {
3273
+ default: "bg-popover"
3274
+ // Background using token
3275
+ },
3276
+ text: {
3277
+ default: "text-popover-foreground"
3278
+ // Text color using token
3279
+ },
3280
+ padding: {
3281
+ sm: "p-sm",
3282
+ // 8px - maps to semanticSpacing.sm
3283
+ md: "p-md",
3284
+ // 16px - maps to semanticSpacing.md
3285
+ lg: "p-lg"
3286
+ // 24px - maps to semanticSpacing.lg
3287
+ },
3288
+ radius: {
3289
+ sm: "rounded-md",
3290
+ // 6px - maps to borderRadius.md
3291
+ md: "rounded-lg"
3292
+ // 8px - maps to borderRadius.lg
3293
+ },
3294
+ shadow: {
3295
+ sm: "shadow-md",
3296
+ // Maps to elevationShadows.md
3297
+ md: "shadow-lg"
3298
+ // Maps to elevationShadows.lg
3299
+ },
3300
+ width: {
3301
+ xs: "w-40",
3302
+ // 160px - maps to spacing[40]
3303
+ sm: "w-48",
3304
+ // 192px - maps to spacing[48]
3305
+ md: "w-72",
3306
+ // 288px - maps to spacing[72]
3307
+ lg: "w-96",
3308
+ // 384px - maps to spacing[96]
3309
+ xl: "w-[32rem]"
3310
+ // 512px - custom large size
3311
+ }
3312
+ },
3313
+ /**
3314
+ * Popover arrow tokens
3315
+ * Maps to foundation spacing tokens
3316
+ */
3317
+ arrow: {
3318
+ size: {
3319
+ sm: "w-2 h-2",
3320
+ // 8px - maps to spacing[2]
3321
+ md: "w-3 h-3"
3322
+ // 12px - maps to spacing[3]
3323
+ },
3324
+ offset: {
3325
+ sm: "-translate-x-1/2",
3326
+ // Center horizontally - standard Tailwind utility
3327
+ md: "-translate-x-1/2"
3328
+ // Center horizontally - standard Tailwind utility
3329
+ }
3330
+ },
3331
+ /**
3332
+ * Animation tokens for popover enter/exit animations
3333
+ * Maps to Motion V2 utility classes
3334
+ * Uses CSS-only animations from motion/v2.ts
3335
+ */
3336
+ animation: {
3337
+ enter: "tm-motion-fade-scale",
3338
+ // Motion V2 fade + scale animation
3339
+ exit: "tm-motion-fade-scale-out"
3340
+ // Motion V2 fade + scale exit animation
3341
+ }
3342
+ }, L = {
3343
+ /**
3344
+ * Trigger tokens by size
3345
+ * Button element that opens/closes the dropdown
3346
+ */
3347
+ trigger: {
3348
+ height: {
3349
+ sm: "h-8",
3350
+ // 32px
3351
+ md: "h-9",
3352
+ // 36px
3353
+ lg: "h-10"
3354
+ // 40px
3355
+ },
3356
+ padding: {
3357
+ horizontal: {
3358
+ sm: "px-sm",
3359
+ // 8px
3360
+ md: "px-md",
3361
+ // 16px
3362
+ lg: "px-lg"
3363
+ // 24px
3364
+ },
3365
+ vertical: {
3366
+ sm: "py-xs",
3367
+ // 4px
3368
+ md: "py-xs",
3369
+ // 4px
3370
+ lg: "py-sm"
3371
+ // 8px
774
3372
  }
775
- ]
3373
+ },
3374
+ radius: {
3375
+ sm: "rounded-md",
3376
+ // 6px
3377
+ md: "rounded-md",
3378
+ // 6px
3379
+ lg: "rounded-md"
3380
+ // 6px
3381
+ },
3382
+ fontSize: {
3383
+ sm: "text-sm",
3384
+ // Maps to fontSize.sm
3385
+ md: "text-base",
3386
+ // Maps to fontSize.base
3387
+ lg: "text-base"
3388
+ // Maps to fontSize.base
3389
+ },
3390
+ shadow: "shadow-sm",
3391
+ // Maps to elevationShadows.sm
3392
+ /**
3393
+ * Icon spacing for trigger
3394
+ */
3395
+ icon: {
3396
+ spacing: "ml-sm"
3397
+ // 8px - spacing between trigger text and icon
3398
+ }
776
3399
  },
777
- fontWeight: { ...a },
778
- lineHeight: { ...s },
779
- letterSpacing: { ...o }
780
- }, S = {
781
- ...h,
782
- ...u,
783
- ...f,
784
- ...y,
785
- ...d,
786
- ...x
3400
+ /**
3401
+ * Variant-based tokens
3402
+ * Border, background, text, and focus colors for different variants
3403
+ */
3404
+ variant: {
3405
+ neutral: {
3406
+ border: "border border-[hsl(var(--border))]",
3407
+ // Border color using CSS var
3408
+ background: "bg-[hsl(var(--popover))]",
3409
+ // Background using CSS var
3410
+ text: "text-[hsl(var(--popover-foreground))]",
3411
+ // Text color using CSS var
3412
+ focus: "focus-visible:ring-2 focus-visible:ring-[hsl(var(--ring))] focus-visible:ring-offset-2"
3413
+ // Focus ring
3414
+ },
3415
+ tinted: {
3416
+ border: "border border-[hsl(var(--border))]",
3417
+ // Border color using CSS var
3418
+ background: "bg-[hsl(var(--muted))]",
3419
+ // Background using CSS var
3420
+ text: "text-[hsl(var(--popover-foreground))]",
3421
+ // Text color using CSS var
3422
+ focus: "focus-visible:ring-2 focus-visible:ring-[hsl(var(--ring))] focus-visible:ring-offset-2"
3423
+ // Focus ring
3424
+ }
3425
+ },
3426
+ /**
3427
+ * Menu tokens by size
3428
+ * Container for the dropdown items
3429
+ */
3430
+ menu: {
3431
+ border: {
3432
+ default: "border border-[hsl(var(--border))]"
3433
+ // Border color using CSS var
3434
+ },
3435
+ background: {
3436
+ neutral: "bg-[hsl(var(--popover))]",
3437
+ // Background using CSS var
3438
+ tinted: "bg-[hsl(var(--muted))]"
3439
+ // Background using CSS var
3440
+ },
3441
+ text: {
3442
+ default: "text-[hsl(var(--popover-foreground))]"
3443
+ // Text color using CSS var
3444
+ },
3445
+ padding: {
3446
+ sm: "p-sm",
3447
+ // 8px
3448
+ md: "p-md",
3449
+ // 16px
3450
+ lg: "p-lg"
3451
+ // 24px
3452
+ },
3453
+ radius: {
3454
+ sm: "rounded-md",
3455
+ // 6px
3456
+ md: "rounded-lg",
3457
+ // 8px
3458
+ lg: "rounded-lg"
3459
+ // 8px
3460
+ },
3461
+ shadow: {
3462
+ sm: "shadow-md",
3463
+ // Maps to elevationShadows.md
3464
+ md: "shadow-lg",
3465
+ // Maps to elevationShadows.lg
3466
+ lg: "shadow-xl"
3467
+ // Maps to elevationShadows.xl
3468
+ },
3469
+ minWidth: {
3470
+ sm: "min-w-32",
3471
+ // 128px
3472
+ md: "min-w-48",
3473
+ // 192px
3474
+ lg: "min-w-64"
3475
+ // 256px
3476
+ }
3477
+ },
3478
+ /**
3479
+ * Item tokens by size
3480
+ * Individual menu item
3481
+ */
3482
+ item: {
3483
+ background: {
3484
+ focus: "focus:bg-[hsl(var(--accent))]",
3485
+ // Focus background using CSS var
3486
+ selected: "bg-[hsl(var(--accent))]"
3487
+ // Selected background using CSS var
3488
+ },
3489
+ text: {
3490
+ focus: "focus:text-[hsl(var(--accent-foreground))]",
3491
+ // Focus text using CSS var
3492
+ selected: "text-[hsl(var(--accent-foreground))]"
3493
+ // Selected text using CSS var
3494
+ },
3495
+ padding: {
3496
+ sm: "px-sm py-xs",
3497
+ // 8px horizontal, 4px vertical
3498
+ md: "px-md py-xs",
3499
+ // 16px horizontal, 4px vertical
3500
+ lg: "px-lg py-sm"
3501
+ // 24px horizontal, 8px vertical
3502
+ },
3503
+ radius: {
3504
+ sm: "rounded-sm",
3505
+ // 4px
3506
+ md: "rounded-md",
3507
+ // 6px
3508
+ lg: "rounded-md"
3509
+ // 6px
3510
+ },
3511
+ fontSize: {
3512
+ sm: "text-sm",
3513
+ // Maps to fontSize.sm
3514
+ md: "text-sm",
3515
+ // Maps to fontSize.sm
3516
+ lg: "text-base"
3517
+ // Maps to fontSize.base
3518
+ }
3519
+ }
3520
+ }, M = {
3521
+ /**
3522
+ * Tooltip content tokens
3523
+ * Maps to foundation spacing, radius, shadow, and typography tokens
3524
+ */
3525
+ content: {
3526
+ border: {
3527
+ default: "border",
3528
+ // Border utility
3529
+ color: "border-border"
3530
+ // Border color using token
3531
+ },
3532
+ background: {
3533
+ default: "bg-popover"
3534
+ // Background using token
3535
+ },
3536
+ text: {
3537
+ default: "text-popover-foreground"
3538
+ // Text color using token
3539
+ },
3540
+ padding: {
3541
+ horizontal: "px-sm",
3542
+ // 8px horizontal - maps to semanticSpacing.sm
3543
+ vertical: "py-xs"
3544
+ // 4px vertical - maps to semanticSpacing.xs
3545
+ },
3546
+ radius: {
3547
+ sm: "rounded-sm",
3548
+ // 4px - maps to borderRadius.sm
3549
+ md: "rounded-md"
3550
+ // 6px - maps to borderRadius.md (default)
3551
+ },
3552
+ shadow: {
3553
+ sm: "shadow-sm",
3554
+ // Maps to elevationShadows.sm
3555
+ md: "shadow-md"
3556
+ // Maps to elevationShadows.md (default)
3557
+ },
3558
+ fontSize: {
3559
+ sm: "text-sm"
3560
+ // Maps to fontSize.sm (default)
3561
+ }
3562
+ }
3563
+ }, n = {
3564
+ ...t,
3565
+ ...i,
3566
+ ...s,
3567
+ ...a,
3568
+ ...o,
3569
+ ...r
787
3570
  };
788
- function H(w) {
3571
+ function p(l) {
789
3572
  return `:root {
790
- ${Object.entries(w).map(([b, v]) => ` ${b}: ${v};`).join(`
3573
+ ${Object.entries(l).map(([m, u]) => ` ${m}: ${u};`).join(`
791
3574
  `)}
792
3575
  }`;
793
3576
  }
794
- const R = H(S), I = {
795
- colors: Object.keys(h).length,
796
- typography: Object.keys(u).length,
797
- spacing: Object.keys(f).length,
798
- shadows: Object.keys(y).length,
799
- radius: Object.keys(d).length,
800
- motion: Object.keys(x).length,
801
- total: Object.keys(S).length
802
- };
3577
+ const A = p(n), H = {
3578
+ colors: Object.keys(t).length,
3579
+ typography: Object.keys(i).length,
3580
+ spacing: Object.keys(s).length,
3581
+ shadows: Object.keys(a).length,
3582
+ radius: Object.keys(o).length,
3583
+ motion: Object.keys(r).length,
3584
+ total: Object.keys(n).length
3585
+ }, j = g;
803
3586
  export {
804
- c as accentColoredShadows,
3587
+ v as ALERT_TOKENS,
3588
+ w as BUTTON_TOKENS,
3589
+ y as CARD_TOKENS,
3590
+ z as CHECKBOX_TOKENS,
3591
+ d as DATA_TOKENS,
3592
+ k as DOMAIN_TOKENS,
3593
+ L as DROPDOWN_TOKENS,
3594
+ c as ICON_TOKENS,
3595
+ S as INPUT_TOKENS,
3596
+ _ as MENU_TOKENS,
3597
+ h as MOTION_TOKENS,
3598
+ K as NAVIGATION_TOKENS,
3599
+ V as NOTIFICATION_TOKENS,
3600
+ I as OVERLAY_TOKENS,
3601
+ W as POPOVER_TOKENS,
3602
+ T as RADIO_TOKENS,
3603
+ E as SECTION_TOKENS,
3604
+ C as SURFACE_TOKENS,
3605
+ O as SWITCH_TOKENS,
3606
+ N as TEXT_TOKENS,
3607
+ R as TOAST_TOKENS,
3608
+ M as TOOLTIP_TOKENS,
3609
+ j as UI_COLORS,
3610
+ ie as accentColoredShadows,
805
3611
  U as accentColors,
806
- S as allCSSVariables,
807
- R as allCSSVariablesCSS,
808
- E as animations,
809
- L as baseColors,
810
- ee as borderRadius,
811
- h as colorCSSVariables,
812
- te as componentRadius,
813
- z as componentShadowMapping,
814
- N as cssVariableColorTokens,
815
- A as durations,
816
- B as easings,
817
- i as elevationShadows,
818
- p as focusRings,
819
- n as fontFamily,
820
- e as fontSize,
821
- a as fontWeight,
822
- H as generateCSSVariablesCSS,
823
- m as glowEffects,
824
- D as keyframes,
825
- l as layoutSpacing,
826
- o as letterSpacing,
827
- s as lineHeight,
828
- x as motionCSSVariables,
829
- g as primaryColoredShadows,
830
- $ as primaryColors,
831
- d as radiusCSSVariables,
832
- G as reducedMotion,
833
- q as secondaryColors,
834
- J as semanticColors,
835
- r as semanticSpacing,
836
- y as shadowCSSVariables,
837
- t as spacing,
838
- f as spacingCSSVariables,
839
- K as springs,
840
- P as surfaceColors,
841
- Q as tailwindMotionConfig,
842
- le as tailwindRadiusConfig,
843
- F as tailwindShadowConfig,
844
- W as tailwindSpacingConfig,
845
- X as tailwindThemeColors,
846
- V as tailwindTypographyConfig,
847
- Y as textColors,
848
- M as textStyles,
849
- I as tokenSystemSummary,
850
- Z as transitions,
851
- u as typographyCSSVariables
3612
+ n as allCSSVariables,
3613
+ A as allCSSVariablesCSS,
3614
+ B as animations,
3615
+ F as baseColors,
3616
+ ne as borderRadius,
3617
+ G as chartColors,
3618
+ t as colorCSSVariables,
3619
+ le as componentRadius,
3620
+ me as componentShadowMapping,
3621
+ q as cssVariableColorTokens,
3622
+ X as durations,
3623
+ Y as easings,
3624
+ ue as elevationShadows,
3625
+ ge as focusRings,
3626
+ ce as fontFamily,
3627
+ he as fontSize,
3628
+ pe as fontSizeWithMd,
3629
+ be as fontWeight,
3630
+ p as generateCSSVariablesCSS,
3631
+ fe as glowEffects,
3632
+ $ as keyframes,
3633
+ xe as layoutSpacing,
3634
+ ve as letterSpacing,
3635
+ we as lineHeight,
3636
+ r as motionCSSVariables,
3637
+ ye as motionV2CSSVariables,
3638
+ ke as motionV2Combined,
3639
+ Se as motionV2Durations,
3640
+ ze as motionV2Easings,
3641
+ Oe as motionV2Fade,
3642
+ Te as motionV2Scale,
3643
+ Ce as motionV2Slide,
3644
+ Ne as motionV2TailwindConfig,
3645
+ Ee as motionV2Transitions,
3646
+ Ie as primaryColoredShadows,
3647
+ J as primaryColors,
3648
+ o as radiusCSSVariables,
3649
+ Q as reducedMotion,
3650
+ Z as secondaryColors,
3651
+ ee as semanticColors,
3652
+ e as semanticSpacing,
3653
+ Re as shadowBase,
3654
+ a as shadowCSSVariables,
3655
+ Ve as shadowOpacity,
3656
+ Ke as spacing,
3657
+ s as spacingCSSVariables,
3658
+ de as springs,
3659
+ re as surfaceColors,
3660
+ te as tailwindMotionConfig,
3661
+ _e as tailwindRadiusConfig,
3662
+ We as tailwindShadowConfig,
3663
+ Le as tailwindSpacingConfig,
3664
+ g as tailwindThemeColors,
3665
+ Me as tailwindTypographyConfig,
3666
+ oe as textColors,
3667
+ Ae as textStyles,
3668
+ H as tokenSystemSummary,
3669
+ ae as transitions,
3670
+ i as typographyCSSVariables
852
3671
  };