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,44 @@
1
+ import { default as React } from 'react';
2
+ /** Props owned by NumberInput itself — everything else falls through to the <input>. */
3
+ type NumberInputOwnProps = {
4
+ /** Input label text */
5
+ label?: string;
6
+ /** Current value (controlled). Pass an empty string for an empty field */
7
+ value?: number | '';
8
+ /** Initial value (uncontrolled) */
9
+ defaultValue?: number;
10
+ /** Minimum allowed value — steppers stop here, and typed values clamp to it on blur */
11
+ min?: number;
12
+ /** Maximum allowed value — steppers stop here, and typed values clamp to it on blur */
13
+ max?: number;
14
+ /** Amount each stepper click (or arrow key) changes the value by */
15
+ step?: number;
16
+ /** Component size (not the native character-width `size` attribute) */
17
+ size?: 'default' | 'compact';
18
+ /** Error state — shows error styling and message */
19
+ error?: boolean;
20
+ /** Helper or error message displayed below the input */
21
+ helperText?: string;
22
+ /**
23
+ * Convenience callback receiving the numeric value directly — `null` when
24
+ * the field is empty or unparseable. Fires on typing alongside `onChange`
25
+ * (which keeps the standard React event signature so form libraries work
26
+ * unmodified) and also on stepper clicks, where no native change event exists.
27
+ */
28
+ onValueChange?: (value: number | null) => void;
29
+ /** Additional CSS classes — applied to the wrapper, not the <input> */
30
+ className?: string;
31
+ };
32
+ export interface NumberInputProps extends NumberInputOwnProps, Omit<React.ComponentPropsWithoutRef<'input'>, keyof NumberInputOwnProps | 'type'> {
33
+ }
34
+ /**
35
+ * Numeric field with increment and decrement steppers and min/max clamping.
36
+ *
37
+ * The native spinners are hidden and replaced by stepper buttons that clamp to
38
+ * `min`/`max` and disable at the bounds; a typed out-of-range value clamps into
39
+ * range on blur. Forwards a ref to the underlying `<input>` and spreads
40
+ * unrecognised props onto it, so `inputMode`, `data-*` and form-library
41
+ * registration all work.
42
+ */
43
+ export declare const NumberInput: React.ForwardRefExoticComponent<NumberInputProps & React.RefAttributes<HTMLInputElement>>;
44
+ export {};
@@ -0,0 +1,147 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import React, { useState } from "react";
4
+ import { Field } from "../Field/Field.js";
5
+ import "./NumberInput.css";
6
+ import "../../fonts/material-symbols.css";
7
+ const parseValue = (raw) => {
8
+ if (raw === "" || raw === void 0) return null;
9
+ const parsed = typeof raw === "number" ? raw : parseFloat(raw);
10
+ return Number.isNaN(parsed) ? null : parsed;
11
+ };
12
+ const decimalsOf = (value) => {
13
+ const text = String(value);
14
+ const dot = text.indexOf(".");
15
+ return dot === -1 ? 0 : text.length - dot - 1;
16
+ };
17
+ const NumberInput = React.forwardRef(
18
+ ({
19
+ label,
20
+ value,
21
+ defaultValue,
22
+ min,
23
+ max,
24
+ step = 1,
25
+ size = "default",
26
+ disabled = false,
27
+ required = false,
28
+ error = false,
29
+ helperText,
30
+ onChange,
31
+ onValueChange,
32
+ onBlur,
33
+ className = "",
34
+ name,
35
+ id,
36
+ ...rest
37
+ }, ref) => {
38
+ const baseClass = "ds-numberinput";
39
+ const isControlled = value !== void 0;
40
+ const [internalValue, setInternalValue] = useState(
41
+ defaultValue !== void 0 ? String(defaultValue) : ""
42
+ );
43
+ const currentValue = isControlled ? value : internalValue;
44
+ const currentNumber = parseValue(currentValue);
45
+ const classes = [
46
+ baseClass,
47
+ size === "compact" ? `${baseClass}--compact` : "",
48
+ error ? `${baseClass}--error` : "",
49
+ disabled ? `${baseClass}--disabled` : "",
50
+ className
51
+ ].filter(Boolean).join(" ");
52
+ const clamp = (candidate) => {
53
+ if (min !== void 0 && candidate < min) return min;
54
+ if (max !== void 0 && candidate > max) return max;
55
+ return candidate;
56
+ };
57
+ const commit = (next) => {
58
+ if (!isControlled) setInternalValue(String(next));
59
+ onValueChange?.(next);
60
+ };
61
+ const stepBy = (direction) => {
62
+ const base = currentNumber ?? 0;
63
+ const precision = Math.max(decimalsOf(base), decimalsOf(step));
64
+ commit(clamp(Number((base + direction * step).toFixed(precision))));
65
+ };
66
+ const handleChange = (e) => {
67
+ if (!isControlled) setInternalValue(e.target.value);
68
+ onChange?.(e);
69
+ onValueChange?.(parseValue(e.target.value));
70
+ };
71
+ const handleBlur = (e) => {
72
+ const typed = parseValue(e.target.value);
73
+ if (typed !== null) {
74
+ const clamped = clamp(typed);
75
+ if (clamped !== typed) commit(clamped);
76
+ }
77
+ onBlur?.(e);
78
+ };
79
+ const atMin = min !== void 0 && currentNumber !== null && currentNumber <= min;
80
+ const atMax = max !== void 0 && currentNumber !== null && currentNumber >= max;
81
+ const inputId = id || name || label?.toLowerCase().replace(/\s+/g, "-");
82
+ const describedBy = helperText ? `${inputId}-helper` : rest["aria-describedby"];
83
+ return /* @__PURE__ */ jsx(
84
+ Field,
85
+ {
86
+ className: classes,
87
+ label,
88
+ helperText,
89
+ error,
90
+ required,
91
+ disabled,
92
+ size,
93
+ id: inputId,
94
+ children: /* @__PURE__ */ jsxs("div", { className: `${baseClass}__shell`, children: [
95
+ /* @__PURE__ */ jsx(
96
+ "button",
97
+ {
98
+ type: "button",
99
+ className: `${baseClass}__stepper`,
100
+ "aria-label": "Decrease value",
101
+ disabled: disabled || atMin,
102
+ onClick: () => stepBy(-1),
103
+ children: /* @__PURE__ */ jsx("span", { className: "material-symbols-rounded", "aria-hidden": "true", children: "remove" })
104
+ }
105
+ ),
106
+ /* @__PURE__ */ jsx(
107
+ "input",
108
+ {
109
+ ...rest,
110
+ ref,
111
+ className: `${baseClass}__input`,
112
+ type: "number",
113
+ id: inputId,
114
+ name,
115
+ value: currentValue,
116
+ min,
117
+ max,
118
+ step,
119
+ disabled,
120
+ required,
121
+ "aria-label": rest["aria-label"] || label,
122
+ "aria-invalid": error,
123
+ "aria-describedby": describedBy,
124
+ onChange: handleChange,
125
+ onBlur: handleBlur
126
+ }
127
+ ),
128
+ /* @__PURE__ */ jsx(
129
+ "button",
130
+ {
131
+ type: "button",
132
+ className: `${baseClass}__stepper`,
133
+ "aria-label": "Increase value",
134
+ disabled: disabled || atMax,
135
+ onClick: () => stepBy(1),
136
+ children: /* @__PURE__ */ jsx("span", { className: "material-symbols-rounded", "aria-hidden": "true", children: "add" })
137
+ }
138
+ )
139
+ ] })
140
+ }
141
+ );
142
+ }
143
+ );
144
+ NumberInput.displayName = "NumberInput";
145
+ export {
146
+ NumberInput
147
+ };
@@ -0,0 +1,126 @@
1
+ /* ============================================
2
+ PAGINATION COMPONENT
3
+ Page navigation for long datasets
4
+ ============================================ */
5
+
6
+ .ds-pagination {
7
+ display: inline-flex;
8
+ align-items: center;
9
+ gap: var(--gap-100); /* 4px */
10
+ }
11
+
12
+ .ds-pagination__list {
13
+ display: inline-flex;
14
+ align-items: center;
15
+ gap: var(--gap-100); /* 4px */
16
+ list-style: none;
17
+ margin: 0;
18
+ padding: 0;
19
+ }
20
+
21
+ /* ============================================
22
+ PAGE BUTTONS
23
+ Pill-shaped, matching CircularButton sizing
24
+ ============================================ */
25
+
26
+ .ds-pagination__page,
27
+ .ds-pagination__arrow {
28
+ display: inline-flex;
29
+ align-items: center;
30
+ justify-content: center;
31
+ width: 40px;
32
+ height: 40px;
33
+ padding: 0;
34
+ border: none;
35
+ border-radius: var(--radius-pill); /* pill */
36
+ background-color: transparent;
37
+ cursor: pointer;
38
+ transition: background-color var(--motion-duration-base) var(--motion-ease-standard), color var(--motion-duration-base) var(--motion-ease-standard);
39
+ font-family: var(--font-paragraph-emphasis-family);
40
+ font-size: var(--font-paragraph-emphasis-size);
41
+ font-weight: var(--font-paragraph-emphasis-weight);
42
+ line-height: var(--font-paragraph-emphasis-line-height);
43
+ letter-spacing: var(--font-paragraph-emphasis-letter-spacing);
44
+ color: var(--color-text-secondary);
45
+ }
46
+
47
+ .ds-pagination__page:hover:not(:disabled):not(.ds-pagination__page--current),
48
+ .ds-pagination__arrow:hover:not(:disabled) {
49
+ background-color: var(--color-action-passive-bg-hover);
50
+ }
51
+
52
+ .ds-pagination__page:focus-visible,
53
+ .ds-pagination__arrow:focus-visible {
54
+ outline: 2px solid var(--color-action-primary-bg);
55
+ outline-offset: 2px;
56
+ }
57
+
58
+ /* ============================================
59
+ CURRENT PAGE
60
+ Same active treatment as SegmentedControl
61
+ ============================================ */
62
+
63
+ .ds-pagination__page--current {
64
+ background-color: var(--color-action-primary-bg);
65
+ color: var(--color-action-primary-text);
66
+ }
67
+
68
+ .ds-pagination__page--current:hover {
69
+ background-color: var(--color-action-primary-bg-hover);
70
+ }
71
+
72
+ /* ============================================
73
+ ARROWS
74
+ ============================================ */
75
+
76
+ .ds-pagination__icon {
77
+ --icon-size: var(--icon-size-600);
78
+ line-height: 1;
79
+ color: var(--color-icon-primary);
80
+ }
81
+
82
+ .ds-pagination__arrow:disabled {
83
+ opacity: 0.4;
84
+ cursor: not-allowed;
85
+ }
86
+
87
+ /* ============================================
88
+ ELLIPSIS
89
+ ============================================ */
90
+
91
+ .ds-pagination__ellipsis {
92
+ display: inline-flex;
93
+ align-items: center;
94
+ justify-content: center;
95
+ width: 40px;
96
+ height: 40px;
97
+ font-family: var(--font-paragraph-family);
98
+ font-size: var(--font-paragraph-size);
99
+ color: var(--color-text-tertiary);
100
+ user-select: none;
101
+ }
102
+
103
+ /* ============================================
104
+ COMPACT
105
+ Prev/next arrows with a page readout
106
+ ============================================ */
107
+
108
+ .ds-pagination--compact .ds-pagination__arrow {
109
+ width: 32px;
110
+ height: 32px;
111
+ }
112
+
113
+ .ds-pagination--compact .ds-pagination__icon {
114
+ --icon-size: var(--icon-size-500);
115
+ }
116
+
117
+ .ds-pagination__readout {
118
+ padding: 0 var(--padding-200); /* 8px */
119
+ font-family: var(--font-paragraph-sm-family);
120
+ font-size: var(--font-paragraph-sm-size);
121
+ font-weight: var(--font-paragraph-sm-weight);
122
+ line-height: var(--font-paragraph-sm-line-height);
123
+ letter-spacing: var(--font-paragraph-sm-letter-spacing);
124
+ color: var(--color-text-secondary);
125
+ white-space: nowrap;
126
+ }
@@ -0,0 +1,22 @@
1
+ export interface PaginationProps {
2
+ /** Current page (1-based) */
3
+ page: number;
4
+ /** Total number of pages */
5
+ pageCount: number;
6
+ /** Callback with the requested page */
7
+ onPageChange: (page: number) => void;
8
+ /** Pages shown on each side of the current page */
9
+ siblingCount?: number;
10
+ /** Component size — compact swaps the numbers for a "Page X of Y" readout */
11
+ size?: 'default' | 'compact';
12
+ /** Accessible label for the nav landmark */
13
+ ariaLabel?: string;
14
+ /** Additional CSS classes */
15
+ className?: string;
16
+ }
17
+ /**
18
+ * Pagination component — page navigation for long datasets.
19
+ * Numbered pages with ellipses for large ranges, or a compact
20
+ * prev/next readout. Pairs with Table.
21
+ */
22
+ export declare const Pagination: ({ page, pageCount, onPageChange, siblingCount, size, ariaLabel, className, }: PaginationProps) => import("react").JSX.Element;
@@ -0,0 +1,84 @@
1
+ "use client";
2
+ import { jsxs, jsx } from "react/jsx-runtime";
3
+ import "./Pagination.css";
4
+ import "../../fonts/material-symbols.css";
5
+ const range = (start, end) => Array.from({ length: end - start + 1 }, (_, i) => start + i);
6
+ const getPageItems = (page, pageCount, siblingCount) => {
7
+ const totalNumbers = siblingCount * 2 + 5;
8
+ if (pageCount <= totalNumbers) {
9
+ return range(1, pageCount);
10
+ }
11
+ const leftSibling = Math.max(page - siblingCount, 1);
12
+ const rightSibling = Math.min(page + siblingCount, pageCount);
13
+ const showLeftEllipsis = leftSibling > 2;
14
+ const showRightEllipsis = rightSibling < pageCount - 1;
15
+ if (!showLeftEllipsis && showRightEllipsis) {
16
+ return [...range(1, 3 + 2 * siblingCount), "end-ellipsis", pageCount];
17
+ }
18
+ if (showLeftEllipsis && !showRightEllipsis) {
19
+ return [1, "start-ellipsis", ...range(pageCount - (2 + 2 * siblingCount), pageCount)];
20
+ }
21
+ return [1, "start-ellipsis", ...range(leftSibling, rightSibling), "end-ellipsis", pageCount];
22
+ };
23
+ const Pagination = ({
24
+ page,
25
+ pageCount,
26
+ onPageChange,
27
+ siblingCount = 1,
28
+ size = "default",
29
+ ariaLabel = "Pagination",
30
+ className = ""
31
+ }) => {
32
+ const baseClass = "ds-pagination";
33
+ const compact = size === "compact";
34
+ const clampedPage = Math.min(Math.max(page, 1), Math.max(pageCount, 1));
35
+ const isFirst = clampedPage <= 1;
36
+ const isLast = clampedPage >= pageCount;
37
+ const goTo = (target) => {
38
+ const next = Math.min(Math.max(target, 1), pageCount);
39
+ if (next !== clampedPage) onPageChange(next);
40
+ };
41
+ const classes = [baseClass, compact ? `${baseClass}--compact` : "", className].filter(Boolean).join(" ");
42
+ const arrowButton = (direction) => {
43
+ const disabled = direction === "previous" ? isFirst : isLast;
44
+ return /* @__PURE__ */ jsx(
45
+ "button",
46
+ {
47
+ type: "button",
48
+ className: `${baseClass}__arrow`,
49
+ onClick: () => goTo(direction === "previous" ? clampedPage - 1 : clampedPage + 1),
50
+ disabled,
51
+ "aria-label": direction === "previous" ? "Previous page" : "Next page",
52
+ children: /* @__PURE__ */ jsx("span", { className: `${baseClass}__icon material-symbols-rounded`, "aria-hidden": "true", children: direction === "previous" ? "chevron_left" : "chevron_right" })
53
+ }
54
+ );
55
+ };
56
+ return /* @__PURE__ */ jsxs("nav", { className: classes, "aria-label": ariaLabel, children: [
57
+ arrowButton("previous"),
58
+ compact ? /* @__PURE__ */ jsxs("span", { className: `${baseClass}__readout`, "aria-live": "polite", children: [
59
+ "Page ",
60
+ clampedPage,
61
+ " of ",
62
+ pageCount
63
+ ] }) : /* @__PURE__ */ jsx("ul", { className: `${baseClass}__list`, children: getPageItems(clampedPage, pageCount, siblingCount).map(
64
+ (item) => typeof item === "number" ? /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
65
+ "button",
66
+ {
67
+ type: "button",
68
+ className: [
69
+ `${baseClass}__page`,
70
+ item === clampedPage ? `${baseClass}__page--current` : ""
71
+ ].filter(Boolean).join(" "),
72
+ onClick: () => goTo(item),
73
+ "aria-current": item === clampedPage ? "page" : void 0,
74
+ "aria-label": `Page ${item}`,
75
+ children: item
76
+ }
77
+ ) }, item) : /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("span", { className: `${baseClass}__ellipsis`, "aria-hidden": "true", children: "…" }) }, item)
78
+ ) }),
79
+ arrowButton("next")
80
+ ] });
81
+ };
82
+ export {
83
+ Pagination
84
+ };
@@ -0,0 +1,26 @@
1
+ /* ============================================
2
+ PANEL COMPONENT
3
+ The plain dashboard surface
4
+ ============================================ */
5
+
6
+ .ds-panel {
7
+ display: flex;
8
+ flex-direction: column;
9
+ gap: var(--gap-400);
10
+ min-width: 0;
11
+ background-color: var(--color-bg-container-primary);
12
+ border-radius: var(--radius-600);
13
+ padding: var(--padding-500);
14
+ }
15
+
16
+ /* ============================================
17
+ PADDING VARIANTS
18
+ ============================================ */
19
+
20
+ .ds-panel--compact {
21
+ padding: var(--padding-400);
22
+ }
23
+
24
+ .ds-panel--flush {
25
+ padding: 0;
26
+ }
@@ -0,0 +1,22 @@
1
+ import { default as React } from 'react';
2
+ /** Props owned by Panel itself; everything else falls through to the <div>. */
3
+ type PanelOwnProps = {
4
+ /** Interior padding: 'default' uses --padding-500, 'compact' uses --padding-400, 'none' removes it */
5
+ padding?: 'default' | 'compact' | 'none';
6
+ /** Additional CSS classes */
7
+ className?: string;
8
+ /** Panel content */
9
+ children?: React.ReactNode;
10
+ };
11
+ export interface PanelProps extends PanelOwnProps, Omit<React.ComponentPropsWithoutRef<'div'>, keyof PanelOwnProps> {
12
+ }
13
+ /**
14
+ * Panel component: the plain dashboard surface.
15
+ * A rounded container on the primary container background with no border and
16
+ * no shadow: just the surface, ready for whatever a dashboard region holds.
17
+ * Content stacks vertically with a medium gap.
18
+ *
19
+ * Forwards a ref to the `<div>` element and spreads unrecognised props onto it.
20
+ */
21
+ export declare const Panel: React.ForwardRefExoticComponent<PanelProps & React.RefAttributes<HTMLDivElement>>;
22
+ export {};
@@ -0,0 +1,19 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import "./Panel.css";
4
+ const Panel = React.forwardRef(
5
+ ({ padding = "default", className = "", children, ...rest }, ref) => {
6
+ const baseClass = "ds-panel";
7
+ const classes = [
8
+ baseClass,
9
+ padding === "compact" ? `${baseClass}--compact` : "",
10
+ padding === "none" ? `${baseClass}--flush` : "",
11
+ className
12
+ ].filter(Boolean).join(" ");
13
+ return /* @__PURE__ */ jsx("div", { ...rest, ref, className: classes, children });
14
+ }
15
+ );
16
+ Panel.displayName = "Panel";
17
+ export {
18
+ Panel
19
+ };
@@ -0,0 +1,92 @@
1
+ /* ============================================
2
+ PIN INPUT COMPONENT
3
+ Segmented one-time-code input
4
+ ============================================ */
5
+
6
+ /* Base — the Field wrapper carries the root class */
7
+ .ds-pininput {
8
+ display: flex;
9
+ flex-direction: column;
10
+ gap: var(--gap-200); /* 8px */
11
+ }
12
+
13
+ /* ============================================
14
+ CELLS ROW
15
+ ============================================ */
16
+
17
+ .ds-pininput__cells {
18
+ display: flex;
19
+ gap: var(--gap-200); /* 8px */
20
+ }
21
+
22
+ /* ============================================
23
+ CELL
24
+ ============================================ */
25
+
26
+ .ds-pininput__cell {
27
+ /* Fixed control geometry, like the ToggleSwitch track */
28
+ width: 44px;
29
+ height: 52px;
30
+ padding: 0;
31
+ text-align: center;
32
+
33
+ border: var(--border-025) solid var(--color-input-border-primary);
34
+ border-radius: var(--radius-300); /* 12px */
35
+ background-color: var(--color-input-bg-primary);
36
+
37
+ /* Typography */
38
+ font-family: var(--font-paragraph-emphasis-family);
39
+ font-size: var(--font-paragraph-emphasis-size);
40
+ font-weight: var(--font-paragraph-emphasis-weight);
41
+ line-height: var(--font-paragraph-emphasis-line-height);
42
+ letter-spacing: var(--font-paragraph-emphasis-letter-spacing);
43
+ color: var(--color-input-text-primary);
44
+
45
+ /* Transitions */
46
+ transition: border-color var(--motion-duration-base) var(--motion-ease-standard), background-color var(--motion-duration-base) var(--motion-ease-standard);
47
+ outline: none;
48
+ }
49
+
50
+ /* ============================================
51
+ STATES
52
+ ============================================ */
53
+
54
+ .ds-pininput__cell:hover:not(:focus):not(:disabled) {
55
+ border-color: var(--color-input-border-hover);
56
+ }
57
+
58
+ .ds-pininput__cell:focus {
59
+ border-color: var(--color-input-border-selected);
60
+ }
61
+
62
+ .ds-pininput__cell:focus-visible {
63
+ outline: 2px solid var(--color-action-primary-bg);
64
+ outline-offset: 2px;
65
+ }
66
+
67
+ /* ============================================
68
+ ERROR STATE
69
+ ============================================ */
70
+
71
+ .ds-pininput--error .ds-pininput__cell {
72
+ border-color: var(--color-status-error-border);
73
+ }
74
+
75
+ .ds-pininput--error .ds-pininput__cell:focus {
76
+ border-color: var(--color-status-error-border);
77
+ }
78
+
79
+ /* ============================================
80
+ DISABLED STATE
81
+ ============================================ */
82
+
83
+ .ds-pininput--disabled .ds-pininput__cells {
84
+ opacity: 0.4;
85
+ }
86
+
87
+ .ds-pininput--disabled .ds-pininput__cell {
88
+ background-color: var(--color-input-bg-disabled);
89
+ border-color: var(--color-input-border-disabled);
90
+ color: var(--color-input-text-disabled);
91
+ cursor: not-allowed;
92
+ }
@@ -0,0 +1,46 @@
1
+ import { default as React } from 'react';
2
+ /** Props owned by PinInput itself — everything else falls through to the group container. */
3
+ type PinInputOwnProps = {
4
+ /** Number of cells, one character each */
5
+ length?: number;
6
+ /** Current code (controlled) — character at index n renders in cell n */
7
+ value?: string;
8
+ /** Initial code (uncontrolled) */
9
+ defaultValue?: string;
10
+ /**
11
+ * Convenience callback receiving the joined code whenever any cell changes.
12
+ * There is no single native `onChange` here: the control is a group of
13
+ * one-character inputs, so the value callback is the primary API.
14
+ */
15
+ onValueChange?: (value: string) => void;
16
+ /** Fires once when every cell is filled, with the complete code */
17
+ onComplete?: (value: string) => void;
18
+ /** Render cells as password fields, hiding the entered characters */
19
+ mask?: boolean;
20
+ /** Accepted characters — `numeric` rejects non-digits and sets a numeric keyboard */
21
+ format?: 'numeric' | 'alphanumeric';
22
+ /** Label text rendered above the cells; also names the group for screen readers */
23
+ label?: string;
24
+ /** Helper or error message displayed below the cells */
25
+ helperText?: string;
26
+ /** Error state — recolours cell borders and the helper text */
27
+ error?: boolean;
28
+ /** Whether the whole control is disabled */
29
+ disabled?: boolean;
30
+ /** Additional CSS classes — applied to the wrapper, not the cells */
31
+ className?: string;
32
+ };
33
+ export interface PinInputProps extends PinInputOwnProps, Omit<React.ComponentPropsWithoutRef<'div'>, keyof PinInputOwnProps> {
34
+ }
35
+ /**
36
+ * Segmented one-time-code input: one cell per character, with auto-advance,
37
+ * Backspace retreat, arrow-key movement and paste distribution.
38
+ *
39
+ * The ref forwards to the FIRST cell's `<input>`, so `ref.current.focus()`
40
+ * focuses the start of the code. Unrecognised props spread onto the
41
+ * `role="group"` container `<div>` that wraps the cells — there is no single
42
+ * underlying input for them to land on — so `data-*` and `aria-*` attributes
43
+ * describe the group.
44
+ */
45
+ export declare const PinInput: React.ForwardRefExoticComponent<PinInputProps & React.RefAttributes<HTMLInputElement>>;
46
+ export {};