@sixthshift/design-system 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (433) hide show
  1. package/README.md +132 -87
  2. package/dist/components/Badge/Badge.d.ts +12 -4
  3. package/dist/components/Badge/Badge.d.ts.map +1 -1
  4. package/dist/components/Badge/Badge.js +8 -6
  5. package/dist/components/Badge/Badge.js.map +1 -1
  6. package/dist/components/Button/Button.d.ts +26 -3
  7. package/dist/components/Button/Button.d.ts.map +1 -1
  8. package/dist/components/Button/Button.js +14 -5
  9. package/dist/components/Button/Button.js.map +1 -1
  10. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  11. package/dist/components/Calendar/Calendar.js +1 -0
  12. package/dist/components/Calendar/Calendar.js.map +1 -1
  13. package/dist/components/Calendar/CalendarView.d.ts +0 -11
  14. package/dist/components/Calendar/CalendarView.d.ts.map +1 -1
  15. package/dist/components/Calendar/CalendarView.js +1 -0
  16. package/dist/components/Calendar/CalendarView.js.map +1 -1
  17. package/dist/components/Calendar/calendar.hooks.d.ts.map +1 -1
  18. package/dist/components/Calendar/calendar.hooks.js +1 -0
  19. package/dist/components/Calendar/calendar.hooks.js.map +1 -1
  20. package/dist/components/Card/Card.d.ts +2 -2
  21. package/dist/components/Card/Card.d.ts.map +1 -1
  22. package/dist/components/Card/Card.js +3 -2
  23. package/dist/components/Card/Card.js.map +1 -1
  24. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
  25. package/dist/components/Checkbox/Checkbox.js +1 -0
  26. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  27. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts.map +1 -1
  28. package/dist/components/CheckboxGroup/CheckboxGroup.js +1 -0
  29. package/dist/components/CheckboxGroup/CheckboxGroup.js.map +1 -1
  30. package/dist/components/Code/Editor/Editor.d.ts.map +1 -1
  31. package/dist/components/Code/Editor/Editor.js +1 -0
  32. package/dist/components/Code/Editor/Editor.js.map +1 -1
  33. package/dist/components/Code/Workspace/StatusBar.d.ts.map +1 -1
  34. package/dist/components/Code/Workspace/StatusBar.js +1 -0
  35. package/dist/components/Code/Workspace/StatusBar.js.map +1 -1
  36. package/dist/components/Code/Workspace/Toolbar.d.ts.map +1 -1
  37. package/dist/components/Code/Workspace/Toolbar.js +1 -0
  38. package/dist/components/Code/Workspace/Toolbar.js.map +1 -1
  39. package/dist/components/Code/Workspace/Workspace.d.ts.map +1 -1
  40. package/dist/components/Code/Workspace/Workspace.js +1 -0
  41. package/dist/components/Code/Workspace/Workspace.js.map +1 -1
  42. package/dist/components/DatePicker/DatePicker.d.ts.map +1 -1
  43. package/dist/components/DatePicker/DatePicker.js +7 -1
  44. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  45. package/dist/components/DatePicker/DateSegments.d.ts.map +1 -1
  46. package/dist/components/DatePicker/DateSegments.js +1 -0
  47. package/dist/components/DatePicker/DateSegments.js.map +1 -1
  48. package/dist/components/DatePicker/datepicker.hooks.d.ts.map +1 -1
  49. package/dist/components/DatePicker/datepicker.hooks.js +1 -0
  50. package/dist/components/DatePicker/datepicker.hooks.js.map +1 -1
  51. package/dist/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  52. package/dist/components/DateRangePicker/DateRangePicker.js +1 -0
  53. package/dist/components/DateRangePicker/DateRangePicker.js.map +1 -1
  54. package/dist/components/DateTimePicker/DateTimePicker.d.ts.map +1 -1
  55. package/dist/components/DateTimePicker/DateTimePicker.js +7 -1
  56. package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
  57. package/dist/components/DateTimePicker/DateTimeSegments.d.ts.map +1 -1
  58. package/dist/components/DateTimePicker/DateTimeSegments.js +1 -0
  59. package/dist/components/DateTimePicker/DateTimeSegments.js.map +1 -1
  60. package/dist/components/DateTimeRangePicker/DateTimeRangePicker.d.ts.map +1 -1
  61. package/dist/components/DateTimeRangePicker/DateTimeRangePicker.js +7 -1
  62. package/dist/components/DateTimeRangePicker/DateTimeRangePicker.js.map +1 -1
  63. package/dist/components/FormField/FormField.d.ts +31 -10
  64. package/dist/components/FormField/FormField.d.ts.map +1 -1
  65. package/dist/components/FormField/FormField.js +46 -17
  66. package/dist/components/FormField/FormField.js.map +1 -1
  67. package/dist/components/FormField/index.d.ts +2 -2
  68. package/dist/components/FormField/index.d.ts.map +1 -1
  69. package/dist/components/FormField/index.js +1 -1
  70. package/dist/components/FormField/index.js.map +1 -1
  71. package/dist/components/HoverCard/HoverCard.d.ts.map +1 -1
  72. package/dist/components/HoverCard/HoverCard.js +4 -0
  73. package/dist/components/HoverCard/HoverCard.js.map +1 -1
  74. package/dist/components/HoverCard/components/HoverCardContent.d.ts +16 -2
  75. package/dist/components/HoverCard/components/HoverCardContent.d.ts.map +1 -1
  76. package/dist/components/HoverCard/components/HoverCardContent.js +4 -3
  77. package/dist/components/HoverCard/components/HoverCardContent.js.map +1 -1
  78. package/dist/components/HoverCard/components/HoverCardContext.d.ts +2 -0
  79. package/dist/components/HoverCard/components/HoverCardContext.d.ts.map +1 -1
  80. package/dist/components/HoverCard/components/HoverCardContext.js +1 -0
  81. package/dist/components/HoverCard/components/HoverCardContext.js.map +1 -1
  82. package/dist/components/HoverCard/components/HoverCardTrigger.d.ts.map +1 -1
  83. package/dist/components/HoverCard/components/HoverCardTrigger.js +1 -0
  84. package/dist/components/HoverCard/components/HoverCardTrigger.js.map +1 -1
  85. package/dist/components/Message/Message.d.ts +5 -1
  86. package/dist/components/Message/Message.d.ts.map +1 -1
  87. package/dist/components/Message/Message.js +3 -3
  88. package/dist/components/Message/Message.js.map +1 -1
  89. package/dist/components/Modal/Modal.d.ts +26 -9
  90. package/dist/components/Modal/Modal.d.ts.map +1 -1
  91. package/dist/components/Modal/Modal.js +46 -21
  92. package/dist/components/Modal/Modal.js.map +1 -1
  93. package/dist/components/Modal/components/ModalContext.d.ts.map +1 -1
  94. package/dist/components/Modal/components/ModalContext.js +1 -0
  95. package/dist/components/Modal/components/ModalContext.js.map +1 -1
  96. package/dist/components/Modal/components/ModalHeader.d.ts.map +1 -1
  97. package/dist/components/Modal/components/ModalHeader.js +1 -0
  98. package/dist/components/Modal/components/ModalHeader.js.map +1 -1
  99. package/dist/components/Popover/Popover.d.ts +3 -1
  100. package/dist/components/Popover/Popover.d.ts.map +1 -1
  101. package/dist/components/Popover/Popover.js +8 -0
  102. package/dist/components/Popover/Popover.js.map +1 -1
  103. package/dist/components/Popover/components/PopoverBody.d.ts +16 -2
  104. package/dist/components/Popover/components/PopoverBody.d.ts.map +1 -1
  105. package/dist/components/Popover/components/PopoverBody.js +4 -3
  106. package/dist/components/Popover/components/PopoverBody.js.map +1 -1
  107. package/dist/components/Popover/components/PopoverClose.d.ts.map +1 -1
  108. package/dist/components/Popover/components/PopoverClose.js +1 -0
  109. package/dist/components/Popover/components/PopoverClose.js.map +1 -1
  110. package/dist/components/Popover/components/PopoverContext.d.ts +2 -0
  111. package/dist/components/Popover/components/PopoverContext.d.ts.map +1 -1
  112. package/dist/components/Popover/components/PopoverContext.js +1 -0
  113. package/dist/components/Popover/components/PopoverContext.js.map +1 -1
  114. package/dist/components/Popover/components/PopoverTrigger.d.ts.map +1 -1
  115. package/dist/components/Popover/components/PopoverTrigger.js +1 -0
  116. package/dist/components/Popover/components/PopoverTrigger.js.map +1 -1
  117. package/dist/components/RadioButton/RadioButton.d.ts.map +1 -1
  118. package/dist/components/RadioButton/RadioButton.js +1 -0
  119. package/dist/components/RadioButton/RadioButton.js.map +1 -1
  120. package/dist/components/RadioButtonGroup/RadioButtonGroup.d.ts.map +1 -1
  121. package/dist/components/RadioButtonGroup/RadioButtonGroup.js +1 -0
  122. package/dist/components/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  123. package/dist/components/SearchInput/SearchInput.d.ts +10 -7
  124. package/dist/components/SearchInput/SearchInput.d.ts.map +1 -1
  125. package/dist/components/SearchInput/SearchInput.js +11 -6
  126. package/dist/components/SearchInput/SearchInput.js.map +1 -1
  127. package/dist/components/Select/Select.d.ts +6 -0
  128. package/dist/components/Select/Select.d.ts.map +1 -1
  129. package/dist/components/Select/Select.js +11 -4
  130. package/dist/components/Select/Select.js.map +1 -1
  131. package/dist/components/Select/SelectDropdown.d.ts +3 -1
  132. package/dist/components/Select/SelectDropdown.d.ts.map +1 -1
  133. package/dist/components/Select/SelectDropdown.js +3 -2
  134. package/dist/components/Select/SelectDropdown.js.map +1 -1
  135. package/dist/components/Select/SelectTrigger.d.ts.map +1 -1
  136. package/dist/components/Select/SelectTrigger.js +5 -1
  137. package/dist/components/Select/SelectTrigger.js.map +1 -1
  138. package/dist/components/Select/useSelectKeyboard.d.ts.map +1 -1
  139. package/dist/components/Select/useSelectKeyboard.js +1 -0
  140. package/dist/components/Select/useSelectKeyboard.js.map +1 -1
  141. package/dist/components/Sheet/Sheet.d.ts +12 -0
  142. package/dist/components/Sheet/Sheet.d.ts.map +1 -1
  143. package/dist/components/Sheet/Sheet.js +26 -10
  144. package/dist/components/Sheet/Sheet.js.map +1 -1
  145. package/dist/components/Sheet/components/SheetContext.d.ts.map +1 -1
  146. package/dist/components/Sheet/components/SheetContext.js +1 -0
  147. package/dist/components/Sheet/components/SheetContext.js.map +1 -1
  148. package/dist/components/Sheet/components/SheetHeader.d.ts.map +1 -1
  149. package/dist/components/Sheet/components/SheetHeader.js +1 -0
  150. package/dist/components/Sheet/components/SheetHeader.js.map +1 -1
  151. package/dist/components/Spinner/Spinner.d.ts +2 -2
  152. package/dist/components/Spinner/Spinner.js +2 -2
  153. package/dist/components/Switch/Switch.d.ts.map +1 -1
  154. package/dist/components/Switch/Switch.js +1 -0
  155. package/dist/components/Switch/Switch.js.map +1 -1
  156. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  157. package/dist/components/Tabs/Tabs.js +1 -0
  158. package/dist/components/Tabs/Tabs.js.map +1 -1
  159. package/dist/components/Tabs/components/TabsContext.d.ts.map +1 -1
  160. package/dist/components/Tabs/components/TabsContext.js +1 -0
  161. package/dist/components/Tabs/components/TabsContext.js.map +1 -1
  162. package/dist/components/Tabs/components/TabsList.d.ts.map +1 -1
  163. package/dist/components/Tabs/components/TabsList.js +1 -0
  164. package/dist/components/Tabs/components/TabsList.js.map +1 -1
  165. package/dist/components/Tabs/components/TabsPanels.d.ts.map +1 -1
  166. package/dist/components/Tabs/components/TabsPanels.js +1 -0
  167. package/dist/components/Tabs/components/TabsPanels.js.map +1 -1
  168. package/dist/components/Tabs/components/TabsTrigger.d.ts.map +1 -1
  169. package/dist/components/Tabs/components/TabsTrigger.js +2 -1
  170. package/dist/components/Tabs/components/TabsTrigger.js.map +1 -1
  171. package/dist/components/TagChip/TagChip.d.ts.map +1 -1
  172. package/dist/components/TagChip/TagChip.js +1 -0
  173. package/dist/components/TagChip/TagChip.js.map +1 -1
  174. package/dist/components/TagInput/TagInput.d.ts +8 -2
  175. package/dist/components/TagInput/TagInput.d.ts.map +1 -1
  176. package/dist/components/TagInput/TagInput.js +8 -5
  177. package/dist/components/TagInput/TagInput.js.map +1 -1
  178. package/dist/components/Textarea/Textarea.d.ts +21 -5
  179. package/dist/components/Textarea/Textarea.d.ts.map +1 -1
  180. package/dist/components/Textarea/Textarea.js +31 -5
  181. package/dist/components/Textarea/Textarea.js.map +1 -1
  182. package/dist/components/TimePicker/PeriodSelector.d.ts.map +1 -1
  183. package/dist/components/TimePicker/PeriodSelector.js +1 -0
  184. package/dist/components/TimePicker/PeriodSelector.js.map +1 -1
  185. package/dist/components/TimePicker/TimeColumn.d.ts.map +1 -1
  186. package/dist/components/TimePicker/TimeColumn.js +1 -0
  187. package/dist/components/TimePicker/TimeColumn.js.map +1 -1
  188. package/dist/components/TimePicker/TimePicker.d.ts.map +1 -1
  189. package/dist/components/TimePicker/TimePicker.js +7 -1
  190. package/dist/components/TimePicker/TimePicker.js.map +1 -1
  191. package/dist/components/TimePicker/TimeSegments.d.ts.map +1 -1
  192. package/dist/components/TimePicker/TimeSegments.js +1 -0
  193. package/dist/components/TimePicker/TimeSegments.js.map +1 -1
  194. package/dist/components/Toast/Toast.d.ts +16 -2
  195. package/dist/components/Toast/Toast.d.ts.map +1 -1
  196. package/dist/components/Toast/Toast.js +17 -7
  197. package/dist/components/Toast/Toast.js.map +1 -1
  198. package/dist/components/Toggle/Toggle.d.ts +5 -1
  199. package/dist/components/Toggle/Toggle.d.ts.map +1 -1
  200. package/dist/components/Toggle/Toggle.js +4 -3
  201. package/dist/components/Toggle/Toggle.js.map +1 -1
  202. package/dist/components/ToggleGroup/ToggleGroupMultiple.d.ts +3 -0
  203. package/dist/components/ToggleGroup/ToggleGroupMultiple.d.ts.map +1 -1
  204. package/dist/components/ToggleGroup/ToggleGroupMultiple.js +4 -3
  205. package/dist/components/ToggleGroup/ToggleGroupMultiple.js.map +1 -1
  206. package/dist/components/ToggleGroup/ToggleGroupSingle.d.ts +3 -0
  207. package/dist/components/ToggleGroup/ToggleGroupSingle.d.ts.map +1 -1
  208. package/dist/components/ToggleGroup/ToggleGroupSingle.js +4 -3
  209. package/dist/components/ToggleGroup/ToggleGroupSingle.js.map +1 -1
  210. package/dist/components/ToggleGroup/toggleGroup.types.d.ts +13 -0
  211. package/dist/components/ToggleGroup/toggleGroup.types.d.ts.map +1 -1
  212. package/dist/components/Tooltip/Tooltip.d.ts +3 -1
  213. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  214. package/dist/components/Tooltip/Tooltip.js +4 -0
  215. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  216. package/dist/components/Tooltip/components/TooltipBody.d.ts +16 -2
  217. package/dist/components/Tooltip/components/TooltipBody.d.ts.map +1 -1
  218. package/dist/components/Tooltip/components/TooltipBody.js +4 -3
  219. package/dist/components/Tooltip/components/TooltipBody.js.map +1 -1
  220. package/dist/components/Tooltip/components/TooltipContext.d.ts +2 -0
  221. package/dist/components/Tooltip/components/TooltipContext.d.ts.map +1 -1
  222. package/dist/components/Tooltip/components/TooltipContext.js +1 -0
  223. package/dist/components/Tooltip/components/TooltipContext.js.map +1 -1
  224. package/dist/components/Tooltip/components/TooltipTrigger.d.ts.map +1 -1
  225. package/dist/components/Tooltip/components/TooltipTrigger.js +1 -0
  226. package/dist/components/Tooltip/components/TooltipTrigger.js.map +1 -1
  227. package/dist/hooks/useCollapsible.d.ts.map +1 -1
  228. package/dist/hooks/useCollapsible.js +1 -0
  229. package/dist/hooks/useCollapsible.js.map +1 -1
  230. package/dist/hooks/useControllableState.d.ts.map +1 -1
  231. package/dist/hooks/useControllableState.js +1 -0
  232. package/dist/hooks/useControllableState.js.map +1 -1
  233. package/dist/hooks/useDebouncedCallback.d.ts.map +1 -1
  234. package/dist/hooks/useDebouncedCallback.js +1 -0
  235. package/dist/hooks/useDebouncedCallback.js.map +1 -1
  236. package/dist/hooks/useDebouncedState.d.ts.map +1 -1
  237. package/dist/hooks/useDebouncedState.js +1 -0
  238. package/dist/hooks/useDebouncedState.js.map +1 -1
  239. package/dist/hooks/useDeviceFormFactor.d.ts.map +1 -1
  240. package/dist/hooks/useDeviceFormFactor.js +1 -0
  241. package/dist/hooks/useDeviceFormFactor.js.map +1 -1
  242. package/dist/hooks/useLocalStorage.d.ts.map +1 -1
  243. package/dist/hooks/useLocalStorage.js +1 -0
  244. package/dist/hooks/useLocalStorage.js.map +1 -1
  245. package/dist/hooks/useMergedFloatingRef.d.ts.map +1 -1
  246. package/dist/hooks/useMergedFloatingRef.js +1 -0
  247. package/dist/hooks/useMergedFloatingRef.js.map +1 -1
  248. package/dist/hooks/usePresence.d.ts.map +1 -1
  249. package/dist/hooks/usePresence.js +1 -0
  250. package/dist/hooks/usePresence.js.map +1 -1
  251. package/dist/hooks/useStack.d.ts.map +1 -1
  252. package/dist/hooks/useStack.js +34 -10
  253. package/dist/hooks/useStack.js.map +1 -1
  254. package/dist/hooks/useTheme.d.ts.map +1 -1
  255. package/dist/hooks/useTheme.js +1 -0
  256. package/dist/hooks/useTheme.js.map +1 -1
  257. package/dist/internal/PickerField.d.ts.map +1 -1
  258. package/dist/internal/PickerField.js +1 -0
  259. package/dist/internal/PickerField.js.map +1 -1
  260. package/dist/internal/SegmentedField.d.ts.map +1 -1
  261. package/dist/internal/SegmentedField.js +1 -0
  262. package/dist/internal/SegmentedField.js.map +1 -1
  263. package/dist/internal/brandScope.d.ts +25 -0
  264. package/dist/internal/brandScope.d.ts.map +1 -0
  265. package/dist/internal/brandScope.js +37 -0
  266. package/dist/internal/brandScope.js.map +1 -0
  267. package/dist/internal/escapeLayers.d.ts +12 -0
  268. package/dist/internal/escapeLayers.d.ts.map +1 -0
  269. package/dist/internal/escapeLayers.js +48 -0
  270. package/dist/internal/escapeLayers.js.map +1 -0
  271. package/dist/lib/ErrorBoundary.d.ts.map +1 -1
  272. package/dist/lib/ErrorBoundary.js +1 -0
  273. package/dist/lib/ErrorBoundary.js.map +1 -1
  274. package/dist/lib/contexts/ComponentsContext/ComponentsContext.d.ts.map +1 -1
  275. package/dist/lib/contexts/ComponentsContext/ComponentsContext.js +1 -0
  276. package/dist/lib/contexts/ComponentsContext/ComponentsContext.js.map +1 -1
  277. package/dist/lib/contexts/OverlayContext/OverlayContext.d.ts +9 -4
  278. package/dist/lib/contexts/OverlayContext/OverlayContext.d.ts.map +1 -1
  279. package/dist/lib/contexts/OverlayContext/OverlayContext.js +25 -12
  280. package/dist/lib/contexts/OverlayContext/OverlayContext.js.map +1 -1
  281. package/dist/lib/contexts/OverlayContext/ToastStack.d.ts +20 -0
  282. package/dist/lib/contexts/OverlayContext/ToastStack.d.ts.map +1 -0
  283. package/dist/lib/contexts/OverlayContext/ToastStack.js +45 -0
  284. package/dist/lib/contexts/OverlayContext/ToastStack.js.map +1 -0
  285. package/dist/lib/contexts/OverlayContext/hooks/useModal.d.ts.map +1 -1
  286. package/dist/lib/contexts/OverlayContext/hooks/useModal.js +1 -0
  287. package/dist/lib/contexts/OverlayContext/hooks/useModal.js.map +1 -1
  288. package/dist/lib/contexts/OverlayContext/hooks/useToast.d.ts +27 -10
  289. package/dist/lib/contexts/OverlayContext/hooks/useToast.d.ts.map +1 -1
  290. package/dist/lib/contexts/OverlayContext/hooks/useToast.js +31 -49
  291. package/dist/lib/contexts/OverlayContext/hooks/useToast.js.map +1 -1
  292. package/dist/lib/contexts/OverlayContext/index.d.ts +2 -0
  293. package/dist/lib/contexts/OverlayContext/index.d.ts.map +1 -1
  294. package/dist/lib/contexts/OverlayContext/index.js +2 -0
  295. package/dist/lib/contexts/OverlayContext/index.js.map +1 -1
  296. package/dist/lib/contexts/OverlayContext/toastStore.d.ts +68 -0
  297. package/dist/lib/contexts/OverlayContext/toastStore.d.ts.map +1 -0
  298. package/dist/lib/contexts/OverlayContext/toastStore.js +69 -0
  299. package/dist/lib/contexts/OverlayContext/toastStore.js.map +1 -0
  300. package/dist/lib/withErrorBoundary.d.ts.map +1 -1
  301. package/dist/lib/withErrorBoundary.js +1 -0
  302. package/dist/lib/withErrorBoundary.js.map +1 -1
  303. package/dist/lib/withSuspenseAndErrorBoundary.d.ts.map +1 -1
  304. package/dist/lib/withSuspenseAndErrorBoundary.js +1 -0
  305. package/dist/lib/withSuspenseAndErrorBoundary.js.map +1 -1
  306. package/dist/{theme/schema.d.ts → theming/vocabulary.d.ts} +4 -4
  307. package/dist/theming/vocabulary.d.ts.map +1 -0
  308. package/dist/{theme/schema.js → theming/vocabulary.js} +4 -4
  309. package/dist/theming/vocabulary.js.map +1 -0
  310. package/package.json +18 -6
  311. package/src/components/Badge/Badge.tsx +12 -6
  312. package/src/components/Button/Button.tsx +25 -5
  313. package/src/{theme/recipes/button.css → components/Button/button.recipe.css} +2 -2
  314. package/src/components/Calendar/Calendar.tsx +2 -0
  315. package/src/components/Calendar/CalendarView.tsx +2 -0
  316. package/src/components/Calendar/calendar.hooks.ts +2 -0
  317. package/src/components/Card/Card.tsx +4 -2
  318. package/src/components/Checkbox/Checkbox.tsx +2 -0
  319. package/src/components/CheckboxGroup/CheckboxGroup.tsx +2 -0
  320. package/src/components/Code/Editor/Editor.tsx +2 -0
  321. package/src/components/Code/Workspace/StatusBar.tsx +2 -0
  322. package/src/components/Code/Workspace/Toolbar.tsx +2 -0
  323. package/src/components/Code/Workspace/Workspace.tsx +2 -0
  324. package/src/components/DatePicker/DatePicker.tsx +10 -0
  325. package/src/components/DatePicker/DateSegments.tsx +2 -0
  326. package/src/components/DatePicker/datepicker.hooks.ts +2 -0
  327. package/src/components/DateRangePicker/DateRangePicker.tsx +2 -0
  328. package/src/components/DateTimePicker/DateTimePicker.tsx +10 -1
  329. package/src/components/DateTimePicker/DateTimeSegments.tsx +2 -0
  330. package/src/components/DateTimeRangePicker/DateTimeRangePicker.tsx +10 -1
  331. package/src/components/FormField/FormField.tsx +94 -42
  332. package/src/components/FormField/index.ts +2 -2
  333. package/src/components/HoverCard/HoverCard.tsx +5 -0
  334. package/src/components/HoverCard/components/HoverCardContent.tsx +13 -3
  335. package/src/components/HoverCard/components/HoverCardContext.tsx +4 -0
  336. package/src/components/HoverCard/components/HoverCardTrigger.tsx +2 -0
  337. package/src/components/Message/Message.tsx +27 -23
  338. package/src/components/Modal/Modal.tsx +88 -51
  339. package/src/components/Modal/components/ModalContext.tsx +2 -0
  340. package/src/components/Modal/components/ModalHeader.tsx +2 -0
  341. package/src/components/Popover/Popover.tsx +10 -0
  342. package/src/components/Popover/components/PopoverBody.tsx +13 -3
  343. package/src/components/Popover/components/PopoverClose.tsx +2 -0
  344. package/src/components/Popover/components/PopoverContext.tsx +4 -0
  345. package/src/components/Popover/components/PopoverTrigger.tsx +2 -0
  346. package/src/components/RadioButton/RadioButton.tsx +2 -0
  347. package/src/components/RadioButtonGroup/RadioButtonGroup.tsx +2 -0
  348. package/src/components/SearchInput/SearchInput.tsx +15 -8
  349. package/src/components/Select/Select.tsx +27 -2
  350. package/src/components/Select/SelectDropdown.tsx +6 -0
  351. package/src/components/Select/SelectTrigger.tsx +5 -0
  352. package/src/components/Select/useSelectKeyboard.ts +2 -0
  353. package/src/components/Sheet/Sheet.tsx +59 -34
  354. package/src/components/Sheet/components/SheetContext.tsx +2 -0
  355. package/src/components/Sheet/components/SheetHeader.tsx +2 -0
  356. package/src/components/Spinner/Spinner.tsx +2 -2
  357. package/src/components/Switch/Switch.tsx +2 -0
  358. package/src/components/Tabs/Tabs.tsx +2 -0
  359. package/src/components/Tabs/components/TabsContext.tsx +2 -0
  360. package/src/components/Tabs/components/TabsList.tsx +2 -0
  361. package/src/components/Tabs/components/TabsPanels.tsx +2 -0
  362. package/src/components/Tabs/components/TabsTrigger.tsx +3 -1
  363. package/src/{theme/recipes/tabs.css → components/Tabs/tabs.recipe.css} +1 -1
  364. package/src/components/TagChip/TagChip.tsx +2 -0
  365. package/src/components/TagInput/TagInput.tsx +15 -6
  366. package/src/components/Textarea/Textarea.tsx +42 -6
  367. package/src/{theme/recipes/textarea.css → components/Textarea/textarea.recipe.css} +1 -1
  368. package/src/components/TimePicker/PeriodSelector.tsx +2 -0
  369. package/src/components/TimePicker/TimeColumn.tsx +2 -0
  370. package/src/components/TimePicker/TimePicker.tsx +10 -0
  371. package/src/components/TimePicker/TimeSegments.tsx +2 -0
  372. package/src/components/Toast/Toast.tsx +26 -6
  373. package/src/components/Toggle/Toggle.tsx +20 -3
  374. package/src/components/ToggleGroup/ToggleGroupMultiple.tsx +8 -1
  375. package/src/components/ToggleGroup/ToggleGroupSingle.tsx +8 -0
  376. package/src/components/ToggleGroup/toggleGroup.types.ts +13 -0
  377. package/src/components/Tooltip/Tooltip.tsx +5 -0
  378. package/src/components/Tooltip/components/TooltipBody.tsx +13 -3
  379. package/src/components/Tooltip/components/TooltipContext.tsx +4 -0
  380. package/src/components/Tooltip/components/TooltipTrigger.tsx +2 -0
  381. package/src/hooks/useCollapsible.ts +2 -0
  382. package/src/hooks/useControllableState.ts +2 -0
  383. package/src/hooks/useDebouncedCallback.ts +2 -0
  384. package/src/hooks/useDebouncedState.ts +2 -0
  385. package/src/hooks/useDeviceFormFactor.ts +2 -0
  386. package/src/hooks/useLocalStorage.ts +2 -0
  387. package/src/hooks/useMergedFloatingRef.ts +2 -0
  388. package/src/hooks/usePresence.ts +2 -0
  389. package/src/hooks/useStack.ts +35 -12
  390. package/src/hooks/useTheme.ts +2 -0
  391. package/src/internal/PickerField.tsx +2 -0
  392. package/src/internal/SegmentedField.tsx +2 -0
  393. package/src/internal/brandScope.ts +39 -0
  394. package/src/internal/escapeLayers.ts +53 -0
  395. package/src/lib/ErrorBoundary.tsx +2 -0
  396. package/src/lib/contexts/ComponentsContext/ComponentsContext.tsx +2 -0
  397. package/src/lib/contexts/OverlayContext/OverlayContext.tsx +42 -26
  398. package/src/lib/contexts/OverlayContext/ToastStack.tsx +71 -0
  399. package/src/lib/contexts/OverlayContext/hooks/useModal.tsx +2 -0
  400. package/src/lib/contexts/OverlayContext/hooks/useToast.ts +30 -73
  401. package/src/lib/contexts/OverlayContext/index.ts +2 -0
  402. package/src/lib/contexts/OverlayContext/toastStore.ts +138 -0
  403. package/src/lib/withErrorBoundary.tsx +2 -0
  404. package/src/lib/withSuspenseAndErrorBoundary.tsx +2 -0
  405. package/src/theme/linen/index.css +11 -0
  406. package/src/theme/linen/palette.css +87 -0
  407. package/src/theme/linen/theme.css +371 -0
  408. package/src/theming/tailwind.css +356 -0
  409. package/src/{theme/schema.ts → theming/vocabulary.ts} +3 -3
  410. package/dist/theme/index.d.ts +0 -9
  411. package/dist/theme/index.d.ts.map +0 -1
  412. package/dist/theme/index.js +0 -8
  413. package/dist/theme/index.js.map +0 -1
  414. package/dist/theme/schema.d.ts.map +0 -1
  415. package/dist/theme/schema.js.map +0 -1
  416. package/src/theme/index.ts +0 -39
  417. package/src/theme/recipes/index.css +0 -28
  418. package/src/theme/tokens.css +0 -824
  419. /package/src/{theme/recipes/badge.css → components/Badge/badge.recipe.css} +0 -0
  420. /package/src/{theme/recipes/card.css → components/Card/card.recipe.css} +0 -0
  421. /package/src/{theme/recipes/checkbox.css → components/Checkbox/checkbox.recipe.css} +0 -0
  422. /package/src/{theme/recipes/field.css → components/Field/field.recipe.css} +0 -0
  423. /package/src/{theme/recipes/input.css → components/Input/input.recipe.css} +0 -0
  424. /package/src/{theme/recipes/message.css → components/Message/message.recipe.css} +0 -0
  425. /package/src/{theme/recipes/modal.css → components/Modal/modal.recipe.css} +0 -0
  426. /package/src/{theme/recipes/radio-button.css → components/RadioButton/radio-button.recipe.css} +0 -0
  427. /package/src/{theme/recipes/search-input.css → components/SearchInput/search-input.recipe.css} +0 -0
  428. /package/src/{theme/recipes/select.css → components/Select/select.recipe.css} +0 -0
  429. /package/src/{theme/recipes/sheet.css → components/Sheet/sheet.recipe.css} +0 -0
  430. /package/src/{theme/recipes/spinner.css → components/Spinner/spinner.recipe.css} +0 -0
  431. /package/src/{theme/recipes/switch.css → components/Switch/switch.recipe.css} +0 -0
  432. /package/src/{theme/recipes/tag-chip.css → components/TagChip/tag-chip.recipe.css} +0 -0
  433. /package/src/{theme/recipes/toggle.css → components/Toggle/toggle.recipe.css} +0 -0
@@ -1,824 +0,0 @@
1
- /**
2
- * Design tokens — the single source of truth for the design system.
3
- *
4
- * Hand-edited. Three token tiers, each answering a different question, and each
5
- * with a different editor:
6
- *
7
- * 1. Palette — raw scales. What colours exist. Never referenced by
8
- * components; a new hue is added here and nowhere else.
9
- * 2. Semantic — what a colour *means*, one block per mode. Every value points
10
- * at a palette entry, so a re-skin edits tier 1 only. This tier is what
11
- * collapses the light/dark axis: 145 of its tokens remap between modes, so
12
- * nothing downstream has to know a mode exists.
13
- * 3. Component — which meaning a given component part uses, per variant and
14
- * state. Lives in `recipes/`, imported below. This is the consumer's
15
- * override surface: tier 2 is edited to re-skin, tier 3 to re-wire.
16
- *
17
- * Two emitters carry the tiers into the build:
18
- *
19
- * - `@theme` tells Tailwind which utilities exist. Every semantic token needs
20
- * an entry here or its class does not compile. Component tokens do not —
21
- * tier 3 is read as plain `var()` in CSS, never through a utility.
22
- * - `@layer base` holds the few global rules the components genuinely need.
23
- * App opinions (page background, scroll behaviour) are deliberately not
24
- * here: a library has no business restyling its consumer's page.
25
- *
26
- * Nothing verifies any of that, so when you add a token: put it in *both* mode
27
- * blocks and give it a `@theme` entry. Miss the dark block and it is undefined
28
- * in dark mode; miss the `@theme` entry and its utility never compiles. Neither
29
- * failure raises an error anywhere.
30
- */
31
-
32
- /* Tier 3. Imported here rather than from each component's `.tsx` so it reaches
33
- consumers through the `theme.css` import they already have — the build is
34
- `tsc` only, which does not copy `.css` into `dist/`. `@import` must precede
35
- every rule in this file, so this stays at the top. */
36
- @import "./recipes/index.css";
37
-
38
- /* =============================================================================
39
- 1. PALETTE
40
- ============================================================================= */
41
-
42
- :root {
43
- /* Identity. Declared as variables rather than comments so anything that wants
44
- them — the token documentation stories, a consumer's about page — can read
45
- them at runtime instead of parsing this file. */
46
- --theme-name: "Default";
47
- --theme-version: "0.1.0";
48
-
49
- --color-emerald-50: #f2fafb;
50
- --color-emerald-100: #d6eef0;
51
- --color-emerald-200: #addde0;
52
- --color-emerald-300: #7cc4c8;
53
- --color-emerald-400: #4ba5a9;
54
- --color-emerald-500: #368086;
55
- --color-emerald-600: #2c666c;
56
- --color-emerald-700: #234e53;
57
- --color-emerald-800: #19393d;
58
- --color-emerald-900: #11292c;
59
- --color-emerald-950: #0a1a1d;
60
-
61
- --color-topaz-50: #fff7f0;
62
- --color-topaz-100: #ffe5d1;
63
- --color-topaz-200: #fbc89f;
64
- --color-topaz-300: #f0a066;
65
- --color-topaz-400: #d9722e;
66
- --color-topaz-500: #c4530a;
67
- --color-topaz-600: #9f4007;
68
- --color-topaz-700: #7b2e06;
69
- --color-topaz-800: #5a2105;
70
- --color-topaz-900: #3d1503;
71
- --color-topaz-950: #230c02;
72
-
73
- --color-ruby-50: #fff5f6;
74
- --color-ruby-100: #fde1e4;
75
- --color-ruby-200: #f8bac3;
76
- --color-ruby-300: #ec8796;
77
- --color-ruby-400: #d55368;
78
- --color-ruby-500: #c33341;
79
- --color-ruby-600: #9e2533;
80
- --color-ruby-700: #7a1b27;
81
- --color-ruby-800: #57131c;
82
- --color-ruby-900: #3a0c13;
83
- --color-ruby-950: #21070b;
84
-
85
- --color-ocean-50: #f0f4fa;
86
- --color-ocean-100: #dce6f4;
87
- --color-ocean-200: #b9cde9;
88
- --color-ocean-300: #8fafd9;
89
- --color-ocean-400: #6691c7;
90
- --color-ocean-500: #4573ae;
91
- --color-ocean-600: #355a8c;
92
- --color-ocean-700: #034078;
93
- --color-ocean-800: #022f5a;
94
- --color-ocean-900: #001f54;
95
- --color-ocean-950: #0a1128;
96
-
97
- --color-sky-50: #effcff;
98
- --color-sky-100: #d6f5fb;
99
- --color-sky-200: #b3ecf7;
100
- --color-sky-300: #7fdff0;
101
- --color-sky-400: #44c9e2;
102
- --color-sky-500: #1282a2;
103
- --color-sky-600: #0f6b86;
104
- --color-sky-700: #10576d;
105
- --color-sky-800: #12475a;
106
- --color-sky-900: #133c4c;
107
- --color-sky-950: #062733;
108
-
109
- --color-earth-50: #fefcfb;
110
- --color-earth-100: #faf6f4;
111
- --color-earth-200: #f2ebe7;
112
- --color-earth-300: #e8ddd6;
113
- --color-earth-400: #d4c4b9;
114
- --color-earth-500: #b8a192;
115
- --color-earth-600: #9a816f;
116
- --color-earth-700: #7d6555;
117
- --color-earth-800: #5e4b40;
118
- --color-earth-900: #3d302a;
119
- --color-earth-950: #211916;
120
-
121
- --color-slate-50: #f8fafc;
122
- --color-slate-100: #f1f5f9;
123
- --color-slate-200: #e2e8f0;
124
- --color-slate-300: #cbd5e1;
125
- --color-slate-400: #94a3b8;
126
- --color-slate-500: #64748b;
127
- --color-slate-600: #475569;
128
- --color-slate-700: #334155;
129
- --color-slate-800: #1e293b;
130
- --color-slate-900: #0f172a;
131
- --color-slate-950: #020617;
132
-
133
- --font-sans: Inter Variable, ui-sans-serif, system-ui, sans-serif;
134
- --font-mono: JetBrains Mono Variable, ui-monospace, monospace;
135
- }
136
-
137
- /* =============================================================================
138
- 2. SEMANTIC TOKENS
139
- ============================================================================= */
140
-
141
- :root:not([data-theme]),
142
- :root[data-theme="light"] {
143
- /* Background */
144
- --bg-strong: var(--color-slate-800);
145
- --bg-strong-hovered: var(--color-slate-900);
146
- --bg-strong-pressed: var(--color-slate-950);
147
- --bg-strong-disabled: var(--color-slate-300);
148
- --bg-normal: white;
149
- --bg-normal-hovered: var(--color-slate-50);
150
- --bg-normal-pressed: var(--color-slate-100);
151
- --bg-normal-disabled: var(--color-slate-200);
152
- --bg-subtle: var(--color-slate-50);
153
- --bg-subtle-hovered: var(--color-slate-100);
154
- --bg-subtle-pressed: var(--color-slate-200);
155
- --bg-subtle-disabled: var(--color-slate-100);
156
- --bg-brand-subtle: var(--color-ocean-100);
157
- --bg-brand-subtle-hovered: var(--color-ocean-200);
158
- --bg-brand-subtle-pressed: var(--color-ocean-300);
159
- --bg-brand-subtle-disabled: var(--color-ocean-50);
160
- --bg-brand: var(--color-ocean-600);
161
- --bg-brand-hovered: var(--color-ocean-700);
162
- --bg-brand-pressed: var(--color-ocean-800);
163
- --bg-brand-disabled: var(--color-ocean-300);
164
- --bg-brand-strong: var(--color-ocean-800);
165
- --bg-brand-strong-hovered: var(--color-ocean-900);
166
- --bg-brand-strong-pressed: var(--color-ocean-950);
167
- --bg-brand-strong-disabled: var(--color-ocean-400);
168
- --bg-success-subtle: var(--color-emerald-100);
169
- --bg-success-subtle-hovered: var(--color-emerald-200);
170
- --bg-success-subtle-pressed: var(--color-emerald-300);
171
- --bg-success-subtle-disabled: var(--color-emerald-50);
172
- --bg-success: var(--color-emerald-600);
173
- --bg-success-hovered: var(--color-emerald-700);
174
- --bg-success-pressed: var(--color-emerald-800);
175
- --bg-success-disabled: var(--color-emerald-300);
176
- --bg-success-strong: var(--color-emerald-800);
177
- --bg-success-strong-hovered: var(--color-emerald-900);
178
- --bg-success-strong-pressed: var(--color-emerald-950);
179
- --bg-success-strong-disabled: var(--color-emerald-400);
180
- --bg-warning-subtle: var(--color-topaz-100);
181
- --bg-warning-subtle-hovered: var(--color-topaz-200);
182
- --bg-warning-subtle-pressed: var(--color-topaz-300);
183
- --bg-warning-subtle-disabled: var(--color-topaz-50);
184
- --bg-warning: var(--color-topaz-600);
185
- --bg-warning-hovered: var(--color-topaz-700);
186
- --bg-warning-pressed: var(--color-topaz-800);
187
- --bg-warning-disabled: var(--color-topaz-300);
188
- --bg-warning-strong: var(--color-topaz-800);
189
- --bg-warning-strong-hovered: var(--color-topaz-900);
190
- --bg-warning-strong-pressed: var(--color-topaz-950);
191
- --bg-warning-strong-disabled: var(--color-topaz-400);
192
- --bg-danger-subtle: var(--color-ruby-100);
193
- --bg-danger-subtle-hovered: var(--color-ruby-200);
194
- --bg-danger-subtle-pressed: var(--color-ruby-300);
195
- --bg-danger-subtle-disabled: var(--color-ruby-50);
196
- --bg-danger: var(--color-ruby-600);
197
- --bg-danger-hovered: var(--color-ruby-700);
198
- --bg-danger-pressed: var(--color-ruby-800);
199
- --bg-danger-disabled: var(--color-ruby-300);
200
- --bg-danger-strong: var(--color-ruby-800);
201
- --bg-danger-strong-hovered: var(--color-ruby-900);
202
- --bg-danger-strong-pressed: var(--color-ruby-950);
203
- --bg-danger-strong-disabled: var(--color-ruby-400);
204
- --bg-overlay: rgba(0, 0, 0, 0.5);
205
-
206
- /* Foreground */
207
- --fg-strong: var(--color-slate-900);
208
- --fg-strong-hovered: var(--color-slate-950);
209
- --fg-strong-pressed: black;
210
- --fg-strong-disabled: var(--color-slate-400);
211
- --fg-on-strong: var(--color-slate-50);
212
- --fg-on-strong-hovered: white;
213
- --fg-on-strong-pressed: white;
214
- --fg-on-strong-disabled: var(--color-slate-300);
215
- --fg-normal: var(--color-slate-900);
216
- --fg-normal-hovered: var(--color-slate-950);
217
- --fg-normal-pressed: var(--color-slate-950);
218
- --fg-normal-disabled: var(--color-slate-400);
219
- --fg-subtle: var(--color-slate-500);
220
- --fg-subtle-hovered: var(--color-slate-600);
221
- --fg-subtle-pressed: var(--color-slate-700);
222
- --fg-subtle-disabled: var(--color-slate-300);
223
- --fg-brand: var(--color-ocean-700);
224
- --fg-brand-hovered: var(--color-ocean-800);
225
- --fg-brand-pressed: var(--color-ocean-900);
226
- --fg-brand-disabled: var(--color-ocean-300);
227
- --fg-on-brand-subtle: var(--color-ocean-800);
228
- --fg-on-brand-subtle-hovered: var(--color-ocean-900);
229
- --fg-on-brand-subtle-pressed: var(--color-ocean-950);
230
- --fg-on-brand-subtle-disabled: var(--color-ocean-400);
231
- --fg-on-brand: var(--color-slate-50);
232
- --fg-on-brand-hovered: white;
233
- --fg-on-brand-pressed: white;
234
- --fg-on-brand-disabled: var(--color-slate-300);
235
- --fg-on-brand-strong: var(--color-slate-50);
236
- --fg-on-brand-strong-hovered: white;
237
- --fg-on-brand-strong-pressed: white;
238
- --fg-on-brand-strong-disabled: var(--color-slate-300);
239
- --fg-success: var(--color-emerald-700);
240
- --fg-success-hovered: var(--color-emerald-800);
241
- --fg-success-pressed: var(--color-emerald-900);
242
- --fg-success-disabled: var(--color-emerald-300);
243
- --fg-on-success-subtle: var(--color-emerald-800);
244
- --fg-on-success-subtle-hovered: var(--color-emerald-900);
245
- --fg-on-success-subtle-pressed: var(--color-emerald-950);
246
- --fg-on-success-subtle-disabled: var(--color-emerald-400);
247
- --fg-on-success: var(--color-slate-50);
248
- --fg-on-success-hovered: white;
249
- --fg-on-success-pressed: white;
250
- --fg-on-success-disabled: var(--color-slate-300);
251
- --fg-on-success-strong: var(--color-slate-50);
252
- --fg-on-success-strong-hovered: white;
253
- --fg-on-success-strong-pressed: white;
254
- --fg-on-success-strong-disabled: var(--color-slate-300);
255
- --fg-warning: var(--color-topaz-700);
256
- --fg-warning-hovered: var(--color-topaz-800);
257
- --fg-warning-pressed: var(--color-topaz-900);
258
- --fg-warning-disabled: var(--color-topaz-300);
259
- --fg-on-warning-subtle: var(--color-topaz-800);
260
- --fg-on-warning-subtle-hovered: var(--color-topaz-900);
261
- --fg-on-warning-subtle-pressed: var(--color-topaz-950);
262
- --fg-on-warning-subtle-disabled: var(--color-topaz-400);
263
- --fg-on-warning: var(--color-slate-50);
264
- --fg-on-warning-hovered: white;
265
- --fg-on-warning-pressed: white;
266
- --fg-on-warning-disabled: var(--color-slate-300);
267
- --fg-on-warning-strong: var(--color-slate-50);
268
- --fg-on-warning-strong-hovered: white;
269
- --fg-on-warning-strong-pressed: white;
270
- --fg-on-warning-strong-disabled: var(--color-slate-300);
271
- --fg-danger: var(--color-ruby-700);
272
- --fg-danger-hovered: var(--color-ruby-800);
273
- --fg-danger-pressed: var(--color-ruby-900);
274
- --fg-danger-disabled: var(--color-ruby-300);
275
- --fg-on-danger-subtle: var(--color-ruby-800);
276
- --fg-on-danger-subtle-hovered: var(--color-ruby-900);
277
- --fg-on-danger-subtle-pressed: var(--color-ruby-950);
278
- --fg-on-danger-subtle-disabled: var(--color-ruby-400);
279
- --fg-on-danger: var(--color-slate-50);
280
- --fg-on-danger-hovered: white;
281
- --fg-on-danger-pressed: white;
282
- --fg-on-danger-disabled: var(--color-slate-300);
283
- --fg-on-danger-strong: var(--color-slate-50);
284
- --fg-on-danger-strong-hovered: white;
285
- --fg-on-danger-strong-pressed: white;
286
- --fg-on-danger-strong-disabled: var(--color-slate-300);
287
-
288
- /* Border */
289
- --border-strong: var(--color-slate-800);
290
- --border-strong-hovered: var(--color-slate-900);
291
- --border-strong-pressed: var(--color-slate-950);
292
- --border-strong-disabled: var(--color-slate-300);
293
- --border-normal: var(--color-slate-300);
294
- --border-normal-hovered: var(--color-slate-400);
295
- --border-normal-pressed: var(--color-slate-500);
296
- --border-normal-disabled: var(--color-slate-100);
297
- --border-subtle: var(--color-slate-100);
298
- --border-subtle-hovered: var(--color-slate-200);
299
- --border-subtle-pressed: var(--color-slate-300);
300
- --border-subtle-disabled: var(--color-slate-50);
301
- --border-brand-subtle: var(--color-ocean-300);
302
- --border-brand-subtle-hovered: var(--color-ocean-400);
303
- --border-brand-subtle-pressed: var(--color-ocean-500);
304
- --border-brand-subtle-disabled: var(--color-ocean-200);
305
- --border-brand: var(--color-ocean-600);
306
- --border-brand-hovered: var(--color-ocean-700);
307
- --border-brand-pressed: var(--color-ocean-800);
308
- --border-brand-disabled: var(--color-ocean-200);
309
- --border-brand-strong: var(--color-ocean-800);
310
- --border-brand-strong-hovered: var(--color-ocean-900);
311
- --border-brand-strong-pressed: var(--color-ocean-950);
312
- --border-brand-strong-disabled: var(--color-ocean-400);
313
- --border-success: var(--color-emerald-300);
314
- --border-success-hovered: var(--color-emerald-400);
315
- --border-success-pressed: var(--color-emerald-500);
316
- --border-success-disabled: var(--color-emerald-200);
317
- --border-warning: var(--color-topaz-300);
318
- --border-warning-hovered: var(--color-topaz-400);
319
- --border-warning-pressed: var(--color-topaz-500);
320
- --border-warning-disabled: var(--color-topaz-200);
321
- --border-danger: var(--color-ruby-300);
322
- --border-danger-hovered: var(--color-ruby-400);
323
- --border-danger-pressed: var(--color-ruby-500);
324
- --border-danger-disabled: var(--color-ruby-200);
325
-
326
- /* Interaction */
327
- --focus-ring: var(--color-ocean-500);
328
- }
329
-
330
- :root[data-theme="dark"] {
331
- /* Background */
332
- --bg-strong: var(--color-slate-200);
333
- --bg-strong-hovered: var(--color-slate-100);
334
- --bg-strong-pressed: var(--color-slate-50);
335
- --bg-strong-disabled: var(--color-slate-600);
336
- --bg-normal: var(--color-slate-900);
337
- --bg-normal-hovered: var(--color-slate-800);
338
- --bg-normal-pressed: var(--color-slate-700);
339
- --bg-normal-disabled: var(--color-slate-900);
340
- --bg-subtle: var(--color-slate-800);
341
- --bg-subtle-hovered: var(--color-slate-700);
342
- --bg-subtle-pressed: var(--color-slate-600);
343
- --bg-subtle-disabled: var(--color-slate-800);
344
- --bg-brand-subtle: var(--color-ocean-950);
345
- --bg-brand-subtle-hovered: var(--color-ocean-900);
346
- --bg-brand-subtle-pressed: var(--color-ocean-800);
347
- --bg-brand-subtle-disabled: var(--color-ocean-950);
348
- --bg-brand: var(--color-ocean-500);
349
- --bg-brand-hovered: var(--color-ocean-600);
350
- --bg-brand-pressed: var(--color-ocean-700);
351
- --bg-brand-disabled: var(--color-ocean-800);
352
- --bg-brand-strong: var(--color-ocean-300);
353
- --bg-brand-strong-hovered: var(--color-ocean-200);
354
- --bg-brand-strong-pressed: var(--color-ocean-100);
355
- --bg-brand-strong-disabled: var(--color-ocean-600);
356
- --bg-success-subtle: var(--color-emerald-950);
357
- --bg-success-subtle-hovered: var(--color-emerald-900);
358
- --bg-success-subtle-pressed: var(--color-emerald-800);
359
- --bg-success-subtle-disabled: var(--color-emerald-950);
360
- --bg-success: var(--color-emerald-500);
361
- --bg-success-hovered: var(--color-emerald-600);
362
- --bg-success-pressed: var(--color-emerald-700);
363
- --bg-success-disabled: var(--color-emerald-800);
364
- --bg-success-strong: var(--color-emerald-300);
365
- --bg-success-strong-hovered: var(--color-emerald-200);
366
- --bg-success-strong-pressed: var(--color-emerald-100);
367
- --bg-success-strong-disabled: var(--color-emerald-600);
368
- --bg-warning-subtle: var(--color-topaz-950);
369
- --bg-warning-subtle-hovered: var(--color-topaz-900);
370
- --bg-warning-subtle-pressed: var(--color-topaz-800);
371
- --bg-warning-subtle-disabled: var(--color-topaz-950);
372
- --bg-warning: var(--color-topaz-500);
373
- --bg-warning-hovered: var(--color-topaz-600);
374
- --bg-warning-pressed: var(--color-topaz-700);
375
- --bg-warning-disabled: var(--color-topaz-800);
376
- --bg-warning-strong: var(--color-topaz-300);
377
- --bg-warning-strong-hovered: var(--color-topaz-200);
378
- --bg-warning-strong-pressed: var(--color-topaz-100);
379
- --bg-warning-strong-disabled: var(--color-topaz-600);
380
- --bg-danger-subtle: var(--color-ruby-950);
381
- --bg-danger-subtle-hovered: var(--color-ruby-900);
382
- --bg-danger-subtle-pressed: var(--color-ruby-800);
383
- --bg-danger-subtle-disabled: var(--color-ruby-950);
384
- --bg-danger: var(--color-ruby-500);
385
- --bg-danger-hovered: var(--color-ruby-600);
386
- --bg-danger-pressed: var(--color-ruby-700);
387
- --bg-danger-disabled: var(--color-ruby-800);
388
- --bg-danger-strong: var(--color-ruby-300);
389
- --bg-danger-strong-hovered: var(--color-ruby-200);
390
- --bg-danger-strong-pressed: var(--color-ruby-100);
391
- --bg-danger-strong-disabled: var(--color-ruby-600);
392
- --bg-overlay: rgba(0, 0, 0, 0.6);
393
-
394
- /* Foreground */
395
- --fg-strong: var(--color-slate-50);
396
- --fg-strong-hovered: white;
397
- --fg-strong-pressed: white;
398
- --fg-strong-disabled: var(--color-slate-500);
399
- --fg-on-strong: var(--color-slate-900);
400
- --fg-on-strong-hovered: var(--color-slate-950);
401
- --fg-on-strong-pressed: black;
402
- --fg-on-strong-disabled: var(--color-slate-500);
403
- --fg-normal: var(--color-slate-50);
404
- --fg-normal-hovered: white;
405
- --fg-normal-pressed: white;
406
- --fg-normal-disabled: var(--color-slate-500);
407
- --fg-subtle: var(--color-slate-400);
408
- --fg-subtle-hovered: var(--color-slate-300);
409
- --fg-subtle-pressed: var(--color-slate-200);
410
- --fg-subtle-disabled: var(--color-slate-600);
411
- --fg-brand: var(--color-ocean-300);
412
- --fg-brand-hovered: var(--color-ocean-200);
413
- --fg-brand-pressed: var(--color-ocean-100);
414
- --fg-brand-disabled: var(--color-ocean-700);
415
- --fg-on-brand-subtle: var(--color-ocean-300);
416
- --fg-on-brand-subtle-hovered: var(--color-ocean-200);
417
- --fg-on-brand-subtle-pressed: var(--color-ocean-100);
418
- --fg-on-brand-subtle-disabled: var(--color-ocean-700);
419
- --fg-on-brand: white;
420
- --fg-on-brand-hovered: white;
421
- --fg-on-brand-pressed: white;
422
- --fg-on-brand-disabled: var(--color-slate-400);
423
- --fg-on-brand-strong: var(--color-slate-900);
424
- --fg-on-brand-strong-hovered: var(--color-slate-950);
425
- --fg-on-brand-strong-pressed: black;
426
- --fg-on-brand-strong-disabled: var(--color-slate-500);
427
- --fg-success: var(--color-emerald-300);
428
- --fg-success-hovered: var(--color-emerald-200);
429
- --fg-success-pressed: var(--color-emerald-100);
430
- --fg-success-disabled: var(--color-emerald-700);
431
- --fg-on-success-subtle: var(--color-emerald-300);
432
- --fg-on-success-subtle-hovered: var(--color-emerald-200);
433
- --fg-on-success-subtle-pressed: var(--color-emerald-100);
434
- --fg-on-success-subtle-disabled: var(--color-emerald-700);
435
- --fg-on-success: white;
436
- --fg-on-success-hovered: white;
437
- --fg-on-success-pressed: white;
438
- --fg-on-success-disabled: var(--color-slate-500);
439
- --fg-on-success-strong: var(--color-slate-900);
440
- --fg-on-success-strong-hovered: var(--color-slate-950);
441
- --fg-on-success-strong-pressed: black;
442
- --fg-on-success-strong-disabled: var(--color-slate-500);
443
- --fg-warning: var(--color-topaz-300);
444
- --fg-warning-hovered: var(--color-topaz-200);
445
- --fg-warning-pressed: var(--color-topaz-100);
446
- --fg-warning-disabled: var(--color-topaz-700);
447
- --fg-on-warning-subtle: var(--color-topaz-300);
448
- --fg-on-warning-subtle-hovered: var(--color-topaz-200);
449
- --fg-on-warning-subtle-pressed: var(--color-topaz-100);
450
- --fg-on-warning-subtle-disabled: var(--color-topaz-700);
451
- --fg-on-warning: white;
452
- --fg-on-warning-hovered: white;
453
- --fg-on-warning-pressed: white;
454
- --fg-on-warning-disabled: var(--color-slate-500);
455
- --fg-on-warning-strong: var(--color-slate-900);
456
- --fg-on-warning-strong-hovered: var(--color-slate-950);
457
- --fg-on-warning-strong-pressed: black;
458
- --fg-on-warning-strong-disabled: var(--color-slate-500);
459
- --fg-danger: var(--color-ruby-300);
460
- --fg-danger-hovered: var(--color-ruby-200);
461
- --fg-danger-pressed: var(--color-ruby-100);
462
- --fg-danger-disabled: var(--color-ruby-700);
463
- --fg-on-danger-subtle: var(--color-ruby-300);
464
- --fg-on-danger-subtle-hovered: var(--color-ruby-200);
465
- --fg-on-danger-subtle-pressed: var(--color-ruby-100);
466
- --fg-on-danger-subtle-disabled: var(--color-ruby-700);
467
- --fg-on-danger: white;
468
- --fg-on-danger-hovered: white;
469
- --fg-on-danger-pressed: white;
470
- --fg-on-danger-disabled: var(--color-slate-500);
471
- --fg-on-danger-strong: var(--color-slate-900);
472
- --fg-on-danger-strong-hovered: var(--color-slate-950);
473
- --fg-on-danger-strong-pressed: black;
474
- --fg-on-danger-strong-disabled: var(--color-slate-500);
475
-
476
- /* Border */
477
- --border-strong: var(--color-slate-200);
478
- --border-strong-hovered: var(--color-slate-100);
479
- --border-strong-pressed: var(--color-slate-50);
480
- --border-strong-disabled: var(--color-slate-600);
481
- --border-normal: var(--color-slate-700);
482
- --border-normal-hovered: var(--color-slate-600);
483
- --border-normal-pressed: var(--color-slate-500);
484
- --border-normal-disabled: var(--color-slate-800);
485
- --border-subtle: var(--color-slate-800);
486
- --border-subtle-hovered: var(--color-slate-700);
487
- --border-subtle-pressed: var(--color-slate-600);
488
- --border-subtle-disabled: var(--color-slate-900);
489
- --border-brand-subtle: var(--color-ocean-700);
490
- --border-brand-subtle-hovered: var(--color-ocean-600);
491
- --border-brand-subtle-pressed: var(--color-ocean-500);
492
- --border-brand-subtle-disabled: var(--color-ocean-800);
493
- --border-brand: var(--color-ocean-500);
494
- --border-brand-hovered: var(--color-ocean-400);
495
- --border-brand-pressed: var(--color-ocean-300);
496
- --border-brand-disabled: var(--color-ocean-800);
497
- --border-brand-strong: var(--color-ocean-300);
498
- --border-brand-strong-hovered: var(--color-ocean-200);
499
- --border-brand-strong-pressed: var(--color-ocean-100);
500
- --border-brand-strong-disabled: var(--color-ocean-600);
501
- --border-success: var(--color-emerald-700);
502
- --border-success-hovered: var(--color-emerald-600);
503
- --border-success-pressed: var(--color-emerald-500);
504
- --border-success-disabled: var(--color-emerald-800);
505
- --border-warning: var(--color-topaz-700);
506
- --border-warning-hovered: var(--color-topaz-600);
507
- --border-warning-pressed: var(--color-topaz-500);
508
- --border-warning-disabled: var(--color-topaz-800);
509
- --border-danger: var(--color-ruby-700);
510
- --border-danger-hovered: var(--color-ruby-600);
511
- --border-danger-pressed: var(--color-ruby-500);
512
- --border-danger-disabled: var(--color-ruby-800);
513
-
514
- /* Interaction */
515
- --focus-ring: var(--color-ocean-400);
516
- }
517
-
518
- /* =============================================================================
519
- 3. TAILWIND THEME
520
- ============================================================================= */
521
-
522
- /* Theming is a runtime variable swap, not a build-time variant, so `dark:` is
523
- only here for consumers who reach for it. Components never use it. */
524
- @custom-variant dark (&:where([data-theme="dark"], [data-theme="dark"] *));
525
-
526
- @theme inline {
527
- /* Drop Tailwind's stock palette: a `bg-red-500` in component source is a
528
- token that was never designed, so it should fail to compile. */
529
- --color-*: initial;
530
- --color-white: #ffffff;
531
- --color-black: #000000;
532
-
533
- /* Background */
534
- --color-bg-strong: var(--bg-strong);
535
- --color-bg-strong-hovered: var(--bg-strong-hovered);
536
- --color-bg-strong-pressed: var(--bg-strong-pressed);
537
- --color-bg-strong-disabled: var(--bg-strong-disabled);
538
- --color-bg-normal: var(--bg-normal);
539
- --color-bg-normal-hovered: var(--bg-normal-hovered);
540
- --color-bg-normal-pressed: var(--bg-normal-pressed);
541
- --color-bg-normal-disabled: var(--bg-normal-disabled);
542
- --color-bg-subtle: var(--bg-subtle);
543
- --color-bg-subtle-hovered: var(--bg-subtle-hovered);
544
- --color-bg-subtle-pressed: var(--bg-subtle-pressed);
545
- --color-bg-subtle-disabled: var(--bg-subtle-disabled);
546
- --color-bg-brand-subtle: var(--bg-brand-subtle);
547
- --color-bg-brand-subtle-hovered: var(--bg-brand-subtle-hovered);
548
- --color-bg-brand-subtle-pressed: var(--bg-brand-subtle-pressed);
549
- --color-bg-brand-subtle-disabled: var(--bg-brand-subtle-disabled);
550
- --color-bg-brand: var(--bg-brand);
551
- --color-bg-brand-hovered: var(--bg-brand-hovered);
552
- --color-bg-brand-pressed: var(--bg-brand-pressed);
553
- --color-bg-brand-disabled: var(--bg-brand-disabled);
554
- --color-bg-brand-strong: var(--bg-brand-strong);
555
- --color-bg-brand-strong-hovered: var(--bg-brand-strong-hovered);
556
- --color-bg-brand-strong-pressed: var(--bg-brand-strong-pressed);
557
- --color-bg-brand-strong-disabled: var(--bg-brand-strong-disabled);
558
- --color-bg-success-subtle: var(--bg-success-subtle);
559
- --color-bg-success-subtle-hovered: var(--bg-success-subtle-hovered);
560
- --color-bg-success-subtle-pressed: var(--bg-success-subtle-pressed);
561
- --color-bg-success-subtle-disabled: var(--bg-success-subtle-disabled);
562
- --color-bg-success: var(--bg-success);
563
- --color-bg-success-hovered: var(--bg-success-hovered);
564
- --color-bg-success-pressed: var(--bg-success-pressed);
565
- --color-bg-success-disabled: var(--bg-success-disabled);
566
- --color-bg-success-strong: var(--bg-success-strong);
567
- --color-bg-success-strong-hovered: var(--bg-success-strong-hovered);
568
- --color-bg-success-strong-pressed: var(--bg-success-strong-pressed);
569
- --color-bg-success-strong-disabled: var(--bg-success-strong-disabled);
570
- --color-bg-warning-subtle: var(--bg-warning-subtle);
571
- --color-bg-warning-subtle-hovered: var(--bg-warning-subtle-hovered);
572
- --color-bg-warning-subtle-pressed: var(--bg-warning-subtle-pressed);
573
- --color-bg-warning-subtle-disabled: var(--bg-warning-subtle-disabled);
574
- --color-bg-warning: var(--bg-warning);
575
- --color-bg-warning-hovered: var(--bg-warning-hovered);
576
- --color-bg-warning-pressed: var(--bg-warning-pressed);
577
- --color-bg-warning-disabled: var(--bg-warning-disabled);
578
- --color-bg-warning-strong: var(--bg-warning-strong);
579
- --color-bg-warning-strong-hovered: var(--bg-warning-strong-hovered);
580
- --color-bg-warning-strong-pressed: var(--bg-warning-strong-pressed);
581
- --color-bg-warning-strong-disabled: var(--bg-warning-strong-disabled);
582
- --color-bg-danger-subtle: var(--bg-danger-subtle);
583
- --color-bg-danger-subtle-hovered: var(--bg-danger-subtle-hovered);
584
- --color-bg-danger-subtle-pressed: var(--bg-danger-subtle-pressed);
585
- --color-bg-danger-subtle-disabled: var(--bg-danger-subtle-disabled);
586
- --color-bg-danger: var(--bg-danger);
587
- --color-bg-danger-hovered: var(--bg-danger-hovered);
588
- --color-bg-danger-pressed: var(--bg-danger-pressed);
589
- --color-bg-danger-disabled: var(--bg-danger-disabled);
590
- --color-bg-danger-strong: var(--bg-danger-strong);
591
- --color-bg-danger-strong-hovered: var(--bg-danger-strong-hovered);
592
- --color-bg-danger-strong-pressed: var(--bg-danger-strong-pressed);
593
- --color-bg-danger-strong-disabled: var(--bg-danger-strong-disabled);
594
- --color-bg-overlay: var(--bg-overlay);
595
-
596
- /* Foreground */
597
- --color-fg-strong: var(--fg-strong);
598
- --color-fg-strong-hovered: var(--fg-strong-hovered);
599
- --color-fg-strong-pressed: var(--fg-strong-pressed);
600
- --color-fg-strong-disabled: var(--fg-strong-disabled);
601
- --color-fg-on-strong: var(--fg-on-strong);
602
- --color-fg-on-strong-hovered: var(--fg-on-strong-hovered);
603
- --color-fg-on-strong-pressed: var(--fg-on-strong-pressed);
604
- --color-fg-on-strong-disabled: var(--fg-on-strong-disabled);
605
- --color-fg-normal: var(--fg-normal);
606
- --color-fg-normal-hovered: var(--fg-normal-hovered);
607
- --color-fg-normal-pressed: var(--fg-normal-pressed);
608
- --color-fg-normal-disabled: var(--fg-normal-disabled);
609
- --color-fg-subtle: var(--fg-subtle);
610
- --color-fg-subtle-hovered: var(--fg-subtle-hovered);
611
- --color-fg-subtle-pressed: var(--fg-subtle-pressed);
612
- --color-fg-subtle-disabled: var(--fg-subtle-disabled);
613
- --color-fg-brand: var(--fg-brand);
614
- --color-fg-brand-hovered: var(--fg-brand-hovered);
615
- --color-fg-brand-pressed: var(--fg-brand-pressed);
616
- --color-fg-brand-disabled: var(--fg-brand-disabled);
617
- --color-fg-on-brand-subtle: var(--fg-on-brand-subtle);
618
- --color-fg-on-brand-subtle-hovered: var(--fg-on-brand-subtle-hovered);
619
- --color-fg-on-brand-subtle-pressed: var(--fg-on-brand-subtle-pressed);
620
- --color-fg-on-brand-subtle-disabled: var(--fg-on-brand-subtle-disabled);
621
- --color-fg-on-brand: var(--fg-on-brand);
622
- --color-fg-on-brand-hovered: var(--fg-on-brand-hovered);
623
- --color-fg-on-brand-pressed: var(--fg-on-brand-pressed);
624
- --color-fg-on-brand-disabled: var(--fg-on-brand-disabled);
625
- --color-fg-on-brand-strong: var(--fg-on-brand-strong);
626
- --color-fg-on-brand-strong-hovered: var(--fg-on-brand-strong-hovered);
627
- --color-fg-on-brand-strong-pressed: var(--fg-on-brand-strong-pressed);
628
- --color-fg-on-brand-strong-disabled: var(--fg-on-brand-strong-disabled);
629
- --color-fg-success: var(--fg-success);
630
- --color-fg-success-hovered: var(--fg-success-hovered);
631
- --color-fg-success-pressed: var(--fg-success-pressed);
632
- --color-fg-success-disabled: var(--fg-success-disabled);
633
- --color-fg-on-success-subtle: var(--fg-on-success-subtle);
634
- --color-fg-on-success-subtle-hovered: var(--fg-on-success-subtle-hovered);
635
- --color-fg-on-success-subtle-pressed: var(--fg-on-success-subtle-pressed);
636
- --color-fg-on-success-subtle-disabled: var(--fg-on-success-subtle-disabled);
637
- --color-fg-on-success: var(--fg-on-success);
638
- --color-fg-on-success-hovered: var(--fg-on-success-hovered);
639
- --color-fg-on-success-pressed: var(--fg-on-success-pressed);
640
- --color-fg-on-success-disabled: var(--fg-on-success-disabled);
641
- --color-fg-warning: var(--fg-warning);
642
- --color-fg-warning-hovered: var(--fg-warning-hovered);
643
- --color-fg-warning-pressed: var(--fg-warning-pressed);
644
- --color-fg-warning-disabled: var(--fg-warning-disabled);
645
- --color-fg-on-warning-subtle: var(--fg-on-warning-subtle);
646
- --color-fg-on-warning-subtle-hovered: var(--fg-on-warning-subtle-hovered);
647
- --color-fg-on-warning-subtle-pressed: var(--fg-on-warning-subtle-pressed);
648
- --color-fg-on-warning-subtle-disabled: var(--fg-on-warning-subtle-disabled);
649
- --color-fg-on-warning: var(--fg-on-warning);
650
- --color-fg-on-warning-hovered: var(--fg-on-warning-hovered);
651
- --color-fg-on-warning-pressed: var(--fg-on-warning-pressed);
652
- --color-fg-on-warning-disabled: var(--fg-on-warning-disabled);
653
- --color-fg-danger: var(--fg-danger);
654
- --color-fg-danger-hovered: var(--fg-danger-hovered);
655
- --color-fg-danger-pressed: var(--fg-danger-pressed);
656
- --color-fg-danger-disabled: var(--fg-danger-disabled);
657
- --color-fg-on-danger-subtle: var(--fg-on-danger-subtle);
658
- --color-fg-on-danger-subtle-hovered: var(--fg-on-danger-subtle-hovered);
659
- --color-fg-on-danger-subtle-pressed: var(--fg-on-danger-subtle-pressed);
660
- --color-fg-on-danger-subtle-disabled: var(--fg-on-danger-subtle-disabled);
661
- --color-fg-on-danger: var(--fg-on-danger);
662
- --color-fg-on-danger-hovered: var(--fg-on-danger-hovered);
663
- --color-fg-on-danger-pressed: var(--fg-on-danger-pressed);
664
- --color-fg-on-danger-disabled: var(--fg-on-danger-disabled);
665
-
666
- /* Border */
667
- --color-border-strong: var(--border-strong);
668
- --color-border-strong-hovered: var(--border-strong-hovered);
669
- --color-border-strong-pressed: var(--border-strong-pressed);
670
- --color-border-strong-disabled: var(--border-strong-disabled);
671
- --color-border-normal: var(--border-normal);
672
- --color-border-normal-hovered: var(--border-normal-hovered);
673
- --color-border-normal-pressed: var(--border-normal-pressed);
674
- --color-border-normal-disabled: var(--border-normal-disabled);
675
- --color-border-subtle: var(--border-subtle);
676
- --color-border-subtle-hovered: var(--border-subtle-hovered);
677
- --color-border-subtle-pressed: var(--border-subtle-pressed);
678
- --color-border-subtle-disabled: var(--border-subtle-disabled);
679
- --color-border-brand-subtle: var(--border-brand-subtle);
680
- --color-border-brand-subtle-hovered: var(--border-brand-subtle-hovered);
681
- --color-border-brand-subtle-pressed: var(--border-brand-subtle-pressed);
682
- --color-border-brand-subtle-disabled: var(--border-brand-subtle-disabled);
683
- --color-border-brand: var(--border-brand);
684
- --color-border-brand-hovered: var(--border-brand-hovered);
685
- --color-border-brand-pressed: var(--border-brand-pressed);
686
- --color-border-brand-disabled: var(--border-brand-disabled);
687
- --color-border-brand-strong: var(--border-brand-strong);
688
- --color-border-brand-strong-hovered: var(--border-brand-strong-hovered);
689
- --color-border-brand-strong-pressed: var(--border-brand-strong-pressed);
690
- --color-border-brand-strong-disabled: var(--border-brand-strong-disabled);
691
- --color-border-success: var(--border-success);
692
- --color-border-success-hovered: var(--border-success-hovered);
693
- --color-border-success-pressed: var(--border-success-pressed);
694
- --color-border-success-disabled: var(--border-success-disabled);
695
- --color-border-warning: var(--border-warning);
696
- --color-border-warning-hovered: var(--border-warning-hovered);
697
- --color-border-warning-pressed: var(--border-warning-pressed);
698
- --color-border-warning-disabled: var(--border-warning-disabled);
699
- --color-border-danger: var(--border-danger);
700
- --color-border-danger-hovered: var(--border-danger-hovered);
701
- --color-border-danger-pressed: var(--border-danger-pressed);
702
- --color-border-danger-disabled: var(--border-danger-disabled);
703
-
704
- /* Interaction */
705
- --color-focus-ring: var(--focus-ring);
706
-
707
- /* Stacking order. Named tokens only — never a raw `z-[n]`. */
708
- --z-index-content-sticky: 10;
709
- --z-index-app-bar: 30;
710
- --z-index-sheet: 50;
711
- --z-index-popover: 60;
712
- --z-index-modal: 70;
713
- --z-index-toast: 9999;
714
-
715
- /* Overlay enter/exit pairs, selected by `data-state`. */
716
- --animate-fade-in: fade-in 200ms ease-out forwards;
717
- --animate-fade-out: fade-out 200ms ease-out forwards;
718
- --animate-fade-in-slow: fade-in 300ms ease-out forwards;
719
- --animate-fade-out-slow: fade-out 300ms ease-out forwards;
720
- --animate-slide-up-in: slide-up-in 200ms ease-out forwards;
721
- --animate-slide-up-out: slide-up-out 200ms ease-out forwards;
722
- --animate-slide-right-in: slide-right-in 200ms ease-out forwards;
723
- --animate-slide-right-out: slide-right-out 200ms ease-out forwards;
724
- --animate-slide-left-in: slide-left-in 200ms ease-out forwards;
725
- --animate-slide-left-out: slide-left-out 200ms ease-out forwards;
726
-
727
- @keyframes fade-in {
728
- from {
729
- opacity: 0;
730
- }
731
- to {
732
- opacity: 1;
733
- }
734
- }
735
- @keyframes fade-out {
736
- from {
737
- opacity: 1;
738
- }
739
- to {
740
- opacity: 0;
741
- }
742
- }
743
- @keyframes slide-up-in {
744
- from {
745
- transform: translateY(100%);
746
- }
747
- to {
748
- transform: translateY(0);
749
- }
750
- }
751
- @keyframes slide-up-out {
752
- from {
753
- transform: translateY(0);
754
- }
755
- to {
756
- transform: translateY(100%);
757
- }
758
- }
759
- @keyframes slide-right-in {
760
- from {
761
- transform: translateX(100%);
762
- }
763
- to {
764
- transform: translateX(0);
765
- }
766
- }
767
- @keyframes slide-right-out {
768
- from {
769
- transform: translateX(0);
770
- }
771
- to {
772
- transform: translateX(100%);
773
- }
774
- }
775
- @keyframes slide-left-in {
776
- from {
777
- transform: translateX(-100%);
778
- }
779
- to {
780
- transform: translateX(0);
781
- }
782
- }
783
- @keyframes slide-left-out {
784
- from {
785
- transform: translateX(0);
786
- }
787
- to {
788
- transform: translateX(-100%);
789
- }
790
- }
791
- }
792
-
793
- /* =============================================================================
794
- 4. BASE LAYER
795
- ============================================================================= */
796
-
797
- /* Not app styling — each of these is something the components depend on. */
798
- @layer base {
799
- /* Tailwind's preflight defaults border-color to currentColor, so any component
800
- using a bare `border` would take its border from the text colour. */
801
- * {
802
- @apply border-border-normal;
803
- }
804
-
805
- /* Twenty components have no focus style of their own and rely on this. */
806
- :focus-visible {
807
- @apply outline-hidden ring-2 ring-focus-ring ring-offset-2 ring-offset-bg-normal;
808
- }
809
-
810
- /* Honored globally rather than per component, so every animation the system
811
- ships inherits it. `!important` is the point: it has to beat the animation
812
- utilities on the elements themselves. */
813
- @media (prefers-reduced-motion: reduce) {
814
- /* biome-ignore-start lint/complexity/noImportantStyles: overriding utility-level animations is the intent */
815
- *,
816
- *::before,
817
- *::after {
818
- animation-duration: 0.01ms !important;
819
- animation-iteration-count: 1 !important;
820
- transition-duration: 0.01ms !important;
821
- }
822
- /* biome-ignore-end lint/complexity/noImportantStyles: overriding utility-level animations is the intent */
823
- }
824
- }