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,264 @@
1
+ /* ============================================
2
+ PROMPT SUGGESTIONS COMPONENT
3
+ Horizontal row of tappable prompt chips.
4
+ Scrolls with pure-CSS edge fades by default;
5
+ wraps for empty-state hero placements.
6
+ ============================================ */
7
+
8
+ .ds-prompt-suggestions {
9
+ display: flex;
10
+ gap: var(--gap-200);
11
+ /* Breathing room so chip focus rings aren't clipped by the scroll box */
12
+ padding-block: var(--padding-050);
13
+ }
14
+
15
+ /* ============================================
16
+ SIZE
17
+ The pill scale itself is Chip's — the row only
18
+ picks which size to ask for. What belongs here
19
+ is the gutter between pills, which opens up a
20
+ step at the larger size.
21
+ ============================================ */
22
+
23
+ .ds-prompt-suggestions--default {
24
+ gap: var(--gap-300);
25
+ }
26
+
27
+ .ds-prompt-suggestions--compact {
28
+ /* Base gap applies. */
29
+ }
30
+
31
+ /* ============================================
32
+ SCROLL — one line, overflow hinted by fades
33
+ ============================================ */
34
+
35
+ /* Edge fades — scroll layout only, which is why the layout is named on the
36
+ element rather than inferred: content near either edge fades out, hinting
37
+ there is more to scroll. A CSS mask, not a scroll listener.
38
+ ds-allow(color): mask alpha keywords (black/transparent), not palette colours */
39
+ .ds-prompt-suggestions--scroll {
40
+ overflow-x: auto;
41
+ -webkit-mask-image: linear-gradient(
42
+ to right,
43
+ transparent,
44
+ black var(--gap-500),
45
+ black calc(100% - var(--gap-500)),
46
+ transparent
47
+ );
48
+ mask-image: linear-gradient(
49
+ to right,
50
+ transparent,
51
+ black var(--gap-500),
52
+ black calc(100% - var(--gap-500)),
53
+ transparent
54
+ );
55
+ }
56
+
57
+ /* ============================================
58
+ WRAP — multi-line hero variant, no fades
59
+ ============================================ */
60
+
61
+ .ds-prompt-suggestions--wrap {
62
+ flex-wrap: wrap;
63
+ }
64
+
65
+ /* ============================================
66
+ STACK — one suggestion per line
67
+ For narrow columns, where a wrapped row breaks
68
+ wherever the labels happen to run out of room
69
+ and the ragged right edge reads as an accident.
70
+ Pills still hug their labels: stretching them
71
+ to a shared width would make a set of prompts
72
+ look like a set of buttons.
73
+ ============================================ */
74
+
75
+ .ds-prompt-suggestions--stack {
76
+ flex-direction: column;
77
+ align-items: flex-start;
78
+ }
79
+
80
+ /* ============================================
81
+ ITEMS
82
+ ============================================ */
83
+
84
+ .ds-prompt-suggestions__item {
85
+ display: flex;
86
+ flex-shrink: 0;
87
+ /* Pills pop in one after another — a small rise-and-settle with the
88
+ spring's overshoot, quiet enough to read as arrival rather than
89
+ performance. `backwards` keeps a delayed pill invisible until its
90
+ turn. The pending placeholders and the chips that replace them are
91
+ both items, so each set lands one-two-three. */
92
+ animation: ds-prompt-suggestions-pop var(--motion-duration-slow) var(--motion-ease-spring)
93
+ backwards;
94
+ }
95
+
96
+ /* A set that has already landed stands still: the host turns the entrance
97
+ off (`entrance={false}`) when it re-shows suggestions the visitor has
98
+ already watched arrive, so a reopened panel does not replay them. */
99
+ .ds-prompt-suggestions--still .ds-prompt-suggestions__item {
100
+ animation: none;
101
+ }
102
+
103
+ /* The stagger: one instant per pill, capped at the fifth so a long
104
+ scrolling row does not keep the far end waiting. */
105
+ .ds-prompt-suggestions__item:nth-child(2) {
106
+ animation-delay: var(--motion-duration-instant);
107
+ }
108
+
109
+ .ds-prompt-suggestions__item:nth-child(3) {
110
+ animation-delay: calc(var(--motion-duration-instant) * 2);
111
+ }
112
+
113
+ .ds-prompt-suggestions__item:nth-child(4) {
114
+ animation-delay: calc(var(--motion-duration-instant) * 3);
115
+ }
116
+
117
+ .ds-prompt-suggestions__item:nth-child(n + 5) {
118
+ animation-delay: calc(var(--motion-duration-instant) * 4);
119
+ }
120
+
121
+ @keyframes ds-prompt-suggestions-pop {
122
+ from {
123
+ opacity: 0;
124
+ transform: translateY(6px) scale(0.97);
125
+ }
126
+
127
+ to {
128
+ opacity: 1;
129
+ transform: none;
130
+ }
131
+ }
132
+
133
+ /* ============================================
134
+ CHOSEN — the tap acknowledgment
135
+ The picked chip presses in and springs back
136
+ (the spring's overshoot is the tiny bounce)
137
+ while its siblings dim, so the choice pops
138
+ for the beat before the host acts on it.
139
+ ============================================ */
140
+
141
+ .ds-prompt-suggestions__item {
142
+ transition: opacity var(--motion-duration-base) var(--motion-ease-standard);
143
+ }
144
+
145
+ .ds-prompt-suggestions--choosing
146
+ .ds-prompt-suggestions__item:not(.ds-prompt-suggestions__item--chosen) {
147
+ /* The system's dimmed convention, shared with disabled states. */
148
+ opacity: 0.4;
149
+ }
150
+
151
+ .ds-prompt-suggestions__item--chosen .ds-chip {
152
+ animation: ds-prompt-suggestions-choose var(--motion-duration-slow) var(--motion-ease-spring);
153
+ }
154
+
155
+ @keyframes ds-prompt-suggestions-choose {
156
+ 0% {
157
+ transform: scale(1);
158
+ }
159
+
160
+ 35% {
161
+ transform: scale(0.94);
162
+ }
163
+
164
+ /* The spring overshoots past 1 on the way back, then settles. */
165
+ 100% {
166
+ transform: scale(1);
167
+ }
168
+ }
169
+
170
+ /* ============================================
171
+ PENDING — placeholder pills
172
+ Each placeholder is the chip's real shell —
173
+ its surface, border, padding and height for
174
+ the row's size — holding a text-height shimmer
175
+ bar where the label is "generating" (Skeleton's
176
+ sweep on ThreadPanel's 0.75em bar geometry).
177
+ The shell is what keeps the row's height and
178
+ rhythm exactly what the loaded chips will be.
179
+ ============================================ */
180
+
181
+ .ds-prompt-suggestions__skeleton {
182
+ display: flex;
183
+ align-items: center;
184
+ box-sizing: border-box;
185
+ border-radius: var(--radius-pill);
186
+ /* Chip's own surface, so only the label reads as loading. */
187
+ background-color: var(--color-bg-page-primary);
188
+ border: var(--border-025) solid var(--color-bg-container-border);
189
+
190
+ /* Chip's default (32px) geometry — the row's compact size. The height is
191
+ the chip's line box plus its padding and border, stated rather than
192
+ grown from text, since the shell holds a bar instead of a label. */
193
+ padding: var(--padding-150) var(--padding-300);
194
+ height: calc(
195
+ var(--font-paragraph-sm-emphasis-line-height) + 2 * var(--padding-150) + 2 * var(--border-025)
196
+ );
197
+ font-size: var(--font-paragraph-sm-emphasis-size);
198
+
199
+ /* Widths are em-cycled below so the set reads as questions of different
200
+ lengths rather than three identical pills — a drawing choice scaled by
201
+ the font, like ThreadPanel's 0.75em shimmer bar, not a spacing token. */
202
+ width: 13em;
203
+ max-width: 100%;
204
+ }
205
+
206
+ /* Chip's large geometry — the row's default size. */
207
+ .ds-prompt-suggestions--default .ds-prompt-suggestions__skeleton {
208
+ padding: var(--padding-200) var(--padding-500);
209
+ height: calc(
210
+ var(--font-paragraph-emphasis-line-height) + 2 * var(--padding-200) + 2 * var(--border-025)
211
+ );
212
+ font-size: var(--font-paragraph-emphasis-size);
213
+ }
214
+
215
+ .ds-prompt-suggestions__item:nth-child(3n + 2) .ds-prompt-suggestions__skeleton {
216
+ width: 16em;
217
+ }
218
+
219
+ .ds-prompt-suggestions__item:nth-child(3n) .ds-prompt-suggestions__skeleton {
220
+ width: 11em;
221
+ }
222
+
223
+ /* The generating "label": a text-height bar filling the shell's content
224
+ box, swept by the shimmer. */
225
+ .ds-prompt-suggestions__skeleton-bar {
226
+ display: block;
227
+ width: 100%;
228
+ height: 0.75em;
229
+ border-radius: var(--radius-pill);
230
+ background-color: var(--color-bg-container-secondary);
231
+ position: relative;
232
+ overflow: hidden;
233
+ /* The trailing end dissolves, as ThreadPanel's naming bar does under its
234
+ title mask — a label mid-write, not a finished block.
235
+ ds-allow(color): mask alpha keywords (black/transparent), not palette colours */
236
+ -webkit-mask-image: linear-gradient(to right, black calc(100% - var(--gap-1000)), transparent);
237
+ mask-image: linear-gradient(to right, black calc(100% - var(--gap-1000)), transparent);
238
+ }
239
+
240
+ .ds-prompt-suggestions__skeleton-bar::after {
241
+ content: '';
242
+ position: absolute;
243
+ inset: 0;
244
+ background: linear-gradient(
245
+ 90deg,
246
+ transparent 0%,
247
+ var(--color-bg-container-primary) 50%,
248
+ transparent 100%
249
+ );
250
+ /* ds-allow(motion): Skeleton's shimmer — the sweep needs a symmetric
251
+ in-out curve no --motion-ease-* token provides; the duration is
252
+ tokenized. */
253
+ animation: ds-prompt-suggestions-shimmer var(--motion-duration-loop-shimmer)
254
+ ease-in-out infinite;
255
+ }
256
+
257
+ @keyframes ds-prompt-suggestions-shimmer {
258
+ 0% {
259
+ transform: translateX(-100%);
260
+ }
261
+ 100% {
262
+ transform: translateX(100%);
263
+ }
264
+ }
@@ -0,0 +1,68 @@
1
+ import { default as React } from 'react';
2
+ /** One tappable suggestion in the row. */
3
+ export interface PromptSuggestion {
4
+ /** Stable identifier passed to `onValueChange`. */
5
+ id: string;
6
+ /** The suggestion text shown in the chip. */
7
+ label: string;
8
+ /** Optional leading icon — Material Symbol name (string) or custom element (ReactNode). */
9
+ icon?: string | React.ReactNode;
10
+ }
11
+ /** Props owned by PromptSuggestions itself — everything else falls through to the root element. */
12
+ type PromptSuggestionsOwnProps = {
13
+ /** The suggestions to render, in order. */
14
+ suggestions: PromptSuggestion[];
15
+ /** Fires with the tapped suggestion's `id`, one acknowledgment beat after the tap — the chosen chip pulses and its siblings dim first, so the choice is seen even when selection unmounts the row. */
16
+ onValueChange?: (id: string) => void;
17
+ /**
18
+ * How the suggestions are arranged. `scroll` is one line that scrolls
19
+ * sideways behind edge fades. `wrap` runs them across as many lines as
20
+ * they need, for empty-state hero placements. `stack` gives each one its
21
+ * own line, for narrow columns where a wrapped row breaks unevenly and
22
+ * the ragged right edge reads as an accident.
23
+ */
24
+ layout?: 'scroll' | 'wrap' | 'stack';
25
+ /**
26
+ * Legacy alias for `layout="wrap"`; ignored when `layout` is set.
27
+ * @deprecated Use `layout` instead, which also covers `stack`.
28
+ */
29
+ wrap?: boolean;
30
+ /**
31
+ * The suggestions are still being generated: shimmer placeholder pills
32
+ * hold their place, matching the current size's chip geometry so nothing
33
+ * shifts when the real chips land. While pending the given `suggestions`
34
+ * are not rendered, the placeholders are hidden from assistive technology,
35
+ * and the row reports `aria-busy` instead.
36
+ */
37
+ pending?: boolean;
38
+ /** How many placeholder pills the pending state holds space with. */
39
+ pendingCount?: number;
40
+ /**
41
+ * Play the staggered pop-in when the items mount. On by default; a host
42
+ * re-showing a set that has already landed (reopening a panel over the
43
+ * same suggestions) turns it off, so the chips stand where they were
44
+ * instead of arriving twice.
45
+ */
46
+ entrance?: boolean;
47
+ /**
48
+ * Row scale. `default` sits at the body-paragraph scale, so a suggestion
49
+ * reads at the same weight as the messages it will become; `compact` is
50
+ * the quieter row for placements alongside a live conversation.
51
+ */
52
+ size?: 'default' | 'compact';
53
+ /** Accessible name for the list. */
54
+ ariaLabel?: string;
55
+ /** Additional CSS classes */
56
+ className?: string;
57
+ };
58
+ export interface PromptSuggestionsProps extends PromptSuggestionsOwnProps, Omit<React.ComponentPropsWithoutRef<'div'>, keyof PromptSuggestionsOwnProps> {
59
+ }
60
+ /**
61
+ * PromptSuggestions is a horizontal row of tappable prompts for starting or
62
+ * steering a conversation. Each suggestion renders as a clickable Chip, so
63
+ * one component owns the pill look; the row scrolls horizontally with pure
64
+ * CSS edge fades — no scroll listeners, no measurement — or wraps for
65
+ * empty-state hero placements.
66
+ */
67
+ export declare const PromptSuggestions: React.ForwardRefExoticComponent<PromptSuggestionsProps & React.RefAttributes<HTMLDivElement>>;
68
+ export {};
@@ -0,0 +1,87 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import React from "react";
4
+ import { Chip } from "../Chip/Chip.js";
5
+ import { MOTION_EXIT_SYNC_MS } from "../../tokens/motion.js";
6
+ import "./PromptSuggestions.css";
7
+ const PromptSuggestions = React.forwardRef(
8
+ ({
9
+ suggestions,
10
+ onValueChange,
11
+ layout,
12
+ wrap = false,
13
+ pending = false,
14
+ pendingCount = 3,
15
+ entrance = true,
16
+ size = "default",
17
+ ariaLabel = "Suggested prompts",
18
+ className = "",
19
+ ...rest
20
+ }, ref) => {
21
+ const baseClass = "ds-prompt-suggestions";
22
+ const [chosenId, setChosenId] = React.useState(null);
23
+ const chooseTimer = React.useRef(null);
24
+ React.useEffect(
25
+ () => () => {
26
+ if (chooseTimer.current) window.clearTimeout(chooseTimer.current);
27
+ },
28
+ []
29
+ );
30
+ const choose = (id) => {
31
+ if (chosenId || chooseTimer.current) return;
32
+ setChosenId(id);
33
+ chooseTimer.current = window.setTimeout(() => {
34
+ chooseTimer.current = null;
35
+ onValueChange?.(id);
36
+ }, MOTION_EXIT_SYNC_MS);
37
+ };
38
+ const arrangement = layout ?? (wrap ? "wrap" : "scroll");
39
+ const chipSize = size === "compact" ? "default" : "large";
40
+ const classes = [
41
+ baseClass,
42
+ `${baseClass}--${size}`,
43
+ `${baseClass}--${arrangement}`,
44
+ chosenId ? `${baseClass}--choosing` : "",
45
+ entrance ? "" : `${baseClass}--still`,
46
+ className
47
+ ].filter(Boolean).join(" ");
48
+ return /* @__PURE__ */ jsx(
49
+ "div",
50
+ {
51
+ ...rest,
52
+ ref,
53
+ className: classes,
54
+ role: "list",
55
+ "aria-label": ariaLabel,
56
+ "aria-busy": pending || void 0,
57
+ "data-pending": pending || void 0,
58
+ children: pending ? Array.from({ length: pendingCount }, (_, index) => /* @__PURE__ */ jsx("div", { "aria-hidden": "true", className: `${baseClass}__item`, children: /* @__PURE__ */ jsx("span", { className: `${baseClass}__skeleton`, children: /* @__PURE__ */ jsx("span", { className: `${baseClass}__skeleton-bar` }) }) }, index)) : suggestions.map((suggestion) => /* @__PURE__ */ jsx(
59
+ "div",
60
+ {
61
+ role: "listitem",
62
+ className: `${baseClass}__item${chosenId === suggestion.id ? ` ${baseClass}__item--chosen` : ""}`,
63
+ onAnimationEnd: (event) => {
64
+ if (event.animationName === "ds-prompt-suggestions-choose") {
65
+ setChosenId(null);
66
+ }
67
+ },
68
+ children: /* @__PURE__ */ jsx(
69
+ Chip,
70
+ {
71
+ label: suggestion.label,
72
+ icon: suggestion.icon,
73
+ size: chipSize,
74
+ onClick: () => choose(suggestion.id)
75
+ }
76
+ )
77
+ },
78
+ suggestion.id
79
+ ))
80
+ }
81
+ );
82
+ }
83
+ );
84
+ PromptSuggestions.displayName = "PromptSuggestions";
85
+ export {
86
+ PromptSuggestions
87
+ };
@@ -0,0 +1,269 @@
1
+ /* ============================================
2
+ PROSE COMPONENT
3
+ Token-styled typography for rendered markdown
4
+ ============================================ */
5
+
6
+ .ds-prose {
7
+ font-family: var(--font-paragraph-family);
8
+ font-size: var(--font-paragraph-size);
9
+ font-weight: var(--font-paragraph-weight);
10
+ line-height: var(--font-paragraph-line-height);
11
+ letter-spacing: var(--font-paragraph-letter-spacing);
12
+ color: var(--color-text-primary);
13
+ }
14
+
15
+ /* Block rhythm — every block owns its bottom margin; the edges are
16
+ trimmed so Prose slots into bubbles and cards cleanly */
17
+ .ds-prose p,
18
+ .ds-prose ul,
19
+ .ds-prose ol,
20
+ .ds-prose pre,
21
+ .ds-prose blockquote,
22
+ .ds-prose table,
23
+ .ds-prose hr,
24
+ .ds-prose img {
25
+ margin: 0;
26
+ margin-block-end: var(--gap-400);
27
+ }
28
+
29
+ .ds-prose > :first-child {
30
+ margin-block-start: 0;
31
+ }
32
+
33
+ .ds-prose > :last-child {
34
+ margin-block-end: 0;
35
+ }
36
+
37
+ /* ============================================
38
+ PARAGRAPHS
39
+ ============================================ */
40
+
41
+ .ds-prose p {
42
+ font-family: var(--font-paragraph-family);
43
+ font-size: var(--font-paragraph-size);
44
+ font-weight: var(--font-paragraph-weight);
45
+ line-height: var(--font-paragraph-line-height);
46
+ letter-spacing: var(--font-paragraph-letter-spacing);
47
+ color: var(--color-text-primary);
48
+ }
49
+
50
+ /* ============================================
51
+ HEADINGS
52
+ Hierarchy carried by the token scale; the
53
+ weight contrast is encoded in the tokens
54
+ ============================================ */
55
+
56
+ .ds-prose h1,
57
+ .ds-prose h2,
58
+ .ds-prose h3,
59
+ .ds-prose h4 {
60
+ margin: 0;
61
+ margin-block-start: var(--gap-500);
62
+ margin-block-end: var(--gap-300);
63
+ color: var(--color-text-primary);
64
+ }
65
+
66
+ .ds-prose h1 {
67
+ font-family: var(--font-heading-1-family);
68
+ font-size: var(--font-heading-1-size);
69
+ font-weight: var(--font-heading-1-weight);
70
+ line-height: var(--font-heading-1-line-height);
71
+ letter-spacing: var(--font-heading-1-letter-spacing);
72
+ }
73
+
74
+ .ds-prose h2 {
75
+ font-family: var(--font-heading-2-family);
76
+ font-size: var(--font-heading-2-size);
77
+ font-weight: var(--font-heading-2-weight);
78
+ line-height: var(--font-heading-2-line-height);
79
+ letter-spacing: var(--font-heading-2-letter-spacing);
80
+ }
81
+
82
+ .ds-prose h3 {
83
+ font-family: var(--font-heading-3-family);
84
+ font-size: var(--font-heading-3-size);
85
+ font-weight: var(--font-heading-3-weight);
86
+ line-height: var(--font-heading-3-line-height);
87
+ letter-spacing: var(--font-heading-3-letter-spacing);
88
+ }
89
+
90
+ .ds-prose h4 {
91
+ font-family: var(--font-title-body-family);
92
+ font-size: var(--font-title-body-size);
93
+ font-weight: var(--font-title-body-weight);
94
+ line-height: var(--font-title-body-line-height);
95
+ letter-spacing: var(--font-title-body-letter-spacing);
96
+ }
97
+
98
+ /* ============================================
99
+ LISTS
100
+ ============================================ */
101
+
102
+ .ds-prose ul,
103
+ .ds-prose ol {
104
+ padding-inline-start: var(--padding-400);
105
+ }
106
+
107
+ .ds-prose li {
108
+ font-family: var(--font-paragraph-family);
109
+ font-size: var(--font-paragraph-size);
110
+ font-weight: var(--font-paragraph-weight);
111
+ line-height: var(--font-paragraph-line-height);
112
+ letter-spacing: var(--font-paragraph-letter-spacing);
113
+ color: var(--color-text-primary);
114
+ }
115
+
116
+ .ds-prose li + li {
117
+ margin-block-start: var(--gap-100);
118
+ }
119
+
120
+ /* Nested lists sit tight under their parent item */
121
+ .ds-prose li > ul,
122
+ .ds-prose li > ol {
123
+ margin-block-start: var(--gap-100);
124
+ margin-block-end: 0;
125
+ }
126
+
127
+ /* ============================================
128
+ INLINE ELEMENTS
129
+ ============================================ */
130
+
131
+ .ds-prose a {
132
+ color: var(--color-action-primary-text-tertiary);
133
+ text-decoration: underline;
134
+ }
135
+
136
+ .ds-prose strong {
137
+ font-weight: var(--font-paragraph-emphasis-weight);
138
+ }
139
+
140
+ .ds-prose em {
141
+ font-style: italic;
142
+ }
143
+
144
+ .ds-prose code {
145
+ font-family: var(--font-family-code);
146
+ font-size: var(--font-paragraph-sm-size);
147
+ background-color: var(--color-bg-container-secondary);
148
+ border-radius: var(--radius-050);
149
+ padding-inline: var(--padding-050);
150
+ }
151
+
152
+ /* ============================================
153
+ CODE BLOCKS
154
+ The plain fallback — CodeBlock is the richer
155
+ choice for standalone code
156
+ ============================================ */
157
+
158
+ .ds-prose pre {
159
+ font-family: var(--font-family-code);
160
+ font-size: var(--font-paragraph-sm-size);
161
+ line-height: var(--font-paragraph-sm-line-height);
162
+ background-color: var(--color-bg-container-primary);
163
+ border: var(--border-025) solid var(--color-bg-container-border);
164
+ border-radius: var(--radius-300);
165
+ padding: var(--padding-400);
166
+ overflow-x: auto;
167
+ }
168
+
169
+ .ds-prose pre code {
170
+ background-color: transparent;
171
+ border-radius: 0;
172
+ padding-inline: 0;
173
+ font-size: inherit;
174
+ }
175
+
176
+ /* ============================================
177
+ BLOCKQUOTES
178
+ Mirrors Reasoning's trace rail
179
+ ============================================ */
180
+
181
+ .ds-prose blockquote {
182
+ border-inline-start: var(--border-050) solid var(--color-divider);
183
+ padding-inline-start: var(--padding-400);
184
+ color: var(--color-text-secondary);
185
+ }
186
+
187
+ .ds-prose blockquote p {
188
+ color: var(--color-text-secondary);
189
+ }
190
+
191
+ /* ============================================
192
+ TABLES
193
+ ============================================ */
194
+
195
+ /* The table is its own scroll container. Prose styles markup it does not
196
+ render, so it cannot wrap the table in a scrolling div — `display: block`
197
+ makes the table element itself the scroller. The cost is deliberate: the
198
+ table sizes to its content instead of filling the container, because the
199
+ inner anonymous table box a block table generates cannot be stretched.
200
+ A clipped or shattered table is the worse failure. */
201
+ .ds-prose table {
202
+ display: block;
203
+ width: max-content;
204
+ max-width: 100%;
205
+ overflow-x: auto;
206
+ border-collapse: collapse;
207
+ }
208
+
209
+ .ds-prose th {
210
+ font-family: var(--font-title-body-family);
211
+ font-size: var(--font-paragraph-sm-size);
212
+ font-weight: var(--font-title-body-weight);
213
+ line-height: var(--font-paragraph-sm-line-height);
214
+ letter-spacing: var(--font-title-body-letter-spacing);
215
+ background-color: var(--color-bg-container-secondary);
216
+ text-align: start;
217
+ }
218
+
219
+ /* Cells never break words, whatever the surrounding context does. An
220
+ ancestor that sets `overflow-wrap: anywhere` (ChatMessage does, so a long
221
+ URL cannot widen a bubble) otherwise inherits in and collapses every
222
+ column's minimum width to one character, which lets auto table layout
223
+ squeeze a heading into "Co / m / pa / ny" rather than let the table reach
224
+ its natural width. Holding the floor is what gives the scroll above
225
+ something to scroll. */
226
+ .ds-prose th,
227
+ .ds-prose td {
228
+ padding: var(--padding-150) var(--padding-300);
229
+ border-block-end: var(--border-025) solid var(--color-divider);
230
+ overflow-wrap: normal;
231
+ }
232
+
233
+ /* ============================================
234
+ RULES AND MEDIA
235
+ ============================================ */
236
+
237
+ .ds-prose hr {
238
+ border: none;
239
+ border-block-start: var(--border-025) solid var(--color-divider);
240
+ }
241
+
242
+ .ds-prose img {
243
+ max-width: 100%;
244
+ border-radius: var(--radius-300);
245
+ }
246
+
247
+ /* ============================================
248
+ SMALL SIZE
249
+ Dense chat contexts — body scale drops to the
250
+ small paragraph tokens; headings keep their tiers
251
+ ============================================ */
252
+
253
+ .ds-prose--sm,
254
+ .ds-prose--sm p,
255
+ .ds-prose--sm li {
256
+ font-family: var(--font-paragraph-sm-family);
257
+ font-size: var(--font-paragraph-sm-size);
258
+ font-weight: var(--font-paragraph-sm-weight);
259
+ line-height: var(--font-paragraph-sm-line-height);
260
+ letter-spacing: var(--font-paragraph-sm-letter-spacing);
261
+ }
262
+
263
+ .ds-prose--sm strong {
264
+ font-weight: var(--font-paragraph-sm-emphasis-weight);
265
+ }
266
+
267
+ .ds-prose--sm code {
268
+ font-size: var(--font-paragraph-sm-size);
269
+ }