rift-ds 1.0.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 (507) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +107 -0
  3. package/behaviors/focusable.d.ts +26 -0
  4. package/behaviors/focusable.js +18 -0
  5. package/behaviors/useFocusScope.d.ts +38 -0
  6. package/behaviors/useFocusScope.js +82 -0
  7. package/behaviors/useLayer.d.ts +43 -0
  8. package/behaviors/useLayer.js +55 -0
  9. package/behaviors/useMounted.d.ts +7 -0
  10. package/behaviors/useMounted.js +14 -0
  11. package/behaviors/useScrollLock.d.ts +55 -0
  12. package/behaviors/useScrollLock.js +59 -0
  13. package/bin/rift-ds.mjs +82 -0
  14. package/charts.d.ts +16 -0
  15. package/charts.js +24 -0
  16. package/components/Accordion/Accordion.css +119 -0
  17. package/components/Accordion/Accordion.d.ts +24 -0
  18. package/components/Accordion/Accordion.js +76 -0
  19. package/components/AgentPlan/AgentPlan.css +251 -0
  20. package/components/AgentPlan/AgentPlan.d.ts +41 -0
  21. package/components/AgentPlan/AgentPlan.js +100 -0
  22. package/components/AgentRail/AgentRail.css +282 -0
  23. package/components/AgentRail/AgentRail.d.ts +72 -0
  24. package/components/AgentRail/AgentRail.js +101 -0
  25. package/components/AgentStatus/AgentStatus.css +511 -0
  26. package/components/AgentStatus/AgentStatus.d.ts +41 -0
  27. package/components/AgentStatus/AgentStatus.js +86 -0
  28. package/components/AgentStatus/AgentStatusPatterns.d.ts +17 -0
  29. package/components/AgentStatus/AgentStatusPatterns.js +20 -0
  30. package/components/AiButton/AiButton.css +559 -0
  31. package/components/AiButton/AiButton.d.ts +79 -0
  32. package/components/AiButton/AiButton.js +183 -0
  33. package/components/Alert/Alert.css +261 -0
  34. package/components/Alert/Alert.d.ts +25 -0
  35. package/components/Alert/Alert.js +53 -0
  36. package/components/AlertDialog/AlertDialog.css +133 -0
  37. package/components/AlertDialog/AlertDialog.d.ts +29 -0
  38. package/components/AlertDialog/AlertDialog.js +98 -0
  39. package/components/AnchorNav/AnchorNav.css +137 -0
  40. package/components/AnchorNav/AnchorNav.d.ts +40 -0
  41. package/components/AnchorNav/AnchorNav.js +135 -0
  42. package/components/AnimatedNumber/AnimatedNumber.css +31 -0
  43. package/components/AnimatedNumber/AnimatedNumber.d.ts +36 -0
  44. package/components/AnimatedNumber/AnimatedNumber.js +55 -0
  45. package/components/AppLayout/AppLayout.css +52 -0
  46. package/components/AppLayout/AppLayout.d.ts +33 -0
  47. package/components/AppLayout/AppLayout.js +47 -0
  48. package/components/AppSidebar/AppSidebar.css +592 -0
  49. package/components/AppSidebar/AppSidebar.d.ts +90 -0
  50. package/components/AppSidebar/AppSidebar.js +295 -0
  51. package/components/Avatar/Avatar.css +133 -0
  52. package/components/Avatar/Avatar.d.ts +20 -0
  53. package/components/Avatar/Avatar.js +58 -0
  54. package/components/Avatar/demoAvatars.d.ts +18 -0
  55. package/components/Avatar/demoAvatars.js +16 -0
  56. package/components/AvatarGroup/AvatarGroup.css +61 -0
  57. package/components/AvatarGroup/AvatarGroup.d.ts +32 -0
  58. package/components/AvatarGroup/AvatarGroup.js +31 -0
  59. package/components/Badge/Badge.css +67 -0
  60. package/components/Badge/Badge.d.ts +13 -0
  61. package/components/Badge/Badge.js +15 -0
  62. package/components/Banner/Banner.css +110 -0
  63. package/components/Banner/Banner.d.ts +36 -0
  64. package/components/Banner/Banner.js +59 -0
  65. package/components/Breadcrumb/Breadcrumb.css +100 -0
  66. package/components/Breadcrumb/Breadcrumb.d.ts +25 -0
  67. package/components/Breadcrumb/Breadcrumb.js +40 -0
  68. package/components/Button/Button.css +473 -0
  69. package/components/Button/Button.d.ts +73 -0
  70. package/components/Button/Button.js +91 -0
  71. package/components/ButtonGroup/ButtonGroup.css +39 -0
  72. package/components/ButtonGroup/ButtonGroup.d.ts +13 -0
  73. package/components/ButtonGroup/ButtonGroup.js +30 -0
  74. package/components/Card/Card.css +190 -0
  75. package/components/Card/Card.d.ts +48 -0
  76. package/components/Card/Card.js +113 -0
  77. package/components/CardStack/CardStack.css +106 -0
  78. package/components/CardStack/CardStack.d.ts +44 -0
  79. package/components/CardStack/CardStack.js +140 -0
  80. package/components/Carousel/Carousel.css +121 -0
  81. package/components/Carousel/Carousel.d.ts +25 -0
  82. package/components/Carousel/Carousel.js +160 -0
  83. package/components/Chart/AreaChart.d.ts +40 -0
  84. package/components/Chart/AreaChart.js +101 -0
  85. package/components/Chart/BarChart.d.ts +36 -0
  86. package/components/Chart/BarChart.js +107 -0
  87. package/components/Chart/Chart.css +224 -0
  88. package/components/Chart/ComboChart.d.ts +40 -0
  89. package/components/Chart/ComboChart.js +142 -0
  90. package/components/Chart/LineChart.d.ts +36 -0
  91. package/components/Chart/LineChart.js +91 -0
  92. package/components/Chart/PieChart.d.ts +36 -0
  93. package/components/Chart/PieChart.js +93 -0
  94. package/components/Chart/RadarChart.d.ts +36 -0
  95. package/components/Chart/RadarChart.js +92 -0
  96. package/components/Chart/RadialChart.d.ts +43 -0
  97. package/components/Chart/RadialChart.js +114 -0
  98. package/components/Chart/ScatterChart.d.ts +38 -0
  99. package/components/Chart/ScatterChart.js +99 -0
  100. package/components/Chart/StackedBarChart.d.ts +36 -0
  101. package/components/Chart/StackedBarChart.js +98 -0
  102. package/components/Chart/Treemap.d.ts +35 -0
  103. package/components/Chart/Treemap.js +95 -0
  104. package/components/Chart/palette.d.ts +1 -0
  105. package/components/Chart/palette.js +17 -0
  106. package/components/ChatHeader/ChatHeader.css +35 -0
  107. package/components/ChatHeader/ChatHeader.d.ts +30 -0
  108. package/components/ChatHeader/ChatHeader.js +17 -0
  109. package/components/ChatMarker/ChatMarker.css +61 -0
  110. package/components/ChatMarker/ChatMarker.d.ts +22 -0
  111. package/components/ChatMarker/ChatMarker.js +18 -0
  112. package/components/ChatMessage/ChatMessage.css +326 -0
  113. package/components/ChatMessage/ChatMessage.d.ts +74 -0
  114. package/components/ChatMessage/ChatMessage.js +71 -0
  115. package/components/ChatThread/ChatThread.css +171 -0
  116. package/components/ChatThread/ChatThread.d.ts +41 -0
  117. package/components/ChatThread/ChatThread.js +175 -0
  118. package/components/Checkbox/Checkbox.css +183 -0
  119. package/components/Checkbox/Checkbox.d.ts +81 -0
  120. package/components/Checkbox/Checkbox.js +176 -0
  121. package/components/Chip/Chip.css +231 -0
  122. package/components/Chip/Chip.d.ts +27 -0
  123. package/components/Chip/Chip.js +80 -0
  124. package/components/CircularButton/CircularButton.css +263 -0
  125. package/components/CircularButton/CircularButton.d.ts +68 -0
  126. package/components/CircularButton/CircularButton.js +72 -0
  127. package/components/CodeBlock/CodeBlock.css +189 -0
  128. package/components/CodeBlock/CodeBlock.d.ts +23 -0
  129. package/components/CodeBlock/CodeBlock.js +96 -0
  130. package/components/CodeDiff/CodeDiff.css +175 -0
  131. package/components/CodeDiff/CodeDiff.d.ts +58 -0
  132. package/components/CodeDiff/CodeDiff.js +114 -0
  133. package/components/ColorPicker/ColorPicker.css +278 -0
  134. package/components/ColorPicker/ColorPicker.d.ts +50 -0
  135. package/components/ColorPicker/ColorPicker.js +349 -0
  136. package/components/ColourSwatch/ColourSwatch.css +88 -0
  137. package/components/ColourSwatch/ColourSwatch.d.ts +34 -0
  138. package/components/ColourSwatch/ColourSwatch.js +42 -0
  139. package/components/Combobox/Combobox.css +384 -0
  140. package/components/Combobox/Combobox.d.ts +93 -0
  141. package/components/Combobox/Combobox.js +331 -0
  142. package/components/CommandPalette/CommandPalette.css +342 -0
  143. package/components/CommandPalette/CommandPalette.d.ts +62 -0
  144. package/components/CommandPalette/CommandPalette.js +247 -0
  145. package/components/Composer/Composer.css +427 -0
  146. package/components/Composer/Composer.d.ts +97 -0
  147. package/components/Composer/Composer.js +146 -0
  148. package/components/ContactCard/ContactCard.css +132 -0
  149. package/components/ContactCard/ContactCard.d.ts +24 -0
  150. package/components/ContactCard/ContactCard.js +79 -0
  151. package/components/ContextMenu/ContextMenu.css +258 -0
  152. package/components/ContextMenu/ContextMenu.d.ts +26 -0
  153. package/components/ContextMenu/ContextMenu.js +387 -0
  154. package/components/ContributionGraph/ContributionGraph.css +169 -0
  155. package/components/ContributionGraph/ContributionGraph.d.ts +34 -0
  156. package/components/ContributionGraph/ContributionGraph.js +149 -0
  157. package/components/DataTable/DataTable.css +109 -0
  158. package/components/DataTable/DataTable.d.ts +81 -0
  159. package/components/DataTable/DataTable.js +236 -0
  160. package/components/DateInput/DateInput.css +127 -0
  161. package/components/DateInput/DateInput.d.ts +44 -0
  162. package/components/DateInput/DateInput.js +82 -0
  163. package/components/DatePicker/DatePicker.css +198 -0
  164. package/components/DatePicker/DatePicker.d.ts +29 -0
  165. package/components/DatePicker/DatePicker.js +196 -0
  166. package/components/Dialog/Dialog.css +178 -0
  167. package/components/Dialog/Dialog.d.ts +39 -0
  168. package/components/Dialog/Dialog.js +99 -0
  169. package/components/Divider/Divider.css +100 -0
  170. package/components/Divider/Divider.d.ts +18 -0
  171. package/components/Divider/Divider.js +31 -0
  172. package/components/DocumentChip/DocumentChip.css +190 -0
  173. package/components/DocumentChip/DocumentChip.d.ts +41 -0
  174. package/components/DocumentChip/DocumentChip.js +78 -0
  175. package/components/Drawer/Drawer.css +262 -0
  176. package/components/Drawer/Drawer.d.ts +41 -0
  177. package/components/Drawer/Drawer.js +101 -0
  178. package/components/Dropdown/Dropdown.css +288 -0
  179. package/components/Dropdown/Dropdown.d.ts +85 -0
  180. package/components/Dropdown/Dropdown.js +308 -0
  181. package/components/DropdownMenu/DropdownMenu.css +301 -0
  182. package/components/DropdownMenu/DropdownMenu.d.ts +42 -0
  183. package/components/DropdownMenu/DropdownMenu.js +371 -0
  184. package/components/EmptyState/EmptyState.css +136 -0
  185. package/components/EmptyState/EmptyState.d.ts +27 -0
  186. package/components/EmptyState/EmptyState.js +32 -0
  187. package/components/EntityCard/EntityCard.css +69 -0
  188. package/components/EntityCard/EntityCard.d.ts +19 -0
  189. package/components/EntityCard/EntityCard.js +26 -0
  190. package/components/EventCalendar/EventCalendar.css +363 -0
  191. package/components/EventCalendar/EventCalendar.d.ts +59 -0
  192. package/components/EventCalendar/EventCalendar.js +230 -0
  193. package/components/Field/Field.css +80 -0
  194. package/components/Field/Field.d.ts +57 -0
  195. package/components/Field/Field.js +70 -0
  196. package/components/Field/FieldContext.d.ts +42 -0
  197. package/components/Field/FieldContext.js +8 -0
  198. package/components/Figure/Figure.css +71 -0
  199. package/components/Figure/Figure.d.ts +17 -0
  200. package/components/Figure/Figure.js +26 -0
  201. package/components/FileInput/FileInput.css +281 -0
  202. package/components/FileInput/FileInput.d.ts +54 -0
  203. package/components/FileInput/FileInput.js +205 -0
  204. package/components/FilterBar/FilterBar.css +202 -0
  205. package/components/FilterBar/FilterBar.d.ts +55 -0
  206. package/components/FilterBar/FilterBar.js +249 -0
  207. package/components/FunnelChart/FunnelChart.css +17 -0
  208. package/components/FunnelChart/FunnelChart.d.ts +51 -0
  209. package/components/FunnelChart/FunnelChart.js +96 -0
  210. package/components/GanttChart/GanttChart.css +326 -0
  211. package/components/GanttChart/GanttChart.d.ts +82 -0
  212. package/components/GanttChart/GanttChart.js +202 -0
  213. package/components/Gauge/Gauge.css +120 -0
  214. package/components/Gauge/Gauge.d.ts +64 -0
  215. package/components/Gauge/Gauge.js +111 -0
  216. package/components/Globe/Globe.css +155 -0
  217. package/components/Globe/Globe.d.ts +103 -0
  218. package/components/Globe/Globe.js +416 -0
  219. package/components/HoverCard/HoverCard.css +125 -0
  220. package/components/HoverCard/HoverCard.d.ts +29 -0
  221. package/components/HoverCard/HoverCard.js +83 -0
  222. package/components/ImageCompare/ImageCompare.css +112 -0
  223. package/components/ImageCompare/ImageCompare.d.ts +40 -0
  224. package/components/ImageCompare/ImageCompare.js +134 -0
  225. package/components/Input/Input.css +150 -0
  226. package/components/Input/Input.d.ts +45 -0
  227. package/components/Input/Input.js +99 -0
  228. package/components/Instructions/Instructions.css +216 -0
  229. package/components/Instructions/Instructions.d.ts +29 -0
  230. package/components/Instructions/Instructions.js +32 -0
  231. package/components/InterruptCard/InterruptCard.css +164 -0
  232. package/components/InterruptCard/InterruptCard.d.ts +54 -0
  233. package/components/InterruptCard/InterruptCard.js +57 -0
  234. package/components/Kbd/Kbd.css +28 -0
  235. package/components/Kbd/Kbd.d.ts +19 -0
  236. package/components/Kbd/Kbd.js +14 -0
  237. package/components/LegendTile/LegendTile.css +60 -0
  238. package/components/LegendTile/LegendTile.d.ts +30 -0
  239. package/components/LegendTile/LegendTile.js +21 -0
  240. package/components/Lightbox/Lightbox.css +210 -0
  241. package/components/Lightbox/Lightbox.d.ts +45 -0
  242. package/components/Lightbox/Lightbox.js +109 -0
  243. package/components/LinkList/LinkList.css +71 -0
  244. package/components/LinkList/LinkList.d.ts +24 -0
  245. package/components/LinkList/LinkList.js +42 -0
  246. package/components/MapCallout/MapCallout.css +46 -0
  247. package/components/MapCallout/MapCallout.d.ts +29 -0
  248. package/components/MapCallout/MapCallout.js +17 -0
  249. package/components/MapLegend/MapLegend.css +88 -0
  250. package/components/MapLegend/MapLegend.d.ts +40 -0
  251. package/components/MapLegend/MapLegend.js +68 -0
  252. package/components/MessageActions/MessageActions.css +85 -0
  253. package/components/MessageActions/MessageActions.d.ts +38 -0
  254. package/components/MessageActions/MessageActions.js +40 -0
  255. package/components/MessageCard/MessageCard.css +163 -0
  256. package/components/MessageCard/MessageCard.d.ts +35 -0
  257. package/components/MessageCard/MessageCard.js +30 -0
  258. package/components/Meter/Meter.css +98 -0
  259. package/components/Meter/Meter.d.ts +36 -0
  260. package/components/Meter/Meter.js +48 -0
  261. package/components/ModelPicker/ModelPicker.css +243 -0
  262. package/components/ModelPicker/ModelPicker.d.ts +60 -0
  263. package/components/ModelPicker/ModelPicker.js +261 -0
  264. package/components/MotionSwatch/MotionSwatch.css +176 -0
  265. package/components/MotionSwatch/MotionSwatch.d.ts +25 -0
  266. package/components/MotionSwatch/MotionSwatch.js +74 -0
  267. package/components/Nav/Nav.css +51 -0
  268. package/components/Nav/Nav.d.ts +19 -0
  269. package/components/Nav/Nav.js +26 -0
  270. package/components/NavList/NavList.css +155 -0
  271. package/components/NavList/NavList.d.ts +56 -0
  272. package/components/NavList/NavList.js +100 -0
  273. package/components/NotificationCenter/NotificationCenter.css +279 -0
  274. package/components/NotificationCenter/NotificationCenter.d.ts +72 -0
  275. package/components/NotificationCenter/NotificationCenter.js +145 -0
  276. package/components/NumberInput/NumberInput.css +163 -0
  277. package/components/NumberInput/NumberInput.d.ts +44 -0
  278. package/components/NumberInput/NumberInput.js +147 -0
  279. package/components/Pagination/Pagination.css +126 -0
  280. package/components/Pagination/Pagination.d.ts +22 -0
  281. package/components/Pagination/Pagination.js +84 -0
  282. package/components/Panel/Panel.css +26 -0
  283. package/components/Panel/Panel.d.ts +22 -0
  284. package/components/Panel/Panel.js +19 -0
  285. package/components/PinInput/PinInput.css +92 -0
  286. package/components/PinInput/PinInput.d.ts +46 -0
  287. package/components/PinInput/PinInput.js +161 -0
  288. package/components/Popover/Popover.css +118 -0
  289. package/components/Popover/Popover.d.ts +22 -0
  290. package/components/Popover/Popover.js +113 -0
  291. package/components/ProgressBar/ProgressBar.css +60 -0
  292. package/components/ProgressBar/ProgressBar.d.ts +16 -0
  293. package/components/ProgressBar/ProgressBar.js +27 -0
  294. package/components/PromptSuggestions/PromptSuggestions.css +264 -0
  295. package/components/PromptSuggestions/PromptSuggestions.d.ts +68 -0
  296. package/components/PromptSuggestions/PromptSuggestions.js +87 -0
  297. package/components/Prose/Prose.css +269 -0
  298. package/components/Prose/Prose.d.ts +21 -0
  299. package/components/Prose/Prose.js +14 -0
  300. package/components/Quote/Quote.css +78 -0
  301. package/components/Quote/Quote.d.ts +18 -0
  302. package/components/Quote/Quote.js +26 -0
  303. package/components/RadioButton/RadioButton.css +151 -0
  304. package/components/RadioButton/RadioButton.d.ts +90 -0
  305. package/components/RadioButton/RadioButton.js +138 -0
  306. package/components/Rating/Rating.css +74 -0
  307. package/components/Rating/Rating.d.ts +41 -0
  308. package/components/Rating/Rating.js +124 -0
  309. package/components/Reasoning/Reasoning.css +291 -0
  310. package/components/Reasoning/Reasoning.d.ts +55 -0
  311. package/components/Reasoning/Reasoning.js +99 -0
  312. package/components/RichDropdown/RichDropdown.css +239 -0
  313. package/components/RichDropdown/RichDropdown.d.ts +78 -0
  314. package/components/RichDropdown/RichDropdown.js +227 -0
  315. package/components/SectionTitle/SectionTitle.css +45 -0
  316. package/components/SectionTitle/SectionTitle.d.ts +12 -0
  317. package/components/SectionTitle/SectionTitle.js +22 -0
  318. package/components/SegmentedControl/SegmentedControl.css +231 -0
  319. package/components/SegmentedControl/SegmentedControl.d.ts +44 -0
  320. package/components/SegmentedControl/SegmentedControl.js +240 -0
  321. package/components/SelectionCard/SelectionCard.css +255 -0
  322. package/components/SelectionCard/SelectionCard.d.ts +36 -0
  323. package/components/SelectionCard/SelectionCard.js +102 -0
  324. package/components/ShaderField/ShaderField.css +24 -0
  325. package/components/ShaderField/ShaderField.d.ts +68 -0
  326. package/components/ShaderField/ShaderField.js +55 -0
  327. package/components/ShaderField/field.glsl.d.ts +39 -0
  328. package/components/ShaderField/field.glsl.js +178 -0
  329. package/components/ShaderField/useShaderField.d.ts +103 -0
  330. package/components/ShaderField/useShaderField.js +410 -0
  331. package/components/Skeleton/Skeleton.css +81 -0
  332. package/components/Skeleton/Skeleton.d.ts +16 -0
  333. package/components/Skeleton/Skeleton.js +30 -0
  334. package/components/Slider/Slider.css +104 -0
  335. package/components/Slider/Slider.d.ts +48 -0
  336. package/components/Slider/Slider.js +86 -0
  337. package/components/SourceChip/SourceChip.css +111 -0
  338. package/components/SourceChip/SourceChip.d.ts +32 -0
  339. package/components/SourceChip/SourceChip.js +31 -0
  340. package/components/SourceTrail/SourceTrail.css +209 -0
  341. package/components/SourceTrail/SourceTrail.d.ts +49 -0
  342. package/components/SourceTrail/SourceTrail.js +108 -0
  343. package/components/SpacingSwatch/SpacingSwatch.css +108 -0
  344. package/components/SpacingSwatch/SpacingSwatch.d.ts +20 -0
  345. package/components/SpacingSwatch/SpacingSwatch.js +50 -0
  346. package/components/Sparkline/Sparkline.css +76 -0
  347. package/components/Sparkline/Sparkline.d.ts +51 -0
  348. package/components/Sparkline/Sparkline.js +116 -0
  349. package/components/Spinner/Spinner.css +84 -0
  350. package/components/Spinner/Spinner.d.ts +14 -0
  351. package/components/Spinner/Spinner.js +42 -0
  352. package/components/SplitButton/SplitButton.css +93 -0
  353. package/components/SplitButton/SplitButton.d.ts +43 -0
  354. package/components/SplitButton/SplitButton.js +67 -0
  355. package/components/SplitPane/SplitPane.css +106 -0
  356. package/components/SplitPane/SplitPane.d.ts +36 -0
  357. package/components/SplitPane/SplitPane.js +130 -0
  358. package/components/Stat/Stat.css +121 -0
  359. package/components/Stat/Stat.d.ts +22 -0
  360. package/components/Stat/Stat.js +36 -0
  361. package/components/StatusDot/StatusDot.css +104 -0
  362. package/components/StatusDot/StatusDot.d.ts +34 -0
  363. package/components/StatusDot/StatusDot.js +23 -0
  364. package/components/Stepper/Stepper.css +216 -0
  365. package/components/Stepper/Stepper.d.ts +41 -0
  366. package/components/Stepper/Stepper.js +61 -0
  367. package/components/StreamingText/StreamingText.css +40 -0
  368. package/components/StreamingText/StreamingText.d.ts +62 -0
  369. package/components/StreamingText/StreamingText.js +49 -0
  370. package/components/StreamingText/useStreamReveal.d.ts +70 -0
  371. package/components/StreamingText/useStreamReveal.js +121 -0
  372. package/components/Swatch/Swatch.css +52 -0
  373. package/components/Swatch/Swatch.d.ts +34 -0
  374. package/components/Swatch/Swatch.js +44 -0
  375. package/components/Table/Table.css +223 -0
  376. package/components/Table/Table.d.ts +53 -0
  377. package/components/Table/Table.js +65 -0
  378. package/components/Tabs/Tabs.css +140 -0
  379. package/components/Tabs/Tabs.d.ts +28 -0
  380. package/components/Tabs/Tabs.js +78 -0
  381. package/components/TagInput/TagInput.css +169 -0
  382. package/components/TagInput/TagInput.d.ts +43 -0
  383. package/components/TagInput/TagInput.js +137 -0
  384. package/components/Textarea/Textarea.css +109 -0
  385. package/components/Textarea/Textarea.d.ts +43 -0
  386. package/components/Textarea/Textarea.js +86 -0
  387. package/components/ThreadPanel/ThreadPanel.css +862 -0
  388. package/components/ThreadPanel/ThreadPanel.d.ts +175 -0
  389. package/components/ThreadPanel/ThreadPanel.js +466 -0
  390. package/components/ThreadTabs/ThreadTabs.css +252 -0
  391. package/components/ThreadTabs/ThreadTabs.d.ts +54 -0
  392. package/components/ThreadTabs/ThreadTabs.js +201 -0
  393. package/components/TimePicker/TimePicker.css +230 -0
  394. package/components/TimePicker/TimePicker.d.ts +46 -0
  395. package/components/TimePicker/TimePicker.js +250 -0
  396. package/components/Timeline/Timeline.css +366 -0
  397. package/components/Timeline/Timeline.d.ts +67 -0
  398. package/components/Timeline/Timeline.js +73 -0
  399. package/components/Toast/Toast.css +363 -0
  400. package/components/Toast/Toast.d.ts +63 -0
  401. package/components/Toast/Toast.js +215 -0
  402. package/components/ToggleGroup/ToggleGroup.css +110 -0
  403. package/components/ToggleGroup/ToggleGroup.d.ts +50 -0
  404. package/components/ToggleGroup/ToggleGroup.js +73 -0
  405. package/components/ToggleSwitch/ToggleSwitch.css +172 -0
  406. package/components/ToggleSwitch/ToggleSwitch.d.ts +43 -0
  407. package/components/ToggleSwitch/ToggleSwitch.js +76 -0
  408. package/components/ToolCall/ToolCall.css +234 -0
  409. package/components/ToolCall/ToolCall.d.ts +43 -0
  410. package/components/ToolCall/ToolCall.js +90 -0
  411. package/components/Toolbar/Toolbar.css +56 -0
  412. package/components/Toolbar/Toolbar.d.ts +35 -0
  413. package/components/Toolbar/Toolbar.js +62 -0
  414. package/components/Tooltip/Tooltip.css +175 -0
  415. package/components/Tooltip/Tooltip.d.ts +22 -0
  416. package/components/Tooltip/Tooltip.js +74 -0
  417. package/components/TreeView/TreeView.css +119 -0
  418. package/components/TreeView/TreeView.d.ts +45 -0
  419. package/components/TreeView/TreeView.js +232 -0
  420. package/components/TypographySwatch/TypographySwatch.css +81 -0
  421. package/components/TypographySwatch/TypographySwatch.d.ts +24 -0
  422. package/components/TypographySwatch/TypographySwatch.js +40 -0
  423. package/components/UsageCard/UsageCard.css +30 -0
  424. package/components/UsageCard/UsageCard.d.ts +48 -0
  425. package/components/UsageCard/UsageCard.js +54 -0
  426. package/components/Waveform/Waveform.css +97 -0
  427. package/components/Waveform/Waveform.d.ts +44 -0
  428. package/components/Waveform/Waveform.js +46 -0
  429. package/components/WorldMap/WorldMap.css +234 -0
  430. package/components/WorldMap/WorldMap.d.ts +113 -0
  431. package/components/WorldMap/WorldMap.js +427 -0
  432. package/components/WorldMap/land.d.ts +14 -0
  433. package/components/WorldMap/land.js +4 -0
  434. package/components/registry.d.ts +79 -0
  435. package/components/registry.js +13 -0
  436. package/components/registry.json +1153 -0
  437. package/components/registry.json.d.ts +1156 -0
  438. package/components/registry.json.js +11 -0
  439. package/fonts/MaterialSymbolsRounded-VariableFont_FILL,GRAD,opsz,wght.woff2 +0 -0
  440. package/fonts/material-symbols.css +94 -0
  441. package/fonts/presets/dm-sans-300-700-latin-ext.woff2 +0 -0
  442. package/fonts/presets/dm-sans-300-700-latin.woff2 +0 -0
  443. package/fonts/presets/fraunces-300-700-latin-ext.woff2 +0 -0
  444. package/fonts/presets/fraunces-300-700-latin.woff2 +0 -0
  445. package/fonts/presets/ibm-plex-mono-300-latin-ext.woff2 +0 -0
  446. package/fonts/presets/ibm-plex-mono-300-latin.woff2 +0 -0
  447. package/fonts/presets/ibm-plex-mono-400-latin-ext.woff2 +0 -0
  448. package/fonts/presets/ibm-plex-mono-400-latin.woff2 +0 -0
  449. package/fonts/presets/ibm-plex-mono-500-latin-ext.woff2 +0 -0
  450. package/fonts/presets/ibm-plex-mono-500-latin.woff2 +0 -0
  451. package/fonts/presets/ibm-plex-mono-600-latin-ext.woff2 +0 -0
  452. package/fonts/presets/ibm-plex-mono-600-latin.woff2 +0 -0
  453. package/fonts/presets/ibm-plex-mono-700-latin-ext.woff2 +0 -0
  454. package/fonts/presets/ibm-plex-mono-700-latin.woff2 +0 -0
  455. package/fonts/presets/ibm-plex-sans-300-700-latin-ext.woff2 +0 -0
  456. package/fonts/presets/ibm-plex-sans-300-700-latin.woff2 +0 -0
  457. package/fonts/presets/inter-300-700-latin-ext.woff2 +0 -0
  458. package/fonts/presets/inter-300-700-latin.woff2 +0 -0
  459. package/fonts/presets/inter-tight-300-900-latin-ext.woff2 +0 -0
  460. package/fonts/presets/inter-tight-300-900-latin.woff2 +0 -0
  461. package/fonts/presets/lora-400-700-latin-ext.woff2 +0 -0
  462. package/fonts/presets/lora-400-700-latin.woff2 +0 -0
  463. package/fonts/presets/montserrat-300-700-latin-ext.woff2 +0 -0
  464. package/fonts/presets/montserrat-300-700-latin.woff2 +0 -0
  465. package/fonts/presets/poppins-300-latin-ext.woff2 +0 -0
  466. package/fonts/presets/poppins-300-latin.woff2 +0 -0
  467. package/fonts/presets/poppins-400-latin-ext.woff2 +0 -0
  468. package/fonts/presets/poppins-400-latin.woff2 +0 -0
  469. package/fonts/presets/poppins-500-latin-ext.woff2 +0 -0
  470. package/fonts/presets/poppins-500-latin.woff2 +0 -0
  471. package/fonts/presets/poppins-600-latin-ext.woff2 +0 -0
  472. package/fonts/presets/poppins-600-latin.woff2 +0 -0
  473. package/fonts/presets/poppins-700-latin-ext.woff2 +0 -0
  474. package/fonts/presets/poppins-700-latin.woff2 +0 -0
  475. package/fonts/presets/source-sans-3-300-700-latin-ext.woff2 +0 -0
  476. package/fonts/presets/source-sans-3-300-700-latin.woff2 +0 -0
  477. package/fonts/presets/space-grotesk-300-700-latin-ext.woff2 +0 -0
  478. package/fonts/presets/space-grotesk-300-700-latin.woff2 +0 -0
  479. package/fonts/presets/work-sans-300-700-latin-ext.woff2 +0 -0
  480. package/fonts/presets/work-sans-300-700-latin.woff2 +0 -0
  481. package/index.d.ts +132 -0
  482. package/index.js +277 -0
  483. package/package.json +87 -0
  484. package/tokens/motion.d.ts +44 -0
  485. package/tokens/motion.js +32 -0
  486. package/tokens/presets/contrast.css +316 -0
  487. package/tokens/presets/coral.css +356 -0
  488. package/tokens/presets/forest.css +334 -0
  489. package/tokens/presets/gold.css +303 -0
  490. package/tokens/presets/mono.css +286 -0
  491. package/tokens/presets/pink.css +349 -0
  492. package/tokens/presets/presets.css +17 -0
  493. package/tokens/presets/terminal.css +378 -0
  494. package/tokens/presets/violet.css +314 -0
  495. package/tokens/presets/warm.css +320 -0
  496. package/tokens/presets/zest.css +359 -0
  497. package/tokens/registry.d.ts +22 -0
  498. package/tokens/registry.js +14 -0
  499. package/tokens/registry.json +276 -0
  500. package/tokens/registry.json.d.ts +279 -0
  501. package/tokens/registry.json.js +8 -0
  502. package/tokens/tokens-dark.css +186 -0
  503. package/tokens/tokens-light.css +276 -0
  504. package/tokens/tokens-motion.css +72 -0
  505. package/tokens/tokens-primitives.css +213 -0
  506. package/tokens/tokens-typography.css +210 -0
  507. package/tokens/tokens.css +11 -0
@@ -0,0 +1,209 @@
1
+ /* ============================================
2
+ SOURCE TRAIL COMPONENT
3
+ The research trail under an agent's answer:
4
+ a count header with a disclosure over the
5
+ sources it opened, in order.
6
+
7
+ Shares the chat furniture's 24px shell with
8
+ ToolCall — a collapsed trail reads as one
9
+ more row in the run, not a different species.
10
+ ============================================ */
11
+
12
+ .ds-source-trail {
13
+ display: flex;
14
+ flex-direction: column;
15
+ width: 100%;
16
+ background-color: var(--color-bg-container-primary);
17
+ border: var(--border-025) solid var(--color-bg-container-border);
18
+ border-radius: var(--radius-600);
19
+ overflow: hidden;
20
+ }
21
+
22
+ /* ============================================
23
+ HEADER
24
+ ============================================ */
25
+
26
+ .ds-source-trail__header {
27
+ display: flex;
28
+ align-items: center;
29
+ gap: var(--gap-200);
30
+ width: 100%;
31
+ padding: var(--padding-200) var(--padding-500);
32
+ background: none;
33
+ border: none;
34
+ /* Buttons default to the UA's buttontext, not the inherited colour, so
35
+ anything in the header that inherits would read black in both themes. */
36
+ color: var(--color-text-primary);
37
+ text-align: left;
38
+ cursor: pointer;
39
+ transition: background-color var(--motion-duration-fast) var(--motion-ease-standard);
40
+ }
41
+
42
+ .ds-source-trail__header:hover {
43
+ background-color: var(--color-bg-container-secondary);
44
+ }
45
+
46
+ .ds-source-trail__header:focus-visible {
47
+ outline: 2px solid var(--color-action-primary-bg);
48
+ outline-offset: -2px;
49
+ }
50
+
51
+ .ds-source-trail__indicator {
52
+ display: inline-flex;
53
+ align-items: center;
54
+ justify-content: center;
55
+ flex: none;
56
+ color: var(--color-text-secondary);
57
+ }
58
+
59
+ .ds-source-trail__indicator .material-symbols-rounded {
60
+ --icon-size: var(--icon-size-500);
61
+ }
62
+
63
+ .ds-source-trail__heading {
64
+ flex: 1 1 auto;
65
+ min-width: 0;
66
+ overflow: hidden;
67
+ text-overflow: ellipsis;
68
+ white-space: nowrap;
69
+ color: var(--color-text-primary);
70
+ font-family: var(--font-paragraph-sm-emphasis-family);
71
+ font-size: var(--font-paragraph-sm-emphasis-size);
72
+ font-weight: var(--font-paragraph-sm-emphasis-weight);
73
+ line-height: var(--font-paragraph-sm-emphasis-line-height);
74
+ letter-spacing: var(--font-paragraph-sm-emphasis-letter-spacing);
75
+ }
76
+
77
+ .ds-source-trail__chevron {
78
+ --icon-size: var(--icon-size-500);
79
+
80
+ flex: none;
81
+ color: var(--color-icon-secondary);
82
+ transition: transform var(--motion-duration-slow) var(--motion-ease-standard);
83
+ }
84
+
85
+ .ds-source-trail--open .ds-source-trail__chevron {
86
+ transform: rotate(180deg);
87
+ }
88
+
89
+ /* ============================================
90
+ PANEL
91
+ ============================================ */
92
+
93
+ .ds-source-trail__panel {
94
+ display: grid;
95
+ grid-template-rows: 0fr;
96
+ visibility: hidden;
97
+ transition:
98
+ grid-template-rows var(--motion-duration-slow) var(--motion-ease-standard),
99
+ visibility var(--motion-duration-slow) var(--motion-ease-standard);
100
+ }
101
+
102
+ .ds-source-trail--open .ds-source-trail__panel {
103
+ grid-template-rows: 1fr;
104
+ visibility: visible;
105
+ }
106
+
107
+ .ds-source-trail__list {
108
+ overflow: hidden;
109
+ min-height: 0;
110
+ margin: 0;
111
+ padding: 0;
112
+ list-style: none;
113
+ display: flex;
114
+ flex-direction: column;
115
+ }
116
+
117
+ .ds-source-trail--open .ds-source-trail__list {
118
+ padding: var(--padding-200) var(--padding-500) var(--padding-400);
119
+ border-top: var(--border-025) solid var(--color-divider);
120
+ gap: var(--gap-200);
121
+ }
122
+
123
+ /* ============================================
124
+ ROWS
125
+ ============================================ */
126
+
127
+ .ds-source-trail__row {
128
+ display: flex;
129
+ align-items: center;
130
+ gap: var(--gap-200);
131
+ min-width: 0;
132
+ }
133
+
134
+ /* Streaming: an appended row eases in. Pure CSS, so the global
135
+ reduced-motion guard collapses the duration tokens. */
136
+ .ds-source-trail--streaming .ds-source-trail__row {
137
+ animation: ds-source-trail-enter var(--motion-duration-slow) var(--motion-ease-standard);
138
+ }
139
+
140
+ @keyframes ds-source-trail-enter {
141
+ from {
142
+ opacity: 0;
143
+ transform: translateY(4px);
144
+ }
145
+ }
146
+
147
+ .ds-source-trail__row-indicator {
148
+ display: inline-flex;
149
+ align-items: center;
150
+ justify-content: center;
151
+ flex: none;
152
+ color: var(--color-text-secondary);
153
+ }
154
+
155
+ .ds-source-trail__row-indicator .material-symbols-rounded {
156
+ --icon-size: var(--icon-size-500);
157
+ }
158
+
159
+ .ds-source-trail__row--pending .ds-source-trail__row-indicator {
160
+ color: var(--color-text-tertiary);
161
+ }
162
+
163
+ .ds-source-trail__row--active .ds-source-trail__row-indicator {
164
+ color: var(--color-status-info-icon);
165
+ }
166
+
167
+ .ds-source-trail__row--done .ds-source-trail__row-indicator {
168
+ color: var(--color-status-positive-icon);
169
+ }
170
+
171
+ /* A pending source has not been opened yet, so its chip sits quieter */
172
+ .ds-source-trail__row--pending {
173
+ opacity: 0.6;
174
+ }
175
+
176
+ .ds-source-trail__detail {
177
+ flex: 1 1 auto;
178
+ min-width: 0;
179
+ overflow: hidden;
180
+ text-overflow: ellipsis;
181
+ white-space: nowrap;
182
+ color: var(--color-text-tertiary);
183
+ font-family: var(--font-paragraph-sm-family);
184
+ font-size: var(--font-paragraph-sm-size);
185
+ font-weight: var(--font-paragraph-sm-weight);
186
+ line-height: var(--font-paragraph-sm-line-height);
187
+ letter-spacing: var(--font-paragraph-sm-letter-spacing);
188
+ }
189
+
190
+ /* Screen-reader-only status text, matching AgentPlan's row announcement */
191
+ .ds-source-trail__sr {
192
+ position: absolute;
193
+ width: 1px;
194
+ height: 1px;
195
+ padding: 0;
196
+ margin: -1px;
197
+ overflow: hidden;
198
+ clip: rect(0, 0, 0, 0);
199
+ white-space: nowrap;
200
+ border: 0;
201
+ }
202
+
203
+ /* Icons follow the state colour set on their parents, even against a
204
+ consumer stylesheet that colours .material-symbols-rounded globally.
205
+ The chevron is excluded — it carries its own colour rule, which this
206
+ higher-specificity rule would otherwise silently override. */
207
+ .ds-source-trail .material-symbols-rounded:not(.ds-source-trail__chevron) {
208
+ color: inherit;
209
+ }
@@ -0,0 +1,49 @@
1
+ import { default as React } from 'react';
2
+ export type SourceTrailStatus = 'pending' | 'active' | 'done';
3
+ /** One source the agent opened while answering. */
4
+ export interface SourceTrailItem {
5
+ /** The source name, passed through to the row's SourceChip. */
6
+ title: string;
7
+ /** Optional link to the source — the chip renders as an anchor. */
8
+ href?: string;
9
+ /** Leading icon for the chip — a Material Symbol name (string) or custom element (ReactNode). */
10
+ icon?: string | React.ReactNode;
11
+ /** Where the visit has got to. Drives the row's indicator; defaults to done. */
12
+ status?: SourceTrailStatus;
13
+ /** Supporting line, e.g. what the source contributed to the answer. */
14
+ detail?: string;
15
+ }
16
+ /** Props owned by SourceTrail itself — everything else falls through to the root element. */
17
+ type SourceTrailOwnProps = {
18
+ /** The sources, in the order the agent opened them. */
19
+ items: SourceTrailItem[];
20
+ /**
21
+ * Header text. Left unset, it is computed from the items —
22
+ * "Reading 3 sources" while any is still pending or active,
23
+ * "Read 3 sources" once every visit has settled.
24
+ */
25
+ title?: string;
26
+ /** Still researching: newly appended rows animate in. */
27
+ streaming?: boolean;
28
+ /** Open state for controlled use. Pair with `onOpenChange`. */
29
+ open?: boolean;
30
+ /** Open state for uncontrolled use. */
31
+ defaultOpen?: boolean;
32
+ /** Fires whenever the panel opens or closes. */
33
+ onOpenChange?: (open: boolean) => void;
34
+ /** Additional CSS classes */
35
+ className?: string;
36
+ };
37
+ export interface SourceTrailProps extends SourceTrailOwnProps, Omit<React.ComponentPropsWithoutRef<'div'>, keyof SourceTrailOwnProps> {
38
+ }
39
+ /**
40
+ * SourceTrail is the research trail under an agent's answer: the sources it
41
+ * opened, in order, each with a status and an optional note on what it
42
+ * contributed. SourceChip is the atom; this is the list — a count header
43
+ * with a disclosure, so a long trail collapses to one line.
44
+ *
45
+ * While `streaming`, appended rows animate in (pure CSS, so the global
46
+ * reduced-motion guard covers it) and the active row carries a spinner.
47
+ */
48
+ export declare const SourceTrail: React.ForwardRefExoticComponent<SourceTrailProps & React.RefAttributes<HTMLDivElement>>;
49
+ export {};
@@ -0,0 +1,108 @@
1
+ "use client";
2
+ import { jsxs, jsx } from "react/jsx-runtime";
3
+ import React, { useId, useState, useCallback } from "react";
4
+ import { SourceChip } from "../SourceChip/SourceChip.js";
5
+ import { Spinner } from "../Spinner/Spinner.js";
6
+ import "./SourceTrail.css";
7
+ import "../../fonts/material-symbols.css";
8
+ const STATUS_ICONS = {
9
+ pending: "circle",
10
+ done: "check_circle"
11
+ };
12
+ const STATUS_TEXT = {
13
+ pending: "Not opened yet",
14
+ active: "Reading now",
15
+ done: "Read"
16
+ };
17
+ const SourceTrail = React.forwardRef(
18
+ ({
19
+ items,
20
+ title,
21
+ streaming = false,
22
+ open,
23
+ defaultOpen = true,
24
+ onOpenChange,
25
+ className = "",
26
+ ...rest
27
+ }, ref) => {
28
+ const baseClass = "ds-source-trail";
29
+ const id = useId();
30
+ const panelId = `${id}-panel`;
31
+ const triggerId = `${id}-trigger`;
32
+ const isControlled = open !== void 0;
33
+ const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
34
+ const isOpen = isControlled ? open : uncontrolledOpen;
35
+ const toggle = useCallback(() => {
36
+ const next = !isOpen;
37
+ if (!isControlled) setUncontrolledOpen(next);
38
+ onOpenChange?.(next);
39
+ }, [isOpen, isControlled, onOpenChange]);
40
+ const unsettled = items.some(
41
+ (item) => item.status === "pending" || item.status === "active"
42
+ );
43
+ const count = items.length;
44
+ const heading = title ?? (unsettled || streaming ? `Reading ${count} source${count === 1 ? "" : "s"}` : `Read ${count} source${count === 1 ? "" : "s"}`);
45
+ const classes = [
46
+ baseClass,
47
+ isOpen ? `${baseClass}--open` : "",
48
+ streaming ? `${baseClass}--streaming` : "",
49
+ className
50
+ ].filter(Boolean).join(" ");
51
+ return /* @__PURE__ */ jsxs("div", { ...rest, ref, className: classes, children: [
52
+ /* @__PURE__ */ jsxs(
53
+ "button",
54
+ {
55
+ type: "button",
56
+ id: triggerId,
57
+ className: `${baseClass}__header`,
58
+ "aria-expanded": isOpen,
59
+ "aria-controls": panelId,
60
+ onClick: toggle,
61
+ children: [
62
+ /* @__PURE__ */ jsx("span", { className: `${baseClass}__indicator`, "aria-hidden": "true", children: unsettled || streaming ? /* @__PURE__ */ jsx(Spinner, { size: "sm", variant: "inherit" }) : /* @__PURE__ */ jsx("span", { className: "material-symbols-rounded", children: "travel_explore" }) }),
63
+ /* @__PURE__ */ jsx("span", { className: `${baseClass}__heading`, children: heading }),
64
+ /* @__PURE__ */ jsx("span", { className: `${baseClass}__chevron material-symbols-rounded`, "aria-hidden": "true", children: "expand_more" })
65
+ ]
66
+ }
67
+ ),
68
+ /* @__PURE__ */ jsx(
69
+ "div",
70
+ {
71
+ className: `${baseClass}__panel`,
72
+ id: panelId,
73
+ role: "region",
74
+ "aria-labelledby": triggerId,
75
+ children: /* @__PURE__ */ jsx("ol", { className: `${baseClass}__list`, children: items.map((item, index) => {
76
+ const status = item.status ?? "done";
77
+ return /* @__PURE__ */ jsxs(
78
+ "li",
79
+ {
80
+ className: `${baseClass}__row ${baseClass}__row--${status}`,
81
+ children: [
82
+ /* @__PURE__ */ jsx("span", { className: `${baseClass}__row-indicator`, "aria-hidden": "true", children: status === "active" ? /* @__PURE__ */ jsx(Spinner, { size: "sm", variant: "inherit" }) : /* @__PURE__ */ jsx("span", { className: "material-symbols-rounded", children: STATUS_ICONS[status] }) }),
83
+ /* @__PURE__ */ jsx(
84
+ SourceChip,
85
+ {
86
+ title: item.title,
87
+ href: item.href,
88
+ icon: item.icon,
89
+ target: item.href ? "_blank" : void 0,
90
+ rel: item.href ? "noopener noreferrer" : void 0
91
+ }
92
+ ),
93
+ item.detail && /* @__PURE__ */ jsx("span", { className: `${baseClass}__detail`, children: item.detail }),
94
+ /* @__PURE__ */ jsx("span", { className: `${baseClass}__sr`, children: STATUS_TEXT[status] })
95
+ ]
96
+ },
97
+ `${item.title}-${index}`
98
+ );
99
+ }) })
100
+ }
101
+ )
102
+ ] });
103
+ }
104
+ );
105
+ SourceTrail.displayName = "SourceTrail";
106
+ export {
107
+ SourceTrail
108
+ };
@@ -0,0 +1,108 @@
1
+ /* ============================================
2
+ SPACING SWATCH COMPONENT
3
+ Card that displays a spatial token with a
4
+ visual preview, size label, and pixel value.
5
+ ============================================ */
6
+
7
+ .ds-spacing-swatch {
8
+ /* Layout */
9
+ display: flex;
10
+ flex-direction: column;
11
+ align-items: center;
12
+ gap: var(--gap-500); /* 20px */
13
+
14
+ /* Sizing */
15
+ flex: 1 1 0;
16
+ min-width: 140px;
17
+
18
+ /* Appearance */
19
+ background: var(--color-bg-container-primary-semi);
20
+ border: var(--border-025) solid var(--color-bg-container-border);
21
+ border-radius: var(--radius-600); /* 24px */
22
+ padding: var(--padding-500); /* 20px */
23
+ }
24
+
25
+ /* ============================================
26
+ PREVIEW AREA
27
+ Centred container for the visual element
28
+ ============================================ */
29
+
30
+ .ds-spacing-swatch__preview {
31
+ display: flex;
32
+ align-items: center;
33
+ justify-content: center;
34
+ min-height: 60px;
35
+ }
36
+
37
+ /* ============================================
38
+ BORDER VARIANT
39
+ Vertical coloured bar showing border width
40
+ ============================================ */
41
+
42
+ .ds-spacing-swatch__border-bar {
43
+ height: 50px;
44
+ background: var(--color-core-accent-violet);
45
+ }
46
+
47
+ /* ============================================
48
+ RADIUS VARIANT
49
+ Square with visible border-radius
50
+ ============================================ */
51
+
52
+ .ds-spacing-swatch__radius-box {
53
+ width: 50px;
54
+ height: 50px;
55
+ background: transparent;
56
+ border: 1px solid var(--color-status-positive-border);
57
+ }
58
+
59
+ /* ============================================
60
+ GAP VARIANT
61
+ Two vertical lines separated by the gap width
62
+ ============================================ */
63
+
64
+ .ds-spacing-swatch__gap-bar {
65
+ height: 50px;
66
+ border-left: 1px solid var(--color-core-accent-coral);
67
+ border-right: 1px solid var(--color-core-accent-coral);
68
+ }
69
+
70
+ /* ============================================
71
+ PADDING VARIANT
72
+ Outer box with inner box showing the padding
73
+ ============================================ */
74
+
75
+ .ds-spacing-swatch__padding-outer {
76
+ border: 1px solid var(--color-core-ui-secondary);
77
+ display: flex;
78
+ align-items: center;
79
+ justify-content: center;
80
+ }
81
+
82
+ .ds-spacing-swatch__padding-inner {
83
+ width: 10px;
84
+ height: 10px;
85
+ border: 1px solid var(--color-status-neutral-border);
86
+ border-radius: 1px;
87
+ }
88
+
89
+ /* ============================================
90
+ LABEL & VALUE
91
+ ============================================ */
92
+
93
+ .ds-spacing-swatch__label {
94
+ font-family: var(--font-paragraph-family);
95
+ font-size: var(--font-paragraph-size);
96
+ font-weight: var(--font-heading-3-weight);
97
+ line-height: var(--font-paragraph-line-height);
98
+ color: var(--color-text-primary);
99
+ text-align: center;
100
+ }
101
+
102
+ .ds-spacing-swatch__value {
103
+ font-family: var(--font-paragraph-family);
104
+ font-size: var(--font-paragraph-size);
105
+ font-weight: var(--font-paragraph-weight);
106
+ line-height: var(--font-paragraph-line-height);
107
+ color: var(--color-text-tertiary);
108
+ }
@@ -0,0 +1,20 @@
1
+ export type SpacingSwatchVariant = 'border' | 'radius' | 'gap' | 'padding';
2
+ export interface SpacingSwatchProps {
3
+ /** Size label (e.g. "XS", "MD", "Full") */
4
+ label: string;
5
+ /** Pixel value to display (e.g. "1px", "24px", "999px") */
6
+ value: string;
7
+ /** Numeric pixel amount used to size the preview element */
8
+ px: number;
9
+ /** Which type of spatial preview to render */
10
+ variant: SpacingSwatchVariant;
11
+ /** Additional CSS classes */
12
+ className?: string;
13
+ }
14
+ /**
15
+ * SpacingSwatch component from Figma design system.
16
+ * Displays a spatial token card with a visual preview,
17
+ * size label, and pixel value. Four variants cover
18
+ * border width, radius, gap, and padding tokens.
19
+ */
20
+ export declare const SpacingSwatch: ({ label, value, px, variant, className, }: SpacingSwatchProps) => import("react").JSX.Element;
@@ -0,0 +1,50 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import "./SpacingSwatch.css";
3
+ const SpacingSwatch = ({
4
+ label,
5
+ value,
6
+ px,
7
+ variant,
8
+ className = ""
9
+ }) => {
10
+ const baseClass = "ds-spacing-swatch";
11
+ const classes = [baseClass, className].filter(Boolean).join(" ");
12
+ return /* @__PURE__ */ jsxs("div", { className: classes, children: [
13
+ /* @__PURE__ */ jsxs("div", { className: `${baseClass}__preview`, children: [
14
+ variant === "border" && /* @__PURE__ */ jsx(
15
+ "div",
16
+ {
17
+ className: `${baseClass}__border-bar`,
18
+ style: { width: `${px}px` }
19
+ }
20
+ ),
21
+ variant === "radius" && /* @__PURE__ */ jsx(
22
+ "div",
23
+ {
24
+ className: `${baseClass}__radius-box`,
25
+ style: { borderRadius: px >= 999 ? "50%" : `${px}px` }
26
+ }
27
+ ),
28
+ variant === "gap" && /* @__PURE__ */ jsx(
29
+ "div",
30
+ {
31
+ className: `${baseClass}__gap-bar`,
32
+ style: { width: `${px}px` }
33
+ }
34
+ ),
35
+ variant === "padding" && /* @__PURE__ */ jsx(
36
+ "div",
37
+ {
38
+ className: `${baseClass}__padding-outer`,
39
+ style: { padding: `${px}px` },
40
+ children: /* @__PURE__ */ jsx("div", { className: `${baseClass}__padding-inner` })
41
+ }
42
+ )
43
+ ] }),
44
+ /* @__PURE__ */ jsx("span", { className: `${baseClass}__label`, children: label }),
45
+ /* @__PURE__ */ jsx("span", { className: `${baseClass}__value`, children: value })
46
+ ] });
47
+ };
48
+ export {
49
+ SpacingSwatch
50
+ };
@@ -0,0 +1,76 @@
1
+ /* ============================================
2
+ SPARKLINE COMPONENT
3
+ Inline trend line for stats and table cells.
4
+ Colour flows through `color` — the line, fill
5
+ and dot all draw with currentColor, so a tone
6
+ is one custom property swap.
7
+ ============================================ */
8
+
9
+ /* Base */
10
+
11
+ .ds-sparkline {
12
+ display: inline-block;
13
+ vertical-align: middle;
14
+ flex-shrink: 0;
15
+ color: var(--color-action-primary-bg);
16
+ }
17
+
18
+ /* Parts */
19
+
20
+ /* The line draws itself on mount, the way the recharts lines do: the path is
21
+ normalised to 100 dash units (pathLength on the SVG side), and the offset
22
+ retreats from fully hidden to zero. The fill and end dot fade in behind
23
+ and after it. All durations are tokens, so reduced motion collapses the
24
+ whole sequence to the finished state for free. */
25
+
26
+ .ds-sparkline__line {
27
+ fill: none;
28
+ stroke: currentColor;
29
+ stroke-linecap: round;
30
+ stroke-linejoin: round;
31
+ stroke-dasharray: 100;
32
+ animation: ds-sparkline-draw var(--motion-duration-slower) var(--motion-ease-emphasized);
33
+ }
34
+
35
+ .ds-sparkline__fill {
36
+ fill: currentColor;
37
+ opacity: 0.15;
38
+ animation: ds-sparkline-fade var(--motion-duration-slower) var(--motion-ease-standard);
39
+ }
40
+
41
+ .ds-sparkline__dot {
42
+ fill: currentColor;
43
+ /* Waits out the draw, then pops in where the line ends. */
44
+ animation: ds-sparkline-fade var(--motion-duration-slow) var(--motion-ease-standard)
45
+ var(--motion-duration-slower) backwards;
46
+ }
47
+
48
+ @keyframes ds-sparkline-draw {
49
+ from {
50
+ stroke-dashoffset: 100;
51
+ }
52
+ }
53
+
54
+ @keyframes ds-sparkline-fade {
55
+ from {
56
+ opacity: 0;
57
+ }
58
+ }
59
+
60
+ /* Tones */
61
+
62
+ .ds-sparkline--accent {
63
+ color: var(--color-action-primary-bg);
64
+ }
65
+
66
+ .ds-sparkline--positive {
67
+ color: var(--color-trend-up);
68
+ }
69
+
70
+ .ds-sparkline--negative {
71
+ color: var(--color-trend-down);
72
+ }
73
+
74
+ .ds-sparkline--neutral {
75
+ color: var(--color-text-secondary);
76
+ }
@@ -0,0 +1,51 @@
1
+ import { default as React } from 'react';
2
+ /** Props owned by Sparkline itself — everything else falls through to the SVG node. */
3
+ type SparklineOwnProps = {
4
+ /** The series to plot, in order. Values are normalised into the viewBox. */
5
+ data: number[];
6
+ /** Rendering treatment — a bare line, or a line with a soft fill underneath. */
7
+ variant?: 'line' | 'area';
8
+ /**
9
+ * Colour role for the line and end dot. `accent` follows the chart palette's
10
+ * lead colour; `positive`/`negative` map to the status text tokens; `neutral`
11
+ * recedes to secondary text.
12
+ */
13
+ tone?: 'accent' | 'positive' | 'negative' | 'neutral';
14
+ /** Marks the final point with a small dot. */
15
+ showDot?: boolean;
16
+ /** Line thickness in viewBox units — an SVG geometry attribute, not a token. */
17
+ strokeWidth?: number;
18
+ /**
19
+ * ViewBox width. Also the default rendered width; the SVG scales to its
20
+ * container when sized externally via CSS. Intentionally shadows the native
21
+ * SVG `width` attribute, which it sets.
22
+ */
23
+ width?: number;
24
+ /**
25
+ * ViewBox height. Also the default rendered height; the SVG scales to its
26
+ * container when sized externally via CSS. Intentionally shadows the native
27
+ * SVG `height` attribute, which it sets.
28
+ */
29
+ height?: number;
30
+ /**
31
+ * Accessible description of the trend, e.g. "Revenue, trending up". When
32
+ * omitted the SVG is decorative and hidden from assistive technology.
33
+ */
34
+ label?: string;
35
+ /** Additional CSS classes */
36
+ className?: string;
37
+ };
38
+ export interface SparklineProps extends SparklineOwnProps, Omit<React.ComponentPropsWithoutRef<'svg'>, keyof SparklineOwnProps | 'children'> {
39
+ }
40
+ /**
41
+ * Sparkline — an inline trend line for stats and table cells, drawn without
42
+ * axes or chrome. Pure SVG computed from props: no charting library, no hooks,
43
+ * no dependencies, so it renders from a Server Component and costs nothing in
44
+ * a dense table. The line bends through a monotone curve, the same family as
45
+ * the recharts charts' `monotone`, so it reads as a miniature LineChart
46
+ * rather than a jagged polyline. Degenerate data never breaks the path: an
47
+ * all-equal series renders a horizontal midline, and fewer than two points
48
+ * render just the end dot, or nothing.
49
+ */
50
+ export declare const Sparkline: React.ForwardRefExoticComponent<SparklineProps & React.RefAttributes<SVGSVGElement>>;
51
+ export {};