@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 @@
1
+ {"version":3,"file":"ColorPicker.js","sources":["../../src/components/ColorPicker.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type KeyboardEvent, type PointerEvent } from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { hexToHsv, hsvToHex, isHexColor, type Hsv } from \"../lib/color\";\nimport { useUiStrings } from \"../lib/i18n\";\nimport { Button } from \"./Button\";\nimport { Field } from \"./Field\";\nimport { Input } from \"./Input\";\nimport { Popover } from \"./Popover\";\n\n/* ============================================================================\n COLOR PICKER — a swatch button that opens a full picker (DXUI-28).\n\n For any stored colour value: a saturation/brightness area, a hue slider, a hex\n field and, optionally, a row of preset swatches. The value is `#rrggbb` at the\n boundary; inside it is HSV, because that is what the two surfaces are. The HSV is\n kept as state (not re-derived from the hex on every move) so dragging brightness to\n 0 or saturation to 0 does not snap the hue to red: a grey has no hue in hex.\n\n `onChange` is a COMMIT, not a stream: it fires when a pointer drag is released, on\n each arrow-key step, on a preset, and on Enter in the hex field. While dragging, the\n preview (the area handle, the swatch on the trigger) follows the pointer without it.\n ========================================================================= */\n\nexport interface ColorPickerProps {\n /** The colour, `#rrggbb`. Anything else throws: a stored colour that is not a hex is a caller bug. */\n value: string;\n /** Told the committed colour, lowercase `#rrggbb`. Never told an unchanged colour. */\n onChange: (hex: string) => void;\n /** Swatches shown above the custom area; the one equal to `value` is marked. */\n presets?: string[];\n /** The accessible name of the picker and of its popover. Unset, the trigger is named by its colour. */\n label?: string;\n disabled?: boolean;\n size?: \"sm\" | \"md\" | \"lg\";\n className?: string;\n}\n\nconst SMALL_STEP = 0.01;\nconst LARGE_STEP = 0.1;\nconst HUE_SMALL = 1;\nconst HUE_LARGE = 10;\n\nconst clamp = (n: number, lo: number, hi: number) => Math.min(hi, Math.max(lo, n));\n\n/* The rainbow a hue slider paints: the six primaries and back to red. Data, not chrome: no theme token is a hue ramp. */\nconst HUE_RAMP = \"linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)\";\n\ninterface SurfaceDrag {\n onPointerDown: (e: PointerEvent<HTMLDivElement>) => void;\n onPointerMove: (e: PointerEvent<HTMLDivElement>) => void;\n onPointerUp: (e: PointerEvent<HTMLDivElement>) => void;\n onPointerCancel: (e: PointerEvent<HTMLDivElement>) => void;\n}\n\n/** Pointer-capture drag over a rectangle: the position as `0..1` fractions, and a release. */\nfunction useSurfaceDrag(onPoint: (fx: number, fy: number) => void, onRelease: () => void): SurfaceDrag {\n const dragging = useRef(false);\n const point = (e: PointerEvent<HTMLDivElement>) => {\n const rect = e.currentTarget.getBoundingClientRect();\n if (rect.width === 0 || rect.height === 0) return;\n onPoint(clamp((e.clientX - rect.left) / rect.width, 0, 1), clamp((e.clientY - rect.top) / rect.height, 0, 1));\n };\n const end = (e: PointerEvent<HTMLDivElement>) => {\n if (!dragging.current) return;\n dragging.current = false;\n if (e.currentTarget.hasPointerCapture?.(e.pointerId)) e.currentTarget.releasePointerCapture(e.pointerId);\n onRelease();\n };\n return {\n onPointerDown: (e) => {\n if (e.button !== 0) return;\n dragging.current = true;\n e.currentTarget.setPointerCapture?.(e.pointerId);\n e.currentTarget.focus();\n point(e);\n },\n onPointerMove: (e) => {\n if (dragging.current) point(e);\n },\n onPointerUp: end,\n onPointerCancel: end,\n };\n}\n\n/* The swatch inside the trigger, sized from the control height (a percentage has no definite box to resolve against). */\nconst SWATCH = { sm: \"size-3.5\", md: \"size-4.5\", lg: \"size-5.5\" } as const;\n\nconst HANDLE = [\n \"absolute size-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-control-knob shadow-knob pointer-events-none\",\n \"group-focus-visible/surface:shadow-[0_0_0_3px_var(--control-focus-halo)]\",\n];\n\nconst SURFACE = \"group/surface relative touch-none select-none outline-none rounded-md border border-border\";\n\ninterface PanelProps {\n hsv: Hsv;\n value: string;\n presets: string[] | undefined;\n onPreview: (next: Hsv) => void;\n onCommit: (next: Hsv) => void;\n onRelease: () => void;\n}\n\nfunction ColorPanel({ hsv, value, presets, onPreview, onCommit, onRelease }: PanelProps) {\n const strings = useUiStrings().colorPicker;\n const shown = hsvToHex(hsv);\n const [draft, setDraft] = useState(shown);\n const [hexError, setHexError] = useState(false);\n /* The field follows the colour as it moves or a preset lands; typing detaches it until the colour next changes. */\n const [lastShown, setLastShown] = useState(shown);\n if (shown !== lastShown) {\n setLastShown(shown);\n setDraft(shown);\n setHexError(false);\n }\n\n const areaDrag = useSurfaceDrag((fx, fy) => onPreview({ ...hsv, s: fx, v: 1 - fy }), onRelease);\n const hueDrag = useSurfaceDrag((fx) => onPreview({ ...hsv, h: fx * 360 }), onRelease);\n\n const onAreaKey = (e: KeyboardEvent<HTMLDivElement>) => {\n const step = e.shiftKey ? LARGE_STEP : SMALL_STEP;\n const next =\n e.key === \"ArrowLeft\" ? { ...hsv, s: clamp(hsv.s - step, 0, 1) }\n : e.key === \"ArrowRight\" ? { ...hsv, s: clamp(hsv.s + step, 0, 1) }\n : e.key === \"ArrowUp\" ? { ...hsv, v: clamp(hsv.v + step, 0, 1) }\n : e.key === \"ArrowDown\" ? { ...hsv, v: clamp(hsv.v - step, 0, 1) }\n : null;\n if (!next) return;\n e.preventDefault();\n onCommit(next);\n };\n\n const onHueKey = (e: KeyboardEvent<HTMLDivElement>) => {\n const step = e.shiftKey ? HUE_LARGE : HUE_SMALL;\n const next =\n e.key === \"ArrowLeft\" || e.key === \"ArrowDown\" ? { ...hsv, h: clamp(hsv.h - step, 0, 360) }\n : e.key === \"ArrowRight\" || e.key === \"ArrowUp\" ? { ...hsv, h: clamp(hsv.h + step, 0, 360) }\n : null;\n if (!next) return;\n e.preventDefault();\n onCommit(next);\n };\n\n const onHexKey = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key !== \"Enter\") return;\n e.preventDefault();\n if (!isHexColor(draft)) {\n setHexError(true);\n return;\n }\n setHexError(false);\n onCommit(hexToHsv(draft));\n };\n\n const hueNow = Math.round(hsv.h);\n const satNow = Math.round(hsv.s * 100);\n const briNow = Math.round(hsv.v * 100);\n const pureHue = hsvToHex({ h: hsv.h, s: 1, v: 1 });\n\n return (\n <div className=\"flex w-64 max-w-full flex-col gap-3\">\n {presets && presets.length > 0 && (\n <div role=\"group\" aria-label={strings.presets} className=\"flex flex-wrap gap-2\">\n {presets.map((preset) => {\n const selected = preset.toLowerCase() === value.toLowerCase();\n return (\n <Button\n key={preset}\n variant=\"outline\"\n iconOnly\n size=\"xs\"\n aria-label={strings.colour(preset)}\n aria-pressed={selected}\n onClick={() => onCommit(hexToHsv(preset))}\n className={cn(selected && \"border-control shadow-[0_0_0_2px_var(--control-focus-halo)]\")}\n >\n <span aria-hidden className=\"size-3 rounded-full border border-border\" style={{ backgroundColor: preset }} />\n </Button>\n );\n })}\n </div>\n )}\n\n <div\n role=\"slider\"\n tabIndex={0}\n aria-label={strings.area}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={satNow}\n aria-valuetext={strings.areaValue(satNow, briNow)}\n onKeyDown={onAreaKey}\n {...areaDrag}\n className={cn(SURFACE, \"h-36 cursor-crosshair\")}\n style={{\n backgroundColor: pureHue,\n backgroundImage: \"linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,transparent)\",\n }}\n >\n <span className={cn(HANDLE)} style={{ left: `${hsv.s * 100}%`, top: `${(1 - hsv.v) * 100}%`, backgroundColor: shown }} />\n </div>\n\n <div\n role=\"slider\"\n tabIndex={0}\n aria-label={strings.hue}\n aria-valuemin={0}\n aria-valuemax={360}\n aria-valuenow={hueNow}\n aria-valuetext={strings.hueValue(hueNow)}\n onKeyDown={onHueKey}\n {...hueDrag}\n className={cn(SURFACE, \"h-4 cursor-ew-resize\")}\n style={{ backgroundImage: HUE_RAMP }}\n >\n <span className={cn(HANDLE, \"top-1/2\")} style={{ left: `${(hsv.h / 360) * 100}%`, backgroundColor: pureHue }} />\n </div>\n\n <Field label={strings.hexField} error={hexError ? strings.invalidHex : undefined}>\n <Input\n size=\"sm\"\n value={draft}\n spellCheck={false}\n autoComplete=\"off\"\n onChange={(e) => {\n setDraft(e.target.value);\n setHexError(false);\n }}\n onKeyDown={onHexKey}\n />\n </Field>\n </div>\n );\n}\n\nexport function ColorPicker({ value, onChange, presets, label, disabled = false, size = \"md\", className }: ColorPickerProps) {\n const strings = useUiStrings().colorPicker;\n const [hsv, setHsv] = useState(() => hexToHsv(value));\n const hsvRef = useRef(hsv);\n useEffect(() => {\n hsvRef.current = hsv;\n });\n\n const preview = (next: Hsv) => {\n hsvRef.current = next;\n setHsv(next);\n };\n\n /* A new `value` from outside (a revert, another control) replaces the working colour; one that is the colour\n already being shown keeps its hue, which a hex cannot carry for a grey. */\n const [seen, setSeen] = useState(value);\n if (value !== seen) {\n setSeen(value);\n if (hsvToHex(hsv) !== value.toLowerCase()) preview(hexToHsv(value));\n }\n\n const commit = (next: Hsv) => {\n preview(next);\n const hex = hsvToHex(next);\n if (hex !== value.toLowerCase()) onChange(hex);\n };\n\n const shown = hsvToHex(hsv);\n const named = strings.colour(shown);\n\n return (\n <Popover\n align=\"start\"\n aria-label={label}\n className={className}\n onOpenChange={(open) => {\n /* Closed without a commit (Escape mid-drag): the preview goes back to the stored colour. */\n if (!open && hsvToHex(hsvRef.current) !== value.toLowerCase()) preview(hexToHsv(value));\n }}\n trigger={\n <Button\n variant=\"outline\"\n iconOnly\n size={size}\n className=\"self-start\"\n disabled={disabled}\n aria-label={label ?? named}\n aria-description={label ? named : undefined}\n >\n <span aria-hidden className={cn(SWATCH[size], \"rounded-sm border border-border\")} style={{ backgroundColor: shown }} />\n </Button>\n }\n >\n <ColorPanel\n hsv={hsv}\n value={value}\n presets={presets}\n onPreview={preview}\n onCommit={commit}\n onRelease={() => commit(hsvRef.current)}\n />\n </Popover>\n );\n}\n"],"names":["SMALL_STEP","LARGE_STEP","HUE_SMALL","HUE_LARGE","clamp","n","lo","hi","HUE_RAMP","useSurfaceDrag","onPoint","onRelease","dragging","useRef","point","e","rect","end","SWATCH","HANDLE","SURFACE","ColorPanel","hsv","value","presets","onPreview","onCommit","strings","useUiStrings","shown","hsvToHex","draft","setDraft","useState","hexError","setHexError","lastShown","setLastShown","areaDrag","fx","fy","hueDrag","onAreaKey","step","next","onHueKey","onHexKey","isHexColor","hexToHsv","hueNow","satNow","briNow","pureHue","jsxs","jsx","preset","selected","Button","cn","Field","Input","ColorPicker","onChange","label","disabled","size","className","setHsv","hsvRef","useEffect","preview","seen","setSeen","commit","hex","named","Popover","open"],"mappings":"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"}
@@ -0,0 +1,212 @@
1
+ import { jsxs as s, jsx as t } from "react/jsx-runtime";
2
+ import { useRef as I, useState as S } from "react";
3
+ import { Combobox as e } from "@base-ui/react/combobox";
4
+ import { cn as d } from "../lib/cn.js";
5
+ import { useRelabelBaseUiDismiss as v } from "../lib/use-relabel-base-ui-dismiss.js";
6
+ import { Icon as h } from "./Icon.js";
7
+ import { Spinner as _ } from "./Spinner.js";
8
+ import { ANCHORED_POPUP_SURFACE as E, ANCHORED_POPUP_MOTION as U } from "./overlay-shell.js";
9
+ import { useUiStrings as N } from "../lib/i18n/provider.js";
10
+ const C = [
11
+ "max-h-[min(22rem,var(--available-height))] w-[var(--anchor-width)] overflow-y-auto",
12
+ E,
13
+ "p-1",
14
+ ...U
15
+ ], w = "px-3 py-6 text-center text-sm text-tertiary empty:hidden", P = [
16
+ "flex w-full min-w-0 items-center gap-2 rounded-md",
17
+ "border border-field-border bg-field px-3",
18
+ "transition-[var(--tx-colors),box-shadow] duration-(--dur-fast) ease-hover",
19
+ "hover:not-has-disabled:border-field-border-hover",
20
+ "has-focus:border-control has-focus:shadow-[0_0_0_3px_var(--control-focus-halo)]",
21
+ "has-data-invalid:border-danger",
22
+ "has-disabled:opacity-45"
23
+ ];
24
+ function O(r) {
25
+ const o = I(null), [n, i] = S(null);
26
+ return {
27
+ anchorRef: o,
28
+ handleOpenChange: ((...c) => {
29
+ const [m] = c;
30
+ i(m ? o.current?.getBoundingClientRect().width ?? null : null), r?.(...c);
31
+ }),
32
+ /* Undefined until the first measurement, so the popup's own
33
+ `w-[var(--anchor-width)]` still sizes the very first paint. */
34
+ popupStyle: n === null ? void 0 : { width: `${n}px` }
35
+ };
36
+ }
37
+ function B({
38
+ placeholder: r,
39
+ emptyMessage: o,
40
+ className: n,
41
+ children: i,
42
+ ref: u,
43
+ "aria-label": c,
44
+ onOpenChange: m,
45
+ loading: l = !1,
46
+ ...x
47
+ }) {
48
+ const a = N().combobox, { anchorRef: p, handleOpenChange: f, popupStyle: b } = O(m), g = v(a.dismiss, p);
49
+ return /* @__PURE__ */ s(
50
+ e.Root,
51
+ {
52
+ ...x,
53
+ disabled: x.disabled || l,
54
+ onOpenChange: f,
55
+ children: [
56
+ /* @__PURE__ */ s(
57
+ "div",
58
+ {
59
+ ref: p,
60
+ "data-loading": l || void 0,
61
+ "aria-busy": l || void 0,
62
+ className: d(P, "h-control-md", l && "cursor-wait has-disabled:opacity-100", n),
63
+ children: [
64
+ /* @__PURE__ */ t(h, { name: "search", size: "sm", className: "shrink-0 text-tertiary" }),
65
+ /* @__PURE__ */ t(
66
+ e.Input,
67
+ {
68
+ ref: u,
69
+ "aria-label": c,
70
+ placeholder: r ?? a.placeholder,
71
+ className: "w-full min-w-0 bg-transparent text-sm text-primary outline-none placeholder:text-field-placeholder"
72
+ }
73
+ ),
74
+ /* @__PURE__ */ t(
75
+ e.Clear,
76
+ {
77
+ className: "shrink-0 rounded-sm text-tertiary transition-colors duration-(--dur-fast) hover:text-primary",
78
+ "aria-label": a.clear,
79
+ children: /* @__PURE__ */ t(h, { name: "x", size: "sm" })
80
+ }
81
+ ),
82
+ /* @__PURE__ */ t(
83
+ e.Trigger,
84
+ {
85
+ className: "shrink-0 text-tertiary transition-colors duration-(--dur-fast) hover:text-primary",
86
+ "aria-label": a.open,
87
+ children: /* @__PURE__ */ t(e.Icon, { children: l ? /* @__PURE__ */ t(_, { size: "sm" }) : /* @__PURE__ */ t(
88
+ h,
89
+ {
90
+ name: "chevron-down",
91
+ size: "sm",
92
+ className: "transition-[var(--tx-colors),transform,translate,scale,rotate] duration-(--dur-base) ease-snappy in-data-popup-open:rotate-180"
93
+ }
94
+ ) })
95
+ }
96
+ )
97
+ ]
98
+ }
99
+ ),
100
+ /* @__PURE__ */ t(e.Portal, { children: /* @__PURE__ */ t(e.Positioner, { ref: g, sideOffset: 6, className: "z-(--z-popover) outline-none", children: /* @__PURE__ */ s(e.Popup, { className: d(C), style: b, children: [
101
+ /* @__PURE__ */ t(e.Empty, { className: w, children: o ?? a.noMatch }),
102
+ /* @__PURE__ */ t(e.List, { children: i })
103
+ ] }) }) })
104
+ ]
105
+ }
106
+ );
107
+ }
108
+ function H({ className: r, children: o, ref: n, ...i }) {
109
+ return /* @__PURE__ */ s(
110
+ e.Item,
111
+ {
112
+ ref: n,
113
+ className: d(
114
+ "dx-tap relative flex cursor-pointer select-none items-center gap-2 rounded-md py-2 pr-2 pl-8",
115
+ "text-sm text-secondary outline-none",
116
+ "transition-[var(--tx-colors)] duration-(--dur-instant)",
117
+ "data-highlighted:bg-surface-hover data-highlighted:text-primary",
118
+ /* See SelectItem: the chosen option needs a fill of its own, and
119
+ selected-and-highlighted needs a third value stacked above both —
120
+ without it, hovering a chosen option repaints it as unchosen. */
121
+ "data-selected:bg-control-subtle data-selected:font-medium data-selected:text-control-text",
122
+ "data-selected:data-highlighted:bg-control-subtle-hover",
123
+ r
124
+ ),
125
+ ...i,
126
+ children: [
127
+ /* @__PURE__ */ t(e.ItemIndicator, { className: "absolute left-2 grid place-items-center", children: /* @__PURE__ */ t(h, { name: "check", size: "sm", className: "animate-scale-in text-control-text" }) }),
128
+ o
129
+ ]
130
+ }
131
+ );
132
+ }
133
+ function W({ label: r, children: o }) {
134
+ return /* @__PURE__ */ s(e.Group, { children: [
135
+ r && /* @__PURE__ */ t(e.GroupLabel, { className: "px-2 py-1.5 text-2xs font-semibold tracking-wide text-tertiary uppercase", children: r }),
136
+ o
137
+ ] });
138
+ }
139
+ function $({
140
+ placeholder: r,
141
+ emptyMessage: o,
142
+ renderChip: n,
143
+ className: i,
144
+ children: u,
145
+ ref: c,
146
+ "aria-label": m,
147
+ onOpenChange: l,
148
+ ...x
149
+ }) {
150
+ const a = N().combobox, { anchorRef: p, handleOpenChange: f, popupStyle: b } = O(l), g = v(a.dismiss, p);
151
+ return /* @__PURE__ */ s(
152
+ e.Root,
153
+ {
154
+ multiple: !0,
155
+ ...x,
156
+ onOpenChange: f,
157
+ children: [
158
+ /* @__PURE__ */ s(
159
+ e.Chips,
160
+ {
161
+ ref: p,
162
+ className: d(P, "min-h-control-md flex-wrap gap-1.5 py-1.5", i),
163
+ children: [
164
+ /* @__PURE__ */ t(e.Value, { children: (R) => R.map((y, z) => /* @__PURE__ */ s(
165
+ e.Chip,
166
+ {
167
+ className: d(
168
+ "flex items-center gap-1.5 rounded-md bg-control-subtle py-1 pr-1 pl-2",
169
+ "text-xs font-medium text-control-text",
170
+ "animate-scale-in"
171
+ ),
172
+ children: [
173
+ n ? n(y) : String(y),
174
+ /* @__PURE__ */ t(
175
+ e.ChipRemove,
176
+ {
177
+ className: "rounded-sm text-control-text/70 transition-colors duration-(--dur-fast) hover:text-control-text",
178
+ "aria-label": a.remove,
179
+ children: /* @__PURE__ */ t(h, { name: "x", size: "xs" })
180
+ }
181
+ )
182
+ ]
183
+ },
184
+ z
185
+ )) }),
186
+ /* @__PURE__ */ t(
187
+ e.Input,
188
+ {
189
+ ref: c,
190
+ "aria-label": m,
191
+ placeholder: r ?? a.placeholder,
192
+ className: "min-w-24 flex-1 bg-transparent text-sm text-primary outline-none placeholder:text-field-placeholder"
193
+ }
194
+ )
195
+ ]
196
+ }
197
+ ),
198
+ /* @__PURE__ */ t(e.Portal, { children: /* @__PURE__ */ t(e.Positioner, { ref: g, sideOffset: 6, className: "z-(--z-popover) outline-none", children: /* @__PURE__ */ s(e.Popup, { className: d(C), style: b, children: [
199
+ /* @__PURE__ */ t(e.Empty, { className: w, children: o ?? a.noMatch }),
200
+ /* @__PURE__ */ t(e.List, { children: u })
201
+ ] }) }) })
202
+ ]
203
+ }
204
+ );
205
+ }
206
+ export {
207
+ B as Combobox,
208
+ W as ComboboxGroup,
209
+ H as ComboboxItem,
210
+ $ as MultiCombobox
211
+ };
212
+ //# sourceMappingURL=Combobox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Combobox.js","sources":["../../src/components/Combobox.tsx"],"sourcesContent":["import { useRef, useState, type ReactNode, type Ref } from \"react\";\nimport { Combobox as BaseCombobox } from \"@base-ui/react/combobox\";\nimport { cn } from \"../lib/cn\";\nimport { useUiStrings } from \"../lib/i18n\";\nimport { useRelabelBaseUiDismiss } from \"../lib/use-relabel-base-ui-dismiss\";\nimport { Icon } from \"./Icon\";\nimport { Spinner } from \"./Spinner\";\nimport { ANCHORED_POPUP_MOTION, ANCHORED_POPUP_SURFACE } from \"./overlay-shell\";\n\n/* ============================================================================\n COMBOBOX — a select you can type into, and the hardest control in the set.\n\n WHY IT IS HARD, and what this component is actually solving:\n\n - The input is both a FILTER and a VALUE. Typing has to narrow the list\n without committing anything, but blurring must not leave a half-typed\n string looking like a selection.\n - The list has to stay reachable by keyboard while focus never leaves the\n input, which means the highlight is not focus, and every arrow key has\n to be handled rather than inherited.\n - Multiple selection turns the input into a chip container, and backspace\n in an empty input must remove the LAST chip rather than doing nothing.\n\n Base UI owns all of that. What is here is the part that is ours: how it\n looks, what the empty state says, and where the motion comes from.\n\n THE EMPTY STATE IS NOT AN AFTERTHOUGHT. \"No results\" is the message people\n see most often in a combobox they are struggling with, and it is the only\n moment the control can offer them something useful.\n ========================================================================= */\n\nconst POPUP = [\n \"max-h-[min(22rem,var(--available-height))] w-[var(--anchor-width)] overflow-y-auto\",\n ANCHORED_POPUP_SURFACE,\n \"p-1\",\n ...ANCHORED_POPUP_MOTION,\n];\n\n/* DX-4265: Base UI's `Empty` is ALWAYS in the DOM — an aria-live status node\n that holds the message only while nothing matches. Its padding made it a\n 46px empty band above the option list whenever something DID match.\n `empty:hidden` drops the box while it has no text and brings it back with\n the message. */\nconst EMPTY = \"px-3 py-6 text-center text-sm text-tertiary empty:hidden\";\n\nconst FIELD = [\n \"flex w-full min-w-0 items-center gap-2 rounded-md\",\n \"border border-field-border bg-field px-3\",\n \"transition-[var(--tx-colors),box-shadow] duration-(--dur-fast) ease-hover\",\n \"hover:not-has-disabled:border-field-border-hover\",\n \"has-focus:border-control has-focus:shadow-[0_0_0_3px_var(--control-focus-halo)]\",\n \"has-data-invalid:border-danger\",\n \"has-disabled:opacity-45\",\n];\n\ntype OpenChange = NonNullable<BaseCombobox.Root.Props<unknown, boolean>[\"onOpenChange\"]>;\n\n/* ============================================================================\n AN OPEN POPUP'S WIDTH IS A SNAPSHOT, NOT A LIVE MEASUREMENT.\n\n THE BUG THIS EXISTS FOR. `--anchor-width` is republished by the positioner\n every time the anchor's box changes, and the multi-select's anchor is a\n chip container that reflows as it fills. Measured on the Labels field at\n 1440px: the popup opened at 372px, then went 437 → 514 → 448 as three chips\n were added — it does not merely shrink, it JUMPS in both directions as the\n chips rewrap. The list you are choosing FROM resizes under the pointer while\n you choose, so the option you were about to click is no longer there.\n\n So the width is taken ONCE, on the way open, and held as an inline width for\n as long as the popup stays open; closing clears it and the next open\n measures again. Nothing about the trigger's own reflow reaches the surface\n floating above it.\n\n Why not simply anchor to the outer chip box, whose width is set by the grid?\n Because that fixes this instance and not the rule. Any anchor can be made to\n reflow — a trigger that grows a badge, a label that wraps at a narrow\n width — and the requirement is about the popup, not about one anchor.\n\n `Select` and `Menu` share `--anchor-width` but use it as `min-w`, so a\n reflowing anchor there could only ever widen the popup, never move an option\n out from under the pointer. Their anchors were measured too and hold steady.\n ========================================================================= */\nfunction useFrozenPopupWidth(onOpenChange?: OpenChange) {\n const anchorRef = useRef<HTMLDivElement>(null);\n const [width, setWidth] = useState<number | null>(null);\n\n const handleOpenChange = ((...args: Parameters<OpenChange>) => {\n const [open] = args;\n setWidth(open ? (anchorRef.current?.getBoundingClientRect().width ?? null) : null);\n onOpenChange?.(...args);\n }) as OpenChange;\n\n return {\n anchorRef,\n handleOpenChange,\n /* Undefined until the first measurement, so the popup's own\n `w-[var(--anchor-width)]` still sizes the very first paint. */\n popupStyle: width === null ? undefined : { width: `${width}px` },\n };\n}\n\nexport interface ComboboxProps<Value> extends Omit<BaseCombobox.Root.Props<Value, boolean>, \"children\"> {\n /** Omitted, the provider's `combobox.placeholder`. */\n placeholder?: string;\n /** Shown when the filter matches nothing. Omitted, the provider's `combobox.noMatch`. */\n emptyMessage?: ReactNode;\n /** Accessible name, when there is no visible label. */\n \"aria-label\"?: string;\n className?: string;\n children: ReactNode;\n /**\n * DX-6426 - the choice this combobox sends is out and unanswered: the chevron becomes a spinner and the field refuses input (no second request)\n * until it is answered. Pass it from the pending state of the write; the value stays the saved one until the answer repaints.\n */\n loading?: boolean;\n ref?: Ref<HTMLInputElement>;\n}\n\nexport function Combobox<Value>({\n placeholder,\n emptyMessage,\n className,\n children,\n ref,\n \"aria-label\": ariaLabel,\n onOpenChange,\n loading = false,\n ...props\n}: ComboboxProps<Value>) {\n const strings = useUiStrings().combobox;\n const { anchorRef, handleOpenChange, popupStyle } = useFrozenPopupWidth(onOpenChange);\n const positionerRef = useRelabelBaseUiDismiss(strings.dismiss, anchorRef);\n\n return (\n <BaseCombobox.Root\n {...(props as BaseCombobox.Root.Props<Value, boolean>)}\n disabled={props.disabled || loading}\n onOpenChange={handleOpenChange}\n >\n <div\n ref={anchorRef}\n data-loading={loading || undefined}\n aria-busy={loading || undefined}\n className={cn(FIELD, \"h-control-md\", loading && \"cursor-wait has-disabled:opacity-100\", className)}\n >\n <Icon name=\"search\" size=\"sm\" className=\"shrink-0 text-tertiary\" />\n <BaseCombobox.Input\n ref={ref}\n aria-label={ariaLabel}\n placeholder={placeholder ?? strings.placeholder}\n className=\"w-full min-w-0 bg-transparent text-sm text-primary outline-none placeholder:text-field-placeholder\"\n />\n {/* Clear only appears once there is something to clear — a permanently\n visible clear button is a permanently visible dead control. */}\n <BaseCombobox.Clear\n className=\"shrink-0 rounded-sm text-tertiary transition-colors duration-(--dur-fast) hover:text-primary\"\n aria-label={strings.clear}\n >\n <Icon name=\"x\" size=\"sm\" />\n </BaseCombobox.Clear>\n <BaseCombobox.Trigger\n className=\"shrink-0 text-tertiary transition-colors duration-(--dur-fast) hover:text-primary\"\n aria-label={strings.open}\n >\n <BaseCombobox.Icon>\n {loading ? (\n <Spinner size=\"sm\" />\n ) : (\n <Icon\n name=\"chevron-down\"\n size=\"sm\"\n className=\"transition-[var(--tx-colors),transform,translate,scale,rotate] duration-(--dur-base) ease-snappy in-data-popup-open:rotate-180\"\n />\n )}\n </BaseCombobox.Icon>\n </BaseCombobox.Trigger>\n </div>\n\n <BaseCombobox.Portal>\n <BaseCombobox.Positioner ref={positionerRef} sideOffset={6} className=\"z-(--z-popover) outline-none\">\n <BaseCombobox.Popup className={cn(POPUP)} style={popupStyle}>\n <BaseCombobox.Empty className={EMPTY}>\n {emptyMessage ?? strings.noMatch}\n </BaseCombobox.Empty>\n <BaseCombobox.List>{children}</BaseCombobox.List>\n </BaseCombobox.Popup>\n </BaseCombobox.Positioner>\n </BaseCombobox.Portal>\n </BaseCombobox.Root>\n );\n}\n\nexport interface ComboboxItemProps extends Omit<BaseCombobox.Item.Props, \"className\"> {\n className?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport function ComboboxItem({ className, children, ref, ...props }: ComboboxItemProps) {\n return (\n <BaseCombobox.Item\n ref={ref}\n className={cn(\n \"dx-tap relative flex cursor-pointer select-none items-center gap-2 rounded-md py-2 pr-2 pl-8\",\n \"text-sm text-secondary outline-none\",\n \"transition-[var(--tx-colors)] duration-(--dur-instant)\",\n \"data-highlighted:bg-surface-hover data-highlighted:text-primary\",\n /* See SelectItem: the chosen option needs a fill of its own, and\n selected-and-highlighted needs a third value stacked above both —\n without it, hovering a chosen option repaints it as unchosen. */\n \"data-selected:bg-control-subtle data-selected:font-medium data-selected:text-control-text\",\n \"data-selected:data-highlighted:bg-control-subtle-hover\",\n className,\n )}\n {...props}\n >\n <BaseCombobox.ItemIndicator className=\"absolute left-2 grid place-items-center\">\n <Icon name=\"check\" size=\"sm\" className=\"animate-scale-in text-control-text\" />\n </BaseCombobox.ItemIndicator>\n {children}\n </BaseCombobox.Item>\n );\n}\n\nexport interface ComboboxGroupProps {\n /** Prop, not a child component, so a label cannot be placed outside a group. */\n label?: ReactNode;\n children: ReactNode;\n}\n\nexport function ComboboxGroup({ label, children }: ComboboxGroupProps) {\n return (\n <BaseCombobox.Group>\n {label && (\n <BaseCombobox.GroupLabel className=\"px-2 py-1.5 text-2xs font-semibold tracking-wide text-tertiary uppercase\">\n {label}\n </BaseCombobox.GroupLabel>\n )}\n {children}\n </BaseCombobox.Group>\n );\n}\n\nexport interface MultiComboboxProps<Value> extends ComboboxProps<Value> {\n /** How each selected value should read on its chip. */\n renderChip?: (value: Value) => ReactNode;\n}\n\n/**\n * Multi-select, where the input becomes a chip container.\n *\n * Chips sit INSIDE the field rather than under it. Below the field they push\n * every following control down as selections accumulate, so a form visibly\n * reflows while someone is still choosing — and the chips stop looking like\n * part of the input they belong to.\n */\nexport function MultiCombobox<Value>({\n placeholder,\n emptyMessage,\n renderChip,\n className,\n children,\n ref,\n \"aria-label\": ariaLabel,\n onOpenChange,\n ...props\n}: MultiComboboxProps<Value>) {\n const strings = useUiStrings().combobox;\n const { anchorRef, handleOpenChange, popupStyle } = useFrozenPopupWidth(onOpenChange);\n const positionerRef = useRelabelBaseUiDismiss(strings.dismiss, anchorRef);\n\n return (\n <BaseCombobox.Root\n multiple\n {...(props as BaseCombobox.Root.Props<Value, true>)}\n onOpenChange={handleOpenChange}\n >\n <BaseCombobox.Chips\n ref={anchorRef}\n className={cn(FIELD, \"min-h-control-md flex-wrap gap-1.5 py-1.5\", className)}\n >\n <BaseCombobox.Value>\n {(values: Value[]) =>\n values.map((value, i) => (\n <BaseCombobox.Chip\n key={i}\n className={cn(\n \"flex items-center gap-1.5 rounded-md bg-control-subtle py-1 pr-1 pl-2\",\n \"text-xs font-medium text-control-text\",\n \"animate-scale-in\",\n )}\n >\n {renderChip ? renderChip(value) : String(value)}\n <BaseCombobox.ChipRemove\n className=\"rounded-sm text-control-text/70 transition-colors duration-(--dur-fast) hover:text-control-text\"\n aria-label={strings.remove}\n >\n <Icon name=\"x\" size=\"xs\" />\n </BaseCombobox.ChipRemove>\n </BaseCombobox.Chip>\n ))\n }\n </BaseCombobox.Value>\n <BaseCombobox.Input\n ref={ref}\n aria-label={ariaLabel}\n placeholder={placeholder ?? strings.placeholder}\n className=\"min-w-24 flex-1 bg-transparent text-sm text-primary outline-none placeholder:text-field-placeholder\"\n />\n </BaseCombobox.Chips>\n\n <BaseCombobox.Portal>\n <BaseCombobox.Positioner ref={positionerRef} sideOffset={6} className=\"z-(--z-popover) outline-none\">\n <BaseCombobox.Popup className={cn(POPUP)} style={popupStyle}>\n <BaseCombobox.Empty className={EMPTY}>\n {emptyMessage ?? strings.noMatch}\n </BaseCombobox.Empty>\n <BaseCombobox.List>{children}</BaseCombobox.List>\n </BaseCombobox.Popup>\n </BaseCombobox.Positioner>\n </BaseCombobox.Portal>\n </BaseCombobox.Root>\n );\n}\n"],"names":["POPUP","ANCHORED_POPUP_SURFACE","ANCHORED_POPUP_MOTION","EMPTY","FIELD","useFrozenPopupWidth","onOpenChange","anchorRef","useRef","width","setWidth","useState","args","open","Combobox","placeholder","emptyMessage","className","children","ref","ariaLabel","loading","props","strings","useUiStrings","handleOpenChange","popupStyle","positionerRef","useRelabelBaseUiDismiss","jsxs","BaseCombobox","cn","jsx","Icon","Spinner","ComboboxItem","ComboboxGroup","label","MultiCombobox","renderChip","values","value","i"],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ import { jsx as a, jsxs as i } from "react/jsx-runtime";
2
+ import { useState as w, useMemo as k, useEffect as N } from "react";
3
+ import { Dialog as h } from "@base-ui/react/dialog";
4
+ import { cn as v } from "../lib/cn.js";
5
+ import { Icon as P } from "./Icon.js";
6
+ import { overlayBackdropClassName as D, OVERLAY_POPUP_MOTION as E, OVERLAY_POPUP_SURFACE as S } from "./overlay-shell.js";
7
+ import { useUiStrings as O } from "../lib/i18n/provider.js";
8
+ import { useNumberFormat as U } from "../lib/i18n/number-format.js";
9
+ function M(d, p) {
10
+ if (!d) return 0;
11
+ const c = d.toLowerCase(), m = p.toLowerCase();
12
+ let o = 0, s = 0, f = 0;
13
+ for (let n = 0; n < m.length && o < c.length; n++) {
14
+ if (m[n] !== c[o]) {
15
+ f = 0;
16
+ continue;
17
+ }
18
+ const b = n === 0 || /[\s\-_/.]/.test(m[n - 1]);
19
+ s += b ? 12 : 3, s += f * 4, f++, o++;
20
+ }
21
+ return o < c.length ? -1 : s - m.length * 0.05;
22
+ }
23
+ function I({
24
+ items: d,
25
+ open: p,
26
+ onOpenChange: c,
27
+ placeholder: m,
28
+ emptyMessage: o
29
+ }) {
30
+ const s = O().commandPalette, f = U(), [n, b] = w(""), [u, x] = w(0), l = k(() => {
31
+ const e = d.map((t) => ({
32
+ item: t,
33
+ score: Math.max(
34
+ M(n, t.label),
35
+ t.keywords ? M(n, t.keywords) - 4 : -1
36
+ )
37
+ })).filter((t) => t.score >= 0);
38
+ return e.sort((t, r) => r.score - t.score), e.map((t) => t.item);
39
+ }, [d, n]);
40
+ N(() => {
41
+ p && (b(""), x(0));
42
+ }, [p]), N(() => x(0), [n]);
43
+ function C(e) {
44
+ e.key === "ArrowDown" ? (e.preventDefault(), x((t) => (t + 1) % Math.max(l.length, 1))) : e.key === "ArrowUp" ? (e.preventDefault(), x((t) => (t - 1 + l.length) % Math.max(l.length, 1))) : e.key === "Enter" && l[u] && (e.preventDefault(), l[u].onSelect(), c(!1));
45
+ }
46
+ const L = k(() => {
47
+ const e = /* @__PURE__ */ new Map();
48
+ for (const t of l) {
49
+ const r = t.group ?? "";
50
+ e.has(r) || e.set(r, []), e.get(r).push(t);
51
+ }
52
+ return [...e.entries()];
53
+ }, [l]);
54
+ let y = -1;
55
+ return /* @__PURE__ */ a(h.Root, { open: p, onOpenChange: c, children: /* @__PURE__ */ i(h.Portal, { children: [
56
+ /* @__PURE__ */ a(h.Backdrop, { className: D() }),
57
+ /* @__PURE__ */ i(
58
+ h.Popup,
59
+ {
60
+ className: v(
61
+ /* Sits at 15% from the top rather than centred. A palette centred
62
+ vertically puts the list you are reading below the middle of the
63
+ screen and moves your eye down as it filters; anchored high, the
64
+ results grow downward into space you are already looking at. */
65
+ "fixed left-1/2 top-[15dvh] z-(--z-modal) -translate-x-1/2",
66
+ "flex max-h-[70dvh] w-[min(36rem,calc(100vw-2rem))] flex-col overflow-hidden",
67
+ S,
68
+ ...E,
69
+ "data-starting-style:scale-95 data-starting-style:opacity-0 data-starting-style:-translate-y-2"
70
+ ),
71
+ children: [
72
+ /* @__PURE__ */ a(h.Title, { className: "sr-only", children: s.title }),
73
+ /* @__PURE__ */ i("div", { className: "flex shrink-0 items-center gap-3 border-b border-border-subtle px-4", children: [
74
+ /* @__PURE__ */ a(P, { name: "search", size: "md", className: "shrink-0 text-tertiary" }),
75
+ /* @__PURE__ */ a(
76
+ "input",
77
+ {
78
+ autoFocus: !0,
79
+ value: n,
80
+ onChange: (e) => b(e.target.value),
81
+ onKeyDown: C,
82
+ placeholder: m ?? s.placeholder,
83
+ "aria-label": s.searchLabel,
84
+ "aria-activedescendant": l[u] ? `cmd-${l[u].id}` : void 0,
85
+ className: "h-14 w-full min-w-0 bg-transparent text-md text-primary outline-none placeholder:text-field-placeholder"
86
+ }
87
+ ),
88
+ /* @__PURE__ */ a("kbd", { className: "shrink-0 rounded-sm border border-border bg-surface-inset px-1.5 py-0.5 font-mono text-2xs text-tertiary", children: s.escapeKey })
89
+ ] }),
90
+ /* @__PURE__ */ i("div", { className: "min-h-0 flex-1 overflow-y-auto p-2", role: "listbox", children: [
91
+ !l.length && /* @__PURE__ */ a("p", { className: "px-3 py-10 text-center text-sm text-tertiary", children: o ?? s.noMatch }),
92
+ L.map(([e, t]) => /* @__PURE__ */ i("div", { children: [
93
+ e && /* @__PURE__ */ a("p", { className: "px-2 pt-3 pb-1.5 text-2xs font-semibold tracking-widest text-tertiary uppercase", children: e }),
94
+ t.map((r) => {
95
+ y++;
96
+ const g = y === u, A = y;
97
+ return /* @__PURE__ */ i(
98
+ "button",
99
+ {
100
+ id: `cmd-${r.id}`,
101
+ type: "button",
102
+ role: "option",
103
+ "aria-selected": g,
104
+ onMouseMove: () => x(A),
105
+ onClick: () => {
106
+ r.onSelect(), c(!1);
107
+ },
108
+ className: v(
109
+ "dx-tap flex w-full items-center gap-3 rounded-md px-3 py-2.5 text-left",
110
+ "transition-colors duration-(--dur-instant)",
111
+ g ? "bg-surface-hover text-primary" : "text-secondary"
112
+ ),
113
+ children: [
114
+ r.icon && /* @__PURE__ */ a(
115
+ P,
116
+ {
117
+ name: r.icon,
118
+ size: "sm",
119
+ className: g ? "text-accent-text" : "text-tertiary"
120
+ }
121
+ ),
122
+ /* @__PURE__ */ i("span", { className: "flex min-w-0 flex-1 flex-col", children: [
123
+ /* @__PURE__ */ a("span", { className: "truncate text-sm font-medium", children: r.label }),
124
+ r.description && /* @__PURE__ */ a("span", { className: "truncate text-2xs text-tertiary", children: r.description })
125
+ ] }),
126
+ r.shortcut && /* @__PURE__ */ a("kbd", { className: "shrink-0 rounded-sm border border-border bg-surface-inset px-1.5 py-0.5 font-mono text-2xs text-tertiary", children: r.shortcut })
127
+ ]
128
+ },
129
+ r.id
130
+ );
131
+ })
132
+ ] }, e))
133
+ ] }),
134
+ /* @__PURE__ */ i("div", { className: "flex shrink-0 items-center gap-4 border-t border-border-subtle px-4 py-2.5 text-2xs text-tertiary", children: [
135
+ /* @__PURE__ */ i("span", { className: "flex items-center gap-1.5", children: [
136
+ /* @__PURE__ */ a("kbd", { className: "rounded-sm border border-border bg-surface-inset px-1 py-0.5 font-mono", children: "↑↓" }),
137
+ s.navigate
138
+ ] }),
139
+ /* @__PURE__ */ i("span", { className: "flex items-center gap-1.5", children: [
140
+ /* @__PURE__ */ a("kbd", { className: "rounded-sm border border-border bg-surface-inset px-1 py-0.5 font-mono", children: "↵" }),
141
+ s.run
142
+ ] }),
143
+ /* @__PURE__ */ a("span", { className: "ml-auto font-mono", children: s.resultCount(f(l.length), f(d.length)) })
144
+ ] })
145
+ ]
146
+ }
147
+ )
148
+ ] }) });
149
+ }
150
+ function T(d = "k") {
151
+ const [p, c] = w(!1);
152
+ return N(() => {
153
+ function m(o) {
154
+ o.key.toLowerCase() === d && (o.metaKey || o.ctrlKey) && (o.preventDefault(), c((s) => !s));
155
+ }
156
+ return window.addEventListener("keydown", m), () => window.removeEventListener("keydown", m);
157
+ }, [d]), { open: p, setOpen: c };
158
+ }
159
+ export {
160
+ I as CommandPalette,
161
+ T as useCommandPalette
162
+ };
163
+ //# sourceMappingURL=CommandPalette.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandPalette.js","sources":["../../src/components/CommandPalette.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { Dialog as BaseDialog } from \"@base-ui/react/dialog\";\nimport { cn } from \"../lib/cn\";\nimport { useNumberFormat, useUiStrings } from \"../lib/i18n\";\nimport { Icon, type IconName } from \"./Icon\";\nimport { overlayBackdropClassName, OVERLAY_POPUP_MOTION, OVERLAY_POPUP_SURFACE } from \"./overlay-shell\";\n\n/* ============================================================================\n COMMAND PALETTE\n\n Ships in 2 of 12 major design systems, which is strange given that it is the\n fastest path to anything in an application dense enough to need one.\n\n THE MATCHING IS SUBSEQUENCE, NOT SUBSTRING. \"ndp\" finds \"New dispatch\"\n because every letter appears in order — that is what people expect from a\n palette, and plain `includes()` fails it. The scoring then puts word-start\n matches first, so typing \"dis\" ranks \"Dispatch settings\" above \"Edit this\",\n even though both contain the letters.\n\n THE FOOTER IS LOAD-BEARING. A palette without visible key hints is a palette\n people open once and then forget exists, because nothing told them arrows\n and Enter would work. Three glyphs at the bottom is the entire onboarding.\n\n Focus, escape, scroll-lock and the backdrop come from Dialog — this is a\n dialog with a search field, and treating it as one gets all of that right\n for free.\n ========================================================================= */\n\nexport type CommandItem = {\n id: string;\n label: string;\n /** Extra words to match against that are not shown — synonyms, old names. */\n keywords?: string;\n description?: string;\n icon?: IconName;\n /** Displayed on the right — \"⌘K\", \"G then D\". */\n shortcut?: string;\n group?: string;\n onSelect: () => void;\n};\n\n/**\n * Subsequence match with a score. Higher is better; -1 means no match.\n *\n * Word-start hits are worth far more than mid-word ones, and consecutive hits\n * more than scattered ones. That ordering is what makes a short query feel like\n * it read your mind rather than filtered a list.\n */\nfunction score(query: string, text: string): number {\n if (!query) return 0;\n const q = query.toLowerCase();\n const t = text.toLowerCase();\n\n let qi = 0;\n let total = 0;\n let streak = 0;\n\n for (let ti = 0; ti < t.length && qi < q.length; ti++) {\n if (t[ti] !== q[qi]) {\n streak = 0;\n continue;\n }\n const atWordStart = ti === 0 || /[\\s\\-_/.]/.test(t[ti - 1]);\n total += atWordStart ? 12 : 3;\n total += streak * 4;\n streak++;\n qi++;\n }\n\n if (qi < q.length) return -1;\n /* Shorter labels win ties: with \"set\" matched, \"Settings\" is a better answer\n than \"Reset dispatch settings and clear the cache\". */\n return total - t.length * 0.05;\n}\n\nexport interface CommandPaletteProps {\n items: CommandItem[];\n open: boolean;\n onOpenChange: (open: boolean) => void;\n /** Omitted, the provider's `commandPalette.placeholder`. */\n placeholder?: string;\n /** Omitted, the provider's `commandPalette.noMatch`. */\n emptyMessage?: ReactNode;\n}\n\nexport function CommandPalette({\n items,\n open,\n onOpenChange,\n placeholder,\n emptyMessage,\n}: CommandPaletteProps) {\n const strings = useUiStrings().commandPalette;\n const fmt = useNumberFormat();\n const [query, setQuery] = useState(\"\");\n const [active, setActive] = useState(0);\n\n const results = useMemo(() => {\n const scored = items\n .map((item) => ({\n item,\n score: Math.max(\n score(query, item.label),\n item.keywords ? score(query, item.keywords) - 4 : -1,\n ),\n }))\n .filter((r) => r.score >= 0);\n scored.sort((a, b) => b.score - a.score);\n return scored.map((r) => r.item);\n }, [items, query]);\n\n /* Reset on every open. A palette that remembers the last query makes the\n second use start from someone else's context — usually the wrong one. */\n useEffect(() => {\n if (open) {\n setQuery(\"\");\n setActive(0);\n }\n }, [open]);\n\n useEffect(() => setActive(0), [query]);\n\n function onKeyDown(event: React.KeyboardEvent) {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n /* Wraps at both ends. In a short list wrapping is faster than reversing\n direction, and in a long one it costs nothing. */\n setActive((i) => (i + 1) % Math.max(results.length, 1));\n } else if (event.key === \"ArrowUp\") {\n event.preventDefault();\n setActive((i) => (i - 1 + results.length) % Math.max(results.length, 1));\n } else if (event.key === \"Enter\" && results[active]) {\n event.preventDefault();\n results[active].onSelect();\n onOpenChange(false);\n }\n }\n\n const grouped = useMemo(() => {\n const map = new Map<string, CommandItem[]>();\n for (const item of results) {\n const key = item.group ?? \"\";\n if (!map.has(key)) map.set(key, []);\n map.get(key)!.push(item);\n }\n return [...map.entries()];\n }, [results]);\n\n let index = -1;\n\n return (\n <BaseDialog.Root open={open} onOpenChange={onOpenChange}>\n <BaseDialog.Portal>\n <BaseDialog.Backdrop className={overlayBackdropClassName()} />\n <BaseDialog.Popup\n className={cn(\n /* Sits at 15% from the top rather than centred. A palette centred\n vertically puts the list you are reading below the middle of the\n screen and moves your eye down as it filters; anchored high, the\n results grow downward into space you are already looking at. */\n \"fixed left-1/2 top-[15dvh] z-(--z-modal) -translate-x-1/2\",\n \"flex max-h-[70dvh] w-[min(36rem,calc(100vw-2rem))] flex-col overflow-hidden\",\n OVERLAY_POPUP_SURFACE,\n ...OVERLAY_POPUP_MOTION,\n \"data-starting-style:scale-95 data-starting-style:opacity-0 data-starting-style:-translate-y-2\",\n )}\n >\n <BaseDialog.Title className=\"sr-only\">{strings.title}</BaseDialog.Title>\n\n <div className=\"flex shrink-0 items-center gap-3 border-b border-border-subtle px-4\">\n <Icon name=\"search\" size=\"md\" className=\"shrink-0 text-tertiary\" />\n <input\n autoFocus\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n onKeyDown={onKeyDown}\n placeholder={placeholder ?? strings.placeholder}\n aria-label={strings.searchLabel}\n aria-activedescendant={results[active] ? `cmd-${results[active].id}` : undefined}\n className=\"h-14 w-full min-w-0 bg-transparent text-md text-primary outline-none placeholder:text-field-placeholder\"\n />\n <kbd className=\"shrink-0 rounded-sm border border-border bg-surface-inset px-1.5 py-0.5 font-mono text-2xs text-tertiary\">\n {strings.escapeKey}\n </kbd>\n </div>\n\n <div className=\"min-h-0 flex-1 overflow-y-auto p-2\" role=\"listbox\">\n {!results.length && (\n <p className=\"px-3 py-10 text-center text-sm text-tertiary\">{emptyMessage ?? strings.noMatch}</p>\n )}\n {grouped.map(([group, groupItems]) => (\n <div key={group}>\n {group && (\n <p className=\"px-2 pt-3 pb-1.5 text-2xs font-semibold tracking-widest text-tertiary uppercase\">\n {group}\n </p>\n )}\n {groupItems.map((item) => {\n index++;\n const isActive = index === active;\n const at = index;\n return (\n <button\n key={item.id}\n id={`cmd-${item.id}`}\n type=\"button\"\n role=\"option\"\n aria-selected={isActive}\n /* Hover moves the highlight, so pointer and keyboard\n never disagree about which row Enter would run. */\n onMouseMove={() => setActive(at)}\n onClick={() => {\n item.onSelect();\n onOpenChange(false);\n }}\n className={cn(\n \"dx-tap flex w-full items-center gap-3 rounded-md px-3 py-2.5 text-left\",\n \"transition-colors duration-(--dur-instant)\",\n isActive ? \"bg-surface-hover text-primary\" : \"text-secondary\",\n )}\n >\n {item.icon && (\n <Icon\n name={item.icon}\n size=\"sm\"\n className={isActive ? \"text-accent-text\" : \"text-tertiary\"}\n />\n )}\n <span className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"truncate text-sm font-medium\">{item.label}</span>\n {item.description && (\n <span className=\"truncate text-2xs text-tertiary\">{item.description}</span>\n )}\n </span>\n {item.shortcut && (\n <kbd className=\"shrink-0 rounded-sm border border-border bg-surface-inset px-1.5 py-0.5 font-mono text-2xs text-tertiary\">\n {item.shortcut}\n </kbd>\n )}\n </button>\n );\n })}\n </div>\n ))}\n </div>\n\n {/* Three glyphs, and the whole control becomes discoverable. */}\n <div className=\"flex shrink-0 items-center gap-4 border-t border-border-subtle px-4 py-2.5 text-2xs text-tertiary\">\n <span className=\"flex items-center gap-1.5\">\n <kbd className=\"rounded-sm border border-border bg-surface-inset px-1 py-0.5 font-mono\">↑↓</kbd>\n {strings.navigate}\n </span>\n <span className=\"flex items-center gap-1.5\">\n <kbd className=\"rounded-sm border border-border bg-surface-inset px-1 py-0.5 font-mono\">↵</kbd>\n {strings.run}\n </span>\n <span className=\"ml-auto font-mono\">\n {strings.resultCount(fmt(results.length), fmt(items.length))}\n </span>\n </div>\n </BaseDialog.Popup>\n </BaseDialog.Portal>\n </BaseDialog.Root>\n );\n}\n\n/**\n * Opens the palette on a keyboard shortcut.\n *\n * Bound to ⌘K / Ctrl-K, and deliberately NOT active while a text field has\n * focus unless the modifier is held — a bare-key shortcut that fires mid-\n * sentence is the fastest way to make people distrust an app.\n */\nexport function useCommandPalette(key = \"k\") {\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n function handler(event: KeyboardEvent) {\n if (event.key.toLowerCase() === key && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n setOpen((v) => !v);\n }\n }\n window.addEventListener(\"keydown\", handler);\n return () => window.removeEventListener(\"keydown\", handler);\n }, [key]);\n\n return { open, setOpen };\n}\n"],"names":["score","query","text","q","t","qi","total","streak","ti","atWordStart","CommandPalette","items","open","onOpenChange","placeholder","emptyMessage","strings","useUiStrings","fmt","useNumberFormat","setQuery","useState","active","setActive","results","useMemo","scored","item","r","a","b","useEffect","onKeyDown","event","i","grouped","map","key","index","jsx","BaseDialog","jsxs","overlayBackdropClassName","cn","OVERLAY_POPUP_SURFACE","OVERLAY_POPUP_MOTION","Icon","group","groupItems","isActive","at","useCommandPalette","setOpen","handler","v"],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { jsxs as n, jsx as e, Fragment as u } from "react/jsx-runtime";
2
+ import { tv as f } from "tailwind-variants";
3
+ import { cn as i } from "../lib/cn.js";
4
+ import { RING_TONE as h } from "./Progress.js";
5
+ const p = f({
6
+ base: "relative inline-grid shrink-0 place-items-center",
7
+ variants: {
8
+ size: {
9
+ /** 28px — sits in a tab or a row beside a 14px label; a two-digit count fits the centre. */
10
+ sm: "size-7",
11
+ md: "size-10",
12
+ lg: "size-16"
13
+ }
14
+ },
15
+ defaultVariants: { size: "sm" }
16
+ }), x = { sm: "text-2xs", md: "text-xs", lg: "text-sm" }, c = 2, g = 10.5, k = 7.5;
17
+ function l({ radius: t, level: r }) {
18
+ const s = Math.max(0, Math.min(1, r.value / 100));
19
+ return /* @__PURE__ */ n(u, { children: [
20
+ /* @__PURE__ */ e("circle", { cx: "12", cy: "12", r: t, fill: "none", strokeWidth: c, className: "stroke-surface-inset" }),
21
+ /* @__PURE__ */ e(
22
+ "circle",
23
+ {
24
+ cx: "12",
25
+ cy: "12",
26
+ r: t,
27
+ fill: "none",
28
+ strokeWidth: c,
29
+ strokeLinecap: "round",
30
+ pathLength: "1",
31
+ strokeDasharray: "1",
32
+ strokeDashoffset: 1 - s,
33
+ strokeOpacity: s === 0 ? 0 : 1,
34
+ className: i("transition-[var(--tx-colors),stroke-dashoffset] duration-(--dur-slow) ease-emphasis", h[r.tone]),
35
+ stroke: "currentColor"
36
+ }
37
+ )
38
+ ] });
39
+ }
40
+ function T({ label: t, outer: r, inner: s, size: o, children: a, className: m, ref: d }) {
41
+ return /* @__PURE__ */ n("span", { ref: d, role: "img", "aria-label": t, className: i(p({ size: o }), m), children: [
42
+ /* @__PURE__ */ n("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", className: "size-full -rotate-90", children: [
43
+ /* @__PURE__ */ e(l, { radius: g, level: r }),
44
+ /* @__PURE__ */ e(l, { radius: k, level: s })
45
+ ] }),
46
+ a != null && /* @__PURE__ */ e(
47
+ "span",
48
+ {
49
+ "aria-hidden": "true",
50
+ "data-ring-centre": "true",
51
+ className: i("absolute grid place-items-center font-mono leading-none font-semibold text-primary tabular-nums", x[o ?? "sm"]),
52
+ children: a
53
+ }
54
+ )
55
+ ] });
56
+ }
57
+ export {
58
+ T as ConcentricRing
59
+ };
60
+ //# sourceMappingURL=ConcentricRing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcentricRing.js","sources":["../../src/components/ConcentricRing.tsx"],"sourcesContent":["import type { ReactNode, Ref } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../lib/cn\";\nimport { RING_TONE, type ProgressTone } from \"./Progress\";\n\n/* ============================================================================\n CONCENTRIC RING — TWO independent fractions of the SAME whole, one inside\n the other, with a centre for the number they are fractions OF.\n\n The case it exists for: \"6 goals, 5 signed off by a person, 1 verified by an\n agent\". The two fractions share a denominator but are different facts, so a\n segmented `ProgressRing` (arcs that sum to the whole) is the wrong shape —\n a record both signed AND verified would have to be drawn twice around one\n circle. Two rings, each filled by its own count, say it without arithmetic.\n\n OUTER IS THE ONE TO READ FIRST: it is the larger, longer arc. Give it the\n fact the reader came for and the inner ring the corroborating one.\n\n COLOR IS NEVER THE ONLY CARRIER. `label` is REQUIRED and is the whole\n sentence (\"Goals: 5 of 6 signed off by a person, 1 of 6 verified by an\n agent\") — the two tones tell the rings apart at a glance, the sentence tells\n everyone else which is which. The glyph is `role=\"img\"` named by it; the\n centre is decoration and hidden from assistive tech, exactly as\n `ProgressRing`'s `children` is.\n\n THE GEOMETRY IS ONE 24-UNIT VIEWBOX, like `ProgressRing`: both rings scale\n with the box, so the gap between them is the same proportion at every size.\n Strokes are 2 units (a hair thinner than a lone ring's 2.5) so the centre\n keeps room for a two-digit number at the `sm` size.\n ========================================================================= */\n\nconst ring = tv({\n base: \"relative inline-grid shrink-0 place-items-center\",\n variants: {\n size: {\n /** 28px — sits in a tab or a row beside a 14px label; a two-digit count fits the centre. */\n sm: \"size-7\",\n md: \"size-10\",\n lg: \"size-16\",\n },\n },\n defaultVariants: { size: \"sm\" },\n});\n\n/** The centre number steps with the ring: the disc inside the inner ring is ~54% of the box. */\nconst CENTRE_TEXT = { sm: \"text-2xs\", md: \"text-xs\", lg: \"text-sm\" } as const;\n\n/** Stroke width and the two radii, in viewBox units. Outer edge 11.5 of 12; a 1-unit gap between the rings; the centre disc is 13 units across at the `sm` 28px size = ~15px. */\nconst STROKE = 2;\nconst OUTER_RADIUS = 10.5;\nconst INNER_RADIUS = 7.5;\n\n/** One ring: how full it is (0-100, clamped) and the tone it is drawn in. */\nexport interface ConcentricRingLevel {\n value: number;\n tone: ProgressTone;\n}\n\nexport interface ConcentricRingProps extends VariantProps<typeof ring> {\n /**\n * REQUIRED, and the whole sentence — both fractions in words, with their\n * numbers. See the banner: this is what keeps color from being the only\n * carrier of \"which ring is which\".\n */\n label: string;\n /** The larger, first-read ring. */\n outer: ConcentricRingLevel;\n /** The smaller ring inside it. */\n inner: ConcentricRingLevel;\n /** Centred in the disc inside the inner ring, e.g. the total. Hidden from assistive tech. */\n children?: ReactNode;\n className?: string;\n ref?: Ref<HTMLSpanElement>;\n}\n\nfunction Arc({ radius, level }: { radius: number; level: ConcentricRingLevel }) {\n const fraction = Math.max(0, Math.min(1, level.value / 100));\n return (\n <>\n <circle cx=\"12\" cy=\"12\" r={radius} fill=\"none\" strokeWidth={STROKE} className=\"stroke-surface-inset\" />\n <circle\n cx=\"12\"\n cy=\"12\"\n r={radius}\n fill=\"none\"\n strokeWidth={STROKE}\n strokeLinecap=\"round\"\n /* `pathLength=\"1\"` makes the dash numbers fractions, so the same two values work at any radius. */\n pathLength=\"1\"\n strokeDasharray=\"1\"\n strokeDashoffset={1 - fraction}\n /* A zero fraction must draw nothing: a round cap on a zero-length dash renders a dot. */\n strokeOpacity={fraction === 0 ? 0 : 1}\n className={cn(\"transition-[var(--tx-colors),stroke-dashoffset] duration-(--dur-slow) ease-emphasis\", RING_TONE[level.tone])}\n stroke=\"currentColor\"\n />\n </>\n );\n}\n\n/**\n * Two nested rings, each filled by its own 0-100 value, around a centre number.\n *\n * ```tsx\n * <ConcentricRing\n * label=\"Goals: 5 of 6 signed off by a person, 1 of 6 verified by an agent\"\n * outer={{ value: (5 / 6) * 100, tone: \"success\" }}\n * inner={{ value: (1 / 6) * 100, tone: \"brand\" }}\n * >\n * 6\n * </ConcentricRing>\n * ```\n */\nexport function ConcentricRing({ label, outer, inner, size, children, className, ref }: ConcentricRingProps) {\n return (\n <span ref={ref} role=\"img\" aria-label={label} className={cn(ring({ size }), className)}>\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" className=\"size-full -rotate-90\">\n <Arc radius={OUTER_RADIUS} level={outer} />\n <Arc radius={INNER_RADIUS} level={inner} />\n </svg>\n {children !== undefined && children !== null && (\n <span\n aria-hidden=\"true\"\n data-ring-centre=\"true\"\n className={cn(\"absolute grid place-items-center font-mono leading-none font-semibold text-primary tabular-nums\", CENTRE_TEXT[size ?? \"sm\"])}\n >\n {children}\n </span>\n )}\n </span>\n );\n}\n"],"names":["ring","tv","CENTRE_TEXT","STROKE","OUTER_RADIUS","INNER_RADIUS","Arc","radius","level","fraction","jsxs","Fragment","jsx","cn","RING_TONE","ConcentricRing","label","outer","inner","size","children","className","ref"],"mappings":";;;;AA+BA,MAAMA,IAAOC,EAAG;AAAA,EACd,MAAM;AAAA,EACN,UAAU;AAAA,IACR,MAAM;AAAA;AAAA,MAEJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACN;AAAA,EAEF,iBAAiB,EAAE,MAAM,KAAA;AAC3B,CAAC,GAGKC,IAAc,EAAE,IAAI,YAAY,IAAI,WAAW,IAAI,UAAA,GAGnDC,IAAS,GACTC,IAAe,MACfC,IAAe;AAyBrB,SAASC,EAAI,EAAE,QAAAC,GAAQ,OAAAC,KAAyD;AAC9E,QAAMC,IAAW,KAAK,IAAI,GAAG,KAAK,IAAI,GAAGD,EAAM,QAAQ,GAAG,CAAC;AAC3D,SACE,gBAAAE,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC,EAAC,UAAA,EAAO,IAAG,MAAK,IAAG,MAAK,GAAGL,GAAQ,MAAK,QAAO,aAAaJ,GAAQ,WAAU,wBAAuB;AAAA,IACrG,gBAAAS;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAG;AAAA,QACH,IAAG;AAAA,QACH,GAAGL;AAAA,QACH,MAAK;AAAA,QACL,aAAaJ;AAAA,QACb,eAAc;AAAA,QAEd,YAAW;AAAA,QACX,iBAAgB;AAAA,QAChB,kBAAkB,IAAIM;AAAA,QAEtB,eAAeA,MAAa,IAAI,IAAI;AAAA,QACpC,WAAWI,EAAG,uFAAuFC,EAAUN,EAAM,IAAI,CAAC;AAAA,QAC1H,QAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EACT,GACF;AAEJ;AAeO,SAASO,EAAe,EAAE,OAAAC,GAAO,OAAAC,GAAO,OAAAC,GAAO,MAAAC,GAAM,UAAAC,GAAU,WAAAC,GAAW,KAAAC,KAA4B;AAC3G,SACE,gBAAAZ,EAAC,QAAA,EAAK,KAAAY,GAAU,MAAK,OAAM,cAAYN,GAAO,WAAWH,EAAGb,EAAK,EAAE,MAAAmB,EAAA,CAAM,GAAGE,CAAS,GACnF,UAAA;AAAA,IAAA,gBAAAX,EAAC,SAAI,SAAQ,aAAY,eAAY,QAAO,WAAU,wBACpD,UAAA;AAAA,MAAA,gBAAAE,EAACN,GAAA,EAAI,QAAQF,GAAc,OAAOa,GAAO;AAAA,MACzC,gBAAAL,EAACN,GAAA,EAAI,QAAQD,GAAc,OAAOa,EAAA,CAAO;AAAA,IAAA,GAC3C;AAAA,IAC2BE,KAAa,QACtC,gBAAAR;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,oBAAiB;AAAA,QACjB,WAAWC,EAAG,mGAAmGX,EAAYiB,KAAQ,IAAI,CAAC;AAAA,QAEzI,UAAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,GAEJ;AAEJ;"}