@50arms/ui 0.0.0-stage → 35.2.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 +169 -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 +332 -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 +22 -0
  1037. package/dist/types/components/rbac/ApiKeysPanel.d.ts +26 -0
  1038. package/dist/types/components/rbac/ApiKeysTable.d.ts +65 -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 +635 -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,297 @@
1
+ const s = String.raw`"[^"\n]*"|'[^'\n]*'|\`[^\`]*\``;
2
+ function o(t) {
3
+ const e = t > 1 ? `|${o(t - 1)}` : "";
4
+ return String.raw`\{(?:[^{}"'\`]|${s}${e})*\}`;
5
+ }
6
+ const a = String.raw`(?:[^>{}"'/]|"[^"]*"|'[^']*'|${o(3)})`;
7
+ function i(t, e) {
8
+ return String.raw`\s${t}\s*=\s*(?:"${e}"|'${e}'|\{\s*(?:"${e}"|'${e}')\s*\})`;
9
+ }
10
+ function r(t, e, n) {
11
+ return String.raw`<${t}\b${a}*?${i(e, n)}`;
12
+ }
13
+ const d = [
14
+ // ---- native HTML / raw ARIA — always wrong; the library owns these shapes.
15
+ {
16
+ id: "raw-button",
17
+ pattern: /<button\b/,
18
+ preferInstead: ["Button"],
19
+ reason: "a native <button> — the library's Button carries focus, hover and disabled states the raw element does not."
20
+ },
21
+ {
22
+ id: "raw-video",
23
+ pattern: /<video\b/,
24
+ preferInstead: ["VideoPlayer"],
25
+ reason: "a native <video> — VideoPlayer carries the accessible name, preload=metadata, caption tracks and the can't-play fallback a raw element lacks (and FileCover is the fixed-size cover for a file that may be a video). DX-3982."
26
+ },
27
+ {
28
+ id: "raw-input",
29
+ pattern: /<input\b/,
30
+ preferInstead: ["Input"],
31
+ reason: "a native <input> — use the library's Input."
32
+ },
33
+ {
34
+ id: "raw-select",
35
+ pattern: /<select\b/,
36
+ // I18N-ALLOW: component names a developer-facing lint hint points at, never user text
37
+ preferInstead: ["Select", "Combobox"],
38
+ reason: "a native <select> — use the library's Select (or Combobox for a searchable list)."
39
+ },
40
+ {
41
+ id: "raw-textarea",
42
+ pattern: /<textarea\b/,
43
+ preferInstead: ["Textarea"],
44
+ reason: "a native <textarea> — use the library's Textarea (or see textarea-for-prose if this holds human-written text)."
45
+ },
46
+ {
47
+ id: "raw-dialog",
48
+ pattern: /<dialog\b/,
49
+ preferInstead: ["Dialog"],
50
+ reason: "a native <dialog> — use the library's Dialog."
51
+ },
52
+ {
53
+ id: "raw-pre",
54
+ pattern: /<pre\b/,
55
+ preferInstead: ["Markdown"],
56
+ reason: "<pre> renders literal text; prose or a human-written document is markdown and should render through Markdown. Real code or log output is the one case <pre> still fits."
57
+ },
58
+ {
59
+ id: "raw-clipboard-write",
60
+ pattern: /navigator\.clipboard\.writeText\s*\(/,
61
+ preferInstead: ["CopyValue", "copyText"],
62
+ reason: "a raw navigator.clipboard.writeText is refused in some in-app browsers and has no outcome shown — CopyValue is a value with its one-click copy and an announced result; copyText is the same copy with the execCommand fallback when you need the act without the control."
63
+ },
64
+ {
65
+ id: "role-menu",
66
+ pattern: /role\s*=\s*["']menu["']/,
67
+ preferInstead: ["Menu"],
68
+ reason: 'a hand-rolled role="menu" — use Menu, which owns focus and keyboard navigation for you.'
69
+ },
70
+ {
71
+ id: "role-listbox",
72
+ pattern: /role\s*=\s*["']listbox["']/,
73
+ // I18N-ALLOW: component names a developer-facing lint hint points at, never user text
74
+ preferInstead: ["Combobox", "Select"],
75
+ reason: 'a hand-rolled role="listbox" — use Combobox (searchable) or Select.'
76
+ },
77
+ {
78
+ id: "role-dialog",
79
+ pattern: /role\s*=\s*["']dialog["']/,
80
+ preferInstead: ["Dialog"],
81
+ reason: 'a hand-rolled role="dialog" — use Dialog, which owns focus trapping and dismissal for you.'
82
+ },
83
+ {
84
+ id: "role-tab",
85
+ pattern: /role\s*=\s*["']tab["']/,
86
+ preferInstead: ["Tabs"],
87
+ reason: 'a hand-rolled role="tab" — use Tabs.'
88
+ },
89
+ // ---- basic @50arms/ui primitive superseded by a richer one for its case.
90
+ {
91
+ id: "textarea-for-prose",
92
+ pattern: /<Textarea\b/,
93
+ preferInstead: ["InlineMarkdownEdit", "MarkdownEditor"],
94
+ reason: "Textarea holds plain text; multi-line human-written prose is markdown and belongs in InlineMarkdownEdit (read in place, edited in place) or MarkdownEditor."
95
+ },
96
+ {
97
+ id: "inline-edit-multiline",
98
+ pattern: new RegExp(r("InlineEdit", "lineMode", "multiline")),
99
+ preferInstead: ["InlineMarkdownEdit"],
100
+ reason: "a multiline InlineEdit holds prose; InlineMarkdownEdit renders and edits it as markdown in the same place."
101
+ },
102
+ {
103
+ id: "ghost-text-button",
104
+ // The attribute, the rest of the SAME opening tag, its closing `>` (a `/>`
105
+ // self-closing tag cannot match), then a first child that is text.
106
+ pattern: new RegExp(`${r("Button", "variant", "ghost")}${a}*>\\s*[^\\s<{]`),
107
+ preferInstead: ["IconButton"],
108
+ reason: "a ghost button with text reads as a label next to other text, not as a control; an inline or row action is IconButton with a Tooltip. A ghost TEXT button still fits a dialog's own primary/secondary action row."
109
+ },
110
+ {
111
+ id: "popover-fixed-rem-width",
112
+ // A `width` written in rem (or calc of rem) on a Popover: the shape DX-5257 made unnecessary.
113
+ pattern: new RegExp(r("Popover", "width", `[^"']*rem[^"']*`)),
114
+ preferInstead: ["Popover"],
115
+ reason: "a Popover with a hard-coded rem width makes a short list as wide as the cap. A Popover with no `width` sizes to its content up to 40rem and never past the viewport; pass `width` only for a panel that must be an exact size. DX-5257."
116
+ },
117
+ {
118
+ id: "bare-sort-icon-button",
119
+ // The semantic icon key a consumer draws a sort control with. A lone sort icon over a list of one-order-per-row radio
120
+ // items, which cannot show its direction, is the shape SortMenu replaces (DX-4312); SortMenu's own trigger is icon-only (DX-4378).
121
+ pattern: /["']action\.sort["']/,
122
+ preferInstead: ["SortMenu"],
123
+ reason: "a hand-built sort icon button that opens one radio row per order and shows no direction. SortMenu is the icon-only sort control: its trigger draws the arrow of the CURRENT direction (never text), its tooltip names the field and direction, and its popover lists each FIELD once with its own up and down arrow. A list whose orders are opaque single choices with no field/direction pair (a priority order, a relevance order) is the case a UI-LIBRARY-ALLOW reason covers. DX-4312, DX-4378."
124
+ },
125
+ {
126
+ id: "select-filter-stack",
127
+ // Three shapes, each one a list filter drawn by hand: a Select (or StatusSelect / Combobox / MultiSelect) whose accessible name says it
128
+ // is a filter (`aria-label="Filter by status"`, `aria-label={t("...filter.status")}`); a component DECLARED or USED under a name
129
+ // that says it is a select-shaped filter (`FilterSelect`, `StatusFilterDropdown`, `SelectFilter`); and nothing looser, because
130
+ // `isFilterSelected` or a prose mention of a filter is not a filter control.
131
+ pattern: new RegExp(
132
+ String.raw`<(?:Status|Multi)?(?:Select|Combobox)\b${a}*?\saria-label\s*=\s*\{?\s*(?:\w+\()?["'][^"']*[Ff]ilter` + "|" + String.raw`(?:<|\b(?:function|const|class)\s+)(?=[A-Z])\w*?(?:Filter(?:Select|Dropdown)|(?:Select|Dropdown)Filter)(?![a-z])`
133
+ ),
134
+ preferInstead: ["FilterMenu", "FilterChips"],
135
+ reason: 'a Select (or a select-shaped component) drawn as a list filter, which in practice means a row or stack of full-width dropdowns above a list that all read "Select...", hide what is applied inside each closed box and cannot hold two values of one filter. FilterMenu is the one filter control, and it draws EVERY kind of list filter, so no filter stays loose beside it: an icon button (with the count of filters on) that opens a popover with one labelled control per filter - toggle chips for a closed set (kind single or multiple, each option able to carry an icon and a colour tone), a searchable list for a long set (searchable), a switch for an on/off filter (boolean), From and To boxes for dates (date-range) and a text box for a typed value (text) - plus Clear all; FilterChips draws what is applied as removable chips under the row. Put it in the search + filters + sort row. A Select that picks a value to EDIT or CREATE something (not to narrow a list) is the case a UI-LIBRARY-ALLOW reason covers. DX-5374.'
136
+ },
137
+ {
138
+ id: "hand-rolled-attention",
139
+ // `animate-ping` is Tailwind's expanding-and-fading ring, and the one thing it is used for by hand is
140
+ // "look here": a ping span stacked behind a control. Matched as a class token, so `animate-ping-slow` and
141
+ // a prose mention inside a longer word do not count.
142
+ pattern: new RegExp("(?<![\\w-])animate-ping(?![\\w-])"),
143
+ // I18N-ALLOW: component names a developer-facing lint hint points at, never user text
144
+ preferInstead: ["Attention", "Badge"],
145
+ reason: "a hand-stacked animate-ping span. To draw the eye to a control, Attention wraps any control and draws it for you: slow click-ripple circles that grow from the centre and fade out, each to a different radius (or a pulse, glow, travelling ring, beacon, shimmer, bounce or wiggle) in the library's semantic tones, on a circle, pill, rounded, square or inherited shape, with no layout shift, a static highlight under reduced motion, and a graceful stop. Use it only while something is waiting for the viewer. A pinging live-status dot (running, connected, streaming) is not that: it is Badge with dot and pulse. DX-4494."
146
+ },
147
+ {
148
+ id: "emoji-rating-row",
149
+ // Two or more mood-face emoji on one line: the radio row of emoji a hand-built "how was it" scale is made of.
150
+ pattern: /(?:[\u{1F620}\u{1F621}\u{1F61E}\u{1F61F}\u{1F641}\u{2639}\u{1F610}\u{1F611}\u{1F642}\u{1F60A}\u{1F600}\u{1F603}\u{1F604}\u{1F601}]\u{FE0F}?[^\n]{0,40}){2,}/u,
151
+ // I18N-ALLOW: component names a developer-facing lint hint points at, never user text
152
+ preferInstead: ["RatingScale", "RatingFace"],
153
+ reason: "a hand-built row of mood-face emoji. RatingScale is the five-face scale (very unhappy to very happy) as a radio group: one tab stop, arrows move and select, each face named and with a tooltip, the chosen face tone-coloured from red to green, optionally clearable. RatingFace is its read-only single face for a table or list. Emoji render differently on every platform and are not icons (the dashboard rule). DX-5235."
154
+ },
155
+ {
156
+ id: "hand-rolled-infinite-scroll",
157
+ // Two shapes, one rule. A virtual-list or infinite-scroll package import is the obvious one. The other is a file that
158
+ // watches a sentinel with an IntersectionObserver AND fetches "the next page" — the hand-built version. Both are
159
+ // anchored at the start of the file with lookaheads, so matching stays linear however long the file is.
160
+ pattern: /from\s+["'](?:react-infinite-scroll-component|react-infinite-scroller|react-window(?:-infinite-loader)?|react-virtuoso|react-virtualized|@tanstack\/react-virtual)["']|^(?=[\s\S]*\bIntersectionObserver\b)(?=[\s\S]*\b(?:loadMore|fetchNextPage|loadNextPage|hasNextPage|nextPage)\b)/,
161
+ preferInstead: ["PagedWindowList", "usePagedWindow"],
162
+ reason: "a hand-built infinite or virtualised list. PagedWindowList (with usePagedWindow) holds a window of pages of a long server-side list — the page in view plus one on each side, 60 cards at 20 a page, everything else dropped from memory and replaced by a placeholder of the right height — so the scrollbar spans the whole total and can be dragged anywhere (the window moves only once the viewer has stopped for 200 ms, so a fast sweep reads the pages where it lands and not the ones it passes, and a read for a page that left the window is aborted through its signal), a page is read again in place when a card changes, and the window freezes while a drag is live so a board's drag-and-drop keeps working on the cards that are rendered. It drops into a BoardColumn as its children and reports the viewer's position through IntersectionObserver, never a scroll listener. A feed that only ever appends and never needs to jump or drop what it loaded is the case a UI-LIBRARY-ALLOW reason covers. DX-4540."
163
+ },
164
+ {
165
+ id: "hand-rolled-sortable-list",
166
+ // An import from a drag-and-drop or sortable-list package: the shape a hand-built reorderable list takes. The library's own
167
+ // DragDrop is what OrderedEntityManager is built on, so nothing needs a second drag dependency.
168
+ pattern: /from\s+["'](?:@dnd-kit\/[\w-]+|react-beautiful-dnd|@hello-pangea\/dnd|react-sortablejs|sortablejs|react-sortable-hoc|react-dnd|@atlaskit\/pragmatic-drag-and-drop(?:\/[\w-]+)*)["']/,
169
+ // I18N-ALLOW: component names a developer-facing lint hint points at, never user text
170
+ preferInstead: ["OrderedEntityManager"],
171
+ reason: "a hand-built reorderable list. OrderedEntityManager is the ordered list manager: entries a person adds, renames in place, deletes behind a confirm and reorders by drag handle or keyboard (Space to pick up, arrows to move, Space to drop), with an optional colour and emoji per entry edited in place (ColorPicker, the one colour control, with the caller's palette as colorPicker.presets, and EmojiPicker, configured through emojiPicker), a row that can be locked in place (a running queue item), one highlighted entry (the item just added) and a read-only badge per entry (a queue item's state). It is controlled: pass the entries and handle onReorder, onRename, onDelete, onCreate, onChangeColor and onChangeEmoji, and it saves nothing itself; each control appears only when its handler is passed, so a list that only reorders passes onReorder. A list that is not a flat, person-ordered list of named entries (a board of cards, a tree) is the case a UI-LIBRARY-ALLOW reason covers; Board and Kanban own card moves. DXUI-27."
172
+ },
173
+ {
174
+ id: "hand-rolled-color-picker",
175
+ // A colour-picker package: the shape a hand-built swatch chooser takes. A native type="color" input is `native-colour-input`'s.
176
+ pattern: /from\s+["'](?:react-colorful|react-color|@uiw\/react-color(?:-[\w-]+)?|vue-color)["']/,
177
+ // I18N-ALLOW: component names a developer-facing lint hint points at, never user text
178
+ preferInstead: ["ColorPicker"],
179
+ reason: "a hand-built colour chooser. ColorPicker is the one colour control: a swatch button that opens a saturation/brightness area, a hue slider, a #rrggbb hex field and optional preset swatches (the caller's own palette, with the stored one marked), controlled (value in, onChange out). Use it for any colour value, a fixed palette included (pass it as presets); OrderedEntityManager uses it for a list entry's colour. DXUI-27, DXUI-28."
180
+ },
181
+ {
182
+ id: "hand-rolled-emoji-picker",
183
+ // An emoji-picker package: the shape a hand-built emoji chooser takes.
184
+ pattern: /from\s+["'](?:emoji-picker-react|emoji-picker-element|@emoji-mart\/react|emoji-mart|rn-emoji-keyboard|react-emoji-picker)["']/,
185
+ // I18N-ALLOW: component names a developer-facing lint hint points at, never user text
186
+ preferInstead: ["EmojiPicker"],
187
+ reason: "a hand-built emoji chooser. EmojiPicker is a trigger showing the current emoji that opens a grid of choices and a field for any other value, controlled (value in, onChange out) and one Tab stop with arrow keys between choices. The stored value is the caller's: pass options as { value, glyph, label } to store a Slack emoji name such as gear while the trigger and grid show the glyph, with validateCustom for a typed value (default: exactly one Unicode emoji), renderValue for a stored value outside the options, allowCustom to close the set, searchable to add a search box over a large set (about 1,900 names stay cheap: at most 160 matches are drawn) and clearable={false} to make the emoji required. OrderedEntityManager uses it for a list entry's emoji. DXUI-27."
188
+ },
189
+ {
190
+ id: "hand-rolled-diff",
191
+ pattern: /from\s+["'](?:diff|diff-match-patch|jsdiff)["']/,
192
+ preferInstead: ["LineDiff", "PatchDiff"],
193
+ reason: "a diff computed by hand and rendered as custom markup; LineDiff compares a value against its baseline line by line, and PatchDiff draws a file's unified-diff patch (a pull request's changed file) with hunk line numbers and a collapsible header, both with the tone tokens and dark mode already handled. DX-3787, DX-5271."
194
+ },
195
+ {
196
+ id: "hand-built-time-series",
197
+ // An import from a charting package: the shape a hand-picked time series takes. TimeSeriesChart
198
+ // takes the same buckets, and LineChart the same instants, so nothing needs a second charting
199
+ // dependency (DX-4328, DX-4933).
200
+ pattern: /from\s+["'](?:recharts|chart\.js(?:\/[\w-]+)*|react-chartjs-2|d3(?:-[\w-]+)?|victory|@visx\/[\w-]+|@nivo\/[\w-]+|apexcharts|react-apexcharts|echarts(?:-for-react)?)["']/,
201
+ preferInstead: ["TimeSeriesChart", "LineChart"],
202
+ reason: `a charting package imported to draw values over time. Which one depends on the question. TimeSeriesChart answers "how much, per span, and by what": stacked columns (or areas) over time buckets the caller has already summed, in the library's chart palette, with a hatched block for unmeasured spans; the stack is a total, so use it only for values that add up (tokens, dollars). LineChart answers "what was it at this moment": one non-stacked line per series over points at real timestamps, horizontal reference lines (a limit, a budget) and markers on a series at an instant (an event, with caller content on hover and focus); use it for a level that does not add across series, such as a context size. Both have a time axis, a zero-based value axis, a tooltip on hover and keyboard focus, a toggling legend, deliberate empty states and a hidden table, and neither adds a dependency. DX-4328, DX-4933.`
203
+ },
204
+ {
205
+ id: "hand-built-bar",
206
+ // A `style` prop that sizes an element by a PERCENTAGE width — the shape every hand-built
207
+ // bar takes (`style={{ width: `${pct}%` }}`, `width: pct + "%"`, `width: "40%"`). The
208
+ // value is read through the brace depth PROP_UNIT already understands, and the `%` must
209
+ // sit in a string/template/concatenation, so `width: 100` or `width: px` never match.
210
+ pattern: /\bstyle\s*=\s*\{\{[^{}]*\bwidth\s*:\s*(?:`[^`]*%[^`]*`|"[^"]*%"|'[^']*%'|[^,}]*\+\s*["']%["'])/,
211
+ preferInstead: ["ShareBar", "BarList"],
212
+ reason: "a div sized by a percentage width is a hand-built bar. A whole divided into parts is ShareBar (one 100% bar, a legend, direct % labels, a tooltip and a table view); a ranked list of values is BarList (one sequential hue, a label and value per row). Both draw from the library's categorical chart palette with the contrast checked in light, dark and high-contrast, and give every mark a text equivalent. A single task or quota is Progress / Meter; a gauge that can sit at empty and should look it is a Meter with `emptyTrack` set to 'dashed'; a quota with a target or budget to stay under is a Meter with `marker` (a tick at the target, `markerLabel` describing it) and `overflowTone`, which draws what runs past the target in a second tone on a track stretched to hold it (marker 0 means start nothing). DX-3963, DX-5243."
213
+ },
214
+ {
215
+ id: "hand-built-step-rail",
216
+ // `aria-current="step"` is the attribute a hand-built step strip puts on its current marker: the library's Stepper already
217
+ // sets it, so a consumer file that writes it itself is drawing the rail by hand.
218
+ pattern: /\baria-current\s*=\s*(?:"step"|'step'|\{\s*(?:"step"|'step')\s*\})/,
219
+ // I18N-ALLOW: component names a developer-facing lint hint points at, never user text
220
+ preferInstead: ["Stepper"],
221
+ reason: 'a hand-built step strip. Stepper is the guided sequence: a rail with a position ("Step 3 of 9"), the gate on the way forward with its reason beside the control, and a status per step that is more than done or not done: complete (green tick), skipped (a grey dash, for a step the person passed on purpose, set with `skipped: true`, counted in a neutral chip and never mistaken for a failure), unverified (a grey ringed dot, for a step that is done but has nothing a server can test, set with `unverified: "Saved, not tested"`, its words printed and spoken, counted in no chip), incomplete (red cross, passed over by accident), failed (a red ringed exclamation for a step whose server check refused it, set with `failed: "Asana refused the token"`, the reason printed and spoken, outranking every other state; never draw a refusal with `blocked`, which is amber and means cannot start yet), blocked and upcoming. It stays readable with many steps (labels wrap and the strip scrolls; `orientation="side"` puts the rail beside the content from 1024px; `compact` or `compact="auto"` folds it, wherever the rail does not fit (below 1024px with the side rail), to "Step 3 of 9: Project" with a button for the full list on a phone). Mark a step you want to show as left on purpose `skipped`, never `complete` (false) and never left incomplete (a red cross reads as a failure). DX-4963.'
222
+ },
223
+ {
224
+ id: "hand-built-toggle-grid",
225
+ // A file that lays out a raw <table> AND puts a checkbox, switch or toggle cell in it: the shape of a hand-built rows-by-columns
226
+ // on/off grid (a permissions matrix, a "what syncs" grid). Anchored at the start of the file with lookaheads, so matching stays linear.
227
+ pattern: /^(?=[\s\S]*<table\b)(?=[\s\S]*(?:role\s*=\s*["']checkbox["']|<Checkbox\b|<Switch\b|<Toggle\b))/,
228
+ // I18N-ALLOW: component names a developer-facing lint hint points at, never user text
229
+ preferInstead: ["ToggleMatrix"],
230
+ reason: "a hand-built grid of on/off cells. ToggleMatrix is the one generic rows-by-columns matrix (RolePermissionMatrix is an adapter over it): rows with a label and a description, columns with a label, and a cell that is on, off or unavailable with a reason printed IN the cell (readable on a phone, no hover), a header checkbox that sets a whole column (checked, mixed, disabled), a read-only mode, a lock on a column that cannot be edited, a busy spinner per cell, group headings, and headers aligned over their cells down to 390px wide. A DataTable with a Checkbox in each cell is the same hand-built grid and loses the column control and the aligned headers. A table of records that merely has a selection checkbox is the case a UI-LIBRARY-ALLOW reason covers. DX-4963."
231
+ },
232
+ {
233
+ id: "setting-row-long-value-inline",
234
+ // A SettingRow whose own props hold a CopyValue as the control and no `layout` prop: the long value sits beside the text. The
235
+ // negative lookahead scans the same opening tag the match does, so the rule stays inside one tag.
236
+ pattern: new RegExp(
237
+ String.raw`<SettingRow\b(?!${a}*?\slayout\s*=)${a}*?\scontrol\s*=\s*\{\s*<CopyValue\b`
238
+ ),
239
+ // I18N-ALLOW: component names a developer-facing lint hint points at, never user text
240
+ preferInstead: ['SettingRow layout="stacked"'],
241
+ reason: 'a copyable URL or token in a SettingRow control is laid out beside the label from 640px up, and a value box that cannot shrink takes the whole row: the label and description wrap one word per line, or the box runs past the card edge with its copy button out of view. SettingRow takes layout="stacked": label and description on top, the control full width under them at every width, so CopyValue truncates inside its box with the copy button always visible. Use it for any control that holds a long value to read or copy. DX-4968.'
242
+ },
243
+ // ---- DX-5567: a keyword search box has its clear (x) inside it.
244
+ {
245
+ id: "bare-search-input",
246
+ pattern: new RegExp(r("Input", "type", "search")),
247
+ // I18N-ALLOW: component names a developer-facing lint hint points at, never user text
248
+ preferInstead: ["SearchInput"],
249
+ reason: 'an Input with type="search" drawn as a keyword search box. SearchInput is the one search box: the search icon at its leading edge and, only while it holds text, a "Clear search" x button inside the field at its trailing edge that empties the value and returns focus to the box (the browsers own clear glyph is suppressed so only this one shows). Hosts pass `value` and `onValueChange(value)`; a list that applies on Enter or blur also commits when the value is emptied. A search that must not carry a clear button is the case a UI-LIBRARY-ALLOW reason covers. DX-5567.'
250
+ },
251
+ // ---- DX-4985: a stored secret is shown, never an input. Three shapes of the old way, one rule each.
252
+ {
253
+ id: "bare-password-input-for-secret",
254
+ pattern: new RegExp(r("Input", "type", "password")),
255
+ // I18N-ALLOW: component names a developer-facing lint hint points at, never user text
256
+ preferInstead: ["SecretField"],
257
+ reason: `an Input with type="password" over a credential. A SECRET THAT CAN BE STORED is never an input while it is stored: SecretField draws the masked value with its first and last characters, a status from a real test of the secret (verified, failed with the provider's reason, unverifiable, not checked), a Re-verify button and Clear, and the input only when nothing is stored or after Clear. Replacing is Clear, then paste. A password the person is choosing or typing to sign in is PasswordInput; this rule is for a credential the app keeps. DX-4985.`
258
+ },
259
+ {
260
+ id: "local-secret-row",
261
+ // The old app wrapper by its name (declared or used), and any local Secret/Credential/Token/ApiKey Row/Field/Input component
262
+ // declared in app code: they exist to draw an input over a stored secret.
263
+ pattern: /<SecretRow\b|\b(?:function|const)\s+(?:Secret|Credential|Token|ApiKey)\w*(?:Row|Field|Input)\b/,
264
+ // I18N-ALLOW: component names a developer-facing lint hint points at, never user text
265
+ preferInstead: ["SecretField"],
266
+ reason: 'a local wrapper that draws a stored secret (a "SecretRow": a password box that says "Saved and hidden. Paste a new value to replace it."). That is the shape the stored-secret rule retired: an input over a working credential invites pasting over it and says nothing about whether it works. SecretField is the one component: no input while stored, masked ends, status icon and words, Re-verify, Clear (staged inside a batch-save form with `clear="staged"`, at once in a row with `clear="immediate"`). Delete the wrapper and pass SecretField the server\'s hint, status and updated-by. DX-4985.'
267
+ },
268
+ {
269
+ id: "hand-built-masked-secret",
270
+ // A string that is nothing but dots: the placeholder or display a stored secret is hidden behind.
271
+ pattern: /["'`]•{4,}["'`]/,
272
+ // I18N-ALLOW: component names a developer-facing lint hint points at, never user text
273
+ preferInstead: ["SecretField"],
274
+ reason: 'a hand-made run of dots standing in for a stored secret (a placeholder over a password box, or a masked token drawn by hand). SecretField draws the stored face itself: the first and last characters from `hint` around a fixed mask, so no screen invents its own mask, its own badge or its own "Check again". DX-4985.'
275
+ },
276
+ {
277
+ id: "secret-field-without-status",
278
+ // A SecretField opening tag with no `status` prop, scanned inside the one tag. A secret the app keeps is tested, and "not testable"
279
+ // is still a status the caller words (`{ kind: "unverifiable", message }`).
280
+ pattern: new RegExp(String.raw`<SecretField\b(?:(?!\sstatus\b)${a})*\/?>`),
281
+ // I18N-ALLOW: component names a developer-facing lint hint points at, never user text
282
+ preferInstead: ["SecretField status={...} onVerify={...}"],
283
+ reason: 'a SecretField with no `status`. Without one the stored face reads "Not checked" for ever, which hides whether the credential works. Pass the server\'s result of testing it (`verified`, `failed` with the provider\'s reason, `checking`, `unchecked`) plus `onVerify` for the Re-verify button, or `{ kind: "unverifiable", message }` with the reason nothing can test it (an OAuth client secret). A SecretField that only ever shows a secret once, at creation (nothing stored), is the case a UI-LIBRARY-ALLOW reason covers. DX-4985.'
284
+ },
285
+ // ---- DXUI-28: a colour value is picked with ColorPicker.
286
+ {
287
+ id: "native-colour-input",
288
+ pattern: /\stype\s*=\s*(?:"color"|'color'|\{\s*(?:"color"|'color')\s*\})/,
289
+ // I18N-ALLOW: component names a developer-facing lint hint points at, never user text
290
+ preferInstead: ["ColorPicker"],
291
+ reason: 'an input of type="color". The browser draws its own picker, different on every platform and outside the theme. ColorPicker is the one colour control: a swatch button that opens a saturation/brightness area, a hue slider, a #rrggbb hex field that shows a bad value as a field error, and optional preset swatches; it works from the keyboard, and `onChange` fires with the committed colour on release rather than on every pointer move. Use it for any colour value. DXUI-28.'
292
+ }
293
+ ];
294
+ export {
295
+ d as COMPONENT_GUIDANCE
296
+ };
297
+ //# sourceMappingURL=component-guidance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-guidance.js","sources":["../../src/lib/component-guidance.ts"],"sourcesContent":["/* ============================================================================\n COMPONENT GUIDANCE — the library's own \"richer alternative\" map. DX-3789.\n\n WHY THIS IS DATA, NOT A DOCUMENT.\n\n Every consuming repo used to keep its OWN hand-written list of \"if you see\n X, use Y instead\" (a hard-coded regex table in a source-scan test). That\n list drifted from this library on day one: a new richer component here\n (`InlineMarkdownEdit`, `IconButton`) did nothing for a consumer's\n enforcement until someone remembered to go update a table in a DIFFERENT\n repo by hand. The library is the one place that knows its own component\n set, so the library is the one place this map can live without drifting.\n\n THE ONE PRINCIPLE THIS DATA ENFORCES: for each piece of data a UI renders,\n use the MOST CAPABLE `@50arms/ui` component that fits it. Inline editing\n in place is the default interaction — never a read view plus a separate\n edit box or dialog for an existing value. Choosing a plainer primitive\n where a richer one fits is sometimes correct (a short label really is a\n `Textarea`-free `InlineEdit`; a `Button` really does belong ghost-styled\n inside a `Dialog`'s own action row) — that is exactly what a consumer's\n `UI-LIBRARY-ALLOW: <reason>` escape hatch is for. This map only says which\n substitutions are usually right; it does not forbid the exception.\n\n Each rule's `pattern` is matched against a WHOLE FILE's text (not a single\n line — `lineMode=\"multiline\"` and `variant=\"ghost\"` routinely land on a\n prop line different from the opening tag), so a consumer's scanner reports\n the FIRST matching line for its message rather than re-deriving one here.\n\n A rule fires on the SUPERSEDED shape; `preferInstead` names what a consumer\n should reach for. `raw:*` ids are the native-HTML-element/ARIA-role half of\n this table — DX-3789 folded those into the same mechanism a consumer used\n to hard-code separately, so a new richer component added here extends every\n consumer's enforcement with no repo edit on their side.\n ============================================================================ */\n\nexport interface ComponentGuidanceRule {\n /** Stable id — used only for messages/tooling, never matched against. */\n id: string;\n /** Tested against a whole file's source text. Deliberately case-sensitive\n * (see `raw-*` rules below) — a lowercase native tag is the violation; the\n * identically-spelled PascalCase `@50arms/ui` export is not. */\n pattern: RegExp;\n /** The component(s) that usually fit better than the matched shape. */\n preferInstead: readonly string[];\n /** Why the richer alternative usually fits — surfaced in a consumer's\n * violation message, and what a `UI-LIBRARY-ALLOW: <reason>` comment is\n * answering when the richer one genuinely does not apply here. */\n reason: string;\n}\n\n/* ----------------------------------------------------------------------------\n JSX OPENING-TAG PROPS, AS A REGEX (DX-3789 round 2).\n\n A rule that reads \"this component, with that prop\" has to stay inside ONE\n opening tag and understand what a prop value can contain. The first version\n used `(?:[^>]|\\n)*?` between the tag name and the prop, and that failed three\n ways on real code: an arrow function (`onClick={() => go()}`) ended the match\n at its own `>` (so a prop after it was missed), the same `>` after the prop\n made a SELF-CLOSING tag look like it had text children (a false positive),\n and the overlapping `[^>]|\\n` alternation backtracked exponentially on every\n newline (26 lines took ~500 ms).\n\n `PROP_UNIT` is one step of a tag's props, and its four alternatives start\n with four DISJOINT characters, so the engine has exactly one way to read any\n prop run and cannot backtrack exponentially:\n - a plain character that is none of `>` `{` `}` `\"` `'` `/` (names, `=`,\n whitespace). `/` is excluded on purpose: the only `/` outside a value is\n the `/>` of a self-closing tag, so such a tag simply fails to match;\n - a quoted attribute string (may span lines);\n - a `{...}` expression, with strings and nested braces understood to depth\n three (`style={{ a: { b: 1 } }}`), so a `>` inside it never ends the tag.\n A `{...}` whose own strings are unterminated on their line (an apostrophe in\n JSX text inside the expression) fails to match: an under-count, never a hang.\n ---------------------------------------------------------------------------- */\nconst EXPR_STRING = String.raw`\"[^\"\\n]*\"|'[^'\\n]*'|\\`[^\\`]*\\``;\n\nfunction braceGroup(depth: number): string {\n const nested = depth > 1 ? `|${braceGroup(depth - 1)}` : \"\";\n return String.raw`\\{(?:[^{}\"'\\`]|${EXPR_STRING}${nested})*\\}`;\n}\n\nconst PROP_UNIT = String.raw`(?:[^>{}\"'/]|\"[^\"]*\"|'[^']*'|${braceGroup(3)})`;\n\n/** `name=\"value\"`, `name='value'` or `name={\"value\"}`, as a whole attribute. */\nfunction attr(name: string, value: string): string {\n return String.raw`\\s${name}\\s*=\\s*(?:\"${value}\"|'${value}'|\\{\\s*(?:\"${value}\"|'${value}')\\s*\\})`;\n}\n\n/** `<Tag` ... up to and including the attribute, all inside one opening tag. */\nfunction tagWithAttr(tag: string, name: string, value: string): string {\n return String.raw`<${tag}\\b${PROP_UNIT}*?${attr(name, value)}`;\n}\n\nexport const COMPONENT_GUIDANCE: readonly ComponentGuidanceRule[] = [\n // ---- native HTML / raw ARIA — always wrong; the library owns these shapes.\n {\n id: \"raw-button\",\n pattern: /<button\\b/,\n preferInstead: [\"Button\"],\n reason: 'a native <button> — the library\\'s Button carries focus, hover and disabled states the raw element does not.',\n },\n {\n id: \"raw-video\",\n pattern: /<video\\b/,\n preferInstead: [\"VideoPlayer\"],\n reason: \"a native <video> — VideoPlayer carries the accessible name, preload=metadata, caption tracks and the can't-play fallback a raw element lacks (and FileCover is the fixed-size cover for a file that may be a video). DX-3982.\",\n },\n {\n id: \"raw-input\",\n pattern: /<input\\b/,\n preferInstead: [\"Input\"],\n reason: \"a native <input> — use the library's Input.\",\n },\n {\n id: \"raw-select\",\n pattern: /<select\\b/,\n // I18N-ALLOW: component names a developer-facing lint hint points at, never user text\n preferInstead: [\"Select\", \"Combobox\"],\n reason: \"a native <select> — use the library's Select (or Combobox for a searchable list).\",\n },\n {\n id: \"raw-textarea\",\n pattern: /<textarea\\b/,\n preferInstead: [\"Textarea\"],\n reason: \"a native <textarea> — use the library's Textarea (or see textarea-for-prose if this holds human-written text).\",\n },\n {\n id: \"raw-dialog\",\n pattern: /<dialog\\b/,\n preferInstead: [\"Dialog\"],\n reason: \"a native <dialog> — use the library's Dialog.\",\n },\n {\n id: \"raw-pre\",\n pattern: /<pre\\b/,\n preferInstead: [\"Markdown\"],\n reason: \"<pre> renders literal text; prose or a human-written document is markdown and should render through Markdown. Real code or log output is the one case <pre> still fits.\",\n },\n {\n id: \"raw-clipboard-write\",\n pattern: /navigator\\.clipboard\\.writeText\\s*\\(/,\n preferInstead: [\"CopyValue\", \"copyText\"],\n reason: \"a raw navigator.clipboard.writeText is refused in some in-app browsers and has no outcome shown — CopyValue is a value with its one-click copy and an announced result; copyText is the same copy with the execCommand fallback when you need the act without the control.\",\n },\n {\n id: \"role-menu\",\n pattern: /role\\s*=\\s*[\"']menu[\"']/,\n preferInstead: [\"Menu\"],\n reason: 'a hand-rolled role=\"menu\" — use Menu, which owns focus and keyboard navigation for you.',\n },\n {\n id: \"role-listbox\",\n pattern: /role\\s*=\\s*[\"']listbox[\"']/,\n // I18N-ALLOW: component names a developer-facing lint hint points at, never user text\n preferInstead: [\"Combobox\", \"Select\"],\n reason: 'a hand-rolled role=\"listbox\" — use Combobox (searchable) or Select.',\n },\n {\n id: \"role-dialog\",\n pattern: /role\\s*=\\s*[\"']dialog[\"']/,\n preferInstead: [\"Dialog\"],\n reason: 'a hand-rolled role=\"dialog\" — use Dialog, which owns focus trapping and dismissal for you.',\n },\n {\n id: \"role-tab\",\n pattern: /role\\s*=\\s*[\"']tab[\"']/,\n preferInstead: [\"Tabs\"],\n reason: 'a hand-rolled role=\"tab\" — use Tabs.',\n },\n // ---- basic @50arms/ui primitive superseded by a richer one for its case.\n {\n id: \"textarea-for-prose\",\n pattern: /<Textarea\\b/,\n preferInstead: [\"InlineMarkdownEdit\", \"MarkdownEditor\"],\n reason: \"Textarea holds plain text; multi-line human-written prose is markdown and belongs in InlineMarkdownEdit (read in place, edited in place) or MarkdownEditor.\",\n },\n {\n id: \"inline-edit-multiline\",\n pattern: new RegExp(tagWithAttr(\"InlineEdit\", \"lineMode\", \"multiline\")),\n preferInstead: [\"InlineMarkdownEdit\"],\n reason: \"a multiline InlineEdit holds prose; InlineMarkdownEdit renders and edits it as markdown in the same place.\",\n },\n {\n id: \"ghost-text-button\",\n // The attribute, the rest of the SAME opening tag, its closing `>` (a `/>`\n // self-closing tag cannot match), then a first child that is text.\n pattern: new RegExp(`${tagWithAttr(\"Button\", \"variant\", \"ghost\")}${PROP_UNIT}*>\\\\s*[^\\\\s<{]`),\n preferInstead: [\"IconButton\"],\n reason: \"a ghost button with text reads as a label next to other text, not as a control; an inline or row action is IconButton with a Tooltip. A ghost TEXT button still fits a dialog's own primary/secondary action row.\",\n },\n {\n id: \"popover-fixed-rem-width\",\n // A `width` written in rem (or calc of rem) on a Popover: the shape DX-5257 made unnecessary.\n pattern: new RegExp(tagWithAttr(\"Popover\", \"width\", `[^\"']*rem[^\"']*`)),\n preferInstead: [\"Popover\"],\n reason: \"a Popover with a hard-coded rem width makes a short list as wide as the cap. A Popover with no `width` sizes to its content up to 40rem and never past the viewport; pass `width` only for a panel that must be an exact size. DX-5257.\",\n },\n {\n id: \"bare-sort-icon-button\",\n // The semantic icon key a consumer draws a sort control with. A lone sort icon over a list of one-order-per-row radio\n // items, which cannot show its direction, is the shape SortMenu replaces (DX-4312); SortMenu's own trigger is icon-only (DX-4378).\n pattern: /[\"']action\\.sort[\"']/,\n preferInstead: [\"SortMenu\"],\n reason: \"a hand-built sort icon button that opens one radio row per order and shows no direction. SortMenu is the icon-only sort control: its trigger draws the arrow of the CURRENT direction (never text), its tooltip names the field and direction, and its popover lists each FIELD once with its own up and down arrow. A list whose orders are opaque single choices with no field/direction pair (a priority order, a relevance order) is the case a UI-LIBRARY-ALLOW reason covers. DX-4312, DX-4378.\",\n },\n {\n id: \"select-filter-stack\",\n // Three shapes, each one a list filter drawn by hand: a Select (or StatusSelect / Combobox / MultiSelect) whose accessible name says it\n // is a filter (`aria-label=\"Filter by status\"`, `aria-label={t(\"...filter.status\")}`); a component DECLARED or USED under a name\n // that says it is a select-shaped filter (`FilterSelect`, `StatusFilterDropdown`, `SelectFilter`); and nothing looser, because\n // `isFilterSelected` or a prose mention of a filter is not a filter control.\n pattern: new RegExp(\n String.raw`<(?:Status|Multi)?(?:Select|Combobox)\\b${PROP_UNIT}*?\\saria-label\\s*=\\s*\\{?\\s*(?:\\w+\\()?[\"'][^\"']*[Ff]ilter` +\n \"|\" +\n String.raw`(?:<|\\b(?:function|const|class)\\s+)(?=[A-Z])\\w*?(?:Filter(?:Select|Dropdown)|(?:Select|Dropdown)Filter)(?![a-z])`,\n ),\n preferInstead: [\"FilterMenu\", \"FilterChips\"],\n reason: \"a Select (or a select-shaped component) drawn as a list filter, which in practice means a row or stack of full-width dropdowns above a list that all read \\\"Select...\\\", hide what is applied inside each closed box and cannot hold two values of one filter. FilterMenu is the one filter control, and it draws EVERY kind of list filter, so no filter stays loose beside it: an icon button (with the count of filters on) that opens a popover with one labelled control per filter - toggle chips for a closed set (kind single or multiple, each option able to carry an icon and a colour tone), a searchable list for a long set (searchable), a switch for an on/off filter (boolean), From and To boxes for dates (date-range) and a text box for a typed value (text) - plus Clear all; FilterChips draws what is applied as removable chips under the row. Put it in the search + filters + sort row. A Select that picks a value to EDIT or CREATE something (not to narrow a list) is the case a UI-LIBRARY-ALLOW reason covers. DX-5374.\",\n },\n {\n id: \"hand-rolled-attention\",\n // `animate-ping` is Tailwind's expanding-and-fading ring, and the one thing it is used for by hand is\n // \"look here\": a ping span stacked behind a control. Matched as a class token, so `animate-ping-slow` and\n // a prose mention inside a longer word do not count.\n pattern: /(?<![\\w-])animate-ping(?![\\w-])/,\n // I18N-ALLOW: component names a developer-facing lint hint points at, never user text\n preferInstead: [\"Attention\", \"Badge\"],\n reason: \"a hand-stacked animate-ping span. To draw the eye to a control, Attention wraps any control and draws it for you: slow click-ripple circles that grow from the centre and fade out, each to a different radius (or a pulse, glow, travelling ring, beacon, shimmer, bounce or wiggle) in the library's semantic tones, on a circle, pill, rounded, square or inherited shape, with no layout shift, a static highlight under reduced motion, and a graceful stop. Use it only while something is waiting for the viewer. A pinging live-status dot (running, connected, streaming) is not that: it is Badge with dot and pulse. DX-4494.\",\n },\n {\n id: \"emoji-rating-row\",\n // Two or more mood-face emoji on one line: the radio row of emoji a hand-built \"how was it\" scale is made of.\n pattern: /(?:[\\u{1F620}\\u{1F621}\\u{1F61E}\\u{1F61F}\\u{1F641}\\u{2639}\\u{1F610}\\u{1F611}\\u{1F642}\\u{1F60A}\\u{1F600}\\u{1F603}\\u{1F604}\\u{1F601}]\\u{FE0F}?[^\\n]{0,40}){2,}/u,\n // I18N-ALLOW: component names a developer-facing lint hint points at, never user text\n preferInstead: [\"RatingScale\", \"RatingFace\"],\n reason: \"a hand-built row of mood-face emoji. RatingScale is the five-face scale (very unhappy to very happy) as a radio group: one tab stop, arrows move and select, each face named and with a tooltip, the chosen face tone-coloured from red to green, optionally clearable. RatingFace is its read-only single face for a table or list. Emoji render differently on every platform and are not icons (the dashboard rule). DX-5235.\",\n },\n {\n id: \"hand-rolled-infinite-scroll\",\n // Two shapes, one rule. A virtual-list or infinite-scroll package import is the obvious one. The other is a file that\n // watches a sentinel with an IntersectionObserver AND fetches \"the next page\" — the hand-built version. Both are\n // anchored at the start of the file with lookaheads, so matching stays linear however long the file is.\n pattern: /from\\s+[\"'](?:react-infinite-scroll-component|react-infinite-scroller|react-window(?:-infinite-loader)?|react-virtuoso|react-virtualized|@tanstack\\/react-virtual)[\"']|^(?=[\\s\\S]*\\bIntersectionObserver\\b)(?=[\\s\\S]*\\b(?:loadMore|fetchNextPage|loadNextPage|hasNextPage|nextPage)\\b)/,\n preferInstead: [\"PagedWindowList\", \"usePagedWindow\"],\n reason: \"a hand-built infinite or virtualised list. PagedWindowList (with usePagedWindow) holds a window of pages of a long server-side list — the page in view plus one on each side, 60 cards at 20 a page, everything else dropped from memory and replaced by a placeholder of the right height — so the scrollbar spans the whole total and can be dragged anywhere (the window moves only once the viewer has stopped for 200 ms, so a fast sweep reads the pages where it lands and not the ones it passes, and a read for a page that left the window is aborted through its signal), a page is read again in place when a card changes, and the window freezes while a drag is live so a board's drag-and-drop keeps working on the cards that are rendered. It drops into a BoardColumn as its children and reports the viewer's position through IntersectionObserver, never a scroll listener. A feed that only ever appends and never needs to jump or drop what it loaded is the case a UI-LIBRARY-ALLOW reason covers. DX-4540.\",\n },\n {\n id: \"hand-rolled-sortable-list\",\n // An import from a drag-and-drop or sortable-list package: the shape a hand-built reorderable list takes. The library's own\n // DragDrop is what OrderedEntityManager is built on, so nothing needs a second drag dependency.\n pattern: /from\\s+[\"'](?:@dnd-kit\\/[\\w-]+|react-beautiful-dnd|@hello-pangea\\/dnd|react-sortablejs|sortablejs|react-sortable-hoc|react-dnd|@atlaskit\\/pragmatic-drag-and-drop(?:\\/[\\w-]+)*)[\"']/,\n // I18N-ALLOW: component names a developer-facing lint hint points at, never user text\n preferInstead: [\"OrderedEntityManager\"],\n reason: \"a hand-built reorderable list. OrderedEntityManager is the ordered list manager: entries a person adds, renames in place, deletes behind a confirm and reorders by drag handle or keyboard (Space to pick up, arrows to move, Space to drop), with an optional colour and emoji per entry edited in place (ColorPicker, the one colour control, with the caller's palette as colorPicker.presets, and EmojiPicker, configured through emojiPicker), a row that can be locked in place (a running queue item), one highlighted entry (the item just added) and a read-only badge per entry (a queue item's state). It is controlled: pass the entries and handle onReorder, onRename, onDelete, onCreate, onChangeColor and onChangeEmoji, and it saves nothing itself; each control appears only when its handler is passed, so a list that only reorders passes onReorder. A list that is not a flat, person-ordered list of named entries (a board of cards, a tree) is the case a UI-LIBRARY-ALLOW reason covers; Board and Kanban own card moves. DXUI-27.\",\n },\n {\n id: \"hand-rolled-color-picker\",\n // A colour-picker package: the shape a hand-built swatch chooser takes. A native type=\"color\" input is `native-colour-input`'s.\n pattern: /from\\s+[\"'](?:react-colorful|react-color|@uiw\\/react-color(?:-[\\w-]+)?|vue-color)[\"']/,\n // I18N-ALLOW: component names a developer-facing lint hint points at, never user text\n preferInstead: [\"ColorPicker\"],\n reason: \"a hand-built colour chooser. ColorPicker is the one colour control: a swatch button that opens a saturation/brightness area, a hue slider, a #rrggbb hex field and optional preset swatches (the caller's own palette, with the stored one marked), controlled (value in, onChange out). Use it for any colour value, a fixed palette included (pass it as presets); OrderedEntityManager uses it for a list entry's colour. DXUI-27, DXUI-28.\",\n },\n {\n id: \"hand-rolled-emoji-picker\",\n // An emoji-picker package: the shape a hand-built emoji chooser takes.\n pattern: /from\\s+[\"'](?:emoji-picker-react|emoji-picker-element|@emoji-mart\\/react|emoji-mart|rn-emoji-keyboard|react-emoji-picker)[\"']/,\n // I18N-ALLOW: component names a developer-facing lint hint points at, never user text\n preferInstead: [\"EmojiPicker\"],\n reason: \"a hand-built emoji chooser. EmojiPicker is a trigger showing the current emoji that opens a grid of choices and a field for any other value, controlled (value in, onChange out) and one Tab stop with arrow keys between choices. The stored value is the caller's: pass options as { value, glyph, label } to store a Slack emoji name such as gear while the trigger and grid show the glyph, with validateCustom for a typed value (default: exactly one Unicode emoji), renderValue for a stored value outside the options, allowCustom to close the set, searchable to add a search box over a large set (about 1,900 names stay cheap: at most 160 matches are drawn) and clearable={false} to make the emoji required. OrderedEntityManager uses it for a list entry's emoji. DXUI-27.\",\n },\n {\n id: \"hand-rolled-diff\",\n pattern: /from\\s+[\"'](?:diff|diff-match-patch|jsdiff)[\"']/,\n preferInstead: [\"LineDiff\", \"PatchDiff\"],\n reason: \"a diff computed by hand and rendered as custom markup; LineDiff compares a value against its baseline line by line, and PatchDiff draws a file's unified-diff patch (a pull request's changed file) with hunk line numbers and a collapsible header, both with the tone tokens and dark mode already handled. DX-3787, DX-5271.\",\n },\n {\n id: \"hand-built-time-series\",\n // An import from a charting package: the shape a hand-picked time series takes. TimeSeriesChart\n // takes the same buckets, and LineChart the same instants, so nothing needs a second charting\n // dependency (DX-4328, DX-4933).\n pattern: /from\\s+[\"'](?:recharts|chart\\.js(?:\\/[\\w-]+)*|react-chartjs-2|d3(?:-[\\w-]+)?|victory|@visx\\/[\\w-]+|@nivo\\/[\\w-]+|apexcharts|react-apexcharts|echarts(?:-for-react)?)[\"']/,\n preferInstead: [\"TimeSeriesChart\", \"LineChart\"],\n reason: \"a charting package imported to draw values over time. Which one depends on the question. TimeSeriesChart answers \\\"how much, per span, and by what\\\": stacked columns (or areas) over time buckets the caller has already summed, in the library's chart palette, with a hatched block for unmeasured spans; the stack is a total, so use it only for values that add up (tokens, dollars). LineChart answers \\\"what was it at this moment\\\": one non-stacked line per series over points at real timestamps, horizontal reference lines (a limit, a budget) and markers on a series at an instant (an event, with caller content on hover and focus); use it for a level that does not add across series, such as a context size. Both have a time axis, a zero-based value axis, a tooltip on hover and keyboard focus, a toggling legend, deliberate empty states and a hidden table, and neither adds a dependency. DX-4328, DX-4933.\",\n },\n {\n id: \"hand-built-bar\",\n // A `style` prop that sizes an element by a PERCENTAGE width — the shape every hand-built\n // bar takes (`style={{ width: `${pct}%` }}`, `width: pct + \"%\"`, `width: \"40%\"`). The\n // value is read through the brace depth PROP_UNIT already understands, and the `%` must\n // sit in a string/template/concatenation, so `width: 100` or `width: px` never match.\n pattern: /\\bstyle\\s*=\\s*\\{\\{[^{}]*\\bwidth\\s*:\\s*(?:`[^`]*%[^`]*`|\"[^\"]*%\"|'[^']*%'|[^,}]*\\+\\s*[\"']%[\"'])/,\n preferInstead: [\"ShareBar\", \"BarList\"],\n reason: \"a div sized by a percentage width is a hand-built bar. A whole divided into parts is ShareBar (one 100% bar, a legend, direct % labels, a tooltip and a table view); a ranked list of values is BarList (one sequential hue, a label and value per row). Both draw from the library's categorical chart palette with the contrast checked in light, dark and high-contrast, and give every mark a text equivalent. A single task or quota is Progress / Meter; a gauge that can sit at empty and should look it is a Meter with `emptyTrack` set to 'dashed'; a quota with a target or budget to stay under is a Meter with `marker` (a tick at the target, `markerLabel` describing it) and `overflowTone`, which draws what runs past the target in a second tone on a track stretched to hold it (marker 0 means start nothing). DX-3963, DX-5243.\",\n },\n {\n id: \"hand-built-step-rail\",\n // `aria-current=\"step\"` is the attribute a hand-built step strip puts on its current marker: the library's Stepper already\n // sets it, so a consumer file that writes it itself is drawing the rail by hand.\n pattern: /\\baria-current\\s*=\\s*(?:\"step\"|'step'|\\{\\s*(?:\"step\"|'step')\\s*\\})/,\n // I18N-ALLOW: component names a developer-facing lint hint points at, never user text\n preferInstead: [\"Stepper\"],\n reason: \"a hand-built step strip. Stepper is the guided sequence: a rail with a position (\\\"Step 3 of 9\\\"), the gate on the way forward with its reason beside the control, and a status per step that is more than done or not done: complete (green tick), skipped (a grey dash, for a step the person passed on purpose, set with `skipped: true`, counted in a neutral chip and never mistaken for a failure), unverified (a grey ringed dot, for a step that is done but has nothing a server can test, set with `unverified: \\\"Saved, not tested\\\"`, its words printed and spoken, counted in no chip), incomplete (red cross, passed over by accident), failed (a red ringed exclamation for a step whose server check refused it, set with `failed: \\\"Asana refused the token\\\"`, the reason printed and spoken, outranking every other state; never draw a refusal with `blocked`, which is amber and means cannot start yet), blocked and upcoming. It stays readable with many steps (labels wrap and the strip scrolls; `orientation=\\\"side\\\"` puts the rail beside the content from 1024px; `compact` or `compact=\\\"auto\\\"` folds it, wherever the rail does not fit (below 1024px with the side rail), to \\\"Step 3 of 9: Project\\\" with a button for the full list on a phone). Mark a step you want to show as left on purpose `skipped`, never `complete` (false) and never left incomplete (a red cross reads as a failure). DX-4963.\",\n },\n {\n id: \"hand-built-toggle-grid\",\n // A file that lays out a raw <table> AND puts a checkbox, switch or toggle cell in it: the shape of a hand-built rows-by-columns\n // on/off grid (a permissions matrix, a \"what syncs\" grid). Anchored at the start of the file with lookaheads, so matching stays linear.\n pattern: /^(?=[\\s\\S]*<table\\b)(?=[\\s\\S]*(?:role\\s*=\\s*[\"']checkbox[\"']|<Checkbox\\b|<Switch\\b|<Toggle\\b))/,\n // I18N-ALLOW: component names a developer-facing lint hint points at, never user text\n preferInstead: [\"ToggleMatrix\"],\n reason: \"a hand-built grid of on/off cells. ToggleMatrix is the one generic rows-by-columns matrix (RolePermissionMatrix is an adapter over it): rows with a label and a description, columns with a label, and a cell that is on, off or unavailable with a reason printed IN the cell (readable on a phone, no hover), a header checkbox that sets a whole column (checked, mixed, disabled), a read-only mode, a lock on a column that cannot be edited, a busy spinner per cell, group headings, and headers aligned over their cells down to 390px wide. A DataTable with a Checkbox in each cell is the same hand-built grid and loses the column control and the aligned headers. A table of records that merely has a selection checkbox is the case a UI-LIBRARY-ALLOW reason covers. DX-4963.\",\n },\n {\n id: \"setting-row-long-value-inline\",\n // A SettingRow whose own props hold a CopyValue as the control and no `layout` prop: the long value sits beside the text. The\n // negative lookahead scans the same opening tag the match does, so the rule stays inside one tag.\n pattern: new RegExp(\n String.raw`<SettingRow\\b(?!${PROP_UNIT}*?\\slayout\\s*=)${PROP_UNIT}*?\\scontrol\\s*=\\s*\\{\\s*<CopyValue\\b`,\n ),\n // I18N-ALLOW: component names a developer-facing lint hint points at, never user text\n preferInstead: ['SettingRow layout=\"stacked\"'],\n reason: 'a copyable URL or token in a SettingRow control is laid out beside the label from 640px up, and a value box that cannot shrink takes the whole row: the label and description wrap one word per line, or the box runs past the card edge with its copy button out of view. SettingRow takes layout=\"stacked\": label and description on top, the control full width under them at every width, so CopyValue truncates inside its box with the copy button always visible. Use it for any control that holds a long value to read or copy. DX-4968.',\n },\n // ---- DX-5567: a keyword search box has its clear (x) inside it.\n {\n id: \"bare-search-input\",\n pattern: new RegExp(tagWithAttr(\"Input\", \"type\", \"search\")),\n // I18N-ALLOW: component names a developer-facing lint hint points at, never user text\n preferInstead: [\"SearchInput\"],\n reason: 'an Input with type=\"search\" drawn as a keyword search box. SearchInput is the one search box: the search icon at its leading edge and, only while it holds text, a \"Clear search\" x button inside the field at its trailing edge that empties the value and returns focus to the box (the browsers own clear glyph is suppressed so only this one shows). Hosts pass `value` and `onValueChange(value)`; a list that applies on Enter or blur also commits when the value is emptied. A search that must not carry a clear button is the case a UI-LIBRARY-ALLOW reason covers. DX-5567.',\n },\n // ---- DX-4985: a stored secret is shown, never an input. Three shapes of the old way, one rule each.\n {\n id: \"bare-password-input-for-secret\",\n pattern: new RegExp(tagWithAttr(\"Input\", \"type\", \"password\")),\n // I18N-ALLOW: component names a developer-facing lint hint points at, never user text\n preferInstead: [\"SecretField\"],\n reason: 'an Input with type=\"password\" over a credential. A SECRET THAT CAN BE STORED is never an input while it is stored: SecretField draws the masked value with its first and last characters, a status from a real test of the secret (verified, failed with the provider\\'s reason, unverifiable, not checked), a Re-verify button and Clear, and the input only when nothing is stored or after Clear. Replacing is Clear, then paste. A password the person is choosing or typing to sign in is PasswordInput; this rule is for a credential the app keeps. DX-4985.',\n },\n {\n id: \"local-secret-row\",\n // The old app wrapper by its name (declared or used), and any local Secret/Credential/Token/ApiKey Row/Field/Input component\n // declared in app code: they exist to draw an input over a stored secret.\n pattern: /<SecretRow\\b|\\b(?:function|const)\\s+(?:Secret|Credential|Token|ApiKey)\\w*(?:Row|Field|Input)\\b/,\n // I18N-ALLOW: component names a developer-facing lint hint points at, never user text\n preferInstead: [\"SecretField\"],\n reason: 'a local wrapper that draws a stored secret (a \"SecretRow\": a password box that says \"Saved and hidden. Paste a new value to replace it.\"). That is the shape the stored-secret rule retired: an input over a working credential invites pasting over it and says nothing about whether it works. SecretField is the one component: no input while stored, masked ends, status icon and words, Re-verify, Clear (staged inside a batch-save form with `clear=\"staged\"`, at once in a row with `clear=\"immediate\"`). Delete the wrapper and pass SecretField the server\\'s hint, status and updated-by. DX-4985.',\n },\n {\n id: \"hand-built-masked-secret\",\n // A string that is nothing but dots: the placeholder or display a stored secret is hidden behind.\n pattern: /[\"'`]•{4,}[\"'`]/,\n // I18N-ALLOW: component names a developer-facing lint hint points at, never user text\n preferInstead: [\"SecretField\"],\n reason: 'a hand-made run of dots standing in for a stored secret (a placeholder over a password box, or a masked token drawn by hand). SecretField draws the stored face itself: the first and last characters from `hint` around a fixed mask, so no screen invents its own mask, its own badge or its own \"Check again\". DX-4985.',\n },\n {\n id: \"secret-field-without-status\",\n // A SecretField opening tag with no `status` prop, scanned inside the one tag. A secret the app keeps is tested, and \"not testable\"\n // is still a status the caller words (`{ kind: \"unverifiable\", message }`).\n pattern: new RegExp(String.raw`<SecretField\\b(?:(?!\\sstatus\\b)${PROP_UNIT})*\\/?>`),\n // I18N-ALLOW: component names a developer-facing lint hint points at, never user text\n preferInstead: [\"SecretField status={...} onVerify={...}\"],\n reason: 'a SecretField with no `status`. Without one the stored face reads \"Not checked\" for ever, which hides whether the credential works. Pass the server\\'s result of testing it (`verified`, `failed` with the provider\\'s reason, `checking`, `unchecked`) plus `onVerify` for the Re-verify button, or `{ kind: \"unverifiable\", message }` with the reason nothing can test it (an OAuth client secret). A SecretField that only ever shows a secret once, at creation (nothing stored), is the case a UI-LIBRARY-ALLOW reason covers. DX-4985.',\n },\n // ---- DXUI-28: a colour value is picked with ColorPicker.\n {\n id: \"native-colour-input\",\n pattern: /\\stype\\s*=\\s*(?:\"color\"|'color'|\\{\\s*(?:\"color\"|'color')\\s*\\})/,\n // I18N-ALLOW: component names a developer-facing lint hint points at, never user text\n preferInstead: [\"ColorPicker\"],\n reason: 'an input of type=\"color\". The browser draws its own picker, different on every platform and outside the theme. ColorPicker is the one colour control: a swatch button that opens a saturation/brightness area, a hue slider, a #rrggbb hex field that shows a bad value as a field error, and optional preset swatches; it works from the keyboard, and `onChange` fires with the committed colour on release rather than on every pointer move. Use it for any colour value. DXUI-28.',\n },\n] as const;\n"],"names":["EXPR_STRING","braceGroup","depth","nested","PROP_UNIT","attr","name","value","tagWithAttr","tag","COMPONENT_GUIDANCE"],"mappings":"AA0EA,MAAMA,IAAc,OAAO;AAE3B,SAASC,EAAWC,GAAuB;AACzC,QAAMC,IAASD,IAAQ,IAAI,IAAID,EAAWC,IAAQ,CAAC,CAAC,KAAK;AACzD,SAAO,OAAO,qBAAqBF,CAAW,GAAGG,CAAM;AACzD;AAEA,MAAMC,IAAY,OAAO,mCAAmCH,EAAW,CAAC,CAAC;AAGzE,SAASI,EAAKC,GAAcC,GAAuB;AACjD,SAAO,OAAO,QAAQD,CAAI,cAAcC,CAAK,MAAMA,CAAK,cAAcA,CAAK,MAAMA,CAAK;AACxF;AAGA,SAASC,EAAYC,GAAaH,GAAcC,GAAuB;AACrE,SAAO,OAAO,OAAOE,CAAG,KAAKL,CAAS,KAAKC,EAAKC,GAAMC,CAAK,CAAC;AAC9D;AAEO,MAAMG,IAAuD;AAAA;AAAA,EAElE;AAAA,IACE,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,eAAe,CAAC,QAAQ;AAAA,IACxB,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,eAAe,CAAC,aAAa;AAAA,IAC7B,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,eAAe,CAAC,OAAO;AAAA,IACvB,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA,IACJ,SAAS;AAAA;AAAA,IAET,eAAe,CAAC,UAAU,UAAU;AAAA,IACpC,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,eAAe,CAAC,UAAU;AAAA,IAC1B,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,eAAe,CAAC,QAAQ;AAAA,IACxB,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,eAAe,CAAC,UAAU;AAAA,IAC1B,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,eAAe,CAAC,aAAa,UAAU;AAAA,IACvC,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,eAAe,CAAC,MAAM;AAAA,IACtB,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA,IACJ,SAAS;AAAA;AAAA,IAET,eAAe,CAAC,YAAY,QAAQ;AAAA,IACpC,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,eAAe,CAAC,QAAQ;AAAA,IACxB,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,eAAe,CAAC,MAAM;AAAA,IACtB,QAAQ;AAAA,EAAA;AAAA;AAAA,EAGV;AAAA,IACE,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,eAAe,CAAC,sBAAsB,gBAAgB;AAAA,IACtD,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA,IACJ,SAAS,IAAI,OAAOF,EAAY,cAAc,YAAY,WAAW,CAAC;AAAA,IACtE,eAAe,CAAC,oBAAoB;AAAA,IACpC,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA;AAAA;AAAA,IAGJ,SAAS,IAAI,OAAO,GAAGA,EAAY,UAAU,WAAW,OAAO,CAAC,GAAGJ,CAAS,gBAAgB;AAAA,IAC5F,eAAe,CAAC,YAAY;AAAA,IAC5B,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA;AAAA,IAEJ,SAAS,IAAI,OAAOI,EAAY,WAAW,SAAS,iBAAiB,CAAC;AAAA,IACtE,eAAe,CAAC,SAAS;AAAA,IACzB,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA;AAAA;AAAA,IAGJ,SAAS;AAAA,IACT,eAAe,CAAC,UAAU;AAAA,IAC1B,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,IAKJ,SAAS,IAAI;AAAA,MACX,OAAO,6CAA6CJ,CAAS,6DAC3D,MACA,OAAO;AAAA,IAAA;AAAA,IAEX,eAAe,CAAC,cAAc,aAAa;AAAA,IAC3C,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA;AAAA;AAAA;AAAA,IAIJ,SAAS,WAAA,mCAAA;AAAA;AAAA,IAET,eAAe,CAAC,aAAa,OAAO;AAAA,IACpC,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA;AAAA,IAEJ,SAAS;AAAA;AAAA,IAET,eAAe,CAAC,eAAe,YAAY;AAAA,IAC3C,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA;AAAA;AAAA;AAAA,IAIJ,SAAS;AAAA,IACT,eAAe,CAAC,mBAAmB,gBAAgB;AAAA,IACnD,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA;AAAA;AAAA,IAGJ,SAAS;AAAA;AAAA,IAET,eAAe,CAAC,sBAAsB;AAAA,IACtC,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA;AAAA,IAEJ,SAAS;AAAA;AAAA,IAET,eAAe,CAAC,aAAa;AAAA,IAC7B,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA;AAAA,IAEJ,SAAS;AAAA;AAAA,IAET,eAAe,CAAC,aAAa;AAAA,IAC7B,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,eAAe,CAAC,YAAY,WAAW;AAAA,IACvC,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA;AAAA;AAAA;AAAA,IAIJ,SAAS;AAAA,IACT,eAAe,CAAC,mBAAmB,WAAW;AAAA,IAC9C,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,IAKJ,SAAS;AAAA,IACT,eAAe,CAAC,YAAY,SAAS;AAAA,IACrC,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA;AAAA;AAAA,IAGJ,SAAS;AAAA;AAAA,IAET,eAAe,CAAC,SAAS;AAAA,IACzB,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA;AAAA;AAAA,IAGJ,SAAS;AAAA;AAAA,IAET,eAAe,CAAC,cAAc;AAAA,IAC9B,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA;AAAA;AAAA,IAGJ,SAAS,IAAI;AAAA,MACX,OAAO,sBAAsBA,CAAS,kBAAkBA,CAAS;AAAA,IAAA;AAAA;AAAA,IAGnE,eAAe,CAAC,6BAA6B;AAAA,IAC7C,QAAQ;AAAA,EAAA;AAAA;AAAA,EAGV;AAAA,IACE,IAAI;AAAA,IACJ,SAAS,IAAI,OAAOI,EAAY,SAAS,QAAQ,QAAQ,CAAC;AAAA;AAAA,IAE1D,eAAe,CAAC,aAAa;AAAA,IAC7B,QAAQ;AAAA,EAAA;AAAA;AAAA,EAGV;AAAA,IACE,IAAI;AAAA,IACJ,SAAS,IAAI,OAAOA,EAAY,SAAS,QAAQ,UAAU,CAAC;AAAA;AAAA,IAE5D,eAAe,CAAC,aAAa;AAAA,IAC7B,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA;AAAA;AAAA,IAGJ,SAAS;AAAA;AAAA,IAET,eAAe,CAAC,aAAa;AAAA,IAC7B,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA;AAAA,IAEJ,SAAS;AAAA;AAAA,IAET,eAAe,CAAC,aAAa;AAAA,IAC7B,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,IAAI;AAAA;AAAA;AAAA,IAGJ,SAAS,IAAI,OAAO,OAAO,qCAAqCJ,CAAS,QAAQ;AAAA;AAAA,IAEjF,eAAe,CAAC,yCAAyC;AAAA,IACzD,QAAQ;AAAA,EAAA;AAAA;AAAA,EAGV;AAAA,IACE,IAAI;AAAA,IACJ,SAAS;AAAA;AAAA,IAET,eAAe,CAAC,aAAa;AAAA,IAC7B,QAAQ;AAAA,EAAA;AAEZ;"}
@@ -0,0 +1,22 @@
1
+ function i(t, n) {
2
+ if (!Number.isFinite(t) || !Number.isFinite(n) || n <= 0 || t <= 0) return null;
3
+ const e = Math.round(Math.min(t, n) / n * 5);
4
+ return Math.max(1, Math.min(5, e));
5
+ }
6
+ const u = {
7
+ // I18N-ALLOW: English reference word for consumers outside React; components render the provider's `confidenceBar.levels`
8
+ 1: "Just a guess",
9
+ // I18N-ALLOW: English reference word for consumers outside React; components render the provider's `confidenceBar.levels`
10
+ 2: "Somewhat unsure",
11
+ // I18N-ALLOW: English reference word for consumers outside React; components render the provider's `confidenceBar.levels`
12
+ 3: "Fairly confident",
13
+ // I18N-ALLOW: English reference word for consumers outside React; components render the provider's `confidenceBar.levels`
14
+ 4: "Confident",
15
+ // I18N-ALLOW: English reference word for consumers outside React; components render the provider's `confidenceBar.levels`
16
+ 5: "Highly confident"
17
+ };
18
+ export {
19
+ u as CONFIDENCE_LEVEL_LABELS,
20
+ i as confidenceLevel
21
+ };
22
+ //# sourceMappingURL=confidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confidence.js","sources":["../../src/lib/confidence.ts"],"sourcesContent":["/* ----------------------------------------------------------------------------\n THE FIVE-STEP CONFIDENCE SCALE, AS DATA — how a 1-5 rating READS.\n\n React-free on purpose (it is exported from `@50arms/ui/pure`), because not\n every surface that draws a rating is a React consumer of this library: the\n demand letter's verification overlay is a Vue package, and it bundles these\n from here rather than keeping its own copy of the rounding rule.\n Its colours come the same way, from `dist/confidence.css`. One scale, one\n source — a second copy is how a letter and the screen beside it came to\n disagree about what a 4 is (SG-843 / SG-901).\n -------------------------------------------------------------------------- */\n\n/** One of the five steps of the confidence scale — see `ConfidenceBar` for how each is drawn. */\nexport type ConfidenceLevel = 1 | 2 | 3 | 4 | 5;\n\n/**\n * A RATING to one of the five confidence steps, or null when there is no\n * rating on a real scale to draw.\n *\n * A five-point rating maps one-to-one. Any other scale is mapped by its\n * fraction, so a colour and a length keep one meaning whatever scale a consumer\n * rates on. A rating below one step is \"not rated\", never level 1: a zero is\n * the absence of a rating, and drawing it as the lowest earned level would\n * claim a judgement nobody made.\n *\n * The fraction feeds a COLOUR and a LENGTH, never a printed figure — a step is\n * a judgement five values wide and survives the trip; a percentage is a figure\n * and does not.\n */\nexport function confidenceLevel(rating: number, scale: number): ConfidenceLevel | null {\n if (!Number.isFinite(rating) || !Number.isFinite(scale) || scale <= 0 || rating <= 0) return null;\n const step = Math.round((Math.min(rating, scale) / scale) * 5);\n return Math.max(1, Math.min(5, step)) as ConfidenceLevel;\n}\n\n/**\n * Each level's own word, the operator's scale (SG-843): 4 is \"Confident\" and 5\n * is \"Highly confident\", so the two readings of \"fine\" stay distinguishable in\n * words exactly as they are in colour and length.\n *\n * These are the ENGLISH words for a non-React consumer that cannot read the\n * provider (the demand letter's Vue overlay bundles them, SG-901). Components\n * read `confidenceBar.levels` from the provider, whose English set is this very\n * object, so there is one place the English lives.\n */\nexport const CONFIDENCE_LEVEL_LABELS: Readonly<Record<ConfidenceLevel, string>> = {\n // I18N-ALLOW: English reference word for consumers outside React; components render the provider's `confidenceBar.levels`\n 1: \"Just a guess\",\n // I18N-ALLOW: English reference word for consumers outside React; components render the provider's `confidenceBar.levels`\n 2: \"Somewhat unsure\",\n // I18N-ALLOW: English reference word for consumers outside React; components render the provider's `confidenceBar.levels`\n 3: \"Fairly confident\",\n // I18N-ALLOW: English reference word for consumers outside React; components render the provider's `confidenceBar.levels`\n 4: \"Confident\",\n // I18N-ALLOW: English reference word for consumers outside React; components render the provider's `confidenceBar.levels`\n 5: \"Highly confident\",\n};\n"],"names":["confidenceLevel","rating","scale","step","CONFIDENCE_LEVEL_LABELS"],"mappings":"AA6BO,SAASA,EAAgBC,GAAgBC,GAAuC;AACrF,MAAI,CAAC,OAAO,SAASD,CAAM,KAAK,CAAC,OAAO,SAASC,CAAK,KAAKA,KAAS,KAAKD,KAAU,EAAG,QAAO;AAC7F,QAAME,IAAO,KAAK,MAAO,KAAK,IAAIF,GAAQC,CAAK,IAAIA,IAAS,CAAC;AAC7D,SAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAGC,CAAI,CAAC;AACtC;AAYO,MAAMC,IAAqE;AAAA;AAAA,EAEhF,GAAG;AAAA;AAAA,EAEH,GAAG;AAAA;AAAA,EAEH,GAAG;AAAA;AAAA,EAEH,GAAG;AAAA;AAAA,EAEH,GAAG;AACL;"}
@@ -0,0 +1,197 @@
1
+ import { DAY_MS as M } from "../../components/chart/time-series-scale.js";
2
+ const l = 1, E = 120, p = 12, L = 60, O = 20, X = 5;
3
+ function H(t) {
4
+ return t >= L ? "days" : t >= O ? "weeks" : t >= X ? "months" : "quarters";
5
+ }
6
+ function Y(t) {
7
+ if (!Number.isFinite(t) || t < l || t > E)
8
+ throw new Error(`timeline: pxPerDay must be a number from ${l} to ${E}`);
9
+ }
10
+ function A(t) {
11
+ return Math.min(E, Math.max(l, t));
12
+ }
13
+ function v(t, n) {
14
+ return A(t * n);
15
+ }
16
+ const k = 100, N = Math.log(E / l);
17
+ function Z(t) {
18
+ return Math.log(t / l) / N * k;
19
+ }
20
+ function $(t) {
21
+ return A(l * Math.exp(t / k * N));
22
+ }
23
+ const U = 1, b = 2, I = 16, R = 400, C = 2e-3;
24
+ function q(t, n) {
25
+ const e = n === U ? t * I : n === b ? t * R : t;
26
+ return Math.exp(-e * C);
27
+ }
28
+ const G = 1.25;
29
+ function K(t, n, e, r, o) {
30
+ return Math.max(0, r + _(t, n, e) - o);
31
+ }
32
+ function B(t, n, e, r, o) {
33
+ return e + (n + t - o) / r;
34
+ }
35
+ function m(t) {
36
+ const n = t.getTime();
37
+ if (!Number.isFinite(n)) throw new Error("timeline: an invalid Date reached the date axis");
38
+ const e = Date.UTC(t.getFullYear(), t.getMonth(), t.getDate()) / M, r = ((t.getHours() * 60 + t.getMinutes()) * 60 + t.getSeconds()) * 1e3 + t.getMilliseconds();
39
+ return e + r / M;
40
+ }
41
+ function V(t) {
42
+ const n = new Date(Math.floor(t) * M);
43
+ return new Date(n.getUTCFullYear(), n.getUTCMonth(), n.getUTCDate());
44
+ }
45
+ function x(t) {
46
+ const n = new Date(Math.floor(t) * M);
47
+ return { year: n.getUTCFullYear(), month: n.getUTCMonth(), weekday: n.getUTCDay() };
48
+ }
49
+ const g = (t, n) => Date.UTC(t, n, 1) / M;
50
+ function w(t, n, e) {
51
+ const { year: r, month: o, weekday: i } = x(t);
52
+ return n === "days" ? Math.floor(t) : n === "weeks" ? Math.floor(t) - (i - e + 7) % 7 : n === "months" ? g(r, o) : g(r, o - o % 3);
53
+ }
54
+ function T(t, n) {
55
+ if (n === "days") return t + 1;
56
+ if (n === "weeks") return t + 7;
57
+ const { year: e, month: r } = x(t);
58
+ return g(e, r + (n === "months" ? 1 : 3));
59
+ }
60
+ function j(t) {
61
+ return Math.floor(x(t).month / 3) + 1;
62
+ }
63
+ function z(t) {
64
+ return x(t).year;
65
+ }
66
+ function F(t, n) {
67
+ if (n < t) throw new Error("timeline: an item ends before it starts");
68
+ }
69
+ const S = { days: 14, weeks: 2, months: 1, quarters: 1 };
70
+ function J(t, n, e, r, o = []) {
71
+ const i = m(n);
72
+ let u = i, a = i;
73
+ for (const c of o) {
74
+ const f = m(c);
75
+ u = Math.min(u, f), a = Math.max(a, f);
76
+ }
77
+ for (const c of t) {
78
+ const f = m(c.start), d = m(c.end);
79
+ if (F(f, d), u = Math.min(u, f), a = Math.max(a, d), c.plannedEnd) {
80
+ const D = m(c.plannedEnd);
81
+ u = Math.min(u, D), a = Math.max(a, D);
82
+ }
83
+ }
84
+ let s = w(u, e, r), h = T(w(a, e, r), e);
85
+ for (let c = 0; c < S[e]; c++)
86
+ s = w(s - 1, e, r), h = T(h, e);
87
+ return { startDay: s, endDay: h };
88
+ }
89
+ function _(t, n, e) {
90
+ return (t - n) * e;
91
+ }
92
+ function Q(t, n) {
93
+ return _(t.endDay, t.startDay, n);
94
+ }
95
+ function tt(t, n, e) {
96
+ const r = [];
97
+ for (let o = t.startDay; o < t.endDay; ) {
98
+ const i = T(o, n);
99
+ r.push({ startDay: o, endDay: i, x: _(o, t.startDay, e), width: (i - o) * e }), o = i;
100
+ }
101
+ return r;
102
+ }
103
+ function P(t, n, e) {
104
+ return _(m(t), n, e);
105
+ }
106
+ function nt(t, n, e) {
107
+ F(m(t.start), m(t.end));
108
+ const r = P(t.start, n.startDay, e);
109
+ return { left: r, width: P(t.end, n.startDay, e) - r };
110
+ }
111
+ function y(t, n) {
112
+ return new Date(t.getFullYear(), t.getMonth(), t.getDate() + n, t.getHours(), t.getMinutes(), t.getSeconds(), t.getMilliseconds());
113
+ }
114
+ function et(t, n, e) {
115
+ if (!Number.isInteger(e)) throw new Error("timeline: an edit is a whole number of days");
116
+ const r = m(t.end) - m(t.start);
117
+ return n === "move" ? { start: y(t.start, e), end: y(t.end, e) } : n === "end" ? { start: t.start, end: y(t.end, Math.max(e, Math.ceil(-r))) } : { start: y(t.start, Math.min(e, Math.floor(r))), end: t.end };
118
+ }
119
+ function rt(t, n, e) {
120
+ const r = m(t);
121
+ return Math.min(Math.max(n, e.startDay - r), e.endDay - 1 - r);
122
+ }
123
+ function ot(t, n, e) {
124
+ return Math.max(0, t - (n - e) / 2);
125
+ }
126
+ function at(t) {
127
+ if (Number.isNaN(t)) throw new Error("timeline: progress is not a number");
128
+ return Math.min(1, Math.max(0, t));
129
+ }
130
+ function it(t) {
131
+ const n = /* @__PURE__ */ new Set();
132
+ for (const e of t) {
133
+ if (Number.isNaN(e.date.getTime())) throw new Error(`timeline: marker "${e.id}" has an invalid date`);
134
+ if (n.has(e.id)) throw new Error(`timeline: two markers share the id "${e.id}"`);
135
+ n.add(e.id);
136
+ }
137
+ }
138
+ function st(t, n, e) {
139
+ const r = [];
140
+ return t.map((o, i) => ({ ...o, index: i })).sort((o, i) => o.x - i.x || o.index - i.index).map(({ x: o, width: i, index: u }) => {
141
+ const a = Math.min(Math.max(o - i / 2, 0), Math.max(n - i, 0));
142
+ let s = r.findIndex((h) => h + e <= a);
143
+ return s < 0 && (s = r.length), r[s] = a + i, { index: u, left: a, row: s };
144
+ });
145
+ }
146
+ function ct(t, n) {
147
+ return -(t + 1) * n;
148
+ }
149
+ function ut(t, n, e, r) {
150
+ const o = Array.from({ length: n }, () => -1 / 0), i = Array.from({ length: n }), u = [];
151
+ return t.map((a, s) => ({ ...a, index: s })).sort((a, s) => a.x - s.x || a.index - s.index).forEach(({ x: a, width: s, index: h }) => {
152
+ let c = o.findIndex((D) => D + e <= a);
153
+ c === -1 && (c = o.indexOf(Math.min(...o)));
154
+ const f = i[c];
155
+ f && f.x + f.maxWidth + e > a && (f.maxWidth = Math.max(r, a - f.x - e));
156
+ const d = { x: a, maxWidth: s, index: h, lane: c };
157
+ u.push(d), i[c] = d, o[c] = a + s;
158
+ }), u.sort((a, s) => a.index - s.index).map(({ index: a, lane: s, maxWidth: h }) => ({ index: a, lane: s, maxWidth: h }));
159
+ }
160
+ export {
161
+ p as DEFAULT_PX_PER_DAY,
162
+ G as KEY_ZOOM_FACTOR,
163
+ E as MAX_PX_PER_DAY,
164
+ l as MIN_PX_PER_DAY,
165
+ k as ZOOM_SLIDER_MAX,
166
+ y as addDays,
167
+ it as assertMarkers,
168
+ Y as assertPxPerDay,
169
+ nt as barBox,
170
+ rt as clampMarkerDays,
171
+ at as clampProgress,
172
+ A as clampPxPerDay,
173
+ B as dayAtViewportX,
174
+ _ as dayToX,
175
+ et as editSpan,
176
+ V as fromDayNumber,
177
+ P as instantToX,
178
+ ut as layoutMarkerFlags,
179
+ st as layoutMarkerTags,
180
+ ct as markerTagTop,
181
+ T as nextUnitStart,
182
+ Z as pxPerDayToSlider,
183
+ j as quarterOf,
184
+ v as scalePxPerDay,
185
+ K as scrollLeftForAnchor,
186
+ ot as scrollLeftToCenter,
187
+ $ as sliderToPxPerDay,
188
+ H as tickUnitFor,
189
+ J as timelineRange,
190
+ m as toDayNumber,
191
+ Q as trackWidth,
192
+ w as unitStart,
193
+ tt as unitTicks,
194
+ q as wheelZoomFactor,
195
+ z as yearOf
196
+ };
197
+ //# sourceMappingURL=scale.js.map