@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,358 @@
1
+ import { jsxs as r, jsx as o, Fragment as Ke } from "react/jsx-runtime";
2
+ import { useRef as Xe, useMemo as u, Fragment as U } from "react";
3
+ import { cn as w } from "../../lib/cn.js";
4
+ import { dateFormat as R } from "../../lib/intl-cache.js";
5
+ import { assertPxPerDay as Se, assertMarkers as Be, timelineRange as Oe, unitTicks as Pe, trackWidth as Ce, instantToX as X, addDays as ae, layoutMarkerTags as Ge, layoutMarkerFlags as We, fromDayNumber as Fe, quarterOf as $e, yearOf as le, ZOOM_SLIDER_MAX as je, sliderToPxPerDay as He, pxPerDayToSlider as Ie, tickUnitFor as qe, scrollLeftToCenter as Ue, markerTagTop as Ze } from "../../lib/date-timeline/scale.js";
6
+ import { Badge as ce } from "../Badge.js";
7
+ import { Button as Ve } from "../Button.js";
8
+ import { Tooltip as Ye } from "../Popover.js";
9
+ import { Slider as Je } from "../Slider.js";
10
+ import { Spinner as Qe } from "../Spinner.js";
11
+ import { TimelineRow as ke } from "./TimelineRow.js";
12
+ import { useBarDrag as et } from "./useBarDrag.js";
13
+ import { useMarkerDrag as tt } from "./useMarkerDrag.js";
14
+ import { useTimelineZoom as ot } from "./useTimelineZoom.js";
15
+ import { useUiLocale as nt, useUiStrings as st } from "../../lib/i18n/provider.js";
16
+ const it = 160, rt = [], at = 7, lt = 20, de = 4, Z = 18, ct = 2, dt = "border border-(--marker-color) bg-surface text-primary", V = (s) => s.color === void 0 ? void 0 : { "--marker-color": s.color }, ut = 12, ue = (s, n) => s.length * at + lt + (n ? ut : 0), bt = 2, Y = 26, be = 4, ft = 8, mt = 36, ht = 40, fe = 1, S = 2, me = "block min-w-0 max-w-full truncate rounded-l-none", he = (s, n) => {
17
+ const A = n ? "var(--marker-color)" : "var(--accent)";
18
+ return s === "dashed" ? { width: S, marginLeft: -S / 2, background: `repeating-linear-gradient(to bottom, ${A} 0 6px, transparent 6px 10px)` } : { width: fe, marginLeft: -fe / 2, background: A };
19
+ };
20
+ function pe({ pending: s, savingLabel: n }) {
21
+ return s ? /* @__PURE__ */ o(Qe, { size: "xs", label: n, className: "shrink-0" }) : /* @__PURE__ */ r("svg", { "aria-hidden": !0, viewBox: "0 0 6 10", className: "h-2.5 w-1.5 shrink-0 fill-current opacity-70", children: [
22
+ /* @__PURE__ */ o("circle", { cx: "1", cy: "1.5", r: "0.9" }),
23
+ /* @__PURE__ */ o("circle", { cx: "5", cy: "1.5", r: "0.9" }),
24
+ /* @__PURE__ */ o("circle", { cx: "1", cy: "5", r: "0.9" }),
25
+ /* @__PURE__ */ o("circle", { cx: "5", cy: "5", r: "0.9" }),
26
+ /* @__PURE__ */ o("circle", { cx: "1", cy: "8.5", r: "0.9" }),
27
+ /* @__PURE__ */ o("circle", { cx: "5", cy: "8.5", r: "0.9" })
28
+ ] });
29
+ }
30
+ function J({ marker: s }) {
31
+ return s.color === void 0 ? /* @__PURE__ */ o(ce, { tone: "accent", size: "sm", className: me, children: s.label }) : /* @__PURE__ */ o(ce, { color: s.color, size: "sm", className: me, children: s.label });
32
+ }
33
+ function zt({
34
+ items: s,
35
+ pxPerDay: n,
36
+ onPxPerDayChange: A,
37
+ onItemActivate: ye,
38
+ onItemChange: B,
39
+ today: Q,
40
+ markers: b = rt,
41
+ onMarkerChange: O,
42
+ onMarkerActivate: N,
43
+ weekStartsOn: k = 1,
44
+ hideLabelColumn: E = !1,
45
+ markerPlacement: ge = "header",
46
+ markerBandCaption: P,
47
+ lineStyle: T = "solid",
48
+ toolbar: ve,
49
+ empty: ee,
50
+ className: xe
51
+ }) {
52
+ const f = nt(), l = st().dateTimeline, C = Xe(null), m = E ? 0 : it;
53
+ if (!B && s.some((e) => e.editable)) throw new Error("timeline: an editable item needs onItemChange");
54
+ if (!O && b.some((e) => e.editable)) throw new Error("timeline: an editable marker needs onMarkerChange");
55
+ const y = ge === "band";
56
+ if (y && P === void 0) throw new Error("timeline: markerPlacement band needs markerBandCaption");
57
+ const D = b.some((e) => e.pending === !0), G = u(() => Q ?? /* @__PURE__ */ new Date(), [Q]);
58
+ Se(n), Be(b);
59
+ const h = qe(n), a = u(
60
+ () => Oe(
61
+ s,
62
+ G,
63
+ h,
64
+ k,
65
+ b.map((e) => e.date)
66
+ ),
67
+ [s, G, h, k, b]
68
+ ), { drag: W, startDrag: we, consumeSwallowedClick: Ne } = et(s, n, B), { drag: F, startDrag: te, consumeSwallowedClick: _e, clearSwallowedClick: Re } = tt(b, n, a, O), oe = u(() => Pe(a, h, n), [a, h, n]), g = Ce(a, n), $ = X(G, a.startDay, n), p = u(
69
+ () => b.map((e) => F?.id === e.id ? { ...e, date: ae(e.date, F.days) } : e),
70
+ [b, F]
71
+ ), Ae = u(
72
+ () => p.map((e) => ({ marker: e, x: X(e.date, a.startDay, n), colored: e.color !== void 0 })),
73
+ [p, a, n]
74
+ ), ne = u(() => {
75
+ if (y) return [];
76
+ const e = p.map((t) => ({ x: X(t.date, a.startDay, n), width: ue(t.label, t.editable === !0) }));
77
+ return Ge(e, g, de).map(({ index: t, left: i, row: c }) => {
78
+ const d = p[t];
79
+ return { marker: d, x: e[t].x, tagWidth: e[t].width, left: i, row: c, colored: d.color !== void 0, style: V(d) };
80
+ });
81
+ }, [y, p, a, n, g]), j = u(() => {
82
+ if (!y) return [];
83
+ const e = p.map((t) => ({ x: X(t.date, a.startDay, n), width: ue(t.label, t.editable === !0) }));
84
+ return We(e, bt, de, mt).map(({ index: t, lane: i, maxWidth: c }) => ({
85
+ marker: p[t],
86
+ x: e[t].x,
87
+ lane: i,
88
+ maxWidth: c
89
+ }));
90
+ }, [y, p, a, n]), Ee = ne.reduce((e, t) => Math.max(e, t.row + 1), 0), se = j.reduce((e, t) => Math.max(e, t.lane + 1), 0), M = se === 0 ? 0 : se * Y + ft, Te = (e) => (t) => {
91
+ t.key !== "ArrowLeft" && t.key !== "ArrowRight" || (t.preventDefault(), O?.(e.id, ae(e.date, t.key === "ArrowLeft" ? -1 : 1)));
92
+ }, H = u(() => R(f, { dateStyle: "medium" }), [f]), De = u(() => R(f, { weekday: "short", month: "short", day: "numeric", year: "numeric" }), [f]), L = (e, t) => /* @__PURE__ */ o(Ye, { content: e.tooltip ?? `${e.label}, ${e.dateLabel ?? De.format(e.date)}`, children: t }), ie = (e) => ({
93
+ onClick: (t) => {
94
+ _e() || N?.(e.id, t.currentTarget);
95
+ },
96
+ onKeyDown: (t) => {
97
+ (t.key === "Enter" || t.key === " ") && Re(), Te(e)(t);
98
+ }
99
+ }), v = (e) => e.editable ? l.markerHandle(e.label, H.format(e.date)) : `${e.label}, ${H.format(e.date)}`, Me = u(() => {
100
+ const e = R(f, { month: "short" }), t = R(f, { month: "short", day: "numeric" }), i = R(f, { year: "numeric" });
101
+ return (c, d) => {
102
+ const z = Fe(c.startDay), x = i.format(z);
103
+ if (h === "quarters") return { primary: l.quarter($e(c.startDay), x), secondary: null };
104
+ const _ = d || le(c.startDay) !== le(c.startDay - 1);
105
+ return { primary: (h === "months" ? e : t).format(z), secondary: _ ? x : null };
106
+ };
107
+ }, [f, h, l]), re = () => {
108
+ const e = C.current;
109
+ e && (e.scrollLeft = Ue($, e.clientWidth, m));
110
+ }, I = s.length === 0, { zoomTo: Le, onKeyDown: ze } = ot({ scroller: C, pxPerDay: n, range: a, labelWidth: m, isEmpty: I, onPxPerDayChange: A, centerOnToday: re });
111
+ return /* @__PURE__ */ r("div", { className: w("flex min-w-0 flex-col gap-2", xe), onKeyDown: ze, children: [
112
+ /* @__PURE__ */ r("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [
113
+ /* @__PURE__ */ r("div", { className: "flex flex-wrap items-center gap-2", children: [
114
+ /* @__PURE__ */ o(
115
+ Je,
116
+ {
117
+ size: "sm",
118
+ label: l.zoomLabel,
119
+ min: 0,
120
+ max: je,
121
+ step: 1,
122
+ value: Math.round(Ie(n)),
123
+ format: () => l.unit[h],
124
+ tooltip: "never",
125
+ onValueChange: (e) => {
126
+ if (typeof e != "number") throw new Error("timeline: the zoom slider is a single value");
127
+ Le(He(e));
128
+ },
129
+ className: "w-56 max-w-full"
130
+ }
131
+ ),
132
+ ve
133
+ ] }),
134
+ /* @__PURE__ */ o(Ve, { size: "sm", variant: "ghost", onClick: re, children: l.goToToday })
135
+ ] }),
136
+ I && ee === void 0 ? /* @__PURE__ */ o("p", { className: "rounded-md border border-border px-3 py-6 text-center text-sm text-secondary", children: l.empty }) : /* @__PURE__ */ o(
137
+ "div",
138
+ {
139
+ ref: C,
140
+ role: "region",
141
+ "aria-label": l.label,
142
+ tabIndex: 0,
143
+ className: "relative overflow-x-auto [container-type:inline-size] rounded-md border border-border bg-surface focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-brand",
144
+ children: /* @__PURE__ */ r("div", { className: "relative", style: { width: m + g }, children: [
145
+ y && M > 0 && /* @__PURE__ */ r("div", { className: "flex border-b border-border bg-surface-inset", style: { height: M }, children: [
146
+ E ? (
147
+ /* DXUI-72: with no label column the caption sits inside the band at its left edge, pinned there while the dates scroll; a flag passing under it is hidden. */
148
+ /* @__PURE__ */ o("div", { className: "sticky left-0 z-20 w-0 shrink-0", children: /* @__PURE__ */ o(
149
+ "span",
150
+ {
151
+ className: "absolute left-0 flex items-center bg-surface-inset px-2 text-xs font-semibold whitespace-nowrap text-secondary",
152
+ style: { top: be, height: Y },
153
+ children: P
154
+ }
155
+ ) })
156
+ ) : /* @__PURE__ */ o(
157
+ "div",
158
+ {
159
+ className: "sticky left-0 z-20 flex shrink-0 items-center border-r border-border bg-surface-inset px-3 text-xs font-semibold text-secondary",
160
+ style: { width: m },
161
+ children: P
162
+ }
163
+ ),
164
+ /* @__PURE__ */ o("div", { className: "relative shrink-0", style: { width: g }, children: j.map(({ marker: e, x: t, lane: i, maxWidth: c }) => /* @__PURE__ */ o(
165
+ "div",
166
+ {
167
+ className: "absolute z-10 flex items-stretch",
168
+ style: {
169
+ left: t - S / 2,
170
+ top: be + i * Y,
171
+ maxWidth: c,
172
+ borderLeft: `${S}px solid ${e.color ?? "var(--accent)"}`
173
+ },
174
+ children: L(
175
+ e,
176
+ e.editable ? /* @__PURE__ */ r(
177
+ "button",
178
+ {
179
+ type: "button",
180
+ "data-marker-handle": !0,
181
+ disabled: D,
182
+ "aria-busy": e.pending === !0 || void 0,
183
+ "aria-label": v(e),
184
+ className: w(
185
+ "flex min-w-0 items-center gap-1 touch-none select-none focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-brand",
186
+ D ? "cursor-default" : "cursor-grab active:cursor-grabbing"
187
+ ),
188
+ onPointerDown: (d) => te(d, e),
189
+ ...ie(e),
190
+ children: [
191
+ /* @__PURE__ */ o(pe, { pending: e.pending === !0, savingLabel: l.markerSaving }),
192
+ /* @__PURE__ */ o(J, { marker: e })
193
+ ]
194
+ }
195
+ ) : N ? /* @__PURE__ */ o(
196
+ "button",
197
+ {
198
+ type: "button",
199
+ "aria-label": v(e),
200
+ className: "flex min-w-0 cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-brand",
201
+ onClick: (d) => N(e.id, d.currentTarget),
202
+ children: /* @__PURE__ */ o(J, { marker: e })
203
+ }
204
+ ) : /* @__PURE__ */ o("span", { role: "img", tabIndex: 0, "aria-label": v(e), className: "flex min-w-0 focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-brand", children: /* @__PURE__ */ o(J, { marker: e }) })
205
+ )
206
+ },
207
+ e.id
208
+ )) })
209
+ ] }),
210
+ y && M > 0 && j.map(({ marker: e, x: t }) => /* @__PURE__ */ o(
211
+ "span",
212
+ {
213
+ "aria-hidden": !0,
214
+ "data-line-style": T,
215
+ className: "pointer-events-none absolute top-0",
216
+ style: { ...V(e), ...he(T, e.color !== void 0), left: m + t, height: M + ht }
217
+ },
218
+ `seg-${e.id}`
219
+ )),
220
+ /* @__PURE__ */ r("div", { className: "flex border-b border-border", children: [
221
+ !E && /* @__PURE__ */ o(
222
+ "div",
223
+ {
224
+ className: "sticky left-0 z-20 shrink-0 border-r border-border bg-surface px-3 py-2 text-xs font-semibold text-secondary",
225
+ style: { width: m },
226
+ children: l.itemColumn
227
+ }
228
+ ),
229
+ /* @__PURE__ */ r("div", { className: "relative h-10 shrink-0", style: { width: g, marginTop: Ee * Z }, children: [
230
+ oe.map((e, t) => {
231
+ const i = Me(e, t === 0);
232
+ return /* @__PURE__ */ r(
233
+ "div",
234
+ {
235
+ className: "absolute top-0 flex h-full flex-col justify-center overflow-hidden border-l border-border px-2 text-xs leading-tight text-secondary",
236
+ style: { left: e.x, width: e.width },
237
+ children: [
238
+ /* @__PURE__ */ o("span", { className: "truncate font-medium", children: i.primary }),
239
+ i.secondary && /* @__PURE__ */ o("span", { className: "truncate text-2xs text-muted-text", children: i.secondary })
240
+ ]
241
+ },
242
+ e.startDay
243
+ );
244
+ }),
245
+ /* @__PURE__ */ o(
246
+ "span",
247
+ {
248
+ className: "absolute top-0 z-10 -translate-x-1/2 rounded-b-sm bg-danger px-1 text-2xs font-semibold text-danger-contrast",
249
+ style: { left: $ },
250
+ children: l.today
251
+ }
252
+ ),
253
+ ne.map(({ marker: e, left: t, row: i, tagWidth: c, colored: d, style: z }) => {
254
+ const x = w(
255
+ "absolute z-10 flex items-center justify-center gap-1 overflow-hidden whitespace-nowrap rounded-t-sm text-2xs font-semibold",
256
+ d ? dt : "bg-accent text-accent-contrast"
257
+ ), _ = { ...z, left: t, width: c, top: Ze(i, Z), height: Z - ct }, K = /* @__PURE__ */ r(Ke, { children: [
258
+ d && /* @__PURE__ */ o("span", { "aria-hidden": !0, className: "size-1.5 shrink-0 rounded-full bg-(--marker-color)" }),
259
+ /* @__PURE__ */ o("span", { className: "truncate", children: e.label })
260
+ ] });
261
+ return e.editable ? /* @__PURE__ */ o(U, { children: L(
262
+ e,
263
+ /* @__PURE__ */ r(
264
+ "button",
265
+ {
266
+ type: "button",
267
+ "data-marker-handle": !0,
268
+ disabled: D,
269
+ "aria-busy": e.pending === !0 || void 0,
270
+ "aria-label": v(e),
271
+ className: w(
272
+ x,
273
+ D ? "cursor-default" : "cursor-grab touch-none select-none active:cursor-grabbing",
274
+ "focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-brand"
275
+ ),
276
+ style: _,
277
+ onPointerDown: (q) => te(q, e),
278
+ ...ie(e),
279
+ children: [
280
+ /* @__PURE__ */ o(pe, { pending: e.pending === !0, savingLabel: l.markerSaving }),
281
+ K
282
+ ]
283
+ }
284
+ )
285
+ ) }, e.id) : N ? /* @__PURE__ */ o(U, { children: L(
286
+ e,
287
+ /* @__PURE__ */ o(
288
+ "button",
289
+ {
290
+ type: "button",
291
+ "aria-label": v(e),
292
+ className: w(x, "cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-brand"),
293
+ style: _,
294
+ onClick: (q) => N(e.id, q.currentTarget),
295
+ children: K
296
+ }
297
+ )
298
+ ) }, e.id) : /* @__PURE__ */ o(U, { children: L(
299
+ e,
300
+ /* @__PURE__ */ o(
301
+ "span",
302
+ {
303
+ role: "img",
304
+ tabIndex: 0,
305
+ "aria-label": v(e),
306
+ className: w(x, "focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-brand"),
307
+ style: _,
308
+ children: K
309
+ }
310
+ )
311
+ ) }, e.id);
312
+ })
313
+ ] })
314
+ ] }),
315
+ /* @__PURE__ */ r("div", { className: "relative", children: [
316
+ /* @__PURE__ */ r("div", { "aria-hidden": !0, className: "pointer-events-none absolute inset-y-0 z-0", style: { left: m, width: g }, children: [
317
+ oe.map((e) => /* @__PURE__ */ o("span", { className: "absolute inset-y-0 border-l border-border/60", style: { left: e.x } }, e.startDay)),
318
+ Ae.map(({ marker: e, x: t, colored: i }) => /* @__PURE__ */ o(
319
+ "span",
320
+ {
321
+ "aria-hidden": !0,
322
+ "data-line-style": T,
323
+ className: "absolute inset-y-0",
324
+ style: { ...V(e), ...he(T, i), left: t }
325
+ },
326
+ e.id
327
+ )),
328
+ /* @__PURE__ */ o("span", { className: "absolute inset-y-0 w-px bg-danger", style: { left: $ } })
329
+ ] }),
330
+ s.map((e) => /* @__PURE__ */ o(
331
+ ke,
332
+ {
333
+ item: e,
334
+ range: a,
335
+ pxPerDay: n,
336
+ trackWidth: g,
337
+ labelWidth: m,
338
+ hideLabelColumn: E,
339
+ day: H,
340
+ dragging: W?.id === e.id && W.active ? W : null,
341
+ onPress: we,
342
+ consumeSwallowedClick: Ne,
343
+ onActivate: ye,
344
+ onChange: B
345
+ },
346
+ e.id
347
+ )),
348
+ I && /* @__PURE__ */ o("div", { className: "sticky left-0 z-10 flex min-h-64 w-[100cqw] items-center justify-center p-4", children: ee })
349
+ ] })
350
+ ] })
351
+ }
352
+ )
353
+ ] });
354
+ }
355
+ export {
356
+ zt as DateTimeline
357
+ };
358
+ //# sourceMappingURL=DateTimeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTimeline.js","sources":["../../../src/components/date-timeline/DateTimeline.tsx"],"sourcesContent":["import { Fragment, useMemo, useRef, type CSSProperties, type KeyboardEvent, type MouseEvent, type ReactElement, type ReactNode } from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { useUiLocale, useUiStrings } from \"../../lib/i18n\";\nimport { dateFormat } from \"../../lib/intl-cache\";\nimport {\n ZOOM_SLIDER_MAX,\n assertMarkers,\n assertPxPerDay,\n addDays,\n fromDayNumber,\n instantToX,\n layoutMarkerFlags,\n layoutMarkerTags,\n markerTagTop,\n pxPerDayToSlider,\n quarterOf,\n scrollLeftToCenter,\n sliderToPxPerDay,\n tickUnitFor,\n timelineRange,\n trackWidth,\n unitTicks,\n yearOf,\n type Tick,\n} from \"../../lib/date-timeline/scale\";\nimport { Badge } from \"../Badge\";\nimport { Button } from \"../Button\";\nimport type { IconStackTone } from \"../IconStack\";\nimport { Tooltip } from \"../Popover\";\nimport { Slider } from \"../Slider\";\nimport { Spinner } from \"../Spinner\";\nimport { TimelineRow } from \"./TimelineRow\";\nimport { useBarDrag } from \"./useBarDrag\";\nimport { useMarkerDrag } from \"./useMarkerDrag\";\nimport { useTimelineZoom } from \"./useTimelineZoom\";\n\n/* ============================================================================\n TIMELINE (DXUI-45) — rows of items drawn as bars from start to end on a\n horizontal date axis.\n\n DATA ONLY. It knows nothing about what an item is: a `label`, a span, an\n optional tone, progress and a `meta` slot. The host owns what a click does.\n\n TWO COLUMNS, ONE SCROLLER. The label column is `position: sticky` inside the\n same scrolling box as the dates, so a row's label and its bar can never drift\n apart, and the dates scroll sideways under the labels (`hideLabelColumn` drops\n the column and leaves the dates). The grid lines and the today line are ONE\n overlay over the whole body rather than a segment per row.\n\n OPENS ON TODAY. The scroll position is set before first paint so a viewer\n never sees the far-left edge first. The arithmetic is `lib/date-timeline/scale.ts`.\n\n ZOOM (DXUI-61, DEC-129). The scale is `pxPerDay`, continuous and controlled, and the\n axis picks its tick unit (day, week, month, quarter) from it. Three inputs move it,\n all together: Ctrl/Cmd + wheel (or a pinch) over the dates, Ctrl/Cmd + plus, minus and 0\n while focus is inside, and the slider above. The page's own zoom is taken over only\n there (DEC-130): the wheel only over the dates, the keys only with focus inside. A zoom\n keeps one date still: under the pointer for the wheel, at the visible center otherwise.\n\n A bar is a button, drawn at its true length to the day (DXUI-60). One too\n narrow for its label shows it, and its meta, to the right of the bar as a tag\n that belongs to the same button. Its accessible name carries the dates, because\n the dates are drawn only as position and a screen-reader user has no x axis.\n\n EDITING (DXUI-60). An item marked `editable` drags by its body (start and end\n move together), its right edge (end only) and its left edge (start only),\n snapping to whole days at every zoom; the one `onItemChange` fires once, on\n release. The arrow keys do the same on the focused bar (arrows move, Shift+arrow\n moves the end, Alt+arrow moves the start, a day per press). Escape during a\n drag cancels it.\n\n EDITABLE MARKERS (DXUI-67). A marker marked `editable` draws its tag as a grip-and-label\n button: dragging it moves the line and the tag with the pointer, snapped to whole days and\n kept on the axis, and `onMarkerChange(id, date)` fires once, on release. Left and right\n arrows on the focused tag move it a day. Escape during a drag cancels it. `useMarkerDrag`.\n ============================================================================ */\n\nexport interface DateTimelineMarker {\n id: string;\n date: Date;\n /** Shown as the tag in the date header and in the line's accessible name, with its date. */\n label: string;\n /** Any CSS color, as Badge's `color` takes: the line, the tag's border and its swatch are drawn in it; the label is always the theme's text on an opaque surface, so it is legible in both themes whatever the color. The accent tone when omitted. */\n color?: string;\n /** The marker's tag is a drag handle (and takes the arrow keys); needs the timeline's `onMarkerChange`. */\n editable?: boolean;\n /**\n * A save is in flight for this marker (DEC-111): its handle spins and cannot be dragged, and while any marker is pending every\n * other handle is disabled until the answer is handled. Only meaningful on an `editable` marker.\n */\n pending?: boolean;\n /**\n * The long-form date shown after the label in the marker's tooltip (for example \"Wed, Nov 4, 2026\"). The component formats the marker's\n * date in the locale when omitted; pass it when the caller has its own formatting for the date.\n */\n dateLabel?: string;\n /**\n * The marker's whole tooltip text (DXUI-73), shown exactly as given in place of `<label>, <date>`. Pass it when the label already\n * holds part of what the tooltip should say (a short date), so the date is not repeated. `dateLabel` is ignored when this is set.\n */\n tooltip?: string;\n}\n\n/** Where a marker's label goes: a tag in the date header (the default) or a flag in its own band above the header (DXUI-68). */\nexport type DateTimelineMarkerPlacement = \"header\" | \"band\";\n\n/** A marker's line: 1px solid (the default) or 2px dashed, six pixels of color then four of gap (the approved design, DX-6451). */\nexport type DateTimelineMarkerLineStyle = \"solid\" | \"dashed\";\n\nexport type DateTimelineTone = IconStackTone;\n\nexport interface DateTimelineItem {\n id: string;\n label: string;\n start: Date;\n /** Must not be before `start`. */\n end: Date;\n tone?: DateTimelineTone;\n /** 0..1 of the bar filled. */\n progress?: number;\n /** A small chip drawn at the right of the bar's label. Static content only: the bar is itself a button. */\n meta?: ReactNode;\n /** A second end instant (a plan's planned end), drawn as a marker on the row apart from the bar's end; both dates are in the bar's name and tooltip. */\n plannedEnd?: Date;\n /** The bar can be dragged and moved with the keyboard; needs the timeline's `onItemChange`. */\n editable?: boolean;\n}\n\n/** An edited item's new dates, to the day: the time of day each end had is kept. */\nexport type DateTimelineChange = (id: string, start: Date, end: Date) => void;\n\nexport interface DateTimelineProps {\n items: readonly DateTimelineItem[];\n /**\n * The scale, in pixels per calendar day, from 1 to 120 (DXUI-61); controlled, like a value. The axis ticks by day, week, month or\n * quarter depending on it. Hold it in state and set it from `onPxPerDayChange`; `DEFAULT_PX_PER_DAY` (12) is a good start. A value\n * outside the range throws.\n */\n pxPerDay: number;\n /** Called with the new scale when the person zooms: Ctrl (or Cmd) + wheel or pinch over the timeline, Ctrl + plus / minus / 0 inside it, or the slider. */\n onPxPerDayChange: (pxPerDay: number) => void;\n onItemActivate: (id: string) => void;\n /** Called once, on release (or per key press), with the item id and its new start and end. Required when any item is `editable`. */\n onItemChange?: DateTimelineChange;\n /** The instant the today line marks; the clock when omitted. Pass a fixed one in tests and demos. */\n today?: Date;\n /**\n * Named dates drawn like the today line (DXUI-64): a full-height line under the bars and a tag with the label in the date\n * header, in the accent tone instead of today's red. They widen the axis, so a marker outside every bar is still shown.\n * Tags that would overlap, on the same day or close, stack in rows.\n */\n markers?: readonly DateTimelineMarker[];\n /**\n * Called with a marker's id and its label's element when the label is clicked or activated with Enter or Space (DXUI-69). The element\n * lets the caller anchor a popover to it (DXUI-70). Every marker's label then becomes a button, so the caller can open its own editor.\n * A drag of an `editable` marker's handle never also activates it.\n */\n onMarkerActivate?: (id: string, anchorEl: HTMLElement) => void;\n /** Called once, on release (or per key press), with an `editable` marker's id and its new date, to the day (its time of day kept). Required when any marker is `editable`. */\n onMarkerChange?: (id: string, date: Date) => void;\n /** Where the markers' labels are drawn: `\"header\"` (default) as tags in the date header, or `\"band\"` as flags in a Phases band above it, which needs `markerBandCaption`. */\n markerPlacement?: DateTimelineMarkerPlacement;\n /** The caption of the band above the date header (for example \"Phases\"); required with `markerPlacement: \"band\"`. */\n markerBandCaption?: string;\n /** How each marker's line is drawn. `\"solid\"` (default) is the 1px line; `\"dashed\"` is 2px. The today line is always solid. */\n lineStyle?: DateTimelineMarkerLineStyle;\n /** First day of the week on the weeks axis: 0 = Sunday ... 6 = Saturday. Default Monday. */\n weekStartsOn?: number;\n /** Hide the sticky column of item labels, leaving the dates axis; each bar keeps its own label. */\n hideLabelColumn?: boolean;\n /** The caller's own controls (a button, a menu), drawn in the control row right beside the zoom slider. */\n toolbar?: ReactNode;\n /**\n * What to show when `items` is empty (DXUI-72). Left out, the timeline is replaced by the plain \"no items\" sentence. Given, the whole\n * timeline stays (dates, today line, markers, band, toolbar) and this is centered in the visible part of its body, staying put as it scrolls sideways.\n */\n empty?: ReactNode;\n className?: string;\n}\n\n/** Width of the sticky label column (0 when hidden); the same number positions the scroll. */\nconst LABEL_COLUMN_PX = 160;\nconst NO_MARKERS: readonly DateTimelineMarker[] = [];\n/* A marker tag's width is estimated from its label (text-2xs semibold, about 7px a character) plus its padding, border and swatch, so the tags can be stacked and clamped without measuring. */\nconst MARKER_CHAR_PX = 7;\nconst MARKER_TAG_CHROME_PX = 20;\nconst MARKER_TAG_GAP_PX = 4;\nconst MARKER_TAG_ROW_PX = 18;\nconst MARKER_TAG_ROW_GAP_PX = 2;\n/* A custom color is the line, the tag's border and a swatch; the label is the theme's text on the opaque surface, whatever the color, so it is always legible (DXUI-64, AC 58314). */\nconst MARKER_TAG_COLOR = \"border border-(--marker-color) bg-surface text-primary\";\nconst markerStyle = (marker: DateTimelineMarker) => (marker.color === undefined ? undefined : ({ \"--marker-color\": marker.color } as CSSProperties));\n/* An editable marker's tag also holds the grip. */\nconst MARKER_GRIP_PX = 12;\nconst markerTagWidth = (label: string, editable: boolean) => label.length * MARKER_CHAR_PX + MARKER_TAG_CHROME_PX + (editable ? MARKER_GRIP_PX : 0);\n/* The Phases band (DXUI-68): two lanes of flags, each 26px tall, under a 4px top gap and above the header; a flag too close to the next one in its lane is cut short, never narrower than 36px. */\nconst MARKER_BAND_LANES = 2;\nconst MARKER_BAND_LANE_PX = 26;\nconst MARKER_BAND_TOP_PX = 4;\nconst MARKER_BAND_PAD_PX = 8;\nconst MARKER_BAND_MIN_PX = 36;\n/* The date header is h-10. */\nconst DATE_HEADER_PX = 40;\n/* A marker's line: solid is the 1px line; dashed is 2px wide with 6px of color and 4px of gap, the approved design's (DX-6451). */\nconst MARKER_SOLID_W_PX = 1;\nconst MARKER_DASHED_W_PX = 2;\nconst FLAG_BADGE = \"block min-w-0 max-w-full truncate rounded-l-none\";\n/* A line is the marker's color, or the accent when it has none (the header tag's own rule). */\nconst markerLineStyle = (lineStyle: DateTimelineMarkerLineStyle, colored: boolean): CSSProperties => {\n const fill = colored ? \"var(--marker-color)\" : \"var(--accent)\";\n return lineStyle === \"dashed\"\n ? { width: MARKER_DASHED_W_PX, marginLeft: -MARKER_DASHED_W_PX / 2, background: `repeating-linear-gradient(to bottom, ${fill} 0 6px, transparent 6px 10px)` }\n : { width: MARKER_SOLID_W_PX, marginLeft: -MARKER_SOLID_W_PX / 2, background: fill };\n};\n/* The grip on an editable marker's handle; a spinner while its save is in flight. */\nfunction MarkerGrip({ pending, savingLabel }: { pending: boolean; savingLabel: string }) {\n if (pending) return <Spinner size=\"xs\" label={savingLabel} className=\"shrink-0\" />;\n return (\n <svg aria-hidden viewBox=\"0 0 6 10\" className=\"h-2.5 w-1.5 shrink-0 fill-current opacity-70\">\n <circle cx=\"1\" cy=\"1.5\" r=\"0.9\" />\n <circle cx=\"5\" cy=\"1.5\" r=\"0.9\" />\n <circle cx=\"1\" cy=\"5\" r=\"0.9\" />\n <circle cx=\"5\" cy=\"5\" r=\"0.9\" />\n <circle cx=\"1\" cy=\"8.5\" r=\"0.9\" />\n <circle cx=\"5\" cy=\"8.5\" r=\"0.9\" />\n </svg>\n );\n}\n/* A band flag's text: the marker's color on a colored one, the accent otherwise. */\nfunction FlagBadge({ marker }: { marker: DateTimelineMarker }) {\n return marker.color === undefined ? (\n <Badge tone=\"accent\" size=\"sm\" className={FLAG_BADGE}>{marker.label}</Badge>\n ) : (\n <Badge color={marker.color} size=\"sm\" className={FLAG_BADGE}>{marker.label}</Badge>\n );\n}\n\nexport function DateTimeline({\n items,\n pxPerDay,\n onPxPerDayChange,\n onItemActivate,\n onItemChange,\n today,\n markers = NO_MARKERS,\n onMarkerChange,\n onMarkerActivate,\n weekStartsOn = 1,\n hideLabelColumn = false,\n markerPlacement = \"header\",\n markerBandCaption,\n lineStyle = \"solid\",\n toolbar,\n empty,\n className,\n}: DateTimelineProps) {\n const locale = useUiLocale();\n const strings = useUiStrings().dateTimeline;\n const scroller = useRef<HTMLDivElement>(null);\n const labelWidth = hideLabelColumn ? 0 : LABEL_COLUMN_PX;\n if (!onItemChange && items.some((item) => item.editable)) throw new Error(\"timeline: an editable item needs onItemChange\");\n\n if (!onMarkerChange && markers.some((marker) => marker.editable)) throw new Error(\"timeline: an editable marker needs onMarkerChange\");\n const band = markerPlacement === \"band\";\n if (band && markerBandCaption === undefined) throw new Error(\"timeline: markerPlacement band needs markerBandCaption\");\n const busy = markers.some((marker) => marker.pending === true);\n\n const todayDate = useMemo(() => today ?? new Date(), [today]);\n assertPxPerDay(pxPerDay);\n assertMarkers(markers);\n const unit = tickUnitFor(pxPerDay);\n const range = useMemo(\n () => timelineRange(\n items,\n todayDate,\n unit,\n weekStartsOn,\n markers.map((marker) => marker.date),\n ),\n [items, todayDate, unit, weekStartsOn, markers],\n );\n const { drag, startDrag, consumeSwallowedClick } = useBarDrag(items, pxPerDay, onItemChange);\n const { drag: markerDrag, startDrag: startMarkerDrag, consumeSwallowedClick: consumeMarkerClick, clearSwallowedClick: clearMarkerClick } = useMarkerDrag(markers, pxPerDay, range, onMarkerChange);\n const ticks = useMemo(() => unitTicks(range, unit, pxPerDay), [range, unit, pxPerDay]);\n const width = trackWidth(range, pxPerDay);\n const todayX = instantToX(todayDate, range.startDay, pxPerDay);\n\n // The marker being dragged is drawn at its dragged date, so its line and tag follow the pointer.\n const shown = useMemo(\n () => markers.map((marker) => (markerDrag?.id === marker.id ? { ...marker, date: addDays(marker.date, markerDrag.days) } : marker)),\n [markers, markerDrag],\n );\n const lines = useMemo(\n () => shown.map((marker) => ({ marker, x: instantToX(marker.date, range.startDay, pxPerDay), colored: marker.color !== undefined })),\n [shown, range, pxPerDay],\n );\n const placed = useMemo(() => {\n if (band) return [];\n const tags = shown.map((marker) => ({ x: instantToX(marker.date, range.startDay, pxPerDay), width: markerTagWidth(marker.label, marker.editable === true) }));\n return layoutMarkerTags(tags, width, MARKER_TAG_GAP_PX).map(({ index, left, row }) => {\n const marker = shown[index]!;\n return { marker, x: tags[index]!.x, tagWidth: tags[index]!.width, left, row, colored: marker.color !== undefined, style: markerStyle(marker) };\n });\n }, [band, shown, range, pxPerDay, width]);\n const flags = useMemo(() => {\n if (!band) return [];\n const boxes = shown.map((marker) => ({ x: instantToX(marker.date, range.startDay, pxPerDay), width: markerTagWidth(marker.label, marker.editable === true) }));\n return layoutMarkerFlags(boxes, MARKER_BAND_LANES, MARKER_TAG_GAP_PX, MARKER_BAND_MIN_PX).map(({ index, lane, maxWidth }) => ({\n marker: shown[index]!,\n x: boxes[index]!.x,\n lane,\n maxWidth,\n }));\n }, [band, shown, range, pxPerDay]);\n const markerRows = placed.reduce((rows, p) => Math.max(rows, p.row + 1), 0);\n const bandLanes = flags.reduce((lanes, f) => Math.max(lanes, f.lane + 1), 0);\n const bandH = bandLanes === 0 ? 0 : bandLanes * MARKER_BAND_LANE_PX + MARKER_BAND_PAD_PX;\n const moveByKey = (marker: DateTimelineMarker) => (e: KeyboardEvent<HTMLElement>) => {\n if (e.key !== \"ArrowLeft\" && e.key !== \"ArrowRight\") return;\n e.preventDefault();\n onMarkerChange?.(marker.id, addDays(marker.date, e.key === \"ArrowLeft\" ? -1 : 1));\n };\n\n const day = useMemo(() => dateFormat(locale, { dateStyle: \"medium\" }), [locale]);\n const longDay = useMemo(() => dateFormat(locale, { weekday: \"short\", month: \"short\", day: \"numeric\", year: \"numeric\" }), [locale]);\n /* DXUI-69: every marker label carries a tooltip with its whole label and long date, for hover and keyboard focus. */\n const tip = (marker: DateTimelineMarker, trigger: ReactElement) => (\n <Tooltip content={marker.tooltip ?? `${marker.label}, ${marker.dateLabel ?? longDay.format(marker.date)}`}>{trigger}</Tooltip>\n );\n /* A click or Enter / Space on a label activates it; a click that ends a drag does not. Enter and Space clear the drag memory first, since they press with no pointer. */\n const activateProps = (marker: DateTimelineMarker) => ({\n onClick: (e: MouseEvent<HTMLElement>) => {\n if (!consumeMarkerClick()) onMarkerActivate?.(marker.id, e.currentTarget);\n },\n onKeyDown: (e: KeyboardEvent<HTMLElement>) => {\n if (e.key === \"Enter\" || e.key === \" \") clearMarkerClick();\n moveByKey(marker)(e);\n },\n });\n const markerButtonName = (marker: DateTimelineMarker) => (marker.editable ? strings.markerHandle(marker.label, day.format(marker.date)) : `${marker.label}, ${day.format(marker.date)}`);\n const tickText = useMemo(() => {\n const month = dateFormat(locale, { month: \"short\" });\n const monthDay = dateFormat(locale, { month: \"short\", day: \"numeric\" });\n const yearFmt = dateFormat(locale, { year: \"numeric\" });\n return (tick: Tick, first: boolean): { primary: string; secondary: string | null } => {\n const date = fromDayNumber(tick.startDay);\n const yearText = yearFmt.format(date);\n if (unit === \"quarters\") return { primary: strings.quarter(quarterOf(tick.startDay), yearText), secondary: null };\n const newYear = first || yearOf(tick.startDay) !== yearOf(tick.startDay - 1);\n const primary = (unit === \"months\" ? month : monthDay).format(date);\n return { primary, secondary: newYear ? yearText : null };\n };\n }, [locale, unit, strings]);\n\n const centerOnToday = () => {\n const el = scroller.current;\n if (el) el.scrollLeft = scrollLeftToCenter(todayX, el.clientWidth, labelWidth);\n };\n\n const isEmpty = items.length === 0;\n const { zoomTo, onKeyDown } = useTimelineZoom({ scroller, pxPerDay, range, labelWidth, isEmpty, onPxPerDayChange, centerOnToday });\n\n return (\n <div className={cn(\"flex min-w-0 flex-col gap-2\", className)} onKeyDown={onKeyDown}>\n <div className=\"flex flex-wrap items-center justify-between gap-2\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <Slider\n size=\"sm\"\n label={strings.zoomLabel}\n min={0}\n max={ZOOM_SLIDER_MAX}\n step={1}\n value={Math.round(pxPerDayToSlider(pxPerDay))}\n format={() => strings.unit[unit]}\n /* I18N-ALLOW: Slider tooltip display mode token, not text */\n tooltip=\"never\"\n onValueChange={(value) => {\n if (typeof value !== \"number\") throw new Error(\"timeline: the zoom slider is a single value\");\n zoomTo(sliderToPxPerDay(value));\n }}\n className=\"w-56 max-w-full\"\n />\n {toolbar}\n </div>\n <Button size=\"sm\" variant=\"ghost\" onClick={centerOnToday}>\n {strings.goToToday}\n </Button>\n </div>\n\n {isEmpty && empty === undefined ? (\n <p className=\"rounded-md border border-border px-3 py-6 text-center text-sm text-secondary\">{strings.empty}</p>\n ) : (\n <div\n ref={scroller}\n role=\"region\"\n aria-label={strings.label}\n tabIndex={0}\n className=\"relative overflow-x-auto [container-type:inline-size] rounded-md border border-border bg-surface focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-brand\"\n >\n <div className=\"relative\" style={{ width: labelWidth + width }}>\n {band && bandH > 0 && (\n <div className=\"flex border-b border-border bg-surface-inset\" style={{ height: bandH }}>\n {hideLabelColumn ? (\n /* DXUI-72: with no label column the caption sits inside the band at its left edge, pinned there while the dates scroll; a flag passing under it is hidden. */\n <div className=\"sticky left-0 z-20 w-0 shrink-0\">\n <span\n className=\"absolute left-0 flex items-center bg-surface-inset px-2 text-xs font-semibold whitespace-nowrap text-secondary\"\n style={{ top: MARKER_BAND_TOP_PX, height: MARKER_BAND_LANE_PX }}\n >\n {markerBandCaption}\n </span>\n </div>\n ) : (\n <div\n className=\"sticky left-0 z-20 flex shrink-0 items-center border-r border-border bg-surface-inset px-3 text-xs font-semibold text-secondary\"\n style={{ width: labelWidth }}\n >\n {markerBandCaption}\n </div>\n )}\n <div className=\"relative shrink-0\" style={{ width }}>\n {flags.map(({ marker, x, lane, maxWidth }) => (\n <div\n key={marker.id}\n className=\"absolute z-10 flex items-stretch\"\n style={{\n left: x - MARKER_DASHED_W_PX / 2,\n top: MARKER_BAND_TOP_PX + lane * MARKER_BAND_LANE_PX,\n maxWidth,\n borderLeft: `${MARKER_DASHED_W_PX}px solid ${marker.color ?? \"var(--accent)\"}`,\n }}\n >\n {tip(\n marker,\n marker.editable ? (\n <button\n type=\"button\"\n data-marker-handle\n disabled={busy}\n aria-busy={marker.pending === true || undefined}\n aria-label={markerButtonName(marker)}\n className={cn(\n \"flex min-w-0 items-center gap-1 touch-none select-none focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-brand\",\n busy ? \"cursor-default\" : \"cursor-grab active:cursor-grabbing\",\n )}\n onPointerDown={(e) => startMarkerDrag(e, marker)}\n {...activateProps(marker)}\n >\n <MarkerGrip pending={marker.pending === true} savingLabel={strings.markerSaving} />\n <FlagBadge marker={marker} />\n </button>\n ) : onMarkerActivate ? (\n <button\n type=\"button\"\n aria-label={markerButtonName(marker)}\n className=\"flex min-w-0 cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-brand\"\n onClick={(e) => onMarkerActivate(marker.id, e.currentTarget)}\n >\n <FlagBadge marker={marker} />\n </button>\n ) : (\n <span role=\"img\" tabIndex={0} aria-label={markerButtonName(marker)} className=\"flex min-w-0 focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-brand\">\n <FlagBadge marker={marker} />\n </span>\n ),\n )}\n </div>\n ))}\n </div>\n </div>\n )}\n {band &&\n bandH > 0 &&\n flags.map(({ marker, x }) => (\n <span\n key={`seg-${marker.id}`}\n aria-hidden\n data-line-style={lineStyle}\n className=\"pointer-events-none absolute top-0\"\n style={{ ...markerStyle(marker), ...markerLineStyle(lineStyle, marker.color !== undefined), left: labelWidth + x, height: bandH + DATE_HEADER_PX }}\n />\n ))}\n\n <div className=\"flex border-b border-border\">\n {!hideLabelColumn && (\n <div\n className=\"sticky left-0 z-20 shrink-0 border-r border-border bg-surface px-3 py-2 text-xs font-semibold text-secondary\"\n style={{ width: labelWidth }}\n >\n {strings.itemColumn}\n </div>\n )}\n <div className=\"relative h-10 shrink-0\" style={{ width, marginTop: markerRows * MARKER_TAG_ROW_PX }}>\n {ticks.map((tick, i) => {\n const text = tickText(tick, i === 0);\n return (\n <div\n key={tick.startDay}\n className=\"absolute top-0 flex h-full flex-col justify-center overflow-hidden border-l border-border px-2 text-xs leading-tight text-secondary\"\n style={{ left: tick.x, width: tick.width }}\n >\n <span className=\"truncate font-medium\">{text.primary}</span>\n {text.secondary && <span className=\"truncate text-2xs text-muted-text\">{text.secondary}</span>}\n </div>\n );\n })}\n <span\n className=\"absolute top-0 z-10 -translate-x-1/2 rounded-b-sm bg-danger px-1 text-2xs font-semibold text-danger-contrast\"\n style={{ left: todayX }}\n >\n {strings.today}\n </span>\n {placed.map(({ marker, left, row, tagWidth, colored, style }) => {\n const className = cn(\n \"absolute z-10 flex items-center justify-center gap-1 overflow-hidden whitespace-nowrap rounded-t-sm text-2xs font-semibold\",\n colored ? MARKER_TAG_COLOR : \"bg-accent text-accent-contrast\",\n );\n const tagStyle = { ...style, left, width: tagWidth, top: markerTagTop(row, MARKER_TAG_ROW_PX), height: MARKER_TAG_ROW_PX - MARKER_TAG_ROW_GAP_PX };\n const content = (\n <>\n {colored && <span aria-hidden className=\"size-1.5 shrink-0 rounded-full bg-(--marker-color)\" />}\n <span className=\"truncate\">{marker.label}</span>\n </>\n );\n if (!marker.editable) {\n return onMarkerActivate ? (\n <Fragment key={marker.id}>\n {tip(\n marker,\n <button\n type=\"button\"\n aria-label={markerButtonName(marker)}\n className={cn(className, \"cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-brand\")}\n style={tagStyle}\n onClick={(e) => onMarkerActivate(marker.id, e.currentTarget)}\n >\n {content}\n </button>,\n )}\n </Fragment>\n ) : (\n <Fragment key={marker.id}>\n {tip(\n marker,\n <span\n role=\"img\"\n tabIndex={0}\n aria-label={markerButtonName(marker)}\n className={cn(className, \"focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-brand\")}\n style={tagStyle}\n >\n {content}\n </span>,\n )}\n </Fragment>\n );\n }\n return (\n <Fragment key={marker.id}>\n {tip(\n marker,\n <button\n type=\"button\"\n data-marker-handle\n disabled={busy}\n aria-busy={marker.pending === true || undefined}\n aria-label={markerButtonName(marker)}\n className={cn(\n className,\n busy ? \"cursor-default\" : \"cursor-grab touch-none select-none active:cursor-grabbing\",\n \"focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-brand\",\n )}\n style={tagStyle}\n onPointerDown={(e) => startMarkerDrag(e, marker)}\n {...activateProps(marker)}\n >\n <MarkerGrip pending={marker.pending === true} savingLabel={strings.markerSaving} />\n {content}\n </button>,\n )}\n </Fragment>\n );\n })}\n </div>\n </div>\n\n <div className=\"relative\">\n {/* The grid lines and the today line: one overlay, under the bars and the labels. */}\n <div aria-hidden className=\"pointer-events-none absolute inset-y-0 z-0\" style={{ left: labelWidth, width }}>\n {ticks.map((tick) => (\n <span key={tick.startDay} className=\"absolute inset-y-0 border-l border-border/60\" style={{ left: tick.x }} />\n ))}\n {lines.map(({ marker, x, colored }) => (\n <span\n key={marker.id}\n aria-hidden\n data-line-style={lineStyle}\n className=\"absolute inset-y-0\"\n style={{ ...markerStyle(marker), ...markerLineStyle(lineStyle, colored), left: x }}\n />\n ))}\n <span className=\"absolute inset-y-0 w-px bg-danger\" style={{ left: todayX }} />\n </div>\n\n {items.map((item) => (\n <TimelineRow\n key={item.id}\n item={item}\n range={range}\n pxPerDay={pxPerDay}\n trackWidth={width}\n labelWidth={labelWidth}\n hideLabelColumn={hideLabelColumn}\n day={day}\n dragging={drag?.id === item.id && drag.active ? drag : null}\n onPress={startDrag}\n consumeSwallowedClick={consumeSwallowedClick}\n onActivate={onItemActivate}\n onChange={onItemChange}\n />\n ))}\n {isEmpty && (\n <div className=\"sticky left-0 z-10 flex min-h-64 w-[100cqw] items-center justify-center p-4\">{empty}</div>\n )}\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"names":["LABEL_COLUMN_PX","NO_MARKERS","MARKER_CHAR_PX","MARKER_TAG_CHROME_PX","MARKER_TAG_GAP_PX","MARKER_TAG_ROW_PX","MARKER_TAG_ROW_GAP_PX","MARKER_TAG_COLOR","markerStyle","marker","MARKER_GRIP_PX","markerTagWidth","label","editable","MARKER_BAND_LANES","MARKER_BAND_LANE_PX","MARKER_BAND_TOP_PX","MARKER_BAND_PAD_PX","MARKER_BAND_MIN_PX","DATE_HEADER_PX","MARKER_SOLID_W_PX","MARKER_DASHED_W_PX","FLAG_BADGE","markerLineStyle","lineStyle","colored","fill","MarkerGrip","pending","savingLabel","jsx","Spinner","FlagBadge","Badge","DateTimeline","items","pxPerDay","onPxPerDayChange","onItemActivate","onItemChange","today","markers","onMarkerChange","onMarkerActivate","weekStartsOn","hideLabelColumn","markerPlacement","markerBandCaption","toolbar","empty","className","locale","useUiLocale","strings","useUiStrings","scroller","useRef","labelWidth","item","band","busy","todayDate","useMemo","assertPxPerDay","assertMarkers","unit","tickUnitFor","range","timelineRange","drag","startDrag","consumeSwallowedClick","useBarDrag","markerDrag","startMarkerDrag","consumeMarkerClick","clearMarkerClick","useMarkerDrag","ticks","unitTicks","width","trackWidth","todayX","instantToX","shown","addDays","lines","placed","tags","layoutMarkerTags","index","left","row","flags","boxes","layoutMarkerFlags","lane","maxWidth","markerRows","rows","p","bandLanes","lanes","f","bandH","moveByKey","e","day","dateFormat","longDay","tip","trigger","Tooltip","activateProps","markerButtonName","tickText","month","monthDay","yearFmt","tick","first","date","fromDayNumber","yearText","quarterOf","newYear","yearOf","centerOnToday","el","scrollLeftToCenter","isEmpty","zoomTo","onKeyDown","useTimelineZoom","cn","jsxs","Slider","ZOOM_SLIDER_MAX","pxPerDayToSlider","value","sliderToPxPerDay","Button","x","i","text","tagWidth","style","tagStyle","markerTagTop","content","Fragment","TimelineRow"],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { jsxs as s, Fragment as N, jsx as t } from "react/jsx-runtime";
2
+ import { cn as v } from "../../lib/cn.js";
3
+ import { formatPercent as B } from "../../lib/intl-cache.js";
4
+ import { editSpan as E, barBox as X, clampProgress as L, instantToX as H } from "../../lib/date-timeline/scale.js";
5
+ import { Tooltip as _ } from "../Popover.js";
6
+ import { useUiLocale as I, useUiStrings as K } from "../../lib/i18n/provider.js";
7
+ const M = {
8
+ neutral: "border-border bg-surface-raised text-secondary",
9
+ accent: "border-accent-border bg-accent-subtle text-accent-text",
10
+ success: "border-success-border bg-success-subtle text-success-text",
11
+ warning: "border-warning-border bg-warning-subtle text-warning-text",
12
+ danger: "border-danger-border bg-danger-subtle text-danger-text",
13
+ info: "border-info-border bg-info-subtle text-info-text",
14
+ muted: "border-muted-border bg-muted-subtle text-muted-text"
15
+ }, O = 40, S = 8, $ = 120, j = 8, U = 1 / 4, C = 2;
16
+ function F(e) {
17
+ const a = Math.min(j, e * U);
18
+ return a >= C ? a : 0;
19
+ }
20
+ function Z({ item: e, range: a, pxPerDay: f, trackWidth: A, labelWidth: p, hideLabelColumn: T, day: i, dragging: c, onPress: k, consumeSwallowedClick: G, onActivate: P, onChange: z }) {
21
+ const D = I(), b = K().dateTimeline, u = c ? E(e, c.edit, c.days) : e, o = X(u, a, f), g = i.format(u.start), m = i.format(u.end), l = e.progress === void 0 ? null : L(e.progress), h = l === null ? b.itemName(e.label, g, m) : b.itemNameProgress(e.label, g, m, B(l * 100, D)), x = e.plannedEnd ? `${h}, ${b.plannedEnd(i.format(e.plannedEnd))}` : h, w = o.width < $, n = F(o.width), y = /* @__PURE__ */ s(N, { children: [
22
+ /* @__PURE__ */ t("span", { className: "min-w-0 truncate", children: e.label }),
23
+ e.meta !== void 0 && /* @__PURE__ */ t("span", { className: "relative shrink-0", children: e.meta })
24
+ ] }), R = (r) => {
25
+ if (!e.editable || r.key !== "ArrowLeft" && r.key !== "ArrowRight") return;
26
+ r.preventDefault();
27
+ const d = E(e, r.altKey ? "start" : r.shiftKey ? "end" : "move", r.key === "ArrowLeft" ? -1 : 1);
28
+ (d.start.getTime() !== e.start.getTime() || d.end.getTime() !== e.end.getTime()) && z?.(e.id, d.start, d.end);
29
+ };
30
+ return /* @__PURE__ */ s("div", { className: "relative flex border-b border-border/60 last:border-b-0", style: { height: O }, children: [
31
+ !T && /* @__PURE__ */ t(_, { content: e.label, children: /* @__PURE__ */ t("div", { className: "sticky left-0 z-10 flex shrink-0 items-center border-r border-border bg-surface px-3 text-sm", style: { width: p }, children: /* @__PURE__ */ t("span", { className: "truncate", children: e.label }) }) }),
32
+ /* @__PURE__ */ s("div", { className: "relative shrink-0", style: { width: A }, children: [
33
+ e.plannedEnd && /* @__PURE__ */ t(
34
+ "span",
35
+ {
36
+ "aria-hidden": !0,
37
+ "data-planned-end": !0,
38
+ className: "pointer-events-none absolute top-1 bottom-1 z-[1] w-0 border-l-2 border-dashed border-warning",
39
+ style: { left: H(e.plannedEnd, a.startDay, f) },
40
+ children: /* @__PURE__ */ t("span", { className: "absolute -top-0.5 -left-[5px] size-2 rotate-45 bg-warning" })
41
+ }
42
+ ),
43
+ /* @__PURE__ */ t(_, { content: x, children: /* @__PURE__ */ s(
44
+ "button",
45
+ {
46
+ type: "button",
47
+ "aria-label": x,
48
+ onClick: () => {
49
+ G() || P(e.id);
50
+ },
51
+ onPointerDown: (r) => k(r, e),
52
+ onKeyDown: R,
53
+ className: v(
54
+ "absolute top-1.5 bottom-1.5 z-[2] min-w-0 select-none text-left text-xs font-medium",
55
+ "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-brand",
56
+ e.editable ? "cursor-grab touch-none active:cursor-grabbing" : "cursor-pointer",
57
+ // A bar too narrow for edge zones is still a target a pointer can hit: its hit area reaches past the bar.
58
+ e.editable && n === 0 && "before:absolute before:inset-y-0 before:-inset-x-1.5 before:content-['']"
59
+ ),
60
+ style: { left: o.left, width: o.width },
61
+ children: [
62
+ /* @__PURE__ */ s(
63
+ "span",
64
+ {
65
+ className: v(
66
+ "absolute inset-0 flex items-center gap-1.5 overflow-clip rounded-md border px-2",
67
+ "transition-[var(--tx-colors),filter] duration-(--dur-fast) hover:brightness-95",
68
+ M[e.tone ?? "accent"]
69
+ ),
70
+ children: [
71
+ l !== null && /* @__PURE__ */ t("span", { "aria-hidden": !0, className: "absolute inset-y-0 left-0 bg-current opacity-25", style: { width: `${l * 100}%` } }),
72
+ !w && /* Sticky just past the label column, so a bar scrolled partly under it keeps its text in view
73
+ (clipped to the bar by `overflow-clip`, which unlike `hidden` leaves sticky working). */
74
+ /* @__PURE__ */ t("span", { className: "sticky flex min-w-0 flex-1 items-center gap-1.5", style: { left: p + S }, children: y })
75
+ ]
76
+ }
77
+ ),
78
+ w && /* @__PURE__ */ t(
79
+ "span",
80
+ {
81
+ "data-tag": !0,
82
+ className: "absolute top-1/2 left-full ml-2 flex max-w-64 -translate-y-1/2 items-center gap-1.5 whitespace-nowrap rounded-md bg-surface/90 px-1.5 py-0.5",
83
+ children: y
84
+ }
85
+ ),
86
+ e.editable && n > 0 && /* @__PURE__ */ s(N, { children: [
87
+ /* @__PURE__ */ t("span", { "aria-hidden": !0, "data-edge": "start", className: "absolute inset-y-0 z-[1] cursor-ew-resize", style: { left: -n / 2, width: n } }),
88
+ /* @__PURE__ */ t("span", { "aria-hidden": !0, "data-edge": "end", className: "absolute inset-y-0 z-[1] cursor-ew-resize", style: { right: -n / 2, width: n } })
89
+ ] })
90
+ ]
91
+ }
92
+ ) })
93
+ ] })
94
+ ] });
95
+ }
96
+ export {
97
+ Z as TimelineRow,
98
+ F as edgeGrabPx
99
+ };
100
+ //# sourceMappingURL=TimelineRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimelineRow.js","sources":["../../../src/components/date-timeline/TimelineRow.tsx"],"sourcesContent":["import type { KeyboardEvent, PointerEvent } from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { useUiLocale, useUiStrings } from \"../../lib/i18n\";\nimport { formatPercent } from \"../../lib/intl-cache\";\nimport { barBox, clampProgress, editSpan, instantToX, type DayRange } from \"../../lib/date-timeline/scale\";\nimport { Tooltip } from \"../Popover\";\nimport type { IconStackTone } from \"../IconStack\";\nimport type { DateTimelineChange, DateTimelineItem } from \"./DateTimeline\";\nimport type { Drag } from \"./useBarDrag\";\n\n/* ============================================================================\n ONE ROW OF THE TIMELINE (DXUI-45, DXUI-60) — the sticky label, the bar and\n its planned-end marker.\n\n The bar is one button: a visual (clipped to the bar, holding the label when\n it fits), the outside tag when it does not, and, on an editable bar, the two\n edge grab zones. The drag itself is `useBarDrag`; this component only draws\n what the drag says and forwards the press.\n ============================================================================ */\n\nconst TONE: Record<IconStackTone, string> = {\n neutral: \"border-border bg-surface-raised text-secondary\",\n accent: \"border-accent-border bg-accent-subtle text-accent-text\",\n success: \"border-success-border bg-success-subtle text-success-text\",\n warning: \"border-warning-border bg-warning-subtle text-warning-text\",\n danger: \"border-danger-border bg-danger-subtle text-danger-text\",\n info: \"border-info-border bg-info-subtle text-info-text\",\n muted: \"border-muted-border bg-muted-subtle text-muted-text\",\n};\n\nconst ROW_HEIGHT = 40;\n/** The bar's own horizontal padding (`px-2`): the sticky label sits this far past the label column. */\nconst BAR_PADDING_PX = 8;\n/** A bar narrower than this shows its label and meta as a tag to its right instead of inside it. */\nconst TAG_BELOW_PX = 120;\n/** The widest an edge's grab zone gets. */\nconst EDGE_GRAB_PX = 8;\n/** An edge zone sits half inside the bar, so the two together cover `grab` of its width; capped at a quarter of the width, at least three quarters of the bar stays its body. */\nconst EDGE_GRAB_MAX_SHARE = 1 / 4;\n/** Below this the edge zones would be too small to hit, so a bar this narrow has none: it moves, and its keys resize it. */\nconst MIN_EDGE_GRAB_PX = 2;\n\n/** The width of each edge's grab zone on a bar this wide; 0 when the bar is too narrow to have edges. */\nexport function edgeGrabPx(barWidth: number): number {\n const grab = Math.min(EDGE_GRAB_PX, barWidth * EDGE_GRAB_MAX_SHARE);\n return grab >= MIN_EDGE_GRAB_PX ? grab : 0;\n}\n\nexport interface TimelineRowProps {\n item: DateTimelineItem;\n range: DayRange;\n pxPerDay: number;\n trackWidth: number;\n labelWidth: number;\n hideLabelColumn: boolean;\n day: Intl.DateTimeFormat;\n /** The live drag when it is this item's and past the threshold. */\n dragging: Drag | null;\n onPress: (e: PointerEvent<HTMLElement>, item: DateTimelineItem) => void;\n consumeSwallowedClick: () => boolean;\n onActivate: (id: string) => void;\n onChange: DateTimelineChange | undefined;\n}\n\nexport function TimelineRow({ item, range, pxPerDay, trackWidth, labelWidth, hideLabelColumn, day, dragging, onPress, consumeSwallowedClick, onActivate, onChange }: TimelineRowProps) {\n const locale = useUiLocale();\n const strings = useUiStrings().dateTimeline;\n const shown = dragging ? editSpan(item, dragging.edit, dragging.days) : item;\n const box = barBox(shown, range, pxPerDay);\n const from = day.format(shown.start);\n const to = day.format(shown.end);\n const progress = item.progress === undefined ? null : clampProgress(item.progress);\n const base =\n progress === null ? strings.itemName(item.label, from, to) : strings.itemNameProgress(item.label, from, to, formatPercent(progress * 100, locale));\n const name = item.plannedEnd ? `${base}, ${strings.plannedEnd(day.format(item.plannedEnd))}` : base;\n const tagged = box.width < TAG_BELOW_PX;\n const grab = edgeGrabPx(box.width);\n const text = (\n <>\n <span className=\"min-w-0 truncate\">{item.label}</span>\n {item.meta !== undefined && <span className=\"relative shrink-0\">{item.meta}</span>}\n </>\n );\n\n const keyEdit = (e: KeyboardEvent<HTMLElement>) => {\n if (!item.editable || (e.key !== \"ArrowLeft\" && e.key !== \"ArrowRight\")) return;\n e.preventDefault();\n const next = editSpan(item, e.altKey ? \"start\" : e.shiftKey ? \"end\" : \"move\", e.key === \"ArrowLeft\" ? -1 : 1);\n if (next.start.getTime() !== item.start.getTime() || next.end.getTime() !== item.end.getTime()) onChange?.(item.id, next.start, next.end);\n };\n\n return (\n <div className=\"relative flex border-b border-border/60 last:border-b-0\" style={{ height: ROW_HEIGHT }}>\n {!hideLabelColumn && (\n <Tooltip content={item.label}>\n <div className=\"sticky left-0 z-10 flex shrink-0 items-center border-r border-border bg-surface px-3 text-sm\" style={{ width: labelWidth }}>\n <span className=\"truncate\">{item.label}</span>\n </div>\n </Tooltip>\n )}\n <div className=\"relative shrink-0\" style={{ width: trackWidth }}>\n {item.plannedEnd && (\n <span\n aria-hidden\n data-planned-end\n className=\"pointer-events-none absolute top-1 bottom-1 z-[1] w-0 border-l-2 border-dashed border-warning\"\n style={{ left: instantToX(item.plannedEnd, range.startDay, pxPerDay) }}\n >\n <span className=\"absolute -top-0.5 -left-[5px] size-2 rotate-45 bg-warning\" />\n </span>\n )}\n <Tooltip content={name}>\n <button\n type=\"button\"\n aria-label={name}\n onClick={() => {\n if (!consumeSwallowedClick()) onActivate(item.id);\n }}\n onPointerDown={(e) => onPress(e, item)}\n onKeyDown={keyEdit}\n className={cn(\n \"absolute top-1.5 bottom-1.5 z-[2] min-w-0 select-none text-left text-xs font-medium\",\n \"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-brand\",\n item.editable ? \"cursor-grab touch-none active:cursor-grabbing\" : \"cursor-pointer\",\n // A bar too narrow for edge zones is still a target a pointer can hit: its hit area reaches past the bar.\n item.editable && grab === 0 && \"before:absolute before:inset-y-0 before:-inset-x-1.5 before:content-['']\",\n )}\n style={{ left: box.left, width: box.width }}\n >\n <span\n className={cn(\n \"absolute inset-0 flex items-center gap-1.5 overflow-clip rounded-md border px-2\",\n \"transition-[var(--tx-colors),filter] duration-(--dur-fast) hover:brightness-95\",\n TONE[item.tone ?? \"accent\"],\n )}\n >\n {progress !== null && <span aria-hidden className=\"absolute inset-y-0 left-0 bg-current opacity-25\" style={{ width: `${progress * 100}%` }} />}\n {!tagged && (\n /* Sticky just past the label column, so a bar scrolled partly under it keeps its text in view\n (clipped to the bar by `overflow-clip`, which unlike `hidden` leaves sticky working). */\n <span className=\"sticky flex min-w-0 flex-1 items-center gap-1.5\" style={{ left: labelWidth + BAR_PADDING_PX }}>\n {text}\n </span>\n )}\n </span>\n {tagged && (\n <span\n data-tag\n className=\"absolute top-1/2 left-full ml-2 flex max-w-64 -translate-y-1/2 items-center gap-1.5 whitespace-nowrap rounded-md bg-surface/90 px-1.5 py-0.5\"\n >\n {text}\n </span>\n )}\n {item.editable && grab > 0 && (\n <>\n <span aria-hidden data-edge=\"start\" className=\"absolute inset-y-0 z-[1] cursor-ew-resize\" style={{ left: -grab / 2, width: grab }} />\n <span aria-hidden data-edge=\"end\" className=\"absolute inset-y-0 z-[1] cursor-ew-resize\" style={{ right: -grab / 2, width: grab }} />\n </>\n )}\n </button>\n </Tooltip>\n </div>\n </div>\n );\n}\n"],"names":["TONE","ROW_HEIGHT","BAR_PADDING_PX","TAG_BELOW_PX","EDGE_GRAB_PX","EDGE_GRAB_MAX_SHARE","MIN_EDGE_GRAB_PX","edgeGrabPx","barWidth","grab","TimelineRow","item","range","pxPerDay","trackWidth","labelWidth","hideLabelColumn","day","dragging","onPress","consumeSwallowedClick","onActivate","onChange","locale","useUiLocale","strings","useUiStrings","shown","editSpan","box","barBox","from","to","progress","clampProgress","base","formatPercent","name","tagged","text","jsxs","Fragment","jsx","keyEdit","e","next","Tooltip","instantToX","cn"],"mappings":"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"}