@sixthshift/design-system 0.3.0 → 0.5.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 (518) hide show
  1. package/README.md +116 -12
  2. package/dist/components/Badge/Badge.d.ts +64 -9
  3. package/dist/components/Badge/Badge.d.ts.map +1 -1
  4. package/dist/components/Badge/Badge.js +54 -46
  5. package/dist/components/Badge/Badge.js.map +1 -1
  6. package/dist/components/Badge/index.d.ts +1 -1
  7. package/dist/components/Badge/index.d.ts.map +1 -1
  8. package/dist/components/Badge/index.js +1 -1
  9. package/dist/components/Badge/index.js.map +1 -1
  10. package/dist/components/BarChart/BarChart.d.ts +12 -0
  11. package/dist/components/BarChart/BarChart.d.ts.map +1 -1
  12. package/dist/components/BarChart/BarChart.js +12 -0
  13. package/dist/components/BarChart/BarChart.js.map +1 -1
  14. package/dist/components/Button/Button.d.ts +85 -6
  15. package/dist/components/Button/Button.d.ts.map +1 -1
  16. package/dist/components/Button/Button.js +97 -106
  17. package/dist/components/Button/Button.js.map +1 -1
  18. package/dist/components/Button/index.d.ts +1 -1
  19. package/dist/components/Button/index.d.ts.map +1 -1
  20. package/dist/components/Button/index.js +1 -1
  21. package/dist/components/Button/index.js.map +1 -1
  22. package/dist/components/Calendar/Calendar.d.ts +18 -4
  23. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  24. package/dist/components/Calendar/Calendar.js +19 -5
  25. package/dist/components/Calendar/Calendar.js.map +1 -1
  26. package/dist/components/Calendar/CalendarView.d.ts.map +1 -1
  27. package/dist/components/Calendar/CalendarView.js +10 -2
  28. package/dist/components/Calendar/CalendarView.js.map +1 -1
  29. package/dist/components/Calendar/calendar.types.d.ts +9 -0
  30. package/dist/components/Calendar/calendar.types.d.ts.map +1 -1
  31. package/dist/components/Card/Card.d.ts +61 -2
  32. package/dist/components/Card/Card.d.ts.map +1 -1
  33. package/dist/components/Card/Card.js +99 -3
  34. package/dist/components/Card/Card.js.map +1 -1
  35. package/dist/components/Card/index.d.ts +1 -1
  36. package/dist/components/Card/index.d.ts.map +1 -1
  37. package/dist/components/Card/index.js +1 -1
  38. package/dist/components/Card/index.js.map +1 -1
  39. package/dist/components/Checkbox/Checkbox.d.ts +21 -0
  40. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
  41. package/dist/components/Checkbox/Checkbox.js +22 -1
  42. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  43. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +22 -0
  44. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts.map +1 -1
  45. package/dist/components/CheckboxGroup/CheckboxGroup.js +22 -0
  46. package/dist/components/CheckboxGroup/CheckboxGroup.js.map +1 -1
  47. package/dist/components/Code/Editor/Editor.js +2 -2
  48. package/dist/components/Code/Editor/Editor.js.map +1 -1
  49. package/dist/components/Code/Editor/themes.d.ts +2 -2
  50. package/dist/components/Code/Editor/themes.d.ts.map +1 -1
  51. package/dist/components/Code/Editor/themes.js +50 -32
  52. package/dist/components/Code/Editor/themes.js.map +1 -1
  53. package/dist/components/Code/ValidationStatus/ValidationStatus.d.ts.map +1 -1
  54. package/dist/components/Code/ValidationStatus/ValidationStatus.js.map +1 -1
  55. package/dist/components/DatePicker/DatePicker.d.ts +43 -0
  56. package/dist/components/DatePicker/DatePicker.d.ts.map +1 -1
  57. package/dist/components/DatePicker/DatePicker.js +166 -4
  58. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  59. package/dist/components/DatePicker/DateSegments.d.ts +60 -0
  60. package/dist/components/DatePicker/DateSegments.d.ts.map +1 -0
  61. package/dist/components/DatePicker/DateSegments.js +80 -0
  62. package/dist/components/DatePicker/DateSegments.js.map +1 -0
  63. package/dist/components/DatePicker/datepicker.types.d.ts +19 -1
  64. package/dist/components/DatePicker/datepicker.types.d.ts.map +1 -1
  65. package/dist/components/DatePicker/index.d.ts +1 -1
  66. package/dist/components/DatePicker/index.d.ts.map +1 -1
  67. package/dist/components/DateRangePicker/DateRangePicker.d.ts +20 -2
  68. package/dist/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  69. package/dist/components/DateRangePicker/DateRangePicker.js +22 -4
  70. package/dist/components/DateRangePicker/DateRangePicker.js.map +1 -1
  71. package/dist/components/DateRangePicker/daterangepicker.types.d.ts +6 -1
  72. package/dist/components/DateRangePicker/daterangepicker.types.d.ts.map +1 -1
  73. package/dist/components/DateTimePicker/DateTimePicker.d.ts +30 -2
  74. package/dist/components/DateTimePicker/DateTimePicker.d.ts.map +1 -1
  75. package/dist/components/DateTimePicker/DateTimePicker.js +105 -32
  76. package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
  77. package/dist/components/DateTimePicker/DateTimeSegments.d.ts +41 -0
  78. package/dist/components/DateTimePicker/DateTimeSegments.d.ts.map +1 -0
  79. package/dist/components/DateTimePicker/DateTimeSegments.js +67 -0
  80. package/dist/components/DateTimePicker/DateTimeSegments.js.map +1 -0
  81. package/dist/components/DateTimePicker/datetimepicker.types.d.ts +6 -1
  82. package/dist/components/DateTimePicker/datetimepicker.types.d.ts.map +1 -1
  83. package/dist/components/DateTimeRangePicker/DateTimeRangePicker.d.ts +28 -2
  84. package/dist/components/DateTimeRangePicker/DateTimeRangePicker.d.ts.map +1 -1
  85. package/dist/components/DateTimeRangePicker/DateTimeRangePicker.js +136 -58
  86. package/dist/components/DateTimeRangePicker/DateTimeRangePicker.js.map +1 -1
  87. package/dist/components/DateTimeRangePicker/datetimerangepicker.types.d.ts +6 -1
  88. package/dist/components/DateTimeRangePicker/datetimerangepicker.types.d.ts.map +1 -1
  89. package/dist/components/Field/Field.d.ts +15 -17
  90. package/dist/components/Field/Field.d.ts.map +1 -1
  91. package/dist/components/Field/Field.js +18 -3
  92. package/dist/components/Field/Field.js.map +1 -1
  93. package/dist/components/FormField/FormField.d.ts +15 -0
  94. package/dist/components/FormField/FormField.d.ts.map +1 -1
  95. package/dist/components/FormField/FormField.js +15 -0
  96. package/dist/components/FormField/FormField.js.map +1 -1
  97. package/dist/components/HoverCard/HoverCard.d.ts +6 -0
  98. package/dist/components/HoverCard/HoverCard.d.ts.map +1 -1
  99. package/dist/components/HoverCard/HoverCard.js +6 -0
  100. package/dist/components/HoverCard/HoverCard.js.map +1 -1
  101. package/dist/components/Input/Input.d.ts +15 -0
  102. package/dist/components/Input/Input.d.ts.map +1 -1
  103. package/dist/components/Input/Input.js +18 -3
  104. package/dist/components/Input/Input.js.map +1 -1
  105. package/dist/components/LineChart/LineChart.d.ts +17 -0
  106. package/dist/components/LineChart/LineChart.d.ts.map +1 -1
  107. package/dist/components/LineChart/LineChart.js +17 -0
  108. package/dist/components/LineChart/LineChart.js.map +1 -1
  109. package/dist/components/Markdown/Markdown.d.ts +17 -0
  110. package/dist/components/Markdown/Markdown.d.ts.map +1 -1
  111. package/dist/components/Markdown/Markdown.js +17 -0
  112. package/dist/components/Markdown/Markdown.js.map +1 -1
  113. package/dist/components/Message/Message.d.ts +49 -4
  114. package/dist/components/Message/Message.d.ts.map +1 -1
  115. package/dist/components/Message/Message.js +53 -17
  116. package/dist/components/Message/Message.js.map +1 -1
  117. package/dist/components/Message/index.d.ts +1 -1
  118. package/dist/components/Message/index.d.ts.map +1 -1
  119. package/dist/components/Modal/Modal.d.ts +36 -0
  120. package/dist/components/Modal/Modal.d.ts.map +1 -1
  121. package/dist/components/Modal/Modal.js +37 -1
  122. package/dist/components/Modal/Modal.js.map +1 -1
  123. package/dist/components/Modal/components/ModalHeader.js +1 -1
  124. package/dist/components/Modal/components/ModalHeader.js.map +1 -1
  125. package/dist/components/Popover/Popover.d.ts +29 -0
  126. package/dist/components/Popover/Popover.d.ts.map +1 -1
  127. package/dist/components/Popover/Popover.js +29 -0
  128. package/dist/components/Popover/Popover.js.map +1 -1
  129. package/dist/components/ProgressBar/ProgressBar.d.ts +14 -0
  130. package/dist/components/ProgressBar/ProgressBar.d.ts.map +1 -1
  131. package/dist/components/ProgressBar/ProgressBar.js +14 -0
  132. package/dist/components/ProgressBar/ProgressBar.js.map +1 -1
  133. package/dist/components/RadioButton/RadioButton.d.ts +26 -0
  134. package/dist/components/RadioButton/RadioButton.d.ts.map +1 -1
  135. package/dist/components/RadioButton/RadioButton.js +35 -1
  136. package/dist/components/RadioButton/RadioButton.js.map +1 -1
  137. package/dist/components/RadioButtonGroup/RadioButtonGroup.d.ts +26 -0
  138. package/dist/components/RadioButtonGroup/RadioButtonGroup.d.ts.map +1 -1
  139. package/dist/components/RadioButtonGroup/RadioButtonGroup.js +33 -0
  140. package/dist/components/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  141. package/dist/components/SearchInput/SearchInput.d.ts +10 -0
  142. package/dist/components/SearchInput/SearchInput.d.ts.map +1 -1
  143. package/dist/components/SearchInput/SearchInput.js +12 -1
  144. package/dist/components/SearchInput/SearchInput.js.map +1 -1
  145. package/dist/components/Select/Select.d.ts +4 -5
  146. package/dist/components/Select/Select.d.ts.map +1 -1
  147. package/dist/components/Select/Select.js +4 -5
  148. package/dist/components/Select/Select.js.map +1 -1
  149. package/dist/components/Select/SelectDropdown.d.ts.map +1 -1
  150. package/dist/components/Select/SelectDropdown.js +4 -3
  151. package/dist/components/Select/SelectDropdown.js.map +1 -1
  152. package/dist/components/Select/SelectTrigger.js +2 -2
  153. package/dist/components/Select/SelectTrigger.js.map +1 -1
  154. package/dist/components/Separator/Separator.d.ts +10 -0
  155. package/dist/components/Separator/Separator.d.ts.map +1 -1
  156. package/dist/components/Separator/Separator.js +10 -0
  157. package/dist/components/Separator/Separator.js.map +1 -1
  158. package/dist/components/Sheet/Sheet.d.ts +6 -0
  159. package/dist/components/Sheet/Sheet.d.ts.map +1 -1
  160. package/dist/components/Sheet/Sheet.js +7 -1
  161. package/dist/components/Sheet/Sheet.js.map +1 -1
  162. package/dist/components/Sheet/components/SheetFooter.js +1 -1
  163. package/dist/components/Sheet/components/SheetFooter.js.map +1 -1
  164. package/dist/components/Sheet/components/SheetHeader.js +1 -1
  165. package/dist/components/Sheet/components/SheetHeader.js.map +1 -1
  166. package/dist/components/Sparkline/Sparkline.d.ts +11 -0
  167. package/dist/components/Sparkline/Sparkline.d.ts.map +1 -1
  168. package/dist/components/Sparkline/Sparkline.js +11 -0
  169. package/dist/components/Sparkline/Sparkline.js.map +1 -1
  170. package/dist/components/Spinner/Spinner.d.ts +27 -2
  171. package/dist/components/Spinner/Spinner.d.ts.map +1 -1
  172. package/dist/components/Spinner/Spinner.js +28 -3
  173. package/dist/components/Spinner/Spinner.js.map +1 -1
  174. package/dist/components/Switch/Switch.d.ts +18 -0
  175. package/dist/components/Switch/Switch.d.ts.map +1 -1
  176. package/dist/components/Switch/Switch.js +19 -1
  177. package/dist/components/Switch/Switch.js.map +1 -1
  178. package/dist/components/Tabs/Tabs.d.ts +6 -0
  179. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  180. package/dist/components/Tabs/Tabs.js +6 -0
  181. package/dist/components/Tabs/Tabs.js.map +1 -1
  182. package/dist/components/Tabs/components/TabsTrigger.d.ts.map +1 -1
  183. package/dist/components/Tabs/components/TabsTrigger.js +22 -6
  184. package/dist/components/Tabs/components/TabsTrigger.js.map +1 -1
  185. package/dist/components/TagChip/TagChip.d.ts +14 -12
  186. package/dist/components/TagChip/TagChip.d.ts.map +1 -1
  187. package/dist/components/TagChip/TagChip.js +14 -1
  188. package/dist/components/TagChip/TagChip.js.map +1 -1
  189. package/dist/components/TagInput/TagInput.d.ts +11 -8
  190. package/dist/components/TagInput/TagInput.d.ts.map +1 -1
  191. package/dist/components/TagInput/TagInput.js +11 -0
  192. package/dist/components/TagInput/TagInput.js.map +1 -1
  193. package/dist/components/Text/Text.d.ts +9 -0
  194. package/dist/components/Text/Text.d.ts.map +1 -1
  195. package/dist/components/Text/Text.js +9 -0
  196. package/dist/components/Text/Text.js.map +1 -1
  197. package/dist/components/TextInline/TextInline.d.ts +15 -4
  198. package/dist/components/TextInline/TextInline.d.ts.map +1 -1
  199. package/dist/components/TextInline/TextInline.js +11 -0
  200. package/dist/components/TextInline/TextInline.js.map +1 -1
  201. package/dist/components/Textarea/Textarea.d.ts +12 -0
  202. package/dist/components/Textarea/Textarea.d.ts.map +1 -1
  203. package/dist/components/Textarea/Textarea.js +13 -1
  204. package/dist/components/Textarea/Textarea.js.map +1 -1
  205. package/dist/components/TimePicker/TimeColumn.d.ts +10 -1
  206. package/dist/components/TimePicker/TimeColumn.d.ts.map +1 -1
  207. package/dist/components/TimePicker/TimeColumn.js +8 -1
  208. package/dist/components/TimePicker/TimeColumn.js.map +1 -1
  209. package/dist/components/TimePicker/TimePicker.d.ts +32 -0
  210. package/dist/components/TimePicker/TimePicker.d.ts.map +1 -1
  211. package/dist/components/TimePicker/TimePicker.js +93 -6
  212. package/dist/components/TimePicker/TimePicker.js.map +1 -1
  213. package/dist/components/TimePicker/TimeSegments.d.ts +50 -0
  214. package/dist/components/TimePicker/TimeSegments.d.ts.map +1 -0
  215. package/dist/components/TimePicker/TimeSegments.js +93 -0
  216. package/dist/components/TimePicker/TimeSegments.js.map +1 -0
  217. package/dist/components/TimePicker/timepicker.hooks.d.ts +0 -4
  218. package/dist/components/TimePicker/timepicker.hooks.d.ts.map +1 -1
  219. package/dist/components/TimePicker/timepicker.hooks.js +1 -23
  220. package/dist/components/TimePicker/timepicker.hooks.js.map +1 -1
  221. package/dist/components/TimePicker/timepicker.types.d.ts +0 -2
  222. package/dist/components/TimePicker/timepicker.types.d.ts.map +1 -1
  223. package/dist/components/Toast/Toast.d.ts +27 -0
  224. package/dist/components/Toast/Toast.d.ts.map +1 -1
  225. package/dist/components/Toast/Toast.js +28 -1
  226. package/dist/components/Toast/Toast.js.map +1 -1
  227. package/dist/components/Toggle/Toggle.d.ts +31 -12
  228. package/dist/components/Toggle/Toggle.d.ts.map +1 -1
  229. package/dist/components/Toggle/Toggle.js +19 -31
  230. package/dist/components/Toggle/Toggle.js.map +1 -1
  231. package/dist/components/Toggle/index.d.ts +1 -1
  232. package/dist/components/Toggle/index.d.ts.map +1 -1
  233. package/dist/components/Toggle/index.js +1 -1
  234. package/dist/components/Toggle/index.js.map +1 -1
  235. package/dist/components/ToggleGroup/ToggleGroup.d.ts +17 -0
  236. package/dist/components/ToggleGroup/ToggleGroup.d.ts.map +1 -1
  237. package/dist/components/ToggleGroup/ToggleGroup.js +17 -0
  238. package/dist/components/ToggleGroup/ToggleGroup.js.map +1 -1
  239. package/dist/components/ToggleGroup/ToggleGroupItem.d.ts +1 -1
  240. package/dist/components/ToggleGroup/ToggleGroupItem.d.ts.map +1 -1
  241. package/dist/components/ToggleGroup/ToggleGroupItem.js +7 -6
  242. package/dist/components/ToggleGroup/ToggleGroupItem.js.map +1 -1
  243. package/dist/components/ToggleGroup/ToggleGroupMultiple.d.ts +4 -3
  244. package/dist/components/ToggleGroup/ToggleGroupMultiple.d.ts.map +1 -1
  245. package/dist/components/ToggleGroup/ToggleGroupMultiple.js +2 -2
  246. package/dist/components/ToggleGroup/ToggleGroupMultiple.js.map +1 -1
  247. package/dist/components/ToggleGroup/ToggleGroupSingle.d.ts +4 -3
  248. package/dist/components/ToggleGroup/ToggleGroupSingle.d.ts.map +1 -1
  249. package/dist/components/ToggleGroup/ToggleGroupSingle.js +2 -2
  250. package/dist/components/ToggleGroup/ToggleGroupSingle.js.map +1 -1
  251. package/dist/components/ToggleGroup/toggleGroup.types.d.ts +12 -3
  252. package/dist/components/ToggleGroup/toggleGroup.types.d.ts.map +1 -1
  253. package/dist/components/Tooltip/Tooltip.d.ts +6 -0
  254. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  255. package/dist/components/Tooltip/Tooltip.js +6 -0
  256. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  257. package/dist/date-time/index.d.ts.map +1 -1
  258. package/dist/date-time/index.js +0 -1
  259. package/dist/date-time/index.js.map +1 -1
  260. package/dist/internal/PickerField.d.ts +45 -0
  261. package/dist/internal/PickerField.d.ts.map +1 -0
  262. package/dist/internal/PickerField.js +24 -0
  263. package/dist/internal/PickerField.js.map +1 -0
  264. package/dist/internal/SegmentedField.d.ts +98 -0
  265. package/dist/internal/SegmentedField.d.ts.map +1 -0
  266. package/dist/internal/SegmentedField.js +315 -0
  267. package/dist/internal/SegmentedField.js.map +1 -0
  268. package/dist/internal/index.d.ts +2 -0
  269. package/dist/internal/index.d.ts.map +1 -1
  270. package/dist/internal/index.js +2 -0
  271. package/dist/internal/index.js.map +1 -1
  272. package/dist/lib/contexts/OverlayContext/OverlayContext.d.ts +2 -2
  273. package/dist/lib/contexts/OverlayContext/OverlayContext.d.ts.map +1 -1
  274. package/dist/lib/contexts/OverlayContext/OverlayContext.js +17 -6
  275. package/dist/lib/contexts/OverlayContext/OverlayContext.js.map +1 -1
  276. package/dist/theme/index.d.ts +2 -2
  277. package/dist/theme/index.d.ts.map +1 -1
  278. package/dist/theme/index.js +1 -1
  279. package/dist/theme/index.js.map +1 -1
  280. package/dist/theme/schema.d.ts +0 -22
  281. package/dist/theme/schema.d.ts.map +1 -1
  282. package/dist/theme/schema.js +0 -9
  283. package/dist/theme/schema.js.map +1 -1
  284. package/package.json +7 -48
  285. package/src/components/Badge/Badge.tsx +85 -48
  286. package/src/components/Badge/index.ts +10 -1
  287. package/src/components/BarChart/BarChart.tsx +12 -0
  288. package/src/components/Button/Button.tsx +129 -106
  289. package/src/components/Button/index.ts +10 -1
  290. package/src/components/Calendar/Calendar.tsx +29 -16
  291. package/src/components/Calendar/CalendarView.tsx +10 -1
  292. package/src/components/Calendar/calendar.types.ts +10 -0
  293. package/src/components/Card/Card.tsx +114 -15
  294. package/src/components/Card/index.ts +1 -1
  295. package/src/components/Checkbox/Checkbox.tsx +22 -2
  296. package/src/components/CheckboxGroup/CheckboxGroup.tsx +22 -0
  297. package/src/components/Code/Editor/Editor.tsx +2 -2
  298. package/src/components/Code/Editor/themes.ts +50 -32
  299. package/src/components/Code/ValidationStatus/ValidationStatus.tsx +6 -3
  300. package/src/components/DatePicker/DatePicker.tsx +279 -28
  301. package/src/components/DatePicker/DateSegments.tsx +125 -0
  302. package/src/components/DatePicker/datepicker.types.ts +21 -1
  303. package/src/components/DatePicker/index.ts +8 -1
  304. package/src/components/DateRangePicker/DateRangePicker.tsx +22 -4
  305. package/src/components/DateRangePicker/daterangepicker.types.ts +7 -1
  306. package/src/components/DateTimePicker/DateTimePicker.tsx +143 -70
  307. package/src/components/DateTimePicker/DateTimeSegments.tsx +113 -0
  308. package/src/components/DateTimePicker/datetimepicker.types.ts +7 -1
  309. package/src/components/DateTimeRangePicker/DateTimeRangePicker.tsx +195 -104
  310. package/src/components/DateTimeRangePicker/datetimerangepicker.types.ts +7 -1
  311. package/src/components/Field/Field.tsx +20 -22
  312. package/src/components/FormField/FormField.tsx +15 -0
  313. package/src/components/HoverCard/HoverCard.tsx +6 -0
  314. package/src/components/Input/Input.tsx +19 -4
  315. package/src/components/LineChart/LineChart.tsx +17 -0
  316. package/src/components/Markdown/Markdown.tsx +17 -0
  317. package/src/components/Message/Message.tsx +73 -23
  318. package/src/components/Message/index.ts +1 -1
  319. package/src/components/Modal/Modal.tsx +42 -3
  320. package/src/components/Modal/components/ModalHeader.tsx +1 -1
  321. package/src/components/Popover/Popover.tsx +29 -0
  322. package/src/components/ProgressBar/ProgressBar.tsx +14 -0
  323. package/src/components/RadioButton/RadioButton.tsx +34 -3
  324. package/src/components/RadioButtonGroup/RadioButtonGroup.tsx +32 -0
  325. package/src/components/SearchInput/SearchInput.tsx +13 -2
  326. package/src/components/Select/Select.tsx +4 -5
  327. package/src/components/Select/SelectDropdown.tsx +13 -9
  328. package/src/components/Select/SelectTrigger.tsx +7 -7
  329. package/src/components/Separator/Separator.tsx +10 -0
  330. package/src/components/Sheet/Sheet.tsx +8 -2
  331. package/src/components/Sheet/components/SheetFooter.tsx +1 -1
  332. package/src/components/Sheet/components/SheetHeader.tsx +2 -2
  333. package/src/components/Sparkline/Sparkline.tsx +11 -0
  334. package/src/components/Spinner/Spinner.tsx +28 -3
  335. package/src/components/Switch/Switch.tsx +27 -4
  336. package/src/components/Tabs/Tabs.tsx +6 -0
  337. package/src/components/Tabs/components/TabsTrigger.tsx +22 -5
  338. package/src/components/TagChip/TagChip.tsx +18 -16
  339. package/src/components/TagInput/TagInput.tsx +11 -8
  340. package/src/components/Text/Text.tsx +9 -0
  341. package/src/components/TextInline/TextInline.tsx +11 -0
  342. package/src/components/Textarea/Textarea.tsx +13 -1
  343. package/src/components/TimePicker/TimeColumn.tsx +24 -1
  344. package/src/components/TimePicker/TimePicker.tsx +127 -39
  345. package/src/components/TimePicker/TimeSegments.tsx +131 -0
  346. package/src/components/TimePicker/timepicker.hooks.ts +1 -24
  347. package/src/components/TimePicker/timepicker.types.ts +0 -3
  348. package/src/components/Toast/Toast.tsx +28 -1
  349. package/src/components/Toggle/Toggle.tsx +34 -32
  350. package/src/components/Toggle/index.ts +1 -1
  351. package/src/components/ToggleGroup/ToggleGroup.tsx +17 -0
  352. package/src/components/ToggleGroup/ToggleGroupItem.tsx +13 -8
  353. package/src/components/ToggleGroup/ToggleGroupMultiple.tsx +3 -1
  354. package/src/components/ToggleGroup/ToggleGroupSingle.tsx +3 -1
  355. package/src/components/ToggleGroup/toggleGroup.types.ts +12 -3
  356. package/src/components/Tooltip/Tooltip.tsx +6 -0
  357. package/src/date-time/index.ts +0 -1
  358. package/src/internal/PickerField.tsx +90 -0
  359. package/src/internal/SegmentedField.tsx +445 -0
  360. package/src/internal/index.ts +2 -0
  361. package/src/lib/contexts/OverlayContext/OverlayContext.tsx +21 -10
  362. package/src/theme/index.ts +0 -6
  363. package/src/theme/recipes/badge.css +140 -0
  364. package/src/theme/recipes/button.css +167 -0
  365. package/src/theme/recipes/card.css +31 -0
  366. package/src/theme/recipes/checkbox.css +44 -0
  367. package/src/theme/recipes/field.css +14 -0
  368. package/src/theme/recipes/index.css +28 -0
  369. package/src/theme/recipes/input.css +29 -0
  370. package/src/theme/recipes/message.css +47 -0
  371. package/src/theme/recipes/modal.css +31 -0
  372. package/src/theme/recipes/radio-button.css +42 -0
  373. package/src/theme/recipes/search-input.css +16 -0
  374. package/src/theme/recipes/select.css +105 -0
  375. package/src/theme/recipes/sheet.css +34 -0
  376. package/src/theme/recipes/spinner.css +17 -0
  377. package/src/theme/recipes/switch.css +39 -0
  378. package/src/theme/recipes/tabs.css +41 -0
  379. package/src/theme/recipes/tag-chip.css +27 -0
  380. package/src/theme/recipes/textarea.css +20 -0
  381. package/src/theme/recipes/toggle.css +92 -0
  382. package/src/theme/schema.ts +0 -27
  383. package/src/theme/tokens.css +26 -9
  384. package/dist/components/Avatar/Avatar.d.ts +0 -6
  385. package/dist/components/Avatar/Avatar.d.ts.map +0 -1
  386. package/dist/components/Avatar/Avatar.js +0 -11
  387. package/dist/components/Avatar/Avatar.js.map +0 -1
  388. package/dist/components/Avatar/index.d.ts +0 -2
  389. package/dist/components/Avatar/index.d.ts.map +0 -1
  390. package/dist/components/Avatar/index.js +0 -2
  391. package/dist/components/Avatar/index.js.map +0 -1
  392. package/dist/components/Breadcrumb/Breadcrumb.d.ts +0 -12
  393. package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +0 -1
  394. package/dist/components/Breadcrumb/Breadcrumb.js +0 -19
  395. package/dist/components/Breadcrumb/Breadcrumb.js.map +0 -1
  396. package/dist/components/Breadcrumb/index.d.ts +0 -2
  397. package/dist/components/Breadcrumb/index.d.ts.map +0 -1
  398. package/dist/components/Breadcrumb/index.js +0 -2
  399. package/dist/components/Breadcrumb/index.js.map +0 -1
  400. package/dist/components/ColorDot/ColorDot.d.ts +0 -19
  401. package/dist/components/ColorDot/ColorDot.d.ts.map +0 -1
  402. package/dist/components/ColorDot/ColorDot.js +0 -36
  403. package/dist/components/ColorDot/ColorDot.js.map +0 -1
  404. package/dist/components/ColorDot/index.d.ts +0 -2
  405. package/dist/components/ColorDot/index.d.ts.map +0 -1
  406. package/dist/components/ColorDot/index.js +0 -2
  407. package/dist/components/ColorDot/index.js.map +0 -1
  408. package/dist/components/EmptyState/EmptyState.d.ts +0 -26
  409. package/dist/components/EmptyState/EmptyState.d.ts.map +0 -1
  410. package/dist/components/EmptyState/EmptyState.js +0 -9
  411. package/dist/components/EmptyState/EmptyState.js.map +0 -1
  412. package/dist/components/EmptyState/index.d.ts +0 -2
  413. package/dist/components/EmptyState/index.d.ts.map +0 -1
  414. package/dist/components/EmptyState/index.js +0 -2
  415. package/dist/components/EmptyState/index.js.map +0 -1
  416. package/dist/components/HeatMap/HeatMapCalendar.d.ts +0 -11
  417. package/dist/components/HeatMap/HeatMapCalendar.d.ts.map +0 -1
  418. package/dist/components/HeatMap/HeatMapCalendar.js +0 -68
  419. package/dist/components/HeatMap/HeatMapCalendar.js.map +0 -1
  420. package/dist/components/HeatMap/HeatMapMatrix.d.ts +0 -12
  421. package/dist/components/HeatMap/HeatMapMatrix.d.ts.map +0 -1
  422. package/dist/components/HeatMap/HeatMapMatrix.js +0 -35
  423. package/dist/components/HeatMap/HeatMapMatrix.js.map +0 -1
  424. package/dist/components/HeatMap/heat-map.utils.d.ts +0 -10
  425. package/dist/components/HeatMap/heat-map.utils.d.ts.map +0 -1
  426. package/dist/components/HeatMap/heat-map.utils.js +0 -10
  427. package/dist/components/HeatMap/heat-map.utils.js.map +0 -1
  428. package/dist/components/HeatMap/index.d.ts +0 -4
  429. package/dist/components/HeatMap/index.d.ts.map +0 -1
  430. package/dist/components/HeatMap/index.js +0 -3
  431. package/dist/components/HeatMap/index.js.map +0 -1
  432. package/dist/components/MetricList/MetricList.d.ts +0 -9
  433. package/dist/components/MetricList/MetricList.d.ts.map +0 -1
  434. package/dist/components/MetricList/MetricList.js +0 -8
  435. package/dist/components/MetricList/MetricList.js.map +0 -1
  436. package/dist/components/MetricList/MetricRow.d.ts +0 -13
  437. package/dist/components/MetricList/MetricRow.d.ts.map +0 -1
  438. package/dist/components/MetricList/MetricRow.js +0 -13
  439. package/dist/components/MetricList/MetricRow.js.map +0 -1
  440. package/dist/components/MetricList/index.d.ts +0 -3
  441. package/dist/components/MetricList/index.d.ts.map +0 -1
  442. package/dist/components/MetricList/index.js +0 -3
  443. package/dist/components/MetricList/index.js.map +0 -1
  444. package/dist/components/NavBottom/NavBottom.d.ts +0 -16
  445. package/dist/components/NavBottom/NavBottom.d.ts.map +0 -1
  446. package/dist/components/NavBottom/NavBottom.js +0 -21
  447. package/dist/components/NavBottom/NavBottom.js.map +0 -1
  448. package/dist/components/NavBottom/index.d.ts +0 -3
  449. package/dist/components/NavBottom/index.d.ts.map +0 -1
  450. package/dist/components/NavBottom/index.js +0 -2
  451. package/dist/components/NavBottom/index.js.map +0 -1
  452. package/dist/components/NavSide/NavItem.d.ts +0 -9
  453. package/dist/components/NavSide/NavItem.d.ts.map +0 -1
  454. package/dist/components/NavSide/NavItem.js +0 -13
  455. package/dist/components/NavSide/NavItem.js.map +0 -1
  456. package/dist/components/NavSide/NavSide.d.ts +0 -16
  457. package/dist/components/NavSide/NavSide.d.ts.map +0 -1
  458. package/dist/components/NavSide/NavSide.js +0 -12
  459. package/dist/components/NavSide/NavSide.js.map +0 -1
  460. package/dist/components/NavSide/index.d.ts +0 -3
  461. package/dist/components/NavSide/index.d.ts.map +0 -1
  462. package/dist/components/NavSide/index.js +0 -2
  463. package/dist/components/NavSide/index.js.map +0 -1
  464. package/dist/components/NavSide/types.d.ts +0 -38
  465. package/dist/components/NavSide/types.d.ts.map +0 -1
  466. package/dist/components/NavSide/types.js +0 -2
  467. package/dist/components/NavSide/types.js.map +0 -1
  468. package/dist/components/Pagination/Pagination.d.ts +0 -35
  469. package/dist/components/Pagination/Pagination.d.ts.map +0 -1
  470. package/dist/components/Pagination/Pagination.js +0 -26
  471. package/dist/components/Pagination/Pagination.js.map +0 -1
  472. package/dist/components/Pagination/index.d.ts +0 -3
  473. package/dist/components/Pagination/index.d.ts.map +0 -1
  474. package/dist/components/Pagination/index.js +0 -2
  475. package/dist/components/Pagination/index.js.map +0 -1
  476. package/dist/components/Skeleton/Skeleton.d.ts +0 -4
  477. package/dist/components/Skeleton/Skeleton.d.ts.map +0 -1
  478. package/dist/components/Skeleton/Skeleton.js +0 -9
  479. package/dist/components/Skeleton/Skeleton.js.map +0 -1
  480. package/dist/components/Skeleton/index.d.ts +0 -2
  481. package/dist/components/Skeleton/index.d.ts.map +0 -1
  482. package/dist/components/Skeleton/index.js +0 -2
  483. package/dist/components/Skeleton/index.js.map +0 -1
  484. package/dist/components/StatsCard/StatsCard.d.ts +0 -17
  485. package/dist/components/StatsCard/StatsCard.d.ts.map +0 -1
  486. package/dist/components/StatsCard/StatsCard.js +0 -15
  487. package/dist/components/StatsCard/StatsCard.js.map +0 -1
  488. package/dist/components/StatsCard/index.d.ts +0 -2
  489. package/dist/components/StatsCard/index.d.ts.map +0 -1
  490. package/dist/components/StatsCard/index.js +0 -2
  491. package/dist/components/StatsCard/index.js.map +0 -1
  492. package/src/components/Avatar/Avatar.tsx +0 -19
  493. package/src/components/Avatar/index.ts +0 -1
  494. package/src/components/Breadcrumb/Breadcrumb.tsx +0 -47
  495. package/src/components/Breadcrumb/index.ts +0 -5
  496. package/src/components/ColorDot/ColorDot.tsx +0 -52
  497. package/src/components/ColorDot/index.ts +0 -1
  498. package/src/components/EmptyState/EmptyState.tsx +0 -30
  499. package/src/components/EmptyState/index.ts +0 -1
  500. package/src/components/HeatMap/HeatMapCalendar.tsx +0 -127
  501. package/src/components/HeatMap/HeatMapMatrix.tsx +0 -75
  502. package/src/components/HeatMap/heat-map.utils.ts +0 -15
  503. package/src/components/HeatMap/index.ts +0 -3
  504. package/src/components/MetricList/MetricList.tsx +0 -18
  505. package/src/components/MetricList/MetricRow.tsx +0 -30
  506. package/src/components/MetricList/index.ts +0 -2
  507. package/src/components/NavBottom/NavBottom.tsx +0 -55
  508. package/src/components/NavBottom/index.ts +0 -3
  509. package/src/components/NavSide/NavItem.tsx +0 -39
  510. package/src/components/NavSide/NavSide.tsx +0 -42
  511. package/src/components/NavSide/index.ts +0 -2
  512. package/src/components/NavSide/types.ts +0 -36
  513. package/src/components/Pagination/Pagination.tsx +0 -86
  514. package/src/components/Pagination/index.ts +0 -2
  515. package/src/components/Skeleton/Skeleton.tsx +0 -9
  516. package/src/components/Skeleton/index.ts +0 -1
  517. package/src/components/StatsCard/StatsCard.tsx +0 -41
  518. package/src/components/StatsCard/index.ts +0 -1
@@ -0,0 +1,41 @@
1
+ /**
2
+ * TabsTrigger recipe — the component-token layer for TabsTrigger.
3
+ *
4
+ * This is the mapping from `selected` to a semantic token. It used to live in
5
+ * the two branches of a `cva` `selected` variant inside TabsTrigger.tsx,
6
+ * compiled into class-name literals and unreachable from outside. Here it is
7
+ * data, so a consumer can re-point a cell or scope a change to a subtree.
8
+ *
9
+ * The grammar is `--tabs-trigger-{context}[-{state}]` — the same `context`
10
+ * and `state` words the semantic layer uses (src/theme/schema.ts). `selected`
11
+ * never appears in a token name: it selects, via the `data-selected`
12
+ * attribute below. Putting it in the name (`--tabs-trigger-bg-selected`)
13
+ * would restore the combinatorial explosion this layer exists to remove.
14
+ *
15
+ * `@layer components` is load-bearing, not tidiness — see button.css for the
16
+ * cascade reasoning.
17
+ */
18
+
19
+ @layer components {
20
+ /* The floor, and also the unselected look: quiet text on no surface. A
21
+ trigger a consumer forgot to mark selected renders as a legible inactive
22
+ tab rather than something broken. */
23
+ .tabs-trigger {
24
+ --tabs-trigger-bg: transparent;
25
+ --tabs-trigger-bg-hovered: var(--bg-subtle-hovered);
26
+ --tabs-trigger-fg: var(--fg-subtle);
27
+ --tabs-trigger-fg-hovered: var(--fg-normal);
28
+ --tabs-trigger-ring: var(--focus-ring);
29
+ }
30
+
31
+ /* selected — a filled surface, reversed text on top of it. The old code
32
+ emitted no `hover:` classes at all for the selected branch, so the
33
+ hovered cells here point straight back at the resting ones: no shift on
34
+ hover, preserved rather than newly invented. */
35
+ .tabs-trigger[data-selected="true"] {
36
+ --tabs-trigger-bg: var(--bg-brand-pressed);
37
+ --tabs-trigger-bg-hovered: var(--tabs-trigger-bg);
38
+ --tabs-trigger-fg: var(--fg-on-brand-pressed);
39
+ --tabs-trigger-fg-hovered: var(--tabs-trigger-fg);
40
+ }
41
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * TagChip recipe — the component-token layer for TagChip.
3
+ *
4
+ * TagChip's surface (background, border, foreground) is entirely Badge's:
5
+ * it renders `<Badge variant="outline" intent="muted">`, so that colour
6
+ * already comes from `.badge`'s tokens in badge.css — duplicating it here
7
+ * would just be a second name for the same cell. The only colours TagChip
8
+ * contributes itself are the muted namespace prefix and the remove ("×")
9
+ * button, which is why this file covers just those two.
10
+ *
11
+ * The grammar is `--tag-chip-{part}-{context}[-{state}]`. Both tokens live
12
+ * on `.tag-chip` (the root Badge element) and are read by its descendants via
13
+ * ordinary CSS custom-property inheritance — the namespace `<span>` and the
14
+ * remove `<button>` need no class hooks of their own for that.
15
+ *
16
+ * `@layer components` is load-bearing, not tidiness — see button.css for the
17
+ * cascade reasoning.
18
+ */
19
+
20
+ @layer components {
21
+ .tag-chip {
22
+ --tag-chip-namespace-fg: var(--fg-subtle);
23
+ --tag-chip-remove-fg: var(--fg-subtle);
24
+ --tag-chip-remove-fg-hovered: var(--fg-normal);
25
+ --tag-chip-remove-ring: var(--focus-ring);
26
+ }
27
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Textarea recipe — the component-token layer for Textarea.
3
+ *
4
+ * Same shape as input.css: no variant/intent axis, one floor block. See
5
+ * button.css's header for why `@layer components` is load-bearing.
6
+ *
7
+ * Textarea's background is literal `bg-transparent` in the markup, not a
8
+ * semantic token today — there is nothing in tier 2 to point a `--textarea-bg`
9
+ * at, so no such token is introduced here. Border, placeholder and focus ring
10
+ * are the tokens that existed as semantic classes before this file, and are
11
+ * the ones made overridable.
12
+ */
13
+
14
+ @layer components {
15
+ .textarea {
16
+ --textarea-border: var(--border-normal);
17
+ --textarea-ring: var(--focus-ring);
18
+ --textarea-placeholder-fg: var(--fg-subtle);
19
+ }
20
+ }
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Toggle recipe — the pressed-state layer for Toggle and ToggleGroupItem.
3
+ *
4
+ * These cells target `.btn`, not a `.toggle` class of their own, because both
5
+ * components render Button's class and read Button's `--button-*` tokens
6
+ * (via `buttonRecipe`) — a toggle is a button with a third axis, `state`, not
7
+ * a different look. Reusing `.btn` here is deliberate, not a shortcut.
8
+ *
9
+ * The grammar extends button.css's `(variant, intent)` with a third selector,
10
+ * `[data-state="on"]` — the same attribute Toggle already renders
11
+ * (`data-state={pressed ? "on" : "off"}`) and ToggleGroupItem now renders for
12
+ * `selected`, rather than a new attribute invented for this file. `state`
13
+ * never appears in a token *name* any more than `intent` does — see
14
+ * button.css's header for why: it selects, via the attribute, which existing
15
+ * `--button-bg`/`--button-bg-hovered` values apply.
16
+ *
17
+ * Only solid, outline and ghost get cells: a link toggle has no surface to
18
+ * press, so "on" carries no colour change.
19
+ *
20
+ * Every cell repeats its own resting value into `--button-bg-hovered`: the old
21
+ * classes paired `bg-*` with an identical `hover:bg-*`, i.e. a pressed toggle
22
+ * deliberately does not shift on hover. Restating it here (rather than relying
23
+ * on button.css's floor, which chains `-hovered` from `--button-bg`) keeps
24
+ * that "no shift" behaviour explicit and correct regardless of cascade order
25
+ * against the button.css cells these compound with.
26
+ */
27
+
28
+ @layer components {
29
+ /* solid — the main -pressed background carries through as both resting and
30
+ hovered, so pressing never lightens or darkens further on hover. */
31
+ .btn[data-state="on"][data-variant="solid"][data-intent="brand"] {
32
+ --button-bg: var(--bg-brand-pressed);
33
+ --button-bg-hovered: var(--bg-brand-pressed);
34
+ }
35
+
36
+ .btn[data-state="on"][data-variant="solid"][data-intent="neutral"] {
37
+ --button-bg: var(--bg-strong-pressed);
38
+ --button-bg-hovered: var(--bg-strong-pressed);
39
+ }
40
+
41
+ .btn[data-state="on"][data-variant="solid"][data-intent="danger"] {
42
+ --button-bg: var(--bg-danger-pressed);
43
+ --button-bg-hovered: var(--bg-danger-pressed);
44
+ }
45
+
46
+ .btn[data-state="on"][data-variant="solid"][data-intent="success"] {
47
+ --button-bg: var(--bg-success-pressed);
48
+ --button-bg-hovered: var(--bg-success-pressed);
49
+ }
50
+
51
+ .btn[data-state="on"][data-variant="solid"][data-intent="warning"] {
52
+ --button-bg: var(--bg-warning-pressed);
53
+ --button-bg-hovered: var(--bg-warning-pressed);
54
+ }
55
+
56
+ /* outline and ghost — same subtle-pressed background and foreground per
57
+ intent, matching button.css's own pairing of these two variants. */
58
+ .btn[data-state="on"][data-variant="outline"][data-intent="neutral"],
59
+ .btn[data-state="on"][data-variant="ghost"][data-intent="neutral"] {
60
+ --button-bg: var(--bg-subtle-pressed);
61
+ --button-bg-hovered: var(--bg-subtle-pressed);
62
+ --button-fg: var(--fg-normal);
63
+ }
64
+
65
+ .btn[data-state="on"][data-variant="outline"][data-intent="brand"],
66
+ .btn[data-state="on"][data-variant="ghost"][data-intent="brand"] {
67
+ --button-bg: var(--bg-brand-subtle-pressed);
68
+ --button-bg-hovered: var(--bg-brand-subtle-pressed);
69
+ --button-fg: var(--fg-on-brand-subtle-pressed);
70
+ }
71
+
72
+ .btn[data-state="on"][data-variant="outline"][data-intent="danger"],
73
+ .btn[data-state="on"][data-variant="ghost"][data-intent="danger"] {
74
+ --button-bg: var(--bg-danger-subtle-pressed);
75
+ --button-bg-hovered: var(--bg-danger-subtle-pressed);
76
+ --button-fg: var(--fg-on-danger-subtle-pressed);
77
+ }
78
+
79
+ .btn[data-state="on"][data-variant="outline"][data-intent="success"],
80
+ .btn[data-state="on"][data-variant="ghost"][data-intent="success"] {
81
+ --button-bg: var(--bg-success-subtle-pressed);
82
+ --button-bg-hovered: var(--bg-success-subtle-pressed);
83
+ --button-fg: var(--fg-on-success-subtle-pressed);
84
+ }
85
+
86
+ .btn[data-state="on"][data-variant="outline"][data-intent="warning"],
87
+ .btn[data-state="on"][data-variant="ghost"][data-intent="warning"] {
88
+ --button-bg: var(--bg-warning-subtle-pressed);
89
+ --button-bg-hovered: var(--bg-warning-subtle-pressed);
90
+ --button-fg: var(--fg-on-warning-subtle-pressed);
91
+ }
92
+ }
@@ -28,14 +28,6 @@
28
28
  /** Hex color value, e.g., "#6366f1" */
29
29
  export type HexValue = string;
30
30
 
31
- /**
32
- * HSL color value without wrapper, e.g., "239 84% 67%"
33
- *
34
- * @deprecated Tokens hold hex values and palette references, never bare HSL
35
- * triples. Kept only so the export surface stays stable.
36
- */
37
- export type HSLValue = string;
38
-
39
31
  /** Color mode */
40
32
  export type ColorMode = "light" | "dark";
41
33
 
@@ -106,15 +98,6 @@ export type ColorToken = TokenName;
106
98
  /** CSS variable name format */
107
99
  export type CSSVarName = `--${ColorToken}`;
108
100
 
109
- /** @deprecated Use {@link BgToken}. */
110
- export type BgKey = BgToken;
111
- /** @deprecated Use {@link FgToken}. */
112
- export type FgKey = FgToken;
113
- /** @deprecated Use {@link BorderToken}. */
114
- export type BorderKey = BorderToken;
115
- /** @deprecated Use {@link TokenName}. */
116
- export type TokenKey = TokenName;
117
-
118
101
  // =============================================================================
119
102
  // THEME SHAPE
120
103
  // =============================================================================
@@ -138,13 +121,3 @@ export type ThemeSchema = {
138
121
  export function cssVar(token: ColorToken): string {
139
122
  return `var(--${token})`;
140
123
  }
141
-
142
- /**
143
- * Type-safe HSL wrapper for Tailwind
144
- *
145
- * @deprecated Token values are hex and palette references, so wrapping one in
146
- * `hsl()` yields invalid CSS. Use {@link cssVar}.
147
- */
148
- export function hsl(token: ColorToken): string {
149
- return `hsl(var(--${token}))`;
150
- }
@@ -1,16 +1,27 @@
1
1
  /**
2
2
  * Design tokens — the single source of truth for the design system.
3
3
  *
4
- * Hand-edited. Four layers, in order:
4
+ * Hand-edited. Three token tiers, each answering a different question, and each
5
+ * with a different editor:
5
6
  *
6
- * 1. Palette — raw scales. Never referenced by components.
7
- * 2. Semantic — what components actually use, one block per mode. Every
8
- * value points at a palette entry, so a re-skin edits layer 1 only.
9
- * 3. `@theme` — tells Tailwind which utilities exist. Every semantic token
10
- * needs an entry here or its class does not compile.
11
- * 4. `@layer base` — the few global rules the components genuinely need. App
12
- * opinions (page background, scroll behaviour) are deliberately not here:
13
- * a library has no business restyling its consumer's page.
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.
14
25
  *
15
26
  * Nothing verifies any of that, so when you add a token: put it in *both* mode
16
27
  * blocks and give it a `@theme` entry. Miss the dark block and it is undefined
@@ -18,6 +29,12 @@
18
29
  * failure raises an error anywhere.
19
30
  */
20
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
+
21
38
  /* =============================================================================
22
39
  1. PALETTE
23
40
  ============================================================================= */
@@ -1,6 +0,0 @@
1
- import * as React from "react";
2
- declare const Avatar: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & React.RefAttributes<HTMLSpanElement>>;
3
- declare const AvatarImage: React.ForwardRefExoticComponent<React.ImgHTMLAttributes<HTMLImageElement> & React.RefAttributes<HTMLImageElement>>;
4
- declare const AvatarFallback: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & React.RefAttributes<HTMLSpanElement>>;
5
- export { Avatar, AvatarFallback, AvatarImage };
6
- //# sourceMappingURL=Avatar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,QAAA,MAAM,MAAM,+GAEV,CAAC;AAGH,QAAA,MAAM,WAAW,oHAEf,CAAC;AAGH,QAAA,MAAM,cAAc,+GAElB,CAAC;AAGH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC"}
@@ -1,11 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from "@sixthshift/design-system/utils";
3
- import * as React from "react";
4
- const Avatar = React.forwardRef(({ className, ...props }, ref) => (_jsx("span", { ref: ref, className: cn("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full", className), ...props })));
5
- Avatar.displayName = "Avatar";
6
- const AvatarImage = React.forwardRef(({ className, alt, ...props }, ref) => (_jsx("img", { ref: ref, alt: alt, className: cn("aspect-square h-full w-full", className), ...props })));
7
- AvatarImage.displayName = "AvatarImage";
8
- const AvatarFallback = React.forwardRef(({ className, ...props }, ref) => (_jsx("span", { ref: ref, className: cn("flex h-full w-full items-center justify-center rounded-full bg-bg-subtle font-medium text-sm", className), ...props })));
9
- AvatarFallback.displayName = "AvatarFallback";
10
- export { Avatar, AvatarFallback, AvatarImage };
11
- //# sourceMappingURL=Avatar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,iCAAiC,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAyD,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CACxH,eAAM,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,+DAA+D,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACzH,CAAC,CAAC;AACH,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE9B,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAA8D,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CACvI,cAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAChG,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AAExC,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAyD,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChI,eAAM,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,8FAA8F,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACxJ,CAAC,CAAC;AACH,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC"}
@@ -1,2 +0,0 @@
1
- export { Avatar, AvatarFallback, AvatarImage } from "./Avatar.js";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC"}
@@ -1,2 +0,0 @@
1
- export { Avatar, AvatarFallback, AvatarImage } from "./Avatar.js";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Avatar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC"}
@@ -1,12 +0,0 @@
1
- import { type ComponentPropsWithoutRef, type ReactNode } from "react";
2
- export type BreadcrumbItem = {
3
- label: ReactNode;
4
- href?: string;
5
- };
6
- export type BreadcrumbProps = Omit<ComponentPropsWithoutRef<"nav">, "children"> & {
7
- items: BreadcrumbItem[];
8
- };
9
- export declare const Breadcrumb: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "ref">, "children"> & {
10
- items: BreadcrumbItem[];
11
- } & import("react").RefAttributes<HTMLElement>>;
12
- //# sourceMappingURL=Breadcrumb.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Breadcrumb.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/Breadcrumb.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,wBAAwB,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG;IAChF,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,UAAU;WAHd,cAAc,EAAE;+CAkCvB,CAAC"}
@@ -1,19 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useComponents } from "@sixthshift/design-system/components";
3
- import { cn } from "@sixthshift/design-system/utils";
4
- import { ChevronRight } from "lucide-react";
5
- import { forwardRef } from "react";
6
- export const Breadcrumb = forwardRef(({ className, items, ...props }, ref) => {
7
- const { Link } = useComponents();
8
- if (items.length === 0)
9
- return null;
10
- return (_jsx("nav", { ref: ref, "aria-label": "breadcrumb", className: cn("", className), ...props, children: _jsx("ol", { className: "flex flex-wrap items-center gap-1.5 text-sm sm:gap-2.5", children: items.map((item, index) => {
11
- const isLast = index === items.length - 1;
12
- const isClickable = !isLast && item.href;
13
- return (
14
- // biome-ignore lint/suspicious/noArrayIndexKey: Breadcrumb path items maintain stable order
15
- _jsxs("li", { className: "inline-flex items-center gap-1.5", children: [isClickable ? (_jsx(Link, { href: item.href, className: "text-fg-subtle transition-colors hover:text-fg-normal", children: item.label })) : (_jsx("span", { className: cn(isLast ? "font-medium text-fg-normal" : "text-fg-subtle"), "aria-current": isLast ? "page" : undefined, children: item.label })), !isLast && _jsx(ChevronRight, { className: "size-3.5 text-fg-subtle", "aria-hidden": "true" })] }, index));
16
- }) }) }));
17
- });
18
- Breadcrumb.displayName = "Breadcrumb";
19
- //# sourceMappingURL=Breadcrumb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Breadcrumb.js","sourceRoot":"","sources":["../../../src/components/Breadcrumb/Breadcrumb.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,EAAE,EAAE,MAAM,iCAAiC,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAiC,UAAU,EAAkB,MAAM,OAAO,CAAC;AAWlF,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAA+B,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACzG,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;IAEjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,OAAO,CACL,cAAK,GAAG,EAAE,GAAG,gBAAa,YAAY,EAAC,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,KAAM,KAAK,YAC5E,aAAI,SAAS,EAAC,wDAAwD,YACnE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACzB,MAAM,MAAM,GAAG,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1C,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC;gBAEzC,OAAO;gBACL,4FAA4F;gBAC5F,cAAgB,SAAS,EAAC,kCAAkC,aACzD,WAAW,CAAC,CAAC,CAAC,CACb,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,CAAC,IAAK,EAAE,SAAS,EAAC,uDAAuD,YACtF,IAAI,CAAC,KAAK,GACN,CACR,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,gBAAgB,CAAC,kBAAgB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,YACrH,IAAI,CAAC,KAAK,GACN,CACR,EACA,CAAC,MAAM,IAAI,KAAC,YAAY,IAAC,SAAS,EAAC,yBAAyB,iBAAa,MAAM,GAAG,KAV5E,KAAK,CAWT,CACN,CAAC;YACJ,CAAC,CAAC,GACC,GACD,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC"}
@@ -1,2 +0,0 @@
1
- export { Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, } from "./Breadcrumb.js";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC"}
@@ -1,2 +0,0 @@
1
- export { Breadcrumb, } from "./Breadcrumb.js";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Breadcrumb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,GAGX,MAAM,cAAc,CAAC"}
@@ -1,19 +0,0 @@
1
- import { type VariantProps } from "class-variance-authority";
2
- import * as React from "react";
3
- declare const colorDotVariants: (props?: ({
4
- size?: "sm" | "lg" | "md" | null | undefined;
5
- pulse?: boolean | null | undefined;
6
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
- export type ColorDotProps = React.HTMLAttributes<HTMLSpanElement> & VariantProps<typeof colorDotVariants> & {
8
- /** Intent name (neutral, brand, success, warning, danger) or arbitrary CSS color */
9
- color: string;
10
- };
11
- export declare const ColorDot: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & VariantProps<(props?: ({
12
- size?: "sm" | "lg" | "md" | null | undefined;
13
- pulse?: boolean | null | undefined;
14
- } & import("class-variance-authority/types").ClassProp) | undefined) => string> & {
15
- /** Intent name (neutral, brand, success, warning, danger) or arbitrary CSS color */
16
- color: string;
17
- } & React.RefAttributes<HTMLSpanElement>>;
18
- export { colorDotVariants };
19
- //# sourceMappingURL=ColorDot.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColorDot.d.ts","sourceRoot":"","sources":["../../../src/components/ColorDot/ColorDot.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,QAAA,MAAM,gBAAgB;;;8EAgBpB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,GAC/D,YAAY,CAAC,OAAO,gBAAgB,CAAC,GAAG;IACtC,oFAAoF;IACpF,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEJ,eAAO,MAAM,QAAQ;;;;IAJjB,oFAAoF;WAC7E,MAAM;yCAcf,CAAC;AAGH,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,36 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from "@sixthshift/design-system/utils";
3
- import { cva } from "class-variance-authority";
4
- import * as React from "react";
5
- const INTENT_CLASSES = {
6
- neutral: "bg-fg-subtle",
7
- brand: "bg-bg-brand",
8
- primary: "bg-bg-brand",
9
- success: "bg-bg-success",
10
- warning: "bg-bg-warning",
11
- danger: "bg-bg-danger",
12
- };
13
- const colorDotVariants = cva("inline-block shrink-0 rounded-full", {
14
- variants: {
15
- size: {
16
- sm: "h-1.5 w-1.5",
17
- md: "h-2 w-2",
18
- lg: "h-2.5 w-2.5",
19
- },
20
- pulse: {
21
- true: "animate-pulse",
22
- false: "",
23
- },
24
- },
25
- defaultVariants: {
26
- size: "md",
27
- pulse: false,
28
- },
29
- });
30
- export const ColorDot = React.forwardRef(({ color, size, pulse, className, style, ...props }, ref) => {
31
- const intentClass = INTENT_CLASSES[color];
32
- return (_jsx("span", { ref: ref, className: cn(colorDotVariants({ size, pulse }), intentClass, className), style: intentClass ? style : { ...style, backgroundColor: color }, ...props }));
33
- });
34
- ColorDot.displayName = "ColorDot";
35
- export { colorDotVariants };
36
- //# sourceMappingURL=ColorDot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColorDot.js","sourceRoot":"","sources":["../../../src/components/ColorDot/ColorDot.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,iCAAiC,CAAC;AACrD,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,cAAc,GAA2B;IAC7C,OAAO,EAAE,cAAc;IACvB,KAAK,EAAE,aAAa;IACpB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,cAAc;CACvB,CAAC;AAEF,MAAM,gBAAgB,GAAG,GAAG,CAAC,oCAAoC,EAAE;IACjE,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,EAAE,EAAE,aAAa;YACjB,EAAE,EAAE,SAAS;YACb,EAAE,EAAE,aAAa;SAClB;QACD,KAAK,EAAE;YACL,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,EAAE;SACV;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,KAAK;KACb;CACF,CAAC,CAAC;AAQH,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAiC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACnI,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAE1C,OAAO,CACL,eACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,EACxE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,KAC7D,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;AAElC,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,2 +0,0 @@
1
- export { ColorDot, type ColorDotProps, colorDotVariants } from "./ColorDot.js";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ColorDot/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,2 +0,0 @@
1
- export { ColorDot, colorDotVariants } from "./ColorDot.js";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ColorDot/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAsB,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,26 +0,0 @@
1
- import * as React from "react";
2
- export type EmptyStateProps = React.HTMLAttributes<HTMLDivElement> & {
3
- /** Optional icon to display */
4
- icon?: React.ReactNode;
5
- /** Message to display */
6
- message: string;
7
- /** Optional description for more context */
8
- description?: string;
9
- /** Optional action button or element */
10
- action?: React.ReactNode;
11
- /** Additional CSS classes */
12
- className?: string;
13
- };
14
- export declare const EmptyState: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
15
- /** Optional icon to display */
16
- icon?: React.ReactNode;
17
- /** Message to display */
18
- message: string;
19
- /** Optional description for more context */
20
- description?: string;
21
- /** Optional action button or element */
22
- action?: React.ReactNode;
23
- /** Additional CSS classes */
24
- className?: string;
25
- } & React.RefAttributes<HTMLDivElement>>;
26
- //# sourceMappingURL=EmptyState.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../src/components/EmptyState/EmptyState.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG;IACnE,+BAA+B;IAC/B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,UAAU;IAZrB,+BAA+B;WACxB,KAAK,CAAC,SAAS;IACtB,yBAAyB;aAChB,MAAM;IACf,4CAA4C;kBAC9B,MAAM;IACpB,wCAAwC;aAC/B,KAAK,CAAC,SAAS;IACxB,6BAA6B;gBACjB,MAAM;wCAclB,CAAC"}
@@ -1,9 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Muted } from "@sixthshift/design-system/muted";
3
- import { cn } from "@sixthshift/design-system/utils";
4
- import * as React from "react";
5
- export const EmptyState = React.forwardRef(({ icon, message, description, action, className, ...props }, ref) => {
6
- return (_jsxs("div", { ref: ref, className: cn("flex flex-col items-center justify-center gap-3 p-8 text-center", className), ...props, children: [icon && _jsx("div", { className: "text-fg-subtle", children: icon }), _jsxs("div", { className: "flex flex-col gap-1", children: [_jsx(Muted, { children: message }), description && _jsx("span", { className: "text-fg-subtle text-xs", children: description })] }), action && _jsx("div", { className: "mt-2", children: action })] }));
7
- });
8
- EmptyState.displayName = "EmptyState";
9
- //# sourceMappingURL=EmptyState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmptyState.js","sourceRoot":"","sources":["../../../src/components/EmptyState/EmptyState.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,MAAM,iCAAiC,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAkC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAC/I,OAAO,CACL,eAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,iEAAiE,EAAE,SAAS,CAAC,KAAM,KAAK,aAClH,IAAI,IAAI,cAAK,SAAS,EAAC,gBAAgB,YAAE,IAAI,GAAO,EACrD,eAAK,SAAS,EAAC,qBAAqB,aAClC,KAAC,KAAK,cAAE,OAAO,GAAS,EACvB,WAAW,IAAI,eAAM,SAAS,EAAC,wBAAwB,YAAE,WAAW,GAAQ,IACzE,EACL,MAAM,IAAI,cAAK,SAAS,EAAC,MAAM,YAAE,MAAM,GAAO,IAC3C,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC"}
@@ -1,2 +0,0 @@
1
- export { EmptyState, type EmptyStateProps } from "./EmptyState.js";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/EmptyState/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -1,2 +0,0 @@
1
- export { EmptyState } from "./EmptyState.js";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/EmptyState/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwB,MAAM,cAAc,CAAC"}
@@ -1,11 +0,0 @@
1
- import type * as React from "react";
2
- import { type HeatMapCell } from "./heat-map.utils.js";
3
- export type HeatMapCalendarProps = React.HTMLAttributes<HTMLDivElement> & {
4
- data: HeatMapCell[];
5
- colorScale?: string[];
6
- cellSize?: number;
7
- cellGap?: number;
8
- formatTooltip?: (cell: HeatMapCell) => string;
9
- };
10
- export declare const HeatMapCalendar: ({ data, colorScale, cellSize, cellGap, formatTooltip, className, ...rest }: HeatMapCalendarProps) => React.JSX.Element | null;
11
- //# sourceMappingURL=HeatMapCalendar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HeatMapCalendar.d.ts","sourceRoot":"","sources":["../../../src/components/HeatMap/HeatMapCalendar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,EAA2D,KAAK,WAAW,EAAe,MAAM,kBAAkB,CAAC;AAE1H,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG;IACxE,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,CAAC;CAC/C,CAAC;AAgEF,eAAO,MAAM,eAAe,+EAQzB,oBAAoB,6BA2CtB,CAAC"}
@@ -1,68 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { cn } from "@sixthshift/design-system/utils";
3
- import { Temporal } from "../../date-time/index.js";
4
- import { DAY_KEYS, DAY_LABELS, DEFAULT_COLOR_SCALE, getIntensity, MONTH_NAMES } from "./heat-map.utils.js";
5
- function buildMonthGrids(data) {
6
- const dataMap = new Map(data.map((d) => [d.date, d.value]));
7
- const dates = data.map((d) => Temporal.PlainDate.from(d.date)).sort(Temporal.PlainDate.compare);
8
- const minDate = dates[0];
9
- const maxDate = dates[dates.length - 1];
10
- const months = [];
11
- let cursor = Temporal.PlainDate.from({ year: minDate.year, month: minDate.month, day: 1 });
12
- const endMonth = Temporal.PlainDate.from({ year: maxDate.year, month: maxDate.month, day: 1 });
13
- while (Temporal.PlainDate.compare(cursor, endMonth) <= 0) {
14
- const year = cursor.year;
15
- const month = cursor.month;
16
- const daysInMonth = cursor.daysInMonth;
17
- const weeks = [];
18
- let currentWeek = [];
19
- const firstDow = cursor.dayOfWeek - 1;
20
- for (let i = 0; i < firstDow; i++) {
21
- currentWeek.push(null);
22
- }
23
- for (let day = 1; day <= daysInMonth; day++) {
24
- const date = Temporal.PlainDate.from({ year, month, day });
25
- const dateStr = date.toString();
26
- const col = date.dayOfWeek - 1;
27
- currentWeek.push({ date: dateStr, value: dataMap.get(dateStr) ?? 0, col });
28
- if (col === 6 || day === daysInMonth) {
29
- if (day === daysInMonth && col < 6) {
30
- for (let i = col + 1; i <= 6; i++) {
31
- currentWeek.push(null);
32
- }
33
- }
34
- weeks.push(currentWeek);
35
- currentWeek = [];
36
- }
37
- }
38
- months.push({
39
- year,
40
- month,
41
- label: `${MONTH_NAMES[month - 1]} ${year}`,
42
- weeks,
43
- });
44
- cursor = month === 12 ? Temporal.PlainDate.from({ year: year + 1, month: 1, day: 1 }) : Temporal.PlainDate.from({ year, month: month + 1, day: 1 });
45
- }
46
- return months;
47
- }
48
- export const HeatMapCalendar = ({ data, colorScale = DEFAULT_COLOR_SCALE, cellSize = 12, cellGap = 2, formatTooltip, className, ...rest }) => {
49
- if (data.length === 0)
50
- return null;
51
- const maxValue = Math.max(...data.map((d) => d.value), 1);
52
- const months = buildMonthGrids(data);
53
- const step = cellSize + cellGap;
54
- const gridWidth = 7 * step;
55
- return (_jsx("div", { ...rest, className: cn("flex flex-wrap gap-4", className), children: months.map((month) => {
56
- const headerHeight = 24;
57
- const dayLabelHeight = 14;
58
- const svgHeight = headerHeight + dayLabelHeight + month.weeks.length * step;
59
- return (_jsxs("svg", { width: gridWidth, height: svgHeight, className: "overflow-visible", role: "img", children: [_jsx("title", { children: month.label }), _jsx("text", { x: 0, y: 14, className: "fill-fg-normal", fontSize: 12, fontWeight: 500, children: month.label }), DAY_LABELS.map((label, i) => (_jsx("text", { x: i * step + cellSize / 2, y: headerHeight + 10, textAnchor: "middle", className: "fill-fg-subtle", fontSize: 9, children: label }, `day-${DAY_KEYS[i]}`))), month.weeks.map((week, wi) => week.map((cell) => {
60
- if (!cell)
61
- return null;
62
- const intensity = getIntensity(cell.value, maxValue, colorScale.length);
63
- const fill = cell.value > 0 ? colorScale[intensity] : colorScale[0];
64
- return (_jsx("rect", { x: cell.col * step, y: headerHeight + dayLabelHeight + wi * step, width: cellSize, height: cellSize, rx: 2, fill: fill, children: formatTooltip && _jsx("title", { children: formatTooltip({ date: cell.date, value: cell.value }) }) }, cell.date));
65
- }))] }, month.label));
66
- }) }));
67
- };
68
- //# sourceMappingURL=HeatMapCalendar.js.map