@mizen-labs/ui 0.0.0-stage → 0.1.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 (995) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +72 -2
  3. package/dist/closed.d.ts +5 -0
  4. package/dist/closed.js +1 -0
  5. package/dist/components/accordion/accordion.d.ts +28 -0
  6. package/dist/components/accordion/accordion.js +1 -0
  7. package/dist/components/accordion/accordion.styles.js +1 -0
  8. package/dist/components/activity-feed/activity-feed.d.ts +28 -0
  9. package/dist/components/activity-feed/activity-feed.js +2 -0
  10. package/dist/components/activity-feed/activity-feed.styles.js +1 -0
  11. package/dist/components/agent-thinking/agent-thinking.d.ts +25 -0
  12. package/dist/components/agent-thinking/agent-thinking.js +16 -0
  13. package/dist/components/agent-thinking/agent-thinking.styles.js +3 -0
  14. package/dist/components/alert/alert.d.ts +14 -0
  15. package/dist/components/alert/alert.js +1 -0
  16. package/dist/components/alert/alert.styles.js +1 -0
  17. package/dist/components/alert/alert.stylex.js +1 -0
  18. package/dist/components/alert-dialog/alert-dialog.d.ts +29 -0
  19. package/dist/components/alert-dialog/alert-dialog.js +1 -0
  20. package/dist/components/alert-dialog/alert-dialog.styles.js +1 -0
  21. package/dist/components/approval-card/approval-card.d.ts +38 -0
  22. package/dist/components/approval-card/approval-card.js +8 -0
  23. package/dist/components/approval-card/approval-card.styles.js +1 -0
  24. package/dist/components/area-chart/area-chart.d.ts +29 -0
  25. package/dist/components/area-chart/area-chart.js +10 -0
  26. package/dist/components/area-chart/area-chart.styles.js +1 -0
  27. package/dist/components/aspect-ratio/aspect-ratio.d.ts +7 -0
  28. package/dist/components/aspect-ratio/aspect-ratio.js +1 -0
  29. package/dist/components/aspect-ratio/aspect-ratio.styles.js +1 -0
  30. package/dist/components/attachment/attachment.d.ts +20 -0
  31. package/dist/components/attachment/attachment.js +1 -0
  32. package/dist/components/attachment/attachment.styles.js +1 -0
  33. package/dist/components/avatar/avatar-character.styles.js +1 -0
  34. package/dist/components/avatar/avatar.d.ts +36 -0
  35. package/dist/components/avatar/avatar.js +4 -0
  36. package/dist/components/avatar/avatar.styles.js +1 -0
  37. package/dist/components/badge/badge.d.ts +8 -0
  38. package/dist/components/badge/badge.js +1 -0
  39. package/dist/components/badge/badge.styles.js +1 -0
  40. package/dist/components/bar-list/bar-list.d.ts +22 -0
  41. package/dist/components/bar-list/bar-list.js +4 -0
  42. package/dist/components/bar-list/bar-list.styles.js +1 -0
  43. package/dist/components/blockquote/blockquote.d.ts +12 -0
  44. package/dist/components/blockquote/blockquote.js +1 -0
  45. package/dist/components/blockquote/blockquote.styles.js +1 -0
  46. package/dist/components/breadcrumb/breadcrumb-link.d.ts +4 -0
  47. package/dist/components/breadcrumb/breadcrumb-link.js +1 -0
  48. package/dist/components/breadcrumb/breadcrumb.d.ts +16 -0
  49. package/dist/components/breadcrumb/breadcrumb.js +2 -0
  50. package/dist/components/breadcrumb/breadcrumb.styles.js +1 -0
  51. package/dist/components/button/button-colors.stylex.js +3 -0
  52. package/dist/components/button/button.css +16 -0
  53. package/dist/components/button/button.css.d.js +0 -0
  54. package/dist/components/button/button.d.ts +27 -0
  55. package/dist/components/button/button.js +1 -0
  56. package/dist/components/button/button.styles.js +3 -0
  57. package/dist/components/button-group/button-group.css +115 -0
  58. package/dist/components/button-group/button-group.d.ts +8 -0
  59. package/dist/components/button-group/button-group.js +3 -0
  60. package/dist/components/button-group/button-group.styles.js +1 -0
  61. package/dist/components/calendar/calendar-components.js +2 -0
  62. package/dist/components/calendar/calendar-context.js +1 -0
  63. package/dist/components/calendar/calendar-dropdowns.js +2 -0
  64. package/dist/components/calendar/calendar-utils.js +1 -0
  65. package/dist/components/calendar/calendar.d.ts +4 -0
  66. package/dist/components/calendar/calendar.js +1 -0
  67. package/dist/components/calendar/calendar.styles.js +1 -0
  68. package/dist/components/calendar/calendar.types.d.ts +48 -0
  69. package/dist/components/calendar/calendar.types.js +1 -0
  70. package/dist/components/calendar-heatmap/calendar-heatmap.d.ts +20 -0
  71. package/dist/components/calendar-heatmap/calendar-heatmap.js +9 -0
  72. package/dist/components/card/card.d.ts +17 -0
  73. package/dist/components/card/card.js +1 -0
  74. package/dist/components/card/card.styles.js +1 -0
  75. package/dist/components/carousel/carousel.d.ts +33 -0
  76. package/dist/components/carousel/carousel.js +21 -0
  77. package/dist/components/carousel/carousel.styles.js +4 -0
  78. package/dist/components/category-comparison/category-comparison.d.ts +30 -0
  79. package/dist/components/category-comparison/category-comparison.js +9 -0
  80. package/dist/components/category-comparison/category-comparison.styles.js +1 -0
  81. package/dist/components/chart-frame/arc-path.js +7 -0
  82. package/dist/components/chart-frame/chart-assert.js +2 -0
  83. package/dist/components/chart-frame/chart-colors.d.ts +10 -0
  84. package/dist/components/chart-frame/chart-colors.js +2 -0
  85. package/dist/components/chart-frame/chart-crosshair.js +6 -0
  86. package/dist/components/chart-frame/chart-data-table.js +4 -0
  87. package/dist/components/chart-frame/chart-frame.d.ts +24 -0
  88. package/dist/components/chart-frame/chart-frame.js +7 -0
  89. package/dist/components/chart-frame/chart-frame.styles.js +1 -0
  90. package/dist/components/chart-frame/chart-hover.js +3 -0
  91. package/dist/components/chart-frame/chart-loading.d.ts +22 -0
  92. package/dist/components/chart-frame/chart-loading.js +6 -0
  93. package/dist/components/chart-frame/ring-graphic.js +5 -0
  94. package/dist/components/chart-legend/chart-legend.d.ts +18 -0
  95. package/dist/components/chart-legend/chart-legend.js +1 -0
  96. package/dist/components/chart-legend/chart-legend.styles.js +1 -0
  97. package/dist/components/chart-tooltip/chart-tooltip.d.ts +14 -0
  98. package/dist/components/chart-tooltip/chart-tooltip.js +1 -0
  99. package/dist/components/chart-tooltip/chart-tooltip.styles.js +1 -0
  100. package/dist/components/checkbox/checkbox-card.d.ts +16 -0
  101. package/dist/components/checkbox/checkbox-card.js +1 -0
  102. package/dist/components/checkbox/checkbox-card.styles.js +1 -0
  103. package/dist/components/checkbox/checkbox.d.ts +13 -0
  104. package/dist/components/checkbox/checkbox.js +5 -0
  105. package/dist/components/checkbox/checkbox.styles.js +3 -0
  106. package/dist/components/checkbox-group/checkbox-group.d.ts +6 -0
  107. package/dist/components/checkbox-group/checkbox-group.js +1 -0
  108. package/dist/components/checkbox-group/checkbox-group.styles.js +1 -0
  109. package/dist/components/citation/citation.d.ts +6 -0
  110. package/dist/components/citation/citation.js +1 -0
  111. package/dist/components/citation/citation.styles.js +1 -0
  112. package/dist/components/code/code.d.ts +5 -0
  113. package/dist/components/code/code.js +1 -0
  114. package/dist/components/code/code.styles.js +3 -0
  115. package/dist/components/code-block/code-block-copy.d.ts +6 -0
  116. package/dist/components/code-block/code-block-copy.js +1 -0
  117. package/dist/components/code-block/code-block-highlight.d.ts +31 -0
  118. package/dist/components/code-block/code-block-highlight.js +8 -0
  119. package/dist/components/code-block/code-block.d.ts +22 -0
  120. package/dist/components/code-block/code-block.js +4 -0
  121. package/dist/components/code-block/code-block.styles.js +3 -0
  122. package/dist/components/collapsible/collapsible.d.ts +19 -0
  123. package/dist/components/collapsible/collapsible.js +1 -0
  124. package/dist/components/collapsible/collapsible.styles.js +1 -0
  125. package/dist/components/combobox/combobox-chips.js +1 -0
  126. package/dist/components/combobox/combobox-chips.styles.js +1 -0
  127. package/dist/components/combobox/combobox-context.d.ts +9 -0
  128. package/dist/components/combobox/combobox-context.js +1 -0
  129. package/dist/components/combobox/combobox-field.styles.js +1 -0
  130. package/dist/components/combobox/combobox-input.js +1 -0
  131. package/dist/components/combobox/combobox-popup.js +1 -0
  132. package/dist/components/combobox/combobox-popup.styles.js +1 -0
  133. package/dist/components/combobox/combobox-structure.js +1 -0
  134. package/dist/components/combobox/combobox.d.ts +27 -0
  135. package/dist/components/combobox/combobox.js +1 -0
  136. package/dist/components/combobox/combobox.types.d.ts +43 -0
  137. package/dist/components/combobox/combobox.types.js +1 -0
  138. package/dist/components/command/command-dialog.js +1 -0
  139. package/dist/components/command/command-dialog.styles.js +1 -0
  140. package/dist/components/command/command-field.styles.js +1 -0
  141. package/dist/components/command/command-input.js +1 -0
  142. package/dist/components/command/command-items.js +1 -0
  143. package/dist/components/command/command-items.styles.js +1 -0
  144. package/dist/components/command/command-structure.js +1 -0
  145. package/dist/components/command/command.d.ts +29 -0
  146. package/dist/components/command/command.js +2 -0
  147. package/dist/components/command/command.types.d.ts +28 -0
  148. package/dist/components/command/command.types.js +1 -0
  149. package/dist/components/composer/attachment-marker.stylex.js +2 -0
  150. package/dist/components/composer/composer-clipboard.js +1 -0
  151. package/dist/components/composer/composer-context-meter.d.ts +36 -0
  152. package/dist/components/composer/composer-context-meter.js +6 -0
  153. package/dist/components/composer/composer-dictation.d.ts +17 -0
  154. package/dist/components/composer/composer-dictation.js +5 -0
  155. package/dist/components/composer/composer-document.d.ts +32 -0
  156. package/dist/components/composer/composer-document.js +1 -0
  157. package/dist/components/composer/composer-editor.d.ts +57 -0
  158. package/dist/components/composer/composer-editor.js +4 -0
  159. package/dist/components/composer/composer-history.js +1 -0
  160. package/dist/components/composer/composer-options.d.ts +45 -0
  161. package/dist/components/composer/composer-options.js +1 -0
  162. package/dist/components/composer/composer-parts.d.ts +36 -0
  163. package/dist/components/composer/composer-parts.js +4 -0
  164. package/dist/components/composer/composer-parts.styles.js +4 -0
  165. package/dist/components/composer/composer-picker.d.ts +50 -0
  166. package/dist/components/composer/composer-picker.js +15 -0
  167. package/dist/components/composer/composer-progress-ring.js +1 -0
  168. package/dist/components/composer/composer-query.js +1 -0
  169. package/dist/components/composer/composer-scroll-area.js +1 -0
  170. package/dist/components/composer/composer-session.js +3 -0
  171. package/dist/components/composer/composer-value.d.ts +45 -0
  172. package/dist/components/composer/composer-value.js +1 -0
  173. package/dist/components/composer/composer.css +80 -0
  174. package/dist/components/composer/composer.d.ts +72 -0
  175. package/dist/components/composer/composer.js +3 -0
  176. package/dist/components/composer/composer.styles.js +2 -0
  177. package/dist/components/composer/use-composer-editor.d.ts +8 -0
  178. package/dist/components/composer/use-composer-editor.js +2 -0
  179. package/dist/components/context-menu/context-menu-items.d.ts +10 -0
  180. package/dist/components/context-menu/context-menu-items.js +2 -0
  181. package/dist/components/context-menu/context-menu-utils.js +1 -0
  182. package/dist/components/context-menu/context-menu.d.ts +22 -0
  183. package/dist/components/context-menu/context-menu.js +1 -0
  184. package/dist/components/context-menu/context-menu.types.d.ts +57 -0
  185. package/dist/components/context-menu/context-menu.types.js +1 -0
  186. package/dist/components/conversation/conversation.d.ts +41 -0
  187. package/dist/components/conversation/conversation.js +6 -0
  188. package/dist/components/conversation/conversation.styles.js +2 -0
  189. package/dist/components/data-table/data-table.d.ts +30 -0
  190. package/dist/components/data-table/data-table.js +13 -0
  191. package/dist/components/data-table/data-table.styles.js +1 -0
  192. package/dist/components/data-table/grid-navigation.js +10 -0
  193. package/dist/components/date-picker/date-picker-date.js +1 -0
  194. package/dist/components/date-picker/date-picker-icon.js +1 -0
  195. package/dist/components/date-picker/date-picker-state.js +1 -0
  196. package/dist/components/date-picker/date-picker.d.ts +4 -0
  197. package/dist/components/date-picker/date-picker.js +1 -0
  198. package/dist/components/date-picker/date-picker.styles.js +1 -0
  199. package/dist/components/date-picker/date-picker.types.d.ts +28 -0
  200. package/dist/components/date-picker/date-picker.types.js +1 -0
  201. package/dist/components/date-range-picker/date-range-picker-date.js +1 -0
  202. package/dist/components/date-range-picker/date-range-picker-state.js +1 -0
  203. package/dist/components/date-range-picker/date-range-picker-views.js +1 -0
  204. package/dist/components/date-range-picker/date-range-picker.d.ts +4 -0
  205. package/dist/components/date-range-picker/date-range-picker.js +1 -0
  206. package/dist/components/date-range-picker/date-range-picker.styles.js +1 -0
  207. package/dist/components/date-range-picker/date-range-picker.types.d.ts +37 -0
  208. package/dist/components/date-range-picker/date-range-picker.types.js +1 -0
  209. package/dist/components/date-time-input/date-time-input.d.ts +13 -0
  210. package/dist/components/date-time-input/date-time-input.js +1 -0
  211. package/dist/components/diagram/diagram-renderer.js +5 -0
  212. package/dist/components/diagram/diagram.css +51 -0
  213. package/dist/components/diagram/diagram.d.ts +11 -0
  214. package/dist/components/diagram/diagram.js +4 -0
  215. package/dist/components/diagram/diagram.styles.js +6 -0
  216. package/dist/components/dialog/dialog.d.ts +34 -0
  217. package/dist/components/dialog/dialog.js +1 -0
  218. package/dist/components/dialog/dialog.styles.js +1 -0
  219. package/dist/components/distribution/distribution.d.ts +16 -0
  220. package/dist/components/distribution/distribution.js +6 -0
  221. package/dist/components/distribution/distribution.styles.js +1 -0
  222. package/dist/components/drawer/drawer-affordance.styles.js +1 -0
  223. package/dist/components/drawer/drawer-bar.js +1 -0
  224. package/dist/components/drawer/drawer-content.js +1 -0
  225. package/dist/components/drawer/drawer-layout.js +1 -0
  226. package/dist/components/drawer/drawer-menu.d.ts +30 -0
  227. package/dist/components/drawer/drawer-menu.js +1 -0
  228. package/dist/components/drawer/drawer-menu.styles.js +1 -0
  229. package/dist/components/drawer/drawer-positions.styles.js +1 -0
  230. package/dist/components/drawer/drawer.context.js +1 -0
  231. package/dist/components/drawer/drawer.d.ts +22 -0
  232. package/dist/components/drawer/drawer.js +2 -0
  233. package/dist/components/drawer/drawer.styles.js +1 -0
  234. package/dist/components/drawer/drawer.types.d.ts +53 -0
  235. package/dist/components/drawer/drawer.types.js +1 -0
  236. package/dist/components/empty/empty.d.ts +18 -0
  237. package/dist/components/empty/empty.js +1 -0
  238. package/dist/components/empty/empty.styles.js +1 -0
  239. package/dist/components/error-state/error-state.d.ts +15 -0
  240. package/dist/components/error-state/error-state.js +1 -0
  241. package/dist/components/error-state/error-state.styles.js +1 -0
  242. package/dist/components/field/field-context.d.ts +33 -0
  243. package/dist/components/field/field-context.js +1 -0
  244. package/dist/components/field/field.d.ts +44 -0
  245. package/dist/components/field/field.js +3 -0
  246. package/dist/components/field/field.styles.js +1 -0
  247. package/dist/components/fieldset/fieldset.d.ts +14 -0
  248. package/dist/components/fieldset/fieldset.js +1 -0
  249. package/dist/components/fieldset/fieldset.styles.js +1 -0
  250. package/dist/components/file-upload/file-upload-context.js +1 -0
  251. package/dist/components/file-upload/file-upload-controls.d.ts +4 -0
  252. package/dist/components/file-upload/file-upload-controls.js +7 -0
  253. package/dist/components/file-upload/file-upload-item-preview.d.ts +5 -0
  254. package/dist/components/file-upload/file-upload-item-preview.js +3 -0
  255. package/dist/components/file-upload/file-upload-items.d.ts +8 -0
  256. package/dist/components/file-upload/file-upload-items.js +5 -0
  257. package/dist/components/file-upload/file-upload-motion.js +6 -0
  258. package/dist/components/file-upload/file-upload-validation.d.ts +18 -0
  259. package/dist/components/file-upload/file-upload-validation.js +1 -0
  260. package/dist/components/file-upload/file-upload.d.ts +19 -0
  261. package/dist/components/file-upload/file-upload.js +2 -0
  262. package/dist/components/file-upload/file-upload.styles.js +2 -0
  263. package/dist/components/file-upload/file-upload.types.d.ts +87 -0
  264. package/dist/components/file-upload/file-upload.types.js +1 -0
  265. package/dist/components/frame/frame.d.ts +13 -0
  266. package/dist/components/frame/frame.js +1 -0
  267. package/dist/components/frame/frame.styles.js +1 -0
  268. package/dist/components/funnel/funnel-flow.js +3 -0
  269. package/dist/components/funnel/funnel.d.ts +31 -0
  270. package/dist/components/funnel/funnel.js +4 -0
  271. package/dist/components/funnel/funnel.styles.js +1 -0
  272. package/dist/components/grid/grid.d.ts +5 -0
  273. package/dist/components/grid/grid.js +1 -0
  274. package/dist/components/grid/grid.styles.js +1 -0
  275. package/dist/components/group/group.d.ts +5 -0
  276. package/dist/components/group/group.js +1 -0
  277. package/dist/components/group/group.styles.js +1 -0
  278. package/dist/components/heading/heading.d.ts +10 -0
  279. package/dist/components/heading/heading.js +1 -0
  280. package/dist/components/heading/heading.styles.js +1 -0
  281. package/dist/components/heatmap/heatmap-scale.js +3 -0
  282. package/dist/components/heatmap/heatmap.d.ts +17 -0
  283. package/dist/components/heatmap/heatmap.js +2 -0
  284. package/dist/components/inline/inline.d.ts +5 -0
  285. package/dist/components/inline/inline.js +1 -0
  286. package/dist/components/inline/inline.styles.js +1 -0
  287. package/dist/components/inline-citation/citation-source.d.ts +27 -0
  288. package/dist/components/inline-citation/citation-source.js +13 -0
  289. package/dist/components/inline-citation/inline-citation.d.ts +22 -0
  290. package/dist/components/inline-citation/inline-citation.js +10 -0
  291. package/dist/components/inline-citation/inline-citation.styles.js +1 -0
  292. package/dist/components/input/input.d.ts +17 -0
  293. package/dist/components/input/input.js +3 -0
  294. package/dist/components/input/input.styles.js +1 -0
  295. package/dist/components/input-group/input-group.d.ts +17 -0
  296. package/dist/components/input-group/input-group.js +1 -0
  297. package/dist/components/input-group/input-group.styles.js +1 -0
  298. package/dist/components/kbd/kbd.d.ts +7 -0
  299. package/dist/components/kbd/kbd.js +1 -0
  300. package/dist/components/kbd/kbd.styles.js +1 -0
  301. package/dist/components/label/label.d.ts +5 -0
  302. package/dist/components/label/label.js +1 -0
  303. package/dist/components/label/label.styles.js +1 -0
  304. package/dist/components/lightbox/lightbox-gallery.d.ts +25 -0
  305. package/dist/components/lightbox/lightbox-gallery.js +6 -0
  306. package/dist/components/lightbox/lightbox.d.ts +30 -0
  307. package/dist/components/lightbox/lightbox.js +6 -0
  308. package/dist/components/lightbox/lightbox.styles.js +3 -0
  309. package/dist/components/link/link.d.ts +15 -0
  310. package/dist/components/link/link.js +1 -0
  311. package/dist/components/link/link.styles.js +1 -0
  312. package/dist/components/list/list.d.ts +10 -0
  313. package/dist/components/list/list.js +2 -0
  314. package/dist/components/list/list.styles.js +1 -0
  315. package/dist/components/markdown/markdown.d.ts +34 -0
  316. package/dist/components/markdown/markdown.js +8 -0
  317. package/dist/components/markdown/markdown.styles.js +1 -0
  318. package/dist/components/menu/menu-align-context.js +3 -0
  319. package/dist/components/menu/menu.d.ts +75 -0
  320. package/dist/components/menu/menu.js +2 -0
  321. package/dist/components/menu/menu.styles.js +1 -0
  322. package/dist/components/menubar/menubar.d.ts +13 -0
  323. package/dist/components/menubar/menubar.js +1 -0
  324. package/dist/components/menubar/menubar.styles.js +1 -0
  325. package/dist/components/message/message.d.ts +47 -0
  326. package/dist/components/message/message.js +16 -0
  327. package/dist/components/message/message.styles.js +3 -0
  328. package/dist/components/message-scroller/message-scroller-store.d.ts +58 -0
  329. package/dist/components/message-scroller/message-scroller-store.js +27 -0
  330. package/dist/components/message-scroller/message-scroller.d.ts +76 -0
  331. package/dist/components/message-scroller/message-scroller.js +30 -0
  332. package/dist/components/message-scroller/message-scroller.styles.js +4 -0
  333. package/dist/components/meter/meter.d.ts +30 -0
  334. package/dist/components/meter/meter.js +2 -0
  335. package/dist/components/meter/meter.styles.js +1 -0
  336. package/dist/components/metric/metric.d.ts +17 -0
  337. package/dist/components/metric/metric.js +4 -0
  338. package/dist/components/metric/metric.styles.js +1 -0
  339. package/dist/components/metric-trend/metric-trend.d.ts +26 -0
  340. package/dist/components/metric-trend/metric-trend.js +6 -0
  341. package/dist/components/metric-trend/metric-trend.styles.js +1 -0
  342. package/dist/components/navigation-menu/navigation-menu.d.ts +40 -0
  343. package/dist/components/navigation-menu/navigation-menu.js +1 -0
  344. package/dist/components/navigation-menu/navigation-menu.styles.js +1 -0
  345. package/dist/components/number-field/number-field-context.js +1 -0
  346. package/dist/components/number-field/number-field.d.ts +11 -0
  347. package/dist/components/number-field/number-field.js +1 -0
  348. package/dist/components/number-field/number-field.styles.js +1 -0
  349. package/dist/components/number-field/number-field.types.d.ts +30 -0
  350. package/dist/components/number-field/number-field.types.js +1 -0
  351. package/dist/components/otp-field/otp-field.d.ts +21 -0
  352. package/dist/components/otp-field/otp-field.js +1 -0
  353. package/dist/components/otp-field/otp-field.styles.js +1 -0
  354. package/dist/components/overflow-list/overflow-list.d.ts +10 -0
  355. package/dist/components/overflow-list/overflow-list.js +3 -0
  356. package/dist/components/overflow-list/overflow-list.styles.js +1 -0
  357. package/dist/components/pagination/pagination-link.d.ts +10 -0
  358. package/dist/components/pagination/pagination-link.js +1 -0
  359. package/dist/components/pagination/pagination.d.ts +22 -0
  360. package/dist/components/pagination/pagination.js +2 -0
  361. package/dist/components/pagination/pagination.styles.js +1 -0
  362. package/dist/components/part-to-whole/part-to-whole.d.ts +18 -0
  363. package/dist/components/part-to-whole/part-to-whole.js +2 -0
  364. package/dist/components/part-to-whole/part-to-whole.styles.js +1 -0
  365. package/dist/components/popover/popover.d.ts +33 -0
  366. package/dist/components/popover/popover.js +1 -0
  367. package/dist/components/popover/popover.styles.js +1 -0
  368. package/dist/components/preview-card/preview-card.d.ts +21 -0
  369. package/dist/components/preview-card/preview-card.js +1 -0
  370. package/dist/components/preview-card/preview-card.styles.js +1 -0
  371. package/dist/components/progress/progress.d.ts +28 -0
  372. package/dist/components/progress/progress.js +1 -0
  373. package/dist/components/progress/progress.styles.js +1 -0
  374. package/dist/components/progress-rings/progress-rings.d.ts +25 -0
  375. package/dist/components/progress-rings/progress-rings.js +2 -0
  376. package/dist/components/progress-rings/progress-rings.styles.js +1 -0
  377. package/dist/components/property-list/property-list.d.ts +9 -0
  378. package/dist/components/property-list/property-list.js +1 -0
  379. package/dist/components/property-list/property-list.styles.js +1 -0
  380. package/dist/components/question-card/question-card.d.ts +35 -0
  381. package/dist/components/question-card/question-card.js +13 -0
  382. package/dist/components/question-card/question-card.styles.js +1 -0
  383. package/dist/components/radar-chart/radar-chart.d.ts +28 -0
  384. package/dist/components/radar-chart/radar-chart.js +1 -0
  385. package/dist/components/radial-bars/radial-bars.d.ts +19 -0
  386. package/dist/components/radial-bars/radial-bars.js +8 -0
  387. package/dist/components/radio/radio-card.d.ts +15 -0
  388. package/dist/components/radio/radio-card.js +1 -0
  389. package/dist/components/radio/radio.d.ts +9 -0
  390. package/dist/components/radio/radio.js +1 -0
  391. package/dist/components/radio/radio.styles.js +1 -0
  392. package/dist/components/radio-group/radio-group.d.ts +3 -0
  393. package/dist/components/radio-group/radio-group.js +1 -0
  394. package/dist/components/sankey-chart/sankey-chart.d.ts +16 -0
  395. package/dist/components/sankey-chart/sankey-chart.js +1 -0
  396. package/dist/components/sankey-chart/sankey-layout.d.ts +34 -0
  397. package/dist/components/sankey-chart/sankey-layout.js +5 -0
  398. package/dist/components/scatter-chart/scatter-chart.d.ts +30 -0
  399. package/dist/components/scatter-chart/scatter-chart.js +6 -0
  400. package/dist/components/scatter-chart/scatter-chart.styles.js +1 -0
  401. package/dist/components/score-gauge/score-gauge.d.ts +24 -0
  402. package/dist/components/score-gauge/score-gauge.js +8 -0
  403. package/dist/components/score-gauge/score-gauge.styles.js +1 -0
  404. package/dist/components/scroll-area/scroll-area.d.ts +26 -0
  405. package/dist/components/scroll-area/scroll-area.js +1 -0
  406. package/dist/components/scroll-area/scroll-area.styles.js +2 -0
  407. package/dist/components/section/section.d.ts +5 -0
  408. package/dist/components/section/section.js +1 -0
  409. package/dist/components/section/section.styles.js +1 -0
  410. package/dist/components/segmented-control/segmented-control.d.ts +10 -0
  411. package/dist/components/segmented-control/segmented-control.js +1 -0
  412. package/dist/components/segmented-control/segmented-control.styles.js +1 -0
  413. package/dist/components/select/select.d.ts +55 -0
  414. package/dist/components/select/select.js +1 -0
  415. package/dist/components/select/select.styles.js +1 -0
  416. package/dist/components/separator/separator.d.ts +5 -0
  417. package/dist/components/separator/separator.js +1 -0
  418. package/dist/components/separator/separator.styles.js +1 -0
  419. package/dist/components/sheet/sheet-layout.js +1 -0
  420. package/dist/components/sheet/sheet-positions.styles.js +1 -0
  421. package/dist/components/sheet/sheet.d.ts +15 -0
  422. package/dist/components/sheet/sheet.js +1 -0
  423. package/dist/components/sheet/sheet.styles.js +1 -0
  424. package/dist/components/sheet/sheet.types.d.ts +32 -0
  425. package/dist/components/sheet/sheet.types.js +1 -0
  426. package/dist/components/skeleton/skeleton.d.ts +8 -0
  427. package/dist/components/skeleton/skeleton.js +1 -0
  428. package/dist/components/skeleton/skeleton.styles.js +1 -0
  429. package/dist/components/slider/slider-context.d.ts +23 -0
  430. package/dist/components/slider/slider-context.js +9 -0
  431. package/dist/components/slider/slider-default-anatomy.js +1 -0
  432. package/dist/components/slider/slider-ref-utils.js +1 -0
  433. package/dist/components/slider/slider-slot.js +1 -0
  434. package/dist/components/slider/slider.d.ts +15 -0
  435. package/dist/components/slider/slider.js +1 -0
  436. package/dist/components/slider/slider.styles.js +1 -0
  437. package/dist/components/slider/slider.types.d.ts +36 -0
  438. package/dist/components/slider/slider.types.js +1 -0
  439. package/dist/components/sources/sources.d.ts +22 -0
  440. package/dist/components/sources/sources.js +6 -0
  441. package/dist/components/sources/sources.styles.js +3 -0
  442. package/dist/components/spacer/spacer.d.ts +5 -0
  443. package/dist/components/spacer/spacer.js +1 -0
  444. package/dist/components/spacer/spacer.styles.js +1 -0
  445. package/dist/components/spinner/spinner.d.ts +18 -0
  446. package/dist/components/spinner/spinner.js +9 -0
  447. package/dist/components/spinner/spinner.styles.js +11 -0
  448. package/dist/components/stack/stack.d.ts +9 -0
  449. package/dist/components/stack/stack.js +1 -0
  450. package/dist/components/stack/stack.styles.d.ts +76 -0
  451. package/dist/components/stack/stack.styles.js +2 -0
  452. package/dist/components/status-dot/status-dot.d.ts +9 -0
  453. package/dist/components/status-dot/status-dot.js +1 -0
  454. package/dist/components/status-dot/status-dot.styles.js +1 -0
  455. package/dist/components/stepper/stepper.d.ts +42 -0
  456. package/dist/components/stepper/stepper.js +2 -0
  457. package/dist/components/stepper/stepper.styles.js +1 -0
  458. package/dist/components/streaming-text/streaming-text-words.d.ts +29 -0
  459. package/dist/components/streaming-text/streaming-text-words.js +19 -0
  460. package/dist/components/streaming-text/streaming-text.d.ts +35 -0
  461. package/dist/components/streaming-text/streaming-text.js +13 -0
  462. package/dist/components/streaming-text/streaming-text.styles.js +6 -0
  463. package/dist/components/suggestion/suggestion.d.ts +23 -0
  464. package/dist/components/suggestion/suggestion.js +7 -0
  465. package/dist/components/suggestion/suggestion.styles.js +3 -0
  466. package/dist/components/switch/switch.d.ts +12 -0
  467. package/dist/components/switch/switch.js +1 -0
  468. package/dist/components/switch/switch.styles.js +1 -0
  469. package/dist/components/table/table.d.ts +64 -0
  470. package/dist/components/table/table.js +1 -0
  471. package/dist/components/table/table.styles.js +1 -0
  472. package/dist/components/tabs/tabs.d.ts +32 -0
  473. package/dist/components/tabs/tabs.js +1 -0
  474. package/dist/components/tabs/tabs.styles.js +1 -0
  475. package/dist/components/task-list/task-list.d.ts +34 -0
  476. package/dist/components/task-list/task-list.js +10 -0
  477. package/dist/components/task-list/task-list.styles.js +2 -0
  478. package/dist/components/terminal/ansi.js +11 -0
  479. package/dist/components/terminal/terminal.d.ts +23 -0
  480. package/dist/components/terminal/terminal.js +15 -0
  481. package/dist/components/terminal/terminal.styles.js +1 -0
  482. package/dist/components/text/text.d.ts +11 -0
  483. package/dist/components/text/text.js +1 -0
  484. package/dist/components/text/text.styles.js +1 -0
  485. package/dist/components/textarea/textarea.d.ts +13 -0
  486. package/dist/components/textarea/textarea.js +3 -0
  487. package/dist/components/textarea/textarea.styles.js +1 -0
  488. package/dist/components/thumbnail/thumbnail.d.ts +9 -0
  489. package/dist/components/thumbnail/thumbnail.js +2 -0
  490. package/dist/components/thumbnail/thumbnail.styles.js +1 -0
  491. package/dist/components/time-input/time-input.d.ts +13 -0
  492. package/dist/components/time-input/time-input.js +1 -0
  493. package/dist/components/time-series/time-format.d.ts +16 -0
  494. package/dist/components/time-series/time-format.js +10 -0
  495. package/dist/components/time-series/time-series.d.ts +30 -0
  496. package/dist/components/time-series/time-series.js +10 -0
  497. package/dist/components/time-series/time-series.styles.js +1 -0
  498. package/dist/components/timestamp/timestamp.d.ts +15 -0
  499. package/dist/components/timestamp/timestamp.js +4 -0
  500. package/dist/components/timestamp/timestamp.styles.js +1 -0
  501. package/dist/components/toast/toast-anchored.styles.js +1 -0
  502. package/dist/components/toast/toast-animation.styles.js +1 -0
  503. package/dist/components/toast/toast-icons.js +1 -0
  504. package/dist/components/toast/toast-stacked.styles.js +1 -0
  505. package/dist/components/toast/toast-utils.js +1 -0
  506. package/dist/components/toast/toast-views.js +1 -0
  507. package/dist/components/toast/toast.d.ts +8 -0
  508. package/dist/components/toast/toast.js +1 -0
  509. package/dist/components/toast/toast.styles.js +1 -0
  510. package/dist/components/toast/toast.types.d.ts +18 -0
  511. package/dist/components/toast/toast.types.js +1 -0
  512. package/dist/components/toggle/toggle-colors.stylex.js +2 -0
  513. package/dist/components/toggle/toggle.d.ts +33 -0
  514. package/dist/components/toggle/toggle.js +1 -0
  515. package/dist/components/toggle/toggle.styles.js +1 -0
  516. package/dist/components/token/token.d.ts +16 -0
  517. package/dist/components/token/token.js +1 -0
  518. package/dist/components/token/token.styles.js +1 -0
  519. package/dist/components/tool-call/tool-call-group.d.ts +17 -0
  520. package/dist/components/tool-call/tool-call-group.js +6 -0
  521. package/dist/components/tool-call/tool-call.d.ts +36 -0
  522. package/dist/components/tool-call/tool-call.js +12 -0
  523. package/dist/components/tool-call/tool-call.styles.js +3 -0
  524. package/dist/components/toolbar/toolbar-context.js +2 -0
  525. package/dist/components/toolbar/toolbar.d.ts +37 -0
  526. package/dist/components/toolbar/toolbar.js +1 -0
  527. package/dist/components/toolbar/toolbar.styles.js +1 -0
  528. package/dist/components/tooltip/tooltip.d.ts +25 -0
  529. package/dist/components/tooltip/tooltip.js +1 -0
  530. package/dist/components/tooltip/tooltip.styles.js +1 -0
  531. package/dist/components/tree/tree.d.ts +31 -0
  532. package/dist/components/tree/tree.js +5 -0
  533. package/dist/components/tree/tree.styles.js +3 -0
  534. package/dist/components/visually-hidden/visually-hidden.d.ts +6 -0
  535. package/dist/components/visually-hidden/visually-hidden.js +1 -0
  536. package/dist/components/visually-hidden/visually-hidden.styles.js +1 -0
  537. package/dist/control-label.js +3 -0
  538. package/dist/copy-button.js +1 -0
  539. package/dist/form.d.ts +2 -0
  540. package/dist/form.js +2 -0
  541. package/dist/icon-masks.stylex.js +3 -0
  542. package/dist/icons.js +5 -0
  543. package/dist/index.d.ts +275 -0
  544. package/dist/index.js +1 -0
  545. package/dist/loading-indicator.js +3 -0
  546. package/dist/motion.js +9 -0
  547. package/dist/ref-utils.js +1 -0
  548. package/dist/render-utils.js +3 -0
  549. package/dist/styles/application-structure.stylex.js +1 -0
  550. package/dist/styles/colors.stylex.d.ts +50 -0
  551. package/dist/styles/colors.stylex.js +1 -0
  552. package/dist/styles/conditions.stylex.d.ts +9 -0
  553. package/dist/styles/conditions.stylex.js +1 -0
  554. package/dist/styles/dimensions.stylex.d.ts +14 -0
  555. package/dist/styles/dimensions.stylex.js +1 -0
  556. package/dist/styles/floating-item-colors.stylex.js +1 -0
  557. package/dist/styles/fonts.stylex.d.ts +5 -0
  558. package/dist/styles/fonts.stylex.js +1 -0
  559. package/dist/styles/interaction.stylex.d.ts +23 -0
  560. package/dist/styles/interaction.stylex.js +4 -0
  561. package/dist/styles/motion.stylex.d.ts +22 -0
  562. package/dist/styles/motion.stylex.js +3 -0
  563. package/dist/styles/overlay-layers.styles.js +1 -0
  564. package/dist/styles/palette.stylex.d.ts +26 -0
  565. package/dist/styles/palette.stylex.js +1 -0
  566. package/dist/styles/shadows.stylex.d.ts +10 -0
  567. package/dist/styles/shadows.stylex.js +1 -0
  568. package/dist/styles/shape.stylex.d.ts +9 -0
  569. package/dist/styles/shape.stylex.js +1 -0
  570. package/dist/styles/spacing.stylex.d.ts +14 -0
  571. package/dist/styles/spacing.stylex.js +3 -0
  572. package/dist/styles/themes.d.ts +49 -0
  573. package/dist/styles/themes.js +1 -0
  574. package/dist/styles/typography.styles.d.ts +90 -0
  575. package/dist/styles/typography.styles.js +8 -0
  576. package/dist/styles/typography.stylex.d.ts +35 -0
  577. package/dist/styles/typography.stylex.js +5 -0
  578. package/dist/styles.css +2125 -0
  579. package/dist/theme/index.d.ts +11 -0
  580. package/dist/theme/index.js +1 -0
  581. package/dist/theme/initialize.d.ts +4 -0
  582. package/dist/theme/initialize.js +1 -0
  583. package/dist/theme/theme-provider.d.ts +3 -0
  584. package/dist/theme/theme-provider.js +4 -0
  585. package/dist/theme/theme-root.js +1 -0
  586. package/dist/theme/theme-script.d.ts +3 -0
  587. package/dist/theme/theme-script.js +1 -0
  588. package/dist/theme/theme-storage.js +1 -0
  589. package/dist/theme/theme-tokens.js +1 -0
  590. package/dist/theme/theme-transition-guard.js +1 -0
  591. package/dist/theme/types.d.ts +25 -0
  592. package/dist/theme/types.js +1 -0
  593. package/dist/use-copy-to-clipboard.d.ts +17 -0
  594. package/dist/use-copy-to-clipboard.js +6 -0
  595. package/dist/use-elapsed.js +4 -0
  596. package/package.json +769 -3
  597. package/src/closed.ts +7 -0
  598. package/src/components/accordion/accordion.styles.ts +246 -0
  599. package/src/components/accordion/accordion.tsx +221 -0
  600. package/src/components/activity-feed/activity-feed.styles.ts +135 -0
  601. package/src/components/activity-feed/activity-feed.tsx +182 -0
  602. package/src/components/agent-thinking/agent-thinking.styles.ts +140 -0
  603. package/src/components/agent-thinking/agent-thinking.tsx +275 -0
  604. package/src/components/alert/alert.styles.ts +135 -0
  605. package/src/components/alert/alert.stylex.ts +6 -0
  606. package/src/components/alert/alert.tsx +123 -0
  607. package/src/components/alert-dialog/alert-dialog.styles.ts +29 -0
  608. package/src/components/alert-dialog/alert-dialog.tsx +197 -0
  609. package/src/components/approval-card/approval-card.styles.ts +69 -0
  610. package/src/components/approval-card/approval-card.tsx +379 -0
  611. package/src/components/area-chart/area-chart.styles.ts +14 -0
  612. package/src/components/area-chart/area-chart.tsx +571 -0
  613. package/src/components/aspect-ratio/aspect-ratio.styles.ts +20 -0
  614. package/src/components/aspect-ratio/aspect-ratio.tsx +43 -0
  615. package/src/components/attachment/attachment.styles.ts +71 -0
  616. package/src/components/attachment/attachment.tsx +132 -0
  617. package/src/components/avatar/avatar-character.styles.ts +32 -0
  618. package/src/components/avatar/avatar.styles.ts +118 -0
  619. package/src/components/avatar/avatar.tsx +262 -0
  620. package/src/components/badge/badge.styles.ts +116 -0
  621. package/src/components/badge/badge.tsx +66 -0
  622. package/src/components/bar-list/bar-list.styles.ts +72 -0
  623. package/src/components/bar-list/bar-list.tsx +157 -0
  624. package/src/components/blockquote/blockquote.styles.ts +26 -0
  625. package/src/components/blockquote/blockquote.tsx +75 -0
  626. package/src/components/breadcrumb/breadcrumb-link.tsx +32 -0
  627. package/src/components/breadcrumb/breadcrumb.styles.ts +114 -0
  628. package/src/components/breadcrumb/breadcrumb.tsx +137 -0
  629. package/src/components/button/button-colors.stylex.ts +7 -0
  630. package/src/components/button/button.css +16 -0
  631. package/src/components/button/button.css.d.ts +1 -0
  632. package/src/components/button/button.styles.ts +457 -0
  633. package/src/components/button/button.tsx +168 -0
  634. package/src/components/button-group/button-group.css +115 -0
  635. package/src/components/button-group/button-group.styles.ts +24 -0
  636. package/src/components/button-group/button-group.tsx +46 -0
  637. package/src/components/calendar/calendar-components.tsx +187 -0
  638. package/src/components/calendar/calendar-context.ts +16 -0
  639. package/src/components/calendar/calendar-dropdowns.tsx +84 -0
  640. package/src/components/calendar/calendar-utils.ts +67 -0
  641. package/src/components/calendar/calendar.styles.ts +270 -0
  642. package/src/components/calendar/calendar.tsx +244 -0
  643. package/src/components/calendar/calendar.types.ts +55 -0
  644. package/src/components/calendar-heatmap/calendar-heatmap.tsx +384 -0
  645. package/src/components/card/card.styles.ts +122 -0
  646. package/src/components/card/card.tsx +154 -0
  647. package/src/components/carousel/carousel.styles.ts +142 -0
  648. package/src/components/carousel/carousel.tsx +786 -0
  649. package/src/components/category-comparison/category-comparison.styles.ts +14 -0
  650. package/src/components/category-comparison/category-comparison.tsx +567 -0
  651. package/src/components/chart-frame/arc-path.ts +33 -0
  652. package/src/components/chart-frame/chart-assert.ts +47 -0
  653. package/src/components/chart-frame/chart-colors.ts +14 -0
  654. package/src/components/chart-frame/chart-crosshair.ts +129 -0
  655. package/src/components/chart-frame/chart-data-table.tsx +15 -0
  656. package/src/components/chart-frame/chart-frame.styles.ts +48 -0
  657. package/src/components/chart-frame/chart-frame.tsx +223 -0
  658. package/src/components/chart-frame/chart-hover.tsx +127 -0
  659. package/src/components/chart-frame/chart-loading.tsx +130 -0
  660. package/src/components/chart-frame/ring-graphic.tsx +100 -0
  661. package/src/components/chart-legend/chart-legend.styles.ts +80 -0
  662. package/src/components/chart-legend/chart-legend.tsx +107 -0
  663. package/src/components/chart-tooltip/chart-tooltip.styles.ts +71 -0
  664. package/src/components/chart-tooltip/chart-tooltip.tsx +94 -0
  665. package/src/components/checkbox/checkbox-card.styles.ts +75 -0
  666. package/src/components/checkbox/checkbox-card.tsx +71 -0
  667. package/src/components/checkbox/checkbox.styles.ts +199 -0
  668. package/src/components/checkbox/checkbox.tsx +104 -0
  669. package/src/components/checkbox-group/checkbox-group.styles.ts +11 -0
  670. package/src/components/checkbox-group/checkbox-group.tsx +29 -0
  671. package/src/components/citation/citation.styles.ts +7 -0
  672. package/src/components/citation/citation.tsx +30 -0
  673. package/src/components/code/code.styles.ts +22 -0
  674. package/src/components/code/code.tsx +22 -0
  675. package/src/components/code-block/code-block-copy.tsx +62 -0
  676. package/src/components/code-block/code-block-highlight.tsx +69 -0
  677. package/src/components/code-block/code-block.styles.ts +129 -0
  678. package/src/components/code-block/code-block.tsx +128 -0
  679. package/src/components/collapsible/collapsible.styles.ts +22 -0
  680. package/src/components/collapsible/collapsible.tsx +109 -0
  681. package/src/components/combobox/combobox-chips.styles.ts +182 -0
  682. package/src/components/combobox/combobox-chips.tsx +164 -0
  683. package/src/components/combobox/combobox-context.tsx +26 -0
  684. package/src/components/combobox/combobox-field.styles.ts +156 -0
  685. package/src/components/combobox/combobox-input.tsx +185 -0
  686. package/src/components/combobox/combobox-popup.styles.ts +190 -0
  687. package/src/components/combobox/combobox-popup.tsx +113 -0
  688. package/src/components/combobox/combobox-structure.tsx +138 -0
  689. package/src/components/combobox/combobox.tsx +162 -0
  690. package/src/components/combobox/combobox.types.ts +77 -0
  691. package/src/components/command/command-dialog.styles.ts +43 -0
  692. package/src/components/command/command-dialog.tsx +126 -0
  693. package/src/components/command/command-field.styles.ts +59 -0
  694. package/src/components/command/command-input.tsx +59 -0
  695. package/src/components/command/command-items.styles.ts +169 -0
  696. package/src/components/command/command-items.tsx +99 -0
  697. package/src/components/command/command-structure.tsx +172 -0
  698. package/src/components/command/command.tsx +157 -0
  699. package/src/components/command/command.types.ts +58 -0
  700. package/src/components/composer/attachment-marker.stylex.ts +4 -0
  701. package/src/components/composer/composer-clipboard.ts +49 -0
  702. package/src/components/composer/composer-context-meter.tsx +179 -0
  703. package/src/components/composer/composer-dictation.tsx +56 -0
  704. package/src/components/composer/composer-document.ts +508 -0
  705. package/src/components/composer/composer-editor.ts +544 -0
  706. package/src/components/composer/composer-history.ts +74 -0
  707. package/src/components/composer/composer-options.ts +51 -0
  708. package/src/components/composer/composer-parts.styles.ts +456 -0
  709. package/src/components/composer/composer-parts.tsx +245 -0
  710. package/src/components/composer/composer-picker.tsx +375 -0
  711. package/src/components/composer/composer-progress-ring.tsx +44 -0
  712. package/src/components/composer/composer-query.ts +52 -0
  713. package/src/components/composer/composer-scroll-area.tsx +29 -0
  714. package/src/components/composer/composer-session.ts +593 -0
  715. package/src/components/composer/composer-value.ts +46 -0
  716. package/src/components/composer/composer.css +80 -0
  717. package/src/components/composer/composer.styles.ts +236 -0
  718. package/src/components/composer/composer.tsx +581 -0
  719. package/src/components/composer/use-composer-editor.ts +153 -0
  720. package/src/components/context-menu/context-menu-items.tsx +230 -0
  721. package/src/components/context-menu/context-menu-utils.tsx +65 -0
  722. package/src/components/context-menu/context-menu.tsx +198 -0
  723. package/src/components/context-menu/context-menu.types.ts +97 -0
  724. package/src/components/conversation/conversation.styles.ts +56 -0
  725. package/src/components/conversation/conversation.tsx +142 -0
  726. package/src/components/data-table/data-table.styles.ts +63 -0
  727. package/src/components/data-table/data-table.tsx +723 -0
  728. package/src/components/data-table/grid-navigation.ts +186 -0
  729. package/src/components/date-picker/date-picker-date.ts +142 -0
  730. package/src/components/date-picker/date-picker-icon.tsx +6 -0
  731. package/src/components/date-picker/date-picker-state.ts +193 -0
  732. package/src/components/date-picker/date-picker.styles.ts +53 -0
  733. package/src/components/date-picker/date-picker.tsx +213 -0
  734. package/src/components/date-picker/date-picker.types.ts +32 -0
  735. package/src/components/date-range-picker/date-range-picker-date.ts +191 -0
  736. package/src/components/date-range-picker/date-range-picker-state.ts +235 -0
  737. package/src/components/date-range-picker/date-range-picker-views.tsx +144 -0
  738. package/src/components/date-range-picker/date-range-picker.styles.ts +80 -0
  739. package/src/components/date-range-picker/date-range-picker.tsx +208 -0
  740. package/src/components/date-range-picker/date-range-picker.types.ts +41 -0
  741. package/src/components/date-time-input/date-time-input.tsx +30 -0
  742. package/src/components/diagram/diagram-renderer.ts +35 -0
  743. package/src/components/diagram/diagram.css +51 -0
  744. package/src/components/diagram/diagram.styles.ts +130 -0
  745. package/src/components/diagram/diagram.tsx +238 -0
  746. package/src/components/dialog/dialog.styles.ts +226 -0
  747. package/src/components/dialog/dialog.tsx +227 -0
  748. package/src/components/distribution/distribution.styles.ts +14 -0
  749. package/src/components/distribution/distribution.tsx +450 -0
  750. package/src/components/drawer/drawer-affordance.styles.ts +61 -0
  751. package/src/components/drawer/drawer-bar.tsx +53 -0
  752. package/src/components/drawer/drawer-content.tsx +25 -0
  753. package/src/components/drawer/drawer-layout.tsx +129 -0
  754. package/src/components/drawer/drawer-menu.styles.ts +52 -0
  755. package/src/components/drawer/drawer-menu.tsx +222 -0
  756. package/src/components/drawer/drawer-positions.styles.ts +138 -0
  757. package/src/components/drawer/drawer.context.tsx +25 -0
  758. package/src/components/drawer/drawer.styles.ts +233 -0
  759. package/src/components/drawer/drawer.tsx +278 -0
  760. package/src/components/drawer/drawer.types.ts +85 -0
  761. package/src/components/empty/empty.styles.ts +118 -0
  762. package/src/components/empty/empty.tsx +175 -0
  763. package/src/components/error-state/error-state.styles.ts +97 -0
  764. package/src/components/error-state/error-state.tsx +151 -0
  765. package/src/components/field/field-context.ts +83 -0
  766. package/src/components/field/field.styles.ts +141 -0
  767. package/src/components/field/field.tsx +212 -0
  768. package/src/components/fieldset/fieldset.styles.ts +28 -0
  769. package/src/components/fieldset/fieldset.tsx +68 -0
  770. package/src/components/file-upload/file-upload-context.tsx +191 -0
  771. package/src/components/file-upload/file-upload-controls.tsx +280 -0
  772. package/src/components/file-upload/file-upload-item-preview.tsx +56 -0
  773. package/src/components/file-upload/file-upload-items.tsx +339 -0
  774. package/src/components/file-upload/file-upload-motion.ts +85 -0
  775. package/src/components/file-upload/file-upload-validation.ts +141 -0
  776. package/src/components/file-upload/file-upload.styles.ts +426 -0
  777. package/src/components/file-upload/file-upload.tsx +278 -0
  778. package/src/components/file-upload/file-upload.types.ts +161 -0
  779. package/src/components/frame/frame.styles.ts +66 -0
  780. package/src/components/frame/frame.tsx +126 -0
  781. package/src/components/funnel/funnel-flow.tsx +198 -0
  782. package/src/components/funnel/funnel.styles.ts +73 -0
  783. package/src/components/funnel/funnel.tsx +177 -0
  784. package/src/components/grid/grid.styles.ts +15 -0
  785. package/src/components/grid/grid.tsx +22 -0
  786. package/src/components/group/group.styles.ts +13 -0
  787. package/src/components/group/group.tsx +22 -0
  788. package/src/components/heading/heading.styles.ts +10 -0
  789. package/src/components/heading/heading.tsx +52 -0
  790. package/src/components/heatmap/heatmap-scale.tsx +92 -0
  791. package/src/components/heatmap/heatmap.tsx +402 -0
  792. package/src/components/inline/inline.styles.ts +13 -0
  793. package/src/components/inline/inline.tsx +22 -0
  794. package/src/components/inline-citation/citation-source.tsx +105 -0
  795. package/src/components/inline-citation/inline-citation.styles.ts +94 -0
  796. package/src/components/inline-citation/inline-citation.tsx +199 -0
  797. package/src/components/input/input.styles.ts +95 -0
  798. package/src/components/input/input.tsx +147 -0
  799. package/src/components/input-group/input-group.styles.ts +183 -0
  800. package/src/components/input-group/input-group.tsx +215 -0
  801. package/src/components/kbd/kbd.styles.ts +42 -0
  802. package/src/components/kbd/kbd.tsx +70 -0
  803. package/src/components/label/label.styles.ts +8 -0
  804. package/src/components/label/label.tsx +29 -0
  805. package/src/components/lightbox/lightbox-gallery.tsx +208 -0
  806. package/src/components/lightbox/lightbox.styles.ts +196 -0
  807. package/src/components/lightbox/lightbox.tsx +137 -0
  808. package/src/components/link/link.styles.ts +41 -0
  809. package/src/components/link/link.tsx +48 -0
  810. package/src/components/list/list.styles.ts +49 -0
  811. package/src/components/list/list.tsx +105 -0
  812. package/src/components/markdown/markdown.styles.ts +104 -0
  813. package/src/components/markdown/markdown.tsx +268 -0
  814. package/src/components/menu/menu-align-context.ts +8 -0
  815. package/src/components/menu/menu.styles.ts +281 -0
  816. package/src/components/menu/menu.tsx +485 -0
  817. package/src/components/menubar/menubar.styles.ts +97 -0
  818. package/src/components/menubar/menubar.tsx +89 -0
  819. package/src/components/message/message.styles.ts +145 -0
  820. package/src/components/message/message.tsx +501 -0
  821. package/src/components/message-scroller/message-scroller-store.ts +457 -0
  822. package/src/components/message-scroller/message-scroller.styles.ts +177 -0
  823. package/src/components/message-scroller/message-scroller.tsx +417 -0
  824. package/src/components/meter/meter.styles.ts +48 -0
  825. package/src/components/meter/meter.tsx +176 -0
  826. package/src/components/metric/metric.styles.ts +64 -0
  827. package/src/components/metric/metric.tsx +134 -0
  828. package/src/components/metric-trend/metric-trend.styles.ts +103 -0
  829. package/src/components/metric-trend/metric-trend.tsx +188 -0
  830. package/src/components/navigation-menu/navigation-menu.styles.ts +183 -0
  831. package/src/components/navigation-menu/navigation-menu.tsx +255 -0
  832. package/src/components/number-field/number-field-context.tsx +46 -0
  833. package/src/components/number-field/number-field.styles.ts +229 -0
  834. package/src/components/number-field/number-field.tsx +268 -0
  835. package/src/components/number-field/number-field.types.ts +46 -0
  836. package/src/components/otp-field/otp-field.styles.ts +138 -0
  837. package/src/components/otp-field/otp-field.tsx +174 -0
  838. package/src/components/overflow-list/overflow-list.styles.ts +25 -0
  839. package/src/components/overflow-list/overflow-list.tsx +84 -0
  840. package/src/components/pagination/pagination-link.tsx +96 -0
  841. package/src/components/pagination/pagination.styles.ts +137 -0
  842. package/src/components/pagination/pagination.tsx +153 -0
  843. package/src/components/part-to-whole/part-to-whole.styles.ts +56 -0
  844. package/src/components/part-to-whole/part-to-whole.tsx +329 -0
  845. package/src/components/popover/popover.styles.ts +177 -0
  846. package/src/components/popover/popover.tsx +197 -0
  847. package/src/components/preview-card/preview-card.styles.ts +61 -0
  848. package/src/components/preview-card/preview-card.tsx +94 -0
  849. package/src/components/progress/progress.styles.ts +82 -0
  850. package/src/components/progress/progress.tsx +153 -0
  851. package/src/components/progress-rings/progress-rings.styles.ts +65 -0
  852. package/src/components/progress-rings/progress-rings.tsx +163 -0
  853. package/src/components/property-list/property-list.styles.ts +49 -0
  854. package/src/components/property-list/property-list.tsx +91 -0
  855. package/src/components/question-card/question-card.styles.ts +106 -0
  856. package/src/components/question-card/question-card.tsx +525 -0
  857. package/src/components/radar-chart/radar-chart.tsx +281 -0
  858. package/src/components/radial-bars/radial-bars.tsx +197 -0
  859. package/src/components/radio/radio-card.tsx +57 -0
  860. package/src/components/radio/radio.styles.ts +57 -0
  861. package/src/components/radio/radio.tsx +61 -0
  862. package/src/components/radio-group/radio-group.tsx +29 -0
  863. package/src/components/sankey-chart/sankey-chart.tsx +340 -0
  864. package/src/components/sankey-chart/sankey-layout.ts +107 -0
  865. package/src/components/scatter-chart/scatter-chart.styles.ts +7 -0
  866. package/src/components/scatter-chart/scatter-chart.tsx +509 -0
  867. package/src/components/score-gauge/score-gauge.styles.ts +77 -0
  868. package/src/components/score-gauge/score-gauge.tsx +236 -0
  869. package/src/components/scroll-area/scroll-area.styles.ts +174 -0
  870. package/src/components/scroll-area/scroll-area.tsx +202 -0
  871. package/src/components/section/section.styles.ts +11 -0
  872. package/src/components/section/section.tsx +29 -0
  873. package/src/components/segmented-control/segmented-control.styles.ts +107 -0
  874. package/src/components/segmented-control/segmented-control.tsx +98 -0
  875. package/src/components/select/select.styles.ts +295 -0
  876. package/src/components/select/select.tsx +335 -0
  877. package/src/components/separator/separator.styles.ts +14 -0
  878. package/src/components/separator/separator.tsx +24 -0
  879. package/src/components/sheet/sheet-layout.tsx +92 -0
  880. package/src/components/sheet/sheet-positions.styles.ts +104 -0
  881. package/src/components/sheet/sheet.styles.ts +209 -0
  882. package/src/components/sheet/sheet.tsx +182 -0
  883. package/src/components/sheet/sheet.types.ts +67 -0
  884. package/src/components/skeleton/skeleton.styles.ts +52 -0
  885. package/src/components/skeleton/skeleton.tsx +35 -0
  886. package/src/components/slider/slider-context.tsx +414 -0
  887. package/src/components/slider/slider-default-anatomy.tsx +71 -0
  888. package/src/components/slider/slider-ref-utils.ts +16 -0
  889. package/src/components/slider/slider-slot.ts +7 -0
  890. package/src/components/slider/slider.styles.ts +368 -0
  891. package/src/components/slider/slider.tsx +303 -0
  892. package/src/components/slider/slider.types.ts +57 -0
  893. package/src/components/sources/sources.styles.ts +105 -0
  894. package/src/components/sources/sources.tsx +150 -0
  895. package/src/components/spacer/spacer.styles.ts +11 -0
  896. package/src/components/spacer/spacer.tsx +25 -0
  897. package/src/components/spinner/spinner.styles.ts +231 -0
  898. package/src/components/spinner/spinner.tsx +153 -0
  899. package/src/components/stack/stack.styles.ts +37 -0
  900. package/src/components/stack/stack.tsx +34 -0
  901. package/src/components/status-dot/status-dot.styles.ts +27 -0
  902. package/src/components/status-dot/status-dot.tsx +55 -0
  903. package/src/components/stepper/stepper.styles.ts +564 -0
  904. package/src/components/stepper/stepper.tsx +349 -0
  905. package/src/components/streaming-text/streaming-text-words.tsx +275 -0
  906. package/src/components/streaming-text/streaming-text.styles.ts +166 -0
  907. package/src/components/streaming-text/streaming-text.tsx +299 -0
  908. package/src/components/suggestion/suggestion.styles.ts +55 -0
  909. package/src/components/suggestion/suggestion.tsx +125 -0
  910. package/src/components/switch/switch.styles.ts +195 -0
  911. package/src/components/switch/switch.tsx +69 -0
  912. package/src/components/table/table.styles.ts +198 -0
  913. package/src/components/table/table.tsx +290 -0
  914. package/src/components/tabs/tabs.styles.ts +245 -0
  915. package/src/components/tabs/tabs.tsx +186 -0
  916. package/src/components/task-list/task-list.styles.ts +82 -0
  917. package/src/components/task-list/task-list.tsx +430 -0
  918. package/src/components/terminal/ansi.ts +86 -0
  919. package/src/components/terminal/terminal.styles.ts +20 -0
  920. package/src/components/terminal/terminal.tsx +339 -0
  921. package/src/components/text/text.styles.ts +8 -0
  922. package/src/components/text/text.tsx +47 -0
  923. package/src/components/textarea/textarea.styles.ts +85 -0
  924. package/src/components/textarea/textarea.tsx +163 -0
  925. package/src/components/thumbnail/thumbnail.styles.ts +33 -0
  926. package/src/components/thumbnail/thumbnail.tsx +63 -0
  927. package/src/components/time-input/time-input.tsx +30 -0
  928. package/src/components/time-series/time-format.ts +172 -0
  929. package/src/components/time-series/time-series.styles.ts +18 -0
  930. package/src/components/time-series/time-series.tsx +521 -0
  931. package/src/components/timestamp/timestamp.styles.ts +9 -0
  932. package/src/components/timestamp/timestamp.tsx +162 -0
  933. package/src/components/toast/toast-anchored.styles.ts +146 -0
  934. package/src/components/toast/toast-animation.styles.ts +64 -0
  935. package/src/components/toast/toast-icons.tsx +58 -0
  936. package/src/components/toast/toast-stacked.styles.ts +129 -0
  937. package/src/components/toast/toast-utils.ts +53 -0
  938. package/src/components/toast/toast-views.tsx +223 -0
  939. package/src/components/toast/toast.styles.ts +198 -0
  940. package/src/components/toast/toast.tsx +59 -0
  941. package/src/components/toast/toast.types.ts +41 -0
  942. package/src/components/toggle/toggle-colors.stylex.ts +27 -0
  943. package/src/components/toggle/toggle.styles.ts +267 -0
  944. package/src/components/toggle/toggle.tsx +193 -0
  945. package/src/components/token/token.styles.ts +135 -0
  946. package/src/components/token/token.tsx +208 -0
  947. package/src/components/tool-call/tool-call-group.tsx +147 -0
  948. package/src/components/tool-call/tool-call.styles.ts +146 -0
  949. package/src/components/tool-call/tool-call.tsx +324 -0
  950. package/src/components/toolbar/toolbar-context.ts +6 -0
  951. package/src/components/toolbar/toolbar.styles.ts +120 -0
  952. package/src/components/toolbar/toolbar.tsx +219 -0
  953. package/src/components/tooltip/tooltip.styles.ts +104 -0
  954. package/src/components/tooltip/tooltip.tsx +106 -0
  955. package/src/components/tree/tree.styles.ts +133 -0
  956. package/src/components/tree/tree.tsx +862 -0
  957. package/src/components/visually-hidden/visually-hidden.styles.ts +15 -0
  958. package/src/components/visually-hidden/visually-hidden.tsx +36 -0
  959. package/src/control-label.tsx +48 -0
  960. package/src/copy-button.tsx +38 -0
  961. package/src/form.ts +44 -0
  962. package/src/icon-masks.stylex.ts +7 -0
  963. package/src/icons.ts +43 -0
  964. package/src/index.ts +1392 -0
  965. package/src/loading-indicator.tsx +45 -0
  966. package/src/motion.tsx +124 -0
  967. package/src/ref-utils.ts +27 -0
  968. package/src/render-utils.ts +35 -0
  969. package/src/styles/application-structure.stylex.ts +5 -0
  970. package/src/styles/colors.stylex.ts +64 -0
  971. package/src/styles/conditions.stylex.ts +10 -0
  972. package/src/styles/dimensions.stylex.ts +17 -0
  973. package/src/styles/floating-item-colors.stylex.ts +22 -0
  974. package/src/styles/fonts.stylex.ts +9 -0
  975. package/src/styles/interaction.stylex.ts +34 -0
  976. package/src/styles/motion.stylex.ts +28 -0
  977. package/src/styles/overlay-layers.styles.ts +26 -0
  978. package/src/styles/palette.stylex.ts +28 -0
  979. package/src/styles/shadows.stylex.ts +14 -0
  980. package/src/styles/shape.stylex.ts +11 -0
  981. package/src/styles/spacing.stylex.ts +18 -0
  982. package/src/styles/themes.ts +57 -0
  983. package/src/styles/typography.styles.ts +116 -0
  984. package/src/styles/typography.stylex.ts +44 -0
  985. package/src/theme/index.ts +25 -0
  986. package/src/theme/initialize.ts +31 -0
  987. package/src/theme/theme-provider.tsx +189 -0
  988. package/src/theme/theme-root.ts +37 -0
  989. package/src/theme/theme-script.tsx +35 -0
  990. package/src/theme/theme-storage.ts +256 -0
  991. package/src/theme/theme-tokens.ts +11 -0
  992. package/src/theme/theme-transition-guard.ts +102 -0
  993. package/src/theme/types.ts +33 -0
  994. package/src/use-copy-to-clipboard.ts +57 -0
  995. package/src/use-elapsed.ts +40 -0
@@ -0,0 +1 @@
1
+ "use client";import{props}from"@stylexjs/stylex";import{useCallback}from"react";import{protectRenderSlot}from"../../render-utils";import{Input}from"../input/input";import{Textarea}from"../textarea/textarea";import{inputGroupStyles}from"./input-group.styles";import{jsx as _jsx}from"react/jsx-runtime";const alignStyles={"block-end":inputGroupStyles.alignBlockEnd,"block-start":inputGroupStyles.alignBlockStart,"inline-end":inputGroupStyles.alignInlineEnd,"inline-start":inputGroupStyles.alignInlineStart};const interactiveSelector="a[href], button, input, select, textarea, [contenteditable]:not([contenteditable='false']), [tabindex]:not([tabindex^='-']), [role='button'], [role='combobox'], [role='listbox'], [role='menuitem'], [role='checkbox'], [role='radio'], [role='switch'], [role='tab'], [data-slot='select-trigger']";function shouldRedirectFocus(event){const{currentTarget,target}=event;if(!(target instanceof Element)){return false;}if(!currentTarget.contains(target)){return false;}const interactive=target.closest(interactiveSelector);return interactive===null||!currentTarget.contains(interactive);}function findDirectControl(container){for(const child of container.children){if(child instanceof HTMLInputElement&&child.getAttribute("data-slot")==="input-group-input"){return child;}if(child instanceof HTMLTextAreaElement&&child.getAttribute("data-slot")==="input-group-textarea"){return child;}}return null;}function hasFocusedDirectControl(container){const active=document.activeElement;if(!active||active.parentElement!==container){return false;}const slot=active.getAttribute("data-slot");return slot==="input-group-input"||slot==="input-group-textarea";}function redirectFocusToSibling(container){if(!container||hasFocusedDirectControl(container)){return;}const control=findDirectControl(container);if(control&&!control.disabled){control.focus();}}export function InputGroup({role="group",children,ref:forwardedRef,...rest}){Reflect.deleteProperty(rest,"data-slot");return/*#__PURE__*/_jsx("div",{...rest,"data-slot":"input-group",ref:forwardedRef,role:role,...props(inputGroupStyles.root),children:children});}export function InputGroupAddon({align="inline-start",children,onMouseDown,ref:forwardedRef,...rest}){Reflect.deleteProperty(rest,"data-slot");const handleMouseDown=useCallback(event=>{onMouseDown?.(event);if(event.defaultPrevented||!shouldRedirectFocus(event)){return;}event.preventDefault();redirectFocusToSibling(event.currentTarget.parentElement);},[onMouseDown]);const addonProps={...rest,onMouseDown:handleMouseDown};return/*#__PURE__*/_jsx("div",{...addonProps,"data-align":align,"data-slot":"input-group-addon",ref:forwardedRef,...props(inputGroupStyles.addon,alignStyles[align]),children:children});}export function InputGroupText({children,ref:forwardedRef,...rest}){Reflect.deleteProperty(rest,"data-slot");return/*#__PURE__*/_jsx("span",{...rest,"data-slot":"input-group-text",ref:forwardedRef,...props(inputGroupStyles.text),children:children});}export function InputGroupInput({ref:forwardedRef,render,...rest}){Reflect.deleteProperty(rest,"data-slot");return/*#__PURE__*/_jsx(Input,{...rest,"data-slot":"input-group-input",ref:forwardedRef,render:protectRenderSlot("input-group-input",render??/*#__PURE__*/_jsx("input",{})),unstyled:true});}export function InputGroupTextarea({ref:forwardedRef,...rest}){Reflect.deleteProperty(rest,"data-slot");return/*#__PURE__*/_jsx(Textarea,{...rest,"data-slot":"input-group-textarea",ref:forwardedRef,unstyled:true});}
@@ -0,0 +1 @@
1
+ import{create}from"@stylexjs/stylex";import"../../styles/colors.stylex";import{colors,fieldColors}from"../../styles/colors.stylex";import"../../styles/conditions.stylex";import{conditions}from"../../styles/conditions.stylex";import"../../styles/dimensions.stylex";import{controlSize}from"../../styles/dimensions.stylex";import"../../styles/interaction.stylex";import{borderWidth,focus,focusMotion}from"../../styles/interaction.stylex";import"../../styles/motion.stylex";import{duration,easing}from"../../styles/motion.stylex";import"../../styles/shadows.stylex";import{shadows}from"../../styles/shadows.stylex";import"../../styles/shape.stylex";import{shape}from"../../styles/shape.stylex";import"../../styles/spacing.stylex";import{space}from"../../styles/spacing.stylex";import"../../styles/typography.stylex";import{fontSize,lineHeight}from"../../styles/typography.stylex";export const inputGroupStyles={addon:{kGNEyG:"x6s0dn4",kB7OPa:"x9f619",kMwMTN:"x1heor9g",k1xSpc:"x78zum5",kOIVth:"x13hh4mm",kVAEAm:"x1n2onr6",kY2c9j:"x1vjfegm",$$css:true},alignBlockEnd:{kLkRvE:"x1lg0vu7",kgzTxl:"x1pkgqyo",kgeoSG:"x1cpjm7i",k96MEf:"x1y3wzot",kpsdNU:"x1dtn3f9",km8f2m:"xkk1bqk",kEoFBp:"x1hmns74",kSGwAc:"xkh2ocl",kjj79g:"x1qughib",kayTVb:"x14yy4lh",k8WAf4:"x1lmimt7",kg3NbH:"xb5xqfq",kzqmXN:"xh8yej3",$$css:true},alignBlockStart:{kLkRvE:"x1lg0vu7",kgzTxl:"x1pkgqyo",kgeoSG:"x1cpjm7i",k5Ofw7:"xhq5o37",kpsdNU:"x1dtn3f9",km8f2m:"xkk1bqk",kEoFBp:"x1hmns74",kSGwAc:"xkh2ocl",kayTVb:"x1umeum8",k8WAf4:"x1lmimt7",kg3NbH:"xb5xqfq",kzqmXN:"xh8yej3",$$css:true},alignInlineEnd:{kayTVb:"x9ek82g",kwRFfy:"x1vzuc3q xuvjzps",kZCmMZ:"xqxnp8d",$$css:true},alignInlineStart:{kayTVb:"x1clqncf",kwRFfy:"xuvjzps",kZCmMZ:"xt0na8i",$$css:true},root:{kGNEyG:"x6s0dn4",k44tkh:"x1p0yhiq",kKVMdj:"xxqfapc",kWkggS:"xnqau77 x1u444w9 xvojraa",kVAM5u:"x6ht47x x107ir68 x9r1u3d",kaIpWk:"xbk7hgl x1jw0md8",ksu8eU:"x1y0btm7",kMzoRj:"x1cdonsl",kGVxlE:"xlp6bez x1xxjdaf",kB7OPa:"x9f619",kMwMTN:"x1p414lw x14tvo57",k1xSpc:"x78zum5",kwnvtZ:"x1a02dak",kGuDYH:"xw0uglx x60ifsz x12ama9c",kLWn49:"x1m3nfmh xbv4icr x1rn0pvf",kAzted:"x18sycir x1t5r52q xx59pud x4m7hzi x1atkrcx",kjBf7l:"x1agre69 x1uczgqu",kInvED:"xyb3h8b x1w1ofmy",k3XXqK:"x1kpek1o xaatb59",kMeerF:"x6yma8a x1k57tk5",kVAEAm:"x1n2onr6",kIyJzY:"x1e471i8 x1j5v3x2",k1ekBW:"x1xpfdt",kAMwcw:"xvhdtae",kzqmXN:"xh8yej3",$$css:true},text:{kGNEyG:"x6s0dn4",kMwMTN:"x125omll",k1xSpc:"x3nfvp2",kGuDYH:"x1qlqyl8",kOIVth:"x13hh4mm",kLWn49:"x15bjb6t",kVQacm:"xb3r6kr",kg5iWk:"xlyipyv",khDVqt:"xuxw1ft",$$css:true}};
@@ -0,0 +1,7 @@
1
+ import type { ComponentPropsWithRef } from "react";
2
+ type NativeKbdProps = ComponentPropsWithRef<"kbd">;
3
+ export type KbdProps = Omit<NativeKbdProps, "aria-label" | "aria-labelledby" | "className" | "data-slot" | "role" | "style">;
4
+ export type KbdGroupProps = Omit<NativeKbdProps, "aria-label" | "aria-labelledby" | "className" | "data-slot" | "role" | "style">;
5
+ export declare function Kbd({ children, ref: forwardedRef, ...rest }: KbdProps): import("react").JSX.Element;
6
+ export declare function KbdGroup({ children, ref: forwardedRef, ...rest }: KbdGroupProps): import("react").JSX.Element;
7
+ export {};
@@ -0,0 +1 @@
1
+ import{props}from"@stylexjs/stylex";import{controlLabel}from"../../control-label";import{kbdStyles}from"./kbd.styles";import{jsx as _jsx}from"react/jsx-runtime";export function Kbd({children,ref:forwardedRef,...rest}){Reflect.deleteProperty(rest,"aria-label");Reflect.deleteProperty(rest,"aria-labelledby");Reflect.deleteProperty(rest,"className");Reflect.deleteProperty(rest,"data-slot");Reflect.deleteProperty(rest,"role");Reflect.deleteProperty(rest,"style");return/*#__PURE__*/_jsx("kbd",{...rest,"data-slot":"kbd",ref:forwardedRef,...props(kbdStyles.root),children:controlLabel(children)});}export function KbdGroup({children,ref:forwardedRef,...rest}){Reflect.deleteProperty(rest,"aria-label");Reflect.deleteProperty(rest,"aria-labelledby");Reflect.deleteProperty(rest,"className");Reflect.deleteProperty(rest,"data-slot");Reflect.deleteProperty(rest,"role");Reflect.deleteProperty(rest,"style");return/*#__PURE__*/_jsx("kbd",{...rest,"data-slot":"kbd-group",ref:forwardedRef,...props(kbdStyles.group),children:children});}
@@ -0,0 +1 @@
1
+ import{create}from"@stylexjs/stylex";import"../../styles/colors.stylex";import{colors}from"../../styles/colors.stylex";import"../../styles/interaction.stylex";import{borderWidth}from"../../styles/interaction.stylex";import"../../styles/shape.stylex";import{shape}from"../../styles/shape.stylex";import"../../styles/spacing.stylex";import{space}from"../../styles/spacing.stylex";import"../../styles/typography.stylex";import{fontSize,fontWeight,lineHeight}from"../../styles/typography.stylex";export const kbdStyles={group:{kGNEyG:"x6s0dn4",k1xSpc:"x3nfvp2",kMv6JI:"xjb2p0i",kOIVth:"x13hh4mm",$$css:true},root:{kGNEyG:"x6s0dn4",kWkggS:"x1vs9wzj",kVAM5u:"x155xxfk",kaIpWk:"x1wnslnq",ksu8eU:"x1y0btm7",kMzoRj:"x1cdonsl",kB7OPa:"x9f619",kMwMTN:"xbb0na1",k1xSpc:"x3nfvp2",kMv6JI:"xjb2p0i",kGuDYH:"x1ws78te",k63SB2:"xuku2lm",kOIVth:"x13hh4mm",kZKoxP:"xmll18r",kjj79g:"xl56j7k",kLWn49:"x76y1r9",k7Eaqz:"x199i5n0",kg3NbH:"xdbhxi8",kfzvcC:"x47corl",kfSwDN:"x87ps6o",khDVqt:"xuxw1ft",$$css:true}};
@@ -0,0 +1,5 @@
1
+ import type { ComponentPropsWithRef } from "react";
2
+ type NativeLabelProps = ComponentPropsWithRef<"label">;
3
+ export type LabelProps = Omit<NativeLabelProps, "className" | "role" | "style">;
4
+ export declare function Label({ children, htmlFor, ref: forwardedRef, ...rest }: LabelProps): import("react").JSX.Element;
5
+ export {};
@@ -0,0 +1 @@
1
+ import{props}from"@stylexjs/stylex";import{typeRoles}from"../../styles/typography.styles";import{labelStyles}from"./label.styles";import{jsx as _jsx}from"react/jsx-runtime";export function Label({children,htmlFor,ref:forwardedRef,...rest}){Reflect.deleteProperty(rest,"role");return/*#__PURE__*/_jsx("label",{htmlFor:htmlFor,...rest,"data-slot":"label",ref:forwardedRef,...props(labelStyles.base,typeRoles.label),children:children});}
@@ -0,0 +1 @@
1
+ import{create}from"@stylexjs/stylex";import"../../styles/colors.stylex";import{colors}from"../../styles/colors.stylex";export const labelStyles={base:{kMwMTN:"x14tvo57",$$css:true}};
@@ -0,0 +1,25 @@
1
+ import { type ComponentPropsWithRef } from "react";
2
+ import type { Closed } from "../../closed";
3
+ export interface LightboxGalleryImage {
4
+ alt: string;
5
+ src: string;
6
+ /** A smaller file for the grid. Defaults to `src`. */
7
+ thumbnail?: string;
8
+ }
9
+ export type LightboxGalleryProps = Omit<Closed<ComponentPropsWithRef<"ul">>, "aria-label" | "children" | "data-slot"> & {
10
+ /** Names the grid and titles the open lightbox. */
11
+ "aria-label": string;
12
+ images: readonly LightboxGalleryImage[];
13
+ };
14
+ /** The open lightbox for a set of images; Message reuses it for sent files. */
15
+ export declare function GalleryPopup({ images, index, onStep, title, }: {
16
+ images: readonly LightboxGalleryImage[];
17
+ index: number;
18
+ onStep: (delta: number) => void;
19
+ title: string;
20
+ }): import("react").JSX.Element | null;
21
+ /**
22
+ * A grid of thumbnails that opens one lightbox. Previous, Next, and the arrow
23
+ * keys page through the set, wrapping at either end.
24
+ */
25
+ export declare function LightboxGallery({ "aria-label": label, images, ref: forwardedRef, ...rest }: LightboxGalleryProps): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ "use client";import{props}from"@stylexjs/stylex";import{useCallback,useState}from"react";import{IconChevronLeft,IconChevronRight}from"../../icons";import{typeRoles}from"../../styles/typography.styles";import{guardHostProps,Lightbox,LightboxImage,LightboxPopup,LightboxTitle}from"./lightbox";import{lightboxStyles}from"./lightbox.styles";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";function Chevron({next}){const Icon=next?IconChevronRight:IconChevronLeft;return/*#__PURE__*/_jsx(Icon,{"aria-hidden":"true",focusable:false,size:18,...props(lightboxStyles.chevron)});}function GalleryPill({count,index,onStep}){const previous=useCallback(()=>onStep(-1),[onStep]);const next=useCallback(()=>onStep(1),[onStep]);const button=props(lightboxStyles.control,lightboxStyles.pillButton);return/*#__PURE__*/_jsxs("div",{"data-slot":"lightbox-gallery-controls",...props(lightboxStyles.pill),children:[/*#__PURE__*/_jsx("button",{"aria-label":"Previous image",onClick:previous,type:"button",...button,children:/*#__PURE__*/_jsx(Chevron,{next:false})}),/*#__PURE__*/_jsxs("span",{"aria-live":"polite",...props(typeRoles.ui,lightboxStyles.counter),children:[index+1," of ",count]}),/*#__PURE__*/_jsx("button",{"aria-label":"Next image",onClick:next,type:"button",...button,children:/*#__PURE__*/_jsx(Chevron,{next:true})})]});}/** The open lightbox for a set of images; Message reuses it for sent files. */export function GalleryPopup({images,index,onStep,title}){const image=images[index];// Arrow keys follow reading direction, so Right is previous in RTL.
2
+ const onKeyDown=useCallback(event=>{const rtl=getComputedStyle(event.currentTarget).direction==="rtl";const forward=rtl?"ArrowLeft":"ArrowRight";const back=rtl?"ArrowRight":"ArrowLeft";if(event.key===forward||event.key===back){event.preventDefault();onStep(event.key===forward?1:-1);}},[onStep]);if(!image){return null;}return/*#__PURE__*/_jsxs(LightboxPopup,{onKeyDown:onKeyDown,children:[/*#__PURE__*/_jsx(LightboxTitle,{children:title}),/*#__PURE__*/_jsx(LightboxImage,{alt:image.alt,src:image.src},image.src),images.length>1?/*#__PURE__*/_jsx(GalleryPill,{count:images.length,index:index,onStep:onStep}):null]});}function GalleryItem({image,onOpen,position}){const open=useCallback(()=>onOpen(position),[onOpen,position]);return/*#__PURE__*/_jsx("li",{...props(lightboxStyles.galleryCell),children:/*#__PURE__*/_jsx("button",{"data-slot":"lightbox-gallery-item",onClick:open,type:"button",...props(lightboxStyles.galleryItem),children:/*#__PURE__*/_jsx("img",{alt:image.alt,src:image.thumbnail??image.src,...props(lightboxStyles.galleryImage)})})});}/**
3
+ * A grid of thumbnails that opens one lightbox. Previous, Next, and the arrow
4
+ * keys page through the set, wrapping at either end.
5
+ */export function LightboxGallery({"aria-label":label,images,ref:forwardedRef,...rest}){const[open,setOpen]=useState(false);const[index,setIndex]=useState(0);const count=images.length;const step=useCallback(delta=>setIndex(current=>(current+delta+count)%count),[count]);// biome-ignore lint/correctness/useExhaustiveDependencies: the React Compiler keeps this memoization only with the setters listed.
6
+ const openAt=useCallback(position=>{setIndex(position);setOpen(true);},[setIndex,setOpen]);if(!label?.trim()){throw new TypeError("LightboxGallery requires a non-empty aria-label.");}return/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx("ul",{...guardHostProps(rest),"aria-label":label,"data-slot":"lightbox-gallery",ref:forwardedRef,...props(lightboxStyles.gallery),children:images.map((image,position)=>/*#__PURE__*/_jsx(GalleryItem,{image:image,onOpen:openAt,position:position},image.src))}),/*#__PURE__*/_jsx(Lightbox,{onOpenChange:setOpen,open:open,children:/*#__PURE__*/_jsx(GalleryPopup,{images:images,index:index,onStep:step,title:label})})]});}
@@ -0,0 +1,30 @@
1
+ import { type DialogDescriptionProps as BaseDialogDescriptionProps, type DialogPopupProps as BaseDialogPopupProps, type DialogTitleProps as BaseDialogTitleProps } from "@base-ui/react/dialog";
2
+ import type { ComponentPropsWithRef } from "react";
3
+ import type { Closed } from "../../closed";
4
+ import { Dialog, DialogClose, type DialogCloseProps, type DialogProps, DialogTrigger, type DialogTriggerProps } from "../dialog/dialog";
5
+ export declare function guardHostProps(propsToGuard: object): {
6
+ [k: string]: any;
7
+ };
8
+ export type LightboxProps<Payload = unknown> = DialogProps<Payload>;
9
+ export type LightboxTriggerProps<Payload = unknown> = DialogTriggerProps<Payload>;
10
+ export type LightboxTitleProps = Closed<BaseDialogTitleProps>;
11
+ export type LightboxDescriptionProps = Closed<BaseDialogDescriptionProps>;
12
+ export type LightboxCloseProps = DialogCloseProps;
13
+ export type LightboxPopupProps = Omit<Closed<BaseDialogPopupProps>, "data-slot" | "render" | "role">;
14
+ export type LightboxImageProps = Omit<Closed<ComponentPropsWithRef<"img">>, "alt" | "data-slot" | "role" | "src"> & {
15
+ alt: string;
16
+ src: string;
17
+ };
18
+ export declare const Lightbox: typeof Dialog;
19
+ export declare const LightboxTrigger: typeof DialogTrigger;
20
+ export declare const LightboxClose: typeof DialogClose;
21
+ /** Names the overlay for assistive technology; the image speaks for itself on screen. */
22
+ export declare function LightboxTitle({ ref: forwardedRef, ...rest }: LightboxTitleProps): import("react").JSX.Element;
23
+ /** Describes the image for assistive technology, without covering it. */
24
+ export declare function LightboxDescription({ ref: forwardedRef, ...rest }: LightboxDescriptionProps): import("react").JSX.Element;
25
+ /**
26
+ * A fullscreen overlay: the image sits frameless on a dark scrim, with Close
27
+ * in the corner. Escape, the close button, and a click on the scrim dismiss it.
28
+ */
29
+ export declare function LightboxPopup({ children, ref: forwardedRef, ...rest }: LightboxPopupProps): import("react").JSX.Element;
30
+ export declare function LightboxImage({ alt, ref: forwardedRef, src, ...rest }: LightboxImageProps): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ "use client";import{Dialog as BaseDialog}from"@base-ui/react/dialog";import{props}from"@stylexjs/stylex";import{IconX}from"../../icons";import{overlayLayerStyles}from"../../styles/overlay-layers.styles";import{Dialog,DialogClose,DialogTrigger}from"../dialog/dialog";import{visuallyHiddenStyles}from"../visually-hidden/visually-hidden.styles";import{lightboxStyles}from"./lightbox.styles";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const blockedHostProps=new Set(["className","data-slot","role","style"]);export function guardHostProps(propsToGuard){return Object.fromEntries(Object.entries(propsToGuard).filter(([name])=>!blockedHostProps.has(name)));}export const Lightbox=Dialog;export const LightboxTrigger=DialogTrigger;export const LightboxClose=DialogClose;/** Names the overlay for assistive technology; the image speaks for itself on screen. */export function LightboxTitle({ref:forwardedRef,...rest}){return/*#__PURE__*/_jsx(BaseDialog.Title,{...guardHostProps(rest),"data-slot":"lightbox-title",ref:forwardedRef,...props(visuallyHiddenStyles.root)});}/** Describes the image for assistive technology, without covering it. */export function LightboxDescription({ref:forwardedRef,...rest}){return/*#__PURE__*/_jsx(BaseDialog.Description,{...guardHostProps(rest),"data-slot":"lightbox-description",ref:forwardedRef,...props(visuallyHiddenStyles.root)});}/**
2
+ * A fullscreen overlay: the image sits frameless on a dark scrim, with Close
3
+ * in the corner. Escape, the close button, and a click on the scrim dismiss it.
4
+ */export function LightboxPopup({children,ref:forwardedRef,...rest}){return/*#__PURE__*/_jsxs(BaseDialog.Portal,{...props(overlayLayerStyles.modalPortal),children:[/*#__PURE__*/_jsx(BaseDialog.Backdrop,{"data-slot":"lightbox-backdrop",...props(lightboxStyles.backdrop)}),/*#__PURE__*/_jsxs(BaseDialog.Popup,{...guardHostProps(rest),"data-slot":"lightbox-popup",ref:forwardedRef,...props(lightboxStyles.popup),children:[/*#__PURE__*/_jsx(BaseDialog.Close,{"aria-label":"Close","data-slot":"lightbox-close",...props(lightboxStyles.control,lightboxStyles.close),children:/*#__PURE__*/_jsx(IconX,{"aria-hidden":"true",focusable:"false",size:18})}),children]})]});}export function LightboxImage({alt,ref:forwardedRef,src,...rest}){return(/*#__PURE__*/// biome-ignore lint/correctness/useImageSize: callers may omit source dimensions; the image keeps intrinsic ratio and viewport bounds.
5
+ // biome-ignore lint/performance/noImgElement: Lightbox uses native images so this package stays framework-neutral.
6
+ _jsx("img",{...guardHostProps(rest),alt:alt,"data-slot":"lightbox-image",ref:forwardedRef,src:src,...props(lightboxStyles.image)}));}
@@ -0,0 +1,3 @@
1
+ import{create}from"@stylexjs/stylex";import"../../styles/colors.stylex";import{colors}from"../../styles/colors.stylex";import"../../styles/conditions.stylex";import{conditions}from"../../styles/conditions.stylex";import"../../styles/interaction.stylex";import{borderWidth,focus}from"../../styles/interaction.stylex";import"../../styles/motion.stylex";import{duration,easing}from"../../styles/motion.stylex";import"../../styles/shadows.stylex";import{shadows}from"../../styles/shadows.stylex";import"../../styles/shape.stylex";import{shape}from"../../styles/shape.stylex";import"../../styles/spacing.stylex";import{space}from"../../styles/spacing.stylex";const ROUND="9999px";// Room for Close above the image and the paging pill below it: each sits
2
+ // 16px from the edge and keeps 24px clear of the photo.
3
+ const CHROME=`calc(${space["4"]} + ${space["10"]} + ${space["6"]})`;const enterExit={transitionDuration:{[conditions.reducedMotion]:duration.instant,"[data-ending-style]":duration.overlayExit,default:duration.overlayEnter},transitionTimingFunction:{"[data-ending-style]":easing.easeInOut,default:easing.expoOut}};export const lightboxStyles={backdrop:{kIyJzY:"x1e471i8 x107nfut x18kz1lc",kAMwcw:"xckl9o1 xvhdtae",k6WDB:"x15u0ou0 xpivpjv x11rvarm",kWkggS:"xp0ctg0",kpwlN0:"x10a8y8t",kSiTet:"xiyypsa x1hw7zpd x1hc1fzr",kVAEAm:"xixxii4",k1ekBW:"x19991ni",kY2c9j:"x1ja2u2z",$$css:true},chevron:{k3aq6I:"x19axjrm x1c071of",$$css:true},close:{kVAM5u:"x155xxfk",ksu8eU:"x1y0btm7",kMzoRj:"x1cdonsl",kGVxlE:"x1mhlhek",k87sOh:"x6cvwo6",kt4wiu:"x1l8zot0",kVAEAm:"x10l6tqk",$$css:true},control:{kGNEyG:"x6s0dn4",kysU6D:"xjyslct",kWkggS:"xxsa5ao xghku30 xui3q9s",kZKoxP:"x1iengcw",kaIpWk:"x10hpsqq",kMzoRj:"xc342km",kB7OPa:"x9f619",kMwMTN:"x14tvo57",kkrTdU:"x1ypdohk",k1xSpc:"x3nfvp2",kzqmXN:"x1rdvqfw",kjj79g:"xl56j7k",kogj98:"x1ghz6dp",kjBf7l:"x4dprnk x1uczgqu",kInvED:"x7jjmpn x1wfwxd8",k3XXqK:"x9v5kkp x1t137rt",kMeerF:"x1vhx2qj",kmVPX3:"x1717udv",kfzvcC:"x67bb7w",$$css:true},counter:{kMwMTN:"x125omll",kcqcaj:"xss6m8b",k7Eaqz:"x1nl6vt0",k9WMMc:"x2b8uid",$$css:true},gallery:{k1xSpc:"xrvj5dj",kOIVth:"xp4ho6d",kumcoG:"x1cmj9de",kB88ic:"xe8uvvx",kogj98:"x1ghz6dp",k7Eaqz:"xeuugli",kmVPX3:"x1717udv",$$css:true},galleryCell:{k1xSpc:"xrvj5dj",k7Eaqz:"xeuugli",$$css:true},galleryImage:{kZKoxP:"x5yr21d",k1xSpc:"x1lliihq",kzqmXN:"xh8yej3",kVIFPx:"xl1xv1r",kSiTet:"x1jubhrz x1bd34r6 x1hc1fzr",$$css:true},galleryItem:{kysU6D:"xjyslct",kOBAk4:"x1plog1",kWkggS:"xu84zt7",kaIpWk:"x1jw0md8",kMzoRj:"xc342km",kkrTdU:"x1huxd7x",kogj98:"x1ghz6dp",kjBf7l:"x4dprnk x1uczgqu",kInvED:"x1hl8ikr",k3XXqK:"x9v5kkp x1t137rt",kMeerF:"x1vhx2qj",kVQacm:"xb3r6kr",kmVPX3:"x1717udv",$$css:true},image:{kZKoxP:"xt7dq6l",kaIpWk:"x2b34ud",k1xSpc:"x1lliihq",kzqmXN:"x14atkfc",kskxy:"xmz0i5r",ks0D6T:"x193iq5w",kAzted:"x2lwn1j",kVIFPx:"x19kjcj4",kfzvcC:"x67bb7w",$$css:true},pill:{kGNEyG:"x6s0dn4",kWkggS:"xui3q9s",kVAM5u:"x155xxfk",kaIpWk:"x10hpsqq",ksu8eU:"x1y0btm7",kMzoRj:"x1cdonsl",kGVxlE:"x1mhlhek",k1xSpc:"x78zum5",kOIVth:"x13hh4mm",krVfgx:"x1phf5hj",kkqhue:"x17y0mx6",kUOVxO:"xvueqy4",kmVPX3:"xlxy37g",kfzvcC:"x67bb7w",kVAEAm:"x10l6tqk",kzqmXN:"xeq5yr9",$$css:true},pillButton:{kZKoxP:"xz2k91q",kzqmXN:"xzrvisw",$$css:true},popup:{kIyJzY:"x1e471i8 x107nfut x18kz1lc",kAMwcw:"xckl9o1 xvhdtae",kGNEyG:"x6s0dn4",kB7OPa:"x9f619",k1xSpc:"xrvj5dj",kumcoG:"x1mkdm3x",k9llMU:"x5o4joa",kpwlN0:"x10a8y8t",kAPf3g:"x1o2pa38",kSiTet:"xiyypsa x1hw7zpd x1hc1fzr",kI3sdo:"x1a2a7pz",k8WAf4:"x13qk1rl",kg3NbH:"x5ljy3o xaqi9fd",kfzvcC:"x47corl",kVAEAm:"xixxii4",k3aq6I:"x2bnnpm xewfntf x1c071of",k1ekBW:"x6o7n8i",kY2c9j:"x1vjfegm",$$css:true}};
@@ -0,0 +1,15 @@
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ import type { ReactNode } from "react";
3
+ import type { Closed } from "../../closed";
4
+ type NativeLinkProps = Omit<Closed<useRender.ComponentProps<"a">>, "children" | "data-slot" | "href" | "render" | "role"> & {
5
+ children: ReactNode;
6
+ };
7
+ export type LinkProps = NativeLinkProps & ({
8
+ href: string;
9
+ render?: undefined;
10
+ } | {
11
+ href?: string;
12
+ render: NonNullable<useRender.ComponentProps<"a">["render"]>;
13
+ });
14
+ export declare function Link({ children, href, ref: forwardedRef, render, ...rest }: LinkProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
15
+ export {};
@@ -0,0 +1 @@
1
+ "use client";import{mergeProps}from"@base-ui/react/merge-props";import{useRender}from"@base-ui/react/use-render";import{props}from"@stylexjs/stylex";import{protectRenderSlot}from"../../render-utils";import{linkStyles}from"./link.styles";export function Link({children,href,ref:forwardedRef,render,...rest}){if(!render&&typeof href!=="string"){throw new TypeError("Link requires an href string or a render target.");}for(const name of["className","data-slot","role","style"]){Reflect.deleteProperty(rest,name);}return useRender({defaultTagName:"a",props:mergeProps(rest,props(linkStyles.root),{children,"data-slot":"link",...(href===undefined?{}:{href})}),ref:forwardedRef,render:protectRenderSlot("link",render)});}
@@ -0,0 +1 @@
1
+ import{create}from"@stylexjs/stylex";import"../../styles/colors.stylex";import{colors}from"../../styles/colors.stylex";import"../../styles/conditions.stylex";import{conditions}from"../../styles/conditions.stylex";import"../../styles/interaction.stylex";import{borderWidth,focus,focusMotion,focusOutline}from"../../styles/interaction.stylex";import"../../styles/shape.stylex";import{shape}from"../../styles/shape.stylex";export const linkStyles={root:{k44tkh:"x1iha7go",kKVMdj:"x1b5t0b2",kaIpWk:"xmfy946",kMwMTN:"xdnyjpo",kjBf7l:"x4dprnk x1uczgqu",kInvED:"x1w1ofmy",k3XXqK:"x9v5kkp xzc55om",kMeerF:"x1vhx2qj",kHjlTd:"xj0a0fe",kMnn75:"xujl8zx",kNySMw:"x8pz1bl x1maugks xzmx7tv",kcSHmL:"x1jdncgf",$$css:true}};
@@ -0,0 +1,10 @@
1
+ import type { ComponentPropsWithRef } from "react";
2
+ import type { Closed } from "../../closed";
3
+ export type ListProps = Omit<Closed<ComponentPropsWithRef<"ul">>, "data-slot" | "role">;
4
+ export type ListItemProps = Omit<Closed<ComponentPropsWithRef<"li">>, "data-slot" | "role">;
5
+ export type ListContentProps = Omit<Closed<ComponentPropsWithRef<"div">>, "data-slot" | "role">;
6
+ export type ListActionsProps = Omit<Closed<ComponentPropsWithRef<"div">>, "data-slot" | "role">;
7
+ export declare function List({ children, ref: forwardedRef, ...rest }: ListProps): import("react").JSX.Element;
8
+ export declare function ListItem({ children, ref: forwardedRef, ...rest }: ListItemProps): import("react").JSX.Element;
9
+ export declare function ListContent({ children, ref: forwardedRef, ...rest }: ListContentProps): import("react").JSX.Element;
10
+ export declare function ListActions({ children, ref: forwardedRef, ...rest }: ListActionsProps): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import{props}from"@stylexjs/stylex";import{typeRoles}from"../../styles/typography.styles";import{listStyles}from"./list.styles";import{jsx as _jsx}from"react/jsx-runtime";function stripReservedProps(rest){for(const key of["className","data-slot","role","style"]){Reflect.deleteProperty(rest,key);}}export function List({children,ref:forwardedRef,...rest}){stripReservedProps(rest);return/*#__PURE__*/_jsx("ul",{...rest,"data-slot":"list",ref:forwardedRef// biome-ignore lint/a11y/noRedundantRoles: list markers are removed, which can hide list semantics in Safari.
2
+ ,role:"list",...props(listStyles.root,typeRoles.body),children:children});}export function ListItem({children,ref:forwardedRef,...rest}){stripReservedProps(rest);return/*#__PURE__*/_jsx("li",{...rest,"data-slot":"list-item",ref:forwardedRef,...props(listStyles.item),children:children});}export function ListContent({children,ref:forwardedRef,...rest}){stripReservedProps(rest);return/*#__PURE__*/_jsx("div",{...rest,"data-slot":"list-content",ref:forwardedRef,...props(listStyles.content),children:children});}export function ListActions({children,ref:forwardedRef,...rest}){stripReservedProps(rest);return/*#__PURE__*/_jsx("div",{...rest,"data-slot":"list-actions",ref:forwardedRef,...props(listStyles.actions),children:children});}
@@ -0,0 +1 @@
1
+ import{create}from"@stylexjs/stylex";import"../../styles/colors.stylex";import{colors}from"../../styles/colors.stylex";import"../../styles/interaction.stylex";import{borderWidth}from"../../styles/interaction.stylex";import"../../styles/spacing.stylex";import{space}from"../../styles/spacing.stylex";export const listStyles={actions:{kGNEyG:"x6s0dn4",k1xSpc:"x78zum5",kwnvtZ:"x1a02dak",kOIVth:"xp4ho6d",kjj79g:"x13a6bvl",k7Eaqz:"xeuugli",$$css:true},content:{kCS8Yb:"x1em7b6m",kzQI83:"x1iyjqo2",k7Eaqz:"xeuugli",kHjlTd:"xj0a0fe",$$css:true},item:{kGNEyG:"x6s0dn4",kL6WhQ:"x9rbyu3",kfdmCh:"x1q0q8m5",kt9PQ7:"x18d7gr7 x1t1lzn6 x13k63ub",k1xSpc:"x78zum5",kwnvtZ:"x1a02dak",kOIVth:"xiw8qbs",k7Eaqz:"xeuugli",k8WAf4:"x1ev047n x58we3g",$$css:true},root:{k1xSpc:"x78zum5",kXwgrk:"xdt5ytf",kOIVth:"xjbgufp",kH6xsr:"x3ct3a4",kogj98:"x1ghz6dp",k7Eaqz:"xeuugli",kZCmMZ:"x1c1uobl",$$css:true}};
@@ -0,0 +1,34 @@
1
+ import { type ComponentProps, type ComponentPropsWithRef, type JSX } from "react";
2
+ import type { Closed } from "../../closed";
3
+ type NativeProps = ComponentPropsWithRef<"div">;
4
+ type ElementProps<Tag extends keyof JSX.IntrinsicElements> = ComponentProps<Tag> & {
5
+ node?: unknown;
6
+ };
7
+ export type MarkdownProps = Omit<Closed<NativeProps>, "data-slot" | "dangerouslySetInnerHTML" | "role">;
8
+ export declare const markdownComponents: {
9
+ a: ({ children, href, node: _node, title, ...rest }: ElementProps<"a">) => JSX.Element;
10
+ blockquote: ({ children, node: _node, ...rest }: ElementProps<"blockquote">) => JSX.Element;
11
+ code: ({ children, className: _className, node: _node, ...rest }: ElementProps<"code">) => JSX.Element;
12
+ h1: ({ children, node: _node, ...rest }: ElementProps<"h1">) => JSX.Element;
13
+ h2: ({ children, node: _node, ...rest }: ElementProps<"h2">) => JSX.Element;
14
+ h3: ({ children, node: _node, ...rest }: ElementProps<"h3">) => JSX.Element;
15
+ h4: ({ children, node: _node, ...rest }: ElementProps<"h4">) => JSX.Element;
16
+ h5: ({ children, node: _node, ...rest }: ElementProps<"h5">) => JSX.Element;
17
+ h6: ({ children, node: _node, ...rest }: ElementProps<"h6">) => JSX.Element;
18
+ hr: ({ node: _node, ...rest }: ElementProps<"hr">) => JSX.Element;
19
+ img: ({ alt, height, node: _node, src, title, width, ...rest }: ElementProps<"img">) => JSX.Element;
20
+ input: ({ checked, node: _node, type, ...rest }: ElementProps<"input">) => JSX.Element;
21
+ li: ({ children, className: _className, node: _node, ...rest }: ElementProps<"li">) => JSX.Element;
22
+ ol: ({ children, node: _node, ...rest }: ElementProps<"ol">) => JSX.Element;
23
+ p: ({ children, node: _node, ...rest }: ElementProps<"p">) => JSX.Element;
24
+ pre: ({ children }: ElementProps<"pre">) => JSX.Element;
25
+ table: ({ children, node: _node }: ElementProps<"table">) => JSX.Element;
26
+ tbody: ({ children, node: _node, ...rest }: ElementProps<"tbody">) => JSX.Element;
27
+ td: ({ align, children, node: _node, ...rest }: ElementProps<"td">) => JSX.Element;
28
+ th: ({ align, children, node: _node, ...rest }: ElementProps<"th">) => JSX.Element;
29
+ thead: ({ children, node: _node, ...rest }: ElementProps<"thead">) => JSX.Element;
30
+ tr: ({ children, node: _node, ...rest }: ElementProps<"tr">) => JSX.Element;
31
+ ul: ({ children, className: _className, node: _node, ...rest }: ElementProps<"ul">) => JSX.Element;
32
+ };
33
+ export declare function Markdown({ children, ref: forwardedRef, ...rest }: MarkdownProps): JSX.Element;
34
+ export {};
@@ -0,0 +1,8 @@
1
+ import{props}from"@stylexjs/stylex";import{isValidElement}from"react";import{typeRoles}from"../../styles/typography.styles";import{Code}from"../code/code";import{CodeBlockContent}from"../code-block/code-block";import{Table,TableBody,TableCell,TableContainer,TableHead,TableHeader,TableRow}from"../table/table";import{markdownStyles}from"./markdown.styles";import{jsx as _jsx}from"react/jsx-runtime";const tableAlignments={center:"center",left:"start",right:"end"};// Renderers pass their syntax-tree node as `node`; the map ignores it.
2
+ function alignTableCell(align){if(align==="center"||align==="left"||align==="right"){return tableAlignments[align];}return"start";}// Code blocks arrive as rendered children; keep only their text.
3
+ function textOf(node){if(typeof node==="string"||typeof node==="number"){return String(node);}if(Array.isArray(node)){return node.map(textOf).join("");}if(isValidElement(node)){return textOf(node.props.children);}return"";}// Element map for any renderer that accepts a components prop, such as
4
+ // react-markdown or MDX. Parsing, plugins, and URL policy stay with the app.
5
+ export const markdownComponents={a:({children,href,node:_node,title,...rest})=>/*#__PURE__*/_jsx("a",{...rest,"data-slot":"markdown-link",href:href||undefined,title:title,...props(markdownStyles.link),children:children}),blockquote:({children,node:_node,...rest})=>/*#__PURE__*/_jsx("blockquote",{...rest,"data-slot":"markdown-blockquote",...props(markdownStyles.blockquote),children:children}),code:({children,className:_className,node:_node,...rest})=>/*#__PURE__*/_jsx(Code,{...rest,children:children}),h1:({children,node:_node,...rest})=>/*#__PURE__*/_jsx("h1",{...rest,"data-slot":"markdown-heading",...props(markdownStyles.heading,typeRoles.title),children:children}),h2:({children,node:_node,...rest})=>/*#__PURE__*/_jsx("h2",{...rest,"data-slot":"markdown-heading",...props(markdownStyles.heading,typeRoles.heading),children:children}),h3:({children,node:_node,...rest})=>/*#__PURE__*/_jsx("h3",{...rest,"data-slot":"markdown-heading",...props(markdownStyles.heading,markdownStyles.headingThree),children:children}),h4:({children,node:_node,...rest})=>/*#__PURE__*/_jsx("h4",{...rest,"data-slot":"markdown-heading",...props(markdownStyles.heading,markdownStyles.headingFour),children:children}),h5:({children,node:_node,...rest})=>/*#__PURE__*/_jsx("h5",{...rest,"data-slot":"markdown-heading",...props(markdownStyles.heading,markdownStyles.headingFive),children:children}),h6:({children,node:_node,...rest})=>/*#__PURE__*/_jsx("h6",{...rest,"data-slot":"markdown-heading",...props(markdownStyles.heading,markdownStyles.headingSix),children:children}),hr:({node:_node,...rest})=>/*#__PURE__*/_jsx("hr",{...rest,"data-slot":"markdown-rule",...props(markdownStyles.rule)}),img:({alt,height,node:_node,src,title,width,...rest})=>/*#__PURE__*/// biome-ignore lint/performance/noImgElement: Markdown images accept arbitrary sources and must stay framework-neutral.
6
+ _jsx("img",{...rest,alt:alt??"","data-slot":"markdown-image",height:height,src:src||undefined,title:title,width:width,...props(markdownStyles.image)}),input:({checked,node:_node,type,...rest})=>/*#__PURE__*/_jsx("input",{...rest,"aria-label":checked?"Task completed":"Task not completed",checked:checked,"data-slot":"markdown-task",disabled:true,type:type,...props(markdownStyles.checkbox)}),li:({children,className:_className,node:_node,...rest})=>/*#__PURE__*/_jsx("li",{...rest,"data-slot":"markdown-list-item",...props(markdownStyles.listItem),children:children}),ol:({children,node:_node,...rest})=>/*#__PURE__*/_jsx("ol",{...rest,"data-slot":"markdown-ordered-list",...props(markdownStyles.list,typeRoles.body),children:children}),p:({children,node:_node,...rest})=>/*#__PURE__*/_jsx("p",{...rest,"data-slot":"markdown-paragraph",...props(markdownStyles.paragraph,typeRoles.body),children:children}),pre:({children})=>/*#__PURE__*/_jsx(CodeBlockContent,{"aria-label":"Code block",children:textOf(children)}),table:({children,node:_node})=>/*#__PURE__*/_jsx(TableContainer,{"aria-label":"Markdown table",scroll:"horizontal",children:/*#__PURE__*/_jsx(Table,{children:children})}),tbody:({children,node:_node,...rest})=>/*#__PURE__*/_jsx(TableBody,{...rest,children:children}),td:({align,children,node:_node,...rest})=>/*#__PURE__*/_jsx(TableCell,{...rest,align:alignTableCell(align),children:children}),th:({align,children,node:_node,...rest})=>/*#__PURE__*/_jsx(TableHead,{...rest,align:alignTableCell(align),scope:"col",children:children}),thead:({children,node:_node,...rest})=>/*#__PURE__*/_jsx(TableHeader,{sticky:false,...rest,children:children}),tr:({children,node:_node,...rest})=>/*#__PURE__*/_jsx(TableRow,{...rest,children:children}),ul:({children,className:_className,node:_node,...rest})=>/*#__PURE__*/_jsx("ul",{...rest,"data-slot":"markdown-unordered-list",...props(markdownStyles.list,typeRoles.body),children:children})};function stripReservedProps(attributes){Reflect.deleteProperty(attributes,"className");Reflect.deleteProperty(attributes,"data-slot");Reflect.deleteProperty(attributes,"dangerouslySetInnerHTML");Reflect.deleteProperty(attributes,"role");Reflect.deleteProperty(attributes,"style");}// Reading layout for rendered Markdown. Render the document inside it with
7
+ // `markdownComponents`.
8
+ export function Markdown({children,ref:forwardedRef,...rest}){stripReservedProps(rest);return/*#__PURE__*/_jsx("div",{...rest,"data-slot":"markdown",ref:forwardedRef,...props(markdownStyles.root,typeRoles.body),children:children});}
@@ -0,0 +1 @@
1
+ import{create}from"@stylexjs/stylex";import"../../styles/colors.stylex";import{colors}from"../../styles/colors.stylex";import"../../styles/interaction.stylex";import{borderWidth,focus,focusMotion}from"../../styles/interaction.stylex";import"../../styles/spacing.stylex";import{space}from"../../styles/spacing.stylex";import"../../styles/typography.stylex";import{fontSize,fontWeight,letterSpacing,lineHeight}from"../../styles/typography.stylex";export const markdownStyles={blockquote:{kGJrpR:"x1uo4xkn",kVhnKS:"x1t7ytsu",k2ei4v:"xjba7c6",kqGvvJ:"x12jd5q2",kUOVxO:"xrxpjvj",kZCmMZ:"x14s0xwm",$$css:true},checkbox:{keaTxX:"xzd989a",k71WvV:"xo451o6",$$css:true},heading:{kMwMTN:"x14tvo57",k63SB2:"xlw70nr",k1K539:"x1hxt7dh",keoZOQ:"x14l7nz5 x16yphcf",$$css:true},headingFive:{kGuDYH:"xlh8hku",k63SB2:"xlw70nr",kb6lSQ:"x1pypwqs",kLWn49:"x2xzzt7",$$css:true},headingFour:{kGuDYH:"x12ama9c",k63SB2:"xlw70nr",kb6lSQ:"x15nokgc",kLWn49:"x1rn0pvf",$$css:true},headingSix:{kGuDYH:"xlh8hku",k63SB2:"xlw70nr",kb6lSQ:"x1pypwqs",kLWn49:"x2xzzt7",$$css:true},headingThree:{kGuDYH:"x1d88w5i",k63SB2:"xlw70nr",kb6lSQ:"x1urmmxc",kLWn49:"x1f0yedn",$$css:true},image:{kZKoxP:"xt7dq6l",ks0D6T:"x193iq5w",$$css:true},link:{k44tkh:"x1iha7go",kKVMdj:"x1b5t0b2",kaIpWk:"x1cum3z5",kMwMTN:"xtvkl4p",kjBf7l:"x4dprnk x1uczgqu",kInvED:"x1w1ofmy",k3XXqK:"xaatb59",kMeerF:"xm9seqh x1k57tk5",kMnn75:"xujl8zx",kcSHmL:"xg830sg",$$css:true},list:{kqGvvJ:"x10im51j",k1K539:"xzboxd6 xgzphdn",kZCmMZ:"x1d9hf09",$$css:true},listItem:{kZCmMZ:"xqxnp8d",$$css:true},paragraph:{kqGvvJ:"x10im51j",k1K539:"xzboxd6 xgzphdn",$$css:true},root:{kMwMTN:"x14tvo57",k63SB2:"x1lo1l87",k7Eaqz:"xeuugli",kHjlTd:"x1mzt3pk",$$css:true},rule:{kLZC3w:"xcadu6e",kPef9Z:"x13fuv20",kEafiO:"x1vfp6xi",kqGvvJ:"x12jd5q2",$$css:true}};
@@ -0,0 +1,3 @@
1
+ import{createContext}from"react";// A menubar aligns its menus with the start of their triggers, like desktop
2
+ // menubars; standalone menus keep Base UI's centered default.
3
+ export const MenuAlignContext=createContext(undefined);
@@ -0,0 +1,75 @@
1
+ import { Menu as BaseMenu, type MenuRootProps as BaseMenuRootProps, type MenuRadioGroupChangeEventDetails, type MenuSubmenuRootProps } from "@base-ui/react/menu";
2
+ import { type ComponentPropsWithRef, type ReactNode } from "react";
3
+ import type { Closed } from "../../closed";
4
+ type MenuPositionerProps = ComponentPropsWithRef<typeof BaseMenu.Positioner>;
5
+ export type MenuPortalProps = Closed<ComponentPropsWithRef<typeof BaseMenu.Portal>>;
6
+ export type MenuProps<Payload = unknown> = Closed<BaseMenuRootProps<Payload>>;
7
+ export type MenuTriggerProps<Payload = unknown> = Closed<Omit<ComponentPropsWithRef<typeof BaseMenu.Trigger>, "handle" | "payload"> & {
8
+ handle?: BaseMenuRootProps<Payload>["handle"];
9
+ payload?: Payload;
10
+ }>;
11
+ export type MenuPopupProps = Closed<Omit<ComponentPropsWithRef<typeof BaseMenu.Popup>, "ref"> & {
12
+ align?: MenuPositionerProps["align"];
13
+ alignOffset?: MenuPositionerProps["alignOffset"];
14
+ portalProps?: MenuPortalProps;
15
+ anchor?: MenuPositionerProps["anchor"];
16
+ ref?: ComponentPropsWithRef<typeof BaseMenu.Popup>["ref"];
17
+ side?: MenuPositionerProps["side"];
18
+ sideOffset?: MenuPositionerProps["sideOffset"];
19
+ }>;
20
+ export type MenuItemVariant = "default" | "destructive";
21
+ export type MenuItemProps = Closed<Omit<ComponentPropsWithRef<typeof BaseMenu.Item>, "ref"> & {
22
+ inset?: boolean;
23
+ ref?: ComponentPropsWithRef<typeof BaseMenu.Item>["ref"];
24
+ variant?: MenuItemVariant;
25
+ }>;
26
+ export type MenuLinkItemProps = Closed<ComponentPropsWithRef<typeof BaseMenu.LinkItem> & {
27
+ inset?: boolean;
28
+ variant?: MenuItemVariant;
29
+ }>;
30
+ export type MenuGroupProps = Closed<ComponentPropsWithRef<typeof BaseMenu.Group>>;
31
+ export type MenuGroupLabelProps = Closed<ComponentPropsWithRef<typeof BaseMenu.GroupLabel> & {
32
+ inset?: boolean;
33
+ }>;
34
+ export type MenuSeparatorProps = Closed<ComponentPropsWithRef<typeof BaseMenu.Separator>>;
35
+ export type MenuShortcutProps = Closed<ComponentPropsWithRef<"kbd">>;
36
+ export type MenuCheckboxItemVariant = "default" | "switch";
37
+ export type MenuCheckboxItemProps = Closed<Omit<ComponentPropsWithRef<typeof BaseMenu.CheckboxItem>, "ref"> & {
38
+ ref?: ComponentPropsWithRef<typeof BaseMenu.CheckboxItem>["ref"];
39
+ variant?: MenuCheckboxItemVariant;
40
+ }>;
41
+ type BaseMenuRadioGroupProps = ComponentPropsWithRef<typeof BaseMenu.RadioGroup>;
42
+ export type MenuRadioGroupProps<Value = unknown> = Closed<Omit<BaseMenuRadioGroupProps, "defaultValue" | "onValueChange" | "value"> & {
43
+ defaultValue?: Value;
44
+ onValueChange?: (value: Value, eventDetails: MenuRadioGroupChangeEventDetails) => void;
45
+ value?: Value;
46
+ }>;
47
+ type BaseMenuRadioItemProps = ComponentPropsWithRef<typeof BaseMenu.RadioItem>;
48
+ export type MenuRadioItemProps<Value = unknown> = Closed<Omit<BaseMenuRadioItemProps, "value"> & {
49
+ value: Value;
50
+ }>;
51
+ export type MenuSubProps = Closed<MenuSubmenuRootProps>;
52
+ export type MenuSubTriggerProps = Closed<Omit<ComponentPropsWithRef<typeof BaseMenu.SubmenuTrigger>, "ref"> & {
53
+ inset?: boolean;
54
+ ref?: ComponentPropsWithRef<typeof BaseMenu.SubmenuTrigger>["ref"];
55
+ }>;
56
+ export type MenuSubPopupProps = Closed<MenuPopupProps>;
57
+ export declare const MenuCreateHandle: typeof BaseMenu.createHandle;
58
+ export declare const MenuPrimitive: typeof BaseMenu;
59
+ export declare const MenuPortal: (props: MenuPortalProps) => ReactNode;
60
+ export declare const Menu: typeof BaseMenu.Root;
61
+ export declare const MenuSub: typeof BaseMenu.SubmenuRoot;
62
+ export declare function MenuTrigger<Payload = unknown>({ ref: forwardedRef, render, type, ...rest }: MenuTriggerProps<Payload>): import("react").JSX.Element;
63
+ export declare function MenuPopup({ align, alignOffset, side, sideOffset, ...rest }: MenuPopupProps): import("react").JSX.Element;
64
+ export declare function MenuItem({ render, children, inset, ref: forwardedRef, variant, ...rest }: MenuItemProps): import("react").JSX.Element;
65
+ export declare function MenuLinkItem({ children, inset, ref: forwardedRef, render, variant, ...rest }: MenuLinkItemProps): import("react").JSX.Element;
66
+ export declare function MenuGroup({ render, ref: forwardedRef, ...rest }: MenuGroupProps): import("react").JSX.Element;
67
+ export declare function MenuGroupLabel({ render, inset, ref: forwardedRef, ...rest }: MenuGroupLabelProps): import("react").JSX.Element;
68
+ export declare function MenuSeparator({ render, ref: forwardedRef, ...rest }: MenuSeparatorProps): import("react").JSX.Element;
69
+ export declare function MenuShortcut({ children, ref: forwardedRef, ...rest }: MenuShortcutProps): import("react").JSX.Element;
70
+ export declare function MenuCheckboxItem({ render, children, ref: forwardedRef, variant, ...rest }: MenuCheckboxItemProps): import("react").JSX.Element;
71
+ export declare function MenuRadioGroup<Value = unknown>({ render, ...rest }: MenuRadioGroupProps<Value>): import("react").JSX.Element;
72
+ export declare function MenuRadioItem<Value = unknown>({ render, children, ...rest }: MenuRadioItemProps<Value>): import("react").JSX.Element;
73
+ export declare function MenuSubTrigger({ render, children, inset, ref: forwardedRef, ...rest }: MenuSubTriggerProps): import("react").JSX.Element;
74
+ export declare function MenuSubPopup({ align, alignOffset, side, sideOffset, ...rest }: MenuSubPopupProps): import("react").JSX.Element;
75
+ export {};
@@ -0,0 +1,2 @@
1
+ "use client";import{useDirection}from"@base-ui/react/direction-provider";import{Menu as BaseMenu}from"@base-ui/react/menu";import{mergeProps}from"@base-ui/react/merge-props";import{props}from"@stylexjs/stylex";import{useContext}from"react";import{controlLabel}from"../../control-label";import{IconCheck,IconChevronLeft,IconChevronRight}from"../../icons";import{protectRenderSlot}from"../../render-utils";import{kbdStyles}from"../kbd/kbd.styles";import{ScrollArea}from"../scroll-area/scroll-area";import{menuStyles}from"./menu.styles";import{MenuAlignContext}from"./menu-align-context";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const itemVariantStyles={default:menuStyles.itemDefault,destructive:menuStyles.itemDestructive};export const MenuCreateHandle=BaseMenu.createHandle;export const MenuPrimitive=BaseMenu;export const MenuPortal=BaseMenu.Portal;export const Menu=BaseMenu.Root;export const MenuSub=BaseMenu.SubmenuRoot;function CheckIcon(){return/*#__PURE__*/_jsx(IconCheck,{"aria-hidden":"true",focusable:"false",...props(menuStyles.checkIcon),size:"1em"});}function renderSwitchIndicator(indicatorProps,state){return/*#__PURE__*/_jsx("span",{...indicatorProps,...props(menuStyles.switchIndicator,state.checked&&menuStyles.switchIndicatorChecked),children:/*#__PURE__*/_jsx("span",{...props(menuStyles.switchThumb,state.checked&&menuStyles.switchThumbChecked)})});}function MenuPopupSurface({dataSlot="menu-popup",render,anchor,align,alignOffset,children,portalProps,ref:forwardedRef,side,sideOffset,...rest}){return/*#__PURE__*/_jsx(BaseMenu.Portal,{...portalProps,children:/*#__PURE__*/_jsx(BaseMenu.Positioner,{align:align,alignOffset:alignOffset,anchor:anchor,"data-slot":"menu-positioner",side:side,sideOffset:sideOffset,...props(menuStyles.positioner),children:/*#__PURE__*/_jsx(BaseMenu.Popup,{...rest,"data-slot":dataSlot,ref:forwardedRef,render:protectRenderSlot(dataSlot,render),...props(menuStyles.popup),children:/*#__PURE__*/_jsx(ScrollArea,{overscrollContain:true,scrollFade:true,children:/*#__PURE__*/_jsx("div",{...props(menuStyles.content),children:children})})})})});}export function MenuTrigger({ref:forwardedRef,render,type,...rest}){return/*#__PURE__*/_jsx(BaseMenu.Trigger,{...rest,"data-slot":"menu-trigger",ref:forwardedRef,render:protectRenderSlot("menu-trigger",render),type:render?type:type??"button"});}export function MenuPopup({align,alignOffset,side="bottom",sideOffset=4,...rest}){const contextAlign=useContext(MenuAlignContext);return/*#__PURE__*/_jsx(MenuPopupSurface,{align:align??contextAlign??"center",alignOffset:alignOffset,side:side,sideOffset:sideOffset,...rest});}export function MenuItem({render,children,inset=false,ref:forwardedRef,variant="default",...rest}){return/*#__PURE__*/_jsx(BaseMenu.Item,{...rest,"data-inset":inset||undefined,"data-slot":"menu-item","data-variant":variant,ref:forwardedRef,render:protectRenderSlot("menu-item",render),...props(menuStyles.item,itemVariantStyles[variant],inset&&menuStyles.inset),children:controlLabel(children)});}export function MenuLinkItem({children,inset=false,ref:forwardedRef,render,variant="default",...rest}){return/*#__PURE__*/_jsx(BaseMenu.LinkItem,{...rest,"data-inset":inset||undefined,"data-slot":"menu-link-item","data-variant":variant,ref:forwardedRef,render:protectRenderSlot("menu-link-item",render),...props(menuStyles.item,itemVariantStyles[variant],inset&&menuStyles.inset),children:controlLabel(children)});}export function MenuGroup({render,ref:forwardedRef,...rest}){return/*#__PURE__*/_jsx(BaseMenu.Group,{...rest,"data-slot":"menu-group",ref:forwardedRef,render:protectRenderSlot("menu-group",render),...props(menuStyles.group)});}export function MenuGroupLabel({render,inset=false,ref:forwardedRef,...rest}){return/*#__PURE__*/_jsx(BaseMenu.GroupLabel,{...rest,"data-inset":inset||undefined,"data-slot":"menu-label",ref:forwardedRef,render:protectRenderSlot("menu-label",render),...props(menuStyles.groupLabel,inset&&menuStyles.inset)});}export function MenuSeparator({render,ref:forwardedRef,...rest}){return/*#__PURE__*/_jsx(BaseMenu.Separator,{...rest,"data-slot":"menu-separator",ref:forwardedRef,render:protectRenderSlot("menu-separator",render),...props(menuStyles.separator)});}export function MenuShortcut({children,ref:forwardedRef,...rest}){return(/*#__PURE__*/// Key order reads left to right in every language.
2
+ _jsx("kbd",{dir:"ltr",...rest,"data-slot":"menu-shortcut",ref:forwardedRef,...mergeProps(props(kbdStyles.group,menuStyles.shortcut),{}),children:controlLabel(children)}));}export function MenuCheckboxItem({render,children,ref:forwardedRef,variant="default",...rest}){const indicator=variant==="switch"?/*#__PURE__*/_jsx(BaseMenu.CheckboxItemIndicator,{keepMounted:true,render:renderSwitchIndicator}):/*#__PURE__*/_jsx(BaseMenu.CheckboxItemIndicator,{keepMounted:true,...props(menuStyles.indicator),children:/*#__PURE__*/_jsx(CheckIcon,{})});return/*#__PURE__*/_jsxs(BaseMenu.CheckboxItem,{...rest,"data-slot":"menu-checkbox-item",ref:forwardedRef,render:protectRenderSlot("menu-checkbox-item",render),...props(menuStyles.item,menuStyles.itemDefault),children:[variant==="default"&&indicator,controlLabel(children),variant==="switch"&&indicator]});}export function MenuRadioGroup({render,...rest}){return/*#__PURE__*/_jsx(BaseMenu.RadioGroup,{...rest,"data-slot":"menu-radio-group",render:protectRenderSlot("menu-radio-group",render)});}export function MenuRadioItem({render,children,...rest}){return/*#__PURE__*/_jsxs(BaseMenu.RadioItem,{...rest,"data-slot":"menu-radio-item",render:protectRenderSlot("menu-radio-item",render),...props(menuStyles.item,menuStyles.itemDefault),children:[/*#__PURE__*/_jsx(BaseMenu.RadioItemIndicator,{keepMounted:true,...props(menuStyles.indicator),children:/*#__PURE__*/_jsx("span",{...props(menuStyles.radioDot)})}),controlLabel(children)]});}function ChevronIcon(){const direction=useDirection();return direction==="rtl"?/*#__PURE__*/_jsx(IconChevronLeft,{"aria-hidden":"true",focusable:"false",...props(menuStyles.chevron),size:"1em"}):/*#__PURE__*/_jsx(IconChevronRight,{"aria-hidden":"true",focusable:"false",...props(menuStyles.chevron),size:"1em"});}export function MenuSubTrigger({render,children,inset=false,ref:forwardedRef,...rest}){return/*#__PURE__*/_jsxs(BaseMenu.SubmenuTrigger,{...rest,"data-inset":inset||undefined,"data-slot":"menu-sub-trigger",ref:forwardedRef,render:protectRenderSlot("menu-sub-trigger",render),...props(menuStyles.item,menuStyles.itemDefault,menuStyles.subTrigger,inset&&menuStyles.inset),children:[controlLabel(children),/*#__PURE__*/_jsx(ChevronIcon,{})]});}export function MenuSubPopup({align="start",alignOffset,side="inline-end",sideOffset=0,...rest}){return/*#__PURE__*/_jsx(MenuPopupSurface,{align:align,alignOffset:alignOffset??(align==="center"?undefined:-5),dataSlot:"menu-sub-content",side:side,sideOffset:sideOffset,...rest});}
@@ -0,0 +1 @@
1
+ import{create}from"@stylexjs/stylex";import"../../styles/colors.stylex";import{colors}from"../../styles/colors.stylex";import"../../styles/conditions.stylex";import{conditions}from"../../styles/conditions.stylex";import"../../styles/floating-item-colors.stylex";import{floatingItemColors}from"../../styles/floating-item-colors.stylex";import"../../styles/fonts.stylex";import{fonts}from"../../styles/fonts.stylex";import"../../styles/interaction.stylex";import{borderWidth,forcedColorAdjust,opacity}from"../../styles/interaction.stylex";import"../../styles/motion.stylex";import{duration,easing}from"../../styles/motion.stylex";import"../../styles/shadows.stylex";import{shadows}from"../../styles/shadows.stylex";import"../../styles/shape.stylex";import{shape}from"../../styles/shape.stylex";import"../../styles/spacing.stylex";import{space}from"../../styles/spacing.stylex";import"../../styles/typography.stylex";import{fontSize,fontWeight,letterSpacing,lineHeight}from"../../styles/typography.stylex";export const menuStyles={checkIcon:{k1xSpc:"x1lliihq",kZKoxP:"x1l36t39",kzqmXN:"xcdlrvm",$$css:true},chevron:{kMwMTN:"x15rks2t",kmuXW:"x2lah0s",kZKoxP:"x1l36t39",keTefX:"xvc5jky",kzqmXN:"xcdlrvm",$$css:true},content:{kmVPX3:"x1btfdvn",$$css:true},group:{k1xSpc:"x78zum5",kXwgrk:"xdt5ytf",$$css:true},groupLabel:{kMwMTN:"x125omll",kGuDYH:"x1ws78te",kC21eY:"x2vx8kg",k63SB2:"xuku2lm",kb6lSQ:"xdee7k9",kLWn49:"x76y1r9",kHjlTd:"xj0a0fe",kGO01o:"xvx3g1o",kLKAdn:"xvdlrvc",kg3NbH:"xb5xqfq",$$css:true},indicator:{kGNEyG:"x6s0dn4",kMwMTN:"x118fp1a",k1xSpc:"x3nfvp2",kmuXW:"x2lah0s",kZKoxP:"x1l36t39",kjj79g:"xl56j7k",kSiTet:"xtsrun4 xg01cxk",k3aq6I:"x1398315 x1a33avv",kIyJzY:"x1e471i8 x1j5v3x2",k1ekBW:"x6o7n8i",kAMwcw:"xvhdtae",kzqmXN:"xcdlrvm",$$css:true},inset:{kZCmMZ:"x7w76f6",$$css:true},item:{kGNEyG:"x6s0dn4",kT0f0o:"xe3sxwc",kVL7Gh:"x1xvnbp1",kfmiAY:"x1d1ei5k",krdFHd:"x10v8yj5",kB7OPa:"x9f619",kkrTdU:"x1j1ks5o xt0e3qv",k1xSpc:"x78zum5",kMv6JI:"xjb2p0i",kGuDYH:"xlh8hku",kC21eY:"x2vx8kg",k63SB2:"x1lo1l87",kAXs8y:"x1t9pinz",kOIVth:"xp4ho6d",kLWn49:"x2xzzt7",kAzted:"x1in32aq",k7Eaqz:"xeuugli",kSiTet:"x1yporm9 x1hc1fzr",kjBf7l:"xf5tgej x1uczgqu",kInvED:"x11r2kya",k3XXqK:"x159zbam x1t137rt",kMeerF:"x1vhx2qj",kHjlTd:"xj0a0fe",k8WAf4:"xz8rb64",kg3NbH:"xb5xqfq",kybGjl:"x1hl2dhg",kIyJzY:"x1e471i8 x1j5v3x2",k1ekBW:"x7h6xqb",kAMwcw:"xvhdtae",kfSwDN:"x87ps6o",$$css:true},itemDefault:{kWkggS:"x1atuimu xjbqb8w",kMwMTN:"x1ovde1y x14tvo57",$$css:true},itemDestructive:{kWkggS:"x6i2cx9 xjbqb8w",kMwMTN:"x19t5qpb x1rncs7t",$$css:true},popup:{kWkggS:"xui3q9s",kVAM5u:"x1l55r2k x155xxfk",kaIpWk:"x1yl01a3",ksu8eU:"x1y0btm7",kMzoRj:"x1cdonsl",kGVxlE:"x1mhlhek",kB7OPa:"x9f619",kMwMTN:"x14tvo57",k1xSpc:"x78zum5",kXwgrk:"xdt5ytf",kskxy:"x14ibmtv",ks0D6T:"xtuccea",k7Eaqz:"x12kinc7",kSiTet:"xiyypsa x1hw7zpd x1hc1fzr",kI3sdo:"x1a2a7pz",kVQacm:"xb3r6kr",k3aq6I:"xddaku3 xkr3uco x5q7jw0 x1w69v5t xub4z9z x1hl4pyw xeoiet0 xb8fv44 x19hlpk1 xbp8eot x1h69cw3 x109428r x1c071of",k3nNDw:"xctpfpq",kIyJzY:"x1e471i8 xmhz0v7 x1j5v3x2",k1ekBW:"x6o7n8i",kAMwcw:"xvhdtae",$$css:true},positioner:{ks0D6T:"x193lwwl",kY2c9j:"xa9119d",$$css:true},radioDot:{kWkggS:"xtwfq29",kT0f0o:"x1pahc9y",kVL7Gh:"x1ertn4p",kfmiAY:"xeusxvb",krdFHd:"x1c9tyrk",kZKoxP:"x4j2xbe",kzqmXN:"xrkia0p",$$css:true},separator:{kWkggS:"xcmsz27",kZKoxP:"x1pt7pui",kqGvvJ:"xaoelkr",kUOVxO:"x111xfez",$$css:true},shortcut:{kMwMTN:"x1kct7rm x125omll",kmuXW:"x2lah0s",kMv6JI:"xjb2p0i",kGuDYH:"x1ws78te",kC21eY:"x2vx8kg",kcqcaj:"xss6m8b",k63SB2:"x1lo1l87",kb6lSQ:"xdee7k9",keTefX:"xvc5jky",khDVqt:"xuxw1ft",$$css:true},subTrigger:{kWkggS:"xmflkt8",kMwMTN:"xo7s1uj",$$css:true},switchIndicator:{kGNEyG:"x6s0dn4",kWkggS:"x1ylkqan",kT0f0o:"x3hdh8v",kVL7Gh:"xr0m5pc",kfmiAY:"x9okykr",krdFHd:"x1142k65",kGVxlE:"x1xxjdaf",kB7OPa:"x9f619",k1xSpc:"x3nfvp2",kmuXW:"x2lah0s",kZKoxP:"x1l36t39",keTefX:"xvc5jky",kmVPX3:"x1ngqb6p",kIyJzY:"x1e471i8 x1j5v3x2",k1ekBW:"x15406qy",kAMwcw:"xvhdtae",kzqmXN:"xh29eag",$$css:true},switchIndicatorChecked:{kWkggS:"x11ovu81",$$css:true},switchThumb:{kWkggS:"x1dgvb5d",kT0f0o:"x1pahc9y",kVL7Gh:"x1ertn4p",kfmiAY:"xeusxvb",krdFHd:"x1c9tyrk",kGVxlE:"xxmju8b",kZKoxP:"xvle69y",keTefX:"x1lziwak",kIyJzY:"x1e471i8 x1j5v3x2",k1ekBW:"x3a1nof",kAMwcw:"xvhdtae",kzqmXN:"x1jw3ynk",$$css:true},switchThumbChecked:{kWkggS:"x1dgvb5d",keTefX:"x4qatp2",$$css:true}};
@@ -0,0 +1,13 @@
1
+ import { Menubar as BaseMenubar } from "@base-ui/react/menubar";
2
+ import type { ComponentPropsWithRef } from "react";
3
+ import type { Closed } from "../../closed";
4
+ import type { MenuTriggerProps } from "../menu/menu";
5
+ type BaseMenubarProps = ComponentPropsWithRef<typeof BaseMenubar>;
6
+ type Part<T> = Omit<Closed<T>, "data-slot" | "role">;
7
+ export type MenubarProps = Omit<Part<BaseMenubarProps>, "aria-orientation"> & {
8
+ ref?: BaseMenubarProps["ref"];
9
+ };
10
+ export type MenubarTriggerProps<Payload = unknown> = Omit<Closed<MenuTriggerProps<Payload>>, "data-slot" | "role">;
11
+ export declare function Menubar({ children, orientation, ref: forwardedRef, render, ...rest }: MenubarProps): import("react").JSX.Element;
12
+ export declare function MenubarTrigger<Payload = unknown>({ children, ref: forwardedRef, render, type, ...rest }: MenubarTriggerProps<Payload>): import("react").JSX.Element;
13
+ export {};
@@ -0,0 +1 @@
1
+ "use client";import{Menu as BaseMenu}from"@base-ui/react/menu";import{Menubar as BaseMenubar}from"@base-ui/react/menubar";import{props}from"@stylexjs/stylex";import{controlLabel}from"../../control-label";import{protectRenderSlot}from"../../render-utils";import{typeRoles}from"../../styles/typography.styles";import{MenuAlignContext}from"../menu/menu-align-context";import{menubarStyles}from"./menubar.styles";import{jsx as _jsx}from"react/jsx-runtime";function stripReservedProps(rest){for(const name of["aria-orientation","className","data-slot","role","style"]){Reflect.deleteProperty(rest,name);}}export function Menubar({children,orientation="horizontal",ref:forwardedRef,render,...rest}){stripReservedProps(rest);return/*#__PURE__*/_jsx(BaseMenubar,{...rest,"aria-orientation":orientation,"data-slot":"menubar",orientation:orientation,ref:forwardedRef,render:protectRenderSlot("menubar",render,{"aria-orientation":orientation,role:"menubar"}),...props(menubarStyles.root),children:/*#__PURE__*/_jsx(MenuAlignContext.Provider,{value:"start",children:children})});}export function MenubarTrigger({children,ref:forwardedRef,render,type,...rest}){stripReservedProps(rest);return/*#__PURE__*/_jsx(BaseMenu.Trigger,{...rest,"data-slot":"menubar-trigger",ref:forwardedRef,render:protectRenderSlot("menubar-trigger",render,{role:"menuitem"}),type:render?type:type??"button",...props(menubarStyles.trigger,typeRoles.ui),children:controlLabel(children)});}
@@ -0,0 +1 @@
1
+ import{create}from"@stylexjs/stylex";import"../../styles/colors.stylex";import{colors}from"../../styles/colors.stylex";import"../../styles/conditions.stylex";import{conditions}from"../../styles/conditions.stylex";import"../../styles/interaction.stylex";import{borderWidth,focus,focusMotion,focusOutline,opacity}from"../../styles/interaction.stylex";import"../../styles/motion.stylex";import{duration,easing}from"../../styles/motion.stylex";import"../../styles/shadows.stylex";import{shadows}from"../../styles/shadows.stylex";import"../../styles/shape.stylex";import{shape}from"../../styles/shape.stylex";import"../../styles/spacing.stylex";import{space}from"../../styles/spacing.stylex";export const menubarStyles={root:{kWkggS:"xwn18cz",kVAM5u:"x155xxfk",kaIpWk:"x1jw0md8",ksu8eU:"x1y0btm7",kMzoRj:"x1cdonsl",kGVxlE:"x10ilepr",kB7OPa:"x9f619",k1xSpc:"x78zum5",kXwgrk:"x1ngl2aw x1q0g3np",kwnvtZ:"x17j74nd x1a02dak",kOIVth:"x13hh4mm",ks0D6T:"x193iq5w",k7Eaqz:"xeuugli",kmVPX3:"xlxy37g",$$css:true},trigger:{kGNEyG:"x6s0dn4",k44tkh:"x1iha7go",kKVMdj:"x1b5t0b2",kWkggS:"x16f8uvd xnau8x9 xdbtqwr xf3ijce xjbqb8w",kT0f0o:"x1hia2b7",kVL7Gh:"x1dz734k",kfmiAY:"x2dv6dr",krdFHd:"xn5rixj",ksu8eU:"x1y0btm7",kMzoRj:"xc342km",kB7OPa:"x9f619",kMwMTN:"x14tvo57",kkrTdU:"x1j1ks5o xt0e3qv",k1xSpc:"x3nfvp2",kmuXW:"xsnv01j",kMv6JI:"xjb2p0i",kOIVth:"x13hh4mm",kZKoxP:"xgaasie",kjj79g:"x1nhvcw1",ks0D6T:"x193iq5w",kAzted:"x1in32aq",k7Eaqz:"xeuugli",kSiTet:"x1yporm9 x1hc1fzr",kjBf7l:"x4dprnk x1uczgqu",kInvED:"x1w1ofmy",k3XXqK:"x9v5kkp xzc55om",kMeerF:"x1vhx2qj",kHjlTd:"xj0a0fe",k8WAf4:"x1lmimt7",kg3NbH:"xb5xqfq",k9WMMc:"x1yc453h",kIyJzY:"x1e471i8 x1j5v3x2",k1ekBW:"x1k8yt6i",kAMwcw:"xvhdtae",kzqmXN:"xwe2phr",$$css:true}};
@@ -0,0 +1,47 @@
1
+ import { type ComponentPropsWithRef, type ReactNode } from "react";
2
+ import type { Closed } from "../../closed";
3
+ type MessageBase = Omit<Closed<ComponentPropsWithRef<"div">>, "children" | "data-slot" | "role"> & {
4
+ /** The sender's name, shown above the message. Use it in group chats. */
5
+ author?: string;
6
+ /** The sender's picture, such as an Avatar. */
7
+ avatar?: ReactNode;
8
+ };
9
+ export interface MessageAttachment {
10
+ /** The file itself. Images open it in a lightbox; other files in a new tab. */
11
+ href?: string;
12
+ name: string;
13
+ /** An image URL; files without one show their type. */
14
+ preview?: string;
15
+ }
16
+ export type MessageUserProps = MessageBase & {
17
+ /** `end` for the person reading, `start` for others in a group chat. */
18
+ align?: "end" | "start";
19
+ /** Files the person sent, shown above as the composer showed them. */
20
+ attachments?: readonly MessageAttachment[];
21
+ /** What the person wrote. */
22
+ children: string;
23
+ /** The machine-readable send time for `time`, such as an ISO instant. */
24
+ dateTime?: string;
25
+ from: "user";
26
+ /** Shows Edit, which opens the text in place; called with the new text. */
27
+ onEdit?: (text: string) => void;
28
+ /** Shows Retry beside "Not sent" when the message failed to send. */
29
+ onRetry?: () => void;
30
+ /** `failed` when the message did not reach the agent. */
31
+ status?: "failed" | "sent";
32
+ /** When it was sent, formatted for the reader, such as "4:20 PM". */
33
+ time?: string;
34
+ };
35
+ export type MessageAgentProps = MessageBase & {
36
+ /** The agent's parts in order, such as AgentThinking, ToolCallGroup, and StreamingText. */
37
+ children: ReactNode;
38
+ from: "agent";
39
+ };
40
+ export type MessageProps = MessageAgentProps | MessageUserProps;
41
+ /**
42
+ * One turn in a conversation. The person's message is a bubble with Copy,
43
+ * Edit, and the time under it; the agent's turn holds its parts in a column,
44
+ * without a bubble.
45
+ */
46
+ export declare function Message(messageProps: MessageProps): import("react").JSX.Element;
47
+ export {};
@@ -0,0 +1,16 @@
1
+ "use client";import{props}from"@stylexjs/stylex";import{useCallback,useRef,useState}from"react";import{CopyButton}from"../../copy-button";import{IconAlertCircle,IconPencil,IconRefresh}from"../../icons";import{Arrivals,MotionScope}from"../../motion";import{typeRoles}from"../../styles/typography.styles";import{Button}from"../button/button";import{ComposerAttachment}from"../composer/composer-parts";import{Lightbox}from"../lightbox/lightbox";import{GalleryPopup}from"../lightbox/lightbox-gallery";import{Textarea}from"../textarea/textarea";import{messageStyles as styles}from"./message.styles";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";function Author({name}){if(!name){return null;}return/*#__PURE__*/_jsx("span",{"data-slot":"message-author",...props(typeRoles.caption,styles.author),children:name});}function Frame({align,author,avatar,children,from,rest,status}){for(const prop of["className","data-slot","role","style"]){Reflect.deleteProperty(rest,prop);}const end=align==="end";return/*#__PURE__*/_jsxs("div",{...rest,"data-align":align,"data-from":from,"data-slot":"message","data-status":status,...props(styles.root,end&&styles.reverse),children:[avatar?/*#__PURE__*/_jsx("span",{"data-slot":"message-avatar",...props(styles.avatar),children:avatar}):null,/*#__PURE__*/_jsxs("div",{...props(styles.body,end?styles.end:styles.start,from==="agent"&&styles.agentBody),children:[/*#__PURE__*/_jsx(Author,{name:author}),children]})]});}// A file's place among the message's images, for the lightbox.
2
+ function imagesBefore(files,index){return files.slice(0,index).filter(file=>file.preview).length;}function Tile({file,onOpen,position}){const open=useCallback(()=>onOpen(position),[onOpen,position]);return/*#__PURE__*/_jsx(ComposerAttachment,{href:file.preview?undefined:file.href,name:file.name,onOpen:file.preview?open:undefined,preview:file.preview});}// The same tiles the composer showed before the message was sent. Images
3
+ // open together in a lightbox; other files open in a new tab.
4
+ function Attachments({align,attachments}){const[index,setIndex]=useState(null);const images=(attachments??[]).flatMap(file=>file.preview?[{alt:file.name,src:file.href??file.preview}]:[]);const count=images.length;const step=useCallback(delta=>setIndex(current=>((current??0)+delta+count)%count),[count]);const close=useCallback(open=>{if(!open){setIndex(null);}},[]);if(!attachments?.length){return null;}return/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx("ul",{"aria-label":"Attachments","data-slot":"message-attachments",...props(styles.attachments,align==="end"&&styles.attachmentsEnd),children:attachments.map((file,key)=>/*#__PURE__*/_jsx(Tile,{file:file// biome-ignore lint/suspicious/noArrayIndexKey: a sent message's files never change, and two may share a name.
5
+ ,onOpen:setIndex,position:imagesBefore(attachments,key)},key))}),count>0?/*#__PURE__*/_jsx(Lightbox,{onOpenChange:close,open:index!==null,children:/*#__PURE__*/_jsx(GalleryPopup,{images:images,index:index??0,onStep:step,title:images[index??0]?.alt??"Attachment"})}):null]});}// Long text folds after eight lines; the last one fades out above Show more.
6
+ // The button appears only once the text is measured to overflow.
7
+ function watchLength(text){const bubble=text?.parentElement;if(!(text&&bubble)||typeof ResizeObserver==="undefined"){return;}const observer=new ResizeObserver(()=>{// While open, the text is whole, so keep the last answer.
8
+ if(!bubble.hasAttribute("data-expanded")){bubble.toggleAttribute("data-long",text.scrollHeight>text.clientHeight+1);}});observer.observe(text);return()=>observer.disconnect();}function Bubble({text}){const[expanded,setExpanded]=useState(false);const toggle=useCallback(()=>setExpanded(open=>!open),[]);return/*#__PURE__*/_jsxs("div",{"data-expanded":expanded||undefined,"data-slot":"message-bubble",...props(typeRoles.body,styles.bubble),children:[/*#__PURE__*/_jsx("p",{"data-slot":"message-text",ref:watchLength,...props(styles.text,!expanded&&styles.folded),children:text}),/*#__PURE__*/_jsx("button",{"aria-expanded":expanded,onClick:toggle,type:"button",...props(typeRoles.ui,styles.more),children:expanded?"Show less":"Show more"})]});}// Stays in view with the bubble, so the person sees what did not go out.
9
+ function Failure({onRetry}){return/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs("span",{"data-slot":"message-error",role:"alert",...props(typeRoles.caption,styles.error),children:[/*#__PURE__*/_jsx(IconAlertCircle,{"aria-hidden":"true",size:14}),"Not sent"]}),onRetry?/*#__PURE__*/_jsxs(Button,{onClick:onRetry,size:"xs",variant:"ghost",children:[/*#__PURE__*/_jsx(IconRefresh,{"aria-hidden":"true",size:"1em"}),"Retry"]}):null]});}function Editor({onCancel,onSave,text}){const[draft,setDraft]=useState(text);const empty=draft.trim()==="";const change=useCallback(event=>setDraft(event.currentTarget.value),[]);const save=useCallback(event=>{event.preventDefault();if(!empty){onSave(draft.trim());}},[draft,empty,onSave]);// Enter sends and Shift+Enter starts a new line, as in the composer.
10
+ const keys=useCallback(event=>{if(event.key==="Escape"){onCancel();}else if(event.key==="Enter"&&!event.shiftKey&&!event.nativeEvent.isComposing){save(event);}},[onCancel,save]);return/*#__PURE__*/_jsxs("form",{"data-slot":"message-editor",onSubmit:save,...props(styles.editor),children:[/*#__PURE__*/_jsx(Textarea,{"aria-label":"Edit message",onChange:change,onKeyDown:keys,ref:focusAtEnd,rows:Math.min(8,draft.split("\n").length+1),value:draft}),/*#__PURE__*/_jsxs("div",{...props(styles.editorActions),children:[/*#__PURE__*/_jsx(Button,{onClick:onCancel,size:"sm",variant:"ghost",children:"Cancel"}),/*#__PURE__*/_jsx(Button,{disabled:empty,size:"sm",type:"submit",children:"Send"})]})]});}// Opens the editor with the caret after the text.
11
+ function focusAtEnd(node){if(node){node.focus();node.setSelectionRange(node.value.length,node.value.length);}}function Actions({align,dateTime,editRef,failed,onEdit,onRetry,text,time}){return/*#__PURE__*/_jsxs("div",{"data-slot":"message-actions",...props(styles.actions,align==="end"?styles.actionsEnd:styles.actionsStart,failed&&styles.actionsShown),children:[failed?/*#__PURE__*/_jsx(Failure,{onRetry:onRetry}):null,time&&!failed?/*#__PURE__*/_jsx("time",{dateTime:dateTime,...props(typeRoles.caption,styles.time),children:time}):null,/*#__PURE__*/_jsx(CopyButton,{label:"Copy message",text:text}),onEdit?/*#__PURE__*/_jsx(Button,{"aria-label":"Edit message",onClick:onEdit,ref:editRef,size:"icon-xs",variant:"ghost",children:/*#__PURE__*/_jsx(IconPencil,{"aria-hidden":"true",size:"1em"})}):null]});}function UserMessage({align="end",attachments,author,avatar,children,dateTime,from,onEdit,onRetry,status="sent",time,...rest}){const[editing,setEditing]=useState(false);// Focus returns to Edit when the editor closes.
12
+ const closing=useRef(false);const editRef=useCallback(node=>{if(node&&closing.current){closing.current=false;node.focus();}},[]);const open=useCallback(()=>setEditing(true),[]);const cancel=useCallback(()=>{closing.current=true;setEditing(false);},[]);const save=useCallback(text=>{cancel();if(text!==children){onEdit?.(text);}},[cancel,children,onEdit]);return/*#__PURE__*/_jsxs(Frame,{align:align,author:author,avatar:avatar,from:from,rest:rest,status:status,children:[/*#__PURE__*/_jsx(Attachments,{align:align,attachments:attachments}),editing?/*#__PURE__*/_jsx(Editor,{onCancel:cancel,onSave:save,text:children}):/*#__PURE__*/_jsx(Bubble,{text:children}),editing?null:/*#__PURE__*/_jsx(Actions,{align:align,dateTime:dateTime,editRef:editRef,failed:status==="failed",onEdit:onEdit?open:undefined,onRetry:onRetry,text:children,time:time})]});}/**
13
+ * One turn in a conversation. The person's message is a bubble with Copy,
14
+ * Edit, and the time under it; the agent's turn holds its parts in a column,
15
+ * without a bubble.
16
+ */export function Message(messageProps){if(messageProps.from==="user"){return/*#__PURE__*/_jsx(UserMessage,{...messageProps});}const{author,avatar,children,from,...rest}=messageProps;return/*#__PURE__*/_jsx(Frame,{align:"start",author:author,avatar:avatar,from:from,rest:rest,children:/*#__PURE__*/_jsx(MotionScope,{children:/*#__PURE__*/_jsx(Arrivals,{children:children})})});}
@@ -0,0 +1,3 @@
1
+ import{create}from"@stylexjs/stylex";import"../../styles/colors.stylex";import{colors}from"../../styles/colors.stylex";import"../../styles/conditions.stylex";import{conditions}from"../../styles/conditions.stylex";import"../../styles/dimensions.stylex";import{controlSize,glyphSize}from"../../styles/dimensions.stylex";import"../../styles/interaction.stylex";import{borderWidth}from"../../styles/interaction.stylex";import"../../styles/motion.stylex";import{duration,easing}from"../../styles/motion.stylex";import"../../styles/shape.stylex";import{shape}from"../../styles/shape.stylex";import"../../styles/spacing.stylex";import{space}from"../../styles/spacing.stylex";import"../../styles/typography.stylex";import{lineHeight}from"../../styles/typography.stylex";// Pulls a row of small icon buttons out by their padding, so the glyph at
2
+ // the edge lines up with the bubble's edge.
3
+ const BUTTON_INSET=`calc((${controlSize.xs} - ${glyphSize.xs}) / -2)`;export const messageStyles={actions:{kGNEyG:"x6s0dn4",kMwMTN:"x125omll",k1xSpc:"x78zum5",kOIVth:"x13hh4mm",kAzted:"x15j2gbd",kSiTet:"x1hc1fzr x5atdce x1obg4k5 x1s37bwl",kIyJzY:"x1e471i8 x1j5v3x2",k1ekBW:"x19991ni",kAMwcw:"x1u30mss",$$css:true},actionsEnd:{k71WvV:"xrpp18u",$$css:true},actionsShown:{kSiTet:"x1hc1fzr",$$css:true},actionsStart:{kXwgrk:"x15zctf7",keTefX:"x1is7kxt",$$css:true},agentBody:{kOIVth:"xiw8qbs",$$css:true},attachments:{k1xSpc:"x78zum5",kwnvtZ:"x1a02dak",kOIVth:"xp4ho6d",kB88ic:"xe8uvvx",kogj98:"x1ghz6dp",ks0D6T:"x17na0u1",kmVPX3:"x1717udv",$$css:true},attachmentsEnd:{kjj79g:"x13a6bvl",$$css:true},author:{kMwMTN:"x125omll",kg3NbH:"xaqi9fd",$$css:true},avatar:{kmuXW:"x2lah0s",$$css:true},body:{k1xSpc:"x78zum5",kXwgrk:"xdt5ytf",kzQI83:"x1iyjqo2",kOIVth:"xp4ho6d",k7Eaqz:"xeuugli",$$css:true},bubble:{kWkggS:"xu84zt7",kaIpWk:"x1jw0md8",kMwMTN:"x14tvo57",k1xSpc:"x78zum5",kXwgrk:"xdt5ytf",kogj98:"x1ghz6dp",ks0D6T:"x17na0u1",kHjlTd:"xj0a0fe",k8WAf4:"x391bbb",kg3NbH:"xaqi9fd",khDVqt:"x126k92a",$$css:true},editor:{k1xSpc:"x78zum5",kXwgrk:"xdt5ytf",kOIVth:"xp4ho6d",kzqmXN:"xh8yej3",$$css:true},editorActions:{k1xSpc:"x78zum5",kOIVth:"xp4ho6d",kjj79g:"x13a6bvl",$$css:true},end:{kGNEyG:"xuk3077",$$css:true},error:{kGNEyG:"x6s0dn4",kMwMTN:"x1ytrddi",k1xSpc:"x3nfvp2",kOIVth:"x13hh4mm",kg3NbH:"xdbhxi8",$$css:true},folded:{kX1K2I:"x14n0q10 xw4ya9i",kskxy:"x1r5acun",kVQacm:"xb3r6kr",$$css:true},more:{kGNEyG:"x6s0dn4",kSGwAc:"xqcrz7y",kysU6D:"xjyslct",kWkggS:"xjbqb8w",kaIpWk:"xvozwe9",kMzoRj:"xc342km",kMwMTN:"xzr6qem x125omll",kkrTdU:"x1ypdohk",k1xSpc:"x1h6yokb x1s85apg",keoZOQ:"xhumjv5",kAzted:"xvfbv0m",kjBf7l:"x4dprnk x1uczgqu",kInvED:"x1hl8ikr",k3XXqK:"x9v5kkp x1t137rt",kMeerF:"x1vhx2qj",kmVPX3:"x1717udv",$$css:true},reverse:{kXwgrk:"x15zctf7",$$css:true},root:{kGNEyG:"x1cy8zhl",k1xSpc:"x78zum5",kOIVth:"xiw8qbs",k7Eaqz:"xeuugli",$$css:true},start:{kGNEyG:"x1cy8zhl",$$css:true},text:{kogj98:"x1ghz6dp",$$css:true},time:{kcqcaj:"xss6m8b",kg3NbH:"xdbhxi8",$$css:true}};
@@ -0,0 +1,58 @@
1
+ export interface MessageScrollerAnchor {
2
+ id: string;
3
+ /** The anchor's own text, such as the question the person sent. */
4
+ label: string;
5
+ /** The start of the reply that follows it, empty until one arrives. */
6
+ reply: string;
7
+ }
8
+ export interface MessageScrollerSnapshot {
9
+ anchors: readonly MessageScrollerAnchor[];
10
+ /** True when there is nothing below the view to scroll toward. */
11
+ atEnd: boolean;
12
+ /** The turn being read, for a navigation rail. */
13
+ current: string | null;
14
+ }
15
+ export declare class MessageScrollerStore {
16
+ private viewport;
17
+ private log;
18
+ private spacer;
19
+ /** following: growing content keeps the view at the end. started: the view has opened at the end. */
20
+ private readonly mode;
21
+ /** The last turn sent while watching; it settles near the top. */
22
+ private anchor;
23
+ /** A scroll position the store set itself, until the view reaches it. */
24
+ private target;
25
+ /** The first item in view and its offset, so the view can hold still. */
26
+ private reference;
27
+ private snapshot;
28
+ private readonly listeners;
29
+ readonly subscribe: (listener: () => void) => () => void;
30
+ readonly getSnapshot: () => MessageScrollerSnapshot;
31
+ /** True once the view is on screen: rows from now on are new arrivals. */
32
+ readonly isLive: () => boolean;
33
+ readonly attachLog: (log: HTMLElement | null) => (() => void) | undefined;
34
+ readonly attachSpacer: (spacer: HTMLElement | null) => void;
35
+ readonly attachViewport: (viewport: HTMLElement | null) => (() => void) | undefined;
36
+ /** Scrolls to the newest content and follows it again. */
37
+ readonly scrollToEnd: (behavior?: ScrollBehavior) => void;
38
+ /** Scrolls a message to the top of the view, the previous turn peeking. */
39
+ readonly scrollToMessage: (id: string, behavior?: ScrollBehavior) => boolean;
40
+ private start;
41
+ private offsetOf;
42
+ private scrollTo;
43
+ private readonly onIntent;
44
+ private readonly onKey;
45
+ private readonly onScroll;
46
+ private onLayout;
47
+ private onMutation;
48
+ private sentTurn;
49
+ private settle;
50
+ private onBusyChange;
51
+ private sizeSpacer;
52
+ private distance;
53
+ private unseen;
54
+ private remember;
55
+ private holdStill;
56
+ private currentAnchor;
57
+ private update;
58
+ }