@50arms/ui 0.0.0-stage → 35.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 (1256) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +193 -2
  3. package/dist/components/Accordion.js +68 -0
  4. package/dist/components/Accordion.js.map +1 -0
  5. package/dist/components/AgentWorkingSpinner.js +46 -0
  6. package/dist/components/AgentWorkingSpinner.js.map +1 -0
  7. package/dist/components/AppShell.js +228 -0
  8. package/dist/components/AppShell.js.map +1 -0
  9. package/dist/components/Attention.js +130 -0
  10. package/dist/components/Attention.js.map +1 -0
  11. package/dist/components/Avatar.js +99 -0
  12. package/dist/components/Avatar.js.map +1 -0
  13. package/dist/components/Badge.js +143 -0
  14. package/dist/components/Badge.js.map +1 -0
  15. package/dist/components/Board.js +292 -0
  16. package/dist/components/Board.js.map +1 -0
  17. package/dist/components/Button.js +327 -0
  18. package/dist/components/Button.js.map +1 -0
  19. package/dist/components/Callout.js +106 -0
  20. package/dist/components/Callout.js.map +1 -0
  21. package/dist/components/Card.js +140 -0
  22. package/dist/components/Card.js.map +1 -0
  23. package/dist/components/Choice.js +361 -0
  24. package/dist/components/Choice.js.map +1 -0
  25. package/dist/components/CodeEditor.js +384 -0
  26. package/dist/components/CodeEditor.js.map +1 -0
  27. package/dist/components/ColorPicker.js +174 -0
  28. package/dist/components/ColorPicker.js.map +1 -0
  29. package/dist/components/Combobox.js +212 -0
  30. package/dist/components/Combobox.js.map +1 -0
  31. package/dist/components/CommandPalette.js +163 -0
  32. package/dist/components/CommandPalette.js.map +1 -0
  33. package/dist/components/ConcentricRing.js +60 -0
  34. package/dist/components/ConcentricRing.js.map +1 -0
  35. package/dist/components/ConnectionCard.js +98 -0
  36. package/dist/components/ConnectionCard.js.map +1 -0
  37. package/dist/components/ContextItemRow.js +49 -0
  38. package/dist/components/ContextItemRow.js.map +1 -0
  39. package/dist/components/CopyValue.js +57 -0
  40. package/dist/components/CopyValue.js.map +1 -0
  41. package/dist/components/CountBadge.js +26 -0
  42. package/dist/components/CountBadge.js.map +1 -0
  43. package/dist/components/DateCalendar.js +156 -0
  44. package/dist/components/DateCalendar.js.map +1 -0
  45. package/dist/components/DateField.js +166 -0
  46. package/dist/components/DateField.js.map +1 -0
  47. package/dist/components/DatePicker.js +56 -0
  48. package/dist/components/DatePicker.js.map +1 -0
  49. package/dist/components/DateTimeText.js +19 -0
  50. package/dist/components/DateTimeText.js.map +1 -0
  51. package/dist/components/DescriptionList.js +25 -0
  52. package/dist/components/DescriptionList.js.map +1 -0
  53. package/dist/components/Dialog.js +332 -0
  54. package/dist/components/Dialog.js.map +1 -0
  55. package/dist/components/DragDrop.js +395 -0
  56. package/dist/components/DragDrop.js.map +1 -0
  57. package/dist/components/Drawer.js +100 -0
  58. package/dist/components/Drawer.js.map +1 -0
  59. package/dist/components/EditGutter.js +110 -0
  60. package/dist/components/EditGutter.js.map +1 -0
  61. package/dist/components/EmojiPicker.js +174 -0
  62. package/dist/components/EmojiPicker.js.map +1 -0
  63. package/dist/components/ErrorBoundary.js +47 -0
  64. package/dist/components/ErrorBoundary.js.map +1 -0
  65. package/dist/components/Field.js +115 -0
  66. package/dist/components/Field.js.map +1 -0
  67. package/dist/components/FileUpload.js +128 -0
  68. package/dist/components/FileUpload.js.map +1 -0
  69. package/dist/components/FilterMenu.js +256 -0
  70. package/dist/components/FilterMenu.js.map +1 -0
  71. package/dist/components/GatesSection.js +79 -0
  72. package/dist/components/GatesSection.js.map +1 -0
  73. package/dist/components/Icon.js +50 -0
  74. package/dist/components/Icon.js.map +1 -0
  75. package/dist/components/IconButton.js +59 -0
  76. package/dist/components/IconButton.js.map +1 -0
  77. package/dist/components/IconStack.js +69 -0
  78. package/dist/components/IconStack.js.map +1 -0
  79. package/dist/components/ImageUploadField.js +146 -0
  80. package/dist/components/ImageUploadField.js.map +1 -0
  81. package/dist/components/InlineEdit.js +432 -0
  82. package/dist/components/InlineEdit.js.map +1 -0
  83. package/dist/components/InlineMarkdownEdit.js +184 -0
  84. package/dist/components/InlineMarkdownEdit.js.map +1 -0
  85. package/dist/components/Input.js +156 -0
  86. package/dist/components/Input.js.map +1 -0
  87. package/dist/components/LegalDocument.js +155 -0
  88. package/dist/components/LegalDocument.js.map +1 -0
  89. package/dist/components/LineDiff.js +95 -0
  90. package/dist/components/LineDiff.js.map +1 -0
  91. package/dist/components/ListHeader.js +72 -0
  92. package/dist/components/ListHeader.js.map +1 -0
  93. package/dist/components/Loading.js +111 -0
  94. package/dist/components/Loading.js.map +1 -0
  95. package/dist/components/Markdown.js +28 -0
  96. package/dist/components/Markdown.js.map +1 -0
  97. package/dist/components/MarkdownEditor.js +467 -0
  98. package/dist/components/MarkdownEditor.js.map +1 -0
  99. package/dist/components/Menu.js +185 -0
  100. package/dist/components/Menu.js.map +1 -0
  101. package/dist/components/Navigation.js +87 -0
  102. package/dist/components/Navigation.js.map +1 -0
  103. package/dist/components/NumberInput.js +119 -0
  104. package/dist/components/NumberInput.js.map +1 -0
  105. package/dist/components/OTPInput.js +71 -0
  106. package/dist/components/OTPInput.js.map +1 -0
  107. package/dist/components/OrderedEntityManager.js +170 -0
  108. package/dist/components/OrderedEntityManager.js.map +1 -0
  109. package/dist/components/PagedWindowList.js +74 -0
  110. package/dist/components/PagedWindowList.js.map +1 -0
  111. package/dist/components/PaginationBar.js +95 -0
  112. package/dist/components/PaginationBar.js.map +1 -0
  113. package/dist/components/Panel.js +396 -0
  114. package/dist/components/Panel.js.map +1 -0
  115. package/dist/components/PasswordInput.js +32 -0
  116. package/dist/components/PasswordInput.js.map +1 -0
  117. package/dist/components/PasswordRequirements.js +25 -0
  118. package/dist/components/PasswordRequirements.js.map +1 -0
  119. package/dist/components/PatchDiff.js +96 -0
  120. package/dist/components/PatchDiff.js.map +1 -0
  121. package/dist/components/PendingVeil.js +18 -0
  122. package/dist/components/PendingVeil.js.map +1 -0
  123. package/dist/components/Popover.js +214 -0
  124. package/dist/components/Popover.js.map +1 -0
  125. package/dist/components/Progress.js +419 -0
  126. package/dist/components/Progress.js.map +1 -0
  127. package/dist/components/RatingScale.js +89 -0
  128. package/dist/components/RatingScale.js.map +1 -0
  129. package/dist/components/ReadMore.js +232 -0
  130. package/dist/components/ReadMore.js.map +1 -0
  131. package/dist/components/RecordCard.js +202 -0
  132. package/dist/components/RecordCard.js.map +1 -0
  133. package/dist/components/RelativeTime.js +29 -0
  134. package/dist/components/RelativeTime.js.map +1 -0
  135. package/dist/components/SandboxedFrame.js +135 -0
  136. package/dist/components/SandboxedFrame.js.map +1 -0
  137. package/dist/components/SearchInput.js +38 -0
  138. package/dist/components/SearchInput.js.map +1 -0
  139. package/dist/components/SecretField.js +228 -0
  140. package/dist/components/SecretField.js.map +1 -0
  141. package/dist/components/SectionNav.js +42 -0
  142. package/dist/components/SectionNav.js.map +1 -0
  143. package/dist/components/Select.js +172 -0
  144. package/dist/components/Select.js.map +1 -0
  145. package/dist/components/SequenceDiagram.js +109 -0
  146. package/dist/components/SequenceDiagram.js.map +1 -0
  147. package/dist/components/SettingRow.js +124 -0
  148. package/dist/components/SettingRow.js.map +1 -0
  149. package/dist/components/SignOffRings.js +36 -0
  150. package/dist/components/SignOffRings.js.map +1 -0
  151. package/dist/components/Slider.js +353 -0
  152. package/dist/components/Slider.js.map +1 -0
  153. package/dist/components/SolutionChoice.js +89 -0
  154. package/dist/components/SolutionChoice.js.map +1 -0
  155. package/dist/components/SortMenu.js +75 -0
  156. package/dist/components/SortMenu.js.map +1 -0
  157. package/dist/components/Spinner.js +42 -0
  158. package/dist/components/Spinner.js.map +1 -0
  159. package/dist/components/Stat.js +148 -0
  160. package/dist/components/Stat.js.map +1 -0
  161. package/dist/components/StatusSelect.js +119 -0
  162. package/dist/components/StatusSelect.js.map +1 -0
  163. package/dist/components/Surface.js +210 -0
  164. package/dist/components/Surface.js.map +1 -0
  165. package/dist/components/Table.js +300 -0
  166. package/dist/components/Table.js.map +1 -0
  167. package/dist/components/Tabs.js +288 -0
  168. package/dist/components/Tabs.js.map +1 -0
  169. package/dist/components/ThemeMenu.js +198 -0
  170. package/dist/components/ThemeMenu.js.map +1 -0
  171. package/dist/components/Toast.js +217 -0
  172. package/dist/components/Toast.js.map +1 -0
  173. package/dist/components/Toggle.js +147 -0
  174. package/dist/components/Toggle.js.map +1 -0
  175. package/dist/components/ToggleMatrix.js +157 -0
  176. package/dist/components/ToggleMatrix.js.map +1 -0
  177. package/dist/components/Tree.js +125 -0
  178. package/dist/components/Tree.js.map +1 -0
  179. package/dist/components/TriStateSwitch.js +111 -0
  180. package/dist/components/TriStateSwitch.js.map +1 -0
  181. package/dist/components/VideoPlayer.js +64 -0
  182. package/dist/components/VideoPlayer.js.map +1 -0
  183. package/dist/components/auth/AcceptInvitationCard.js +110 -0
  184. package/dist/components/auth/AcceptInvitationCard.js.map +1 -0
  185. package/dist/components/auth/AuthLayout.js +18 -0
  186. package/dist/components/auth/AuthLayout.js.map +1 -0
  187. package/dist/components/auth/ForgotPasswordForm.js +44 -0
  188. package/dist/components/auth/ForgotPasswordForm.js.map +1 -0
  189. package/dist/components/auth/LoginForm.js +76 -0
  190. package/dist/components/auth/LoginForm.js.map +1 -0
  191. package/dist/components/auth/ResetPasswordForm.js +69 -0
  192. package/dist/components/auth/ResetPasswordForm.js.map +1 -0
  193. package/dist/components/auth/SignInProviders.js +45 -0
  194. package/dist/components/auth/SignInProviders.js.map +1 -0
  195. package/dist/components/auth/SignupCard.js +204 -0
  196. package/dist/components/auth/SignupCard.js.map +1 -0
  197. package/dist/components/auth/TermsAcceptance.js +43 -0
  198. package/dist/components/auth/TermsAcceptance.js.map +1 -0
  199. package/dist/components/board/context.js +32 -0
  200. package/dist/components/board/context.js.map +1 -0
  201. package/dist/components/board/recipe.js +94 -0
  202. package/dist/components/board/recipe.js.map +1 -0
  203. package/dist/components/calendar/CalendarMonth.js +299 -0
  204. package/dist/components/calendar/CalendarMonth.js.map +1 -0
  205. package/dist/components/calendar/CalendarTimeGrid.js +430 -0
  206. package/dist/components/calendar/CalendarTimeGrid.js.map +1 -0
  207. package/dist/components/calendar/EventActions.js +101 -0
  208. package/dist/components/calendar/EventActions.js.map +1 -0
  209. package/dist/components/calendar/format.js +73 -0
  210. package/dist/components/calendar/format.js.map +1 -0
  211. package/dist/components/calendar/palette.js +31 -0
  212. package/dist/components/calendar/palette.js.map +1 -0
  213. package/dist/components/calendar/use-calendar-drag.js +149 -0
  214. package/dist/components/calendar/use-calendar-drag.js.map +1 -0
  215. package/dist/components/calendar/use-event-keyboard.js +87 -0
  216. package/dist/components/calendar/use-event-keyboard.js.map +1 -0
  217. package/dist/components/calendar/use-grid-navigation.js +79 -0
  218. package/dist/components/calendar/use-grid-navigation.js.map +1 -0
  219. package/dist/components/calendar/use-now.js +27 -0
  220. package/dist/components/calendar/use-now.js.map +1 -0
  221. package/dist/components/card-face/AcRingGlyph.js +39 -0
  222. package/dist/components/card-face/AcRingGlyph.js.map +1 -0
  223. package/dist/components/card-face/BoardCardAgentSlot.js +17 -0
  224. package/dist/components/card-face/BoardCardAgentSlot.js.map +1 -0
  225. package/dist/components/card-face/CardFace.js +109 -0
  226. package/dist/components/card-face/CardFace.js.map +1 -0
  227. package/dist/components/card-face/CardTypeBadge.js +17 -0
  228. package/dist/components/card-face/CardTypeBadge.js.map +1 -0
  229. package/dist/components/card-face/EffortBadge.js +11 -0
  230. package/dist/components/card-face/EffortBadge.js.map +1 -0
  231. package/dist/components/card-face/GateRingGlyph.js +31 -0
  232. package/dist/components/card-face/GateRingGlyph.js.map +1 -0
  233. package/dist/components/card-face/OverflowRow.js +70 -0
  234. package/dist/components/card-face/OverflowRow.js.map +1 -0
  235. package/dist/components/card-face/TapTip.js +32 -0
  236. package/dist/components/card-face/TapTip.js.map +1 -0
  237. package/dist/components/card-face/hit-area.js +6 -0
  238. package/dist/components/card-face/hit-area.js.map +1 -0
  239. package/dist/components/card-face/vocabulary.js +102 -0
  240. package/dist/components/card-face/vocabulary.js.map +1 -0
  241. package/dist/components/chart/BarList.js +78 -0
  242. package/dist/components/chart/BarList.js.map +1 -0
  243. package/dist/components/chart/LineChart.js +310 -0
  244. package/dist/components/chart/LineChart.js.map +1 -0
  245. package/dist/components/chart/ShareBar.js +141 -0
  246. package/dist/components/chart/ShareBar.js.map +1 -0
  247. package/dist/components/chart/TimeSeriesChart.js +305 -0
  248. package/dist/components/chart/TimeSeriesChart.js.map +1 -0
  249. package/dist/components/chart/label-metrics.js +17 -0
  250. package/dist/components/chart/label-metrics.js.map +1 -0
  251. package/dist/components/chart/line-chart-axis.js +38 -0
  252. package/dist/components/chart/line-chart-axis.js.map +1 -0
  253. package/dist/components/chart/line-chart-scale.js +132 -0
  254. package/dist/components/chart/line-chart-scale.js.map +1 -0
  255. package/dist/components/chart/line-series-style.js +22 -0
  256. package/dist/components/chart/line-series-style.js.map +1 -0
  257. package/dist/components/chart/share-bar-labels.js +14 -0
  258. package/dist/components/chart/share-bar-labels.js.map +1 -0
  259. package/dist/components/chart/shared.js +157 -0
  260. package/dist/components/chart/shared.js.map +1 -0
  261. package/dist/components/chart/time-series-scale.js +51 -0
  262. package/dist/components/chart/time-series-scale.js.map +1 -0
  263. package/dist/components/chat/Attachment.js +316 -0
  264. package/dist/components/chat/Attachment.js.map +1 -0
  265. package/dist/components/chat/Chat.js +171 -0
  266. package/dist/components/chat/Chat.js.map +1 -0
  267. package/dist/components/chat/Composer.js +274 -0
  268. package/dist/components/chat/Composer.js.map +1 -0
  269. package/dist/components/chat/ContextMeter.js +202 -0
  270. package/dist/components/chat/ContextMeter.js.map +1 -0
  271. package/dist/components/chat/EffortControl.js +116 -0
  272. package/dist/components/chat/EffortControl.js.map +1 -0
  273. package/dist/components/chat/FileCover.js +78 -0
  274. package/dist/components/chat/FileCover.js.map +1 -0
  275. package/dist/components/chat/Message.js +356 -0
  276. package/dist/components/chat/Message.js.map +1 -0
  277. package/dist/components/chat/MessageScroller.js +104 -0
  278. package/dist/components/chat/MessageScroller.js.map +1 -0
  279. package/dist/components/chat/ModelSelector.js +156 -0
  280. package/dist/components/chat/ModelSelector.js.map +1 -0
  281. package/dist/components/chat/StreamingMarkdown.js +42 -0
  282. package/dist/components/chat/StreamingMarkdown.js.map +1 -0
  283. package/dist/components/chat/download-file.js +9 -0
  284. package/dist/components/chat/download-file.js.map +1 -0
  285. package/dist/components/chat/file-icon.js +39 -0
  286. package/dist/components/chat/file-icon.js.map +1 -0
  287. package/dist/components/checklist/StatusChecklist.js +103 -0
  288. package/dist/components/checklist/StatusChecklist.js.map +1 -0
  289. package/dist/components/checklist/tally.js +29 -0
  290. package/dist/components/checklist/tally.js.map +1 -0
  291. package/dist/components/code-editor/context.js +13 -0
  292. package/dist/components/code-editor/context.js.map +1 -0
  293. package/dist/components/code-editor/editing.js +93 -0
  294. package/dist/components/code-editor/editing.js.map +1 -0
  295. package/dist/components/code-editor/highlight.js +27 -0
  296. package/dist/components/code-editor/highlight.js.map +1 -0
  297. package/dist/components/code-editor/recipe.js +75 -0
  298. package/dist/components/code-editor/recipe.js.map +1 -0
  299. package/dist/components/date-timeline/DateTimeline.js +358 -0
  300. package/dist/components/date-timeline/DateTimeline.js.map +1 -0
  301. package/dist/components/date-timeline/TimelineRow.js +100 -0
  302. package/dist/components/date-timeline/TimelineRow.js.map +1 -0
  303. package/dist/components/date-timeline/useBarDrag.js +44 -0
  304. package/dist/components/date-timeline/useBarDrag.js.map +1 -0
  305. package/dist/components/date-timeline/useMarkerDrag.js +40 -0
  306. package/dist/components/date-timeline/useMarkerDrag.js.map +1 -0
  307. package/dist/components/date-timeline/useTimelineZoom.js +44 -0
  308. package/dist/components/date-timeline/useTimelineZoom.js.map +1 -0
  309. package/dist/components/drag-drop/context.js +37 -0
  310. package/dist/components/drag-drop/context.js.map +1 -0
  311. package/dist/components/drag-drop/recipe.js +270 -0
  312. package/dist/components/drag-drop/recipe.js.map +1 -0
  313. package/dist/components/drag-drop/shift.js +157 -0
  314. package/dist/components/drag-drop/shift.js.map +1 -0
  315. package/dist/components/edit/activation.js +10 -0
  316. package/dist/components/edit/activation.js.map +1 -0
  317. package/dist/components/edit/outcome.js +47 -0
  318. package/dist/components/edit/outcome.js.map +1 -0
  319. package/dist/components/edit/use-edit-session.js +146 -0
  320. package/dist/components/edit/use-edit-session.js.map +1 -0
  321. package/dist/components/file-viewer/FileViewer.js +97 -0
  322. package/dist/components/file-viewer/FileViewer.js.map +1 -0
  323. package/dist/components/file-viewer/PageNumberJumpField.js +47 -0
  324. package/dist/components/file-viewer/PageNumberJumpField.js.map +1 -0
  325. package/dist/components/file-viewer/ViewerControls.js +122 -0
  326. package/dist/components/file-viewer/ViewerControls.js.map +1 -0
  327. package/dist/components/file-viewer/ViewerRail.js +57 -0
  328. package/dist/components/file-viewer/ViewerRail.js.map +1 -0
  329. package/dist/components/file-viewer/ViewerStage.js +112 -0
  330. package/dist/components/file-viewer/ViewerStage.js.map +1 -0
  331. package/dist/components/file-viewer/frames.js +37 -0
  332. package/dist/components/file-viewer/frames.js.map +1 -0
  333. package/dist/components/file-viewer/use-frame-cursor.js +32 -0
  334. package/dist/components/file-viewer/use-frame-cursor.js.map +1 -0
  335. package/dist/components/file-viewer/use-viewer-keys.js +50 -0
  336. package/dist/components/file-viewer/use-viewer-keys.js.map +1 -0
  337. package/dist/components/file-viewer/use-viewer-zoom.js +68 -0
  338. package/dist/components/file-viewer/use-viewer-zoom.js.map +1 -0
  339. package/dist/components/focus-web/FocusWeb.js +322 -0
  340. package/dist/components/focus-web/FocusWeb.js.map +1 -0
  341. package/dist/components/focus-web/layout.js +34 -0
  342. package/dist/components/focus-web/layout.js.map +1 -0
  343. package/dist/components/graph-explorer/GraphExplorer.js +441 -0
  344. package/dist/components/graph-explorer/GraphExplorer.js.map +1 -0
  345. package/dist/components/graph-explorer/camera-math.js +102 -0
  346. package/dist/components/graph-explorer/camera-math.js.map +1 -0
  347. package/dist/components/graph-explorer/tree-layout.js +103 -0
  348. package/dist/components/graph-explorer/tree-layout.js.map +1 -0
  349. package/dist/components/graph-explorer/use-camera.js +82 -0
  350. package/dist/components/graph-explorer/use-camera.js.map +1 -0
  351. package/dist/components/graph-explorer/viewport-gesture.js +107 -0
  352. package/dist/components/graph-explorer/viewport-gesture.js.map +1 -0
  353. package/dist/components/kanban/KanbanBoard.js +219 -0
  354. package/dist/components/kanban/KanbanBoard.js.map +1 -0
  355. package/dist/components/kanban/recipe.js +144 -0
  356. package/dist/components/kanban/recipe.js.map +1 -0
  357. package/dist/components/markdown/Affordances.js +398 -0
  358. package/dist/components/markdown/Affordances.js.map +1 -0
  359. package/dist/components/markdown/AttachmentStrip.js +128 -0
  360. package/dist/components/markdown/AttachmentStrip.js.map +1 -0
  361. package/dist/components/markdown/ImageUpload.js +45 -0
  362. package/dist/components/markdown/ImageUpload.js.map +1 -0
  363. package/dist/components/media-error.js +7 -0
  364. package/dist/components/media-error.js.map +1 -0
  365. package/dist/components/nav-sections.js +61 -0
  366. package/dist/components/nav-sections.js.map +1 -0
  367. package/dist/components/node-canvas/NodeCanvas.js +384 -0
  368. package/dist/components/node-canvas/NodeCanvas.js.map +1 -0
  369. package/dist/components/node-canvas/layout.js +237 -0
  370. package/dist/components/node-canvas/layout.js.map +1 -0
  371. package/dist/components/node-canvas/use-canvas-gestures.js +143 -0
  372. package/dist/components/node-canvas/use-canvas-gestures.js.map +1 -0
  373. package/dist/components/openapi/OpenApiViewer.js +137 -0
  374. package/dist/components/openapi/OpenApiViewer.js.map +1 -0
  375. package/dist/components/openapi/OperationCard.js +145 -0
  376. package/dist/components/openapi/OperationCard.js.map +1 -0
  377. package/dist/components/openapi/SchemaView.js +68 -0
  378. package/dist/components/openapi/SchemaView.js.map +1 -0
  379. package/dist/components/openapi/resolve.js +102 -0
  380. package/dist/components/openapi/resolve.js.map +1 -0
  381. package/dist/components/openapi/types.js +5 -0
  382. package/dist/components/openapi/types.js.map +1 -0
  383. package/dist/components/overlay-shell.js +29 -0
  384. package/dist/components/overlay-shell.js.map +1 -0
  385. package/dist/components/overlay-stack.js +27 -0
  386. package/dist/components/overlay-stack.js.map +1 -0
  387. package/dist/components/paged-window/PageBlock.js +50 -0
  388. package/dist/components/paged-window/PageBlock.js.map +1 -0
  389. package/dist/components/provenance/ConfidenceBar.js +60 -0
  390. package/dist/components/provenance/ConfidenceBar.js.map +1 -0
  391. package/dist/components/provenance/ConfidenceMeter.js +36 -0
  392. package/dist/components/provenance/ConfidenceMeter.js.map +1 -0
  393. package/dist/components/provenance/ConfidenceReadout.js +31 -0
  394. package/dist/components/provenance/ConfidenceReadout.js.map +1 -0
  395. package/dist/components/provenance/ProvenanceBadge.js +44 -0
  396. package/dist/components/provenance/ProvenanceBadge.js.map +1 -0
  397. package/dist/components/provenance/ProvenanceDetail.js +114 -0
  398. package/dist/components/provenance/ProvenanceDetail.js.map +1 -0
  399. package/dist/components/provenance/ProvenanceDisclosure.js +111 -0
  400. package/dist/components/provenance/ProvenanceDisclosure.js.map +1 -0
  401. package/dist/components/provenance/absence.js +31 -0
  402. package/dist/components/provenance/absence.js.map +1 -0
  403. package/dist/components/provenance/types.js +30 -0
  404. package/dist/components/provenance/types.js.map +1 -0
  405. package/dist/components/rbac/AccessRequestPanel.js +153 -0
  406. package/dist/components/rbac/AccessRequestPanel.js.map +1 -0
  407. package/dist/components/rbac/AccountMenu.js +118 -0
  408. package/dist/components/rbac/AccountMenu.js.map +1 -0
  409. package/dist/components/rbac/AgentKeysList.js +20 -0
  410. package/dist/components/rbac/AgentKeysList.js.map +1 -0
  411. package/dist/components/rbac/ApiKeysPanel.js +172 -0
  412. package/dist/components/rbac/ApiKeysPanel.js.map +1 -0
  413. package/dist/components/rbac/ApiKeysTable.js +167 -0
  414. package/dist/components/rbac/ApiKeysTable.js.map +1 -0
  415. package/dist/components/rbac/Brand.js +13 -0
  416. package/dist/components/rbac/Brand.js.map +1 -0
  417. package/dist/components/rbac/Can.js +18 -0
  418. package/dist/components/rbac/Can.js.map +1 -0
  419. package/dist/components/rbac/ChangePasswordForm.js +73 -0
  420. package/dist/components/rbac/ChangePasswordForm.js.map +1 -0
  421. package/dist/components/rbac/DangerZone.js +27 -0
  422. package/dist/components/rbac/DangerZone.js.map +1 -0
  423. package/dist/components/rbac/DevToolsPopover.js +140 -0
  424. package/dist/components/rbac/DevToolsPopover.js.map +1 -0
  425. package/dist/components/rbac/EndedLine.js +24 -0
  426. package/dist/components/rbac/EndedLine.js.map +1 -0
  427. package/dist/components/rbac/InvitationsList.js +148 -0
  428. package/dist/components/rbac/InvitationsList.js.map +1 -0
  429. package/dist/components/rbac/InviteMembersDialog.js +97 -0
  430. package/dist/components/rbac/InviteMembersDialog.js.map +1 -0
  431. package/dist/components/rbac/MembersPanel.js +138 -0
  432. package/dist/components/rbac/MembersPanel.js.map +1 -0
  433. package/dist/components/rbac/PermissionRequestPanel.js +141 -0
  434. package/dist/components/rbac/PermissionRequestPanel.js.map +1 -0
  435. package/dist/components/rbac/ProfileForm.js +86 -0
  436. package/dist/components/rbac/ProfileForm.js.map +1 -0
  437. package/dist/components/rbac/ProfilePage.js +58 -0
  438. package/dist/components/rbac/ProfilePage.js.map +1 -0
  439. package/dist/components/rbac/RBACProvider.js +82 -0
  440. package/dist/components/rbac/RBACProvider.js.map +1 -0
  441. package/dist/components/rbac/RoleEditorDialog.js +90 -0
  442. package/dist/components/rbac/RoleEditorDialog.js.map +1 -0
  443. package/dist/components/rbac/RoleKeyPicker.js +77 -0
  444. package/dist/components/rbac/RoleKeyPicker.js.map +1 -0
  445. package/dist/components/rbac/RolePermissionMatrix.js +37 -0
  446. package/dist/components/rbac/RolePermissionMatrix.js.map +1 -0
  447. package/dist/components/rbac/RolesPermissionsPage.js +142 -0
  448. package/dist/components/rbac/RolesPermissionsPage.js.map +1 -0
  449. package/dist/components/rbac/SessionsList.js +146 -0
  450. package/dist/components/rbac/SessionsList.js.map +1 -0
  451. package/dist/components/rbac/TeamSettingsForm.js +69 -0
  452. package/dist/components/rbac/TeamSettingsForm.js.map +1 -0
  453. package/dist/components/rbac/TeamSwitcher.js +66 -0
  454. package/dist/components/rbac/TeamSwitcher.js.map +1 -0
  455. package/dist/components/rbac/approvalPanelParts.js +130 -0
  456. package/dist/components/rbac/approvalPanelParts.js.map +1 -0
  457. package/dist/components/rbac/permissionSections.js +8 -0
  458. package/dist/components/rbac/permissionSections.js.map +1 -0
  459. package/dist/components/rbac/stagedForm.js +42 -0
  460. package/dist/components/rbac/stagedForm.js.map +1 -0
  461. package/dist/components/rbac/useStagedImage.js +21 -0
  462. package/dist/components/rbac/useStagedImage.js.map +1 -0
  463. package/dist/components/roadmap/PhaseManager.js +48 -0
  464. package/dist/components/roadmap/PhaseManager.js.map +1 -0
  465. package/dist/components/roadmap/RoadmapItemCard.js +96 -0
  466. package/dist/components/roadmap/RoadmapItemCard.js.map +1 -0
  467. package/dist/components/roadmap/RoadmapPage.js +34 -0
  468. package/dist/components/roadmap/RoadmapPage.js.map +1 -0
  469. package/dist/components/roadmap/RoadmapSwimlaneBoard.js +91 -0
  470. package/dist/components/roadmap/RoadmapSwimlaneBoard.js.map +1 -0
  471. package/dist/components/roadmap/TrackManager.js +58 -0
  472. package/dist/components/roadmap/TrackManager.js.map +1 -0
  473. package/dist/components/roadmap/UseCaseCard.js +93 -0
  474. package/dist/components/roadmap/UseCaseCard.js.map +1 -0
  475. package/dist/components/roadmap/UseCaseLedgerPage.js +98 -0
  476. package/dist/components/roadmap/UseCaseLedgerPage.js.map +1 -0
  477. package/dist/components/roadmap/chip-tones.js +9 -0
  478. package/dist/components/roadmap/chip-tones.js.map +1 -0
  479. package/dist/components/roadmap/derive.js +28 -0
  480. package/dist/components/roadmap/derive.js.map +1 -0
  481. package/dist/components/stepper/Stepper.js +276 -0
  482. package/dist/components/stepper/Stepper.js.map +1 -0
  483. package/dist/components/stepper/derive.js +53 -0
  484. package/dist/components/stepper/derive.js.map +1 -0
  485. package/dist/confidence.css +222 -0
  486. package/dist/fonts/bricolage-grotesque-0.woff2 +0 -0
  487. package/dist/fonts/bricolage-grotesque-1.woff2 +0 -0
  488. package/dist/fonts/bricolage-grotesque-2.woff2 +0 -0
  489. package/dist/fonts/figtree-0.woff2 +0 -0
  490. package/dist/fonts/figtree-1.woff2 +0 -0
  491. package/dist/fonts/figtree-2.woff2 +0 -0
  492. package/dist/fonts/figtree-3.woff2 +0 -0
  493. package/dist/fonts/jetbrains-mono-0.woff2 +0 -0
  494. package/dist/fonts/jetbrains-mono-1.woff2 +0 -0
  495. package/dist/fonts/jetbrains-mono-10.woff2 +0 -0
  496. package/dist/fonts/jetbrains-mono-11.woff2 +0 -0
  497. package/dist/fonts/jetbrains-mono-2.woff2 +0 -0
  498. package/dist/fonts/jetbrains-mono-3.woff2 +0 -0
  499. package/dist/fonts/jetbrains-mono-4.woff2 +0 -0
  500. package/dist/fonts/jetbrains-mono-5.woff2 +0 -0
  501. package/dist/fonts/jetbrains-mono-6.woff2 +0 -0
  502. package/dist/fonts/jetbrains-mono-7.woff2 +0 -0
  503. package/dist/fonts/jetbrains-mono-8.woff2 +0 -0
  504. package/dist/fonts/jetbrains-mono-9.woff2 +0 -0
  505. package/dist/fonts.css +187 -0
  506. package/dist/icons/data.js +233 -0
  507. package/dist/icons/data.js.map +1 -0
  508. package/dist/index.js +942 -0
  509. package/dist/index.js.map +1 -0
  510. package/dist/lib/attention.js +75 -0
  511. package/dist/lib/attention.js.map +1 -0
  512. package/dist/lib/board/anchor.js +14 -0
  513. package/dist/lib/board/anchor.js.map +1 -0
  514. package/dist/lib/board/model.js +41 -0
  515. package/dist/lib/board/model.js.map +1 -0
  516. package/dist/lib/board/move.js +161 -0
  517. package/dist/lib/board/move.js.map +1 -0
  518. package/dist/lib/board/position.js +11 -0
  519. package/dist/lib/board/position.js.map +1 -0
  520. package/dist/lib/board/rejection.js +22 -0
  521. package/dist/lib/board/rejection.js.map +1 -0
  522. package/dist/lib/board/use-board.js +43 -0
  523. package/dist/lib/board/use-board.js.map +1 -0
  524. package/dist/lib/calendar/band-packer.js +44 -0
  525. package/dist/lib/calendar/band-packer.js.map +1 -0
  526. package/dist/lib/calendar/drag.js +74 -0
  527. package/dist/lib/calendar/drag.js.map +1 -0
  528. package/dist/lib/calendar/lane-packer.js +67 -0
  529. package/dist/lib/calendar/lane-packer.js.map +1 -0
  530. package/dist/lib/calendar/segments.js +82 -0
  531. package/dist/lib/calendar/segments.js.map +1 -0
  532. package/dist/lib/calendar/types.js +7 -0
  533. package/dist/lib/calendar/types.js.map +1 -0
  534. package/dist/lib/chart-palette.js +27 -0
  535. package/dist/lib/chart-palette.js.map +1 -0
  536. package/dist/lib/clipboard.js +30 -0
  537. package/dist/lib/clipboard.js.map +1 -0
  538. package/dist/lib/cn.js +9 -0
  539. package/dist/lib/cn.js.map +1 -0
  540. package/dist/lib/color.js +24 -0
  541. package/dist/lib/color.js.map +1 -0
  542. package/dist/lib/component-guidance.js +297 -0
  543. package/dist/lib/component-guidance.js.map +1 -0
  544. package/dist/lib/confidence.js +22 -0
  545. package/dist/lib/confidence.js.map +1 -0
  546. package/dist/lib/date-timeline/scale.js +197 -0
  547. package/dist/lib/date-timeline/scale.js.map +1 -0
  548. package/dist/lib/design-frame/document.js +44 -0
  549. package/dist/lib/design-frame/document.js.map +1 -0
  550. package/dist/lib/design-frame/mini-app-script.js +107 -0
  551. package/dist/lib/design-frame/mini-app-script.js.map +1 -0
  552. package/dist/lib/design-frame/mini-app.js +12 -0
  553. package/dist/lib/design-frame/mini-app.js.map +1 -0
  554. package/dist/lib/design-frame/protocol.js +46 -0
  555. package/dist/lib/design-frame/protocol.js.map +1 -0
  556. package/dist/lib/dev-warn.js +17 -0
  557. package/dist/lib/dev-warn.js.map +1 -0
  558. package/dist/lib/dnd/announce.js +120 -0
  559. package/dist/lib/dnd/announce.js.map +1 -0
  560. package/dist/lib/dnd/autoscroll.js +123 -0
  561. package/dist/lib/dnd/autoscroll.js.map +1 -0
  562. package/dist/lib/dnd/cross-drop.js +11 -0
  563. package/dist/lib/dnd/cross-drop.js.map +1 -0
  564. package/dist/lib/dnd/geometry.js +99 -0
  565. package/dist/lib/dnd/geometry.js.map +1 -0
  566. package/dist/lib/dnd/sensors/gesture.js +86 -0
  567. package/dist/lib/dnd/sensors/gesture.js.map +1 -0
  568. package/dist/lib/dnd/sensors/keyboard.js +47 -0
  569. package/dist/lib/dnd/sensors/keyboard.js.map +1 -0
  570. package/dist/lib/dnd/sensors/pointer.js +32 -0
  571. package/dist/lib/dnd/sensors/pointer.js.map +1 -0
  572. package/dist/lib/dnd/session.js +256 -0
  573. package/dist/lib/dnd/session.js.map +1 -0
  574. package/dist/lib/dnd/use-drag.js +90 -0
  575. package/dist/lib/dnd/use-drag.js.map +1 -0
  576. package/dist/lib/dom/scroll-ancestor.js +18 -0
  577. package/dist/lib/dom/scroll-ancestor.js.map +1 -0
  578. package/dist/lib/format.js +23 -0
  579. package/dist/lib/format.js.map +1 -0
  580. package/dist/lib/group-in-order.js +13 -0
  581. package/dist/lib/group-in-order.js.map +1 -0
  582. package/dist/lib/header-fold.js +11 -0
  583. package/dist/lib/header-fold.js.map +1 -0
  584. package/dist/lib/i18n/areas/auth-provenance-flows.js +156 -0
  585. package/dist/lib/i18n/areas/auth-provenance-flows.js.map +1 -0
  586. package/dist/lib/i18n/areas/board.js +35 -0
  587. package/dist/lib/i18n/areas/board.js.map +1 -0
  588. package/dist/lib/i18n/areas/card-face.js +10 -0
  589. package/dist/lib/i18n/areas/card-face.js.map +1 -0
  590. package/dist/lib/i18n/areas/chat-chart.js +118 -0
  591. package/dist/lib/i18n/areas/chat-chart.js.map +1 -0
  592. package/dist/lib/i18n/areas/code-editor.js +24 -0
  593. package/dist/lib/i18n/areas/code-editor.js.map +1 -0
  594. package/dist/lib/i18n/areas/date-timeline.js +21 -0
  595. package/dist/lib/i18n/areas/date-timeline.js.map +1 -0
  596. package/dist/lib/i18n/areas/dates.js +71 -0
  597. package/dist/lib/i18n/areas/dates.js.map +1 -0
  598. package/dist/lib/i18n/areas/docs-views.js +183 -0
  599. package/dist/lib/i18n/areas/docs-views.js.map +1 -0
  600. package/dist/lib/i18n/areas/feedback.js +75 -0
  601. package/dist/lib/i18n/areas/feedback.js.map +1 -0
  602. package/dist/lib/i18n/areas/formats.js +24 -0
  603. package/dist/lib/i18n/areas/formats.js.map +1 -0
  604. package/dist/lib/i18n/areas/forms.js +110 -0
  605. package/dist/lib/i18n/areas/forms.js.map +1 -0
  606. package/dist/lib/i18n/areas/keys.js +25 -0
  607. package/dist/lib/i18n/areas/keys.js.map +1 -0
  608. package/dist/lib/i18n/areas/markdown.js +136 -0
  609. package/dist/lib/i18n/areas/markdown.js.map +1 -0
  610. package/dist/lib/i18n/areas/move-rejected.js +14 -0
  611. package/dist/lib/i18n/areas/move-rejected.js.map +1 -0
  612. package/dist/lib/i18n/areas/navigation.js +104 -0
  613. package/dist/lib/i18n/areas/navigation.js.map +1 -0
  614. package/dist/lib/i18n/areas/rbac.js +331 -0
  615. package/dist/lib/i18n/areas/rbac.js.map +1 -0
  616. package/dist/lib/i18n/emphasis.js +6 -0
  617. package/dist/lib/i18n/emphasis.js.map +1 -0
  618. package/dist/lib/i18n/number-format.js +9 -0
  619. package/dist/lib/i18n/number-format.js.map +1 -0
  620. package/dist/lib/i18n/plural.js +9 -0
  621. package/dist/lib/i18n/plural.js.map +1 -0
  622. package/dist/lib/i18n/provider.js +27 -0
  623. package/dist/lib/i18n/provider.js.map +1 -0
  624. package/dist/lib/i18n/strings.js +38 -0
  625. package/dist/lib/i18n/strings.js.map +1 -0
  626. package/dist/lib/icons.js +17 -0
  627. package/dist/lib/icons.js.map +1 -0
  628. package/dist/lib/interactive-target.js +9 -0
  629. package/dist/lib/interactive-target.js.map +1 -0
  630. package/dist/lib/intl-cache.js +69 -0
  631. package/dist/lib/intl-cache.js.map +1 -0
  632. package/dist/lib/legal-document.js +37 -0
  633. package/dist/lib/legal-document.js.map +1 -0
  634. package/dist/lib/line-diff-model.js +51 -0
  635. package/dist/lib/line-diff-model.js.map +1 -0
  636. package/dist/lib/markdown/attachments.js +71 -0
  637. package/dist/lib/markdown/attachments.js.map +1 -0
  638. package/dist/lib/markdown/caret-map.js +153 -0
  639. package/dist/lib/markdown/caret-map.js.map +1 -0
  640. package/dist/lib/markdown/caret.js +35 -0
  641. package/dist/lib/markdown/caret.js.map +1 -0
  642. package/dist/lib/markdown/commands.js +443 -0
  643. package/dist/lib/markdown/commands.js.map +1 -0
  644. package/dist/lib/markdown/convert.js +153 -0
  645. package/dist/lib/markdown/convert.js.map +1 -0
  646. package/dist/lib/markdown/dom.js +89 -0
  647. package/dist/lib/markdown/dom.js.map +1 -0
  648. package/dist/lib/markdown/edit.js +92 -0
  649. package/dist/lib/markdown/edit.js.map +1 -0
  650. package/dist/lib/markdown/history.js +79 -0
  651. package/dist/lib/markdown/history.js.map +1 -0
  652. package/dist/lib/markdown/hotkeys.js +63 -0
  653. package/dist/lib/markdown/hotkeys.js.map +1 -0
  654. package/dist/lib/markdown/image-pipeline.js +236 -0
  655. package/dist/lib/markdown/image-pipeline.js.map +1 -0
  656. package/dist/lib/markdown/images.js +85 -0
  657. package/dist/lib/markdown/images.js.map +1 -0
  658. package/dist/lib/markdown/input.js +210 -0
  659. package/dist/lib/markdown/input.js.map +1 -0
  660. package/dist/lib/markdown/keys.js +37 -0
  661. package/dist/lib/markdown/keys.js.map +1 -0
  662. package/dist/lib/markdown/paste.js +180 -0
  663. package/dist/lib/markdown/paste.js.map +1 -0
  664. package/dist/lib/markdown/position.js +111 -0
  665. package/dist/lib/markdown/position.js.map +1 -0
  666. package/dist/lib/markdown/project.js +108 -0
  667. package/dist/lib/markdown/project.js.map +1 -0
  668. package/dist/lib/markdown/reconcile.js +127 -0
  669. package/dist/lib/markdown/reconcile.js.map +1 -0
  670. package/dist/lib/markdown/surface.js +373 -0
  671. package/dist/lib/markdown/surface.js.map +1 -0
  672. package/dist/lib/motion.js +22 -0
  673. package/dist/lib/motion.js.map +1 -0
  674. package/dist/lib/pad.js +7 -0
  675. package/dist/lib/pad.js.map +1 -0
  676. package/dist/lib/paged-window/layout.js +15 -0
  677. package/dist/lib/paged-window/layout.js.map +1 -0
  678. package/dist/lib/paged-window/list-owner.js +21 -0
  679. package/dist/lib/paged-window/list-owner.js.map +1 -0
  680. package/dist/lib/paged-window/records-binding.js +239 -0
  681. package/dist/lib/paged-window/records-binding.js.map +1 -0
  682. package/dist/lib/paged-window/store.js +562 -0
  683. package/dist/lib/paged-window/store.js.map +1 -0
  684. package/dist/lib/paged-window/use-measured-pitch.js +38 -0
  685. package/dist/lib/paged-window/use-measured-pitch.js.map +1 -0
  686. package/dist/lib/paged-window/use-page-visibility.js +36 -0
  687. package/dist/lib/paged-window/use-page-visibility.js.map +1 -0
  688. package/dist/lib/paged-window/use-paged-window.js +43 -0
  689. package/dist/lib/paged-window/use-paged-window.js.map +1 -0
  690. package/dist/lib/paged-window/use-scroll-root.js +12 -0
  691. package/dist/lib/paged-window/use-scroll-root.js.map +1 -0
  692. package/dist/lib/persist.js +84 -0
  693. package/dist/lib/persist.js.map +1 -0
  694. package/dist/lib/preference-values.js +13 -0
  695. package/dist/lib/preference-values.js.map +1 -0
  696. package/dist/lib/preferences.js +86 -0
  697. package/dist/lib/preferences.js.map +1 -0
  698. package/dist/lib/reads/hooks.js +156 -0
  699. package/dist/lib/reads/hooks.js.map +1 -0
  700. package/dist/lib/reads/optimistic.js +169 -0
  701. package/dist/lib/reads/optimistic.js.map +1 -0
  702. package/dist/lib/reads/refetch.js +108 -0
  703. package/dist/lib/reads/refetch.js.map +1 -0
  704. package/dist/lib/reads/slots.js +215 -0
  705. package/dist/lib/reads/slots.js.map +1 -0
  706. package/dist/lib/realtime/hooks.js +40 -0
  707. package/dist/lib/realtime/hooks.js.map +1 -0
  708. package/dist/lib/realtime/provider.js +25 -0
  709. package/dist/lib/realtime/provider.js.map +1 -0
  710. package/dist/lib/realtime/registry.js +472 -0
  711. package/dist/lib/realtime/registry.js.map +1 -0
  712. package/dist/lib/records/define-record-type.js +33 -0
  713. package/dist/lib/records/define-record-type.js.map +1 -0
  714. package/dist/lib/records/hooks.js +39 -0
  715. package/dist/lib/records/hooks.js.map +1 -0
  716. package/dist/lib/records/store.js +572 -0
  717. package/dist/lib/records/store.js.map +1 -0
  718. package/dist/lib/records/wire.js +58 -0
  719. package/dist/lib/records/wire.js.map +1 -0
  720. package/dist/lib/reduced-motion-help.js +19 -0
  721. package/dist/lib/reduced-motion-help.js.map +1 -0
  722. package/dist/lib/scroll-caret.js +18 -0
  723. package/dist/lib/scroll-caret.js.map +1 -0
  724. package/dist/lib/sim/createSimStore.js +54 -0
  725. package/dist/lib/sim/createSimStore.js.map +1 -0
  726. package/dist/lib/sim/latency.js +28 -0
  727. package/dist/lib/sim/latency.js.map +1 -0
  728. package/dist/lib/sim/registry.js +13 -0
  729. package/dist/lib/sim/registry.js.map +1 -0
  730. package/dist/lib/sim/settings.js +41 -0
  731. package/dist/lib/sim/settings.js.map +1 -0
  732. package/dist/lib/submit-shortcut.js +25 -0
  733. package/dist/lib/submit-shortcut.js.map +1 -0
  734. package/dist/lib/syntax/index.js +33 -0
  735. package/dist/lib/syntax/index.js.map +1 -0
  736. package/dist/lib/syntax/languages/bash.js +77 -0
  737. package/dist/lib/syntax/languages/bash.js.map +1 -0
  738. package/dist/lib/syntax/languages/css.js +81 -0
  739. package/dist/lib/syntax/languages/css.js.map +1 -0
  740. package/dist/lib/syntax/languages/html.js +91 -0
  741. package/dist/lib/syntax/languages/html.js.map +1 -0
  742. package/dist/lib/syntax/languages/index.js +49 -0
  743. package/dist/lib/syntax/languages/index.js.map +1 -0
  744. package/dist/lib/syntax/languages/javascript.js +133 -0
  745. package/dist/lib/syntax/languages/javascript.js.map +1 -0
  746. package/dist/lib/syntax/languages/json.js +45 -0
  747. package/dist/lib/syntax/languages/json.js.map +1 -0
  748. package/dist/lib/syntax/languages/mongodb.js +24 -0
  749. package/dist/lib/syntax/languages/mongodb.js.map +1 -0
  750. package/dist/lib/syntax/languages/plain.js +10 -0
  751. package/dist/lib/syntax/languages/plain.js.map +1 -0
  752. package/dist/lib/syntax/languages/sql.js +113 -0
  753. package/dist/lib/syntax/languages/sql.js.map +1 -0
  754. package/dist/lib/syntax/languages/vue.js +31 -0
  755. package/dist/lib/syntax/languages/vue.js.map +1 -0
  756. package/dist/lib/syntax/languages/yaml.js +55 -0
  757. package/dist/lib/syntax/languages/yaml.js.map +1 -0
  758. package/dist/lib/syntax/markdown/grammar.js +52 -0
  759. package/dist/lib/syntax/markdown/grammar.js.map +1 -0
  760. package/dist/lib/syntax/markdown/inline.js +477 -0
  761. package/dist/lib/syntax/markdown/inline.js.map +1 -0
  762. package/dist/lib/syntax/markdown/parse.js +464 -0
  763. package/dist/lib/syntax/markdown/parse.js.map +1 -0
  764. package/dist/lib/syntax/markdown/refs.js +94 -0
  765. package/dist/lib/syntax/markdown/refs.js.map +1 -0
  766. package/dist/lib/syntax/markdown/render.js +230 -0
  767. package/dist/lib/syntax/markdown/render.js.map +1 -0
  768. package/dist/lib/syntax/markdown/spans.js +40 -0
  769. package/dist/lib/syntax/markdown/spans.js.map +1 -0
  770. package/dist/lib/syntax/registry.js +55 -0
  771. package/dist/lib/syntax/registry.js.map +1 -0
  772. package/dist/lib/syntax/tokenize.js +96 -0
  773. package/dist/lib/syntax/tokenize.js.map +1 -0
  774. package/dist/lib/time/instant.js +7 -0
  775. package/dist/lib/time/instant.js.map +1 -0
  776. package/dist/lib/time/plain.js +83 -0
  777. package/dist/lib/time/plain.js.map +1 -0
  778. package/dist/lib/time/relativeAge.js +20 -0
  779. package/dist/lib/time/relativeAge.js.map +1 -0
  780. package/dist/lib/time/relativeClock.js +59 -0
  781. package/dist/lib/time/relativeClock.js.map +1 -0
  782. package/dist/lib/time/types.js +23 -0
  783. package/dist/lib/time/types.js.map +1 -0
  784. package/dist/lib/time/zone.js +148 -0
  785. package/dist/lib/time/zone.js.map +1 -0
  786. package/dist/lib/use-controllable.js +16 -0
  787. package/dist/lib/use-controllable.js.map +1 -0
  788. package/dist/lib/use-fill-height.js +49 -0
  789. package/dist/lib/use-fill-height.js.map +1 -0
  790. package/dist/lib/use-hydrated.js +14 -0
  791. package/dist/lib/use-hydrated.js.map +1 -0
  792. package/dist/lib/use-media-query.js +30 -0
  793. package/dist/lib/use-media-query.js.map +1 -0
  794. package/dist/lib/use-relabel-base-ui-dismiss.js +26 -0
  795. package/dist/lib/use-relabel-base-ui-dismiss.js.map +1 -0
  796. package/dist/lib/use-release-snap-drag.js +29 -0
  797. package/dist/lib/use-release-snap-drag.js.map +1 -0
  798. package/dist/lib/use-roving-options.js +18 -0
  799. package/dist/lib/use-roving-options.js.map +1 -0
  800. package/dist/lib/values/absent.js +5 -0
  801. package/dist/lib/values/absent.js.map +1 -0
  802. package/dist/lib/values/boolean.js +13 -0
  803. package/dist/lib/values/boolean.js.map +1 -0
  804. package/dist/lib/values/currency.js +23 -0
  805. package/dist/lib/values/currency.js.map +1 -0
  806. package/dist/lib/values/date.js +35 -0
  807. package/dist/lib/values/date.js.map +1 -0
  808. package/dist/lib/values/datetime.js +54 -0
  809. package/dist/lib/values/datetime.js.map +1 -0
  810. package/dist/lib/values/locale-date.js +60 -0
  811. package/dist/lib/values/locale-date.js.map +1 -0
  812. package/dist/lib/values/number.js +16 -0
  813. package/dist/lib/values/number.js.map +1 -0
  814. package/dist/pure.js +379 -0
  815. package/dist/pure.js.map +1 -0
  816. package/dist/styles.css +190 -0
  817. package/dist/theme.css +360 -0
  818. package/dist/types/components/Accordion.d.ts +15 -0
  819. package/dist/types/components/AgentWorkingSpinner.d.ts +23 -0
  820. package/dist/types/components/AppShell.d.ts +164 -0
  821. package/dist/types/components/Attention.d.ts +87 -0
  822. package/dist/types/components/Avatar.d.ts +154 -0
  823. package/dist/types/components/Badge.d.ts +131 -0
  824. package/dist/types/components/Board.d.ts +239 -0
  825. package/dist/types/components/Button.d.ts +208 -0
  826. package/dist/types/components/Callout.d.ts +163 -0
  827. package/dist/types/components/Card.d.ts +219 -0
  828. package/dist/types/components/Choice.d.ts +127 -0
  829. package/dist/types/components/CodeEditor.d.ts +86 -0
  830. package/dist/types/components/ColorPicker.d.ts +14 -0
  831. package/dist/types/components/Combobox.d.ts +43 -0
  832. package/dist/types/components/CommandPalette.d.ts +35 -0
  833. package/dist/types/components/ConcentricRing.d.ts +61 -0
  834. package/dist/types/components/ConnectionCard.d.ts +64 -0
  835. package/dist/types/components/ContextItemRow.d.ts +35 -0
  836. package/dist/types/components/CopyValue.d.ts +14 -0
  837. package/dist/types/components/CountBadge.d.ts +14 -0
  838. package/dist/types/components/DateCalendar.d.ts +30 -0
  839. package/dist/types/components/DateField.d.ts +29 -0
  840. package/dist/types/components/DatePicker.d.ts +20 -0
  841. package/dist/types/components/DateTimeText.d.ts +9 -0
  842. package/dist/types/components/DescriptionList.d.ts +40 -0
  843. package/dist/types/components/Dialog.d.ts +269 -0
  844. package/dist/types/components/DragDrop.d.ts +196 -0
  845. package/dist/types/components/Drawer.d.ts +163 -0
  846. package/dist/types/components/EditGutter.d.ts +44 -0
  847. package/dist/types/components/EmojiPicker.d.ts +30 -0
  848. package/dist/types/components/ErrorBoundary.d.ts +43 -0
  849. package/dist/types/components/Field.d.ts +37 -0
  850. package/dist/types/components/FileUpload.d.ts +22 -0
  851. package/dist/types/components/FilterMenu.d.ts +120 -0
  852. package/dist/types/components/GatesSection.d.ts +79 -0
  853. package/dist/types/components/Icon.d.ts +40 -0
  854. package/dist/types/components/IconButton.d.ts +69 -0
  855. package/dist/types/components/IconStack.d.ts +28 -0
  856. package/dist/types/components/ImageUploadField.d.ts +38 -0
  857. package/dist/types/components/InlineEdit.d.ts +183 -0
  858. package/dist/types/components/InlineMarkdownEdit.d.ts +100 -0
  859. package/dist/types/components/Input.d.ts +128 -0
  860. package/dist/types/components/LegalDocument.d.ts +23 -0
  861. package/dist/types/components/LineDiff.d.ts +53 -0
  862. package/dist/types/components/ListHeader.d.ts +45 -0
  863. package/dist/types/components/Loading.d.ts +131 -0
  864. package/dist/types/components/Markdown.d.ts +35 -0
  865. package/dist/types/components/MarkdownEditor.d.ts +129 -0
  866. package/dist/types/components/Menu.d.ts +157 -0
  867. package/dist/types/components/Navigation.d.ts +67 -0
  868. package/dist/types/components/NumberInput.d.ts +177 -0
  869. package/dist/types/components/OTPInput.d.ts +13 -0
  870. package/dist/types/components/OrderedEntityManager.d.ts +64 -0
  871. package/dist/types/components/PagedWindowList.d.ts +23 -0
  872. package/dist/types/components/PaginationBar.d.ts +31 -0
  873. package/dist/types/components/Panel.d.ts +94 -0
  874. package/dist/types/components/PasswordInput.d.ts +7 -0
  875. package/dist/types/components/PasswordRequirements.d.ts +11 -0
  876. package/dist/types/components/PatchDiff.d.ts +38 -0
  877. package/dist/types/components/PendingVeil.d.ts +8 -0
  878. package/dist/types/components/Popover.d.ts +231 -0
  879. package/dist/types/components/Progress.d.ts +580 -0
  880. package/dist/types/components/RatingScale.d.ts +30 -0
  881. package/dist/types/components/ReadMore.d.ts +26 -0
  882. package/dist/types/components/RecordCard.d.ts +413 -0
  883. package/dist/types/components/RelativeTime.d.ts +17 -0
  884. package/dist/types/components/SandboxedFrame.d.ts +37 -0
  885. package/dist/types/components/SearchInput.d.ts +6 -0
  886. package/dist/types/components/SecretField.d.ts +90 -0
  887. package/dist/types/components/SectionNav.d.ts +15 -0
  888. package/dist/types/components/Select.d.ts +53 -0
  889. package/dist/types/components/SequenceDiagram.d.ts +15 -0
  890. package/dist/types/components/SettingRow.d.ts +144 -0
  891. package/dist/types/components/SignOffRings.d.ts +29 -0
  892. package/dist/types/components/Slider.d.ts +255 -0
  893. package/dist/types/components/SolutionChoice.d.ts +49 -0
  894. package/dist/types/components/SortMenu.d.ts +45 -0
  895. package/dist/types/components/Spinner.d.ts +29 -0
  896. package/dist/types/components/Stat.d.ts +136 -0
  897. package/dist/types/components/StatusSelect.d.ts +93 -0
  898. package/dist/types/components/Surface.d.ts +145 -0
  899. package/dist/types/components/Table.d.ts +164 -0
  900. package/dist/types/components/Tabs.d.ts +142 -0
  901. package/dist/types/components/ThemeMenu.d.ts +56 -0
  902. package/dist/types/components/Toast.d.ts +63 -0
  903. package/dist/types/components/Toggle.d.ts +168 -0
  904. package/dist/types/components/ToggleMatrix.d.ts +51 -0
  905. package/dist/types/components/Tree.d.ts +20 -0
  906. package/dist/types/components/TriStateSwitch.d.ts +63 -0
  907. package/dist/types/components/VideoPlayer.d.ts +26 -0
  908. package/dist/types/components/auth/AcceptInvitationCard.d.ts +54 -0
  909. package/dist/types/components/auth/AuthLayout.d.ts +12 -0
  910. package/dist/types/components/auth/ForgotPasswordForm.d.ts +6 -0
  911. package/dist/types/components/auth/LoginForm.d.ts +13 -0
  912. package/dist/types/components/auth/ResetPasswordForm.d.ts +9 -0
  913. package/dist/types/components/auth/SignInProviders.d.ts +56 -0
  914. package/dist/types/components/auth/SignupCard.d.ts +62 -0
  915. package/dist/types/components/auth/TermsAcceptance.d.ts +14 -0
  916. package/dist/types/components/auth/index.d.ts +8 -0
  917. package/dist/types/components/board/context.d.ts +65 -0
  918. package/dist/types/components/board/recipe.d.ts +97 -0
  919. package/dist/types/components/calendar/CalendarMonth.d.ts +32 -0
  920. package/dist/types/components/calendar/CalendarTimeGrid.d.ts +74 -0
  921. package/dist/types/components/calendar/EventActions.d.ts +16 -0
  922. package/dist/types/components/calendar/format.d.ts +42 -0
  923. package/dist/types/components/calendar/palette.d.ts +17 -0
  924. package/dist/types/components/calendar/use-calendar-drag.d.ts +53 -0
  925. package/dist/types/components/calendar/use-event-keyboard.d.ts +23 -0
  926. package/dist/types/components/calendar/use-grid-navigation.d.ts +47 -0
  927. package/dist/types/components/calendar/use-now.d.ts +20 -0
  928. package/dist/types/components/card-face/AcRingGlyph.d.ts +20 -0
  929. package/dist/types/components/card-face/BoardCardAgentSlot.d.ts +19 -0
  930. package/dist/types/components/card-face/CardFace.d.ts +106 -0
  931. package/dist/types/components/card-face/CardTypeBadge.d.ts +21 -0
  932. package/dist/types/components/card-face/EffortBadge.d.ts +9 -0
  933. package/dist/types/components/card-face/GateRingGlyph.d.ts +22 -0
  934. package/dist/types/components/card-face/OverflowRow.d.ts +40 -0
  935. package/dist/types/components/card-face/TapTip.d.ts +15 -0
  936. package/dist/types/components/card-face/hit-area.d.ts +20 -0
  937. package/dist/types/components/card-face/vocabulary.d.ts +83 -0
  938. package/dist/types/components/chart/BarList.d.ts +27 -0
  939. package/dist/types/components/chart/LineChart.d.ts +64 -0
  940. package/dist/types/components/chart/ShareBar.d.ts +26 -0
  941. package/dist/types/components/chart/TimeSeriesChart.d.ts +60 -0
  942. package/dist/types/components/chart/label-metrics.d.ts +9 -0
  943. package/dist/types/components/chart/line-chart-axis.d.ts +14 -0
  944. package/dist/types/components/chart/line-chart-scale.d.ts +55 -0
  945. package/dist/types/components/chart/line-series-style.d.ts +14 -0
  946. package/dist/types/components/chart/share-bar-labels.d.ts +17 -0
  947. package/dist/types/components/chart/shared.d.ts +122 -0
  948. package/dist/types/components/chart/time-series-scale.d.ts +29 -0
  949. package/dist/types/components/chat/Attachment.d.ts +125 -0
  950. package/dist/types/components/chat/Chat.d.ts +60 -0
  951. package/dist/types/components/chat/Composer.d.ts +62 -0
  952. package/dist/types/components/chat/ContextMeter.d.ts +45 -0
  953. package/dist/types/components/chat/EffortControl.d.ts +23 -0
  954. package/dist/types/components/chat/FileCover.d.ts +14 -0
  955. package/dist/types/components/chat/Message.d.ts +66 -0
  956. package/dist/types/components/chat/MessageScroller.d.ts +18 -0
  957. package/dist/types/components/chat/ModelSelector.d.ts +44 -0
  958. package/dist/types/components/chat/StreamingMarkdown.d.ts +11 -0
  959. package/dist/types/components/chat/download-file.d.ts +7 -0
  960. package/dist/types/components/chat/file-icon.d.ts +29 -0
  961. package/dist/types/components/chat/types.d.ts +165 -0
  962. package/dist/types/components/checklist/StatusChecklist.d.ts +37 -0
  963. package/dist/types/components/checklist/index.d.ts +3 -0
  964. package/dist/types/components/checklist/tally.d.ts +19 -0
  965. package/dist/types/components/checklist/types.d.ts +28 -0
  966. package/dist/types/components/code-editor/context.d.ts +32 -0
  967. package/dist/types/components/code-editor/editing.d.ts +39 -0
  968. package/dist/types/components/code-editor/highlight.d.ts +20 -0
  969. package/dist/types/components/code-editor/recipe.d.ts +109 -0
  970. package/dist/types/components/date-timeline/DateTimeline.d.ts +99 -0
  971. package/dist/types/components/date-timeline/TimelineRow.d.ts +22 -0
  972. package/dist/types/components/date-timeline/useBarDrag.d.ts +15 -0
  973. package/dist/types/components/date-timeline/useMarkerDrag.d.ts +14 -0
  974. package/dist/types/components/date-timeline/useTimelineZoom.d.ts +23 -0
  975. package/dist/types/components/drag-drop/context.d.ts +85 -0
  976. package/dist/types/components/drag-drop/recipe.d.ts +163 -0
  977. package/dist/types/components/drag-drop/shift.d.ts +153 -0
  978. package/dist/types/components/edit/activation.d.ts +21 -0
  979. package/dist/types/components/edit/outcome.d.ts +29 -0
  980. package/dist/types/components/edit/use-edit-session.d.ts +77 -0
  981. package/dist/types/components/file-viewer/FileViewer.d.ts +2 -0
  982. package/dist/types/components/file-viewer/PageNumberJumpField.d.ts +9 -0
  983. package/dist/types/components/file-viewer/ViewerControls.d.ts +20 -0
  984. package/dist/types/components/file-viewer/ViewerRail.d.ts +10 -0
  985. package/dist/types/components/file-viewer/ViewerStage.d.ts +22 -0
  986. package/dist/types/components/file-viewer/frames.d.ts +28 -0
  987. package/dist/types/components/file-viewer/index.d.ts +3 -0
  988. package/dist/types/components/file-viewer/types.d.ts +70 -0
  989. package/dist/types/components/file-viewer/use-frame-cursor.d.ts +13 -0
  990. package/dist/types/components/file-viewer/use-viewer-keys.d.ts +24 -0
  991. package/dist/types/components/file-viewer/use-viewer-zoom.d.ts +29 -0
  992. package/dist/types/components/focus-web/FocusWeb.d.ts +3 -0
  993. package/dist/types/components/focus-web/index.d.ts +4 -0
  994. package/dist/types/components/focus-web/layout.d.ts +55 -0
  995. package/dist/types/components/focus-web/types.d.ts +131 -0
  996. package/dist/types/components/graph-explorer/GraphExplorer.d.ts +42 -0
  997. package/dist/types/components/graph-explorer/camera-math.d.ts +119 -0
  998. package/dist/types/components/graph-explorer/index.d.ts +5 -0
  999. package/dist/types/components/graph-explorer/tree-layout.d.ts +67 -0
  1000. package/dist/types/components/graph-explorer/types.d.ts +62 -0
  1001. package/dist/types/components/graph-explorer/use-camera.d.ts +81 -0
  1002. package/dist/types/components/graph-explorer/viewport-gesture.d.ts +32 -0
  1003. package/dist/types/components/kanban/KanbanBoard.d.ts +72 -0
  1004. package/dist/types/components/kanban/recipe.d.ts +73 -0
  1005. package/dist/types/components/kanban/types.d.ts +55 -0
  1006. package/dist/types/components/markdown/Affordances.d.ts +105 -0
  1007. package/dist/types/components/markdown/AttachmentStrip.d.ts +25 -0
  1008. package/dist/types/components/markdown/ImageUpload.d.ts +56 -0
  1009. package/dist/types/components/media-error.d.ts +11 -0
  1010. package/dist/types/components/nav-sections.d.ts +10 -0
  1011. package/dist/types/components/node-canvas/NodeCanvas.d.ts +66 -0
  1012. package/dist/types/components/node-canvas/index.d.ts +3 -0
  1013. package/dist/types/components/node-canvas/layout.d.ts +29 -0
  1014. package/dist/types/components/node-canvas/types.d.ts +207 -0
  1015. package/dist/types/components/node-canvas/use-canvas-gestures.d.ts +39 -0
  1016. package/dist/types/components/openapi/OpenApiViewer.d.ts +14 -0
  1017. package/dist/types/components/openapi/OperationCard.d.ts +33 -0
  1018. package/dist/types/components/openapi/SchemaView.d.ts +14 -0
  1019. package/dist/types/components/openapi/index.d.ts +6 -0
  1020. package/dist/types/components/openapi/resolve.d.ts +72 -0
  1021. package/dist/types/components/openapi/types.d.ts +128 -0
  1022. package/dist/types/components/overlay-shell.d.ts +48 -0
  1023. package/dist/types/components/overlay-stack.d.ts +18 -0
  1024. package/dist/types/components/paged-window/PageBlock.d.ts +31 -0
  1025. package/dist/types/components/provenance/ConfidenceBar.d.ts +118 -0
  1026. package/dist/types/components/provenance/ConfidenceMeter.d.ts +21 -0
  1027. package/dist/types/components/provenance/ConfidenceReadout.d.ts +17 -0
  1028. package/dist/types/components/provenance/ProvenanceBadge.d.ts +23 -0
  1029. package/dist/types/components/provenance/ProvenanceDetail.d.ts +109 -0
  1030. package/dist/types/components/provenance/ProvenanceDisclosure.d.ts +107 -0
  1031. package/dist/types/components/provenance/absence.d.ts +37 -0
  1032. package/dist/types/components/provenance/index.d.ts +7 -0
  1033. package/dist/types/components/provenance/types.d.ts +137 -0
  1034. package/dist/types/components/rbac/AccessRequestPanel.d.ts +92 -0
  1035. package/dist/types/components/rbac/AccountMenu.d.ts +46 -0
  1036. package/dist/types/components/rbac/AgentKeysList.d.ts +20 -0
  1037. package/dist/types/components/rbac/ApiKeysPanel.d.ts +26 -0
  1038. package/dist/types/components/rbac/ApiKeysTable.d.ts +63 -0
  1039. package/dist/types/components/rbac/Brand.d.ts +8 -0
  1040. package/dist/types/components/rbac/Can.d.ts +19 -0
  1041. package/dist/types/components/rbac/ChangePasswordForm.d.ts +18 -0
  1042. package/dist/types/components/rbac/DangerZone.d.ts +8 -0
  1043. package/dist/types/components/rbac/DevToolsPopover.d.ts +36 -0
  1044. package/dist/types/components/rbac/EndedLine.d.ts +21 -0
  1045. package/dist/types/components/rbac/InvitationsList.d.ts +39 -0
  1046. package/dist/types/components/rbac/InviteMembersDialog.d.ts +21 -0
  1047. package/dist/types/components/rbac/MembersPanel.d.ts +31 -0
  1048. package/dist/types/components/rbac/PermissionRequestPanel.d.ts +36 -0
  1049. package/dist/types/components/rbac/ProfileForm.d.ts +27 -0
  1050. package/dist/types/components/rbac/ProfilePage.d.ts +16 -0
  1051. package/dist/types/components/rbac/RBACProvider.d.ts +69 -0
  1052. package/dist/types/components/rbac/RoleEditorDialog.d.ts +28 -0
  1053. package/dist/types/components/rbac/RoleKeyPicker.d.ts +24 -0
  1054. package/dist/types/components/rbac/RolePermissionMatrix.d.ts +21 -0
  1055. package/dist/types/components/rbac/RolesPermissionsPage.d.ts +24 -0
  1056. package/dist/types/components/rbac/SessionsList.d.ts +35 -0
  1057. package/dist/types/components/rbac/TeamSettingsForm.d.ts +22 -0
  1058. package/dist/types/components/rbac/TeamSwitcher.d.ts +5 -0
  1059. package/dist/types/components/rbac/approvalPanelParts.d.ts +69 -0
  1060. package/dist/types/components/rbac/index.d.ts +25 -0
  1061. package/dist/types/components/rbac/permissionSections.d.ts +8 -0
  1062. package/dist/types/components/rbac/stagedForm.d.ts +25 -0
  1063. package/dist/types/components/rbac/types.d.ts +65 -0
  1064. package/dist/types/components/rbac/useStagedImage.d.ts +15 -0
  1065. package/dist/types/components/roadmap/PhaseManager.d.ts +19 -0
  1066. package/dist/types/components/roadmap/RoadmapItemCard.d.ts +51 -0
  1067. package/dist/types/components/roadmap/RoadmapPage.d.ts +12 -0
  1068. package/dist/types/components/roadmap/RoadmapSwimlaneBoard.d.ts +15 -0
  1069. package/dist/types/components/roadmap/TrackManager.d.ts +19 -0
  1070. package/dist/types/components/roadmap/UseCaseCard.d.ts +30 -0
  1071. package/dist/types/components/roadmap/UseCaseLedgerPage.d.ts +29 -0
  1072. package/dist/types/components/roadmap/chip-tones.d.ts +2 -0
  1073. package/dist/types/components/roadmap/derive.d.ts +39 -0
  1074. package/dist/types/components/roadmap/index.d.ts +10 -0
  1075. package/dist/types/components/roadmap/types.d.ts +86 -0
  1076. package/dist/types/components/stepper/Stepper.d.ts +79 -0
  1077. package/dist/types/components/stepper/derive.d.ts +49 -0
  1078. package/dist/types/components/stepper/index.d.ts +3 -0
  1079. package/dist/types/components/stepper/types.d.ts +118 -0
  1080. package/dist/types/icons/data.d.ts +2054 -0
  1081. package/dist/types/index.d.ts +209 -0
  1082. package/dist/types/lib/attention.d.ts +62 -0
  1083. package/dist/types/lib/board/anchor.d.ts +69 -0
  1084. package/dist/types/lib/board/index.d.ts +17 -0
  1085. package/dist/types/lib/board/model.d.ts +43 -0
  1086. package/dist/types/lib/board/move.d.ts +181 -0
  1087. package/dist/types/lib/board/position.d.ts +22 -0
  1088. package/dist/types/lib/board/rejection.d.ts +8 -0
  1089. package/dist/types/lib/board/types.d.ts +294 -0
  1090. package/dist/types/lib/board/use-board.d.ts +47 -0
  1091. package/dist/types/lib/calendar/band-packer.d.ts +53 -0
  1092. package/dist/types/lib/calendar/drag.d.ts +125 -0
  1093. package/dist/types/lib/calendar/index.d.ts +4 -0
  1094. package/dist/types/lib/calendar/lane-packer.d.ts +88 -0
  1095. package/dist/types/lib/calendar/segments.d.ts +91 -0
  1096. package/dist/types/lib/calendar/types.d.ts +166 -0
  1097. package/dist/types/lib/chart-palette.d.ts +14 -0
  1098. package/dist/types/lib/clipboard.d.ts +12 -0
  1099. package/dist/types/lib/cn.d.ts +7 -0
  1100. package/dist/types/lib/color.d.ts +14 -0
  1101. package/dist/types/lib/component-guidance.d.ts +15 -0
  1102. package/dist/types/lib/confidence.d.ts +28 -0
  1103. package/dist/types/lib/date-timeline/scale.d.ts +143 -0
  1104. package/dist/types/lib/design-frame/document.d.ts +39 -0
  1105. package/dist/types/lib/design-frame/mini-app-script.d.ts +29 -0
  1106. package/dist/types/lib/design-frame/mini-app.d.ts +17 -0
  1107. package/dist/types/lib/design-frame/protocol.d.ts +78 -0
  1108. package/dist/types/lib/dev-warn.d.ts +10 -0
  1109. package/dist/types/lib/dnd/announce.d.ts +124 -0
  1110. package/dist/types/lib/dnd/autoscroll.d.ts +88 -0
  1111. package/dist/types/lib/dnd/cross-drop.d.ts +18 -0
  1112. package/dist/types/lib/dnd/geometry.d.ts +126 -0
  1113. package/dist/types/lib/dnd/index.d.ts +17 -0
  1114. package/dist/types/lib/dnd/sensors/gesture.d.ts +37 -0
  1115. package/dist/types/lib/dnd/sensors/keyboard.d.ts +54 -0
  1116. package/dist/types/lib/dnd/sensors/pointer.d.ts +59 -0
  1117. package/dist/types/lib/dnd/session.d.ts +124 -0
  1118. package/dist/types/lib/dnd/types.d.ts +226 -0
  1119. package/dist/types/lib/dnd/use-drag.d.ts +82 -0
  1120. package/dist/types/lib/dom/scroll-ancestor.d.ts +15 -0
  1121. package/dist/types/lib/format.d.ts +33 -0
  1122. package/dist/types/lib/group-in-order.d.ts +13 -0
  1123. package/dist/types/lib/header-fold.d.ts +10 -0
  1124. package/dist/types/lib/i18n/areas/auth-provenance-flows.d.ts +287 -0
  1125. package/dist/types/lib/i18n/areas/board.d.ts +51 -0
  1126. package/dist/types/lib/i18n/areas/card-face.d.ts +8 -0
  1127. package/dist/types/lib/i18n/areas/chat-chart.d.ts +202 -0
  1128. package/dist/types/lib/i18n/areas/code-editor.d.ts +40 -0
  1129. package/dist/types/lib/i18n/areas/date-timeline.d.ts +36 -0
  1130. package/dist/types/lib/i18n/areas/dates.d.ts +103 -0
  1131. package/dist/types/lib/i18n/areas/docs-views.d.ts +297 -0
  1132. package/dist/types/lib/i18n/areas/feedback.d.ts +132 -0
  1133. package/dist/types/lib/i18n/areas/formats.d.ts +30 -0
  1134. package/dist/types/lib/i18n/areas/forms.d.ts +182 -0
  1135. package/dist/types/lib/i18n/areas/keys.d.ts +15 -0
  1136. package/dist/types/lib/i18n/areas/markdown.d.ts +150 -0
  1137. package/dist/types/lib/i18n/areas/move-rejected.d.ts +16 -0
  1138. package/dist/types/lib/i18n/areas/navigation.d.ts +185 -0
  1139. package/dist/types/lib/i18n/areas/rbac.d.ts +633 -0
  1140. package/dist/types/lib/i18n/emphasis.d.ts +3 -0
  1141. package/dist/types/lib/i18n/index.d.ts +10 -0
  1142. package/dist/types/lib/i18n/number-format.d.ts +5 -0
  1143. package/dist/types/lib/i18n/plural.d.ts +7 -0
  1144. package/dist/types/lib/i18n/provider.d.ts +16 -0
  1145. package/dist/types/lib/i18n/strings.d.ts +18 -0
  1146. package/dist/types/lib/icons.d.ts +22 -0
  1147. package/dist/types/lib/interactive-target.d.ts +3 -0
  1148. package/dist/types/lib/intl-cache.d.ts +31 -0
  1149. package/dist/types/lib/legal-document.d.ts +82 -0
  1150. package/dist/types/lib/line-diff-model.d.ts +39 -0
  1151. package/dist/types/lib/markdown/attachments.d.ts +50 -0
  1152. package/dist/types/lib/markdown/caret-map.d.ts +69 -0
  1153. package/dist/types/lib/markdown/caret.d.ts +6 -0
  1154. package/dist/types/lib/markdown/commands.d.ts +186 -0
  1155. package/dist/types/lib/markdown/convert.d.ts +99 -0
  1156. package/dist/types/lib/markdown/dom.d.ts +30 -0
  1157. package/dist/types/lib/markdown/edit.d.ts +16 -0
  1158. package/dist/types/lib/markdown/history.d.ts +59 -0
  1159. package/dist/types/lib/markdown/hotkeys.d.ts +63 -0
  1160. package/dist/types/lib/markdown/image-pipeline.d.ts +173 -0
  1161. package/dist/types/lib/markdown/images.d.ts +138 -0
  1162. package/dist/types/lib/markdown/input.d.ts +38 -0
  1163. package/dist/types/lib/markdown/keys.d.ts +34 -0
  1164. package/dist/types/lib/markdown/paste.d.ts +9 -0
  1165. package/dist/types/lib/markdown/position.d.ts +43 -0
  1166. package/dist/types/lib/markdown/project.d.ts +88 -0
  1167. package/dist/types/lib/markdown/reconcile.d.ts +63 -0
  1168. package/dist/types/lib/markdown/surface.d.ts +236 -0
  1169. package/dist/types/lib/motion.d.ts +30 -0
  1170. package/dist/types/lib/pad.d.ts +6 -0
  1171. package/dist/types/lib/paged-window/index.d.ts +2 -0
  1172. package/dist/types/lib/paged-window/layout.d.ts +21 -0
  1173. package/dist/types/lib/paged-window/list-owner.d.ts +12 -0
  1174. package/dist/types/lib/paged-window/records-binding.d.ts +102 -0
  1175. package/dist/types/lib/paged-window/store.d.ts +307 -0
  1176. package/dist/types/lib/paged-window/use-measured-pitch.d.ts +34 -0
  1177. package/dist/types/lib/paged-window/use-page-visibility.d.ts +20 -0
  1178. package/dist/types/lib/paged-window/use-paged-window.d.ts +61 -0
  1179. package/dist/types/lib/paged-window/use-scroll-root.d.ts +18 -0
  1180. package/dist/types/lib/persist.d.ts +57 -0
  1181. package/dist/types/lib/preference-values.d.ts +72 -0
  1182. package/dist/types/lib/preferences.d.ts +26 -0
  1183. package/dist/types/lib/reads/hooks.d.ts +49 -0
  1184. package/dist/types/lib/reads/index.d.ts +5 -0
  1185. package/dist/types/lib/reads/optimistic.d.ts +119 -0
  1186. package/dist/types/lib/reads/refetch.d.ts +83 -0
  1187. package/dist/types/lib/reads/slots.d.ts +137 -0
  1188. package/dist/types/lib/reads/types.d.ts +155 -0
  1189. package/dist/types/lib/realtime/hooks.d.ts +38 -0
  1190. package/dist/types/lib/realtime/index.d.ts +4 -0
  1191. package/dist/types/lib/realtime/provider.d.ts +38 -0
  1192. package/dist/types/lib/realtime/registry.d.ts +225 -0
  1193. package/dist/types/lib/realtime/types.d.ts +242 -0
  1194. package/dist/types/lib/records/define-record-type.d.ts +29 -0
  1195. package/dist/types/lib/records/hooks.d.ts +46 -0
  1196. package/dist/types/lib/records/index.d.ts +5 -0
  1197. package/dist/types/lib/records/store.d.ts +289 -0
  1198. package/dist/types/lib/records/types.d.ts +195 -0
  1199. package/dist/types/lib/records/wire.d.ts +96 -0
  1200. package/dist/types/lib/reduced-motion-help.d.ts +23 -0
  1201. package/dist/types/lib/scroll-caret.d.ts +6 -0
  1202. package/dist/types/lib/sim/createSimStore.d.ts +18 -0
  1203. package/dist/types/lib/sim/index.d.ts +5 -0
  1204. package/dist/types/lib/sim/latency.d.ts +10 -0
  1205. package/dist/types/lib/sim/registry.d.ts +14 -0
  1206. package/dist/types/lib/sim/settings.d.ts +11 -0
  1207. package/dist/types/lib/sim/types.d.ts +3 -0
  1208. package/dist/types/lib/submit-shortcut.d.ts +24 -0
  1209. package/dist/types/lib/syntax/index.d.ts +16 -0
  1210. package/dist/types/lib/syntax/languages/bash.d.ts +1 -0
  1211. package/dist/types/lib/syntax/languages/css.d.ts +1 -0
  1212. package/dist/types/lib/syntax/languages/html.d.ts +17 -0
  1213. package/dist/types/lib/syntax/languages/index.d.ts +33 -0
  1214. package/dist/types/lib/syntax/languages/javascript.d.ts +22 -0
  1215. package/dist/types/lib/syntax/languages/json.d.ts +1 -0
  1216. package/dist/types/lib/syntax/languages/mongodb.d.ts +1 -0
  1217. package/dist/types/lib/syntax/languages/plain.d.ts +9 -0
  1218. package/dist/types/lib/syntax/languages/sql.d.ts +4 -0
  1219. package/dist/types/lib/syntax/languages/vue.d.ts +1 -0
  1220. package/dist/types/lib/syntax/languages/yaml.d.ts +1 -0
  1221. package/dist/types/lib/syntax/markdown/frames.d.ts +145 -0
  1222. package/dist/types/lib/syntax/markdown/grammar.d.ts +1 -0
  1223. package/dist/types/lib/syntax/markdown/index.d.ts +5 -0
  1224. package/dist/types/lib/syntax/markdown/inline.d.ts +21 -0
  1225. package/dist/types/lib/syntax/markdown/parse.d.ts +15 -0
  1226. package/dist/types/lib/syntax/markdown/refs.d.ts +47 -0
  1227. package/dist/types/lib/syntax/markdown/render.d.ts +25 -0
  1228. package/dist/types/lib/syntax/markdown/spans.d.ts +84 -0
  1229. package/dist/types/lib/syntax/markdown/types.d.ts +108 -0
  1230. package/dist/types/lib/syntax/registry.d.ts +37 -0
  1231. package/dist/types/lib/syntax/tokenize.d.ts +17 -0
  1232. package/dist/types/lib/syntax/types.d.ts +119 -0
  1233. package/dist/types/lib/time/index.d.ts +4 -0
  1234. package/dist/types/lib/time/instant.d.ts +2 -0
  1235. package/dist/types/lib/time/plain.d.ts +61 -0
  1236. package/dist/types/lib/time/relativeAge.d.ts +18 -0
  1237. package/dist/types/lib/time/relativeClock.d.ts +8 -0
  1238. package/dist/types/lib/time/types.d.ts +87 -0
  1239. package/dist/types/lib/time/zone.d.ts +106 -0
  1240. package/dist/types/lib/use-controllable.d.ts +14 -0
  1241. package/dist/types/lib/use-fill-height.d.ts +26 -0
  1242. package/dist/types/lib/use-hydrated.d.ts +8 -0
  1243. package/dist/types/lib/use-media-query.d.ts +29 -0
  1244. package/dist/types/lib/use-relabel-base-ui-dismiss.d.ts +6 -0
  1245. package/dist/types/lib/use-release-snap-drag.d.ts +25 -0
  1246. package/dist/types/lib/use-roving-options.d.ts +10 -0
  1247. package/dist/types/lib/values/absent.d.ts +7 -0
  1248. package/dist/types/lib/values/boolean.d.ts +29 -0
  1249. package/dist/types/lib/values/currency.d.ts +22 -0
  1250. package/dist/types/lib/values/date.d.ts +30 -0
  1251. package/dist/types/lib/values/datetime.d.ts +48 -0
  1252. package/dist/types/lib/values/index.d.ts +5 -0
  1253. package/dist/types/lib/values/locale-date.d.ts +34 -0
  1254. package/dist/types/lib/values/number.d.ts +27 -0
  1255. package/dist/types/pure.d.ts +48 -0
  1256. package/package.json +136 -4
@@ -0,0 +1,98 @@
1
+ import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
+ import { useId as z } from "react";
3
+ import { Badge as k } from "./Badge.js";
4
+ import { Button as w } from "./Button.js";
5
+ import { Card as C, CardFooter as T } from "./Card.js";
6
+ import { Icon as n } from "./Icon.js";
7
+ import { Tooltip as A } from "./Popover.js";
8
+ import { cn as x } from "../lib/cn.js";
9
+ import { useUiStrings as I } from "../lib/i18n/provider.js";
10
+ const S = {
11
+ healthy: {
12
+ tone: "success",
13
+ icon: /* @__PURE__ */ e(n, { name: "circle-check", size: "xs" }),
14
+ // Quiet on purpose — a correct connection has nothing to announce beyond
15
+ // the badge, and giving it a coloured border too would spend emphasis a
16
+ // column of a dozen mostly-fine tiles cannot afford to spread around.
17
+ border: "border-border"
18
+ },
19
+ degraded: {
20
+ tone: "warning",
21
+ icon: /* @__PURE__ */ e(n, { name: "triangle-alert", size: "xs" }),
22
+ border: "border-warning-border"
23
+ },
24
+ broken: {
25
+ tone: "danger",
26
+ icon: /* @__PURE__ */ e(n, { name: "circle-x", size: "xs" }),
27
+ border: "border-danger-border"
28
+ },
29
+ unknown: {
30
+ tone: "neutral",
31
+ icon: /* @__PURE__ */ e(n, { name: "circle-dashed", size: "xs" }),
32
+ // A DASHED border, not merely a quiet-coloured one — the same convention
33
+ // `FileUpload`'s empty state already uses for "nothing is here yet". It
34
+ // gives "never configured" a shape difference on top of the colour
35
+ // difference, for the exact reader the colour difference does nothing for.
36
+ border: "border-dashed border-border-subtle"
37
+ }
38
+ };
39
+ function j() {
40
+ return /* @__PURE__ */ e("span", { className: "grid size-9 shrink-0 place-items-center rounded-lg bg-surface-inset text-tertiary", children: /* @__PURE__ */ e(n, { name: "link", size: "md" }) });
41
+ }
42
+ function H({
43
+ logo: u,
44
+ name: l,
45
+ description: m,
46
+ status: o,
47
+ detail: i,
48
+ actionLabel: a,
49
+ onAction: b,
50
+ actionDisabledReason: s,
51
+ titleAs: h,
52
+ className: g
53
+ }) {
54
+ const f = I().connectionCard, c = S[o], r = s !== void 0, p = z(), y = h ?? "h3";
55
+ function v(N) {
56
+ if (r) {
57
+ N.preventDefault();
58
+ return;
59
+ }
60
+ b?.();
61
+ }
62
+ const d = a !== void 0 && /* @__PURE__ */ t(
63
+ w,
64
+ {
65
+ size: "sm",
66
+ variant: r ? "outline" : o === "unknown" ? "solid" : "outline",
67
+ "aria-label": f.actionName(a, l),
68
+ "aria-disabled": r || void 0,
69
+ "aria-describedby": r ? p : void 0,
70
+ onClick: v,
71
+ className: x(
72
+ // OFF, VISIBLY, AND NOT BY HUE ALONE — dimmed luminance plus a cursor
73
+ // the pointer actually reaches, exactly `IconButton`'s own off state.
74
+ r && "cursor-not-allowed opacity-45 active:translate-y-0"
75
+ ),
76
+ children: [
77
+ a,
78
+ r && /* @__PURE__ */ e("span", { id: p, className: "sr-only", children: s })
79
+ ]
80
+ }
81
+ );
82
+ return /* @__PURE__ */ t(C, { variant: "flat", padding: "md", className: x(c.border, g), children: [
83
+ /* @__PURE__ */ t("div", { className: "flex flex-wrap items-start gap-4", children: [
84
+ u ?? /* @__PURE__ */ e(j, {}),
85
+ /* @__PURE__ */ t("div", { className: "flex grow basis-40 flex-col gap-1", children: [
86
+ /* @__PURE__ */ e(y, { className: "font-display text-md font-semibold text-primary text-balance", children: l }),
87
+ m && /* @__PURE__ */ e("p", { className: "text-sm text-secondary text-pretty", children: m })
88
+ ] }),
89
+ /* @__PURE__ */ e(k, { size: "sm", tone: c.tone, icon: c.icon, children: f.status[o] })
90
+ ] }),
91
+ i != null && /* @__PURE__ */ e("p", { className: "text-xs text-tertiary text-pretty", children: i }),
92
+ d && /* @__PURE__ */ e(T, { children: r ? /* @__PURE__ */ e(A, { content: s, children: d }) : d })
93
+ ] });
94
+ }
95
+ export {
96
+ H as ConnectionCard
97
+ };
98
+ //# sourceMappingURL=ConnectionCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectionCard.js","sources":["../../src/components/ConnectionCard.tsx"],"sourcesContent":["import type { MouseEvent, ReactNode } from \"react\";\nimport { useId } from \"react\";\nimport { Badge, type BadgeProps } from \"./Badge\";\nimport { Button, type ButtonProps } from \"./Button\";\nimport { Card, CardFooter, type CardHeaderProps } from \"./Card\";\nimport { Icon } from \"./Icon\";\nimport { Tooltip } from \"./Popover\";\nimport { cn } from \"../lib/cn\";\nimport { useUiStrings } from \"../lib/i18n\";\n\n/* ----------------------------------------------------------------------------\n CONNECTION CARD — one tile in a catalogue of third-party integrations: what\n it is, whether it works, and the one thing to do about it.\n\n FOUR STATES, NEVER TWO. It is tempting to model a connection as a boolean —\n \"connected\" or not — because most of the time that is all a card needs to\n say. It is also wrong, and the state a boolean erases is the one that costs\n the most to rediscover: a connection can be authenticated and still not be\n doing its job. `ConnectionHealth` is a closed four-value union so that case\n has a name instead of quietly reading as \"connected\":\n\n unknown — never configured, or never checked. The \"Connect me\" state.\n healthy — connected and working.\n degraded — connected, but something is partially wrong (data is not\n flowing, a scope is missing, a sync is stale). Authenticated\n is not the same claim as working, and most integration UIs\n only have room for one of them.\n broken — connected-but-failing, or misconfigured. Needs action now.\n\n Collapsing `degraded` into `healthy` hides a slow-burning failure behind a\n green pill; collapsing it into `broken` cries wolf over something that is\n still partly doing its job. Neither merge is a simplification — each one\n deletes a real distinction a real operator needs, which is why this type\n stays a named four-value union rather than folding into `ok: boolean`.\n\n BUILT ON `Card`, NOT REINVENTED — the BOX and the FOOTER, still. The root\n is still `Card`, still `variant=\"flat\"` for `Card`'s own documented reason\n (\"for cards in a grid, where a dozen shadows turn the page into a quilt\" —\n exactly this surface), and the action still sits in a plain `CardFooter`.\n\n THE HEADER ROW, THOUGH, IS COMPOSED HERE — NOT VIA `CardHeader` — AND THAT\n IS A DELIBERATE REVERSAL, NOT A REINVENTION FOR ITS OWN SAKE. `CardHeader`'s\n text column is `flex-1` — `flex: 1 1 0%`, a ZERO flex-basis — so the\n line-breaking decision that `flex-wrap` runs BEFORE any growing/shrinking\n only ever sees that column at its floor: `min-width: auto`'s automatic\n minimum, which for a paragraph that is already free to wrap is just its\n longest unbreakable word, not anything resembling a readable column. Against\n a fixed-width trailing Badge (~71–110px, \"Not connected\" widest) and a\n ~36px logo, that floor is small enough that `logo + floor + badge` almost\n always \"fits\" the line by the wrap algorithm's own arithmetic — so the wrap\n this row visibly has NEVER FIRES, and the column is left to shrink to\n whatever sliver is left over instead. Measured on the real 3-column grid\n `ConnectionCardPage` recommends, at a 1280px viewport (309px card, the\n demo's own header block calls out `md:grid-cols-2 xl:grid-cols-3` as\n deliberately NOT a library concern) that sliver was 129px wide and 8 lines\n tall, next to a mostly-empty card — a defect that shipped in 3.6.0 because\n the wide demo grid never produces a card narrow enough to hit it.\n\n The fix is the text column's flex-basis, not its floor: `grow basis-40`\n (160px) instead of `flex-1`'s implicit `basis-0`. A real basis is what the\n wrap decision actually measures, so `logo + 160px + badge` now correctly\n fails to fit at 309px, wraps the Badge onto its own line, and the\n description gets the FULL card width on the row beneath — not a race\n against a badge for scraps of one shared row. At the width where it still\n fits unwrapped (measured 448px card, 267px description, 4 lines — the\n shipped-and-correct case), the basis is provably a no-op: once a flex line\n is settled, `grow`'s share of the leftover space is `available − logo −\n badge − gaps` regardless of what the basis itself was, so this fix cannot\n change that number. `Card.tsx` and `RecordCard.tsx` carry the identical\n `flex-1` shape — this file does not touch either, both being outside this\n component's ownership, and the same defect can in principle still hit any\n OTHER `CardHeader` consumer whose trailing action is wide enough relative\n to its own grid. Restoring `<CardHeader ...>` here to \"de-duplicate\" would\n silently reintroduce the exact regression this comment exists to prevent —\n check the width math above before doing that.\n\n THE CARD IS NOT THE BUTTON. A connection tile is not \"click anywhere to\n manage\" — the primary action is one control with its own name, and the rest\n of the card is inert. So the root never opts into `Card`'s `interactive`\n variant; it stays a plain, unfocusable `<div>`, and the ONLY interactive\n element this component ever renders is the action `Button` in the footer.\n\n COLOUR IS NEVER THE ONLY CHANNEL (WCAG 1.4.1). Each state gets its own\n glyph — a filled circle, a triangle, an X, a dashed circle — chosen so the\n four are distinguishable by SILHOUETTE alone, not only by hue, and its own\n text label, which a screen reader announces regardless of any of that. The\n border tint on top is a bonus for a sighted reader scanning a dozen tiles\n at once; it is never load-bearing, because the badge already carries the\n full signal without it.\n -------------------------------------------------------------------------- */\n\nexport type ConnectionHealth = \"healthy\" | \"degraded\" | \"broken\" | \"unknown\";\n\nconst STATUS_META: Record<\n ConnectionHealth,\n { tone: BadgeProps[\"tone\"]; icon: ReactNode; border: string }\n> = {\n healthy: {\n tone: \"success\",\n icon: <Icon name=\"circle-check\" size=\"xs\" />,\n // Quiet on purpose — a correct connection has nothing to announce beyond\n // the badge, and giving it a coloured border too would spend emphasis a\n // column of a dozen mostly-fine tiles cannot afford to spread around.\n border: \"border-border\",\n },\n degraded: {\n tone: \"warning\",\n icon: <Icon name=\"triangle-alert\" size=\"xs\" />,\n border: \"border-warning-border\",\n },\n broken: {\n tone: \"danger\",\n icon: <Icon name=\"circle-x\" size=\"xs\" />,\n border: \"border-danger-border\",\n },\n unknown: {\n tone: \"neutral\",\n icon: <Icon name=\"circle-dashed\" size=\"xs\" />,\n // A DASHED border, not merely a quiet-coloured one — the same convention\n // `FileUpload`'s empty state already uses for \"nothing is here yet\". It\n // gives \"never configured\" a shape difference on top of the colour\n // difference, for the exact reader the colour difference does nothing for.\n border: \"border-dashed border-border-subtle\",\n },\n};\n\nexport interface ConnectionCardProps {\n /**\n * The service's brand mark. A consumer normally passes a real logo — an\n * `<img>`, an inline SVG. Omit it and the card falls back to this library's\n * own `Icon`, so a catalogue is never missing a media slot entirely just\n * because one integration has no artwork yet.\n */\n logo?: ReactNode;\n /** The service's name. Plain text — it is composed into the action button's\n * accessible name (see `actionLabel`), which a JSX tree cannot be. */\n name: string;\n /** What this connection is FOR, one line — \"Email via Mailchimp\n * Transactional\", not \"Mailchimp integration\". */\n description?: ReactNode;\n /** The four-state health model. See the file header for why not a boolean. */\n status: ConnectionHealth;\n /** A failure reason, a partial-failure explanation, or a last-checked\n * timestamp — whatever the status badge does not already say. Rendered\n * only when supplied; omitting it drops the line rather than reserving\n * empty space for it. */\n detail?: ReactNode;\n /**\n * The primary action's visible label — typically \"Connect\" for `unknown`,\n * \"Manage\" (or \"Reconnect\", \"Fix\") otherwise. Omitting it renders no action\n * at all, for a read-only tile.\n *\n * The button's PROMINENCE follows `status`, not this label's wording: an\n * `unknown` card gets the solid, high-contrast treatment because getting it\n * connected is the one thing worth doing; every other state gets the\n * quieter outline treatment, because the card's border and badge are\n * already carrying the \"look here\" signal and a second loud button would\n * just compete with them.\n */\n actionLabel?: string;\n onAction?: () => void;\n /**\n * Present (and non-`undefined`) disables the action and explains why.\n *\n * This is `IconButton`'s `disabledReason` contract, carried over verbatim:\n * `aria-disabled` rather than native `disabled`, so the control stays\n * hoverable and focusable — a `disabled` button drops out of hit-testing\n * entirely, and a control nobody can point at can never be asked why it\n * won't fire. The reason is announced two ways at once, neither of them\n * \"only on hover\": an always-present `sr-only` node wired through\n * `aria-describedby` for a screen reader, and a visible `Tooltip` that opens\n * on focus as well as on pointer hover, for a keyboard user who generates\n * no hover event at all.\n */\n actionDisabledReason?: string;\n /**\n * The heading level the name renders as. See `CardHeader.titleAs` — the\n * reasoning is identical: a card's correct heading level is a property of\n * where it sits in the page outline, not of the card, so only the caller\n * of a whole catalogue grid knows it.\n *\n * @default \"h3\"\n */\n titleAs?: CardHeaderProps[\"titleAs\"];\n className?: string;\n}\n\n/** The library's own fallback mark for a connection with no supplied logo —\n * never a bare, unboxed glyph, so a missing brand asset still occupies the\n * same footprint a real one would. */\nfunction DefaultLogo() {\n return (\n <span className=\"grid size-9 shrink-0 place-items-center rounded-lg bg-surface-inset text-tertiary\">\n <Icon name=\"link\" size=\"md\" />\n </span>\n );\n}\n\nexport function ConnectionCard({\n logo,\n name,\n description,\n status,\n detail,\n actionLabel,\n onAction,\n actionDisabledReason,\n titleAs,\n className,\n}: ConnectionCardProps) {\n const strings = useUiStrings().connectionCard;\n const meta = STATUS_META[status];\n const off = actionDisabledReason !== undefined;\n const reasonId = useId();\n const Title = titleAs ?? \"h3\";\n\n function handleAction(event: MouseEvent<HTMLButtonElement>) {\n // The guard lives here, not on the caller's own handler, for the same\n // reason `IconButton` puts it here: `aria-disabled` leaves the button\n // genuinely clickable as far as the DOM is concerned, and forgetting this\n // check is how a soft-disabled control fires anyway.\n if (off) {\n event.preventDefault();\n return;\n }\n onAction?.();\n }\n\n const actionVariant: ButtonProps[\"variant\"] = off\n ? \"outline\"\n : status === \"unknown\"\n ? \"solid\"\n : \"outline\";\n\n const action = actionLabel !== undefined && (\n <Button\n size=\"sm\"\n variant={actionVariant}\n // Composed rather than the visible label alone: a grid of a dozen\n // tiles can easily carry several buttons that all just say \"Connect\",\n // and a screen-reader user tabbing through a \"buttons\" list hears only\n // the name, never the card around it. The visible label stays short —\n // sighted readers already have the card for context.\n aria-label={strings.actionName(actionLabel, name)}\n aria-disabled={off || undefined}\n aria-describedby={off ? reasonId : undefined}\n onClick={handleAction}\n className={cn(\n // OFF, VISIBLY, AND NOT BY HUE ALONE — dimmed luminance plus a cursor\n // the pointer actually reaches, exactly `IconButton`'s own off state.\n off && \"cursor-not-allowed opacity-45 active:translate-y-0\",\n )}\n >\n {actionLabel}\n {off && (\n <span id={reasonId} className=\"sr-only\">\n {actionDisabledReason}\n </span>\n )}\n </Button>\n );\n\n return (\n <Card variant=\"flat\" padding=\"md\" className={cn(meta.border, className)}>\n {/* HEADER — see the file header for why this is composed here rather\n than `<CardHeader>`. `flex-wrap` is the same rule `Card`'s own header\n slot uses; `basis-40` on the text column is the one line that isn't:\n it is what makes that wrap actually fire once the Badge no longer\n fits beside a full-width logo + column, instead of squeezing the\n column down to its word-wrap floor and never wrapping at all. */}\n <div className=\"flex flex-wrap items-start gap-4\">\n {logo ?? <DefaultLogo />}\n <div className=\"flex grow basis-40 flex-col gap-1\">\n <Title className=\"font-display text-md font-semibold text-primary text-balance\">\n {name}\n </Title>\n {description && <p className=\"text-sm text-secondary text-pretty\">{description}</p>}\n </div>\n <Badge size=\"sm\" tone={meta.tone} icon={meta.icon}>\n {strings.status[status]}\n </Badge>\n </div>\n\n {detail !== undefined && detail !== null && (\n <p className=\"text-xs text-tertiary text-pretty\">{detail}</p>\n )}\n\n {action && (\n <CardFooter>\n {/* The tooltip carries the REASON, and only when there is one — the\n button already shows its own label as visible text, unlike\n `IconButton`, so there is nothing for a tooltip to add while the\n control is live. */}\n {off ? <Tooltip content={actionDisabledReason}>{action}</Tooltip> : action}\n </CardFooter>\n )}\n </Card>\n );\n}\n"],"names":["STATUS_META","jsx","Icon","DefaultLogo","ConnectionCard","logo","name","description","status","detail","actionLabel","onAction","actionDisabledReason","titleAs","className","strings","useUiStrings","meta","off","reasonId","useId","Title","handleAction","event","action","jsxs","Button","cn","Card","Badge","CardFooter","Tooltip"],"mappings":";;;;;;;;;AA6FA,MAAMA,IAGF;AAAA,EACF,SAAS;AAAA,IACP,MAAM;AAAA,IACN,MAAM,gBAAAC,EAACC,GAAA,EAAK,MAAK,gBAAe,MAAK,MAAK;AAAA;AAAA;AAAA;AAAA,IAI1C,QAAQ;AAAA,EAAA;AAAA,EAEV,UAAU;AAAA,IACR,MAAM;AAAA,IACN,MAAM,gBAAAD,EAACC,GAAA,EAAK,MAAK,kBAAiB,MAAK,MAAK;AAAA,IAC5C,QAAQ;AAAA,EAAA;AAAA,EAEV,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,MAAM,gBAAAD,EAACC,GAAA,EAAK,MAAK,YAAW,MAAK,MAAK;AAAA,IACtC,QAAQ;AAAA,EAAA;AAAA,EAEV,SAAS;AAAA,IACP,MAAM;AAAA,IACN,MAAM,gBAAAD,EAACC,GAAA,EAAK,MAAK,iBAAgB,MAAK,MAAK;AAAA;AAAA;AAAA;AAAA;AAAA,IAK3C,QAAQ;AAAA,EAAA;AAEZ;AAkEA,SAASC,IAAc;AACrB,SACE,gBAAAF,EAAC,QAAA,EAAK,WAAU,qFACd,UAAA,gBAAAA,EAACC,KAAK,MAAK,QAAO,MAAK,KAAA,CAAK,EAAA,CAC9B;AAEJ;AAEO,SAASE,EAAe;AAAA,EAC7B,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AACF,GAAwB;AACtB,QAAMC,IAAUC,IAAe,gBACzBC,IAAOjB,EAAYQ,CAAM,GACzBU,IAAMN,MAAyB,QAC/BO,IAAWC,EAAA,GACXC,IAAQR,KAAW;AAEzB,WAASS,EAAaC,GAAsC;AAK1D,QAAIL,GAAK;AACP,MAAAK,EAAM,eAAA;AACN;AAAA,IACF;AACA,IAAAZ,IAAA;AAAA,EACF;AAQA,QAAMa,IAASd,MAAgB,UAC7B,gBAAAe;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,SAT0CR,IAC1C,YACAV,MAAW,YACT,UACA;AAAA,MAWF,cAAYO,EAAQ,WAAWL,GAAaJ,CAAI;AAAA,MAChD,iBAAeY,KAAO;AAAA,MACtB,oBAAkBA,IAAMC,IAAW;AAAA,MACnC,SAASG;AAAA,MACT,WAAWK;AAAA;AAAA;AAAA,QAGTT,KAAO;AAAA,MAAA;AAAA,MAGR,UAAA;AAAA,QAAAR;AAAA,QACAQ,KACC,gBAAAjB,EAAC,QAAA,EAAK,IAAIkB,GAAU,WAAU,WAC3B,UAAAP,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAKN,SACE,gBAAAa,EAACG,GAAA,EAAK,SAAQ,QAAO,SAAQ,MAAK,WAAWD,EAAGV,EAAK,QAAQH,CAAS,GAOpE,UAAA;AAAA,IAAA,gBAAAW,EAAC,OAAA,EAAI,WAAU,oCACZ,UAAA;AAAA,MAAApB,uBAASF,GAAA,EAAY;AAAA,MACtB,gBAAAsB,EAAC,OAAA,EAAI,WAAU,qCACb,UAAA;AAAA,QAAA,gBAAAxB,EAACoB,GAAA,EAAM,WAAU,gEACd,UAAAf,GACH;AAAA,QACCC,KAAe,gBAAAN,EAAC,KAAA,EAAE,WAAU,sCAAsC,UAAAM,EAAA,CAAY;AAAA,MAAA,GACjF;AAAA,MACA,gBAAAN,EAAC4B,GAAA,EAAM,MAAK,MAAK,MAAMZ,EAAK,MAAM,MAAMA,EAAK,MAC1C,UAAAF,EAAQ,OAAOP,CAAM,EAAA,CACxB;AAAA,IAAA,GACF;AAAA,IAEyBC,KAAW,0BACjC,KAAA,EAAE,WAAU,qCAAqC,UAAAA,EAAA,CAAO;AAAA,IAG1De,KACC,gBAAAvB,EAAC6B,GAAA,EAKE,UAAAZ,IAAM,gBAAAjB,EAAC8B,KAAQ,SAASnB,GAAuB,UAAAY,EAAA,CAAO,IAAaA,EAAA,CACtE;AAAA,EAAA,GAEJ;AAEJ;"}
@@ -0,0 +1,49 @@
1
+ import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
+ import { cn as l } from "../lib/cn.js";
3
+ import { AccordionItem as x } from "./Accordion.js";
4
+ import { Badge as m } from "./Badge.js";
5
+ const f = {
6
+ danxbot: "neutral",
7
+ repo: "info",
8
+ plugin: "success"
9
+ };
10
+ function N({ value: n, category: s, source: t, sourceLabel: c, id: d, sizeLabel: p, children: r, className: o }) {
11
+ const i = /* @__PURE__ */ a("span", { className: "flex flex-wrap items-center gap-2", children: [
12
+ /* @__PURE__ */ e(m, { size: "sm", tone: "neutral", children: s }),
13
+ /* @__PURE__ */ e(m, { size: "sm", tone: f[t], children: c ?? t }),
14
+ /* @__PURE__ */ e("span", { className: "font-mono text-xs text-primary", children: d }),
15
+ /* @__PURE__ */ e("span", { className: "ml-auto text-xs text-tertiary", children: p })
16
+ ] });
17
+ return r == null || r === !1 ? /* @__PURE__ */ a(
18
+ "div",
19
+ {
20
+ "data-slot": "context-item-row-inert",
21
+ className: l("flex w-full items-center gap-3 border-b border-border-subtle py-4 last:border-b-0", o),
22
+ children: [
23
+ /* @__PURE__ */ e("span", { className: "min-w-0 flex-1 text-sm font-medium text-primary", children: i }),
24
+ /* @__PURE__ */ e("span", { "aria-hidden": !0, className: "shrink-0", style: { width: "var(--icon-sm)" } })
25
+ ]
26
+ }
27
+ ) : /* @__PURE__ */ e(x, { value: n, className: o, title: i, children: r });
28
+ }
29
+ function w({ countLabel: n, totalLabel: s, className: t }) {
30
+ return /* @__PURE__ */ a(
31
+ "div",
32
+ {
33
+ className: l(
34
+ "flex flex-wrap items-center justify-between gap-x-4 gap-y-1 rounded border border-border px-3 py-2 text-sm",
35
+ t
36
+ ),
37
+ children: [
38
+ /* @__PURE__ */ e("span", { className: "text-secondary", children: n }),
39
+ /* @__PURE__ */ e("span", { className: "font-medium text-primary", children: s })
40
+ ]
41
+ }
42
+ );
43
+ }
44
+ export {
45
+ f as CONTEXT_SOURCE_TONE,
46
+ N as ContextItemRow,
47
+ w as ContextSummary
48
+ };
49
+ //# sourceMappingURL=ContextItemRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextItemRow.js","sources":["../../src/components/ContextItemRow.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { AccordionItem } from \"./Accordion\";\nimport { Badge, type BadgeProps } from \"./Badge\";\n\ntype BadgeTone = NonNullable<BadgeProps[\"tone\"]>;\n\n/* ============================================================================\n THE CONTEXT-ITEM ROW (DX-5523, from danxbot's dispatch context viewer) — one\n thing an agent starts with: what KIND it is, where it came FROM, its name and\n how big it is. Plus the summary line above the list: how many, how large.\n\n Views over a plain model. Every word arrives from the caller (the category\n label, the size sentence, the item count and total sentence), so the library\n fetches nothing and knows no language. The row is an `AccordionItem`, so it\n goes inside an `Accordion`; its children are the body shown when it opens, and\n a row with no children is inert (a picture that is not interactive).\n\n `CONTEXT_SOURCE_TONE` is the one place a source gets a colour: the app's viewer\n and the 50arms.ai picture of it both read it, so they cannot drift apart. The\n source id itself (\"danxbot\", \"repo\", \"plugin\") is data, not copy, and is shown\n as given.\n\n It renders on a server: nothing here reads `window` or `document`.\n ========================================================================= */\n\n/** Where a piece of an agent's context came from. */\nexport type ContextSource = \"danxbot\" | \"repo\" | \"plugin\";\n\n/** The badge tone of each source. */\nexport const CONTEXT_SOURCE_TONE = {\n danxbot: \"neutral\",\n repo: \"info\",\n plugin: \"success\",\n} as const satisfies Record<ContextSource, BadgeTone>;\n\nexport interface ContextItemRowProps {\n /** The `Accordion` item value; unique within the list. */\n value: string;\n /** The category, already in the reader's language (\"Skill\"). */\n category: string;\n source: ContextSource;\n /** The Badge text for the source when it should differ from the id (\"50 Arms\" for \"danxbot\"); `source` still picks the tone. */\n sourceLabel?: string;\n /** The item's own name, shown in mono. */\n id: string;\n /** The size sentence (\"9,600 bytes · ~2,400 tokens\"), already formatted. */\n sizeLabel: string;\n /** The body shown when the row opens. */\n children?: ReactNode;\n className?: string;\n}\n\nexport function ContextItemRow({ value, category, source, sourceLabel, id, sizeLabel, children, className }: ContextItemRowProps) {\n const title = (\n <span className=\"flex flex-wrap items-center gap-2\">\n <Badge size=\"sm\" tone=\"neutral\">\n {category}\n </Badge>\n <Badge size=\"sm\" tone={CONTEXT_SOURCE_TONE[source]}>\n {sourceLabel ?? source}\n </Badge>\n <span className=\"font-mono text-xs text-primary\">{id}</span>\n <span className=\"ml-auto text-xs text-tertiary\">{sizeLabel}</span>\n </span>\n );\n if (children === undefined || children === null || children === false) {\n /* DX-5523: nothing to open, so no button, no chevron and nothing to focus. The row keeps the open row's padding, text\n size and a chevron-wide spacer, so a list mixing both reads as one column at one height. */\n return (\n <div\n data-slot=\"context-item-row-inert\"\n className={cn(\"flex w-full items-center gap-3 border-b border-border-subtle py-4 last:border-b-0\", className)}\n >\n <span className=\"min-w-0 flex-1 text-sm font-medium text-primary\">{title}</span>\n <span aria-hidden className=\"shrink-0\" style={{ width: \"var(--icon-sm)\" }} />\n </div>\n );\n }\n return (\n <AccordionItem value={value} className={className} title={title}>\n {children}\n </AccordionItem>\n );\n}\n\nexport interface ContextSummaryProps {\n /** \"5 items\", already in the reader's language. */\n countLabel: string;\n /** \"20,000 bytes · ~5,000 tokens total\", already formatted. */\n totalLabel: string;\n className?: string;\n}\n\n/** The line above the list: how many items, and what they add up to. */\nexport function ContextSummary({ countLabel, totalLabel, className }: ContextSummaryProps) {\n return (\n <div\n className={cn(\n \"flex flex-wrap items-center justify-between gap-x-4 gap-y-1 rounded border border-border px-3 py-2 text-sm\",\n className,\n )}\n >\n <span className=\"text-secondary\">{countLabel}</span>\n <span className=\"font-medium text-primary\">{totalLabel}</span>\n </div>\n );\n}\n"],"names":["CONTEXT_SOURCE_TONE","ContextItemRow","value","category","source","sourceLabel","id","sizeLabel","children","className","title","jsxs","jsx","Badge","cn","AccordionItem","ContextSummary","countLabel","totalLabel"],"mappings":";;;;AA8BO,MAAMA,IAAsB;AAAA,EACjC,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AACV;AAmBO,SAASC,EAAe,EAAE,OAAAC,GAAO,UAAAC,GAAU,QAAAC,GAAQ,aAAAC,GAAa,IAAAC,GAAI,WAAAC,GAAW,UAAAC,GAAU,WAAAC,KAAkC;AAChI,QAAMC,IACJ,gBAAAC,EAAC,QAAA,EAAK,WAAU,qCACd,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAM,MAAK,MAAK,MAAK,WACnB,UAAAV,GACH;AAAA,IACA,gBAAAS,EAACC,KAAM,MAAK,MAAK,MAAMb,EAAoBI,CAAM,GAC9C,UAAAC,KAAeD,EAAA,CAClB;AAAA,IACA,gBAAAQ,EAAC,QAAA,EAAK,WAAU,kCAAkC,UAAAN,GAAG;AAAA,IACrD,gBAAAM,EAAC,QAAA,EAAK,WAAU,iCAAiC,UAAAL,EAAA,CAAU;AAAA,EAAA,GAC7D;AAEF,SAA8BC,KAAa,QAAQA,MAAa,KAI5D,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWG,EAAG,qFAAqFL,CAAS;AAAA,MAE5G,UAAA;AAAA,QAAA,gBAAAG,EAAC,QAAA,EAAK,WAAU,mDAAmD,UAAAF,GAAM;AAAA,QACzE,gBAAAE,EAAC,QAAA,EAAK,eAAW,IAAC,WAAU,YAAW,OAAO,EAAE,OAAO,mBAAiB,CAAG;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IAK/E,gBAAAA,EAACG,GAAA,EAAc,OAAAb,GAAc,WAAAO,GAAsB,OAAAC,GAChD,UAAAF,GACH;AAEJ;AAWO,SAASQ,EAAe,EAAE,YAAAC,GAAY,YAAAC,GAAY,WAAAT,KAAkC;AACzF,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWG;AAAA,QACT;AAAA,QACAL;AAAA,MAAA;AAAA,MAGF,UAAA;AAAA,QAAA,gBAAAG,EAAC,QAAA,EAAK,WAAU,kBAAkB,UAAAK,GAAW;AAAA,QAC7C,gBAAAL,EAAC,QAAA,EAAK,WAAU,4BAA4B,UAAAM,EAAA,CAAW;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG7D;"}
@@ -0,0 +1,57 @@
1
+ import { jsxs as y, jsx as r } from "react/jsx-runtime";
2
+ import { useState as x, useRef as g, useEffect as h } from "react";
3
+ import { copyText as b } from "../lib/clipboard.js";
4
+ import { cn as S } from "../lib/cn.js";
5
+ import { Icon as T } from "./Icon.js";
6
+ import { IconButton as w } from "./IconButton.js";
7
+ import { useUiStrings as v } from "../lib/i18n/provider.js";
8
+ const E = 2e3;
9
+ function V({ value: i, copyValue: a, label: l, onCopied: m, onCopyError: u, className: p }) {
10
+ const o = v().copyValue, [t, n] = x("idle"), e = g(null);
11
+ h(
12
+ () => () => {
13
+ e.current !== null && clearTimeout(e.current);
14
+ },
15
+ []
16
+ );
17
+ const d = async () => {
18
+ const s = a ?? i;
19
+ let c;
20
+ try {
21
+ await b(s), c = "copied", m?.(s);
22
+ } catch (f) {
23
+ c = "failed", u?.(f);
24
+ }
25
+ n(c), e.current !== null && clearTimeout(e.current), e.current = setTimeout(() => n("idle"), E);
26
+ };
27
+ return /* @__PURE__ */ y(
28
+ "div",
29
+ {
30
+ "data-copy-value": "",
31
+ className: S(
32
+ "flex w-full min-w-0 items-center gap-2 rounded-md border border-border bg-surface-inset px-3 py-1.5",
33
+ p
34
+ ),
35
+ children: [
36
+ /* @__PURE__ */ r("code", { className: "min-w-0 flex-1 truncate font-mono text-sm text-primary", children: i }),
37
+ /* @__PURE__ */ r(
38
+ w,
39
+ {
40
+ icon: /* @__PURE__ */ r(T, { name: t === "copied" ? "check" : t === "failed" ? "triangle-alert" : "copy", size: "sm" }),
41
+ label: o.copy(l),
42
+ variant: "ghost",
43
+ size: "sm",
44
+ onClick: () => {
45
+ d();
46
+ }
47
+ }
48
+ ),
49
+ /* @__PURE__ */ r("span", { role: "status", className: "sr-only", children: t === "copied" ? o.copied : t === "failed" ? o.failed : "" })
50
+ ]
51
+ }
52
+ );
53
+ }
54
+ export {
55
+ V as CopyValue
56
+ };
57
+ //# sourceMappingURL=CopyValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyValue.js","sources":["../../src/components/CopyValue.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { copyText } from \"../lib/clipboard\";\nimport { cn } from \"../lib/cn\";\nimport { useUiStrings } from \"../lib/i18n\";\nimport { Icon } from \"./Icon\";\nimport { IconButton } from \"./IconButton\";\n\n/* ============================================================================\n COPY VALUE — a value a person must carry somewhere else (a sign-up code, an\n invite command, a link), with the one-click copy that goes with it.\n\n WHY THE LIBRARY OWNS IT. Every consumer that needed this hand-built the same\n three things: a monospace readout, an icon button, and a toast on the result.\n The button is where it goes wrong — no accessible name, no answer when the\n browser refuses the clipboard — so the control is one component whose `label`\n is required (the `IconButton` argument) and whose failure is said on the\n control itself, never swallowed.\n\n WHAT IS SHOWN IS NOT NECESSARILY WHAT IS COPIED. `copyValue` defaults to\n `value`; a sign-up code is shown as the code and copied as its sign-up LINK,\n which is the thing a recipient can use. The button's name says which\n (\"Copy sign-up link\"), so the difference is never a surprise.\n\n THE OUTCOME IS ANNOUNCED. The icon turns into a check (or a warning) for\n `RESET_MS`, and the same words go to a polite live region, so a screen-reader\n user hears \"Copied\" or \"Copy failed\" and a sighted user is not left guessing\n whether the click landed. Failure means BOTH the async Clipboard API and the\n `execCommand` fallback refused (`copyText`), the only case that is a real\n failure.\n ========================================================================= */\n\nconst RESET_MS = 2000;\n\ntype CopyState = \"idle\" | \"copied\" | \"failed\";\n\nexport interface CopyValueProps {\n /** What is shown, in a monospace readout. */\n value: string;\n /** What lands on the clipboard. Defaults to `value`. */\n copyValue?: string;\n /** Names the copy action for assistive tech and the tooltip, e.g. \"sign-up link\" → \"Copy sign-up link\". Required: an icon-only control has no other name. */\n label: string;\n /** Fires after a successful copy, with the text that was copied. */\n onCopied?: (copied: string) => void;\n /** Fires when the browser refused the clipboard, with the underlying error. */\n onCopyError?: (error: unknown) => void;\n className?: string;\n}\n\nexport function CopyValue({ value, copyValue, label, onCopied, onCopyError, className }: CopyValueProps) {\n const strings = useUiStrings().copyValue;\n const [state, setState] = useState<CopyState>(\"idle\");\n const timer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(\n () => () => {\n if (timer.current !== null) clearTimeout(timer.current);\n },\n [],\n );\n\n const copy = async () => {\n const text = copyValue ?? value;\n let next: CopyState;\n try {\n await copyText(text);\n next = \"copied\";\n onCopied?.(text);\n } catch (error) {\n next = \"failed\";\n onCopyError?.(error);\n }\n setState(next);\n if (timer.current !== null) clearTimeout(timer.current);\n timer.current = setTimeout(() => setState(\"idle\"), RESET_MS);\n };\n\n return (\n <div\n data-copy-value=\"\"\n className={cn(\n \"flex w-full min-w-0 items-center gap-2 rounded-md border border-border bg-surface-inset px-3 py-1.5\",\n className,\n )}\n >\n <code className=\"min-w-0 flex-1 truncate font-mono text-sm text-primary\">{value}</code>\n <IconButton\n icon={<Icon name={state === \"copied\" ? \"check\" : state === \"failed\" ? \"triangle-alert\" : \"copy\"} size=\"sm\" />}\n label={strings.copy(label)}\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => void copy()}\n />\n <span role=\"status\" className=\"sr-only\">\n {state === \"copied\" ? strings.copied : state === \"failed\" ? strings.failed : \"\"}\n </span>\n </div>\n );\n}\n"],"names":["RESET_MS","CopyValue","value","copyValue","label","onCopied","onCopyError","className","strings","useUiStrings","state","setState","useState","timer","useRef","useEffect","copy","text","next","copyText","error","jsxs","cn","jsx","IconButton","Icon"],"mappings":";;;;;;;AA+BA,MAAMA,IAAW;AAkBV,SAASC,EAAU,EAAE,OAAAC,GAAO,WAAAC,GAAW,OAAAC,GAAO,UAAAC,GAAU,aAAAC,GAAa,WAAAC,KAA6B;AACvG,QAAMC,IAAUC,IAAe,WACzB,CAACC,GAAOC,CAAQ,IAAIC,EAAoB,MAAM,GAC9CC,IAAQC,EAA6C,IAAI;AAE/D,EAAAC;AAAA,IACE,MAAM,MAAM;AACV,MAAIF,EAAM,YAAY,QAAM,aAAaA,EAAM,OAAO;AAAA,IACxD;AAAA,IACA,CAAA;AAAA,EAAC;AAGH,QAAMG,IAAO,YAAY;AACvB,UAAMC,IAAOd,KAAaD;AAC1B,QAAIgB;AACJ,QAAI;AACF,YAAMC,EAASF,CAAI,GACnBC,IAAO,UACPb,IAAWY,CAAI;AAAA,IACjB,SAASG,GAAO;AACd,MAAAF,IAAO,UACPZ,IAAcc,CAAK;AAAA,IACrB;AACA,IAAAT,EAASO,CAAI,GACTL,EAAM,YAAY,QAAM,aAAaA,EAAM,OAAO,GACtDA,EAAM,UAAU,WAAW,MAAMF,EAAS,MAAM,GAAGX,CAAQ;AAAA,EAC7D;AAEA,SACE,gBAAAqB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,mBAAgB;AAAA,MAChB,WAAWC;AAAA,QACT;AAAA,QACAf;AAAA,MAAA;AAAA,MAGF,UAAA;AAAA,QAAA,gBAAAgB,EAAC,QAAA,EAAK,WAAU,0DAA0D,UAAArB,GAAM;AAAA,QAChF,gBAAAqB;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,MAAM,gBAAAD,EAACE,GAAA,EAAK,MAAMf,MAAU,WAAW,UAAUA,MAAU,WAAW,mBAAmB,QAAQ,MAAK,KAAA,CAAK;AAAA,YAC3G,OAAOF,EAAQ,KAAKJ,CAAK;AAAA,YACzB,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,SAAS,MAAA;AAAM,cAAKY,EAAA;AAAA;AAAA,UAAK;AAAA,QAAA;AAAA,QAE3B,gBAAAO,EAAC,QAAA,EAAK,MAAK,UAAS,WAAU,WAC3B,UAAAb,MAAU,WAAWF,EAAQ,SAASE,MAAU,WAAWF,EAAQ,SAAS,GAAA,CAC/E;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,26 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { BADGE_NEUTRAL_TONE as a } from "./Badge.js";
3
+ import { cn as i } from "../lib/cn.js";
4
+ const s = {
5
+ neutral: ["border", a],
6
+ danger: ["bg-danger", "text-danger-contrast"]
7
+ }, d = "-right-1 -top-1", l = "-top-[11px] left-[calc(100%-5px)]", n = 99;
8
+ function u({ count: t, tone: e, outside: r = !1 }) {
9
+ return /* @__PURE__ */ o(
10
+ "span",
11
+ {
12
+ "aria-hidden": "true",
13
+ "data-icon-button-badge": e,
14
+ className: i(
15
+ "pointer-events-none absolute inline-flex h-4 min-w-4 items-center justify-center rounded-full px-1 text-2xs font-semibold leading-none tabular-nums",
16
+ r ? l : d,
17
+ s[e]
18
+ ),
19
+ children: t > n ? `${n}+` : t
20
+ }
21
+ );
22
+ }
23
+ export {
24
+ u as CountBadge
25
+ };
26
+ //# sourceMappingURL=CountBadge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CountBadge.js","sources":["../../src/components/CountBadge.tsx"],"sourcesContent":["import { BADGE_NEUTRAL_TONE } from \"./Badge\";\nimport { cn } from \"../lib/cn\";\n\n/** `neutral` is the quiet gray of a count nothing waits on, `danger` the red of one that does. */\nexport type CountBadgeTone = \"neutral\" | \"danger\";\n\n/** The face of each tone. A solid red, so an unread count is the first thing the eye finds; the gray one is the library's raised surface, as a `Badge` neutral. */\nconst TONE = {\n neutral: [\"border\", BADGE_NEUTRAL_TONE],\n danger: [\"bg-danger\", \"text-danger-contrast\"],\n} as const satisfies Record<CountBadgeTone, readonly string[]>;\n\nconst INSIDE = \"-right-1 -top-1\";\nconst OUTSIDE = \"-top-[11px] left-[calc(100%-5px)]\";\n\nconst MAX = 99;\n\n/**\n * DX-6446 — a count as a small round badge on the top-right corner of its positioned parent (`relative`), the one look every comment count has:\n * the comment button's, and the card face's comment mark. It is a SIBLING of the glyph's clipping control, never inside it: `Button` clips its content\n * (`overflow-hidden`, for the ripple), which cut the badge and, once it was pulled inward, put it over the glyph.\n * `outside` rides the badge on the corner of a bare glyph: it overlaps only a 5px square of the glyph's corner and is anchored by its left edge, so a wider count grows away from the glyph; the owner reserves the width to its right.\n * The number is zero-inclusive (a count of nothing is still a count) and reads `99+` above 99. `aria-hidden`: the owner's label says the count.\n */\nexport function CountBadge({ count, tone, outside = false }: { count: number; tone: CountBadgeTone; outside?: boolean }) {\n return (\n <span\n aria-hidden=\"true\"\n data-icon-button-badge={tone}\n className={cn(\n \"pointer-events-none absolute inline-flex h-4 min-w-4 items-center justify-center rounded-full px-1 text-2xs font-semibold leading-none tabular-nums\",\n outside ? OUTSIDE : INSIDE,\n TONE[tone],\n )}\n >\n {count > MAX ? `${MAX}+` : count}\n </span>\n );\n}\n"],"names":["TONE","BADGE_NEUTRAL_TONE","INSIDE","OUTSIDE","MAX","CountBadge","count","tone","outside","jsx","cn"],"mappings":";;;AAOA,MAAMA,IAAO;AAAA,EACX,SAAS,CAAC,UAAUC,CAAkB;AAAA,EACtC,QAAQ,CAAC,aAAa,sBAAsB;AAC9C,GAEMC,IAAS,mBACTC,IAAU,qCAEVC,IAAM;AASL,SAASC,EAAW,EAAE,OAAAC,GAAO,MAAAC,GAAM,SAAAC,IAAU,MAAqE;AACvH,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAY;AAAA,MACZ,0BAAwBF;AAAA,MACxB,WAAWG;AAAA,QACT;AAAA,QACAF,IAAUL,IAAUD;AAAA,QACpBF,EAAKO,CAAI;AAAA,MAAA;AAAA,MAGV,UAAAD,IAAQF,IAAM,GAAGA,CAAG,MAAME;AAAA,IAAA;AAAA,EAAA;AAGjC;"}
@@ -0,0 +1,156 @@
1
+ import { jsxs as y, jsx as i } from "react/jsx-runtime";
2
+ import { useState as Y, useMemo as K } from "react";
3
+ import { cn as O } from "../lib/cn.js";
4
+ import { dateFormat as L } from "../lib/intl-cache.js";
5
+ import { Icon as P } from "./Icon.js";
6
+ import { Button as j } from "./Button.js";
7
+ import { IconButton as z } from "./IconButton.js";
8
+ import { useUiLocale as G, useUiStrings as Z } from "../lib/i18n/provider.js";
9
+ const u = (e, o, s) => new Date(e, o, s), b = (e) => u(e.getFullYear(), e.getMonth(), e.getDate()), m = (e, o) => !!e && !!o && e.getFullYear() === o.getFullYear() && e.getMonth() === o.getMonth() && e.getDate() === o.getDate(), v = (e, o) => u(e.getFullYear(), e.getMonth(), e.getDate() + o), x = (e, o) => u(e.getFullYear(), e.getMonth() + o, 1), $ = (e) => (e.getDay() + 6) % 7;
10
+ function J(e) {
11
+ const o = u(e.getFullYear(), e.getMonth(), 1), s = v(o, -$(o));
12
+ return Array.from({ length: 42 }, (D, f) => v(s, f));
13
+ }
14
+ const nt = "w-[19rem] p-3 pointer-coarse:w-[22rem] pointer-coarse:p-2";
15
+ function st({
16
+ value: e,
17
+ onValueChange: o,
18
+ range: s = !1,
19
+ min: D,
20
+ max: f,
21
+ isDateDisabled: E,
22
+ clearable: I = !0,
23
+ className: R
24
+ }) {
25
+ const w = G(), d = Z().dateCalendar, _ = Array.from(
26
+ { length: 7 },
27
+ (t, l) => L(w, { weekday: "short", timeZone: "UTC" }).format(new Date(Date.UTC(2024, 0, 1 + l)))
28
+ ), M = e ?? null, r = s ? M ?? { from: null, to: null } : null, k = s ? null : M, [a, c] = Y(() => b(k ?? r?.from ?? /* @__PURE__ */ new Date())), [S, A] = Y(null), B = K(() => J(a), [a]), g = b(/* @__PURE__ */ new Date()), h = r?.to ?? (r?.from && S ? S : null), [F, C] = r?.from && h && h < r.from ? [h, r.from] : [r?.from ?? null, h];
29
+ function N(t) {
30
+ return D && t < b(D) || f && t > b(f) ? !0 : E?.(t) ?? !1;
31
+ }
32
+ function U(t) {
33
+ if (!N(t)) {
34
+ if (!s) {
35
+ o?.(t);
36
+ return;
37
+ }
38
+ if (!r?.from || r.from && r.to)
39
+ o?.({ from: t, to: null });
40
+ else {
41
+ const l = r.from;
42
+ o?.(t < l ? { from: t, to: l } : { from: l, to: t });
43
+ }
44
+ }
45
+ }
46
+ function T(t, l) {
47
+ const p = {
48
+ ArrowLeft: -1,
49
+ ArrowRight: 1,
50
+ ArrowUp: -7,
51
+ ArrowDown: 7
52
+ };
53
+ if (p[t.key] !== void 0) {
54
+ t.preventDefault();
55
+ const n = v(l, p[t.key]);
56
+ n.getMonth() !== a.getMonth() && c(u(n.getFullYear(), n.getMonth(), 1)), queueMicrotask(() => {
57
+ document.querySelector(`[data-day="${n.toDateString()}"]`)?.focus();
58
+ });
59
+ } else (t.key === "PageUp" || t.key === "PageDown") && (t.preventDefault(), c((n) => x(n, t.key === "PageUp" ? -1 : 1)));
60
+ }
61
+ return (
62
+ /* The calendar FILLS its popover (`CALENDAR_POPOVER_CLASS` sizes that), so the month grid
63
+ never reflows as the day count changes and never outgrows a phone: a fixed frame wider
64
+ than 90vw is what clipped it. */
65
+ /* @__PURE__ */ y("div", { className: O("flex w-full flex-col gap-3", R), children: [
66
+ /* @__PURE__ */ y("div", { className: "flex items-center justify-between gap-2", children: [
67
+ /* @__PURE__ */ i(
68
+ z,
69
+ {
70
+ label: d.previousMonth,
71
+ icon: /* @__PURE__ */ i(P, { name: "chevron-left", size: "sm" }),
72
+ onClick: () => c((t) => x(t, -1))
73
+ }
74
+ ),
75
+ /* @__PURE__ */ i("span", { "aria-live": "polite", className: "text-sm font-semibold text-primary", children: L(w, { month: "long", year: "numeric" }).format(a) }),
76
+ /* @__PURE__ */ i(
77
+ z,
78
+ {
79
+ label: d.nextMonth,
80
+ icon: /* @__PURE__ */ i(P, { name: "chevron-right", size: "sm" }),
81
+ onClick: () => c((t) => x(t, 1))
82
+ }
83
+ )
84
+ ] }),
85
+ /* @__PURE__ */ y("div", { className: "grid grid-cols-7 gap-0.5 pointer-coarse:gap-0", role: "grid", children: [
86
+ _.map((t) => /* @__PURE__ */ i(
87
+ "span",
88
+ {
89
+ role: "columnheader",
90
+ className: "grid h-7 place-items-center text-2xs font-semibold text-tertiary",
91
+ children: t
92
+ },
93
+ t
94
+ )),
95
+ B.map((t) => {
96
+ const l = t.getMonth() !== a.getMonth(), p = N(t), n = s ? m(t, r?.from) || m(t, r?.to) : m(t, k), q = !!F && !!C && t > F && t < C;
97
+ return /* @__PURE__ */ i(
98
+ "button",
99
+ {
100
+ type: "button",
101
+ role: "gridcell",
102
+ "data-day": t.toDateString(),
103
+ disabled: p,
104
+ "aria-selected": n,
105
+ "aria-current": m(t, g) ? "date" : void 0,
106
+ onClick: () => U(t),
107
+ onMouseEnter: () => A(t),
108
+ onMouseLeave: () => A(null),
109
+ onKeyDown: (H) => T(H, t),
110
+ className: O(
111
+ "dx-tap grid h-9 place-items-center rounded-md text-sm tabular-nums",
112
+ "transition-[var(--tx-colors)] duration-(--dur-instant)",
113
+ "disabled:pointer-events-none disabled:opacity-30",
114
+ /* Days from the neighbouring months stay VISIBLE but quiet.
115
+ Blanking them leaves ragged holes at the grid's corners and
116
+ makes the six-week frame look broken. */
117
+ l ? "text-tertiary/60" : "text-secondary",
118
+ /* EXACTLY ONE hover fill is ever emitted, chosen here rather
119
+ than layered in CSS. Layered, `hover:not-disabled:` carries
120
+ three conditions and the selected day's own `hover:bg-control`
121
+ carried two, so the UNSELECTED hover fill out-specified it:
122
+ pointing at the chosen date repainted it slate and the
123
+ selection disappeared under the pointer. That was the
124
+ reported bug. A ternary cannot lose that race. */
125
+ n ? "bg-control font-semibold text-control-contrast hover:not-disabled:bg-control-hover" : q ? "rounded-none bg-control-subtle text-control-text hover:not-disabled:bg-control-subtle-hover" : "hover:not-disabled:bg-surface-hover",
126
+ m(t, g) && !n && "font-semibold text-control-text"
127
+ ),
128
+ children: t.getDate()
129
+ },
130
+ t.toISOString()
131
+ );
132
+ })
133
+ ] }),
134
+ /* @__PURE__ */ y("div", { className: "flex items-center justify-between gap-2 border-t border-border-subtle pt-2.5", children: [
135
+ /* @__PURE__ */ i(
136
+ j,
137
+ {
138
+ size: "sm",
139
+ variant: "ghost",
140
+ onClick: () => {
141
+ c(g), U(g);
142
+ },
143
+ children: d.today
144
+ }
145
+ ),
146
+ I && /* @__PURE__ */ i(j, { size: "sm", variant: "ghost", onClick: () => o?.(s ? { from: null, to: null } : null), children: d.clear })
147
+ ] })
148
+ ] })
149
+ );
150
+ }
151
+ export {
152
+ nt as CALENDAR_POPOVER_CLASS,
153
+ st as DateCalendar,
154
+ b as startOfDay
155
+ };
156
+ //# sourceMappingURL=DateCalendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateCalendar.js","sources":["../../src/components/DateCalendar.tsx"],"sourcesContent":["import { useMemo, useState } from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { useUiLocale, useUiStrings } from \"../lib/i18n\";\nimport { dateFormat } from \"../lib/intl-cache\";\nimport { Icon } from \"./Icon\";\nimport { Button } from \"./Button\";\nimport { IconButton } from \"./IconButton\";\n\n/* ============================================================================\n DATE CALENDAR — the month grid, on its own.\n\n Written from scratch — Base UI ships no date primitive, and every dependency\n that does brings a date library with it. Split out of `DatePicker` (SG-906)\n so the two date controls that need a calendar — `DatePicker`, a button that\n opens one, and `DateField`, a typeable box with one beside it — draw the SAME\n calendar rather than two copies of it.\n\n NO DATE LIBRARY. The whole calendar is `Date` arithmetic, which is enough\n because the only operations a month grid needs are \"first of the month\",\n \"day of week\" and \"add a day\", and the platform does all three.\n\n THE THREE THINGS PICKERS GET WRONG:\n\n 1. TIMEZONE DRIFT. Building dates from ISO strings parses them as UTC, so\n anyone west of Greenwich sees yesterday. Every date here is constructed\n from local year/month/day components, never parsed from a string.\n 2. THE SIX-WEEK GRID. Months span five or six weeks depending on where\n they start, so a grid sized to its content changes height as you page\n through the year and the buttons move under the pointer. This always\n renders six weeks.\n 3. KEYBOARD. Arrows move by day, PageUp/PageDown by month. A calendar you\n cannot drive from the keyboard fails the people who need it most.\n\n RANGE MODE previews as you hover, so the span you are about to select is\n visible before you commit to it.\n ========================================================================= */\n\n/** Local-midnight date. Never `new Date(\"2026-08-19\")` — that parses as UTC. */\nconst at = (year: number, month: number, day: number) => new Date(year, month, day);\n\nexport const startOfDay = (d: Date) => at(d.getFullYear(), d.getMonth(), d.getDate());\nconst sameDay = (a?: Date | null, b?: Date | null) =>\n !!a && !!b && a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\nconst addDays = (d: Date, n: number) => at(d.getFullYear(), d.getMonth(), d.getDate() + n);\nconst addMonths = (d: Date, n: number) => at(d.getFullYear(), d.getMonth() + n, 1);\n\n/** Monday-first weekday index. `getDay()` is Sunday-first, which most of the world is not. */\nconst mondayIndex = (d: Date) => (d.getDay() + 6) % 7;\n\n/** Always 42 cells — six weeks — so the grid never changes height. */\nfunction monthGrid(month: Date): Date[] {\n const first = at(month.getFullYear(), month.getMonth(), 1);\n const start = addDays(first, -mondayIndex(first));\n return Array.from({ length: 42 }, (_, i) => addDays(start, i));\n}\n\nexport type DateRange = { from: Date | null; to: Date | null };\n\n/**\n * The popover a calendar opens in — ONE size for every control that opens one (`DatePicker`,\n * `DateField`), so they cannot drift apart.\n *\n * A touch day is floored to 44px (`dx-tap`), so seven of them need 308px, and a popover is capped\n * at 90vw. With the old fixed 20.5rem frame plus 12px padding a 375px phone clipped the Sunday\n * column, the next-month arrow and Clear (SG-906, measured). So on a coarse pointer the padding\n * drops to 8px and the calendar fills the popover instead of fixing its own width: 308px of days +\n * 16px of padding = 324px, which is 90vw of a 360px phone. On a mouse nothing changes size.\n */\nexport const CALENDAR_POPOVER_CLASS = \"w-[19rem] p-3 pointer-coarse:w-[22rem] pointer-coarse:p-2\";\n\nexport interface DateCalendarProps {\n /** A single date, or a range when `range` is set. */\n value?: Date | DateRange | null;\n onValueChange?: (value: Date | DateRange | null) => void;\n range?: boolean;\n min?: Date;\n max?: Date;\n /** Disable specific days — weekends, holidays, taken slots. */\n isDateDisabled?: (date: Date) => boolean;\n /** Draw the Clear button. `false` for a field that must always hold a date: no Clear button, and the calendar never emits an empty value. */\n clearable?: boolean;\n className?: string;\n}\n\nexport function DateCalendar({\n value,\n onValueChange,\n range = false,\n min,\n max,\n isDateDisabled,\n clearable = true,\n className,\n}: DateCalendarProps) {\n const locale = useUiLocale();\n const strings = useUiStrings().dateCalendar;\n /* Monday-first column heads, named by the locale: 2024-01-01 is a Monday. */\n const weekdayHeads = Array.from({ length: 7 }, (_, i) =>\n dateFormat(locale, { weekday: \"short\", timeZone: \"UTC\" }).format(new Date(Date.UTC(2024, 0, 1 + i))),\n );\n const selected = value ?? null;\n const asRange = range ? ((selected as DateRange | null) ?? { from: null, to: null }) : null;\n const single = range ? null : (selected as Date | null);\n\n const [month, setMonth] = useState<Date>(() => startOfDay(single ?? asRange?.from ?? new Date()));\n /* Hover preview for the second half of a range. */\n const [hovered, setHovered] = useState<Date | null>(null);\n\n const days = useMemo(() => monthGrid(month), [month]);\n const today = startOfDay(new Date());\n\n const rangeEnd = asRange?.to ?? (asRange?.from && hovered ? hovered : null);\n const [spanFrom, spanTo] =\n asRange?.from && rangeEnd && rangeEnd < asRange.from ? [rangeEnd, asRange.from] : [asRange?.from ?? null, rangeEnd];\n\n function isOutOfBounds(date: Date) {\n if (min && date < startOfDay(min)) return true;\n if (max && date > startOfDay(max)) return true;\n return isDateDisabled?.(date) ?? false;\n }\n\n function pick(date: Date) {\n if (isOutOfBounds(date)) return;\n if (!range) {\n onValueChange?.(date);\n return;\n }\n /* A complete range, or none at all, starts a new one. Otherwise the click\n closes the open range — with the ends swapped if you picked backwards,\n because \"select 20th then 12th\" obviously means the 12th to the 20th. */\n if (!asRange?.from || (asRange.from && asRange.to)) {\n onValueChange?.({ from: date, to: null });\n } else {\n const from = asRange.from;\n onValueChange?.(date < from ? { from: date, to: from } : { from, to: date });\n }\n }\n\n function onKeyDown(event: React.KeyboardEvent, date: Date) {\n const moves: Record<string, number> = {\n ArrowLeft: -1,\n ArrowRight: 1,\n ArrowUp: -7,\n ArrowDown: 7,\n };\n if (moves[event.key] !== undefined) {\n event.preventDefault();\n const next = addDays(date, moves[event.key]);\n if (next.getMonth() !== month.getMonth()) setMonth(at(next.getFullYear(), next.getMonth(), 1));\n // Focus follows the DOM, which re-renders with the new month in place.\n queueMicrotask(() => {\n document.querySelector<HTMLButtonElement>(`[data-day=\"${next.toDateString()}\"]`)?.focus();\n });\n } else if (event.key === \"PageUp\" || event.key === \"PageDown\") {\n event.preventDefault();\n setMonth((m) => addMonths(m, event.key === \"PageUp\" ? -1 : 1));\n }\n }\n\n return (\n /* The calendar FILLS its popover (`CALENDAR_POPOVER_CLASS` sizes that), so the month grid\n never reflows as the day count changes and never outgrows a phone: a fixed frame wider\n than 90vw is what clipped it. */\n <div className={cn(\"flex w-full flex-col gap-3\", className)}>\n <div className=\"flex items-center justify-between gap-2\">\n <IconButton\n label={strings.previousMonth}\n icon={<Icon name=\"chevron-left\" size=\"sm\" />}\n onClick={() => setMonth((m) => addMonths(m, -1))}\n />\n <span aria-live=\"polite\" className=\"text-sm font-semibold text-primary\">\n {dateFormat(locale, { month: \"long\", year: \"numeric\" }).format(month)}\n </span>\n <IconButton\n label={strings.nextMonth}\n icon={<Icon name=\"chevron-right\" size=\"sm\" />}\n onClick={() => setMonth((m) => addMonths(m, 1))}\n />\n </div>\n\n {/* No gap on a coarse pointer: seven 44px touch days must fit a 360px phone's popover. */}\n <div className=\"grid grid-cols-7 gap-0.5 pointer-coarse:gap-0\" role=\"grid\">\n {weekdayHeads.map((day) => (\n <span\n key={day}\n role=\"columnheader\"\n className=\"grid h-7 place-items-center text-2xs font-semibold text-tertiary\"\n >\n {day}\n </span>\n ))}\n\n {days.map((date) => {\n const outside = date.getMonth() !== month.getMonth();\n const isDisabled = isOutOfBounds(date);\n const isSelected = range ? sameDay(date, asRange?.from) || sameDay(date, asRange?.to) : sameDay(date, single);\n const inSpan = !!spanFrom && !!spanTo && date > spanFrom && date < spanTo;\n\n return (\n <button\n key={date.toISOString()}\n type=\"button\"\n role=\"gridcell\"\n data-day={date.toDateString()}\n disabled={isDisabled}\n aria-selected={isSelected}\n aria-current={sameDay(date, today) ? \"date\" : undefined}\n onClick={() => pick(date)}\n onMouseEnter={() => setHovered(date)}\n onMouseLeave={() => setHovered(null)}\n onKeyDown={(e) => onKeyDown(e, date)}\n className={cn(\n \"dx-tap grid h-9 place-items-center rounded-md text-sm tabular-nums\",\n \"transition-[var(--tx-colors)] duration-(--dur-instant)\",\n \"disabled:pointer-events-none disabled:opacity-30\",\n /* Days from the neighbouring months stay VISIBLE but quiet.\n Blanking them leaves ragged holes at the grid's corners and\n makes the six-week frame look broken. */\n outside ? \"text-tertiary/60\" : \"text-secondary\",\n /* EXACTLY ONE hover fill is ever emitted, chosen here rather\n than layered in CSS. Layered, `hover:not-disabled:` carries\n three conditions and the selected day's own `hover:bg-control`\n carried two, so the UNSELECTED hover fill out-specified it:\n pointing at the chosen date repainted it slate and the\n selection disappeared under the pointer. That was the\n reported bug. A ternary cannot lose that race. */\n isSelected\n ? \"bg-control font-semibold text-control-contrast hover:not-disabled:bg-control-hover\"\n : inSpan\n ? \"rounded-none bg-control-subtle text-control-text hover:not-disabled:bg-control-subtle-hover\"\n : \"hover:not-disabled:bg-surface-hover\",\n sameDay(date, today) && !isSelected && \"font-semibold text-control-text\",\n )}\n >\n {date.getDate()}\n </button>\n );\n })}\n </div>\n\n <div className=\"flex items-center justify-between gap-2 border-t border-border-subtle pt-2.5\">\n <Button\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => {\n setMonth(today);\n pick(today);\n }}\n >\n {strings.today}\n </Button>\n {clearable && (\n <Button size=\"sm\" variant=\"ghost\" onClick={() => onValueChange?.(range ? { from: null, to: null } : null)}>\n {strings.clear}\n </Button>\n )}\n </div>\n </div>\n );\n}\n"],"names":["at","year","month","day","startOfDay","d","sameDay","a","b","addDays","n","addMonths","mondayIndex","monthGrid","first","start","_","i","CALENDAR_POPOVER_CLASS","DateCalendar","value","onValueChange","range","min","max","isDateDisabled","clearable","className","locale","useUiLocale","strings","useUiStrings","weekdayHeads","dateFormat","selected","asRange","single","setMonth","useState","hovered","setHovered","days","useMemo","today","rangeEnd","spanFrom","spanTo","isOutOfBounds","date","pick","from","onKeyDown","event","moves","next","m","cn","jsxs","jsx","IconButton","Icon","outside","isDisabled","isSelected","inSpan","e","Button"],"mappings":";;;;;;;;AAsCA,MAAMA,IAAK,CAACC,GAAcC,GAAeC,MAAgB,IAAI,KAAKF,GAAMC,GAAOC,CAAG,GAErEC,IAAa,CAACC,MAAYL,EAAGK,EAAE,eAAeA,EAAE,SAAA,GAAYA,EAAE,QAAA,CAAS,GAC9EC,IAAU,CAACC,GAAiBC,MAChC,CAAC,CAACD,KAAK,CAAC,CAACC,KAAKD,EAAE,kBAAkBC,EAAE,YAAA,KAAiBD,EAAE,SAAA,MAAeC,EAAE,cAAcD,EAAE,QAAA,MAAcC,EAAE,QAAA,GACpGC,IAAU,CAACJ,GAASK,MAAcV,EAAGK,EAAE,eAAeA,EAAE,SAAA,GAAYA,EAAE,QAAA,IAAYK,CAAC,GACnFC,IAAY,CAACN,GAASK,MAAcV,EAAGK,EAAE,YAAA,GAAeA,EAAE,aAAaK,GAAG,CAAC,GAG3EE,IAAc,CAACP,OAAaA,EAAE,OAAA,IAAW,KAAK;AAGpD,SAASQ,EAAUX,GAAqB;AACtC,QAAMY,IAAQd,EAAGE,EAAM,YAAA,GAAeA,EAAM,SAAA,GAAY,CAAC,GACnDa,IAAQN,EAAQK,GAAO,CAACF,EAAYE,CAAK,CAAC;AAChD,SAAO,MAAM,KAAK,EAAE,QAAQ,GAAA,GAAM,CAACE,GAAGC,MAAMR,EAAQM,GAAOE,CAAC,CAAC;AAC/D;AAcO,MAAMC,KAAyB;AAgB/B,SAASC,GAAa;AAAA,EAC3B,OAAAC;AAAA,EACA,eAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,KAAAC;AAAA,EACA,KAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,WAAAC;AACF,GAAsB;AACpB,QAAMC,IAASC,EAAA,GACTC,IAAUC,IAAe,cAEzBC,IAAe,MAAM;AAAA,IAAK,EAAE,QAAQ,EAAA;AAAA,IAAK,CAAChB,GAAGC,MACjDgB,EAAWL,GAAQ,EAAE,SAAS,SAAS,UAAU,MAAA,CAAO,EAAE,OAAO,IAAI,KAAK,KAAK,IAAI,MAAM,GAAG,IAAIX,CAAC,CAAC,CAAC;AAAA,EAAA,GAE/FiB,IAAWd,KAAS,MACpBe,IAAUb,IAAUY,KAAiC,EAAE,MAAM,MAAM,IAAI,SAAU,MACjFE,IAASd,IAAQ,OAAQY,GAEzB,CAAChC,GAAOmC,CAAQ,IAAIC,EAAe,MAAMlC,EAAWgC,KAAUD,GAAS,QAAQ,oBAAI,KAAA,CAAM,CAAC,GAE1F,CAACI,GAASC,CAAU,IAAIF,EAAsB,IAAI,GAElDG,IAAOC,EAAQ,MAAM7B,EAAUX,CAAK,GAAG,CAACA,CAAK,CAAC,GAC9CyC,IAAQvC,EAAW,oBAAI,MAAM,GAE7BwC,IAAWT,GAAS,OAAOA,GAAS,QAAQI,IAAUA,IAAU,OAChE,CAACM,GAAUC,CAAM,IACrBX,GAAS,QAAQS,KAAYA,IAAWT,EAAQ,OAAO,CAACS,GAAUT,EAAQ,IAAI,IAAI,CAACA,GAAS,QAAQ,MAAMS,CAAQ;AAEpH,WAASG,EAAcC,GAAY;AAEjC,WADIzB,KAAOyB,IAAO5C,EAAWmB,CAAG,KAC5BC,KAAOwB,IAAO5C,EAAWoB,CAAG,IAAU,KACnCC,IAAiBuB,CAAI,KAAK;AAAA,EACnC;AAEA,WAASC,EAAKD,GAAY;AACxB,QAAI,CAAAD,EAAcC,CAAI,GACtB;AAAA,UAAI,CAAC1B,GAAO;AACV,QAAAD,IAAgB2B,CAAI;AACpB;AAAA,MACF;AAIA,UAAI,CAACb,GAAS,QAASA,EAAQ,QAAQA,EAAQ;AAC7C,QAAAd,IAAgB,EAAE,MAAM2B,GAAM,IAAI,MAAM;AAAA,WACnC;AACL,cAAME,IAAOf,EAAQ;AACrB,QAAAd,IAAgB2B,IAAOE,IAAO,EAAE,MAAMF,GAAM,IAAIE,EAAA,IAAS,EAAE,MAAAA,GAAM,IAAIF,EAAA,CAAM;AAAA,MAC7E;AAAA;AAAA,EACF;AAEA,WAASG,EAAUC,GAA4BJ,GAAY;AACzD,UAAMK,IAAgC;AAAA,MACpC,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,WAAW;AAAA,IAAA;AAEb,QAAIA,EAAMD,EAAM,GAAG,MAAM,QAAW;AAClC,MAAAA,EAAM,eAAA;AACN,YAAME,IAAO7C,EAAQuC,GAAMK,EAAMD,EAAM,GAAG,CAAC;AAC3C,MAAIE,EAAK,SAAA,MAAepD,EAAM,cAAYmC,EAASrC,EAAGsD,EAAK,eAAeA,EAAK,SAAA,GAAY,CAAC,CAAC,GAE7F,eAAe,MAAM;AACnB,iBAAS,cAAiC,cAAcA,EAAK,cAAc,IAAI,GAAG,MAAA;AAAA,MACpF,CAAC;AAAA,IACH,QAAWF,EAAM,QAAQ,YAAYA,EAAM,QAAQ,gBACjDA,EAAM,eAAA,GACNf,EAAS,CAACkB,MAAM5C,EAAU4C,GAAGH,EAAM,QAAQ,WAAW,KAAK,CAAC,CAAC;AAAA,EAEjE;AAEA;AAAA;AAAA;AAAA;AAAA,sBAIG,OAAA,EAAI,WAAWI,EAAG,8BAA8B7B,CAAS,GACxD,UAAA;AAAA,MAAA,gBAAA8B,EAAC,OAAA,EAAI,WAAU,2CACb,UAAA;AAAA,QAAA,gBAAAC;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,OAAO7B,EAAQ;AAAA,YACf,MAAM,gBAAA4B,EAACE,GAAA,EAAK,MAAK,gBAAe,MAAK,MAAK;AAAA,YAC1C,SAAS,MAAMvB,EAAS,CAACkB,MAAM5C,EAAU4C,GAAG,EAAE,CAAC;AAAA,UAAA;AAAA,QAAA;AAAA,0BAEhD,QAAA,EAAK,aAAU,UAAS,WAAU,sCAChC,UAAAtB,EAAWL,GAAQ,EAAE,OAAO,QAAQ,MAAM,UAAA,CAAW,EAAE,OAAO1B,CAAK,GACtE;AAAA,QACA,gBAAAwD;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,OAAO7B,EAAQ;AAAA,YACf,MAAM,gBAAA4B,EAACE,GAAA,EAAK,MAAK,iBAAgB,MAAK,MAAK;AAAA,YAC3C,SAAS,MAAMvB,EAAS,CAACkB,MAAM5C,EAAU4C,GAAG,CAAC,CAAC;AAAA,UAAA;AAAA,QAAA;AAAA,MAChD,GACF;AAAA,MAGA,gBAAAE,EAAC,OAAA,EAAI,WAAU,iDAAgD,MAAK,QACjE,UAAA;AAAA,QAAAzB,EAAa,IAAI,CAAC7B,MACjB,gBAAAuD;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,MAAK;AAAA,YACL,WAAU;AAAA,YAET,UAAAvD;AAAA,UAAA;AAAA,UAJIA;AAAA,QAAA,CAMR;AAAA,QAEAsC,EAAK,IAAI,CAACO,MAAS;AAClB,gBAAMa,IAAUb,EAAK,SAAA,MAAe9C,EAAM,SAAA,GACpC4D,IAAaf,EAAcC,CAAI,GAC/Be,IAAazC,IAAQhB,EAAQ0C,GAAMb,GAAS,IAAI,KAAK7B,EAAQ0C,GAAMb,GAAS,EAAE,IAAI7B,EAAQ0C,GAAMZ,CAAM,GACtG4B,IAAS,CAAC,CAACnB,KAAY,CAAC,CAACC,KAAUE,IAAOH,KAAYG,IAAOF;AAEnE,iBACE,gBAAAY;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,MAAK;AAAA,cACL,MAAK;AAAA,cACL,YAAUV,EAAK,aAAA;AAAA,cACf,UAAUc;AAAA,cACV,iBAAeC;AAAA,cACf,gBAAczD,EAAQ0C,GAAML,CAAK,IAAI,SAAS;AAAA,cAC9C,SAAS,MAAMM,EAAKD,CAAI;AAAA,cACxB,cAAc,MAAMR,EAAWQ,CAAI;AAAA,cACnC,cAAc,MAAMR,EAAW,IAAI;AAAA,cACnC,WAAW,CAACyB,MAAMd,EAAUc,GAAGjB,CAAI;AAAA,cACnC,WAAWQ;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA;AAAA;AAAA;AAAA;AAAA,gBAIAK,IAAU,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAQ/BE,IACI,uFACAC,IACE,gGACA;AAAA,gBACN1D,EAAQ0C,GAAML,CAAK,KAAK,CAACoB,KAAc;AAAA,cAAA;AAAA,cAGxC,YAAK,QAAA;AAAA,YAAQ;AAAA,YAlCTf,EAAK,YAAA;AAAA,UAAY;AAAA,QAqC5B,CAAC;AAAA,MAAA,GACH;AAAA,MAEA,gBAAAS,EAAC,OAAA,EAAI,WAAU,gFACb,UAAA;AAAA,QAAA,gBAAAC;AAAA,UAACQ;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,SAAS,MAAM;AACb,cAAA7B,EAASM,CAAK,GACdM,EAAKN,CAAK;AAAA,YACZ;AAAA,YAEC,UAAAb,EAAQ;AAAA,UAAA;AAAA,QAAA;AAAA,QAEVJ,uBACEwC,GAAA,EAAO,MAAK,MAAK,SAAQ,SAAQ,SAAS,MAAM7C,IAAgBC,IAAQ,EAAE,MAAM,MAAM,IAAI,KAAA,IAAS,IAAI,GACrG,YAAQ,MAAA,CACX;AAAA,MAAA,EAAA,CAEJ;AAAA,IAAA,EAAA,CACF;AAAA;AAEJ;"}