@50arms/ui 0.0.0-stage → 35.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1256) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +193 -2
  3. package/dist/components/Accordion.js +68 -0
  4. package/dist/components/Accordion.js.map +1 -0
  5. package/dist/components/AgentWorkingSpinner.js +46 -0
  6. package/dist/components/AgentWorkingSpinner.js.map +1 -0
  7. package/dist/components/AppShell.js +228 -0
  8. package/dist/components/AppShell.js.map +1 -0
  9. package/dist/components/Attention.js +130 -0
  10. package/dist/components/Attention.js.map +1 -0
  11. package/dist/components/Avatar.js +99 -0
  12. package/dist/components/Avatar.js.map +1 -0
  13. package/dist/components/Badge.js +143 -0
  14. package/dist/components/Badge.js.map +1 -0
  15. package/dist/components/Board.js +292 -0
  16. package/dist/components/Board.js.map +1 -0
  17. package/dist/components/Button.js +327 -0
  18. package/dist/components/Button.js.map +1 -0
  19. package/dist/components/Callout.js +106 -0
  20. package/dist/components/Callout.js.map +1 -0
  21. package/dist/components/Card.js +140 -0
  22. package/dist/components/Card.js.map +1 -0
  23. package/dist/components/Choice.js +361 -0
  24. package/dist/components/Choice.js.map +1 -0
  25. package/dist/components/CodeEditor.js +384 -0
  26. package/dist/components/CodeEditor.js.map +1 -0
  27. package/dist/components/ColorPicker.js +174 -0
  28. package/dist/components/ColorPicker.js.map +1 -0
  29. package/dist/components/Combobox.js +212 -0
  30. package/dist/components/Combobox.js.map +1 -0
  31. package/dist/components/CommandPalette.js +163 -0
  32. package/dist/components/CommandPalette.js.map +1 -0
  33. package/dist/components/ConcentricRing.js +60 -0
  34. package/dist/components/ConcentricRing.js.map +1 -0
  35. package/dist/components/ConnectionCard.js +98 -0
  36. package/dist/components/ConnectionCard.js.map +1 -0
  37. package/dist/components/ContextItemRow.js +49 -0
  38. package/dist/components/ContextItemRow.js.map +1 -0
  39. package/dist/components/CopyValue.js +57 -0
  40. package/dist/components/CopyValue.js.map +1 -0
  41. package/dist/components/CountBadge.js +26 -0
  42. package/dist/components/CountBadge.js.map +1 -0
  43. package/dist/components/DateCalendar.js +156 -0
  44. package/dist/components/DateCalendar.js.map +1 -0
  45. package/dist/components/DateField.js +166 -0
  46. package/dist/components/DateField.js.map +1 -0
  47. package/dist/components/DatePicker.js +56 -0
  48. package/dist/components/DatePicker.js.map +1 -0
  49. package/dist/components/DateTimeText.js +19 -0
  50. package/dist/components/DateTimeText.js.map +1 -0
  51. package/dist/components/DescriptionList.js +25 -0
  52. package/dist/components/DescriptionList.js.map +1 -0
  53. package/dist/components/Dialog.js +332 -0
  54. package/dist/components/Dialog.js.map +1 -0
  55. package/dist/components/DragDrop.js +395 -0
  56. package/dist/components/DragDrop.js.map +1 -0
  57. package/dist/components/Drawer.js +100 -0
  58. package/dist/components/Drawer.js.map +1 -0
  59. package/dist/components/EditGutter.js +110 -0
  60. package/dist/components/EditGutter.js.map +1 -0
  61. package/dist/components/EmojiPicker.js +174 -0
  62. package/dist/components/EmojiPicker.js.map +1 -0
  63. package/dist/components/ErrorBoundary.js +47 -0
  64. package/dist/components/ErrorBoundary.js.map +1 -0
  65. package/dist/components/Field.js +115 -0
  66. package/dist/components/Field.js.map +1 -0
  67. package/dist/components/FileUpload.js +128 -0
  68. package/dist/components/FileUpload.js.map +1 -0
  69. package/dist/components/FilterMenu.js +256 -0
  70. package/dist/components/FilterMenu.js.map +1 -0
  71. package/dist/components/GatesSection.js +79 -0
  72. package/dist/components/GatesSection.js.map +1 -0
  73. package/dist/components/Icon.js +50 -0
  74. package/dist/components/Icon.js.map +1 -0
  75. package/dist/components/IconButton.js +59 -0
  76. package/dist/components/IconButton.js.map +1 -0
  77. package/dist/components/IconStack.js +69 -0
  78. package/dist/components/IconStack.js.map +1 -0
  79. package/dist/components/ImageUploadField.js +146 -0
  80. package/dist/components/ImageUploadField.js.map +1 -0
  81. package/dist/components/InlineEdit.js +432 -0
  82. package/dist/components/InlineEdit.js.map +1 -0
  83. package/dist/components/InlineMarkdownEdit.js +184 -0
  84. package/dist/components/InlineMarkdownEdit.js.map +1 -0
  85. package/dist/components/Input.js +156 -0
  86. package/dist/components/Input.js.map +1 -0
  87. package/dist/components/LegalDocument.js +155 -0
  88. package/dist/components/LegalDocument.js.map +1 -0
  89. package/dist/components/LineDiff.js +95 -0
  90. package/dist/components/LineDiff.js.map +1 -0
  91. package/dist/components/ListHeader.js +72 -0
  92. package/dist/components/ListHeader.js.map +1 -0
  93. package/dist/components/Loading.js +111 -0
  94. package/dist/components/Loading.js.map +1 -0
  95. package/dist/components/Markdown.js +28 -0
  96. package/dist/components/Markdown.js.map +1 -0
  97. package/dist/components/MarkdownEditor.js +467 -0
  98. package/dist/components/MarkdownEditor.js.map +1 -0
  99. package/dist/components/Menu.js +185 -0
  100. package/dist/components/Menu.js.map +1 -0
  101. package/dist/components/Navigation.js +87 -0
  102. package/dist/components/Navigation.js.map +1 -0
  103. package/dist/components/NumberInput.js +119 -0
  104. package/dist/components/NumberInput.js.map +1 -0
  105. package/dist/components/OTPInput.js +71 -0
  106. package/dist/components/OTPInput.js.map +1 -0
  107. package/dist/components/OrderedEntityManager.js +170 -0
  108. package/dist/components/OrderedEntityManager.js.map +1 -0
  109. package/dist/components/PagedWindowList.js +74 -0
  110. package/dist/components/PagedWindowList.js.map +1 -0
  111. package/dist/components/PaginationBar.js +95 -0
  112. package/dist/components/PaginationBar.js.map +1 -0
  113. package/dist/components/Panel.js +396 -0
  114. package/dist/components/Panel.js.map +1 -0
  115. package/dist/components/PasswordInput.js +32 -0
  116. package/dist/components/PasswordInput.js.map +1 -0
  117. package/dist/components/PasswordRequirements.js +25 -0
  118. package/dist/components/PasswordRequirements.js.map +1 -0
  119. package/dist/components/PatchDiff.js +96 -0
  120. package/dist/components/PatchDiff.js.map +1 -0
  121. package/dist/components/PendingVeil.js +18 -0
  122. package/dist/components/PendingVeil.js.map +1 -0
  123. package/dist/components/Popover.js +214 -0
  124. package/dist/components/Popover.js.map +1 -0
  125. package/dist/components/Progress.js +419 -0
  126. package/dist/components/Progress.js.map +1 -0
  127. package/dist/components/RatingScale.js +89 -0
  128. package/dist/components/RatingScale.js.map +1 -0
  129. package/dist/components/ReadMore.js +232 -0
  130. package/dist/components/ReadMore.js.map +1 -0
  131. package/dist/components/RecordCard.js +202 -0
  132. package/dist/components/RecordCard.js.map +1 -0
  133. package/dist/components/RelativeTime.js +29 -0
  134. package/dist/components/RelativeTime.js.map +1 -0
  135. package/dist/components/SandboxedFrame.js +135 -0
  136. package/dist/components/SandboxedFrame.js.map +1 -0
  137. package/dist/components/SearchInput.js +38 -0
  138. package/dist/components/SearchInput.js.map +1 -0
  139. package/dist/components/SecretField.js +228 -0
  140. package/dist/components/SecretField.js.map +1 -0
  141. package/dist/components/SectionNav.js +42 -0
  142. package/dist/components/SectionNav.js.map +1 -0
  143. package/dist/components/Select.js +172 -0
  144. package/dist/components/Select.js.map +1 -0
  145. package/dist/components/SequenceDiagram.js +109 -0
  146. package/dist/components/SequenceDiagram.js.map +1 -0
  147. package/dist/components/SettingRow.js +124 -0
  148. package/dist/components/SettingRow.js.map +1 -0
  149. package/dist/components/SignOffRings.js +36 -0
  150. package/dist/components/SignOffRings.js.map +1 -0
  151. package/dist/components/Slider.js +353 -0
  152. package/dist/components/Slider.js.map +1 -0
  153. package/dist/components/SolutionChoice.js +89 -0
  154. package/dist/components/SolutionChoice.js.map +1 -0
  155. package/dist/components/SortMenu.js +75 -0
  156. package/dist/components/SortMenu.js.map +1 -0
  157. package/dist/components/Spinner.js +42 -0
  158. package/dist/components/Spinner.js.map +1 -0
  159. package/dist/components/Stat.js +148 -0
  160. package/dist/components/Stat.js.map +1 -0
  161. package/dist/components/StatusSelect.js +119 -0
  162. package/dist/components/StatusSelect.js.map +1 -0
  163. package/dist/components/Surface.js +210 -0
  164. package/dist/components/Surface.js.map +1 -0
  165. package/dist/components/Table.js +300 -0
  166. package/dist/components/Table.js.map +1 -0
  167. package/dist/components/Tabs.js +288 -0
  168. package/dist/components/Tabs.js.map +1 -0
  169. package/dist/components/ThemeMenu.js +198 -0
  170. package/dist/components/ThemeMenu.js.map +1 -0
  171. package/dist/components/Toast.js +217 -0
  172. package/dist/components/Toast.js.map +1 -0
  173. package/dist/components/Toggle.js +147 -0
  174. package/dist/components/Toggle.js.map +1 -0
  175. package/dist/components/ToggleMatrix.js +157 -0
  176. package/dist/components/ToggleMatrix.js.map +1 -0
  177. package/dist/components/Tree.js +125 -0
  178. package/dist/components/Tree.js.map +1 -0
  179. package/dist/components/TriStateSwitch.js +111 -0
  180. package/dist/components/TriStateSwitch.js.map +1 -0
  181. package/dist/components/VideoPlayer.js +64 -0
  182. package/dist/components/VideoPlayer.js.map +1 -0
  183. package/dist/components/auth/AcceptInvitationCard.js +110 -0
  184. package/dist/components/auth/AcceptInvitationCard.js.map +1 -0
  185. package/dist/components/auth/AuthLayout.js +18 -0
  186. package/dist/components/auth/AuthLayout.js.map +1 -0
  187. package/dist/components/auth/ForgotPasswordForm.js +44 -0
  188. package/dist/components/auth/ForgotPasswordForm.js.map +1 -0
  189. package/dist/components/auth/LoginForm.js +76 -0
  190. package/dist/components/auth/LoginForm.js.map +1 -0
  191. package/dist/components/auth/ResetPasswordForm.js +69 -0
  192. package/dist/components/auth/ResetPasswordForm.js.map +1 -0
  193. package/dist/components/auth/SignInProviders.js +45 -0
  194. package/dist/components/auth/SignInProviders.js.map +1 -0
  195. package/dist/components/auth/SignupCard.js +204 -0
  196. package/dist/components/auth/SignupCard.js.map +1 -0
  197. package/dist/components/auth/TermsAcceptance.js +43 -0
  198. package/dist/components/auth/TermsAcceptance.js.map +1 -0
  199. package/dist/components/board/context.js +32 -0
  200. package/dist/components/board/context.js.map +1 -0
  201. package/dist/components/board/recipe.js +94 -0
  202. package/dist/components/board/recipe.js.map +1 -0
  203. package/dist/components/calendar/CalendarMonth.js +299 -0
  204. package/dist/components/calendar/CalendarMonth.js.map +1 -0
  205. package/dist/components/calendar/CalendarTimeGrid.js +430 -0
  206. package/dist/components/calendar/CalendarTimeGrid.js.map +1 -0
  207. package/dist/components/calendar/EventActions.js +101 -0
  208. package/dist/components/calendar/EventActions.js.map +1 -0
  209. package/dist/components/calendar/format.js +73 -0
  210. package/dist/components/calendar/format.js.map +1 -0
  211. package/dist/components/calendar/palette.js +31 -0
  212. package/dist/components/calendar/palette.js.map +1 -0
  213. package/dist/components/calendar/use-calendar-drag.js +149 -0
  214. package/dist/components/calendar/use-calendar-drag.js.map +1 -0
  215. package/dist/components/calendar/use-event-keyboard.js +87 -0
  216. package/dist/components/calendar/use-event-keyboard.js.map +1 -0
  217. package/dist/components/calendar/use-grid-navigation.js +79 -0
  218. package/dist/components/calendar/use-grid-navigation.js.map +1 -0
  219. package/dist/components/calendar/use-now.js +27 -0
  220. package/dist/components/calendar/use-now.js.map +1 -0
  221. package/dist/components/card-face/AcRingGlyph.js +39 -0
  222. package/dist/components/card-face/AcRingGlyph.js.map +1 -0
  223. package/dist/components/card-face/BoardCardAgentSlot.js +17 -0
  224. package/dist/components/card-face/BoardCardAgentSlot.js.map +1 -0
  225. package/dist/components/card-face/CardFace.js +109 -0
  226. package/dist/components/card-face/CardFace.js.map +1 -0
  227. package/dist/components/card-face/CardTypeBadge.js +17 -0
  228. package/dist/components/card-face/CardTypeBadge.js.map +1 -0
  229. package/dist/components/card-face/EffortBadge.js +11 -0
  230. package/dist/components/card-face/EffortBadge.js.map +1 -0
  231. package/dist/components/card-face/GateRingGlyph.js +31 -0
  232. package/dist/components/card-face/GateRingGlyph.js.map +1 -0
  233. package/dist/components/card-face/OverflowRow.js +70 -0
  234. package/dist/components/card-face/OverflowRow.js.map +1 -0
  235. package/dist/components/card-face/TapTip.js +32 -0
  236. package/dist/components/card-face/TapTip.js.map +1 -0
  237. package/dist/components/card-face/hit-area.js +6 -0
  238. package/dist/components/card-face/hit-area.js.map +1 -0
  239. package/dist/components/card-face/vocabulary.js +102 -0
  240. package/dist/components/card-face/vocabulary.js.map +1 -0
  241. package/dist/components/chart/BarList.js +78 -0
  242. package/dist/components/chart/BarList.js.map +1 -0
  243. package/dist/components/chart/LineChart.js +310 -0
  244. package/dist/components/chart/LineChart.js.map +1 -0
  245. package/dist/components/chart/ShareBar.js +141 -0
  246. package/dist/components/chart/ShareBar.js.map +1 -0
  247. package/dist/components/chart/TimeSeriesChart.js +305 -0
  248. package/dist/components/chart/TimeSeriesChart.js.map +1 -0
  249. package/dist/components/chart/label-metrics.js +17 -0
  250. package/dist/components/chart/label-metrics.js.map +1 -0
  251. package/dist/components/chart/line-chart-axis.js +38 -0
  252. package/dist/components/chart/line-chart-axis.js.map +1 -0
  253. package/dist/components/chart/line-chart-scale.js +132 -0
  254. package/dist/components/chart/line-chart-scale.js.map +1 -0
  255. package/dist/components/chart/line-series-style.js +22 -0
  256. package/dist/components/chart/line-series-style.js.map +1 -0
  257. package/dist/components/chart/share-bar-labels.js +14 -0
  258. package/dist/components/chart/share-bar-labels.js.map +1 -0
  259. package/dist/components/chart/shared.js +157 -0
  260. package/dist/components/chart/shared.js.map +1 -0
  261. package/dist/components/chart/time-series-scale.js +51 -0
  262. package/dist/components/chart/time-series-scale.js.map +1 -0
  263. package/dist/components/chat/Attachment.js +316 -0
  264. package/dist/components/chat/Attachment.js.map +1 -0
  265. package/dist/components/chat/Chat.js +171 -0
  266. package/dist/components/chat/Chat.js.map +1 -0
  267. package/dist/components/chat/Composer.js +274 -0
  268. package/dist/components/chat/Composer.js.map +1 -0
  269. package/dist/components/chat/ContextMeter.js +202 -0
  270. package/dist/components/chat/ContextMeter.js.map +1 -0
  271. package/dist/components/chat/EffortControl.js +116 -0
  272. package/dist/components/chat/EffortControl.js.map +1 -0
  273. package/dist/components/chat/FileCover.js +78 -0
  274. package/dist/components/chat/FileCover.js.map +1 -0
  275. package/dist/components/chat/Message.js +356 -0
  276. package/dist/components/chat/Message.js.map +1 -0
  277. package/dist/components/chat/MessageScroller.js +104 -0
  278. package/dist/components/chat/MessageScroller.js.map +1 -0
  279. package/dist/components/chat/ModelSelector.js +156 -0
  280. package/dist/components/chat/ModelSelector.js.map +1 -0
  281. package/dist/components/chat/StreamingMarkdown.js +42 -0
  282. package/dist/components/chat/StreamingMarkdown.js.map +1 -0
  283. package/dist/components/chat/download-file.js +9 -0
  284. package/dist/components/chat/download-file.js.map +1 -0
  285. package/dist/components/chat/file-icon.js +39 -0
  286. package/dist/components/chat/file-icon.js.map +1 -0
  287. package/dist/components/checklist/StatusChecklist.js +103 -0
  288. package/dist/components/checklist/StatusChecklist.js.map +1 -0
  289. package/dist/components/checklist/tally.js +29 -0
  290. package/dist/components/checklist/tally.js.map +1 -0
  291. package/dist/components/code-editor/context.js +13 -0
  292. package/dist/components/code-editor/context.js.map +1 -0
  293. package/dist/components/code-editor/editing.js +93 -0
  294. package/dist/components/code-editor/editing.js.map +1 -0
  295. package/dist/components/code-editor/highlight.js +27 -0
  296. package/dist/components/code-editor/highlight.js.map +1 -0
  297. package/dist/components/code-editor/recipe.js +75 -0
  298. package/dist/components/code-editor/recipe.js.map +1 -0
  299. package/dist/components/date-timeline/DateTimeline.js +358 -0
  300. package/dist/components/date-timeline/DateTimeline.js.map +1 -0
  301. package/dist/components/date-timeline/TimelineRow.js +100 -0
  302. package/dist/components/date-timeline/TimelineRow.js.map +1 -0
  303. package/dist/components/date-timeline/useBarDrag.js +44 -0
  304. package/dist/components/date-timeline/useBarDrag.js.map +1 -0
  305. package/dist/components/date-timeline/useMarkerDrag.js +40 -0
  306. package/dist/components/date-timeline/useMarkerDrag.js.map +1 -0
  307. package/dist/components/date-timeline/useTimelineZoom.js +44 -0
  308. package/dist/components/date-timeline/useTimelineZoom.js.map +1 -0
  309. package/dist/components/drag-drop/context.js +37 -0
  310. package/dist/components/drag-drop/context.js.map +1 -0
  311. package/dist/components/drag-drop/recipe.js +270 -0
  312. package/dist/components/drag-drop/recipe.js.map +1 -0
  313. package/dist/components/drag-drop/shift.js +157 -0
  314. package/dist/components/drag-drop/shift.js.map +1 -0
  315. package/dist/components/edit/activation.js +10 -0
  316. package/dist/components/edit/activation.js.map +1 -0
  317. package/dist/components/edit/outcome.js +47 -0
  318. package/dist/components/edit/outcome.js.map +1 -0
  319. package/dist/components/edit/use-edit-session.js +146 -0
  320. package/dist/components/edit/use-edit-session.js.map +1 -0
  321. package/dist/components/file-viewer/FileViewer.js +97 -0
  322. package/dist/components/file-viewer/FileViewer.js.map +1 -0
  323. package/dist/components/file-viewer/PageNumberJumpField.js +47 -0
  324. package/dist/components/file-viewer/PageNumberJumpField.js.map +1 -0
  325. package/dist/components/file-viewer/ViewerControls.js +122 -0
  326. package/dist/components/file-viewer/ViewerControls.js.map +1 -0
  327. package/dist/components/file-viewer/ViewerRail.js +57 -0
  328. package/dist/components/file-viewer/ViewerRail.js.map +1 -0
  329. package/dist/components/file-viewer/ViewerStage.js +112 -0
  330. package/dist/components/file-viewer/ViewerStage.js.map +1 -0
  331. package/dist/components/file-viewer/frames.js +37 -0
  332. package/dist/components/file-viewer/frames.js.map +1 -0
  333. package/dist/components/file-viewer/use-frame-cursor.js +32 -0
  334. package/dist/components/file-viewer/use-frame-cursor.js.map +1 -0
  335. package/dist/components/file-viewer/use-viewer-keys.js +50 -0
  336. package/dist/components/file-viewer/use-viewer-keys.js.map +1 -0
  337. package/dist/components/file-viewer/use-viewer-zoom.js +68 -0
  338. package/dist/components/file-viewer/use-viewer-zoom.js.map +1 -0
  339. package/dist/components/focus-web/FocusWeb.js +322 -0
  340. package/dist/components/focus-web/FocusWeb.js.map +1 -0
  341. package/dist/components/focus-web/layout.js +34 -0
  342. package/dist/components/focus-web/layout.js.map +1 -0
  343. package/dist/components/graph-explorer/GraphExplorer.js +441 -0
  344. package/dist/components/graph-explorer/GraphExplorer.js.map +1 -0
  345. package/dist/components/graph-explorer/camera-math.js +102 -0
  346. package/dist/components/graph-explorer/camera-math.js.map +1 -0
  347. package/dist/components/graph-explorer/tree-layout.js +103 -0
  348. package/dist/components/graph-explorer/tree-layout.js.map +1 -0
  349. package/dist/components/graph-explorer/use-camera.js +82 -0
  350. package/dist/components/graph-explorer/use-camera.js.map +1 -0
  351. package/dist/components/graph-explorer/viewport-gesture.js +107 -0
  352. package/dist/components/graph-explorer/viewport-gesture.js.map +1 -0
  353. package/dist/components/kanban/KanbanBoard.js +219 -0
  354. package/dist/components/kanban/KanbanBoard.js.map +1 -0
  355. package/dist/components/kanban/recipe.js +144 -0
  356. package/dist/components/kanban/recipe.js.map +1 -0
  357. package/dist/components/markdown/Affordances.js +398 -0
  358. package/dist/components/markdown/Affordances.js.map +1 -0
  359. package/dist/components/markdown/AttachmentStrip.js +128 -0
  360. package/dist/components/markdown/AttachmentStrip.js.map +1 -0
  361. package/dist/components/markdown/ImageUpload.js +45 -0
  362. package/dist/components/markdown/ImageUpload.js.map +1 -0
  363. package/dist/components/media-error.js +7 -0
  364. package/dist/components/media-error.js.map +1 -0
  365. package/dist/components/nav-sections.js +61 -0
  366. package/dist/components/nav-sections.js.map +1 -0
  367. package/dist/components/node-canvas/NodeCanvas.js +384 -0
  368. package/dist/components/node-canvas/NodeCanvas.js.map +1 -0
  369. package/dist/components/node-canvas/layout.js +237 -0
  370. package/dist/components/node-canvas/layout.js.map +1 -0
  371. package/dist/components/node-canvas/use-canvas-gestures.js +143 -0
  372. package/dist/components/node-canvas/use-canvas-gestures.js.map +1 -0
  373. package/dist/components/openapi/OpenApiViewer.js +137 -0
  374. package/dist/components/openapi/OpenApiViewer.js.map +1 -0
  375. package/dist/components/openapi/OperationCard.js +145 -0
  376. package/dist/components/openapi/OperationCard.js.map +1 -0
  377. package/dist/components/openapi/SchemaView.js +68 -0
  378. package/dist/components/openapi/SchemaView.js.map +1 -0
  379. package/dist/components/openapi/resolve.js +102 -0
  380. package/dist/components/openapi/resolve.js.map +1 -0
  381. package/dist/components/openapi/types.js +5 -0
  382. package/dist/components/openapi/types.js.map +1 -0
  383. package/dist/components/overlay-shell.js +29 -0
  384. package/dist/components/overlay-shell.js.map +1 -0
  385. package/dist/components/overlay-stack.js +27 -0
  386. package/dist/components/overlay-stack.js.map +1 -0
  387. package/dist/components/paged-window/PageBlock.js +50 -0
  388. package/dist/components/paged-window/PageBlock.js.map +1 -0
  389. package/dist/components/provenance/ConfidenceBar.js +60 -0
  390. package/dist/components/provenance/ConfidenceBar.js.map +1 -0
  391. package/dist/components/provenance/ConfidenceMeter.js +36 -0
  392. package/dist/components/provenance/ConfidenceMeter.js.map +1 -0
  393. package/dist/components/provenance/ConfidenceReadout.js +31 -0
  394. package/dist/components/provenance/ConfidenceReadout.js.map +1 -0
  395. package/dist/components/provenance/ProvenanceBadge.js +44 -0
  396. package/dist/components/provenance/ProvenanceBadge.js.map +1 -0
  397. package/dist/components/provenance/ProvenanceDetail.js +114 -0
  398. package/dist/components/provenance/ProvenanceDetail.js.map +1 -0
  399. package/dist/components/provenance/ProvenanceDisclosure.js +111 -0
  400. package/dist/components/provenance/ProvenanceDisclosure.js.map +1 -0
  401. package/dist/components/provenance/absence.js +31 -0
  402. package/dist/components/provenance/absence.js.map +1 -0
  403. package/dist/components/provenance/types.js +30 -0
  404. package/dist/components/provenance/types.js.map +1 -0
  405. package/dist/components/rbac/AccessRequestPanel.js +153 -0
  406. package/dist/components/rbac/AccessRequestPanel.js.map +1 -0
  407. package/dist/components/rbac/AccountMenu.js +118 -0
  408. package/dist/components/rbac/AccountMenu.js.map +1 -0
  409. package/dist/components/rbac/AgentKeysList.js +20 -0
  410. package/dist/components/rbac/AgentKeysList.js.map +1 -0
  411. package/dist/components/rbac/ApiKeysPanel.js +172 -0
  412. package/dist/components/rbac/ApiKeysPanel.js.map +1 -0
  413. package/dist/components/rbac/ApiKeysTable.js +167 -0
  414. package/dist/components/rbac/ApiKeysTable.js.map +1 -0
  415. package/dist/components/rbac/Brand.js +13 -0
  416. package/dist/components/rbac/Brand.js.map +1 -0
  417. package/dist/components/rbac/Can.js +18 -0
  418. package/dist/components/rbac/Can.js.map +1 -0
  419. package/dist/components/rbac/ChangePasswordForm.js +73 -0
  420. package/dist/components/rbac/ChangePasswordForm.js.map +1 -0
  421. package/dist/components/rbac/DangerZone.js +27 -0
  422. package/dist/components/rbac/DangerZone.js.map +1 -0
  423. package/dist/components/rbac/DevToolsPopover.js +140 -0
  424. package/dist/components/rbac/DevToolsPopover.js.map +1 -0
  425. package/dist/components/rbac/EndedLine.js +24 -0
  426. package/dist/components/rbac/EndedLine.js.map +1 -0
  427. package/dist/components/rbac/InvitationsList.js +148 -0
  428. package/dist/components/rbac/InvitationsList.js.map +1 -0
  429. package/dist/components/rbac/InviteMembersDialog.js +97 -0
  430. package/dist/components/rbac/InviteMembersDialog.js.map +1 -0
  431. package/dist/components/rbac/MembersPanel.js +138 -0
  432. package/dist/components/rbac/MembersPanel.js.map +1 -0
  433. package/dist/components/rbac/PermissionRequestPanel.js +141 -0
  434. package/dist/components/rbac/PermissionRequestPanel.js.map +1 -0
  435. package/dist/components/rbac/ProfileForm.js +86 -0
  436. package/dist/components/rbac/ProfileForm.js.map +1 -0
  437. package/dist/components/rbac/ProfilePage.js +58 -0
  438. package/dist/components/rbac/ProfilePage.js.map +1 -0
  439. package/dist/components/rbac/RBACProvider.js +82 -0
  440. package/dist/components/rbac/RBACProvider.js.map +1 -0
  441. package/dist/components/rbac/RoleEditorDialog.js +90 -0
  442. package/dist/components/rbac/RoleEditorDialog.js.map +1 -0
  443. package/dist/components/rbac/RoleKeyPicker.js +77 -0
  444. package/dist/components/rbac/RoleKeyPicker.js.map +1 -0
  445. package/dist/components/rbac/RolePermissionMatrix.js +37 -0
  446. package/dist/components/rbac/RolePermissionMatrix.js.map +1 -0
  447. package/dist/components/rbac/RolesPermissionsPage.js +142 -0
  448. package/dist/components/rbac/RolesPermissionsPage.js.map +1 -0
  449. package/dist/components/rbac/SessionsList.js +146 -0
  450. package/dist/components/rbac/SessionsList.js.map +1 -0
  451. package/dist/components/rbac/TeamSettingsForm.js +69 -0
  452. package/dist/components/rbac/TeamSettingsForm.js.map +1 -0
  453. package/dist/components/rbac/TeamSwitcher.js +66 -0
  454. package/dist/components/rbac/TeamSwitcher.js.map +1 -0
  455. package/dist/components/rbac/approvalPanelParts.js +130 -0
  456. package/dist/components/rbac/approvalPanelParts.js.map +1 -0
  457. package/dist/components/rbac/permissionSections.js +8 -0
  458. package/dist/components/rbac/permissionSections.js.map +1 -0
  459. package/dist/components/rbac/stagedForm.js +42 -0
  460. package/dist/components/rbac/stagedForm.js.map +1 -0
  461. package/dist/components/rbac/useStagedImage.js +21 -0
  462. package/dist/components/rbac/useStagedImage.js.map +1 -0
  463. package/dist/components/roadmap/PhaseManager.js +48 -0
  464. package/dist/components/roadmap/PhaseManager.js.map +1 -0
  465. package/dist/components/roadmap/RoadmapItemCard.js +96 -0
  466. package/dist/components/roadmap/RoadmapItemCard.js.map +1 -0
  467. package/dist/components/roadmap/RoadmapPage.js +34 -0
  468. package/dist/components/roadmap/RoadmapPage.js.map +1 -0
  469. package/dist/components/roadmap/RoadmapSwimlaneBoard.js +91 -0
  470. package/dist/components/roadmap/RoadmapSwimlaneBoard.js.map +1 -0
  471. package/dist/components/roadmap/TrackManager.js +58 -0
  472. package/dist/components/roadmap/TrackManager.js.map +1 -0
  473. package/dist/components/roadmap/UseCaseCard.js +93 -0
  474. package/dist/components/roadmap/UseCaseCard.js.map +1 -0
  475. package/dist/components/roadmap/UseCaseLedgerPage.js +98 -0
  476. package/dist/components/roadmap/UseCaseLedgerPage.js.map +1 -0
  477. package/dist/components/roadmap/chip-tones.js +9 -0
  478. package/dist/components/roadmap/chip-tones.js.map +1 -0
  479. package/dist/components/roadmap/derive.js +28 -0
  480. package/dist/components/roadmap/derive.js.map +1 -0
  481. package/dist/components/stepper/Stepper.js +276 -0
  482. package/dist/components/stepper/Stepper.js.map +1 -0
  483. package/dist/components/stepper/derive.js +53 -0
  484. package/dist/components/stepper/derive.js.map +1 -0
  485. package/dist/confidence.css +222 -0
  486. package/dist/fonts/bricolage-grotesque-0.woff2 +0 -0
  487. package/dist/fonts/bricolage-grotesque-1.woff2 +0 -0
  488. package/dist/fonts/bricolage-grotesque-2.woff2 +0 -0
  489. package/dist/fonts/figtree-0.woff2 +0 -0
  490. package/dist/fonts/figtree-1.woff2 +0 -0
  491. package/dist/fonts/figtree-2.woff2 +0 -0
  492. package/dist/fonts/figtree-3.woff2 +0 -0
  493. package/dist/fonts/jetbrains-mono-0.woff2 +0 -0
  494. package/dist/fonts/jetbrains-mono-1.woff2 +0 -0
  495. package/dist/fonts/jetbrains-mono-10.woff2 +0 -0
  496. package/dist/fonts/jetbrains-mono-11.woff2 +0 -0
  497. package/dist/fonts/jetbrains-mono-2.woff2 +0 -0
  498. package/dist/fonts/jetbrains-mono-3.woff2 +0 -0
  499. package/dist/fonts/jetbrains-mono-4.woff2 +0 -0
  500. package/dist/fonts/jetbrains-mono-5.woff2 +0 -0
  501. package/dist/fonts/jetbrains-mono-6.woff2 +0 -0
  502. package/dist/fonts/jetbrains-mono-7.woff2 +0 -0
  503. package/dist/fonts/jetbrains-mono-8.woff2 +0 -0
  504. package/dist/fonts/jetbrains-mono-9.woff2 +0 -0
  505. package/dist/fonts.css +187 -0
  506. package/dist/icons/data.js +233 -0
  507. package/dist/icons/data.js.map +1 -0
  508. package/dist/index.js +942 -0
  509. package/dist/index.js.map +1 -0
  510. package/dist/lib/attention.js +75 -0
  511. package/dist/lib/attention.js.map +1 -0
  512. package/dist/lib/board/anchor.js +14 -0
  513. package/dist/lib/board/anchor.js.map +1 -0
  514. package/dist/lib/board/model.js +41 -0
  515. package/dist/lib/board/model.js.map +1 -0
  516. package/dist/lib/board/move.js +161 -0
  517. package/dist/lib/board/move.js.map +1 -0
  518. package/dist/lib/board/position.js +11 -0
  519. package/dist/lib/board/position.js.map +1 -0
  520. package/dist/lib/board/rejection.js +22 -0
  521. package/dist/lib/board/rejection.js.map +1 -0
  522. package/dist/lib/board/use-board.js +43 -0
  523. package/dist/lib/board/use-board.js.map +1 -0
  524. package/dist/lib/calendar/band-packer.js +44 -0
  525. package/dist/lib/calendar/band-packer.js.map +1 -0
  526. package/dist/lib/calendar/drag.js +74 -0
  527. package/dist/lib/calendar/drag.js.map +1 -0
  528. package/dist/lib/calendar/lane-packer.js +67 -0
  529. package/dist/lib/calendar/lane-packer.js.map +1 -0
  530. package/dist/lib/calendar/segments.js +82 -0
  531. package/dist/lib/calendar/segments.js.map +1 -0
  532. package/dist/lib/calendar/types.js +7 -0
  533. package/dist/lib/calendar/types.js.map +1 -0
  534. package/dist/lib/chart-palette.js +27 -0
  535. package/dist/lib/chart-palette.js.map +1 -0
  536. package/dist/lib/clipboard.js +30 -0
  537. package/dist/lib/clipboard.js.map +1 -0
  538. package/dist/lib/cn.js +9 -0
  539. package/dist/lib/cn.js.map +1 -0
  540. package/dist/lib/color.js +24 -0
  541. package/dist/lib/color.js.map +1 -0
  542. package/dist/lib/component-guidance.js +297 -0
  543. package/dist/lib/component-guidance.js.map +1 -0
  544. package/dist/lib/confidence.js +22 -0
  545. package/dist/lib/confidence.js.map +1 -0
  546. package/dist/lib/date-timeline/scale.js +197 -0
  547. package/dist/lib/date-timeline/scale.js.map +1 -0
  548. package/dist/lib/design-frame/document.js +44 -0
  549. package/dist/lib/design-frame/document.js.map +1 -0
  550. package/dist/lib/design-frame/mini-app-script.js +107 -0
  551. package/dist/lib/design-frame/mini-app-script.js.map +1 -0
  552. package/dist/lib/design-frame/mini-app.js +12 -0
  553. package/dist/lib/design-frame/mini-app.js.map +1 -0
  554. package/dist/lib/design-frame/protocol.js +46 -0
  555. package/dist/lib/design-frame/protocol.js.map +1 -0
  556. package/dist/lib/dev-warn.js +17 -0
  557. package/dist/lib/dev-warn.js.map +1 -0
  558. package/dist/lib/dnd/announce.js +120 -0
  559. package/dist/lib/dnd/announce.js.map +1 -0
  560. package/dist/lib/dnd/autoscroll.js +123 -0
  561. package/dist/lib/dnd/autoscroll.js.map +1 -0
  562. package/dist/lib/dnd/cross-drop.js +11 -0
  563. package/dist/lib/dnd/cross-drop.js.map +1 -0
  564. package/dist/lib/dnd/geometry.js +99 -0
  565. package/dist/lib/dnd/geometry.js.map +1 -0
  566. package/dist/lib/dnd/sensors/gesture.js +86 -0
  567. package/dist/lib/dnd/sensors/gesture.js.map +1 -0
  568. package/dist/lib/dnd/sensors/keyboard.js +47 -0
  569. package/dist/lib/dnd/sensors/keyboard.js.map +1 -0
  570. package/dist/lib/dnd/sensors/pointer.js +32 -0
  571. package/dist/lib/dnd/sensors/pointer.js.map +1 -0
  572. package/dist/lib/dnd/session.js +256 -0
  573. package/dist/lib/dnd/session.js.map +1 -0
  574. package/dist/lib/dnd/use-drag.js +90 -0
  575. package/dist/lib/dnd/use-drag.js.map +1 -0
  576. package/dist/lib/dom/scroll-ancestor.js +18 -0
  577. package/dist/lib/dom/scroll-ancestor.js.map +1 -0
  578. package/dist/lib/format.js +23 -0
  579. package/dist/lib/format.js.map +1 -0
  580. package/dist/lib/group-in-order.js +13 -0
  581. package/dist/lib/group-in-order.js.map +1 -0
  582. package/dist/lib/header-fold.js +11 -0
  583. package/dist/lib/header-fold.js.map +1 -0
  584. package/dist/lib/i18n/areas/auth-provenance-flows.js +156 -0
  585. package/dist/lib/i18n/areas/auth-provenance-flows.js.map +1 -0
  586. package/dist/lib/i18n/areas/board.js +35 -0
  587. package/dist/lib/i18n/areas/board.js.map +1 -0
  588. package/dist/lib/i18n/areas/card-face.js +10 -0
  589. package/dist/lib/i18n/areas/card-face.js.map +1 -0
  590. package/dist/lib/i18n/areas/chat-chart.js +118 -0
  591. package/dist/lib/i18n/areas/chat-chart.js.map +1 -0
  592. package/dist/lib/i18n/areas/code-editor.js +24 -0
  593. package/dist/lib/i18n/areas/code-editor.js.map +1 -0
  594. package/dist/lib/i18n/areas/date-timeline.js +21 -0
  595. package/dist/lib/i18n/areas/date-timeline.js.map +1 -0
  596. package/dist/lib/i18n/areas/dates.js +71 -0
  597. package/dist/lib/i18n/areas/dates.js.map +1 -0
  598. package/dist/lib/i18n/areas/docs-views.js +183 -0
  599. package/dist/lib/i18n/areas/docs-views.js.map +1 -0
  600. package/dist/lib/i18n/areas/feedback.js +75 -0
  601. package/dist/lib/i18n/areas/feedback.js.map +1 -0
  602. package/dist/lib/i18n/areas/formats.js +24 -0
  603. package/dist/lib/i18n/areas/formats.js.map +1 -0
  604. package/dist/lib/i18n/areas/forms.js +110 -0
  605. package/dist/lib/i18n/areas/forms.js.map +1 -0
  606. package/dist/lib/i18n/areas/keys.js +25 -0
  607. package/dist/lib/i18n/areas/keys.js.map +1 -0
  608. package/dist/lib/i18n/areas/markdown.js +136 -0
  609. package/dist/lib/i18n/areas/markdown.js.map +1 -0
  610. package/dist/lib/i18n/areas/move-rejected.js +14 -0
  611. package/dist/lib/i18n/areas/move-rejected.js.map +1 -0
  612. package/dist/lib/i18n/areas/navigation.js +104 -0
  613. package/dist/lib/i18n/areas/navigation.js.map +1 -0
  614. package/dist/lib/i18n/areas/rbac.js +331 -0
  615. package/dist/lib/i18n/areas/rbac.js.map +1 -0
  616. package/dist/lib/i18n/emphasis.js +6 -0
  617. package/dist/lib/i18n/emphasis.js.map +1 -0
  618. package/dist/lib/i18n/number-format.js +9 -0
  619. package/dist/lib/i18n/number-format.js.map +1 -0
  620. package/dist/lib/i18n/plural.js +9 -0
  621. package/dist/lib/i18n/plural.js.map +1 -0
  622. package/dist/lib/i18n/provider.js +27 -0
  623. package/dist/lib/i18n/provider.js.map +1 -0
  624. package/dist/lib/i18n/strings.js +38 -0
  625. package/dist/lib/i18n/strings.js.map +1 -0
  626. package/dist/lib/icons.js +17 -0
  627. package/dist/lib/icons.js.map +1 -0
  628. package/dist/lib/interactive-target.js +9 -0
  629. package/dist/lib/interactive-target.js.map +1 -0
  630. package/dist/lib/intl-cache.js +69 -0
  631. package/dist/lib/intl-cache.js.map +1 -0
  632. package/dist/lib/legal-document.js +37 -0
  633. package/dist/lib/legal-document.js.map +1 -0
  634. package/dist/lib/line-diff-model.js +51 -0
  635. package/dist/lib/line-diff-model.js.map +1 -0
  636. package/dist/lib/markdown/attachments.js +71 -0
  637. package/dist/lib/markdown/attachments.js.map +1 -0
  638. package/dist/lib/markdown/caret-map.js +153 -0
  639. package/dist/lib/markdown/caret-map.js.map +1 -0
  640. package/dist/lib/markdown/caret.js +35 -0
  641. package/dist/lib/markdown/caret.js.map +1 -0
  642. package/dist/lib/markdown/commands.js +443 -0
  643. package/dist/lib/markdown/commands.js.map +1 -0
  644. package/dist/lib/markdown/convert.js +153 -0
  645. package/dist/lib/markdown/convert.js.map +1 -0
  646. package/dist/lib/markdown/dom.js +89 -0
  647. package/dist/lib/markdown/dom.js.map +1 -0
  648. package/dist/lib/markdown/edit.js +92 -0
  649. package/dist/lib/markdown/edit.js.map +1 -0
  650. package/dist/lib/markdown/history.js +79 -0
  651. package/dist/lib/markdown/history.js.map +1 -0
  652. package/dist/lib/markdown/hotkeys.js +63 -0
  653. package/dist/lib/markdown/hotkeys.js.map +1 -0
  654. package/dist/lib/markdown/image-pipeline.js +236 -0
  655. package/dist/lib/markdown/image-pipeline.js.map +1 -0
  656. package/dist/lib/markdown/images.js +85 -0
  657. package/dist/lib/markdown/images.js.map +1 -0
  658. package/dist/lib/markdown/input.js +210 -0
  659. package/dist/lib/markdown/input.js.map +1 -0
  660. package/dist/lib/markdown/keys.js +37 -0
  661. package/dist/lib/markdown/keys.js.map +1 -0
  662. package/dist/lib/markdown/paste.js +180 -0
  663. package/dist/lib/markdown/paste.js.map +1 -0
  664. package/dist/lib/markdown/position.js +111 -0
  665. package/dist/lib/markdown/position.js.map +1 -0
  666. package/dist/lib/markdown/project.js +108 -0
  667. package/dist/lib/markdown/project.js.map +1 -0
  668. package/dist/lib/markdown/reconcile.js +127 -0
  669. package/dist/lib/markdown/reconcile.js.map +1 -0
  670. package/dist/lib/markdown/surface.js +373 -0
  671. package/dist/lib/markdown/surface.js.map +1 -0
  672. package/dist/lib/motion.js +22 -0
  673. package/dist/lib/motion.js.map +1 -0
  674. package/dist/lib/pad.js +7 -0
  675. package/dist/lib/pad.js.map +1 -0
  676. package/dist/lib/paged-window/layout.js +15 -0
  677. package/dist/lib/paged-window/layout.js.map +1 -0
  678. package/dist/lib/paged-window/list-owner.js +21 -0
  679. package/dist/lib/paged-window/list-owner.js.map +1 -0
  680. package/dist/lib/paged-window/records-binding.js +239 -0
  681. package/dist/lib/paged-window/records-binding.js.map +1 -0
  682. package/dist/lib/paged-window/store.js +562 -0
  683. package/dist/lib/paged-window/store.js.map +1 -0
  684. package/dist/lib/paged-window/use-measured-pitch.js +38 -0
  685. package/dist/lib/paged-window/use-measured-pitch.js.map +1 -0
  686. package/dist/lib/paged-window/use-page-visibility.js +36 -0
  687. package/dist/lib/paged-window/use-page-visibility.js.map +1 -0
  688. package/dist/lib/paged-window/use-paged-window.js +43 -0
  689. package/dist/lib/paged-window/use-paged-window.js.map +1 -0
  690. package/dist/lib/paged-window/use-scroll-root.js +12 -0
  691. package/dist/lib/paged-window/use-scroll-root.js.map +1 -0
  692. package/dist/lib/persist.js +84 -0
  693. package/dist/lib/persist.js.map +1 -0
  694. package/dist/lib/preference-values.js +13 -0
  695. package/dist/lib/preference-values.js.map +1 -0
  696. package/dist/lib/preferences.js +86 -0
  697. package/dist/lib/preferences.js.map +1 -0
  698. package/dist/lib/reads/hooks.js +156 -0
  699. package/dist/lib/reads/hooks.js.map +1 -0
  700. package/dist/lib/reads/optimistic.js +169 -0
  701. package/dist/lib/reads/optimistic.js.map +1 -0
  702. package/dist/lib/reads/refetch.js +108 -0
  703. package/dist/lib/reads/refetch.js.map +1 -0
  704. package/dist/lib/reads/slots.js +215 -0
  705. package/dist/lib/reads/slots.js.map +1 -0
  706. package/dist/lib/realtime/hooks.js +40 -0
  707. package/dist/lib/realtime/hooks.js.map +1 -0
  708. package/dist/lib/realtime/provider.js +25 -0
  709. package/dist/lib/realtime/provider.js.map +1 -0
  710. package/dist/lib/realtime/registry.js +472 -0
  711. package/dist/lib/realtime/registry.js.map +1 -0
  712. package/dist/lib/records/define-record-type.js +33 -0
  713. package/dist/lib/records/define-record-type.js.map +1 -0
  714. package/dist/lib/records/hooks.js +39 -0
  715. package/dist/lib/records/hooks.js.map +1 -0
  716. package/dist/lib/records/store.js +572 -0
  717. package/dist/lib/records/store.js.map +1 -0
  718. package/dist/lib/records/wire.js +58 -0
  719. package/dist/lib/records/wire.js.map +1 -0
  720. package/dist/lib/reduced-motion-help.js +19 -0
  721. package/dist/lib/reduced-motion-help.js.map +1 -0
  722. package/dist/lib/scroll-caret.js +18 -0
  723. package/dist/lib/scroll-caret.js.map +1 -0
  724. package/dist/lib/sim/createSimStore.js +54 -0
  725. package/dist/lib/sim/createSimStore.js.map +1 -0
  726. package/dist/lib/sim/latency.js +28 -0
  727. package/dist/lib/sim/latency.js.map +1 -0
  728. package/dist/lib/sim/registry.js +13 -0
  729. package/dist/lib/sim/registry.js.map +1 -0
  730. package/dist/lib/sim/settings.js +41 -0
  731. package/dist/lib/sim/settings.js.map +1 -0
  732. package/dist/lib/submit-shortcut.js +25 -0
  733. package/dist/lib/submit-shortcut.js.map +1 -0
  734. package/dist/lib/syntax/index.js +33 -0
  735. package/dist/lib/syntax/index.js.map +1 -0
  736. package/dist/lib/syntax/languages/bash.js +77 -0
  737. package/dist/lib/syntax/languages/bash.js.map +1 -0
  738. package/dist/lib/syntax/languages/css.js +81 -0
  739. package/dist/lib/syntax/languages/css.js.map +1 -0
  740. package/dist/lib/syntax/languages/html.js +91 -0
  741. package/dist/lib/syntax/languages/html.js.map +1 -0
  742. package/dist/lib/syntax/languages/index.js +49 -0
  743. package/dist/lib/syntax/languages/index.js.map +1 -0
  744. package/dist/lib/syntax/languages/javascript.js +133 -0
  745. package/dist/lib/syntax/languages/javascript.js.map +1 -0
  746. package/dist/lib/syntax/languages/json.js +45 -0
  747. package/dist/lib/syntax/languages/json.js.map +1 -0
  748. package/dist/lib/syntax/languages/mongodb.js +24 -0
  749. package/dist/lib/syntax/languages/mongodb.js.map +1 -0
  750. package/dist/lib/syntax/languages/plain.js +10 -0
  751. package/dist/lib/syntax/languages/plain.js.map +1 -0
  752. package/dist/lib/syntax/languages/sql.js +113 -0
  753. package/dist/lib/syntax/languages/sql.js.map +1 -0
  754. package/dist/lib/syntax/languages/vue.js +31 -0
  755. package/dist/lib/syntax/languages/vue.js.map +1 -0
  756. package/dist/lib/syntax/languages/yaml.js +55 -0
  757. package/dist/lib/syntax/languages/yaml.js.map +1 -0
  758. package/dist/lib/syntax/markdown/grammar.js +52 -0
  759. package/dist/lib/syntax/markdown/grammar.js.map +1 -0
  760. package/dist/lib/syntax/markdown/inline.js +477 -0
  761. package/dist/lib/syntax/markdown/inline.js.map +1 -0
  762. package/dist/lib/syntax/markdown/parse.js +464 -0
  763. package/dist/lib/syntax/markdown/parse.js.map +1 -0
  764. package/dist/lib/syntax/markdown/refs.js +94 -0
  765. package/dist/lib/syntax/markdown/refs.js.map +1 -0
  766. package/dist/lib/syntax/markdown/render.js +230 -0
  767. package/dist/lib/syntax/markdown/render.js.map +1 -0
  768. package/dist/lib/syntax/markdown/spans.js +40 -0
  769. package/dist/lib/syntax/markdown/spans.js.map +1 -0
  770. package/dist/lib/syntax/registry.js +55 -0
  771. package/dist/lib/syntax/registry.js.map +1 -0
  772. package/dist/lib/syntax/tokenize.js +96 -0
  773. package/dist/lib/syntax/tokenize.js.map +1 -0
  774. package/dist/lib/time/instant.js +7 -0
  775. package/dist/lib/time/instant.js.map +1 -0
  776. package/dist/lib/time/plain.js +83 -0
  777. package/dist/lib/time/plain.js.map +1 -0
  778. package/dist/lib/time/relativeAge.js +20 -0
  779. package/dist/lib/time/relativeAge.js.map +1 -0
  780. package/dist/lib/time/relativeClock.js +59 -0
  781. package/dist/lib/time/relativeClock.js.map +1 -0
  782. package/dist/lib/time/types.js +23 -0
  783. package/dist/lib/time/types.js.map +1 -0
  784. package/dist/lib/time/zone.js +148 -0
  785. package/dist/lib/time/zone.js.map +1 -0
  786. package/dist/lib/use-controllable.js +16 -0
  787. package/dist/lib/use-controllable.js.map +1 -0
  788. package/dist/lib/use-fill-height.js +49 -0
  789. package/dist/lib/use-fill-height.js.map +1 -0
  790. package/dist/lib/use-hydrated.js +14 -0
  791. package/dist/lib/use-hydrated.js.map +1 -0
  792. package/dist/lib/use-media-query.js +30 -0
  793. package/dist/lib/use-media-query.js.map +1 -0
  794. package/dist/lib/use-relabel-base-ui-dismiss.js +26 -0
  795. package/dist/lib/use-relabel-base-ui-dismiss.js.map +1 -0
  796. package/dist/lib/use-release-snap-drag.js +29 -0
  797. package/dist/lib/use-release-snap-drag.js.map +1 -0
  798. package/dist/lib/use-roving-options.js +18 -0
  799. package/dist/lib/use-roving-options.js.map +1 -0
  800. package/dist/lib/values/absent.js +5 -0
  801. package/dist/lib/values/absent.js.map +1 -0
  802. package/dist/lib/values/boolean.js +13 -0
  803. package/dist/lib/values/boolean.js.map +1 -0
  804. package/dist/lib/values/currency.js +23 -0
  805. package/dist/lib/values/currency.js.map +1 -0
  806. package/dist/lib/values/date.js +35 -0
  807. package/dist/lib/values/date.js.map +1 -0
  808. package/dist/lib/values/datetime.js +54 -0
  809. package/dist/lib/values/datetime.js.map +1 -0
  810. package/dist/lib/values/locale-date.js +60 -0
  811. package/dist/lib/values/locale-date.js.map +1 -0
  812. package/dist/lib/values/number.js +16 -0
  813. package/dist/lib/values/number.js.map +1 -0
  814. package/dist/pure.js +379 -0
  815. package/dist/pure.js.map +1 -0
  816. package/dist/styles.css +190 -0
  817. package/dist/theme.css +360 -0
  818. package/dist/types/components/Accordion.d.ts +15 -0
  819. package/dist/types/components/AgentWorkingSpinner.d.ts +23 -0
  820. package/dist/types/components/AppShell.d.ts +164 -0
  821. package/dist/types/components/Attention.d.ts +87 -0
  822. package/dist/types/components/Avatar.d.ts +154 -0
  823. package/dist/types/components/Badge.d.ts +131 -0
  824. package/dist/types/components/Board.d.ts +239 -0
  825. package/dist/types/components/Button.d.ts +208 -0
  826. package/dist/types/components/Callout.d.ts +163 -0
  827. package/dist/types/components/Card.d.ts +219 -0
  828. package/dist/types/components/Choice.d.ts +127 -0
  829. package/dist/types/components/CodeEditor.d.ts +86 -0
  830. package/dist/types/components/ColorPicker.d.ts +14 -0
  831. package/dist/types/components/Combobox.d.ts +43 -0
  832. package/dist/types/components/CommandPalette.d.ts +35 -0
  833. package/dist/types/components/ConcentricRing.d.ts +61 -0
  834. package/dist/types/components/ConnectionCard.d.ts +64 -0
  835. package/dist/types/components/ContextItemRow.d.ts +35 -0
  836. package/dist/types/components/CopyValue.d.ts +14 -0
  837. package/dist/types/components/CountBadge.d.ts +14 -0
  838. package/dist/types/components/DateCalendar.d.ts +30 -0
  839. package/dist/types/components/DateField.d.ts +29 -0
  840. package/dist/types/components/DatePicker.d.ts +20 -0
  841. package/dist/types/components/DateTimeText.d.ts +9 -0
  842. package/dist/types/components/DescriptionList.d.ts +40 -0
  843. package/dist/types/components/Dialog.d.ts +269 -0
  844. package/dist/types/components/DragDrop.d.ts +196 -0
  845. package/dist/types/components/Drawer.d.ts +163 -0
  846. package/dist/types/components/EditGutter.d.ts +44 -0
  847. package/dist/types/components/EmojiPicker.d.ts +30 -0
  848. package/dist/types/components/ErrorBoundary.d.ts +43 -0
  849. package/dist/types/components/Field.d.ts +37 -0
  850. package/dist/types/components/FileUpload.d.ts +22 -0
  851. package/dist/types/components/FilterMenu.d.ts +120 -0
  852. package/dist/types/components/GatesSection.d.ts +79 -0
  853. package/dist/types/components/Icon.d.ts +40 -0
  854. package/dist/types/components/IconButton.d.ts +69 -0
  855. package/dist/types/components/IconStack.d.ts +28 -0
  856. package/dist/types/components/ImageUploadField.d.ts +38 -0
  857. package/dist/types/components/InlineEdit.d.ts +183 -0
  858. package/dist/types/components/InlineMarkdownEdit.d.ts +100 -0
  859. package/dist/types/components/Input.d.ts +128 -0
  860. package/dist/types/components/LegalDocument.d.ts +23 -0
  861. package/dist/types/components/LineDiff.d.ts +53 -0
  862. package/dist/types/components/ListHeader.d.ts +45 -0
  863. package/dist/types/components/Loading.d.ts +131 -0
  864. package/dist/types/components/Markdown.d.ts +35 -0
  865. package/dist/types/components/MarkdownEditor.d.ts +129 -0
  866. package/dist/types/components/Menu.d.ts +157 -0
  867. package/dist/types/components/Navigation.d.ts +67 -0
  868. package/dist/types/components/NumberInput.d.ts +177 -0
  869. package/dist/types/components/OTPInput.d.ts +13 -0
  870. package/dist/types/components/OrderedEntityManager.d.ts +64 -0
  871. package/dist/types/components/PagedWindowList.d.ts +23 -0
  872. package/dist/types/components/PaginationBar.d.ts +31 -0
  873. package/dist/types/components/Panel.d.ts +94 -0
  874. package/dist/types/components/PasswordInput.d.ts +7 -0
  875. package/dist/types/components/PasswordRequirements.d.ts +11 -0
  876. package/dist/types/components/PatchDiff.d.ts +38 -0
  877. package/dist/types/components/PendingVeil.d.ts +8 -0
  878. package/dist/types/components/Popover.d.ts +231 -0
  879. package/dist/types/components/Progress.d.ts +580 -0
  880. package/dist/types/components/RatingScale.d.ts +30 -0
  881. package/dist/types/components/ReadMore.d.ts +26 -0
  882. package/dist/types/components/RecordCard.d.ts +413 -0
  883. package/dist/types/components/RelativeTime.d.ts +17 -0
  884. package/dist/types/components/SandboxedFrame.d.ts +37 -0
  885. package/dist/types/components/SearchInput.d.ts +6 -0
  886. package/dist/types/components/SecretField.d.ts +90 -0
  887. package/dist/types/components/SectionNav.d.ts +15 -0
  888. package/dist/types/components/Select.d.ts +53 -0
  889. package/dist/types/components/SequenceDiagram.d.ts +15 -0
  890. package/dist/types/components/SettingRow.d.ts +144 -0
  891. package/dist/types/components/SignOffRings.d.ts +29 -0
  892. package/dist/types/components/Slider.d.ts +255 -0
  893. package/dist/types/components/SolutionChoice.d.ts +49 -0
  894. package/dist/types/components/SortMenu.d.ts +45 -0
  895. package/dist/types/components/Spinner.d.ts +29 -0
  896. package/dist/types/components/Stat.d.ts +136 -0
  897. package/dist/types/components/StatusSelect.d.ts +93 -0
  898. package/dist/types/components/Surface.d.ts +145 -0
  899. package/dist/types/components/Table.d.ts +164 -0
  900. package/dist/types/components/Tabs.d.ts +142 -0
  901. package/dist/types/components/ThemeMenu.d.ts +56 -0
  902. package/dist/types/components/Toast.d.ts +63 -0
  903. package/dist/types/components/Toggle.d.ts +168 -0
  904. package/dist/types/components/ToggleMatrix.d.ts +51 -0
  905. package/dist/types/components/Tree.d.ts +20 -0
  906. package/dist/types/components/TriStateSwitch.d.ts +63 -0
  907. package/dist/types/components/VideoPlayer.d.ts +26 -0
  908. package/dist/types/components/auth/AcceptInvitationCard.d.ts +54 -0
  909. package/dist/types/components/auth/AuthLayout.d.ts +12 -0
  910. package/dist/types/components/auth/ForgotPasswordForm.d.ts +6 -0
  911. package/dist/types/components/auth/LoginForm.d.ts +13 -0
  912. package/dist/types/components/auth/ResetPasswordForm.d.ts +9 -0
  913. package/dist/types/components/auth/SignInProviders.d.ts +56 -0
  914. package/dist/types/components/auth/SignupCard.d.ts +62 -0
  915. package/dist/types/components/auth/TermsAcceptance.d.ts +14 -0
  916. package/dist/types/components/auth/index.d.ts +8 -0
  917. package/dist/types/components/board/context.d.ts +65 -0
  918. package/dist/types/components/board/recipe.d.ts +97 -0
  919. package/dist/types/components/calendar/CalendarMonth.d.ts +32 -0
  920. package/dist/types/components/calendar/CalendarTimeGrid.d.ts +74 -0
  921. package/dist/types/components/calendar/EventActions.d.ts +16 -0
  922. package/dist/types/components/calendar/format.d.ts +42 -0
  923. package/dist/types/components/calendar/palette.d.ts +17 -0
  924. package/dist/types/components/calendar/use-calendar-drag.d.ts +53 -0
  925. package/dist/types/components/calendar/use-event-keyboard.d.ts +23 -0
  926. package/dist/types/components/calendar/use-grid-navigation.d.ts +47 -0
  927. package/dist/types/components/calendar/use-now.d.ts +20 -0
  928. package/dist/types/components/card-face/AcRingGlyph.d.ts +20 -0
  929. package/dist/types/components/card-face/BoardCardAgentSlot.d.ts +19 -0
  930. package/dist/types/components/card-face/CardFace.d.ts +106 -0
  931. package/dist/types/components/card-face/CardTypeBadge.d.ts +21 -0
  932. package/dist/types/components/card-face/EffortBadge.d.ts +9 -0
  933. package/dist/types/components/card-face/GateRingGlyph.d.ts +22 -0
  934. package/dist/types/components/card-face/OverflowRow.d.ts +40 -0
  935. package/dist/types/components/card-face/TapTip.d.ts +15 -0
  936. package/dist/types/components/card-face/hit-area.d.ts +20 -0
  937. package/dist/types/components/card-face/vocabulary.d.ts +83 -0
  938. package/dist/types/components/chart/BarList.d.ts +27 -0
  939. package/dist/types/components/chart/LineChart.d.ts +64 -0
  940. package/dist/types/components/chart/ShareBar.d.ts +26 -0
  941. package/dist/types/components/chart/TimeSeriesChart.d.ts +60 -0
  942. package/dist/types/components/chart/label-metrics.d.ts +9 -0
  943. package/dist/types/components/chart/line-chart-axis.d.ts +14 -0
  944. package/dist/types/components/chart/line-chart-scale.d.ts +55 -0
  945. package/dist/types/components/chart/line-series-style.d.ts +14 -0
  946. package/dist/types/components/chart/share-bar-labels.d.ts +17 -0
  947. package/dist/types/components/chart/shared.d.ts +122 -0
  948. package/dist/types/components/chart/time-series-scale.d.ts +29 -0
  949. package/dist/types/components/chat/Attachment.d.ts +125 -0
  950. package/dist/types/components/chat/Chat.d.ts +60 -0
  951. package/dist/types/components/chat/Composer.d.ts +62 -0
  952. package/dist/types/components/chat/ContextMeter.d.ts +45 -0
  953. package/dist/types/components/chat/EffortControl.d.ts +23 -0
  954. package/dist/types/components/chat/FileCover.d.ts +14 -0
  955. package/dist/types/components/chat/Message.d.ts +66 -0
  956. package/dist/types/components/chat/MessageScroller.d.ts +18 -0
  957. package/dist/types/components/chat/ModelSelector.d.ts +44 -0
  958. package/dist/types/components/chat/StreamingMarkdown.d.ts +11 -0
  959. package/dist/types/components/chat/download-file.d.ts +7 -0
  960. package/dist/types/components/chat/file-icon.d.ts +29 -0
  961. package/dist/types/components/chat/types.d.ts +165 -0
  962. package/dist/types/components/checklist/StatusChecklist.d.ts +37 -0
  963. package/dist/types/components/checklist/index.d.ts +3 -0
  964. package/dist/types/components/checklist/tally.d.ts +19 -0
  965. package/dist/types/components/checklist/types.d.ts +28 -0
  966. package/dist/types/components/code-editor/context.d.ts +32 -0
  967. package/dist/types/components/code-editor/editing.d.ts +39 -0
  968. package/dist/types/components/code-editor/highlight.d.ts +20 -0
  969. package/dist/types/components/code-editor/recipe.d.ts +109 -0
  970. package/dist/types/components/date-timeline/DateTimeline.d.ts +99 -0
  971. package/dist/types/components/date-timeline/TimelineRow.d.ts +22 -0
  972. package/dist/types/components/date-timeline/useBarDrag.d.ts +15 -0
  973. package/dist/types/components/date-timeline/useMarkerDrag.d.ts +14 -0
  974. package/dist/types/components/date-timeline/useTimelineZoom.d.ts +23 -0
  975. package/dist/types/components/drag-drop/context.d.ts +85 -0
  976. package/dist/types/components/drag-drop/recipe.d.ts +163 -0
  977. package/dist/types/components/drag-drop/shift.d.ts +153 -0
  978. package/dist/types/components/edit/activation.d.ts +21 -0
  979. package/dist/types/components/edit/outcome.d.ts +29 -0
  980. package/dist/types/components/edit/use-edit-session.d.ts +77 -0
  981. package/dist/types/components/file-viewer/FileViewer.d.ts +2 -0
  982. package/dist/types/components/file-viewer/PageNumberJumpField.d.ts +9 -0
  983. package/dist/types/components/file-viewer/ViewerControls.d.ts +20 -0
  984. package/dist/types/components/file-viewer/ViewerRail.d.ts +10 -0
  985. package/dist/types/components/file-viewer/ViewerStage.d.ts +22 -0
  986. package/dist/types/components/file-viewer/frames.d.ts +28 -0
  987. package/dist/types/components/file-viewer/index.d.ts +3 -0
  988. package/dist/types/components/file-viewer/types.d.ts +70 -0
  989. package/dist/types/components/file-viewer/use-frame-cursor.d.ts +13 -0
  990. package/dist/types/components/file-viewer/use-viewer-keys.d.ts +24 -0
  991. package/dist/types/components/file-viewer/use-viewer-zoom.d.ts +29 -0
  992. package/dist/types/components/focus-web/FocusWeb.d.ts +3 -0
  993. package/dist/types/components/focus-web/index.d.ts +4 -0
  994. package/dist/types/components/focus-web/layout.d.ts +55 -0
  995. package/dist/types/components/focus-web/types.d.ts +131 -0
  996. package/dist/types/components/graph-explorer/GraphExplorer.d.ts +42 -0
  997. package/dist/types/components/graph-explorer/camera-math.d.ts +119 -0
  998. package/dist/types/components/graph-explorer/index.d.ts +5 -0
  999. package/dist/types/components/graph-explorer/tree-layout.d.ts +67 -0
  1000. package/dist/types/components/graph-explorer/types.d.ts +62 -0
  1001. package/dist/types/components/graph-explorer/use-camera.d.ts +81 -0
  1002. package/dist/types/components/graph-explorer/viewport-gesture.d.ts +32 -0
  1003. package/dist/types/components/kanban/KanbanBoard.d.ts +72 -0
  1004. package/dist/types/components/kanban/recipe.d.ts +73 -0
  1005. package/dist/types/components/kanban/types.d.ts +55 -0
  1006. package/dist/types/components/markdown/Affordances.d.ts +105 -0
  1007. package/dist/types/components/markdown/AttachmentStrip.d.ts +25 -0
  1008. package/dist/types/components/markdown/ImageUpload.d.ts +56 -0
  1009. package/dist/types/components/media-error.d.ts +11 -0
  1010. package/dist/types/components/nav-sections.d.ts +10 -0
  1011. package/dist/types/components/node-canvas/NodeCanvas.d.ts +66 -0
  1012. package/dist/types/components/node-canvas/index.d.ts +3 -0
  1013. package/dist/types/components/node-canvas/layout.d.ts +29 -0
  1014. package/dist/types/components/node-canvas/types.d.ts +207 -0
  1015. package/dist/types/components/node-canvas/use-canvas-gestures.d.ts +39 -0
  1016. package/dist/types/components/openapi/OpenApiViewer.d.ts +14 -0
  1017. package/dist/types/components/openapi/OperationCard.d.ts +33 -0
  1018. package/dist/types/components/openapi/SchemaView.d.ts +14 -0
  1019. package/dist/types/components/openapi/index.d.ts +6 -0
  1020. package/dist/types/components/openapi/resolve.d.ts +72 -0
  1021. package/dist/types/components/openapi/types.d.ts +128 -0
  1022. package/dist/types/components/overlay-shell.d.ts +48 -0
  1023. package/dist/types/components/overlay-stack.d.ts +18 -0
  1024. package/dist/types/components/paged-window/PageBlock.d.ts +31 -0
  1025. package/dist/types/components/provenance/ConfidenceBar.d.ts +118 -0
  1026. package/dist/types/components/provenance/ConfidenceMeter.d.ts +21 -0
  1027. package/dist/types/components/provenance/ConfidenceReadout.d.ts +17 -0
  1028. package/dist/types/components/provenance/ProvenanceBadge.d.ts +23 -0
  1029. package/dist/types/components/provenance/ProvenanceDetail.d.ts +109 -0
  1030. package/dist/types/components/provenance/ProvenanceDisclosure.d.ts +107 -0
  1031. package/dist/types/components/provenance/absence.d.ts +37 -0
  1032. package/dist/types/components/provenance/index.d.ts +7 -0
  1033. package/dist/types/components/provenance/types.d.ts +137 -0
  1034. package/dist/types/components/rbac/AccessRequestPanel.d.ts +92 -0
  1035. package/dist/types/components/rbac/AccountMenu.d.ts +46 -0
  1036. package/dist/types/components/rbac/AgentKeysList.d.ts +20 -0
  1037. package/dist/types/components/rbac/ApiKeysPanel.d.ts +26 -0
  1038. package/dist/types/components/rbac/ApiKeysTable.d.ts +63 -0
  1039. package/dist/types/components/rbac/Brand.d.ts +8 -0
  1040. package/dist/types/components/rbac/Can.d.ts +19 -0
  1041. package/dist/types/components/rbac/ChangePasswordForm.d.ts +18 -0
  1042. package/dist/types/components/rbac/DangerZone.d.ts +8 -0
  1043. package/dist/types/components/rbac/DevToolsPopover.d.ts +36 -0
  1044. package/dist/types/components/rbac/EndedLine.d.ts +21 -0
  1045. package/dist/types/components/rbac/InvitationsList.d.ts +39 -0
  1046. package/dist/types/components/rbac/InviteMembersDialog.d.ts +21 -0
  1047. package/dist/types/components/rbac/MembersPanel.d.ts +31 -0
  1048. package/dist/types/components/rbac/PermissionRequestPanel.d.ts +36 -0
  1049. package/dist/types/components/rbac/ProfileForm.d.ts +27 -0
  1050. package/dist/types/components/rbac/ProfilePage.d.ts +16 -0
  1051. package/dist/types/components/rbac/RBACProvider.d.ts +69 -0
  1052. package/dist/types/components/rbac/RoleEditorDialog.d.ts +28 -0
  1053. package/dist/types/components/rbac/RoleKeyPicker.d.ts +24 -0
  1054. package/dist/types/components/rbac/RolePermissionMatrix.d.ts +21 -0
  1055. package/dist/types/components/rbac/RolesPermissionsPage.d.ts +24 -0
  1056. package/dist/types/components/rbac/SessionsList.d.ts +35 -0
  1057. package/dist/types/components/rbac/TeamSettingsForm.d.ts +22 -0
  1058. package/dist/types/components/rbac/TeamSwitcher.d.ts +5 -0
  1059. package/dist/types/components/rbac/approvalPanelParts.d.ts +69 -0
  1060. package/dist/types/components/rbac/index.d.ts +25 -0
  1061. package/dist/types/components/rbac/permissionSections.d.ts +8 -0
  1062. package/dist/types/components/rbac/stagedForm.d.ts +25 -0
  1063. package/dist/types/components/rbac/types.d.ts +65 -0
  1064. package/dist/types/components/rbac/useStagedImage.d.ts +15 -0
  1065. package/dist/types/components/roadmap/PhaseManager.d.ts +19 -0
  1066. package/dist/types/components/roadmap/RoadmapItemCard.d.ts +51 -0
  1067. package/dist/types/components/roadmap/RoadmapPage.d.ts +12 -0
  1068. package/dist/types/components/roadmap/RoadmapSwimlaneBoard.d.ts +15 -0
  1069. package/dist/types/components/roadmap/TrackManager.d.ts +19 -0
  1070. package/dist/types/components/roadmap/UseCaseCard.d.ts +30 -0
  1071. package/dist/types/components/roadmap/UseCaseLedgerPage.d.ts +29 -0
  1072. package/dist/types/components/roadmap/chip-tones.d.ts +2 -0
  1073. package/dist/types/components/roadmap/derive.d.ts +39 -0
  1074. package/dist/types/components/roadmap/index.d.ts +10 -0
  1075. package/dist/types/components/roadmap/types.d.ts +86 -0
  1076. package/dist/types/components/stepper/Stepper.d.ts +79 -0
  1077. package/dist/types/components/stepper/derive.d.ts +49 -0
  1078. package/dist/types/components/stepper/index.d.ts +3 -0
  1079. package/dist/types/components/stepper/types.d.ts +118 -0
  1080. package/dist/types/icons/data.d.ts +2054 -0
  1081. package/dist/types/index.d.ts +209 -0
  1082. package/dist/types/lib/attention.d.ts +62 -0
  1083. package/dist/types/lib/board/anchor.d.ts +69 -0
  1084. package/dist/types/lib/board/index.d.ts +17 -0
  1085. package/dist/types/lib/board/model.d.ts +43 -0
  1086. package/dist/types/lib/board/move.d.ts +181 -0
  1087. package/dist/types/lib/board/position.d.ts +22 -0
  1088. package/dist/types/lib/board/rejection.d.ts +8 -0
  1089. package/dist/types/lib/board/types.d.ts +294 -0
  1090. package/dist/types/lib/board/use-board.d.ts +47 -0
  1091. package/dist/types/lib/calendar/band-packer.d.ts +53 -0
  1092. package/dist/types/lib/calendar/drag.d.ts +125 -0
  1093. package/dist/types/lib/calendar/index.d.ts +4 -0
  1094. package/dist/types/lib/calendar/lane-packer.d.ts +88 -0
  1095. package/dist/types/lib/calendar/segments.d.ts +91 -0
  1096. package/dist/types/lib/calendar/types.d.ts +166 -0
  1097. package/dist/types/lib/chart-palette.d.ts +14 -0
  1098. package/dist/types/lib/clipboard.d.ts +12 -0
  1099. package/dist/types/lib/cn.d.ts +7 -0
  1100. package/dist/types/lib/color.d.ts +14 -0
  1101. package/dist/types/lib/component-guidance.d.ts +15 -0
  1102. package/dist/types/lib/confidence.d.ts +28 -0
  1103. package/dist/types/lib/date-timeline/scale.d.ts +143 -0
  1104. package/dist/types/lib/design-frame/document.d.ts +39 -0
  1105. package/dist/types/lib/design-frame/mini-app-script.d.ts +29 -0
  1106. package/dist/types/lib/design-frame/mini-app.d.ts +17 -0
  1107. package/dist/types/lib/design-frame/protocol.d.ts +78 -0
  1108. package/dist/types/lib/dev-warn.d.ts +10 -0
  1109. package/dist/types/lib/dnd/announce.d.ts +124 -0
  1110. package/dist/types/lib/dnd/autoscroll.d.ts +88 -0
  1111. package/dist/types/lib/dnd/cross-drop.d.ts +18 -0
  1112. package/dist/types/lib/dnd/geometry.d.ts +126 -0
  1113. package/dist/types/lib/dnd/index.d.ts +17 -0
  1114. package/dist/types/lib/dnd/sensors/gesture.d.ts +37 -0
  1115. package/dist/types/lib/dnd/sensors/keyboard.d.ts +54 -0
  1116. package/dist/types/lib/dnd/sensors/pointer.d.ts +59 -0
  1117. package/dist/types/lib/dnd/session.d.ts +124 -0
  1118. package/dist/types/lib/dnd/types.d.ts +226 -0
  1119. package/dist/types/lib/dnd/use-drag.d.ts +82 -0
  1120. package/dist/types/lib/dom/scroll-ancestor.d.ts +15 -0
  1121. package/dist/types/lib/format.d.ts +33 -0
  1122. package/dist/types/lib/group-in-order.d.ts +13 -0
  1123. package/dist/types/lib/header-fold.d.ts +10 -0
  1124. package/dist/types/lib/i18n/areas/auth-provenance-flows.d.ts +287 -0
  1125. package/dist/types/lib/i18n/areas/board.d.ts +51 -0
  1126. package/dist/types/lib/i18n/areas/card-face.d.ts +8 -0
  1127. package/dist/types/lib/i18n/areas/chat-chart.d.ts +202 -0
  1128. package/dist/types/lib/i18n/areas/code-editor.d.ts +40 -0
  1129. package/dist/types/lib/i18n/areas/date-timeline.d.ts +36 -0
  1130. package/dist/types/lib/i18n/areas/dates.d.ts +103 -0
  1131. package/dist/types/lib/i18n/areas/docs-views.d.ts +297 -0
  1132. package/dist/types/lib/i18n/areas/feedback.d.ts +132 -0
  1133. package/dist/types/lib/i18n/areas/formats.d.ts +30 -0
  1134. package/dist/types/lib/i18n/areas/forms.d.ts +182 -0
  1135. package/dist/types/lib/i18n/areas/keys.d.ts +15 -0
  1136. package/dist/types/lib/i18n/areas/markdown.d.ts +150 -0
  1137. package/dist/types/lib/i18n/areas/move-rejected.d.ts +16 -0
  1138. package/dist/types/lib/i18n/areas/navigation.d.ts +185 -0
  1139. package/dist/types/lib/i18n/areas/rbac.d.ts +633 -0
  1140. package/dist/types/lib/i18n/emphasis.d.ts +3 -0
  1141. package/dist/types/lib/i18n/index.d.ts +10 -0
  1142. package/dist/types/lib/i18n/number-format.d.ts +5 -0
  1143. package/dist/types/lib/i18n/plural.d.ts +7 -0
  1144. package/dist/types/lib/i18n/provider.d.ts +16 -0
  1145. package/dist/types/lib/i18n/strings.d.ts +18 -0
  1146. package/dist/types/lib/icons.d.ts +22 -0
  1147. package/dist/types/lib/interactive-target.d.ts +3 -0
  1148. package/dist/types/lib/intl-cache.d.ts +31 -0
  1149. package/dist/types/lib/legal-document.d.ts +82 -0
  1150. package/dist/types/lib/line-diff-model.d.ts +39 -0
  1151. package/dist/types/lib/markdown/attachments.d.ts +50 -0
  1152. package/dist/types/lib/markdown/caret-map.d.ts +69 -0
  1153. package/dist/types/lib/markdown/caret.d.ts +6 -0
  1154. package/dist/types/lib/markdown/commands.d.ts +186 -0
  1155. package/dist/types/lib/markdown/convert.d.ts +99 -0
  1156. package/dist/types/lib/markdown/dom.d.ts +30 -0
  1157. package/dist/types/lib/markdown/edit.d.ts +16 -0
  1158. package/dist/types/lib/markdown/history.d.ts +59 -0
  1159. package/dist/types/lib/markdown/hotkeys.d.ts +63 -0
  1160. package/dist/types/lib/markdown/image-pipeline.d.ts +173 -0
  1161. package/dist/types/lib/markdown/images.d.ts +138 -0
  1162. package/dist/types/lib/markdown/input.d.ts +38 -0
  1163. package/dist/types/lib/markdown/keys.d.ts +34 -0
  1164. package/dist/types/lib/markdown/paste.d.ts +9 -0
  1165. package/dist/types/lib/markdown/position.d.ts +43 -0
  1166. package/dist/types/lib/markdown/project.d.ts +88 -0
  1167. package/dist/types/lib/markdown/reconcile.d.ts +63 -0
  1168. package/dist/types/lib/markdown/surface.d.ts +236 -0
  1169. package/dist/types/lib/motion.d.ts +30 -0
  1170. package/dist/types/lib/pad.d.ts +6 -0
  1171. package/dist/types/lib/paged-window/index.d.ts +2 -0
  1172. package/dist/types/lib/paged-window/layout.d.ts +21 -0
  1173. package/dist/types/lib/paged-window/list-owner.d.ts +12 -0
  1174. package/dist/types/lib/paged-window/records-binding.d.ts +102 -0
  1175. package/dist/types/lib/paged-window/store.d.ts +307 -0
  1176. package/dist/types/lib/paged-window/use-measured-pitch.d.ts +34 -0
  1177. package/dist/types/lib/paged-window/use-page-visibility.d.ts +20 -0
  1178. package/dist/types/lib/paged-window/use-paged-window.d.ts +61 -0
  1179. package/dist/types/lib/paged-window/use-scroll-root.d.ts +18 -0
  1180. package/dist/types/lib/persist.d.ts +57 -0
  1181. package/dist/types/lib/preference-values.d.ts +72 -0
  1182. package/dist/types/lib/preferences.d.ts +26 -0
  1183. package/dist/types/lib/reads/hooks.d.ts +49 -0
  1184. package/dist/types/lib/reads/index.d.ts +5 -0
  1185. package/dist/types/lib/reads/optimistic.d.ts +119 -0
  1186. package/dist/types/lib/reads/refetch.d.ts +83 -0
  1187. package/dist/types/lib/reads/slots.d.ts +137 -0
  1188. package/dist/types/lib/reads/types.d.ts +155 -0
  1189. package/dist/types/lib/realtime/hooks.d.ts +38 -0
  1190. package/dist/types/lib/realtime/index.d.ts +4 -0
  1191. package/dist/types/lib/realtime/provider.d.ts +38 -0
  1192. package/dist/types/lib/realtime/registry.d.ts +225 -0
  1193. package/dist/types/lib/realtime/types.d.ts +242 -0
  1194. package/dist/types/lib/records/define-record-type.d.ts +29 -0
  1195. package/dist/types/lib/records/hooks.d.ts +46 -0
  1196. package/dist/types/lib/records/index.d.ts +5 -0
  1197. package/dist/types/lib/records/store.d.ts +289 -0
  1198. package/dist/types/lib/records/types.d.ts +195 -0
  1199. package/dist/types/lib/records/wire.d.ts +96 -0
  1200. package/dist/types/lib/reduced-motion-help.d.ts +23 -0
  1201. package/dist/types/lib/scroll-caret.d.ts +6 -0
  1202. package/dist/types/lib/sim/createSimStore.d.ts +18 -0
  1203. package/dist/types/lib/sim/index.d.ts +5 -0
  1204. package/dist/types/lib/sim/latency.d.ts +10 -0
  1205. package/dist/types/lib/sim/registry.d.ts +14 -0
  1206. package/dist/types/lib/sim/settings.d.ts +11 -0
  1207. package/dist/types/lib/sim/types.d.ts +3 -0
  1208. package/dist/types/lib/submit-shortcut.d.ts +24 -0
  1209. package/dist/types/lib/syntax/index.d.ts +16 -0
  1210. package/dist/types/lib/syntax/languages/bash.d.ts +1 -0
  1211. package/dist/types/lib/syntax/languages/css.d.ts +1 -0
  1212. package/dist/types/lib/syntax/languages/html.d.ts +17 -0
  1213. package/dist/types/lib/syntax/languages/index.d.ts +33 -0
  1214. package/dist/types/lib/syntax/languages/javascript.d.ts +22 -0
  1215. package/dist/types/lib/syntax/languages/json.d.ts +1 -0
  1216. package/dist/types/lib/syntax/languages/mongodb.d.ts +1 -0
  1217. package/dist/types/lib/syntax/languages/plain.d.ts +9 -0
  1218. package/dist/types/lib/syntax/languages/sql.d.ts +4 -0
  1219. package/dist/types/lib/syntax/languages/vue.d.ts +1 -0
  1220. package/dist/types/lib/syntax/languages/yaml.d.ts +1 -0
  1221. package/dist/types/lib/syntax/markdown/frames.d.ts +145 -0
  1222. package/dist/types/lib/syntax/markdown/grammar.d.ts +1 -0
  1223. package/dist/types/lib/syntax/markdown/index.d.ts +5 -0
  1224. package/dist/types/lib/syntax/markdown/inline.d.ts +21 -0
  1225. package/dist/types/lib/syntax/markdown/parse.d.ts +15 -0
  1226. package/dist/types/lib/syntax/markdown/refs.d.ts +47 -0
  1227. package/dist/types/lib/syntax/markdown/render.d.ts +25 -0
  1228. package/dist/types/lib/syntax/markdown/spans.d.ts +84 -0
  1229. package/dist/types/lib/syntax/markdown/types.d.ts +108 -0
  1230. package/dist/types/lib/syntax/registry.d.ts +37 -0
  1231. package/dist/types/lib/syntax/tokenize.d.ts +17 -0
  1232. package/dist/types/lib/syntax/types.d.ts +119 -0
  1233. package/dist/types/lib/time/index.d.ts +4 -0
  1234. package/dist/types/lib/time/instant.d.ts +2 -0
  1235. package/dist/types/lib/time/plain.d.ts +61 -0
  1236. package/dist/types/lib/time/relativeAge.d.ts +18 -0
  1237. package/dist/types/lib/time/relativeClock.d.ts +8 -0
  1238. package/dist/types/lib/time/types.d.ts +87 -0
  1239. package/dist/types/lib/time/zone.d.ts +106 -0
  1240. package/dist/types/lib/use-controllable.d.ts +14 -0
  1241. package/dist/types/lib/use-fill-height.d.ts +26 -0
  1242. package/dist/types/lib/use-hydrated.d.ts +8 -0
  1243. package/dist/types/lib/use-media-query.d.ts +29 -0
  1244. package/dist/types/lib/use-relabel-base-ui-dismiss.d.ts +6 -0
  1245. package/dist/types/lib/use-release-snap-drag.d.ts +25 -0
  1246. package/dist/types/lib/use-roving-options.d.ts +10 -0
  1247. package/dist/types/lib/values/absent.d.ts +7 -0
  1248. package/dist/types/lib/values/boolean.d.ts +29 -0
  1249. package/dist/types/lib/values/currency.d.ts +22 -0
  1250. package/dist/types/lib/values/date.d.ts +30 -0
  1251. package/dist/types/lib/values/datetime.d.ts +48 -0
  1252. package/dist/types/lib/values/index.d.ts +5 -0
  1253. package/dist/types/lib/values/locale-date.d.ts +34 -0
  1254. package/dist/types/lib/values/number.d.ts +27 -0
  1255. package/dist/types/pure.d.ts +48 -0
  1256. package/package.json +136 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChangePasswordForm.js","sources":["../../../src/components/rbac/ChangePasswordForm.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { Button } from \"../Button\";\nimport { Callout } from \"../Callout\";\nimport { Field } from \"../Field\";\nimport { PasswordInput } from \"../PasswordInput\";\nimport { PasswordRequirements, type PasswordRequirementRule } from \"../PasswordRequirements\";\nimport { useUiStrings } from \"../../lib/i18n\";\n\n/* ============================================================================\n CHANGE PASSWORD FORM\n\n THREE FIELDS, LOCAL STATE, SAME SHAPE AS `RoleEditorDialog` — current\n password, new password, confirm — held in this component's own\n `useState`, not lifted to the caller. That is a deliberate choice among a\n few workable ones (see the card this shipped under for the alternatives\n considered): lifting `next` to controlled `value`/`onChange` props would\n mean every keystroke of a password briefly lives in the CONSUMER's own\n state tree for no reason this form needs, and the one thing an external\n caller actually has to own — what counts as a strong-enough password — is\n already fully extracted into `passwordRules`, a pure function this form\n calls with the current draft on every render. Nothing about the RULES lives\n here; this library only ever renders the checklist `PasswordRequirements`\n builds from whatever that function returns (see its own header — the\n \"12 characters\" kind of policy belongs to the consumer's own\n `auth-rules.ts`, never here).\n\n CONFIRM-MATCHES-NEW is the one piece of validation done inline, because it\n is not a password POLICY — it is arithmetic (\"do these two strings read the\n same\"), the same category of decision `SecretField`'s empty-vs-cleared\n distinction makes internally rather than pushing out to a caller.\n\n FIELDS RESET ONLY ON A SUCCESSFUL SUBMIT. A REJECTED `onSubmit` (wrong\n current password, a policy failure the server re-checks, a network error)\n leaves every field exactly as typed — re-typing three password fields\n because the server was slow is exactly the friction a working form must\n not add — and shows whatever the rejection's `message` says in a `Callout`.\n ========================================================================= */\n\n/* DX-5095 - an account that signed up through a provider has no password yet. `hasCurrentPassword={false}` is\n set-password mode: no current-password field, and `onSubmit(next)` instead of `onSubmit(current, next)`. The\n discriminated union keeps each mode's callback honestly typed. */\ninterface ChangePasswordFormBaseProps {\n /** Pure — recomputed against the current draft of the new password on every\n * render. See the module header for why this is a function rather than a\n * precomputed `rules[]`. */\n passwordRules: (nextPassword: string) => PasswordRequirementRule[];\n submitLabel?: string;\n className?: string;\n}\n\nexport type ChangePasswordFormProps = ChangePasswordFormBaseProps &\n (\n | { hasCurrentPassword?: true; onSubmit: (current: string, next: string) => Promise<void> }\n | { hasCurrentPassword: false; onSubmit: (next: string) => Promise<void> }\n );\n\nexport function ChangePasswordForm(props: ChangePasswordFormProps) {\n const { passwordRules, submitLabel, className } = props;\n const strings = useUiStrings().changePasswordForm;\n const [current, setCurrent] = useState(\"\");\n const [next, setNext] = useState(\"\");\n const [confirm, setConfirm] = useState(\"\");\n const [submitting, setSubmitting] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n const askCurrent = props.hasCurrentPassword !== false;\n const copy = askCurrent\n ? { failedTitle: strings.failedTitle, failedMessage: strings.failedMessage, submit: strings.submit }\n : { failedTitle: strings.setFailedTitle, failedMessage: strings.setFailedMessage, submit: strings.setSubmit };\n const rules = passwordRules(next);\n const allRulesMet = rules.length === 0 || rules.every((rule) => rule.met);\n const confirmMismatch = confirm.length > 0 && confirm !== next;\n const canSubmit =\n (!askCurrent || current.length > 0) &&\n next.length > 0 &&\n confirm.length > 0 &&\n allRulesMet &&\n !confirmMismatch &&\n !submitting;\n\n async function handleSubmit(event: React.FormEvent) {\n event.preventDefault();\n if (!canSubmit) return;\n\n setSubmitting(true);\n setError(null);\n try {\n if (props.hasCurrentPassword === false) await props.onSubmit(next);\n else await props.onSubmit(current, next);\n setCurrent(\"\");\n setNext(\"\");\n setConfirm(\"\");\n } catch (cause) {\n setError(cause instanceof Error ? cause.message : copy.failedMessage);\n } finally {\n setSubmitting(false);\n }\n }\n\n return (\n <form className={className} onSubmit={(event) => void handleSubmit(event)}>\n <div className=\"flex flex-col gap-4\">\n {error && <Callout tone=\"danger\" title={copy.failedTitle}>{error}</Callout>}\n\n {askCurrent && (\n <Field label={strings.current}>\n <PasswordInput\n value={current}\n onChange={(event) => setCurrent(event.target.value)}\n autoComplete=\"current-password\"\n disabled={submitting}\n required\n />\n </Field>\n )}\n\n <Field label={strings.next}>\n <PasswordInput\n value={next}\n onChange={(event) => setNext(event.target.value)}\n autoComplete=\"new-password\"\n disabled={submitting}\n required\n />\n <PasswordRequirements rules={rules} className=\"mt-2\" />\n </Field>\n\n <Field\n label={strings.confirmPassword}\n error={confirmMismatch ? strings.mismatch : undefined}\n >\n <PasswordInput\n value={confirm}\n onChange={(event) => setConfirm(event.target.value)}\n autoComplete=\"new-password\"\n disabled={submitting}\n required\n />\n </Field>\n\n <div>\n <Button type=\"submit\" disabled={!canSubmit} loading={submitting}>\n {submitLabel ?? copy.submit}\n </Button>\n </div>\n </div>\n </form>\n );\n}\n"],"names":["ChangePasswordForm","props","passwordRules","submitLabel","className","strings","useUiStrings","current","setCurrent","useState","next","setNext","confirm","setConfirm","submitting","setSubmitting","error","setError","askCurrent","copy","rules","allRulesMet","rule","confirmMismatch","canSubmit","handleSubmit","event","cause","jsx","jsxs","Callout","Field","PasswordInput","PasswordRequirements","Button"],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { jsxs as s, jsx as e } from "react/jsx-runtime";
2
+ import { cn as d } from "../../lib/cn.js";
3
+ import { useUiStrings as i } from "../../lib/i18n/provider.js";
4
+ function x({ title: o, description: r, children: t, className: a }) {
5
+ const l = i().dangerZone, n = o ?? l.title;
6
+ return /* @__PURE__ */ s(
7
+ "section",
8
+ {
9
+ className: d(
10
+ "flex flex-col gap-3 rounded-lg border border-danger-border bg-danger-subtle p-4",
11
+ a
12
+ ),
13
+ "aria-label": n,
14
+ children: [
15
+ /* @__PURE__ */ s("div", { children: [
16
+ /* @__PURE__ */ e("h3", { className: "text-sm font-semibold text-danger-text", children: n }),
17
+ r && /* @__PURE__ */ e("p", { className: "mt-1 text-sm text-secondary", children: r })
18
+ ] }),
19
+ t && /* @__PURE__ */ e("div", { className: "flex flex-col gap-2", children: t })
20
+ ]
21
+ }
22
+ );
23
+ }
24
+ export {
25
+ x as DangerZone
26
+ };
27
+ //# sourceMappingURL=DangerZone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DangerZone.js","sources":["../../../src/components/rbac/DangerZone.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { useUiStrings } from \"../../lib/i18n\";\n\n/* ============================================================================\n DANGER ZONE\n\n A generic, presentational \"irreversible actions live here\" section —\n danger-toned border/heading, a title, an optional description, and a\n `children` slot for whatever action control the page composes in (a\n `Button` wired to an `AlertDialog` confirm, matching `MembersPanel`'s own\n remove-with-confirm convention; see that file for the pattern). This\n component owns NO action logic, no confirmation, no danxbot/team\n knowledge — purely the toned frame every settings page's own danger\n section can reuse, the split test G-5 asks for (would another SaaS app's\n settings page use this frame as-is? yes, given a title/description/action).\n\n MULTIPLE `children` ACTIONS ARE FINE — a settings page with more than one\n irreversible action (today: none for team settings, since team deletion\n is out of v1 per PLN-13 CAV-3; tomorrow: whatever a later card adds) just\n passes more than one control, each still rendered as its own row.\n ========================================================================= */\n\nexport interface DangerZoneProps {\n title?: string;\n description?: string;\n children?: ReactNode;\n className?: string;\n}\n\nexport function DangerZone({ title, description, children, className }: DangerZoneProps) {\n const strings = useUiStrings().dangerZone;\n const heading = title ?? strings.title;\n return (\n <section\n className={cn(\n \"flex flex-col gap-3 rounded-lg border border-danger-border bg-danger-subtle p-4\",\n className,\n )}\n aria-label={heading}\n >\n <div>\n <h3 className=\"text-sm font-semibold text-danger-text\">{heading}</h3>\n {description && <p className=\"mt-1 text-sm text-secondary\">{description}</p>}\n </div>\n {children && <div className=\"flex flex-col gap-2\">{children}</div>}\n </section>\n );\n}\n"],"names":["DangerZone","title","description","children","className","strings","useUiStrings","heading","jsxs","cn","jsx"],"mappings":";;;AA8BO,SAASA,EAAW,EAAE,OAAAC,GAAO,aAAAC,GAAa,UAAAC,GAAU,WAAAC,KAA8B;AACvF,QAAMC,IAAUC,IAAe,YACzBC,IAAUN,KAASI,EAAQ;AACjC,SACE,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAL;AAAA,MAAA;AAAA,MAEF,cAAYG;AAAA,MAEZ,UAAA;AAAA,QAAA,gBAAAC,EAAC,OAAA,EACC,UAAA;AAAA,UAAA,gBAAAE,EAAC,MAAA,EAAG,WAAU,0CAA0C,UAAAH,GAAQ;AAAA,UAC/DL,KAAe,gBAAAQ,EAAC,KAAA,EAAE,WAAU,+BAA+B,UAAAR,EAAA,CAAY;AAAA,QAAA,GAC1E;AAAA,QACCC,KAAY,gBAAAO,EAAC,OAAA,EAAI,WAAU,uBAAuB,UAAAP,EAAA,CAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGlE;"}
@@ -0,0 +1,140 @@
1
+ import { jsxs as i, jsx as t, Fragment as R } from "react/jsx-runtime";
2
+ import { useState as b } from "react";
3
+ import { AlertDialog as T } from "../Dialog.js";
4
+ import { Button as n } from "../Button.js";
5
+ import { Icon as a } from "../Icon.js";
6
+ import { Popover as z } from "../Popover.js";
7
+ import { Select as m, SelectItem as p } from "../Select.js";
8
+ import { resetSimStores as D } from "../../lib/sim/registry.js";
9
+ import { useSimSettings as I, setSimSettings as x } from "../../lib/sim/settings.js";
10
+ import { useRBAC as S } from "./RBACProvider.js";
11
+ import { useUiStrings as w } from "../../lib/i18n/provider.js";
12
+ import { emphasis as y } from "../../lib/i18n/emphasis.js";
13
+ const E = ["instant", "fast", "typical", "flaky"], V = ["simulated", "live"], L = "wrench";
14
+ function M({
15
+ onOpenUseCaseLedger: l,
16
+ showSimControls: o = !0,
17
+ iconOnly: e = !1
18
+ } = {}) {
19
+ const s = w().devTools, { canAccessDevTools: c, isImpersonating: d } = S();
20
+ return c ? /* @__PURE__ */ t(
21
+ z,
22
+ {
23
+ align: "end",
24
+ width: "calc(20rem*var(--ui-scale))",
25
+ trigger: /* @__PURE__ */ i(
26
+ n,
27
+ {
28
+ size: "sm",
29
+ variant: d ? "subtle" : e ? "ghost" : "outline",
30
+ iconOnly: e,
31
+ "aria-label": s.triggerLabel,
32
+ children: [
33
+ /* @__PURE__ */ t(a, { name: L, size: "sm" }),
34
+ !e && /* @__PURE__ */ t("span", { className: "hidden sm:inline", children: s.trigger })
35
+ ]
36
+ }
37
+ ),
38
+ children: /* @__PURE__ */ t(P, { onOpenUseCaseLedger: l, showSimControls: o })
39
+ }
40
+ ) : null;
41
+ }
42
+ function P({ onOpenUseCaseLedger: l, showSimControls: o = !0 } = {}) {
43
+ const e = w().devTools, { canAccessDevTools: s, roles: c, viewingAsRoleId: d, setViewingAsRoleId: g, effectiveRole: N, isImpersonating: u } = S(), { networkSpeed: k, dataSource: f } = I(), [A, h] = b(!1), [C, v] = b(!1);
44
+ return s ? /* @__PURE__ */ i("div", { "data-dev-tools-panel": "", className: "flex w-full min-w-0 flex-col gap-4", children: [
45
+ /* @__PURE__ */ i("div", { className: "flex flex-col gap-2", children: [
46
+ /* @__PURE__ */ t("span", { className: "text-2xs font-semibold tracking-widest text-tertiary uppercase", children: e.viewAs }),
47
+ /* @__PURE__ */ t(
48
+ m,
49
+ {
50
+ "aria-label": e.viewAsLabel,
51
+ placeholder: e.actualRole,
52
+ value: d,
53
+ onValueChange: (r) => g(r ?? null),
54
+ children: c.map((r) => /* @__PURE__ */ t(p, { value: r.id, children: r.label }, r.id))
55
+ }
56
+ )
57
+ ] }),
58
+ u && /* @__PURE__ */ i(
59
+ "div",
60
+ {
61
+ role: "status",
62
+ className: "flex items-start gap-2 rounded-md border border-warning-border bg-warning-subtle p-3",
63
+ children: [
64
+ /* @__PURE__ */ t(a, { name: "triangle-alert", size: "sm", className: "mt-px text-warning-text" }),
65
+ /* @__PURE__ */ t("p", { className: "text-xs text-warning-text", children: e.viewingAs(N?.label ?? e.unknownRole, y) })
66
+ ]
67
+ }
68
+ ),
69
+ /* @__PURE__ */ i(
70
+ n,
71
+ {
72
+ variant: "outline",
73
+ size: "sm",
74
+ disabled: !u,
75
+ onClick: () => g(null),
76
+ children: [
77
+ /* @__PURE__ */ t(a, { name: "rotate-ccw", size: "sm" }),
78
+ e.resetToActual
79
+ ]
80
+ }
81
+ ),
82
+ o && /* @__PURE__ */ i(R, { children: [
83
+ /* @__PURE__ */ i("div", { className: "flex flex-col gap-2 border-t border-border-subtle pt-4", children: [
84
+ /* @__PURE__ */ t("span", { className: "text-2xs font-semibold tracking-widest text-tertiary uppercase", children: e.dataSource }),
85
+ /* @__PURE__ */ t(
86
+ m,
87
+ {
88
+ "aria-label": e.dataSource,
89
+ value: f,
90
+ onValueChange: (r) => x({ dataSource: r }),
91
+ children: V.map((r) => /* @__PURE__ */ t(p, { value: r, children: e.dataSources[r] }, r))
92
+ }
93
+ ),
94
+ f === "live" && /* @__PURE__ */ t("p", { className: "text-2xs text-tertiary", children: e.liveNotConfigured })
95
+ ] }),
96
+ /* @__PURE__ */ i("div", { className: "flex flex-col gap-2 border-t border-border-subtle pt-4", children: [
97
+ /* @__PURE__ */ t("span", { className: "text-2xs font-semibold tracking-widest text-tertiary uppercase", children: e.networkSpeed }),
98
+ /* @__PURE__ */ t(
99
+ m,
100
+ {
101
+ "aria-label": e.networkSpeed,
102
+ value: k,
103
+ onValueChange: (r) => x({ networkSpeed: r }),
104
+ children: E.map((r) => /* @__PURE__ */ t(p, { value: r, children: e.networkSpeeds[r] }, r))
105
+ }
106
+ )
107
+ ] }),
108
+ /* @__PURE__ */ t("div", { className: "flex flex-col gap-2 border-t border-border-subtle pt-4", children: /* @__PURE__ */ t(
109
+ T,
110
+ {
111
+ trigger: /* @__PURE__ */ i(n, { variant: "outline", size: "sm", children: [
112
+ /* @__PURE__ */ t(a, { name: "refresh-cw", size: "sm" }),
113
+ e.regenerate
114
+ ] }),
115
+ open: A,
116
+ onOpenChange: h,
117
+ title: e.regenerateTitle,
118
+ description: e.regenerateDescription,
119
+ confirmLabel: e.regenerateConfirm,
120
+ loading: C,
121
+ onConfirm: () => {
122
+ v(!0), D("demo").finally(() => {
123
+ v(!1), h(!1);
124
+ });
125
+ }
126
+ }
127
+ ) })
128
+ ] }),
129
+ l && /* @__PURE__ */ t("div", { className: "flex flex-col gap-2 border-t border-border-subtle pt-4", children: /* @__PURE__ */ i(n, { variant: "ghost", size: "sm", onClick: l, children: [
130
+ /* @__PURE__ */ t(a, { name: "list-checks", size: "sm" }),
131
+ e.openLedger
132
+ ] }) })
133
+ ] }) : null;
134
+ }
135
+ export {
136
+ L as DEV_TOOLS_ICON,
137
+ P as DevToolsPanel,
138
+ M as DevToolsPopover
139
+ };
140
+ //# sourceMappingURL=DevToolsPopover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DevToolsPopover.js","sources":["../../../src/components/rbac/DevToolsPopover.tsx"],"sourcesContent":["import { useState } from \"react\";\r\nimport { AlertDialog } from \"../Dialog\";\r\nimport { Button } from \"../Button\";\r\nimport { Icon, type IconName } from \"../Icon\";\r\nimport { Popover } from \"../Popover\";\r\nimport { Select, SelectItem } from \"../Select\";\r\nimport { resetSimStores } from \"../../lib/sim/registry\";\r\nimport { emphasis, useUiStrings } from \"../../lib/i18n\";\r\nimport { useSimSettings, setSimSettings } from \"../../lib/sim/settings\";\r\nimport type { DataSource, NetworkSpeed } from \"../../lib/sim/types\";\r\nimport { useRBAC } from \"./RBACProvider\";\r\n\r\n/* ============================================================================\r\n DEV TOOLS POPOVER — the \"view the app as a different role\" escape hatch,\r\n plus every other Dev-only control a pitch deck needs: what backend is\r\n answering, how slow it pretends to be, and a one-click way back to a clean\r\n demo.\r\n\r\n THE STRUCTURAL GUARANTEE, NOT A CALLER CONVENTION. This component renders\r\n `null` outright when `useRBAC().canAccessDevTools` is false — a consumer\r\n cannot forget to gate it, wrap it in their own `if`, or render it behind a\r\n feature flag that drifts out of sync with the real permission check. The\r\n ONE thing that decides whether this exists on screen at all is the RBAC\r\n provider's own `canAccessDevTools` config, evaluated against the REAL\r\n signed-in user (see the block comment on `canAccessDevToolsValue` in\r\n `RBACProvider.tsx` for why that evaluation can never read the impersonated\r\n view). Putting the gate here, rather than leaving it to whoever mounts this\r\n component, is what makes that guarantee actually hold.\r\n\r\n NEVER A ROLE NAME. This file selects roles by `id`, labels them with\r\n `role.label`, and has no branch that treats any particular id or label\r\n specially — \"who is allowed to impersonate\" was already decided upstream by\r\n the consumer's own predicate, and by the time this component runs that\r\n question is closed. All that is left is \"which of these roles do you want\r\n to look like,\" which is a plain list with nothing about it hardcoded.\r\n\r\n THE 4 NEWER CONTROLS ARE SIM-LAYER, NOT RBAC-LAYER. Data source, network\r\n speed and \"regenerate demo data\" have nothing to do with roles or\r\n permissions — they read/write `src/lib/sim/settings.ts` and call\r\n `resetSimStores()` directly, both of which are domain-agnostic (a Role\r\n store and a future vertical's Invoice store reset exactly the same way).\r\n This popover living under `rbac/` is a placement choice (it is where the\r\n \"who can see Dev tools\" gate already lives), not a claim that these\r\n controls are RBAC concerns.\r\n\r\n \"OPEN USE CASE LEDGER\" IS THE ONE GENUINELY CONSUMER-SPECIFIC CONTROL —\r\n this library has no idea what route (if any) renders `UseCaseLedgerPage`,\r\n so it is an optional `onOpenUseCaseLedger` callback, same \"no router\"\r\n pattern `AccountMenu` already uses for `onNavigateProfile`/`onNavigateRoles`:\r\n supply it, or the row simply does not render.\r\n ========================================================================= */\r\n\r\nconst NETWORK_SPEEDS: NetworkSpeed[] = [\"instant\", \"fast\", \"typical\", \"flaky\"];\r\n\r\nconst DATA_SOURCES: DataSource[] = [\"simulated\", \"live\"];\r\n\r\n/** The glyph of the Dev tools button. An app that folds the button into its account menu (`useHeaderFold`) draws the entry with this same glyph. */\r\nexport const DEV_TOOLS_ICON = \"wrench\" as const satisfies IconName;\r\n\r\nexport interface DevToolsPopoverProps {\r\n /** Deep link to the dev-only Use Case Ledger. Omit and the row does not render. */\r\n onOpenUseCaseLedger?: () => void;\r\n /**\r\n * Shows the Data source / Network speed / Regenerate demo data section —\r\n * all three read and write THIS LIBRARY's OWN `src/lib/sim/` layer\r\n * (`createSimStore`), which exists for the pitch-deck demo and has nothing\r\n * to do with role-based access control. Defaults `true` so this package's\r\n * own demo pages need no change. A consuming app with a real backend and no\r\n * `createSimStore` usage of its own sets this `false` — otherwise the panel\r\n * shows a \"Simulated ↔ Live\" toggle and a \"Regenerate demo data\" button\r\n * that do nothing observable in that app, which reads as broken rather than\r\n * inert. \"View as\" role impersonation (the RBAC feature this component\r\n * exists to gate) and \"Reset to actual\" are unaffected either way — they\r\n * have nothing to do with the sim layer.\r\n */\r\n showSimControls?: boolean;\r\n /**\r\n * Renders the trigger as a square wrench-only button with no \"Dev tools\"\r\n * label, the same mode as `ThemeMenu.iconOnly` (whose doc explains why it is\r\n * a mode and not a class). The accessible name stays\r\n * `aria-label=\"Developer tools\"` either way.\r\n */\r\n iconOnly?: boolean;\r\n}\r\n\r\nexport function DevToolsPopover({\r\n onOpenUseCaseLedger,\r\n showSimControls = true,\r\n iconOnly = false,\r\n}: DevToolsPopoverProps = {}) {\r\n const strings = useUiStrings().devTools;\r\n const { canAccessDevTools, isImpersonating } = useRBAC();\r\n\r\n if (!canAccessDevTools) return null;\r\n\r\n return (\r\n <Popover\r\n align=\"end\"\r\n width=\"calc(20rem*var(--ui-scale))\"\r\n trigger={\r\n <Button\r\n size=\"sm\"\r\n variant={isImpersonating ? \"subtle\" : iconOnly ? \"ghost\" : \"outline\"}\r\n iconOnly={iconOnly}\r\n aria-label={strings.triggerLabel}\r\n >\r\n <Icon name={DEV_TOOLS_ICON} size=\"sm\" />\r\n {!iconOnly && <span className=\"hidden sm:inline\">{strings.trigger}</span>}\r\n </Button>\r\n }\r\n >\r\n {/* DX-4086 — the design width lives on the popup (`width` below), which renders at\r\n exactly that width capped by the clamp (Popover.tsx), so the panel just fills it. */}\r\n <DevToolsPanel onOpenUseCaseLedger={onOpenUseCaseLedger} showSimControls={showSimControls} />\r\n </Popover>\r\n );\r\n}\r\n\r\nexport type DevToolsPanelProps = Pick<DevToolsPopoverProps, \"onOpenUseCaseLedger\" | \"showSimControls\">;\r\n\r\n/**\r\n * DX-5319 - the Dev tools popup's body on its own: view as a role, and the sim controls. `DevToolsPopover` draws it in its\r\n * popover; an app whose header folded the wrench into the account menu (`useHeaderFold`) draws this same panel in a `Dialog`.\r\n * It carries the SAME structural gate as the popover - nothing at all unless `canAccessDevTools` - so a folded entry cannot be\r\n * the way round it.\r\n */\r\nexport function DevToolsPanel({ onOpenUseCaseLedger, showSimControls = true }: DevToolsPanelProps = {}) {\r\n const strings = useUiStrings().devTools;\r\n const { canAccessDevTools, roles, viewingAsRoleId, setViewingAsRoleId, effectiveRole, isImpersonating } =\r\n useRBAC();\r\n const { networkSpeed, dataSource } = useSimSettings();\r\n const [confirmingReset, setConfirmingReset] = useState(false);\r\n const [resetting, setResetting] = useState(false);\r\n\r\n if (!canAccessDevTools) return null;\r\n\r\n return (\r\n <div data-dev-tools-panel=\"\" className=\"flex w-full min-w-0 flex-col gap-4\">\r\n <div className=\"flex flex-col gap-2\">\r\n <span className=\"text-2xs font-semibold tracking-widest text-tertiary uppercase\">\r\n {strings.viewAs}\r\n </span>\r\n <Select\r\n aria-label={strings.viewAsLabel}\r\n placeholder={strings.actualRole}\r\n value={viewingAsRoleId}\r\n onValueChange={(value) => setViewingAsRoleId((value as string | null) ?? null)}\r\n >\r\n {roles.map((role) => (\r\n <SelectItem key={role.id} value={role.id}>\r\n {role.label}\r\n </SelectItem>\r\n ))}\r\n </Select>\r\n </div>\r\n\r\n {/* Clear, unmissable feedback while impersonating — this is the state\r\n where it matters most that a person can tell WHY the app is\r\n behaving differently than they expect. `role=\"status\"` announces\r\n it the moment it appears, without stealing focus. */}\r\n {isImpersonating && (\r\n <div\r\n role=\"status\"\r\n className=\"flex items-start gap-2 rounded-md border border-warning-border bg-warning-subtle p-3\"\r\n >\r\n <Icon name=\"triangle-alert\" size=\"sm\" className=\"mt-px text-warning-text\" />\r\n <p className=\"text-xs text-warning-text\">\r\n {strings.viewingAs(effectiveRole?.label ?? strings.unknownRole, emphasis)}\r\n </p>\r\n </div>\r\n )}\r\n\r\n <Button\r\n variant=\"outline\"\r\n size=\"sm\"\r\n disabled={!isImpersonating}\r\n onClick={() => setViewingAsRoleId(null)}\r\n >\r\n <Icon name=\"rotate-ccw\" size=\"sm\" />\r\n {strings.resetToActual}\r\n </Button>\r\n\r\n {showSimControls && (\r\n <>\r\n <div className=\"flex flex-col gap-2 border-t border-border-subtle pt-4\">\r\n <span className=\"text-2xs font-semibold tracking-widest text-tertiary uppercase\">\r\n {strings.dataSource}\r\n </span>\r\n <Select\r\n aria-label={strings.dataSource}\r\n value={dataSource}\r\n onValueChange={(value) => setSimSettings({ dataSource: value as DataSource })}\r\n >\r\n {DATA_SOURCES.map((source) => (\r\n <SelectItem key={source} value={source}>\r\n {strings.dataSources[source]}\r\n </SelectItem>\r\n ))}\r\n </Select>\r\n {dataSource === \"live\" && (\r\n <p className=\"text-2xs text-tertiary\">\r\n {strings.liveNotConfigured}\r\n </p>\r\n )}\r\n </div>\r\n\r\n <div className=\"flex flex-col gap-2 border-t border-border-subtle pt-4\">\r\n <span className=\"text-2xs font-semibold tracking-widest text-tertiary uppercase\">\r\n {strings.networkSpeed}\r\n </span>\r\n <Select\r\n aria-label={strings.networkSpeed}\r\n value={networkSpeed}\r\n onValueChange={(value) => setSimSettings({ networkSpeed: value as NetworkSpeed })}\r\n >\r\n {NETWORK_SPEEDS.map((speed) => (\r\n <SelectItem key={speed} value={speed}>\r\n {strings.networkSpeeds[speed]}\r\n </SelectItem>\r\n ))}\r\n </Select>\r\n </div>\r\n\r\n <div className=\"flex flex-col gap-2 border-t border-border-subtle pt-4\">\r\n <AlertDialog\r\n trigger={\r\n <Button variant=\"outline\" size=\"sm\">\r\n <Icon name=\"refresh-cw\" size=\"sm\" />\r\n {strings.regenerate}\r\n </Button>\r\n }\r\n open={confirmingReset}\r\n onOpenChange={setConfirmingReset}\r\n title={strings.regenerateTitle}\r\n description={strings.regenerateDescription}\r\n confirmLabel={strings.regenerateConfirm}\r\n loading={resetting}\r\n onConfirm={() => {\r\n setResetting(true);\r\n void resetSimStores(\"demo\").finally(() => {\r\n setResetting(false);\r\n setConfirmingReset(false);\r\n });\r\n }}\r\n />\r\n </div>\r\n </>\r\n )}\r\n\r\n {onOpenUseCaseLedger && (\r\n <div className=\"flex flex-col gap-2 border-t border-border-subtle pt-4\">\r\n <Button variant=\"ghost\" size=\"sm\" onClick={onOpenUseCaseLedger}>\r\n <Icon name=\"list-checks\" size=\"sm\" />\r\n {strings.openLedger}\r\n </Button>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n"],"names":["NETWORK_SPEEDS","DATA_SOURCES","DEV_TOOLS_ICON","DevToolsPopover","onOpenUseCaseLedger","showSimControls","iconOnly","strings","useUiStrings","canAccessDevTools","isImpersonating","useRBAC","jsx","Popover","jsxs","Button","Icon","DevToolsPanel","roles","viewingAsRoleId","setViewingAsRoleId","effectiveRole","networkSpeed","dataSource","useSimSettings","confirmingReset","setConfirmingReset","useState","resetting","setResetting","Select","value","role","SelectItem","emphasis","Fragment","setSimSettings","source","speed","AlertDialog","resetSimStores"],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { jsxs as e, jsx as a, Fragment as i } from "react/jsx-runtime";
2
+ import { RelativeTime as r } from "../RelativeTime.js";
3
+ function s({ ended: t }) {
4
+ return /* @__PURE__ */ e("span", { className: "text-xs text-tertiary", "data-testid": "ended-line", children: [
5
+ t.label,
6
+ " ",
7
+ /* @__PURE__ */ a(r, { at: t.at }),
8
+ t.after !== void 0 && `, ${t.after}`
9
+ ] });
10
+ }
11
+ function x({ idle: t }) {
12
+ return /* @__PURE__ */ e("span", { className: "text-xs text-tertiary", "data-testid": "idle-line", children: [
13
+ t.label,
14
+ t.at != null && /* @__PURE__ */ e(i, { children: [
15
+ " ",
16
+ /* @__PURE__ */ a(r, { at: t.at })
17
+ ] })
18
+ ] });
19
+ }
20
+ export {
21
+ s as EndedLine,
22
+ x as IdleLine
23
+ };
24
+ //# sourceMappingURL=EndedLine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EndedLine.js","sources":["../../../src/components/rbac/EndedLine.tsx"],"sourcesContent":["import { RelativeTime } from \"../RelativeTime\";\r\n\r\n/** DX-5246: how a credential ended, in the consumer's own words (`label`, e.g. \"Revoked\") and when (`at`, an ISO instant). */\r\nexport interface EndedState {\r\n label: string;\r\n at: string;\r\n /** What follows from it, in the consumer's own words (e.g. \"counts until Oct 24\"): shown after the time, after a comma. */\r\n after?: string;\r\n}\r\n\r\n/** The muted \"<label> <time ago>[, <after>]\" line an ended session or key shows under its name (shared by `SessionsList` and `ApiKeysTable`). */\r\nexport function EndedLine({ ended }: { ended: EndedState }) {\r\n return (\r\n <span className=\"text-xs text-tertiary\" data-testid=\"ended-line\">\r\n {ended.label} <RelativeTime at={ended.at} />\r\n {ended.after !== undefined && `, ${ended.after}`}\r\n </span>\r\n );\r\n}\r\n\r\n/** DX-5246: a credential that still works but nobody is using: the consumer's own words (`label`, e.g. \"Idle, last used\") and, when known, the ISO instant it was last in use (`at`). */\r\nexport interface IdleState {\r\n label: string;\r\n /** ISO instant of its last use; `null`/omitted for one never used, which shows the label alone. */\r\n at?: string | null;\r\n}\r\n\r\n/** The muted \"<label> <time ago>\" line an idle session or key shows under its name (shared by `SessionsList` and `ApiKeysTable`). Unlike an ended row it keeps every action. */\r\nexport function IdleLine({ idle }: { idle: IdleState }) {\r\n return (\r\n <span className=\"text-xs text-tertiary\" data-testid=\"idle-line\">\r\n {idle.label}\r\n {idle.at != null && (\r\n <>\r\n {\" \"}\r\n <RelativeTime at={idle.at} />\r\n </>\r\n )}\r\n </span>\r\n );\r\n}\r\n"],"names":["EndedLine","ended","jsxs","jsx","RelativeTime","IdleLine","idle","Fragment"],"mappings":";;AAWO,SAASA,EAAU,EAAE,OAAAC,KAAgC;AAC1D,SACE,gBAAAC,EAAC,QAAA,EAAK,WAAU,yBAAwB,eAAY,cACjD,UAAA;AAAA,IAAAD,EAAM;AAAA,IAAM;AAAA,IAAC,gBAAAE,EAACC,GAAA,EAAa,IAAIH,EAAM,GAAA,CAAI;AAAA,IACzCA,EAAM,UAAU,UAAa,KAAKA,EAAM,KAAK;AAAA,EAAA,GAChD;AAEJ;AAUO,SAASI,EAAS,EAAE,MAAAC,KAA6B;AACtD,SACE,gBAAAJ,EAAC,QAAA,EAAK,WAAU,yBAAwB,eAAY,aACjD,UAAA;AAAA,IAAAI,EAAK;AAAA,IACLA,EAAK,MAAM,QACV,gBAAAJ,EAAAK,GAAA,EACG,UAAA;AAAA,MAAA;AAAA,MACD,gBAAAJ,EAACC,GAAA,EAAa,IAAIE,EAAK,GAAA,CAAI;AAAA,IAAA,EAAA,CAC7B;AAAA,EAAA,GAEJ;AAEJ;"}
@@ -0,0 +1,148 @@
1
+ import { jsx as l, jsxs as g } from "react/jsx-runtime";
2
+ import { AlertDialog as v } from "../Dialog.js";
3
+ import { IconButton as m } from "../IconButton.js";
4
+ import { Icon as c } from "../Icon.js";
5
+ import { Badge as p } from "../Badge.js";
6
+ import { TableEmptyState as b, DataTable as h, CellStack as k } from "../Table.js";
7
+ import { RelativeTime as x } from "../RelativeTime.js";
8
+ import { useUiStrings as f } from "../../lib/i18n/provider.js";
9
+ const y = {
10
+ pending: "warning",
11
+ accepted: "success",
12
+ revoked: "danger",
13
+ expired: "neutral"
14
+ };
15
+ function S({
16
+ invitation: i,
17
+ busy: a,
18
+ onResend: t,
19
+ onRevoke: r,
20
+ onCopyLink: n
21
+ }) {
22
+ const e = f().invitationsList;
23
+ return i.status === "pending" || i.status === "expired" ? /* @__PURE__ */ g("div", { className: "flex justify-end gap-1", children: [
24
+ n && /* @__PURE__ */ l(
25
+ m,
26
+ {
27
+ icon: /* @__PURE__ */ l(c, { name: "link", size: "sm" }),
28
+ label: e.copyLink(i.email),
29
+ size: "sm",
30
+ disabledReason: a ? e.working : void 0,
31
+ onClick: () => n(i.id)
32
+ }
33
+ ),
34
+ /* @__PURE__ */ l(
35
+ m,
36
+ {
37
+ icon: /* @__PURE__ */ l(c, { name: "refresh-cw", size: "sm" }),
38
+ label: e.resend(i.email),
39
+ size: "sm",
40
+ disabledReason: a ? e.working : void 0,
41
+ onClick: () => t(i.id)
42
+ }
43
+ ),
44
+ /* @__PURE__ */ l(
45
+ v,
46
+ {
47
+ trigger: /* @__PURE__ */ l(
48
+ m,
49
+ {
50
+ icon: /* @__PURE__ */ l(c, { name: "x", size: "sm" }),
51
+ label: e.revoke(i.email),
52
+ tone: "danger",
53
+ size: "sm",
54
+ disabledReason: a ? e.working : void 0
55
+ }
56
+ ),
57
+ title: e.revokeTitle(i.email),
58
+ description: e.revokeDescription,
59
+ confirmLabel: e.revokeConfirm,
60
+ destructive: !0,
61
+ loading: a,
62
+ onConfirm: () => r(i.id)
63
+ }
64
+ )
65
+ ] }) : null;
66
+ }
67
+ function N(i, a, t, r, n) {
68
+ return [
69
+ {
70
+ id: "invitee",
71
+ header: i.columnInvitee,
72
+ accessorFn: (e) => e.email,
73
+ cell: ({ row: e }) => /* @__PURE__ */ l(
74
+ k,
75
+ {
76
+ primary: e.original.email,
77
+ secondary: e.original.invitedByName ? i.invitedBy(e.original.invitedByName) : void 0
78
+ }
79
+ )
80
+ },
81
+ {
82
+ id: "role",
83
+ header: i.columnRole,
84
+ accessorFn: (e) => e.roleLabel,
85
+ cell: ({ row: e }) => /* @__PURE__ */ l("span", { className: "text-secondary", children: e.original.roleLabel })
86
+ },
87
+ {
88
+ id: "status",
89
+ header: i.columnStatus,
90
+ accessorFn: (e) => e.status,
91
+ // card AC #6 — a failed/suppressed send, or a later bounce/complaint
92
+ // notification, is shown on the invitation itself (not just a
93
+ // one-time toast at create/resend time) so an operator revisiting the
94
+ // list later still sees it and knows to Resend.
95
+ cell: ({ row: e }) => {
96
+ const { lastEmailStatus: o, lastEmailBounced: s, lastEmailComplained: d } = e.original, u = d ? i.complaint : s ? i.bounced : o === "failed" || o === "suppressed" ? i.deliveryFailed : null;
97
+ return /* @__PURE__ */ g("div", { className: "flex flex-wrap items-center gap-1", children: [
98
+ /* @__PURE__ */ l(p, { tone: y[e.original.status], dot: !0, children: i.status[e.original.status] }),
99
+ u && /* @__PURE__ */ l(p, { tone: "danger", children: u })
100
+ ] });
101
+ }
102
+ },
103
+ {
104
+ id: "sent",
105
+ header: i.columnSent,
106
+ accessorFn: (e) => e.createdAt,
107
+ cell: ({ row: e }) => /* @__PURE__ */ l("span", { className: "text-secondary", children: /* @__PURE__ */ l(x, { at: e.original.createdAt }) })
108
+ },
109
+ {
110
+ id: "actions",
111
+ header: "",
112
+ enableSorting: !1,
113
+ cell: ({ row: e }) => /* @__PURE__ */ l(
114
+ S,
115
+ {
116
+ invitation: e.original,
117
+ busy: a === e.original.id,
118
+ onResend: t,
119
+ onRevoke: r,
120
+ onCopyLink: n
121
+ }
122
+ )
123
+ }
124
+ ];
125
+ }
126
+ function R({
127
+ invitations: i,
128
+ onResend: a,
129
+ onRevoke: t,
130
+ onCopyLink: r,
131
+ busyId: n,
132
+ emptyState: e,
133
+ className: o
134
+ }) {
135
+ const s = f().invitationsList, d = N(s, n, a, t, r);
136
+ return i.length === 0 ? e ?? /* @__PURE__ */ l(
137
+ b,
138
+ {
139
+ icon: /* @__PURE__ */ l(c, { name: "mail", size: "lg", className: "text-tertiary" }),
140
+ title: s.emptyTitle,
141
+ description: s.emptyDescription
142
+ }
143
+ ) : /* @__PURE__ */ l(h, { columns: d, data: i, className: o });
144
+ }
145
+ export {
146
+ R as InvitationsList
147
+ };
148
+ //# sourceMappingURL=InvitationsList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvitationsList.js","sources":["../../../src/components/rbac/InvitationsList.tsx"],"sourcesContent":["import type { ColumnDef } from \"@tanstack/react-table\";\nimport { AlertDialog } from \"../Dialog\";\nimport { IconButton } from \"../IconButton\";\nimport { Icon } from \"../Icon\";\nimport { Badge } from \"../Badge\";\nimport { CellStack, DataTable, TableEmptyState } from \"../Table\";\nimport { RelativeTime } from \"../RelativeTime\";\nimport { useUiStrings } from \"../../lib/i18n\";\nimport type { UiStrings } from \"../../lib/i18n\";\n\n/* ----------------------------------------------------------------------------\n INVITATIONS LIST\n\n A team's pending/accepted/revoked/expired invitations — the sibling table\n to `MembersPanel` (same `DataTable` primitive, same disabled/busy-row\n shape), rendered alongside it on a members screen. PRESENTATIONAL ONLY:\n every mutation (resend, revoke, copy the invite link) is a callback: the\n list never fetches and knows nothing about HTTP or token shapes.\n\n `status` is a CLOSED set the consumer computes and hands in (never derived\n here — this library has no notion of \"expired\" without a clock, and no\n business deciding what counts as one).\n -------------------------------------------------------------------------- */\n\nexport type InvitationStatus = \"pending\" | \"accepted\" | \"revoked\" | \"expired\";\n\nexport interface InvitationsListItem {\n id: string;\n email: string;\n roleLabel: string;\n status: InvitationStatus;\n createdAt: string;\n invitedByName?: string;\n /**\n * The MOST RECENT send attempt's outcome for this invitation (create or a\n * later resend), when the consumer's read surfaced one. `undefined` means\n * the consumer's data source has no send-history correlation — the list\n * renders no delivery indicator at all in that case (never assumed \"sent\"\n * from absence). Omit `lastEmailBounced`/`lastEmailComplained` the same\n * way when unknown, rather than defaulting to `false`.\n */\n lastEmailStatus?: \"sent\" | \"failed\" | \"suppressed\";\n /** A LATER async bounce notification arrived for the most recent send. */\n lastEmailBounced?: boolean;\n /** A LATER async complaint notification arrived for the most recent send. */\n lastEmailComplained?: boolean;\n}\n\nexport interface InvitationsListProps {\n invitations: InvitationsListItem[];\n onResend: (id: string) => void;\n onRevoke: (id: string) => void;\n /**\n * Copies the invite link for manual sharing (card architecture: \"the admin\n * UI can also copy the invite link\"). Omit to hide the copy control\n * entirely — a consumer whose invite creation response never surfaced a raw\n * token (e.g. a page reload after create) has nothing to copy.\n */\n onCopyLink?: (id: string) => void;\n /** The id of a row currently mid-mutation (resend or revoke). */\n busyId?: string | null;\n emptyState?: React.ReactNode;\n className?: string;\n}\n\nconst STATUS_TONE: Record<InvitationStatus, \"warning\" | \"success\" | \"danger\" | \"neutral\"> = {\n pending: \"warning\",\n accepted: \"success\",\n revoked: \"danger\",\n expired: \"neutral\",\n};\n\nfunction ActionsCell({\n invitation,\n busy,\n onResend,\n onRevoke,\n onCopyLink,\n}: {\n invitation: InvitationsListItem;\n busy: boolean;\n onResend: (id: string) => void;\n onRevoke: (id: string) => void;\n onCopyLink?: (id: string) => void;\n}) {\n const strings = useUiStrings().invitationsList;\n // Only a LIVE invitation (pending or expired-but-unrevoked, both resendable\n // per the card's own DB contract) can be resent, revoked or copied — an\n // accepted/revoked one is a historical row, actions-inert.\n const live = invitation.status === \"pending\" || invitation.status === \"expired\";\n if (!live) return null;\n\n return (\n <div className=\"flex justify-end gap-1\">\n {onCopyLink && (\n <IconButton\n icon={<Icon name=\"link\" size=\"sm\" />}\n label={strings.copyLink(invitation.email)}\n size=\"sm\"\n disabledReason={busy ? strings.working : undefined}\n onClick={() => onCopyLink(invitation.id)}\n />\n )}\n <IconButton\n icon={<Icon name=\"refresh-cw\" size=\"sm\" />}\n label={strings.resend(invitation.email)}\n size=\"sm\"\n disabledReason={busy ? strings.working : undefined}\n onClick={() => onResend(invitation.id)}\n />\n <AlertDialog\n trigger={\n <IconButton\n icon={<Icon name=\"x\" size=\"sm\" />}\n label={strings.revoke(invitation.email)}\n tone=\"danger\"\n size=\"sm\"\n disabledReason={busy ? strings.working : undefined}\n />\n }\n title={strings.revokeTitle(invitation.email)}\n description={strings.revokeDescription}\n confirmLabel={strings.revokeConfirm}\n destructive\n loading={busy}\n onConfirm={() => onRevoke(invitation.id)}\n />\n </div>\n );\n}\n\nfunction buildColumns(\n strings: UiStrings[\"invitationsList\"],\n busyId: string | null | undefined,\n onResend: (id: string) => void,\n onRevoke: (id: string) => void,\n onCopyLink: ((id: string) => void) | undefined,\n): ColumnDef<InvitationsListItem, unknown>[] {\n return [\n {\n id: \"invitee\",\n header: strings.columnInvitee,\n accessorFn: (i) => i.email,\n cell: ({ row }) => (\n <CellStack\n primary={row.original.email}\n secondary={row.original.invitedByName ? strings.invitedBy(row.original.invitedByName) : undefined}\n />\n ),\n },\n {\n id: \"role\",\n header: strings.columnRole,\n accessorFn: (i) => i.roleLabel,\n cell: ({ row }) => <span className=\"text-secondary\">{row.original.roleLabel}</span>,\n },\n {\n id: \"status\",\n header: strings.columnStatus,\n accessorFn: (i) => i.status,\n // card AC #6 — a failed/suppressed send, or a later bounce/complaint\n // notification, is shown on the invitation itself (not just a\n // one-time toast at create/resend time) so an operator revisiting the\n // list later still sees it and knows to Resend.\n cell: ({ row }) => {\n const { lastEmailStatus, lastEmailBounced, lastEmailComplained } = row.original;\n const deliveryLabel = lastEmailComplained\n ? strings.complaint\n : lastEmailBounced\n ? strings.bounced\n : lastEmailStatus === \"failed\" || lastEmailStatus === \"suppressed\"\n ? strings.deliveryFailed\n : null;\n return (\n <div className=\"flex flex-wrap items-center gap-1\">\n <Badge tone={STATUS_TONE[row.original.status]} dot>\n {strings.status[row.original.status]}\n </Badge>\n {deliveryLabel && <Badge tone=\"danger\">{deliveryLabel}</Badge>}\n </div>\n );\n },\n },\n {\n id: \"sent\",\n header: strings.columnSent,\n accessorFn: (i) => i.createdAt,\n cell: ({ row }) => <span className=\"text-secondary\"><RelativeTime at={row.original.createdAt} /></span>,\n },\n {\n id: \"actions\",\n header: \"\",\n enableSorting: false,\n cell: ({ row }) => (\n <ActionsCell\n invitation={row.original}\n busy={busyId === row.original.id}\n onResend={onResend}\n onRevoke={onRevoke}\n onCopyLink={onCopyLink}\n />\n ),\n },\n ];\n}\n\nexport function InvitationsList({\n invitations,\n onResend,\n onRevoke,\n onCopyLink,\n busyId,\n emptyState,\n className,\n}: InvitationsListProps) {\n const strings = useUiStrings().invitationsList;\n const columns = buildColumns(strings, busyId, onResend, onRevoke, onCopyLink);\n\n if (invitations.length === 0) {\n return (\n emptyState ?? (\n <TableEmptyState\n icon={<Icon name=\"mail\" size=\"lg\" className=\"text-tertiary\" />}\n title={strings.emptyTitle}\n description={strings.emptyDescription}\n />\n )\n );\n }\n\n return <DataTable columns={columns} data={invitations} className={className} />;\n}\n"],"names":["STATUS_TONE","ActionsCell","invitation","busy","onResend","onRevoke","onCopyLink","strings","useUiStrings","jsxs","jsx","IconButton","Icon","AlertDialog","buildColumns","busyId","i","row","CellStack","lastEmailStatus","lastEmailBounced","lastEmailComplained","deliveryLabel","Badge","RelativeTime","InvitationsList","invitations","emptyState","className","columns","TableEmptyState","DataTable"],"mappings":";;;;;;;;AAiEA,MAAMA,IAAsF;AAAA,EAC1F,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AACX;AAEA,SAASC,EAAY;AAAA,EACnB,YAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AACF,GAMG;AACD,QAAMC,IAAUC,IAAe;AAK/B,SADaN,EAAW,WAAW,aAAaA,EAAW,WAAW,YAIpE,gBAAAO,EAAC,OAAA,EAAI,WAAU,0BACZ,UAAA;AAAA,IAAAH,KACC,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAM,gBAAAD,EAACE,GAAA,EAAK,MAAK,QAAO,MAAK,MAAK;AAAA,QAClC,OAAOL,EAAQ,SAASL,EAAW,KAAK;AAAA,QACxC,MAAK;AAAA,QACL,gBAAgBC,IAAOI,EAAQ,UAAU;AAAA,QACzC,SAAS,MAAMD,EAAWJ,EAAW,EAAE;AAAA,MAAA;AAAA,IAAA;AAAA,IAG3C,gBAAAQ;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAM,gBAAAD,EAACE,GAAA,EAAK,MAAK,cAAa,MAAK,MAAK;AAAA,QACxC,OAAOL,EAAQ,OAAOL,EAAW,KAAK;AAAA,QACtC,MAAK;AAAA,QACL,gBAAgBC,IAAOI,EAAQ,UAAU;AAAA,QACzC,SAAS,MAAMH,EAASF,EAAW,EAAE;AAAA,MAAA;AAAA,IAAA;AAAA,IAEvC,gBAAAQ;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,SACE,gBAAAH;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,MAAM,gBAAAD,EAACE,GAAA,EAAK,MAAK,KAAI,MAAK,MAAK;AAAA,YAC/B,OAAOL,EAAQ,OAAOL,EAAW,KAAK;AAAA,YACtC,MAAK;AAAA,YACL,MAAK;AAAA,YACL,gBAAgBC,IAAOI,EAAQ,UAAU;AAAA,UAAA;AAAA,QAAA;AAAA,QAG7C,OAAOA,EAAQ,YAAYL,EAAW,KAAK;AAAA,QAC3C,aAAaK,EAAQ;AAAA,QACrB,cAAcA,EAAQ;AAAA,QACtB,aAAW;AAAA,QACX,SAASJ;AAAA,QACT,WAAW,MAAME,EAASH,EAAW,EAAE;AAAA,MAAA;AAAA,IAAA;AAAA,EACzC,GACF,IArCgB;AAuCpB;AAEA,SAASY,EACPP,GACAQ,GACAX,GACAC,GACAC,GAC2C;AAC3C,SAAO;AAAA,IACL;AAAA,MACE,IAAI;AAAA,MACJ,QAAQC,EAAQ;AAAA,MAChB,YAAY,CAACS,MAAMA,EAAE;AAAA,MACrB,MAAM,CAAC,EAAE,KAAAC,EAAA,MACP,gBAAAP;AAAA,QAACQ;AAAA,QAAA;AAAA,UACC,SAASD,EAAI,SAAS;AAAA,UACtB,WAAWA,EAAI,SAAS,gBAAgBV,EAAQ,UAAUU,EAAI,SAAS,aAAa,IAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IAC1F;AAAA,IAGJ;AAAA,MACE,IAAI;AAAA,MACJ,QAAQV,EAAQ;AAAA,MAChB,YAAY,CAACS,MAAMA,EAAE;AAAA,MACrB,MAAM,CAAC,EAAE,KAAAC,EAAA,MAAU,gBAAAP,EAAC,QAAA,EAAK,WAAU,kBAAkB,UAAAO,EAAI,SAAS,UAAA,CAAU;AAAA,IAAA;AAAA,IAE9E;AAAA,MACE,IAAI;AAAA,MACJ,QAAQV,EAAQ;AAAA,MAChB,YAAY,CAACS,MAAMA,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrB,MAAM,CAAC,EAAE,KAAAC,QAAU;AACjB,cAAM,EAAE,iBAAAE,GAAiB,kBAAAC,GAAkB,qBAAAC,EAAA,IAAwBJ,EAAI,UACjEK,IAAgBD,IAClBd,EAAQ,YACRa,IACEb,EAAQ,UACRY,MAAoB,YAAYA,MAAoB,eAClDZ,EAAQ,iBACR;AACR,eACE,gBAAAE,EAAC,OAAA,EAAI,WAAU,qCACb,UAAA;AAAA,UAAA,gBAAAC,EAACa,GAAA,EAAM,MAAMvB,EAAYiB,EAAI,SAAS,MAAM,GAAG,KAAG,IAC/C,UAAAV,EAAQ,OAAOU,EAAI,SAAS,MAAM,GACrC;AAAA,UACCK,KAAiB,gBAAAZ,EAACa,GAAA,EAAM,MAAK,UAAU,UAAAD,EAAA,CAAc;AAAA,QAAA,GACxD;AAAA,MAEJ;AAAA,IAAA;AAAA,IAEF;AAAA,MACE,IAAI;AAAA,MACJ,QAAQf,EAAQ;AAAA,MAChB,YAAY,CAACS,MAAMA,EAAE;AAAA,MACrB,MAAM,CAAC,EAAE,KAAAC,EAAA,MAAU,gBAAAP,EAAC,QAAA,EAAK,WAAU,kBAAiB,4BAACc,GAAA,EAAa,IAAIP,EAAI,SAAS,WAAW,EAAA,CAAE;AAAA,IAAA;AAAA,IAElG;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,MAAM,CAAC,EAAE,KAAAA,EAAA,MACP,gBAAAP;AAAA,QAACT;AAAA,QAAA;AAAA,UACC,YAAYgB,EAAI;AAAA,UAChB,MAAMF,MAAWE,EAAI,SAAS;AAAA,UAC9B,UAAAb;AAAA,UACA,UAAAC;AAAA,UACA,YAAAC;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAEJ;AAEJ;AAEO,SAASmB,EAAgB;AAAA,EAC9B,aAAAC;AAAA,EACA,UAAAtB;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,QAAAS;AAAA,EACA,YAAAY;AAAA,EACA,WAAAC;AACF,GAAyB;AACvB,QAAMrB,IAAUC,IAAe,iBACzBqB,IAAUf,EAAaP,GAASQ,GAAQX,GAAUC,GAAUC,CAAU;AAE5E,SAAIoB,EAAY,WAAW,IAEvBC,KACE,gBAAAjB;AAAA,IAACoB;AAAA,IAAA;AAAA,MACC,wBAAOlB,GAAA,EAAK,MAAK,QAAO,MAAK,MAAK,WAAU,iBAAgB;AAAA,MAC5D,OAAOL,EAAQ;AAAA,MACf,aAAaA,EAAQ;AAAA,IAAA;AAAA,EAAA,IAMtB,gBAAAG,EAACqB,GAAA,EAAU,SAAAF,GAAkB,MAAMH,GAAa,WAAAE,GAAsB;AAC/E;"}
@@ -0,0 +1,97 @@
1
+ import { jsx as r, jsxs as p, Fragment as F } from "react/jsx-runtime";
2
+ import { useState as d, useEffect as L } from "react";
3
+ import { Badge as M } from "../Badge.js";
4
+ import { Button as E } from "../Button.js";
5
+ import { Callout as N } from "../Callout.js";
6
+ import { Dialog as j } from "../Dialog.js";
7
+ import { Field as y } from "../Field.js";
8
+ import { Select as K, SelectItem as $ } from "../Select.js";
9
+ import { useUiStrings as A } from "../../lib/i18n/provider.js";
10
+ const w = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
11
+ function R({
12
+ open: m,
13
+ onOpenChange: h,
14
+ assignableRoles: f,
15
+ loading: l = !1,
16
+ error: b,
17
+ onSubmit: k,
18
+ className: S
19
+ }) {
20
+ const i = A().inviteMembersDialog, [t, n] = d([]), [a, s] = d(""), [u, v] = d(f[0]?.id ?? ""), [I, o] = d(void 0);
21
+ L(() => {
22
+ m && (n([]), s(""), o(void 0), v(f[0]?.id ?? ""));
23
+ }, [m]);
24
+ function g() {
25
+ const e = a.trim().replace(/,$/, "");
26
+ if (e !== "") {
27
+ if (!w.test(e)) {
28
+ o(i.invalidEmail(e));
29
+ return;
30
+ }
31
+ if (t.includes(e)) {
32
+ s(""), o(void 0);
33
+ return;
34
+ }
35
+ n([...t, e]), s(""), o(void 0);
36
+ }
37
+ }
38
+ function _(e) {
39
+ e.key === "Enter" || e.key === "," ? (e.preventDefault(), g()) : e.key === "Backspace" && a === "" && t.length > 0 && n(t.slice(0, -1));
40
+ }
41
+ const c = a.trim(), x = c !== "" && w.test(c) && !t.includes(c) ? [...t, c] : t, D = x.length > 0 && u !== "" && !l;
42
+ function B() {
43
+ D && k({ emails: x, roleId: u });
44
+ }
45
+ return /* @__PURE__ */ r(
46
+ j,
47
+ {
48
+ open: m,
49
+ onOpenChange: h,
50
+ title: i.title,
51
+ description: i.description,
52
+ className: S,
53
+ actions: /* @__PURE__ */ p(F, { children: [
54
+ /* @__PURE__ */ r(E, { variant: "outline", onClick: () => h(!1), disabled: l, children: i.cancel }),
55
+ /* @__PURE__ */ r(E, { onClick: B, disabled: !D, loading: l, children: i.send(t.length) })
56
+ ] }),
57
+ children: /* @__PURE__ */ p("div", { className: "flex flex-col gap-4", children: [
58
+ b && /* @__PURE__ */ r(N, { tone: "danger", title: b }),
59
+ /* @__PURE__ */ r(y, { label: i.emailsLabel, error: I, description: i.emailsDescription, children: /* @__PURE__ */ p("div", { className: "flex flex-wrap items-center gap-1.5 rounded-md border border-field-border bg-field p-1.5 focus-within:border-control focus-within:shadow-[0_0_0_3px_var(--control-focus-halo)]", children: [
60
+ t.map((e) => /* @__PURE__ */ r(
61
+ M,
62
+ {
63
+ tone: "accent",
64
+ dismiss: {
65
+ label: i.removeEmail(e),
66
+ onDismiss: () => n(t.filter((C) => C !== e))
67
+ },
68
+ children: e
69
+ },
70
+ e
71
+ )),
72
+ /* @__PURE__ */ r(
73
+ "input",
74
+ {
75
+ type: "email",
76
+ value: a,
77
+ onChange: (e) => {
78
+ s(e.target.value), o(void 0);
79
+ },
80
+ onKeyDown: _,
81
+ onBlur: g,
82
+ placeholder: t.length === 0 ? i.emailPlaceholder : "",
83
+ disabled: l,
84
+ autoFocus: !0,
85
+ className: "min-w-32 flex-1 border-0 bg-transparent px-1 py-0.5 text-sm text-primary outline-none placeholder:text-field-placeholder"
86
+ }
87
+ )
88
+ ] }) }),
89
+ /* @__PURE__ */ r(y, { label: i.roleLabel, children: /* @__PURE__ */ r(K, { value: u, onValueChange: (e) => v(e ?? ""), disabled: l, children: f.map((e) => /* @__PURE__ */ r($, { value: e.id, children: e.label }, e.id)) }) })
90
+ ] })
91
+ }
92
+ );
93
+ }
94
+ export {
95
+ R as InviteMembersDialog
96
+ };
97
+ //# sourceMappingURL=InviteMembersDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InviteMembersDialog.js","sources":["../../../src/components/rbac/InviteMembersDialog.tsx"],"sourcesContent":["import { useEffect, useState, type KeyboardEvent } from \"react\";\nimport { Badge } from \"../Badge\";\nimport { Button } from \"../Button\";\nimport { Callout } from \"../Callout\";\nimport { Dialog } from \"../Dialog\";\nimport { Field } from \"../Field\";\nimport { Select, SelectItem } from \"../Select\";\nimport { useUiStrings } from \"../../lib/i18n\";\nimport type { Role } from \"./types\";\n\n/* ============================================================================\n INVITE MEMBERS DIALOG\n\n Multi-email chips + a single role, submitted together as one batch (the\n card behind this: each email gets its own invitation, one send). PRESENTATIONAL\n ONLY, local `useState` reset on open — same shape as `RoleEditorDialog`'s\n own header describes.\n\n The chip input is built from `Badge`'s own `dismiss` prop (\"a chip you can\n take off\") rather than a new primitive — there is no dedicated tag/chip\n input in this library yet, and one email address is exactly what a\n dismissible badge already models.\n ========================================================================= */\n\nconst EMAIL_RE = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\nexport interface InviteMembersDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n /** The roles an invitee may be given — the role Select's options. */\n assignableRoles: Role[];\n /** Disables the form and shows a busy submit button while the invite request is in flight. */\n loading?: boolean;\n /**\n * A server-side error surfaced after a failed submit (e.g. \"invite_exists\"\n * for one address) — rendered as a `Callout`. The dialog has no notion of\n * WHY a send failed; the consumer's own error copy goes here verbatim.\n */\n error?: string;\n onSubmit: (input: { emails: string[]; roleId: string }) => void;\n className?: string;\n}\n\nexport function InviteMembersDialog({\n open,\n onOpenChange,\n assignableRoles,\n loading = false,\n error,\n onSubmit,\n className,\n}: InviteMembersDialogProps) {\n const strings = useUiStrings().inviteMembersDialog;\n const [emails, setEmails] = useState<string[]>([]);\n const [draft, setDraft] = useState(\"\");\n const [roleId, setRoleId] = useState<string>(assignableRoles[0]?.id ?? \"\");\n const [draftError, setDraftError] = useState<string | undefined>(undefined);\n\n useEffect(() => {\n if (!open) return;\n setEmails([]);\n setDraft(\"\");\n setDraftError(undefined);\n setRoleId(assignableRoles[0]?.id ?? \"\");\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n function commitDraft(): void {\n const value = draft.trim().replace(/,$/, \"\");\n if (value === \"\") return;\n if (!EMAIL_RE.test(value)) {\n setDraftError(strings.invalidEmail(value));\n return;\n }\n if (emails.includes(value)) {\n setDraft(\"\");\n setDraftError(undefined);\n return;\n }\n setEmails([...emails, value]);\n setDraft(\"\");\n setDraftError(undefined);\n }\n\n function handleKeyDown(event: KeyboardEvent<HTMLInputElement>): void {\n if (event.key === \"Enter\" || event.key === \",\") {\n event.preventDefault();\n commitDraft();\n } else if (event.key === \"Backspace\" && draft === \"\" && emails.length > 0) {\n setEmails(emails.slice(0, -1));\n }\n }\n\n // A partially-typed valid address still in the draft field counts toward\n // BOTH whether submit is enabled and what gets sent — a consumer hitting\n // Submit without pressing Enter/comma on the LAST chip should not lose it\n // or be blocked by a submit button that never noticed it was valid.\n const pendingDraft = draft.trim();\n const draftEmails =\n pendingDraft !== \"\" && EMAIL_RE.test(pendingDraft) && !emails.includes(pendingDraft)\n ? [...emails, pendingDraft]\n : emails;\n const canSubmit = draftEmails.length > 0 && roleId !== \"\" && !loading;\n\n function handleSubmit(): void {\n if (!canSubmit) return;\n onSubmit({ emails: draftEmails, roleId });\n }\n\n return (\n <Dialog\n open={open}\n onOpenChange={onOpenChange}\n title={strings.title}\n description={strings.description}\n className={className}\n actions={\n <>\n <Button variant=\"outline\" onClick={() => onOpenChange(false)} disabled={loading}>\n {strings.cancel}\n </Button>\n <Button onClick={handleSubmit} disabled={!canSubmit} loading={loading}>\n {strings.send(emails.length)}\n </Button>\n </>\n }\n >\n <div className=\"flex flex-col gap-4\">\n {error && <Callout tone=\"danger\" title={error} />}\n <Field label={strings.emailsLabel} error={draftError} description={strings.emailsDescription}>\n <div className=\"flex flex-wrap items-center gap-1.5 rounded-md border border-field-border bg-field p-1.5 focus-within:border-control focus-within:shadow-[0_0_0_3px_var(--control-focus-halo)]\">\n {emails.map((email) => (\n <Badge\n key={email}\n tone=\"accent\"\n dismiss={{\n label: strings.removeEmail(email),\n onDismiss: () => setEmails(emails.filter((e) => e !== email)),\n }}\n >\n {email}\n </Badge>\n ))}\n <input\n type=\"email\"\n value={draft}\n onChange={(event) => {\n setDraft(event.target.value);\n setDraftError(undefined);\n }}\n onKeyDown={handleKeyDown}\n onBlur={commitDraft}\n placeholder={emails.length === 0 ? strings.emailPlaceholder : \"\"}\n disabled={loading}\n autoFocus\n className=\"min-w-32 flex-1 border-0 bg-transparent px-1 py-0.5 text-sm text-primary outline-none placeholder:text-field-placeholder\"\n />\n </div>\n </Field>\n <Field label={strings.roleLabel}>\n <Select value={roleId} onValueChange={(value) => setRoleId((value as string | null) ?? \"\")} disabled={loading}>\n {assignableRoles.map((role) => (\n <SelectItem key={role.id} value={role.id}>\n {role.label}\n </SelectItem>\n ))}\n </Select>\n </Field>\n </div>\n </Dialog>\n );\n}\n"],"names":["EMAIL_RE","InviteMembersDialog","open","onOpenChange","assignableRoles","loading","error","onSubmit","className","strings","useUiStrings","emails","setEmails","useState","draft","setDraft","roleId","setRoleId","draftError","setDraftError","useEffect","commitDraft","value","handleKeyDown","event","pendingDraft","draftEmails","canSubmit","handleSubmit","jsx","Dialog","jsxs","Fragment","Button","Callout","Field","email","Badge","e","Select","role","SelectItem"],"mappings":"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"}