@agimon-ai/doompi-web-components 0.0.1-alpha.4 → 0.0.1-alpha.41

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 (503) hide show
  1. package/README.md +7 -7
  2. package/dist/index.cjs +1 -1
  3. package/dist/index.d.mts +18 -6
  4. package/dist/index.mjs +1 -1
  5. package/dist/src/components/Accordion.cjs +1 -1
  6. package/dist/src/components/Accordion.cjs.map +1 -1
  7. package/dist/src/components/Accordion.d.mts +5 -5
  8. package/dist/src/components/Accordion.d.mts.map +1 -1
  9. package/dist/src/components/Accordion.mjs +1 -1
  10. package/dist/src/components/Accordion.mjs.map +1 -1
  11. package/dist/src/components/AnsiText.cjs +4 -0
  12. package/dist/src/components/AnsiText.cjs.map +1 -0
  13. package/dist/src/components/AnsiText.d.mts +16 -0
  14. package/dist/src/components/AnsiText.d.mts.map +1 -0
  15. package/dist/src/components/AnsiText.mjs +4 -0
  16. package/dist/src/components/AnsiText.mjs.map +1 -0
  17. package/dist/src/components/Avatar.cjs +1 -1
  18. package/dist/src/components/Avatar.cjs.map +1 -1
  19. package/dist/src/components/Avatar.d.mts +4 -4
  20. package/dist/src/components/Avatar.d.mts.map +1 -1
  21. package/dist/src/components/Avatar.mjs +1 -1
  22. package/dist/src/components/Avatar.mjs.map +1 -1
  23. package/dist/src/components/Badge.cjs +1 -1
  24. package/dist/src/components/Badge.cjs.map +1 -1
  25. package/dist/src/components/Badge.d.mts +5 -6
  26. package/dist/src/components/Badge.d.mts.map +1 -1
  27. package/dist/src/components/Badge.mjs +1 -1
  28. package/dist/src/components/Badge.mjs.map +1 -1
  29. package/dist/src/components/Breadcrumb.cjs +1 -1
  30. package/dist/src/components/Breadcrumb.cjs.map +1 -1
  31. package/dist/src/components/Breadcrumb.d.mts +4 -5
  32. package/dist/src/components/Breadcrumb.d.mts.map +1 -1
  33. package/dist/src/components/Breadcrumb.mjs +1 -1
  34. package/dist/src/components/Breadcrumb.mjs.map +1 -1
  35. package/dist/src/components/Button.cjs +1 -1
  36. package/dist/src/components/Button.cjs.map +1 -1
  37. package/dist/src/components/Button.d.mts +6 -7
  38. package/dist/src/components/Button.d.mts.map +1 -1
  39. package/dist/src/components/Button.mjs +1 -1
  40. package/dist/src/components/Button.mjs.map +1 -1
  41. package/dist/src/components/Checkbox.cjs +1 -1
  42. package/dist/src/components/Checkbox.cjs.map +1 -1
  43. package/dist/src/components/Checkbox.d.mts +1 -1
  44. package/dist/src/components/Checkbox.d.mts.map +1 -1
  45. package/dist/src/components/Checkbox.mjs +1 -1
  46. package/dist/src/components/Checkbox.mjs.map +1 -1
  47. package/dist/src/components/CodeBlock.cjs +2 -0
  48. package/dist/src/components/CodeBlock.cjs.map +1 -0
  49. package/dist/src/components/CodeBlock.mjs +2 -0
  50. package/dist/src/components/CodeBlock.mjs.map +1 -0
  51. package/dist/src/components/CodeEditor.cjs +1 -1
  52. package/dist/src/components/CodeEditor.cjs.map +1 -1
  53. package/dist/src/components/CodeEditor.d.mts +1 -2
  54. package/dist/src/components/CodeEditor.d.mts.map +1 -1
  55. package/dist/src/components/CodeEditor.mjs +1 -1
  56. package/dist/src/components/CodeEditor.mjs.map +1 -1
  57. package/dist/src/components/CodeEditorView.cjs +1 -1
  58. package/dist/src/components/CodeEditorView.cjs.map +1 -1
  59. package/dist/src/components/CodeEditorView.mjs +1 -1
  60. package/dist/src/components/CodeEditorView.mjs.map +1 -1
  61. package/dist/src/components/Collapsible.cjs +1 -1
  62. package/dist/src/components/Collapsible.cjs.map +1 -1
  63. package/dist/src/components/Collapsible.d.mts +4 -4
  64. package/dist/src/components/Collapsible.d.mts.map +1 -1
  65. package/dist/src/components/Collapsible.mjs +1 -1
  66. package/dist/src/components/Collapsible.mjs.map +1 -1
  67. package/dist/src/components/Command.cjs +1 -1
  68. package/dist/src/components/Command.cjs.map +1 -1
  69. package/dist/src/components/Command.d.mts +11 -12
  70. package/dist/src/components/Command.d.mts.map +1 -1
  71. package/dist/src/components/Command.mjs +1 -1
  72. package/dist/src/components/Command.mjs.map +1 -1
  73. package/dist/src/components/CopyButton.cjs +2 -0
  74. package/dist/src/components/CopyButton.cjs.map +1 -0
  75. package/dist/src/components/CopyButton.mjs +2 -0
  76. package/dist/src/components/CopyButton.mjs.map +1 -0
  77. package/dist/src/components/Dialog.cjs +1 -1
  78. package/dist/src/components/Dialog.cjs.map +1 -1
  79. package/dist/src/components/Dialog.d.mts +15 -15
  80. package/dist/src/components/Dialog.d.mts.map +1 -1
  81. package/dist/src/components/Dialog.mjs +1 -1
  82. package/dist/src/components/Dialog.mjs.map +1 -1
  83. package/dist/src/components/Dot.cjs +1 -1
  84. package/dist/src/components/Dot.cjs.map +1 -1
  85. package/dist/src/components/Dot.d.mts +5 -6
  86. package/dist/src/components/Dot.d.mts.map +1 -1
  87. package/dist/src/components/Dot.mjs +1 -1
  88. package/dist/src/components/Dot.mjs.map +1 -1
  89. package/dist/src/components/Drawer.cjs +2 -0
  90. package/dist/src/components/Drawer.cjs.map +1 -0
  91. package/dist/src/components/Drawer.d.mts +17 -0
  92. package/dist/src/components/Drawer.d.mts.map +1 -0
  93. package/dist/src/components/Drawer.mjs +2 -0
  94. package/dist/src/components/Drawer.mjs.map +1 -0
  95. package/dist/src/components/DropdownMenu.cjs +1 -1
  96. package/dist/src/components/DropdownMenu.cjs.map +1 -1
  97. package/dist/src/components/DropdownMenu.d.mts +20 -20
  98. package/dist/src/components/DropdownMenu.d.mts.map +1 -1
  99. package/dist/src/components/DropdownMenu.mjs +1 -1
  100. package/dist/src/components/DropdownMenu.mjs.map +1 -1
  101. package/dist/src/components/EmptyState.cjs +1 -1
  102. package/dist/src/components/EmptyState.cjs.map +1 -1
  103. package/dist/src/components/EmptyState.d.mts +2 -3
  104. package/dist/src/components/EmptyState.d.mts.map +1 -1
  105. package/dist/src/components/EmptyState.mjs +1 -1
  106. package/dist/src/components/EmptyState.mjs.map +1 -1
  107. package/dist/src/components/HashlineLines.cjs +2 -0
  108. package/dist/src/components/HashlineLines.cjs.map +1 -0
  109. package/dist/src/components/HashlineLines.d.mts +23 -0
  110. package/dist/src/components/HashlineLines.d.mts.map +1 -0
  111. package/dist/src/components/HashlineLines.mjs +2 -0
  112. package/dist/src/components/HashlineLines.mjs.map +1 -0
  113. package/dist/src/components/Input.cjs +1 -1
  114. package/dist/src/components/Input.cjs.map +1 -1
  115. package/dist/src/components/Input.d.mts +6 -7
  116. package/dist/src/components/Input.d.mts.map +1 -1
  117. package/dist/src/components/Input.mjs +1 -1
  118. package/dist/src/components/Input.mjs.map +1 -1
  119. package/dist/src/components/Kbd.cjs +1 -1
  120. package/dist/src/components/Kbd.cjs.map +1 -1
  121. package/dist/src/components/Kbd.d.mts +1 -2
  122. package/dist/src/components/Kbd.d.mts.map +1 -1
  123. package/dist/src/components/Kbd.mjs +1 -1
  124. package/dist/src/components/Kbd.mjs.map +1 -1
  125. package/dist/src/components/Label.cjs +1 -1
  126. package/dist/src/components/Label.cjs.map +1 -1
  127. package/dist/src/components/Label.d.mts +1 -1
  128. package/dist/src/components/Label.d.mts.map +1 -1
  129. package/dist/src/components/Label.mjs +1 -1
  130. package/dist/src/components/Label.mjs.map +1 -1
  131. package/dist/src/components/Markdown.cjs +2 -1
  132. package/dist/src/components/Markdown.cjs.map +1 -1
  133. package/dist/src/components/Markdown.d.mts +12 -3
  134. package/dist/src/components/Markdown.d.mts.map +1 -1
  135. package/dist/src/components/Markdown.mjs +2 -1
  136. package/dist/src/components/Markdown.mjs.map +1 -1
  137. package/dist/src/components/MediaPreview.cjs +1 -1
  138. package/dist/src/components/MediaPreview.cjs.map +1 -1
  139. package/dist/src/components/MediaPreview.d.mts +39 -3
  140. package/dist/src/components/MediaPreview.d.mts.map +1 -1
  141. package/dist/src/components/MediaPreview.mjs +1 -1
  142. package/dist/src/components/MediaPreview.mjs.map +1 -1
  143. package/dist/src/components/MermaidDiagram.cjs +2 -0
  144. package/dist/src/components/MermaidDiagram.cjs.map +1 -0
  145. package/dist/src/components/MermaidDiagram.mjs +2 -0
  146. package/dist/src/components/MermaidDiagram.mjs.map +1 -0
  147. package/dist/src/components/MessageItem.cjs +1 -1
  148. package/dist/src/components/MessageItem.cjs.map +1 -1
  149. package/dist/src/components/MessageItem.d.mts +48 -17
  150. package/dist/src/components/MessageItem.d.mts.map +1 -1
  151. package/dist/src/components/MessageItem.mjs +1 -1
  152. package/dist/src/components/MessageItem.mjs.map +1 -1
  153. package/dist/src/components/MessageLines.cjs +1 -1
  154. package/dist/src/components/MessageLines.cjs.map +1 -1
  155. package/dist/src/components/MessageLines.d.mts +5 -6
  156. package/dist/src/components/MessageLines.d.mts.map +1 -1
  157. package/dist/src/components/MessageLines.mjs +1 -1
  158. package/dist/src/components/MessageLines.mjs.map +1 -1
  159. package/dist/src/components/OptionList.cjs +1 -1
  160. package/dist/src/components/OptionList.cjs.map +1 -1
  161. package/dist/src/components/OptionList.d.mts +9 -10
  162. package/dist/src/components/OptionList.d.mts.map +1 -1
  163. package/dist/src/components/OptionList.mjs +1 -1
  164. package/dist/src/components/OptionList.mjs.map +1 -1
  165. package/dist/src/components/Panel.cjs +1 -1
  166. package/dist/src/components/Panel.cjs.map +1 -1
  167. package/dist/src/components/Panel.d.mts +4 -5
  168. package/dist/src/components/Panel.d.mts.map +1 -1
  169. package/dist/src/components/Panel.mjs +1 -1
  170. package/dist/src/components/Panel.mjs.map +1 -1
  171. package/dist/src/components/PdfPreview.cjs +2 -0
  172. package/dist/src/components/PdfPreview.cjs.map +1 -0
  173. package/dist/src/components/PdfPreview.d.mts +52 -0
  174. package/dist/src/components/PdfPreview.d.mts.map +1 -0
  175. package/dist/src/components/PdfPreview.mjs +2 -0
  176. package/dist/src/components/PdfPreview.mjs.map +1 -0
  177. package/dist/src/components/Popover.cjs +1 -1
  178. package/dist/src/components/Popover.cjs.map +1 -1
  179. package/dist/src/components/Popover.d.mts +8 -8
  180. package/dist/src/components/Popover.d.mts.map +1 -1
  181. package/dist/src/components/Popover.mjs +1 -1
  182. package/dist/src/components/Popover.mjs.map +1 -1
  183. package/dist/src/components/Progress.cjs +1 -1
  184. package/dist/src/components/Progress.cjs.map +1 -1
  185. package/dist/src/components/Progress.d.mts +1 -1
  186. package/dist/src/components/Progress.d.mts.map +1 -1
  187. package/dist/src/components/Progress.mjs +1 -1
  188. package/dist/src/components/Progress.mjs.map +1 -1
  189. package/dist/src/components/RadioGroup.cjs +1 -1
  190. package/dist/src/components/RadioGroup.cjs.map +1 -1
  191. package/dist/src/components/RadioGroup.d.mts +4 -4
  192. package/dist/src/components/RadioGroup.d.mts.map +1 -1
  193. package/dist/src/components/RadioGroup.mjs +1 -1
  194. package/dist/src/components/RadioGroup.mjs.map +1 -1
  195. package/dist/src/components/ScrollArea.cjs +1 -1
  196. package/dist/src/components/ScrollArea.cjs.map +1 -1
  197. package/dist/src/components/ScrollArea.d.mts +3 -3
  198. package/dist/src/components/ScrollArea.d.mts.map +1 -1
  199. package/dist/src/components/ScrollArea.mjs +1 -1
  200. package/dist/src/components/ScrollArea.mjs.map +1 -1
  201. package/dist/src/components/SectionLabel.cjs +1 -1
  202. package/dist/src/components/SectionLabel.cjs.map +1 -1
  203. package/dist/src/components/SectionLabel.d.mts +1 -2
  204. package/dist/src/components/SectionLabel.d.mts.map +1 -1
  205. package/dist/src/components/SectionLabel.mjs +1 -1
  206. package/dist/src/components/SectionLabel.mjs.map +1 -1
  207. package/dist/src/components/Select.cjs +1 -1
  208. package/dist/src/components/Select.cjs.map +1 -1
  209. package/dist/src/components/Select.d.mts +9 -9
  210. package/dist/src/components/Select.d.mts.map +1 -1
  211. package/dist/src/components/Select.mjs +1 -1
  212. package/dist/src/components/Select.mjs.map +1 -1
  213. package/dist/src/components/Separator.cjs +1 -1
  214. package/dist/src/components/Separator.cjs.map +1 -1
  215. package/dist/src/components/Separator.d.mts +1 -1
  216. package/dist/src/components/Separator.d.mts.map +1 -1
  217. package/dist/src/components/Separator.mjs +1 -1
  218. package/dist/src/components/Separator.mjs.map +1 -1
  219. package/dist/src/components/Sheet.cjs +2 -0
  220. package/dist/src/components/Sheet.cjs.map +1 -0
  221. package/dist/src/components/Sheet.d.mts +35 -0
  222. package/dist/src/components/Sheet.d.mts.map +1 -0
  223. package/dist/src/components/Sheet.mjs +2 -0
  224. package/dist/src/components/Sheet.mjs.map +1 -0
  225. package/dist/src/components/Skeleton.cjs +1 -1
  226. package/dist/src/components/Skeleton.cjs.map +1 -1
  227. package/dist/src/components/Skeleton.d.mts +1 -2
  228. package/dist/src/components/Skeleton.d.mts.map +1 -1
  229. package/dist/src/components/Skeleton.mjs +1 -1
  230. package/dist/src/components/Skeleton.mjs.map +1 -1
  231. package/dist/src/components/Spinner.cjs +1 -1
  232. package/dist/src/components/Spinner.cjs.map +1 -1
  233. package/dist/src/components/Spinner.d.mts +2 -3
  234. package/dist/src/components/Spinner.d.mts.map +1 -1
  235. package/dist/src/components/Spinner.mjs +1 -1
  236. package/dist/src/components/Spinner.mjs.map +1 -1
  237. package/dist/src/components/StatusBadge.cjs +1 -1
  238. package/dist/src/components/StatusBadge.cjs.map +1 -1
  239. package/dist/src/components/StatusBadge.d.mts +6 -7
  240. package/dist/src/components/StatusBadge.d.mts.map +1 -1
  241. package/dist/src/components/StatusBadge.mjs +1 -1
  242. package/dist/src/components/StatusBadge.mjs.map +1 -1
  243. package/dist/src/components/StreamCursor.cjs +1 -1
  244. package/dist/src/components/StreamCursor.cjs.map +1 -1
  245. package/dist/src/components/StreamCursor.d.mts +1 -2
  246. package/dist/src/components/StreamCursor.d.mts.map +1 -1
  247. package/dist/src/components/StreamCursor.mjs +1 -1
  248. package/dist/src/components/StreamCursor.mjs.map +1 -1
  249. package/dist/src/components/Switch.cjs +1 -1
  250. package/dist/src/components/Switch.cjs.map +1 -1
  251. package/dist/src/components/Switch.d.mts +1 -1
  252. package/dist/src/components/Switch.d.mts.map +1 -1
  253. package/dist/src/components/Switch.mjs +1 -1
  254. package/dist/src/components/Switch.mjs.map +1 -1
  255. package/dist/src/components/SyntaxText.cjs +4 -0
  256. package/dist/src/components/SyntaxText.cjs.map +1 -0
  257. package/dist/src/components/SyntaxText.d.mts +50 -0
  258. package/dist/src/components/SyntaxText.d.mts.map +1 -0
  259. package/dist/src/components/SyntaxText.mjs +4 -0
  260. package/dist/src/components/SyntaxText.mjs.map +1 -0
  261. package/dist/src/components/Tabs.cjs +1 -1
  262. package/dist/src/components/Tabs.cjs.map +1 -1
  263. package/dist/src/components/Tabs.d.mts +11 -11
  264. package/dist/src/components/Tabs.d.mts.map +1 -1
  265. package/dist/src/components/Tabs.mjs +1 -1
  266. package/dist/src/components/Tabs.mjs.map +1 -1
  267. package/dist/src/components/TerminalView.cjs +2 -0
  268. package/dist/src/components/TerminalView.cjs.map +1 -0
  269. package/dist/src/components/TerminalView.d.mts +31 -0
  270. package/dist/src/components/TerminalView.d.mts.map +1 -0
  271. package/dist/src/components/TerminalView.mjs +2 -0
  272. package/dist/src/components/TerminalView.mjs.map +1 -0
  273. package/dist/src/components/Textarea.cjs +1 -1
  274. package/dist/src/components/Textarea.cjs.map +1 -1
  275. package/dist/src/components/Textarea.d.mts +3 -4
  276. package/dist/src/components/Textarea.d.mts.map +1 -1
  277. package/dist/src/components/Textarea.mjs +1 -1
  278. package/dist/src/components/Textarea.mjs.map +1 -1
  279. package/dist/src/components/Toast.cjs +1 -1
  280. package/dist/src/components/Toast.cjs.map +1 -1
  281. package/dist/src/components/Toast.d.mts +11 -11
  282. package/dist/src/components/Toast.d.mts.map +1 -1
  283. package/dist/src/components/Toast.mjs +1 -1
  284. package/dist/src/components/Toast.mjs.map +1 -1
  285. package/dist/src/components/ToolPathLink.cjs +2 -0
  286. package/dist/src/components/ToolPathLink.cjs.map +1 -0
  287. package/dist/src/components/ToolPathLink.d.mts +22 -0
  288. package/dist/src/components/ToolPathLink.d.mts.map +1 -0
  289. package/dist/src/components/ToolPathLink.mjs +2 -0
  290. package/dist/src/components/ToolPathLink.mjs.map +1 -0
  291. package/dist/src/components/Tooltip.cjs +1 -1
  292. package/dist/src/components/Tooltip.cjs.map +1 -1
  293. package/dist/src/components/Tooltip.d.mts +5 -5
  294. package/dist/src/components/Tooltip.d.mts.map +1 -1
  295. package/dist/src/components/Tooltip.mjs +1 -1
  296. package/dist/src/components/Tooltip.mjs.map +1 -1
  297. package/dist/src/icons/icons.cjs +1 -1
  298. package/dist/src/icons/icons.d.mts +2 -2
  299. package/dist/src/icons/icons.mjs +1 -1
  300. package/dist/src/lib/ansiSpans.cjs +2 -0
  301. package/dist/src/lib/ansiSpans.cjs.map +1 -0
  302. package/dist/src/lib/ansiSpans.d.mts +42 -0
  303. package/dist/src/lib/ansiSpans.d.mts.map +1 -0
  304. package/dist/src/lib/ansiSpans.mjs +2 -0
  305. package/dist/src/lib/ansiSpans.mjs.map +1 -0
  306. package/dist/src/lib/cn.d.mts +1 -2
  307. package/dist/src/lib/cn.d.mts.map +1 -1
  308. package/dist/src/lib/collapse.d.mts +2 -3
  309. package/dist/src/lib/collapse.d.mts.map +1 -1
  310. package/dist/src/lib/editorController.cjs +2 -0
  311. package/dist/src/lib/editorController.cjs.map +1 -0
  312. package/dist/src/lib/editorController.mjs +2 -0
  313. package/dist/src/lib/editorController.mjs.map +1 -0
  314. package/dist/src/lib/editorLanguage.d.mts +2 -3
  315. package/dist/src/lib/editorLanguage.d.mts.map +1 -1
  316. package/dist/src/lib/editorTheme.cjs +1 -1
  317. package/dist/src/lib/editorTheme.cjs.map +1 -1
  318. package/dist/src/lib/editorTheme.d.mts +76 -0
  319. package/dist/src/lib/editorTheme.d.mts.map +1 -0
  320. package/dist/src/lib/editorTheme.mjs +1 -1
  321. package/dist/src/lib/editorTheme.mjs.map +1 -1
  322. package/dist/src/lib/fenceGrammar.cjs +2 -0
  323. package/dist/src/lib/fenceGrammar.cjs.map +1 -0
  324. package/dist/src/lib/fenceGrammar.mjs +2 -0
  325. package/dist/src/lib/fenceGrammar.mjs.map +1 -0
  326. package/dist/src/lib/hashlineHighlight.cjs +3 -0
  327. package/dist/src/lib/hashlineHighlight.cjs.map +1 -0
  328. package/dist/src/lib/hashlineHighlight.d.mts +30 -0
  329. package/dist/src/lib/hashlineHighlight.d.mts.map +1 -0
  330. package/dist/src/lib/hashlineHighlight.mjs +3 -0
  331. package/dist/src/lib/hashlineHighlight.mjs.map +1 -0
  332. package/dist/src/lib/hashlineView.cjs +6 -0
  333. package/dist/src/lib/hashlineView.cjs.map +1 -0
  334. package/dist/src/lib/hashlineView.d.mts +60 -0
  335. package/dist/src/lib/hashlineView.d.mts.map +1 -0
  336. package/dist/src/lib/hashlineView.mjs +6 -0
  337. package/dist/src/lib/hashlineView.mjs.map +1 -0
  338. package/dist/src/lib/media.cjs.map +1 -1
  339. package/dist/src/lib/media.d.mts +1 -2
  340. package/dist/src/lib/media.d.mts.map +1 -1
  341. package/dist/src/lib/media.mjs.map +1 -1
  342. package/dist/src/lib/mediaPlayback.cjs +2 -0
  343. package/dist/src/lib/mediaPlayback.cjs.map +1 -0
  344. package/dist/src/lib/mediaPlayback.mjs +2 -0
  345. package/dist/src/lib/mediaPlayback.mjs.map +1 -0
  346. package/dist/src/lib/mermaidDiagram.cjs +2 -0
  347. package/dist/src/lib/mermaidDiagram.cjs.map +1 -0
  348. package/dist/src/lib/mermaidDiagram.mjs +2 -0
  349. package/dist/src/lib/mermaidDiagram.mjs.map +1 -0
  350. package/dist/src/lib/optionList.d.mts +4 -5
  351. package/dist/src/lib/optionList.d.mts.map +1 -1
  352. package/dist/src/lib/syntaxHighlight.cjs +3 -0
  353. package/dist/src/lib/syntaxHighlight.cjs.map +1 -0
  354. package/dist/src/lib/syntaxHighlight.d.mts +54 -0
  355. package/dist/src/lib/syntaxHighlight.d.mts.map +1 -0
  356. package/dist/src/lib/syntaxHighlight.mjs +3 -0
  357. package/dist/src/lib/syntaxHighlight.mjs.map +1 -0
  358. package/dist/src/lib/tone.cjs.map +1 -1
  359. package/dist/src/lib/tone.d.mts +4 -5
  360. package/dist/src/lib/tone.d.mts.map +1 -1
  361. package/dist/src/lib/tone.mjs.map +1 -1
  362. package/dist/src/theme/apply.cjs.map +1 -1
  363. package/dist/src/theme/apply.d.mts +5 -6
  364. package/dist/src/theme/apply.d.mts.map +1 -1
  365. package/dist/src/theme/apply.mjs.map +1 -1
  366. package/dist/src/theme/builtinThemes.cjs.map +1 -1
  367. package/dist/src/theme/builtinThemes.d.mts +4 -5
  368. package/dist/src/theme/builtinThemes.d.mts.map +1 -1
  369. package/dist/src/theme/builtinThemes.mjs.map +1 -1
  370. package/dist/src/theme/derive.cjs.map +1 -1
  371. package/dist/src/theme/derive.d.mts +4 -5
  372. package/dist/src/theme/derive.d.mts.map +1 -1
  373. package/dist/src/theme/derive.mjs.map +1 -1
  374. package/dist/src/theme/parse.cjs.map +1 -1
  375. package/dist/src/theme/parse.d.mts +1 -2
  376. package/dist/src/theme/parse.d.mts.map +1 -1
  377. package/dist/src/theme/parse.mjs.map +1 -1
  378. package/dist/src/theme/piTheme.cjs.map +1 -1
  379. package/dist/src/theme/piTheme.d.mts +2 -3
  380. package/dist/src/theme/piTheme.d.mts.map +1 -1
  381. package/dist/src/theme/piTheme.mjs.map +1 -1
  382. package/dist/src/theme/preference.d.mts +4 -5
  383. package/dist/src/theme/preference.d.mts.map +1 -1
  384. package/dist/src/types/editor.cjs.map +1 -1
  385. package/dist/src/types/editor.d.mts +39 -5
  386. package/dist/src/types/editor.d.mts.map +1 -1
  387. package/dist/src/types/editor.mjs.map +1 -1
  388. package/dist/src/types/theme.d.mts +11 -12
  389. package/dist/src/types/theme.d.mts.map +1 -1
  390. package/dist/src/types/tone.d.mts +10 -11
  391. package/dist/src/types/tone.d.mts.map +1 -1
  392. package/package.json +21 -17
  393. package/styles/preview.css +17 -0
  394. package/styles/tokens.css +72 -0
  395. package/dist/components/Accordion.d.cts +0 -11
  396. package/dist/components/Accordion.d.cts.map +0 -1
  397. package/dist/components/Avatar.d.cts +0 -10
  398. package/dist/components/Avatar.d.cts.map +0 -1
  399. package/dist/components/Badge.d.cts +0 -18
  400. package/dist/components/Badge.d.cts.map +0 -1
  401. package/dist/components/Breadcrumb.d.cts +0 -37
  402. package/dist/components/Breadcrumb.d.cts.map +0 -1
  403. package/dist/components/Button.d.cts +0 -25
  404. package/dist/components/Button.d.cts.map +0 -1
  405. package/dist/components/Checkbox.d.cts +0 -8
  406. package/dist/components/Checkbox.d.cts.map +0 -1
  407. package/dist/components/CodeEditor.d.cts +0 -6
  408. package/dist/components/CodeEditor.d.cts.map +0 -1
  409. package/dist/components/Collapsible.d.cts +0 -10
  410. package/dist/components/Collapsible.d.cts.map +0 -1
  411. package/dist/components/Command.d.cts +0 -42
  412. package/dist/components/Command.d.cts.map +0 -1
  413. package/dist/components/Dialog.d.cts +0 -39
  414. package/dist/components/Dialog.d.cts.map +0 -1
  415. package/dist/components/Dot.d.cts +0 -16
  416. package/dist/components/Dot.d.cts.map +0 -1
  417. package/dist/components/DropdownMenu.d.cts +0 -34
  418. package/dist/components/DropdownMenu.d.cts.map +0 -1
  419. package/dist/components/EmptyState.d.cts +0 -18
  420. package/dist/components/EmptyState.d.cts.map +0 -1
  421. package/dist/components/Input.d.cts +0 -20
  422. package/dist/components/Input.d.cts.map +0 -1
  423. package/dist/components/Kbd.d.cts +0 -7
  424. package/dist/components/Kbd.d.cts.map +0 -1
  425. package/dist/components/Label.d.cts +0 -8
  426. package/dist/components/Label.d.cts.map +0 -1
  427. package/dist/components/Markdown.d.cts +0 -8
  428. package/dist/components/Markdown.d.cts.map +0 -1
  429. package/dist/components/MediaPreview.d.cts +0 -25
  430. package/dist/components/MediaPreview.d.cts.map +0 -1
  431. package/dist/components/MessageItem.d.cts +0 -71
  432. package/dist/components/MessageItem.d.cts.map +0 -1
  433. package/dist/components/MessageLines.d.cts +0 -24
  434. package/dist/components/MessageLines.d.cts.map +0 -1
  435. package/dist/components/OptionList.d.cts +0 -50
  436. package/dist/components/OptionList.d.cts.map +0 -1
  437. package/dist/components/Panel.d.cts +0 -15
  438. package/dist/components/Panel.d.cts.map +0 -1
  439. package/dist/components/Popover.d.cts +0 -19
  440. package/dist/components/Popover.d.cts.map +0 -1
  441. package/dist/components/Progress.d.cts +0 -8
  442. package/dist/components/Progress.d.cts.map +0 -1
  443. package/dist/components/RadioGroup.d.cts +0 -15
  444. package/dist/components/RadioGroup.d.cts.map +0 -1
  445. package/dist/components/ScrollArea.d.cts +0 -13
  446. package/dist/components/ScrollArea.d.cts.map +0 -1
  447. package/dist/components/SectionLabel.d.cts +0 -7
  448. package/dist/components/SectionLabel.d.cts.map +0 -1
  449. package/dist/components/Select.d.cts +0 -19
  450. package/dist/components/Select.d.cts.map +0 -1
  451. package/dist/components/Separator.d.cts +0 -13
  452. package/dist/components/Separator.d.cts.map +0 -1
  453. package/dist/components/Skeleton.d.cts +0 -11
  454. package/dist/components/Skeleton.d.cts.map +0 -1
  455. package/dist/components/Spinner.d.cts +0 -15
  456. package/dist/components/Spinner.d.cts.map +0 -1
  457. package/dist/components/StatusBadge.d.cts +0 -24
  458. package/dist/components/StatusBadge.d.cts.map +0 -1
  459. package/dist/components/StreamCursor.d.cts +0 -7
  460. package/dist/components/StreamCursor.d.cts.map +0 -1
  461. package/dist/components/Switch.d.cts +0 -8
  462. package/dist/components/Switch.d.cts.map +0 -1
  463. package/dist/components/Tabs.d.cts +0 -36
  464. package/dist/components/Tabs.d.cts.map +0 -1
  465. package/dist/components/Textarea.d.cts +0 -10
  466. package/dist/components/Textarea.d.cts.map +0 -1
  467. package/dist/components/Toast.d.cts +0 -24
  468. package/dist/components/Toast.d.cts.map +0 -1
  469. package/dist/components/Tooltip.d.cts +0 -11
  470. package/dist/components/Tooltip.d.cts.map +0 -1
  471. package/dist/icons/icons.d.cts +0 -2
  472. package/dist/index.d.cts +0 -48
  473. package/dist/lib/cn.d.cts +0 -7
  474. package/dist/lib/cn.d.cts.map +0 -1
  475. package/dist/lib/collapse.d.cts +0 -15
  476. package/dist/lib/collapse.d.cts.map +0 -1
  477. package/dist/lib/editorLanguage.d.cts +0 -22
  478. package/dist/lib/editorLanguage.d.cts.map +0 -1
  479. package/dist/lib/media.d.cts +0 -12
  480. package/dist/lib/media.d.cts.map +0 -1
  481. package/dist/lib/optionList.d.cts +0 -22
  482. package/dist/lib/optionList.d.cts.map +0 -1
  483. package/dist/lib/tone.d.cts +0 -26
  484. package/dist/lib/tone.d.cts.map +0 -1
  485. package/dist/theme/apply.d.cts +0 -26
  486. package/dist/theme/apply.d.cts.map +0 -1
  487. package/dist/theme/builtinThemes.d.cts +0 -12
  488. package/dist/theme/builtinThemes.d.cts.map +0 -1
  489. package/dist/theme/derive.d.cts +0 -15
  490. package/dist/theme/derive.d.cts.map +0 -1
  491. package/dist/theme/parse.d.cts +0 -11
  492. package/dist/theme/parse.d.cts.map +0 -1
  493. package/dist/theme/piTheme.d.cts +0 -20
  494. package/dist/theme/piTheme.d.cts.map +0 -1
  495. package/dist/theme/preference.d.cts +0 -16
  496. package/dist/theme/preference.d.cts.map +0 -1
  497. package/dist/theme.d.cts +0 -8
  498. package/dist/types/editor.d.cts +0 -44
  499. package/dist/types/editor.d.cts.map +0 -1
  500. package/dist/types/theme.d.cts +0 -39
  501. package/dist/types/theme.d.cts.map +0 -1
  502. package/dist/types/tone.d.cts +0 -29
  503. package/dist/types/tone.d.cts.map +0 -1
@@ -6,14 +6,14 @@ import { ComponentProps } from "react";
6
6
  * native one cannot be styled to the palette on every platform, and the
7
7
  * cockpit's model and mode pickers need the same surface a popover has.
8
8
  */
9
- declare function Select$1(props: ComponentProps<typeof Select.Root>): import("react/jsx-runtime").JSX.Element;
10
- declare function SelectGroup(props: ComponentProps<typeof Select.Group>): import("react/jsx-runtime").JSX.Element;
11
- declare function SelectValue(props: ComponentProps<typeof Select.Value>): import("react/jsx-runtime").JSX.Element;
12
- declare function SelectTrigger({ className, children, ...props }: ComponentProps<typeof Select.Trigger>): import("react/jsx-runtime").JSX.Element;
13
- declare function SelectContent({ className, position, sideOffset, children, ...props }: ComponentProps<typeof Select.Content>): import("react/jsx-runtime").JSX.Element;
14
- declare function SelectLabel({ className, ...props }: ComponentProps<typeof Select.Label>): import("react/jsx-runtime").JSX.Element;
15
- declare function SelectItem({ className, children, ...props }: ComponentProps<typeof Select.Item>): import("react/jsx-runtime").JSX.Element;
16
- declare function SelectSeparator({ className, ...props }: ComponentProps<typeof Select.Separator>): import("react/jsx-runtime").JSX.Element;
9
+ declare function Select$1(props: ComponentProps<typeof Select.Root>): import("react").JSX.Element;
10
+ export declare function SelectGroup(props: ComponentProps<typeof Select.Group>): import("react").JSX.Element;
11
+ export declare function SelectValue(props: ComponentProps<typeof Select.Value>): import("react").JSX.Element;
12
+ export declare function SelectTrigger({ className, children, ...props }: ComponentProps<typeof Select.Trigger>): import("react").JSX.Element;
13
+ export declare function SelectContent({ className, position, sideOffset, children, ...props }: ComponentProps<typeof Select.Content>): import("react").JSX.Element;
14
+ export declare function SelectLabel({ className, ...props }: ComponentProps<typeof Select.Label>): import("react").JSX.Element;
15
+ export declare function SelectItem({ className, children, ...props }: ComponentProps<typeof Select.Item>): import("react").JSX.Element;
16
+ export declare function SelectSeparator({ className, ...props }: ComponentProps<typeof Select.Separator>): import("react").JSX.Element;
17
17
  //#endregion
18
- export { Select$1 as Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue };
18
+ export { Select$1 as Select };
19
19
  //# sourceMappingURL=Select.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.mts","names":[],"sources":["../../../src/components/Select.tsx"],"mappings":";;;;;;;;iBAUgB,SAAO,OAAO,sBAAsB,OAAgB,oCAAK,IAAA;iBAIzD,YAAY,OAAO,sBAAsB,OAAgB,qCAAM,IAAA;iBAI/D,YAAY,OAAO,sBAAsB,OAAgB,qCAAM,IAAA;iBAI/D,gBAAgB,WAAW,aAAa,SAAS,sBAAsB,OAAgB,uCAAQ,IAAA;iBAkB/F,gBACd,WACA,UACA,YACA,aACG,SACF,sBAAsB,OAAgB,uCAAQ,IAAA;iBAmBjC,cAAc,cAAc,SAAS,sBAAsB,OAAgB,qCAAM,IAAA;iBAUjF,aAAa,WAAW,aAAa,SAAS,sBAAsB,OAAgB,oCAAK,IAAA;iBAoBzF,kBAAkB,cAAc,SAAS,sBAAsB,OAAgB,yCAAU,IAAA"}
1
+ {"version":3,"file":"Select.d.mts","names":[],"sources":["../../../src/components/Select.tsx"],"mappings":";;;;;;;;iBAWgB,SAAO,OAAO,sBAAsB,OAAgB,wBAAK,IAAA;wBAIzD,YAAY,OAAO,sBAAsB,OAAgB,yBAAM,IAAA;wBAI/D,YAAY,OAAO,sBAAsB,OAAgB,yBAAM,IAAA;wBAI/D,gBAAgB,WAAW,aAAa,SAAS,sBAAsB,OAAgB,2BAAQ,IAAA;wBAkB/F,gBACd,WACA,UACA,YACA,aACG,SACF,sBAAsB,OAAgB,2BAAQ,IAAA;wBAmBjC,cAAc,cAAc,SAAS,sBAAsB,OAAgB,yBAAM,IAAA;wBAUjF,aAAa,WAAW,aAAa,SAAS,sBAAsB,OAAgB,wBAAK,IAAA;wBAoBzF,kBAAkB,cAAc,SAAS,sBAAsB,OAAgB,6BAAU,IAAA"}
@@ -1,2 +1,2 @@
1
- import{CheckIcon as e,ChevronDownIcon as t}from"../icons/icons.mjs";import{cn as n}from"../lib/cn.mjs";import{Select as r}from"radix-ui";import{jsx as i,jsxs as a}from"react/jsx-runtime";function o(e){return i(r.Root,{"data-slot":`select`,...e})}function s(e){return i(r.Group,{"data-slot":`select-group`,...e})}function c(e){return i(r.Value,{"data-slot":`select-value`,...e})}function l({className:e,children:o,...s}){return a(r.Trigger,{"data-slot":`select-trigger`,className:n(`flex h-7 cursor-pointer items-center justify-between gap-2 rounded border border-doom-border bg-doom-deep px-2.5 font-mono text-[11px] text-doom-hi outline-none transition-colors hover:border-doom-blue/50 focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[placeholder]:text-doom-faint`,e),...s,children:[o,i(r.Icon,{asChild:!0,children:i(t,{className:`h-3 w-3 shrink-0 text-doom-faint`})})]})}function u({className:e,position:t=`popper`,sideOffset:a=4,children:o,...s}){return i(r.Portal,{children:i(r.Content,{"data-slot":`select-content`,position:t,sideOffset:a,className:n(`z-50 max-h-[320px] min-w-[var(--radix-select-trigger-width)] overflow-hidden rounded border border-doom-border bg-doom-panel font-mono shadow-xl outline-none data-[state=open]:animate-doom-rise`,e),...s,children:i(r.Viewport,{className:`p-1`,children:o})})})}function d({className:e,...t}){return i(r.Label,{"data-slot":`select-label`,className:n(`px-2 py-1 text-[8px] font-bold tracking-[0.14em] text-doom-faint uppercase`,e),...t})}function f({className:t,children:o,...s}){return a(r.Item,{"data-slot":`select-item`,className:n(`relative flex cursor-pointer items-center gap-2 rounded-[3px] py-1.5 pr-2 pl-7 text-[11px] text-doom-hi outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-40 data-[highlighted]:bg-doom-deep`,t),...s,children:[i(`span`,{className:`pointer-events-none absolute left-2 flex h-3 w-3 items-center justify-center`,children:i(r.ItemIndicator,{children:i(e,{className:`h-3 w-3 text-doom-blue`})})}),i(r.ItemText,{children:o})]})}function p({className:e,...t}){return i(r.Separator,{"data-slot":`select-separator`,className:n(`my-1 h-px bg-doom-border-soft`,e),...t})}export{o as Select,u as SelectContent,s as SelectGroup,f as SelectItem,d as SelectLabel,p as SelectSeparator,l as SelectTrigger,c as SelectValue};
1
+ import{CheckIcon as e,ChevronDownIcon as t}from"../icons/icons.mjs";import{cn as n}from"../lib/cn.mjs";import{Select as r}from"radix-ui";import{jsx as i,jsxs as a}from"react/jsx-runtime";function o(e){return/* @__PURE__ */ i(r.Root,{"data-slot":`select`,...e})}function s(e){return/* @__PURE__ */ i(r.Group,{"data-slot":`select-group`,...e})}function c(e){return/* @__PURE__ */ i(r.Value,{"data-slot":`select-value`,...e})}function l({className:e,children:o,...s}){return/* @__PURE__ */ a(r.Trigger,{"data-slot":`select-trigger`,className:n(`flex h-7 cursor-pointer items-center justify-between gap-2 rounded border border-doom-border bg-doom-deep px-2.5 font-mono text-sm text-doom-hi outline-none transition-colors hover:border-doom-blue/50 focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[placeholder]:text-doom-faint`,e),...s,children:[o,/* @__PURE__ */ i(r.Icon,{asChild:!0,children:/* @__PURE__ */ i(t,{className:`h-3 w-3 shrink-0 text-doom-faint`})})]})}function u({className:e,position:t=`popper`,sideOffset:a=4,children:o,...s}){return/* @__PURE__ */ i(r.Portal,{children:/* @__PURE__ */ i(r.Content,{"data-slot":`select-content`,position:t,sideOffset:a,className:n(`z-50 max-h-[320px] min-w-[var(--radix-select-trigger-width)] overflow-hidden rounded border border-doom-border bg-doom-panel font-mono shadow-xl outline-none data-[state=open]:animate-doom-rise`,e),...s,children:/* @__PURE__ */ i(r.Viewport,{className:`p-1`,children:o})})})}function d({className:e,...t}){return/* @__PURE__ */ i(r.Label,{"data-slot":`select-label`,className:n(`px-2 py-1 text-2xs font-bold tracking-wider text-doom-faint uppercase`,e),...t})}function f({className:t,children:o,...s}){return/* @__PURE__ */ a(r.Item,{"data-slot":`select-item`,className:n(`relative flex cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-2 pl-7 text-sm text-doom-hi outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-40 data-[highlighted]:bg-doom-deep`,t),...s,children:[/* @__PURE__ */ i(`span`,{className:`pointer-events-none absolute left-2 flex h-3 w-3 items-center justify-center`,children:/* @__PURE__ */ i(r.ItemIndicator,{children:/* @__PURE__ */ i(e,{className:`h-3 w-3 text-doom-blue`})})}),/* @__PURE__ */ i(r.ItemText,{children:o})]})}function p({className:e,...t}){return/* @__PURE__ */ i(r.Separator,{"data-slot":`select-separator`,className:n(`my-1 h-px bg-doom-border-soft`,e),...t})}export{o as Select,u as SelectContent,s as SelectGroup,f as SelectItem,d as SelectLabel,p as SelectSeparator,l as SelectTrigger,c as SelectValue};
2
2
  //# sourceMappingURL=Select.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.mjs","names":["Select","SelectPrimitive"],"sources":["../../../src/components/Select.tsx"],"sourcesContent":["import { Select as SelectPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { CheckIcon, ChevronDownIcon } from '../icons/icons.ts';\nimport { cn } from '../lib/cn.ts';\n\n/**\n * A single choice from a list, on Radix rather than a native <select>: a\n * native one cannot be styled to the palette on every platform, and the\n * cockpit's model and mode pickers need the same surface a popover has.\n */\nexport function Select(props: ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nexport function SelectGroup(props: ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nexport function SelectValue(props: ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nexport function SelectTrigger({ className, children, ...props }: ComponentProps<typeof SelectPrimitive.Trigger>) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n className={cn(\n 'flex h-7 cursor-pointer items-center justify-between gap-2 rounded border border-doom-border bg-doom-deep px-2.5 font-mono text-[11px] text-doom-hi outline-none transition-colors hover:border-doom-blue/50 focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[placeholder]:text-doom-faint',\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"h-3 w-3 shrink-0 text-doom-faint\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nexport function SelectContent({\n className,\n position = 'popper',\n sideOffset = 4,\n children,\n ...props\n}: ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n position={position}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 max-h-[320px] min-w-[var(--radix-select-trigger-width)] overflow-hidden rounded border border-doom-border bg-doom-panel font-mono shadow-xl outline-none data-[state=open]:animate-doom-rise',\n className,\n )}\n {...props}\n >\n <SelectPrimitive.Viewport className=\"p-1\">{children}</SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nexport function SelectLabel({ className, ...props }: ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn('px-2 py-1 text-[8px] font-bold tracking-[0.14em] text-doom-faint uppercase', className)}\n {...props}\n />\n );\n}\n\nexport function SelectItem({ className, children, ...props }: ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n 'relative flex cursor-pointer items-center gap-2 rounded-[3px] py-1.5 pr-2 pl-7 text-[11px] text-doom-hi outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-40 data-[highlighted]:bg-doom-deep',\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex h-3 w-3 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"h-3 w-3 text-doom-blue\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nexport function SelectSeparator({ className, ...props }: ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('my-1 h-px bg-doom-border-soft', className)}\n {...props}\n />\n );\n}\n"],"mappings":"2LAUA,SAAgBA,EAAO,EAAoD,CACzE,OAAO,EAACC,EAAgB,KAAjB,CAAsB,YAAU,SAAS,GAAI,CAAQ,CAAA,CAC9D,CAEA,SAAgB,EAAY,EAAqD,CAC/E,OAAO,EAACA,EAAgB,MAAjB,CAAuB,YAAU,eAAe,GAAI,CAAQ,CAAA,CACrE,CAEA,SAAgB,EAAY,EAAqD,CAC/E,OAAO,EAACA,EAAgB,MAAjB,CAAuB,YAAU,eAAe,GAAI,CAAQ,CAAA,CACrE,CAEA,SAAgB,EAAc,CAAE,YAAW,WAAU,GAAG,GAAyD,CAC/G,OACE,EAACA,EAAgB,QAAjB,CACE,YAAU,iBACV,UAAW,EACT,wVACA,CACF,EACA,GAAI,EANN,SAAA,CAQG,EACD,EAACA,EAAgB,KAAjB,CAAsB,QAAA,GACpB,SAAA,EAAC,EAAD,CAAiB,UAAU,kCAAoC,CAAA,CAC3C,CAAA,CACC,GAE7B,CAEA,SAAgB,EAAc,CAC5B,YACA,WAAW,SACX,aAAa,EACb,WACA,GAAG,GAC8C,CACjD,OACE,EAACA,EAAgB,OAAjB,CAAA,SACE,EAACA,EAAgB,QAAjB,CACE,YAAU,iBACA,WACE,aACZ,UAAW,EACT,oMACA,CACF,EACA,GAAI,EAEJ,SAAA,EAACA,EAAgB,SAAjB,CAA0B,UAAU,MAAO,UAAmC,CAAA,CACvD,CAAA,CACH,CAAA,CAE5B,CAEA,SAAgB,EAAY,CAAE,YAAW,GAAG,GAAuD,CACjG,OACE,EAACA,EAAgB,MAAjB,CACE,YAAU,eACV,UAAW,EAAG,6EAA8E,CAAS,EACrG,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAW,CAAE,YAAW,WAAU,GAAG,GAAsD,CACzG,OACE,EAACA,EAAgB,KAAjB,CACE,YAAU,cACV,UAAW,EACT,kOACA,CACF,EACA,GAAI,EANN,SAAA,CAQE,EAAC,OAAD,CAAM,UAAU,+EACd,SAAA,EAACA,EAAgB,cAAjB,CAAA,SACE,EAAC,EAAD,CAAW,UAAU,wBAA0B,CAAA,CAClB,CAAA,CAC3B,CAAA,EACN,EAACA,EAAgB,SAAjB,CAA2B,UAAmC,CAAA,CAC1C,GAE1B,CAEA,SAAgB,EAAgB,CAAE,YAAW,GAAG,GAA2D,CACzG,OACE,EAACA,EAAgB,UAAjB,CACE,YAAU,mBACV,UAAW,EAAG,gCAAiC,CAAS,EACxD,GAAI,CACL,CAAA,CAEL"}
1
+ {"version":3,"file":"Select.mjs","names":["Select","SelectPrimitive"],"sources":["../../../src/components/Select.tsx"],"sourcesContent":["import { Select as SelectPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { CheckIcon, ChevronDownIcon } from '../icons/icons';\nimport { cn } from '../lib/cn';\n\n/**\n * A single choice from a list, on Radix rather than a native <select>: a\n * native one cannot be styled to the palette on every platform, and the\n * cockpit's model and mode pickers need the same surface a popover has.\n */\nexport function Select(props: ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nexport function SelectGroup(props: ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nexport function SelectValue(props: ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nexport function SelectTrigger({ className, children, ...props }: ComponentProps<typeof SelectPrimitive.Trigger>) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n className={cn(\n 'flex h-7 cursor-pointer items-center justify-between gap-2 rounded border border-doom-border bg-doom-deep px-2.5 font-mono text-sm text-doom-hi outline-none transition-colors hover:border-doom-blue/50 focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[placeholder]:text-doom-faint',\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"h-3 w-3 shrink-0 text-doom-faint\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nexport function SelectContent({\n className,\n position = 'popper',\n sideOffset = 4,\n children,\n ...props\n}: ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n position={position}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 max-h-[320px] min-w-[var(--radix-select-trigger-width)] overflow-hidden rounded border border-doom-border bg-doom-panel font-mono shadow-xl outline-none data-[state=open]:animate-doom-rise',\n className,\n )}\n {...props}\n >\n <SelectPrimitive.Viewport className=\"p-1\">{children}</SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nexport function SelectLabel({ className, ...props }: ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn('px-2 py-1 text-2xs font-bold tracking-wider text-doom-faint uppercase', className)}\n {...props}\n />\n );\n}\n\nexport function SelectItem({ className, children, ...props }: ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n 'relative flex cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-2 pl-7 text-sm text-doom-hi outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-40 data-[highlighted]:bg-doom-deep',\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex h-3 w-3 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"h-3 w-3 text-doom-blue\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nexport function SelectSeparator({ className, ...props }: ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('my-1 h-px bg-doom-border-soft', className)}\n {...props}\n />\n );\n}\n"],"mappings":"2LAWA,SAAgBA,EAAO,EAAoD,CACzE,MAAO,kBAACC,EAAgB,KAAjB,CAAsB,YAAU,SAAS,GAAI,CAAQ,CAAA,CAC9D,CAEA,SAAgB,EAAY,EAAqD,CAC/E,MAAO,kBAACA,EAAgB,MAAjB,CAAuB,YAAU,eAAe,GAAI,CAAQ,CAAA,CACrE,CAEA,SAAgB,EAAY,EAAqD,CAC/E,MAAO,kBAACA,EAAgB,MAAjB,CAAuB,YAAU,eAAe,GAAI,CAAQ,CAAA,CACrE,CAEA,SAAgB,EAAc,CAAE,YAAW,WAAU,GAAG,GAAyD,CAC/G,MACE,kBAACA,EAAgB,QAAjB,CACE,YAAU,iBACV,UAAW,EACT,oVACA,CACF,EACA,GAAI,EANN,SAAA,CAQG,EACD,kBAACA,EAAgB,KAAjB,CAAsB,QAAA,GACpB,SAAA,kBAAC,EAAD,CAAiB,UAAU,kCAAoC,CAAA,CAC3C,CAAA,CACC,GAE7B,CAEA,SAAgB,EAAc,CAC5B,YACA,WAAW,SACX,aAAa,EACb,WACA,GAAG,GAC8C,CACjD,MACE,kBAACA,EAAgB,OAAjB,CAAA,SACE,kBAACA,EAAgB,QAAjB,CACE,YAAU,iBACA,WACE,aACZ,UAAW,EACT,oMACA,CACF,EACA,GAAI,EAEJ,SAAA,kBAACA,EAAgB,SAAjB,CAA0B,UAAU,MAAO,UAAmC,CAAA,CACvD,CAAA,CACH,CAAA,CAE5B,CAEA,SAAgB,EAAY,CAAE,YAAW,GAAG,GAAuD,CACjG,MACE,kBAACA,EAAgB,MAAjB,CACE,YAAU,eACV,UAAW,EAAG,wEAAyE,CAAS,EAChG,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAW,CAAE,YAAW,WAAU,GAAG,GAAsD,CACzG,MACE,kBAACA,EAAgB,KAAjB,CACE,YAAU,cACV,UAAW,EACT,2NACA,CACF,EACA,GAAI,EANN,SAAA,CAQE,kBAAC,OAAD,CAAM,UAAU,+EACd,SAAA,kBAACA,EAAgB,cAAjB,CAAA,SACE,kBAAC,EAAD,CAAW,UAAU,wBAA0B,CAAA,CAClB,CAAA,CAC3B,CAAA,EACN,kBAACA,EAAgB,SAAjB,CAA2B,UAAmC,CAAA,CAC1C,GAE1B,CAEA,SAAgB,EAAgB,CAAE,YAAW,GAAG,GAA2D,CACzG,MACE,kBAACA,EAAgB,UAAjB,CACE,YAAU,mBACV,UAAW,EAAG,gCAAiC,CAAS,EACxD,GAAI,CACL,CAAA,CAEL"}
@@ -1,2 +1,2 @@
1
- const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime");function r({className:r,orientation:i=`horizontal`,decorative:a=!0,...o}){return(0,n.jsx)(t.Separator.Root,{"data-slot":`separator`,orientation:i,decorative:a,className:e.cn(`shrink-0 bg-doom-border-soft`,i===`vertical`?`h-full w-px`:`h-px w-full`,r),...o})}exports.Separator=r;
1
+ const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime");function r({className:r,orientation:i=`horizontal`,decorative:a=!0,...o}){return/* @__PURE__ */ (0,n.jsx)(t.Separator.Root,{"data-slot":`separator`,orientation:i,decorative:a,className:e.cn(`shrink-0 bg-doom-border-soft`,i===`vertical`?`h-full w-px`:`h-px w-full`,r),...o})}exports.Separator=r;
2
2
  //# sourceMappingURL=Separator.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Separator.cjs","names":["SeparatorPrimitive","cn"],"sources":["../../../src/components/Separator.tsx"],"sourcesContent":["import { Separator as SeparatorPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/**\n * A hairline in the soft border colour. Radix decides the semantics: a\n * decorative rule is hidden from assistive tech, a meaningful one keeps its\n * separator role, and either way the element carries `data-orientation` so a\n * consumer can style around it the way it does every other primitive.\n */\nexport function Separator({\n className,\n orientation = 'horizontal',\n decorative = true,\n ...props\n}: ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n orientation={orientation}\n decorative={decorative}\n className={cn(\n 'shrink-0 bg-doom-border-soft',\n orientation === 'vertical' ? 'h-full w-px' : 'h-px w-full',\n className,\n )}\n {...props}\n />\n );\n}\n"],"mappings":"0FAUA,SAAgB,EAAU,CACxB,YACA,cAAc,aACd,aAAa,GACb,GAAG,GAC8C,CACjD,OACE,EAAA,EAAA,IAAA,CAACA,EAAAA,UAAmB,KAApB,CACE,YAAU,YACG,cACD,aACZ,UAAWC,EAAAA,GACT,+BACA,IAAgB,WAAa,cAAgB,cAC7C,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
1
+ {"version":3,"file":"Separator.cjs","names":["SeparatorPrimitive","cn"],"sources":["../../../src/components/Separator.tsx"],"sourcesContent":["import { Separator as SeparatorPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '../lib/cn';\n\n/**\n * A hairline in the soft border colour. Radix decides the semantics: a\n * decorative rule is hidden from assistive tech, a meaningful one keeps its\n * separator role, and either way the element carries `data-orientation` so a\n * consumer can style around it the way it does every other primitive.\n */\nexport function Separator({\n className,\n orientation = 'horizontal',\n decorative = true,\n ...props\n}: ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n orientation={orientation}\n decorative={decorative}\n className={cn(\n 'shrink-0 bg-doom-border-soft',\n orientation === 'vertical' ? 'h-full w-px' : 'h-px w-full',\n className,\n )}\n {...props}\n />\n );\n}\n"],"mappings":"0FAWA,SAAgB,EAAU,CACxB,YACA,cAAc,aACd,aAAa,GACb,GAAG,GAC8C,CACjD,MACE,iBAAA,EAAA,EAAA,IAAA,CAACA,EAAAA,UAAmB,KAApB,CACE,YAAU,YACG,cACD,aACZ,UAAWC,EAAAA,GACT,+BACA,IAAgB,WAAa,cAAgB,cAC7C,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
@@ -7,7 +7,7 @@ import { ComponentProps } from "react";
7
7
  * separator role, and either way the element carries `data-orientation` so a
8
8
  * consumer can style around it the way it does every other primitive.
9
9
  */
10
- declare function Separator$1({ className, orientation, decorative, ...props }: ComponentProps<typeof Separator.Root>): import("react/jsx-runtime").JSX.Element;
10
+ declare function Separator$1({ className, orientation, decorative, ...props }: ComponentProps<typeof Separator.Root>): import("react").JSX.Element;
11
11
  //#endregion
12
12
  export { Separator$1 as Separator };
13
13
  //# sourceMappingURL=Separator.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Separator.d.mts","names":[],"sources":["../../../src/components/Separator.tsx"],"mappings":";;;;;;;;;iBAUgB,cACd,WACA,aACA,eACG,SACF,sBAAsB,UAAmB,oCAAK,IAAA"}
1
+ {"version":3,"file":"Separator.d.mts","names":[],"sources":["../../../src/components/Separator.tsx"],"mappings":";;;;;;;;;iBAWgB,cACd,WACA,aACA,eACG,SACF,sBAAsB,UAAmB,wBAAK,IAAA"}
@@ -1,2 +1,2 @@
1
- import{cn as e}from"../lib/cn.mjs";import{Separator as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";function r({className:r,orientation:i=`horizontal`,decorative:a=!0,...o}){return n(t.Root,{"data-slot":`separator`,orientation:i,decorative:a,className:e(`shrink-0 bg-doom-border-soft`,i===`vertical`?`h-full w-px`:`h-px w-full`,r),...o})}export{r as Separator};
1
+ import{cn as e}from"../lib/cn.mjs";import{Separator as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";function r({className:r,orientation:i=`horizontal`,decorative:a=!0,...o}){return/* @__PURE__ */ n(t.Root,{"data-slot":`separator`,orientation:i,decorative:a,className:e(`shrink-0 bg-doom-border-soft`,i===`vertical`?`h-full w-px`:`h-px w-full`,r),...o})}export{r as Separator};
2
2
  //# sourceMappingURL=Separator.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Separator.mjs","names":["Separator","SeparatorPrimitive"],"sources":["../../../src/components/Separator.tsx"],"sourcesContent":["import { Separator as SeparatorPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/**\n * A hairline in the soft border colour. Radix decides the semantics: a\n * decorative rule is hidden from assistive tech, a meaningful one keeps its\n * separator role, and either way the element carries `data-orientation` so a\n * consumer can style around it the way it does every other primitive.\n */\nexport function Separator({\n className,\n orientation = 'horizontal',\n decorative = true,\n ...props\n}: ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n orientation={orientation}\n decorative={decorative}\n className={cn(\n 'shrink-0 bg-doom-border-soft',\n orientation === 'vertical' ? 'h-full w-px' : 'h-px w-full',\n className,\n )}\n {...props}\n />\n );\n}\n"],"mappings":"gHAUA,SAAgBA,EAAU,CACxB,YACA,cAAc,aACd,aAAa,GACb,GAAG,GAC8C,CACjD,OACE,EAACC,EAAmB,KAApB,CACE,YAAU,YACG,cACD,aACZ,UAAW,EACT,+BACA,IAAgB,WAAa,cAAgB,cAC7C,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
1
+ {"version":3,"file":"Separator.mjs","names":["Separator","SeparatorPrimitive"],"sources":["../../../src/components/Separator.tsx"],"sourcesContent":["import { Separator as SeparatorPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '../lib/cn';\n\n/**\n * A hairline in the soft border colour. Radix decides the semantics: a\n * decorative rule is hidden from assistive tech, a meaningful one keeps its\n * separator role, and either way the element carries `data-orientation` so a\n * consumer can style around it the way it does every other primitive.\n */\nexport function Separator({\n className,\n orientation = 'horizontal',\n decorative = true,\n ...props\n}: ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n orientation={orientation}\n decorative={decorative}\n className={cn(\n 'shrink-0 bg-doom-border-soft',\n orientation === 'vertical' ? 'h-full w-px' : 'h-px w-full',\n className,\n )}\n {...props}\n />\n );\n}\n"],"mappings":"gHAWA,SAAgBA,EAAU,CACxB,YACA,cAAc,aACd,aAAa,GACb,GAAG,GAC8C,CACjD,MACE,kBAACC,EAAmB,KAApB,CACE,YAAU,YACG,cACD,aACZ,UAAW,EACT,+BACA,IAAgB,WAAa,cAAgB,cAC7C,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
@@ -0,0 +1,2 @@
1
+ require("../icons/icons.cjs");const e=require("../lib/cn.cjs"),t=require("./Button.cjs");let n=require("radix-ui"),r=require("react/jsx-runtime"),i=require("lucide-react");function a(e){return/* @__PURE__ */ (0,r.jsx)(n.Dialog.Root,{"data-slot":`sheet`,...e})}function o(e){return/* @__PURE__ */ (0,r.jsx)(n.Dialog.Trigger,{"data-slot":`sheet-trigger`,...e})}function s(e){return/* @__PURE__ */ (0,r.jsx)(n.Dialog.Close,{"data-slot":`sheet-close`,...e})}function c({className:t,...i}){return/* @__PURE__ */ (0,r.jsx)(n.Dialog.Overlay,{"data-slot":`sheet-overlay`,className:e.cn(`fixed inset-0 z-40 bg-doom-deep/70 data-[state=open]:animate-doom-fade`,t),...i})}const l={right:`inset-y-0 right-0 border-l data-[state=open]:animate-doom-slide-right`,left:`inset-y-0 left-0 border-r data-[state=open]:animate-doom-slide-left`},u={sm:`w-[360px]`,md:`w-[440px]`,lg:`w-[560px]`};function d({className:t,children:i,side:a=`right`,width:o=`md`,...s}){return/* @__PURE__ */ (0,r.jsxs)(n.Dialog.Portal,{children:[/* @__PURE__ */ (0,r.jsx)(c,{}),/* @__PURE__ */ (0,r.jsx)(n.Dialog.Content,{"data-slot":`sheet-content`,"data-side":a,className:e.cn(`fixed z-50 flex max-w-[calc(100vw-24px)] flex-col overflow-hidden border-doom-border bg-doom-rail font-mono shadow-2xl outline-none`,l[a],u[o],t),...s,children:i})]})}function f({className:a,dismissible:o=!0,closeLabel:s=`close`,children:c,...l}){return/* @__PURE__ */ (0,r.jsxs)(`div`,{"data-slot":`sheet-header`,className:e.cn(`flex h-11 min-w-0 shrink-0 items-center gap-2.5 border-b border-doom-border px-4`,a),...l,children:[c,o?/* @__PURE__ */ (0,r.jsx)(n.Dialog.Close,{asChild:!0,children:/* @__PURE__ */ (0,r.jsx)(t.Button,{variant:`ghost`,size:`icon`,"aria-label":s,className:`text-doom-faint hover:text-doom-hi`,children:/* @__PURE__ */ (0,r.jsx)(i.X,{className:`h-3 w-3`})})}):null]})}function p({className:t,...i}){return/* @__PURE__ */ (0,r.jsx)(n.Dialog.Title,{"data-slot":`sheet-title`,className:e.cn(`truncate text-base font-bold text-doom-hi`,t),...i})}function m({className:t,...i}){return/* @__PURE__ */ (0,r.jsx)(n.Dialog.Description,{"data-slot":`sheet-description`,className:e.cn(`text-sm leading-relaxed text-doom-dim`,t),...i})}function h({className:t,...n}){return/* @__PURE__ */ (0,r.jsx)(`div`,{"data-slot":`sheet-body`,className:e.cn(`flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto px-4 py-3`,t),...n})}function g({className:t,...n}){return/* @__PURE__ */ (0,r.jsx)(`div`,{"data-slot":`sheet-footer`,className:e.cn(`flex min-h-[34px] shrink-0 flex-wrap items-center justify-between gap-2 border-t border-doom-border-soft bg-doom-deep px-4 py-1.5`,t),...n})}exports.Sheet=a,exports.SheetBody=h,exports.SheetClose=s,exports.SheetContent=d,exports.SheetDescription=m,exports.SheetFooter=g,exports.SheetHeader=f,exports.SheetOverlay=c,exports.SheetTitle=p,exports.SheetTrigger=o;
2
+ //# sourceMappingURL=Sheet.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sheet.cjs","names":["SheetPrimitive","cn","Button","CloseIcon"],"sources":["../../../src/components/Sheet.tsx"],"sourcesContent":["import { Dialog as SheetPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { CloseIcon } from '../icons/icons';\nimport { cn } from '../lib/cn';\nimport { Button } from './Button';\n\n/**\n * A side panel on Radix's Dialog: an overlay that slides in from an edge,\n * with the focus trap, Escape, outside click and scroll lock a dialog has.\n *\n * It is the Dialog for content that reads as a column rather than a form: a\n * detail view beside what the reader was looking at. An inline aside cannot\n * do this, because it takes width from the surface underneath it.\n */\nexport function Sheet(props: ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\nexport function SheetTrigger(props: ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\nexport function SheetClose(props: ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\nexport function SheetOverlay({ className, ...props }: ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn('fixed inset-0 z-40 bg-doom-deep/70 data-[state=open]:animate-doom-fade', className)}\n {...props}\n />\n );\n}\n\nconst SIDE_POSITION = {\n right: 'inset-y-0 right-0 border-l data-[state=open]:animate-doom-slide-right',\n left: 'inset-y-0 left-0 border-r data-[state=open]:animate-doom-slide-left',\n} as const;\n\nexport interface SheetContentProps extends ComponentProps<typeof SheetPrimitive.Content> {\n /** Which edge it comes from. */\n side?: 'right' | 'left';\n /** Width preset; `className` may still override. */\n width?: 'sm' | 'md' | 'lg';\n}\n\nconst CONTENT_WIDTH = { sm: 'w-[360px]', md: 'w-[440px]', lg: 'w-[560px]' } as const;\n\nexport function SheetContent({ className, children, side = 'right', width = 'md', ...props }: SheetContentProps) {\n return (\n <SheetPrimitive.Portal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n 'fixed z-50 flex max-w-[calc(100vw-24px)] flex-col overflow-hidden border-doom-border bg-doom-rail font-mono shadow-2xl outline-none',\n SIDE_POSITION[side],\n CONTENT_WIDTH[width],\n className,\n )}\n {...props}\n >\n {children}\n </SheetPrimitive.Content>\n </SheetPrimitive.Portal>\n );\n}\n\nexport interface SheetHeaderProps extends ComponentProps<'div'> {\n /** Show the close control at the right of the strip. On by default: a sheet is dismissed, not answered. */\n dismissible?: boolean;\n /** What the close control announces. */\n closeLabel?: string;\n}\n\nexport function SheetHeader({\n className,\n dismissible = true,\n closeLabel = 'close',\n children,\n ...props\n}: SheetHeaderProps) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn('flex h-11 min-w-0 shrink-0 items-center gap-2.5 border-b border-doom-border px-4', className)}\n {...props}\n >\n {children}\n {dismissible ? (\n <SheetPrimitive.Close asChild>\n <Button variant=\"ghost\" size=\"icon\" aria-label={closeLabel} className=\"text-doom-faint hover:text-doom-hi\">\n <CloseIcon className=\"h-3 w-3\" />\n </Button>\n </SheetPrimitive.Close>\n ) : null}\n </div>\n );\n}\n\nexport function SheetTitle({ className, ...props }: ComponentProps<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn('truncate text-base font-bold text-doom-hi', className)}\n {...props}\n />\n );\n}\n\nexport function SheetDescription({ className, ...props }: ComponentProps<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn('text-sm leading-relaxed text-doom-dim', className)}\n {...props}\n />\n );\n}\n\nexport function SheetBody({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-body\"\n className={cn('flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto px-4 py-3', className)}\n {...props}\n />\n );\n}\n\nexport function SheetFooter({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\n 'flex min-h-[34px] shrink-0 flex-wrap items-center justify-between gap-2 border-t border-doom-border-soft bg-doom-deep px-4 py-1.5',\n className,\n )}\n {...props}\n />\n );\n}\n"],"mappings":"4KAeA,SAAgB,EAAM,EAAmD,CACvE,MAAO,iBAAA,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAe,KAAhB,CAAqB,YAAU,QAAQ,GAAI,CAAQ,CAAA,CAC5D,CAEA,SAAgB,EAAa,EAAsD,CACjF,MAAO,iBAAA,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAe,QAAhB,CAAwB,YAAU,gBAAgB,GAAI,CAAQ,CAAA,CACvE,CAEA,SAAgB,EAAW,EAAoD,CAC7E,MAAO,iBAAA,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAe,MAAhB,CAAsB,YAAU,cAAc,GAAI,CAAQ,CAAA,CACnE,CAEA,SAAgB,EAAa,CAAE,YAAW,GAAG,GAAwD,CACnG,MACE,iBAAA,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAe,QAAhB,CACE,YAAU,gBACV,UAAWC,EAAAA,GAAG,yEAA0E,CAAS,EACjG,GAAI,CACL,CAAA,CAEL,CAEA,MAAM,EAAgB,CACpB,MAAO,wEACP,KAAM,qEACR,EASM,EAAgB,CAAE,GAAI,YAAa,GAAI,YAAa,GAAI,WAAY,EAE1E,SAAgB,EAAa,CAAE,YAAW,WAAU,OAAO,QAAS,QAAQ,KAAM,GAAG,GAA4B,CAC/G,MACE,iBAAA,EAAA,EAAA,KAAA,CAACD,EAAAA,OAAe,OAAhB,CAAA,SAAA,CACE,iBAAA,EAAA,EAAA,IAAA,CAAC,EAAD,CAAe,CAAA,EACf,iBAAA,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAe,QAAhB,CACE,YAAU,gBACV,YAAW,EACX,UAAWC,EAAAA,GACT,sIACA,EAAc,GACd,EAAc,GACd,CACF,EACA,GAAI,EAEH,UACqB,CAAA,CACH,CAAA,CAAA,CAE3B,CASA,SAAgB,EAAY,CAC1B,YACA,cAAc,GACd,aAAa,QACb,WACA,GAAG,GACgB,CACnB,MACE,iBAAA,EAAA,EAAA,KAAA,CAAC,MAAD,CACE,YAAU,eACV,UAAWA,EAAAA,GAAG,mFAAoF,CAAS,EAC3G,GAAI,EAHN,SAAA,CAKG,EACA,EACC,iBAAA,EAAA,EAAA,IAAA,CAACD,EAAAA,OAAe,MAAhB,CAAsB,QAAA,GACpB,SAAA,iBAAA,EAAA,EAAA,IAAA,CAACE,EAAAA,OAAD,CAAQ,QAAQ,QAAQ,KAAK,OAAO,aAAY,EAAY,UAAU,qCACpE,SAAA,iBAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,EAAD,CAAW,UAAU,SAAW,CAAA,CAC1B,CAAA,CACY,CAAA,EACpB,IACD,GAET,CAEA,SAAgB,EAAW,CAAE,YAAW,GAAG,GAAsD,CAC/F,MACE,iBAAA,EAAA,EAAA,IAAA,CAACH,EAAAA,OAAe,MAAhB,CACE,YAAU,cACV,UAAWC,EAAAA,GAAG,4CAA6C,CAAS,EACpE,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAiB,CAAE,YAAW,GAAG,GAA4D,CAC3G,MACE,iBAAA,EAAA,EAAA,IAAA,CAACD,EAAAA,OAAe,YAAhB,CACE,YAAU,oBACV,UAAWC,EAAAA,GAAG,wCAAyC,CAAS,EAChE,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAU,CAAE,YAAW,GAAG,GAAgC,CACxE,MACE,iBAAA,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,YAAU,aACV,UAAWA,EAAAA,GAAG,+DAAgE,CAAS,EACvF,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAY,CAAE,YAAW,GAAG,GAAgC,CAC1E,MACE,iBAAA,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,YAAU,eACV,UAAWA,EAAAA,GACT,oIACA,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
@@ -0,0 +1,35 @@
1
+ import { Dialog } from "radix-ui";
2
+ import { ComponentProps } from "react";
3
+ //#region src/components/Sheet.d.ts
4
+ /**
5
+ * A side panel on Radix's Dialog: an overlay that slides in from an edge,
6
+ * with the focus trap, Escape, outside click and scroll lock a dialog has.
7
+ *
8
+ * It is the Dialog for content that reads as a column rather than a form: a
9
+ * detail view beside what the reader was looking at. An inline aside cannot
10
+ * do this, because it takes width from the surface underneath it.
11
+ */
12
+ export declare function Sheet(props: ComponentProps<typeof Dialog.Root>): import("react").JSX.Element;
13
+ export declare function SheetTrigger(props: ComponentProps<typeof Dialog.Trigger>): import("react").JSX.Element;
14
+ export declare function SheetClose(props: ComponentProps<typeof Dialog.Close>): import("react").JSX.Element;
15
+ export declare function SheetOverlay({ className, ...props }: ComponentProps<typeof Dialog.Overlay>): import("react").JSX.Element;
16
+ export interface SheetContentProps extends ComponentProps<typeof Dialog.Content> {
17
+ /** Which edge it comes from. */
18
+ side?: 'right' | 'left';
19
+ /** Width preset; `className` may still override. */
20
+ width?: 'sm' | 'md' | 'lg';
21
+ }
22
+ export declare function SheetContent({ className, children, side, width, ...props }: SheetContentProps): import("react").JSX.Element;
23
+ export interface SheetHeaderProps extends ComponentProps<'div'> {
24
+ /** Show the close control at the right of the strip. On by default: a sheet is dismissed, not answered. */
25
+ dismissible?: boolean;
26
+ /** What the close control announces. */
27
+ closeLabel?: string;
28
+ }
29
+ export declare function SheetHeader({ className, dismissible, closeLabel, children, ...props }: SheetHeaderProps): import("react").JSX.Element;
30
+ export declare function SheetTitle({ className, ...props }: ComponentProps<typeof Dialog.Title>): import("react").JSX.Element;
31
+ export declare function SheetDescription({ className, ...props }: ComponentProps<typeof Dialog.Description>): import("react").JSX.Element;
32
+ export declare function SheetBody({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
33
+ export declare function SheetFooter({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
34
+ //#endregion
35
+ //# sourceMappingURL=Sheet.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sheet.d.mts","names":[],"sources":["../../../src/components/Sheet.tsx"],"mappings":";;;;;;;;;;;wBAegB,MAAM,OAAO,sBAAsB,OAAe,wBAAK,IAAA;wBAIvD,aAAa,OAAO,sBAAsB,OAAe,2BAAQ,IAAA;wBAIjE,WAAW,OAAO,sBAAsB,OAAe,yBAAM,IAAA;wBAI7D,eAAe,cAAc,SAAS,sBAAsB,OAAe,2BAAQ,IAAA;iBAelF,0BAA0B,sBAAsB,OAAe;;EAE9E;;EAEA;;wBAKc,eAAe,WAAW,UAAU,MAAgB,UAAiB,SAAS,oCAAiB,IAAA;iBAqB9F,yBAAyB;;EAExC;;EAEA;;wBAGc,cACd,WACA,aACA,YACA,aACG,SACF,mCAAgB,IAAA;wBAmBH,aAAa,cAAc,SAAS,sBAAsB,OAAe,yBAAM,IAAA;wBAU/E,mBAAmB,cAAc,SAAS,sBAAsB,OAAe,+BAAY,IAAA;wBAU3F,YAAY,cAAc,SAAS,wCAAqB,IAAA;wBAUxD,cAAc,cAAc,SAAS,wCAAqB,IAAA"}
@@ -0,0 +1,2 @@
1
+ import{CloseIcon as e}from"../icons/icons.mjs";import{cn as t}from"../lib/cn.mjs";import{Button as n}from"./Button.mjs";import{Dialog as r}from"radix-ui";import{jsx as i,jsxs as a}from"react/jsx-runtime";function o(e){return/* @__PURE__ */ i(r.Root,{"data-slot":`sheet`,...e})}function s(e){return/* @__PURE__ */ i(r.Trigger,{"data-slot":`sheet-trigger`,...e})}function c(e){return/* @__PURE__ */ i(r.Close,{"data-slot":`sheet-close`,...e})}function l({className:e,...n}){return/* @__PURE__ */ i(r.Overlay,{"data-slot":`sheet-overlay`,className:t(`fixed inset-0 z-40 bg-doom-deep/70 data-[state=open]:animate-doom-fade`,e),...n})}const u={right:`inset-y-0 right-0 border-l data-[state=open]:animate-doom-slide-right`,left:`inset-y-0 left-0 border-r data-[state=open]:animate-doom-slide-left`},d={sm:`w-[360px]`,md:`w-[440px]`,lg:`w-[560px]`};function f({className:e,children:n,side:o=`right`,width:s=`md`,...c}){return/* @__PURE__ */ a(r.Portal,{children:[/* @__PURE__ */ i(l,{}),/* @__PURE__ */ i(r.Content,{"data-slot":`sheet-content`,"data-side":o,className:t(`fixed z-50 flex max-w-[calc(100vw-24px)] flex-col overflow-hidden border-doom-border bg-doom-rail font-mono shadow-2xl outline-none`,u[o],d[s],e),...c,children:n})]})}function p({className:o,dismissible:s=!0,closeLabel:c=`close`,children:l,...u}){return/* @__PURE__ */ a(`div`,{"data-slot":`sheet-header`,className:t(`flex h-11 min-w-0 shrink-0 items-center gap-2.5 border-b border-doom-border px-4`,o),...u,children:[l,s?/* @__PURE__ */ i(r.Close,{asChild:!0,children:/* @__PURE__ */ i(n,{variant:`ghost`,size:`icon`,"aria-label":c,className:`text-doom-faint hover:text-doom-hi`,children:/* @__PURE__ */ i(e,{className:`h-3 w-3`})})}):null]})}function m({className:e,...n}){return/* @__PURE__ */ i(r.Title,{"data-slot":`sheet-title`,className:t(`truncate text-base font-bold text-doom-hi`,e),...n})}function h({className:e,...n}){return/* @__PURE__ */ i(r.Description,{"data-slot":`sheet-description`,className:t(`text-sm leading-relaxed text-doom-dim`,e),...n})}function g({className:e,...n}){return/* @__PURE__ */ i(`div`,{"data-slot":`sheet-body`,className:t(`flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto px-4 py-3`,e),...n})}function _({className:e,...n}){return/* @__PURE__ */ i(`div`,{"data-slot":`sheet-footer`,className:t(`flex min-h-[34px] shrink-0 flex-wrap items-center justify-between gap-2 border-t border-doom-border-soft bg-doom-deep px-4 py-1.5`,e),...n})}export{o as Sheet,g as SheetBody,c as SheetClose,f as SheetContent,h as SheetDescription,_ as SheetFooter,p as SheetHeader,l as SheetOverlay,m as SheetTitle,s as SheetTrigger};
2
+ //# sourceMappingURL=Sheet.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sheet.mjs","names":["SheetPrimitive"],"sources":["../../../src/components/Sheet.tsx"],"sourcesContent":["import { Dialog as SheetPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { CloseIcon } from '../icons/icons';\nimport { cn } from '../lib/cn';\nimport { Button } from './Button';\n\n/**\n * A side panel on Radix's Dialog: an overlay that slides in from an edge,\n * with the focus trap, Escape, outside click and scroll lock a dialog has.\n *\n * It is the Dialog for content that reads as a column rather than a form: a\n * detail view beside what the reader was looking at. An inline aside cannot\n * do this, because it takes width from the surface underneath it.\n */\nexport function Sheet(props: ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\nexport function SheetTrigger(props: ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\nexport function SheetClose(props: ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\nexport function SheetOverlay({ className, ...props }: ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn('fixed inset-0 z-40 bg-doom-deep/70 data-[state=open]:animate-doom-fade', className)}\n {...props}\n />\n );\n}\n\nconst SIDE_POSITION = {\n right: 'inset-y-0 right-0 border-l data-[state=open]:animate-doom-slide-right',\n left: 'inset-y-0 left-0 border-r data-[state=open]:animate-doom-slide-left',\n} as const;\n\nexport interface SheetContentProps extends ComponentProps<typeof SheetPrimitive.Content> {\n /** Which edge it comes from. */\n side?: 'right' | 'left';\n /** Width preset; `className` may still override. */\n width?: 'sm' | 'md' | 'lg';\n}\n\nconst CONTENT_WIDTH = { sm: 'w-[360px]', md: 'w-[440px]', lg: 'w-[560px]' } as const;\n\nexport function SheetContent({ className, children, side = 'right', width = 'md', ...props }: SheetContentProps) {\n return (\n <SheetPrimitive.Portal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n 'fixed z-50 flex max-w-[calc(100vw-24px)] flex-col overflow-hidden border-doom-border bg-doom-rail font-mono shadow-2xl outline-none',\n SIDE_POSITION[side],\n CONTENT_WIDTH[width],\n className,\n )}\n {...props}\n >\n {children}\n </SheetPrimitive.Content>\n </SheetPrimitive.Portal>\n );\n}\n\nexport interface SheetHeaderProps extends ComponentProps<'div'> {\n /** Show the close control at the right of the strip. On by default: a sheet is dismissed, not answered. */\n dismissible?: boolean;\n /** What the close control announces. */\n closeLabel?: string;\n}\n\nexport function SheetHeader({\n className,\n dismissible = true,\n closeLabel = 'close',\n children,\n ...props\n}: SheetHeaderProps) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn('flex h-11 min-w-0 shrink-0 items-center gap-2.5 border-b border-doom-border px-4', className)}\n {...props}\n >\n {children}\n {dismissible ? (\n <SheetPrimitive.Close asChild>\n <Button variant=\"ghost\" size=\"icon\" aria-label={closeLabel} className=\"text-doom-faint hover:text-doom-hi\">\n <CloseIcon className=\"h-3 w-3\" />\n </Button>\n </SheetPrimitive.Close>\n ) : null}\n </div>\n );\n}\n\nexport function SheetTitle({ className, ...props }: ComponentProps<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn('truncate text-base font-bold text-doom-hi', className)}\n {...props}\n />\n );\n}\n\nexport function SheetDescription({ className, ...props }: ComponentProps<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn('text-sm leading-relaxed text-doom-dim', className)}\n {...props}\n />\n );\n}\n\nexport function SheetBody({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-body\"\n className={cn('flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto px-4 py-3', className)}\n {...props}\n />\n );\n}\n\nexport function SheetFooter({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\n 'flex min-h-[34px] shrink-0 flex-wrap items-center justify-between gap-2 border-t border-doom-border-soft bg-doom-deep px-4 py-1.5',\n className,\n )}\n {...props}\n />\n );\n}\n"],"mappings":"4MAeA,SAAgB,EAAM,EAAmD,CACvE,MAAO,kBAACA,EAAe,KAAhB,CAAqB,YAAU,QAAQ,GAAI,CAAQ,CAAA,CAC5D,CAEA,SAAgB,EAAa,EAAsD,CACjF,MAAO,kBAACA,EAAe,QAAhB,CAAwB,YAAU,gBAAgB,GAAI,CAAQ,CAAA,CACvE,CAEA,SAAgB,EAAW,EAAoD,CAC7E,MAAO,kBAACA,EAAe,MAAhB,CAAsB,YAAU,cAAc,GAAI,CAAQ,CAAA,CACnE,CAEA,SAAgB,EAAa,CAAE,YAAW,GAAG,GAAwD,CACnG,MACE,kBAACA,EAAe,QAAhB,CACE,YAAU,gBACV,UAAW,EAAG,yEAA0E,CAAS,EACjG,GAAI,CACL,CAAA,CAEL,CAEA,MAAM,EAAgB,CACpB,MAAO,wEACP,KAAM,qEACR,EASM,EAAgB,CAAE,GAAI,YAAa,GAAI,YAAa,GAAI,WAAY,EAE1E,SAAgB,EAAa,CAAE,YAAW,WAAU,OAAO,QAAS,QAAQ,KAAM,GAAG,GAA4B,CAC/G,MACE,kBAACA,EAAe,OAAhB,CAAA,SAAA,CACE,kBAAC,EAAD,CAAe,CAAA,EACf,kBAACA,EAAe,QAAhB,CACE,YAAU,gBACV,YAAW,EACX,UAAW,EACT,sIACA,EAAc,GACd,EAAc,GACd,CACF,EACA,GAAI,EAEH,UACqB,CAAA,CACH,CAAA,CAAA,CAE3B,CASA,SAAgB,EAAY,CAC1B,YACA,cAAc,GACd,aAAa,QACb,WACA,GAAG,GACgB,CACnB,MACE,kBAAC,MAAD,CACE,YAAU,eACV,UAAW,EAAG,mFAAoF,CAAS,EAC3G,GAAI,EAHN,SAAA,CAKG,EACA,EACC,kBAACA,EAAe,MAAhB,CAAsB,QAAA,GACpB,SAAA,kBAAC,EAAD,CAAQ,QAAQ,QAAQ,KAAK,OAAO,aAAY,EAAY,UAAU,qCACpE,SAAA,kBAAC,EAAD,CAAW,UAAU,SAAW,CAAA,CAC1B,CAAA,CACY,CAAA,EACpB,IACD,GAET,CAEA,SAAgB,EAAW,CAAE,YAAW,GAAG,GAAsD,CAC/F,MACE,kBAACA,EAAe,MAAhB,CACE,YAAU,cACV,UAAW,EAAG,4CAA6C,CAAS,EACpE,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAiB,CAAE,YAAW,GAAG,GAA4D,CAC3G,MACE,kBAACA,EAAe,YAAhB,CACE,YAAU,oBACV,UAAW,EAAG,wCAAyC,CAAS,EAChE,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAU,CAAE,YAAW,GAAG,GAAgC,CACxE,MACE,kBAAC,MAAD,CACE,YAAU,aACV,UAAW,EAAG,+DAAgE,CAAS,EACvF,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAY,CAAE,YAAW,GAAG,GAAgC,CAC1E,MACE,kBAAC,MAAD,CACE,YAAU,eACV,UAAW,EACT,oIACA,CACF,EACA,GAAI,CACL,CAAA,CAEL"}
@@ -1,2 +1,2 @@
1
- const e=require("../lib/cn.cjs");let t=require("react/jsx-runtime");function n({className:n,...r}){return(0,t.jsx)(`div`,{"data-slot":`skeleton`,"aria-hidden":!0,className:e.cn(`animate-pulse rounded bg-doom-border-soft`,n),...r})}exports.Skeleton=n;
1
+ const e=require("../lib/cn.cjs");let t=require("react/jsx-runtime");function n({className:n,...r}){return/* @__PURE__ */ (0,t.jsx)(`div`,{"data-slot":`skeleton`,"aria-hidden":!0,className:e.cn(`animate-pulse rounded bg-doom-border-soft`,n),...r})}exports.Skeleton=n;
2
2
  //# sourceMappingURL=Skeleton.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Skeleton.cjs","names":["cn"],"sources":["../../../src/components/Skeleton.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/**\n * The shape of content that has not arrived. It has no Radix counterpart; it\n * is a pulsing block, and it is aria-hidden because the live region that\n * announces the wait belongs to the surface, not to each placeholder.\n */\nexport function Skeleton({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"skeleton\"\n aria-hidden\n className={cn('animate-pulse rounded bg-doom-border-soft', className)}\n {...props}\n />\n );\n}\n"],"mappings":"oEAQA,SAAgB,EAAS,CAAE,YAAW,GAAG,GAAgC,CACvE,OACE,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,YAAU,WACV,cAAA,GACA,UAAWA,EAAAA,GAAG,4CAA6C,CAAS,EACpE,GAAI,CACL,CAAA,CAEL"}
1
+ {"version":3,"file":"Skeleton.cjs","names":["cn"],"sources":["../../../src/components/Skeleton.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '../lib/cn';\n\n/**\n * The shape of content that has not arrived. It has no Radix counterpart; it\n * is a pulsing block, and it is aria-hidden because the live region that\n * announces the wait belongs to the surface, not to each placeholder.\n */\nexport function Skeleton({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"skeleton\"\n aria-hidden\n className={cn('animate-pulse rounded bg-doom-border-soft', className)}\n {...props}\n />\n );\n}\n"],"mappings":"oEASA,SAAgB,EAAS,CAAE,YAAW,GAAG,GAAgC,CACvE,MACE,iBAAA,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,YAAU,WACV,cAAA,GACA,UAAWA,EAAAA,GAAG,4CAA6C,CAAS,EACpE,GAAI,CACL,CAAA,CAEL"}
@@ -5,7 +5,6 @@ import { ComponentProps } from "react";
5
5
  * is a pulsing block, and it is aria-hidden because the live region that
6
6
  * announces the wait belongs to the surface, not to each placeholder.
7
7
  */
8
- declare function Skeleton({ className, ...props }: ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
8
+ export declare function Skeleton({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
9
9
  //#endregion
10
- export { Skeleton };
11
10
  //# sourceMappingURL=Skeleton.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Skeleton.d.mts","names":[],"sources":["../../../src/components/Skeleton.tsx"],"mappings":";;;;;;;iBAQgB,WAAW,cAAc,SAAS,oDAAqB,IAAA"}
1
+ {"version":3,"file":"Skeleton.d.mts","names":[],"sources":["../../../src/components/Skeleton.tsx"],"mappings":";;;;;;;wBASgB,WAAW,cAAc,SAAS,wCAAqB,IAAA"}
@@ -1,2 +1,2 @@
1
- import{cn as e}from"../lib/cn.mjs";import{jsx as t}from"react/jsx-runtime";function n({className:n,...r}){return t(`div`,{"data-slot":`skeleton`,"aria-hidden":!0,className:e(`animate-pulse rounded bg-doom-border-soft`,n),...r})}export{n as Skeleton};
1
+ import{cn as e}from"../lib/cn.mjs";import{jsx as t}from"react/jsx-runtime";function n({className:n,...r}){return/* @__PURE__ */ t(`div`,{"data-slot":`skeleton`,"aria-hidden":!0,className:e(`animate-pulse rounded bg-doom-border-soft`,n),...r})}export{n as Skeleton};
2
2
  //# sourceMappingURL=Skeleton.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Skeleton.mjs","names":[],"sources":["../../../src/components/Skeleton.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/**\n * The shape of content that has not arrived. It has no Radix counterpart; it\n * is a pulsing block, and it is aria-hidden because the live region that\n * announces the wait belongs to the surface, not to each placeholder.\n */\nexport function Skeleton({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"skeleton\"\n aria-hidden\n className={cn('animate-pulse rounded bg-doom-border-soft', className)}\n {...props}\n />\n );\n}\n"],"mappings":"2EAQA,SAAgB,EAAS,CAAE,YAAW,GAAG,GAAgC,CACvE,OACE,EAAC,MAAD,CACE,YAAU,WACV,cAAA,GACA,UAAW,EAAG,4CAA6C,CAAS,EACpE,GAAI,CACL,CAAA,CAEL"}
1
+ {"version":3,"file":"Skeleton.mjs","names":[],"sources":["../../../src/components/Skeleton.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '../lib/cn';\n\n/**\n * The shape of content that has not arrived. It has no Radix counterpart; it\n * is a pulsing block, and it is aria-hidden because the live region that\n * announces the wait belongs to the surface, not to each placeholder.\n */\nexport function Skeleton({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"skeleton\"\n aria-hidden\n className={cn('animate-pulse rounded bg-doom-border-soft', className)}\n {...props}\n />\n );\n}\n"],"mappings":"2EASA,SAAgB,EAAS,CAAE,YAAW,GAAG,GAAgC,CACvE,MACE,kBAAC,MAAD,CACE,YAAU,WACV,cAAA,GACA,UAAW,EAAG,4CAA6C,CAAS,EACpE,GAAI,CACL,CAAA,CAEL"}
@@ -1,2 +1,2 @@
1
- require("../icons/icons.cjs");const e=require("../lib/cn.cjs");let t=require("react/jsx-runtime"),n=require("lucide-react");function r({className:r,label:i,...a}){let o=(0,t.jsx)(n.Loader2,{"data-slot":`spinner`,"aria-hidden":!0,className:e.cn(`h-3 w-3 animate-spin`,r),...a});return i===void 0?o:(0,t.jsxs)(`span`,{"data-slot":`spinner-status`,role:`status`,className:`inline-flex items-center`,children:[o,(0,t.jsx)(`span`,{className:`sr-only`,children:i})]})}exports.Spinner=r;
1
+ require("../icons/icons.cjs");const e=require("../lib/cn.cjs");let t=require("react/jsx-runtime"),n=require("lucide-react");function r({className:r,label:i,...a}){let o=/* @__PURE__ */ (0,t.jsx)(n.Loader2,{"data-slot":`spinner`,"aria-hidden":!0,className:e.cn(`h-3 w-3 animate-spin`,r),...a});return i===void 0?o:/* @__PURE__ */ (0,t.jsxs)(`output`,{"data-slot":`spinner-status`,className:`inline-flex items-center`,children:[o,/* @__PURE__ */ (0,t.jsx)(`span`,{className:`sr-only`,children:i})]})}exports.Spinner=r;
2
2
  //# sourceMappingURL=Spinner.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.cjs","names":["LoaderIcon","cn"],"sources":["../../../src/components/Spinner.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { LoaderIcon } from '../icons/icons.ts';\nimport { cn } from '../lib/cn.ts';\n\nexport interface SpinnerProps extends ComponentProps<'svg'> {\n /**\n * What the wait is for. Given one, the spinner announces itself as a live\n * status instead of staying silent, which is the difference between a\n * screen reader saying \"loading providers\" and saying nothing at all.\n */\n label?: string;\n}\n\n/** A turning loader in the current text colour; decorative unless it is given a label. */\nexport function Spinner({ className, label, ...props }: SpinnerProps) {\n const icon = (\n <LoaderIcon data-slot=\"spinner\" aria-hidden className={cn('h-3 w-3 animate-spin', className)} {...props} />\n );\n if (label === undefined) return icon;\n return (\n <span data-slot=\"spinner-status\" role=\"status\" className=\"inline-flex items-center\">\n {icon}\n <span className=\"sr-only\">{label}</span>\n </span>\n );\n}\n"],"mappings":"4HAcA,SAAgB,EAAQ,CAAE,YAAW,QAAO,GAAG,GAAuB,CACpE,IAAM,GACJ,EAAA,EAAA,IAAA,CAACA,EAAAA,QAAD,CAAY,YAAU,UAAU,cAAA,GAAY,UAAWC,EAAAA,GAAG,uBAAwB,CAAS,EAAG,GAAI,CAAQ,CAAA,EAG5G,OADI,IAAU,IAAA,GAAkB,GAE9B,EAAA,EAAA,KAAA,CAAC,OAAD,CAAM,YAAU,iBAAiB,KAAK,SAAS,UAAU,2BAAzD,SAAA,CACG,GACD,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,UAAW,SAAA,CAAY,CAAA,CACnC,GAEV"}
1
+ {"version":3,"file":"Spinner.cjs","names":["LoaderIcon","cn"],"sources":["../../../src/components/Spinner.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { LoaderIcon } from '../icons/icons';\nimport { cn } from '../lib/cn';\n\nexport interface SpinnerProps extends ComponentProps<'svg'> {\n /**\n * What the wait is for. Given one, the spinner announces itself as a live\n * status instead of staying silent, which is the difference between a\n * screen reader saying \"loading providers\" and saying nothing at all.\n */\n label?: string;\n}\n\n/** A turning loader in the current text colour; decorative unless it is given a label. */\nexport function Spinner({ className, label, ...props }: SpinnerProps) {\n const icon = (\n <LoaderIcon data-slot=\"spinner\" aria-hidden className={cn('h-3 w-3 animate-spin', className)} {...props} />\n );\n if (label === undefined) return icon;\n return (\n <output data-slot=\"spinner-status\" className=\"inline-flex items-center\">\n {icon}\n <span className=\"sr-only\">{label}</span>\n </output>\n );\n}\n"],"mappings":"4HAeA,SAAgB,EAAQ,CAAE,YAAW,QAAO,GAAG,GAAuB,CACpE,IAAM,EACJ,iBAAA,EAAA,EAAA,IAAA,CAACA,EAAAA,QAAD,CAAY,YAAU,UAAU,cAAA,GAAY,UAAWC,EAAAA,GAAG,uBAAwB,CAAS,EAAG,GAAI,CAAQ,CAAA,EAG5G,OADI,IAAU,IAAA,GAAkB,EAE9B,iBAAA,EAAA,EAAA,KAAA,CAAC,SAAD,CAAQ,YAAU,iBAAiB,UAAU,2BAA7C,SAAA,CACG,EACD,iBAAA,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,UAAW,SAAA,CAAY,CAAA,CACjC,GAEZ"}
@@ -1,6 +1,6 @@
1
1
  import { ComponentProps } from "react";
2
2
  //#region src/components/Spinner.d.ts
3
- interface SpinnerProps extends ComponentProps<'svg'> {
3
+ export interface SpinnerProps extends ComponentProps<'svg'> {
4
4
  /**
5
5
  * What the wait is for. Given one, the spinner announces itself as a live
6
6
  * status instead of staying silent, which is the difference between a
@@ -9,7 +9,6 @@ interface SpinnerProps extends ComponentProps<'svg'> {
9
9
  label?: string;
10
10
  }
11
11
  /** A turning loader in the current text colour; decorative unless it is given a label. */
12
- declare function Spinner({ className, label, ...props }: SpinnerProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function Spinner({ className, label, ...props }: SpinnerProps): import("react").JSX.Element;
13
13
  //#endregion
14
- export { Spinner, SpinnerProps };
15
14
  //# sourceMappingURL=Spinner.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.d.mts","names":[],"sources":["../../../src/components/Spinner.tsx"],"mappings":";;UAIiB,qBAAqB;;;;;;EAMpC;;;iBAIc,UAAU,WAAW,UAAU,SAAS,2CAAY,IAAA"}
1
+ {"version":3,"file":"Spinner.d.mts","names":[],"sources":["../../../src/components/Spinner.tsx"],"mappings":";;iBAKiB,qBAAqB;;;;;;EAMpC;;;wBAIc,UAAU,WAAW,UAAU,SAAS,+BAAY,IAAA"}
@@ -1,2 +1,2 @@
1
- import{LoaderIcon as e}from"../icons/icons.mjs";import{cn as t}from"../lib/cn.mjs";import{jsx as n,jsxs as r}from"react/jsx-runtime";function i({className:i,label:a,...o}){let s=n(e,{"data-slot":`spinner`,"aria-hidden":!0,className:t(`h-3 w-3 animate-spin`,i),...o});return a===void 0?s:r(`span`,{"data-slot":`spinner-status`,role:`status`,className:`inline-flex items-center`,children:[s,n(`span`,{className:`sr-only`,children:a})]})}export{i as Spinner};
1
+ import{LoaderIcon as e}from"../icons/icons.mjs";import{cn as t}from"../lib/cn.mjs";import{jsx as n,jsxs as r}from"react/jsx-runtime";function i({className:i,label:a,...o}){let s=/* @__PURE__ */ n(e,{"data-slot":`spinner`,"aria-hidden":!0,className:t(`h-3 w-3 animate-spin`,i),...o});return a===void 0?s:/* @__PURE__ */ r(`output`,{"data-slot":`spinner-status`,className:`inline-flex items-center`,children:[s,/* @__PURE__ */ n(`span`,{className:`sr-only`,children:a})]})}export{i as Spinner};
2
2
  //# sourceMappingURL=Spinner.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.mjs","names":[],"sources":["../../../src/components/Spinner.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { LoaderIcon } from '../icons/icons.ts';\nimport { cn } from '../lib/cn.ts';\n\nexport interface SpinnerProps extends ComponentProps<'svg'> {\n /**\n * What the wait is for. Given one, the spinner announces itself as a live\n * status instead of staying silent, which is the difference between a\n * screen reader saying \"loading providers\" and saying nothing at all.\n */\n label?: string;\n}\n\n/** A turning loader in the current text colour; decorative unless it is given a label. */\nexport function Spinner({ className, label, ...props }: SpinnerProps) {\n const icon = (\n <LoaderIcon data-slot=\"spinner\" aria-hidden className={cn('h-3 w-3 animate-spin', className)} {...props} />\n );\n if (label === undefined) return icon;\n return (\n <span data-slot=\"spinner-status\" role=\"status\" className=\"inline-flex items-center\">\n {icon}\n <span className=\"sr-only\">{label}</span>\n </span>\n );\n}\n"],"mappings":"qIAcA,SAAgB,EAAQ,CAAE,YAAW,QAAO,GAAG,GAAuB,CACpE,IAAM,EACJ,EAAC,EAAD,CAAY,YAAU,UAAU,cAAA,GAAY,UAAW,EAAG,uBAAwB,CAAS,EAAG,GAAI,CAAQ,CAAA,EAG5G,OADI,IAAU,IAAA,GAAkB,EAE9B,EAAC,OAAD,CAAM,YAAU,iBAAiB,KAAK,SAAS,UAAU,2BAAzD,SAAA,CACG,EACD,EAAC,OAAD,CAAM,UAAU,UAAW,SAAA,CAAY,CAAA,CACnC,GAEV"}
1
+ {"version":3,"file":"Spinner.mjs","names":[],"sources":["../../../src/components/Spinner.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { LoaderIcon } from '../icons/icons';\nimport { cn } from '../lib/cn';\n\nexport interface SpinnerProps extends ComponentProps<'svg'> {\n /**\n * What the wait is for. Given one, the spinner announces itself as a live\n * status instead of staying silent, which is the difference between a\n * screen reader saying \"loading providers\" and saying nothing at all.\n */\n label?: string;\n}\n\n/** A turning loader in the current text colour; decorative unless it is given a label. */\nexport function Spinner({ className, label, ...props }: SpinnerProps) {\n const icon = (\n <LoaderIcon data-slot=\"spinner\" aria-hidden className={cn('h-3 w-3 animate-spin', className)} {...props} />\n );\n if (label === undefined) return icon;\n return (\n <output data-slot=\"spinner-status\" className=\"inline-flex items-center\">\n {icon}\n <span className=\"sr-only\">{label}</span>\n </output>\n );\n}\n"],"mappings":"qIAeA,SAAgB,EAAQ,CAAE,YAAW,QAAO,GAAG,GAAuB,CACpE,IAAM,EACJ,kBAAC,EAAD,CAAY,YAAU,UAAU,cAAA,GAAY,UAAW,EAAG,uBAAwB,CAAS,EAAG,GAAI,CAAQ,CAAA,EAG5G,OADI,IAAU,IAAA,GAAkB,EAE9B,kBAAC,SAAD,CAAQ,YAAU,iBAAiB,UAAU,2BAA7C,SAAA,CACG,EACD,kBAAC,OAAD,CAAM,UAAU,UAAW,SAAA,CAAY,CAAA,CACjC,GAEZ"}
@@ -1,2 +1,2 @@
1
- const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime");const r=(0,require("class-variance-authority").cva)(`inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-[3px] font-mono font-bold uppercase`,{variants:{tone:{neutral:`bg-doom-panel text-doom-faint`,running:`bg-doom-tint-yellow text-doom-yellow`,ok:`bg-doom-tint-green text-doom-green`,error:`bg-doom-tint-red text-doom-red`,info:`bg-doom-tint-blue text-doom-blue`,accent:`bg-doom-tint-magenta text-doom-magenta`},size:{xs:`px-1.5 py-0.5 text-[8px]`,sm:`px-[7px] py-[3px] text-[9px]`,md:`h-[21px] px-2 text-[10px] normal-case`,lg:`h-6 px-2.5 text-[11px] normal-case`}},defaultVariants:{tone:`neutral`,size:`sm`}}),i={neutral:`border-doom-border`,running:`border-doom-edge-yellow`,ok:`border-doom-edge-green`,error:`border-doom-edge-red`,info:`border-doom-edge-blue`,accent:`border-doom-edge-magenta`};function a({className:i,tone:a,size:o,asChild:s=!1,...c}){let l=s?t.Slot.Root:`span`;return(0,n.jsx)(l,{"data-slot":`status-badge`,className:e.cn(r({tone:a,size:o}),i),...c})}exports.STATUS_EDGE=i,exports.StatusBadge=a,exports.statusBadgeVariants=r;
1
+ const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime");const r=(0,require("class-variance-authority").cva)(`inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-sm font-mono font-bold uppercase`,{variants:{tone:{neutral:`bg-doom-panel text-doom-faint`,running:`bg-doom-tint-yellow text-doom-yellow`,ok:`bg-doom-tint-green text-doom-green`,error:`bg-doom-tint-red text-doom-red`,info:`bg-doom-tint-blue text-doom-blue`,accent:`bg-doom-tint-magenta text-doom-magenta`},size:{xs:`px-1.5 py-0.5 text-2xs`,sm:`px-[7px] py-[3px] text-xs`,md:`h-[21px] px-2 text-sm normal-case`,lg:`h-6 px-2.5 text-base normal-case`}},defaultVariants:{tone:`neutral`,size:`sm`}}),i={neutral:`border-doom-border`,running:`border-doom-edge-yellow`,ok:`border-doom-edge-green`,error:`border-doom-edge-red`,info:`border-doom-edge-blue`,accent:`border-doom-edge-magenta`};function a({className:i,tone:a,size:o,asChild:s=!1,...c}){let l=s?t.Slot.Root:`span`;return/* @__PURE__ */ (0,n.jsx)(l,{"data-slot":`status-badge`,className:e.cn(r({tone:a,size:o}),i),...c})}exports.STATUS_EDGE=i,exports.StatusBadge=a,exports.statusBadgeVariants=r;
2
2
  //# sourceMappingURL=StatusBadge.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBadge.cjs","names":["cva","Slot","cn"],"sources":["../../../src/components/StatusBadge.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { Slot } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\nimport type { StatusTone as Tone } from '../types/tone.ts';\n\nexport const statusBadgeVariants = cva(\n 'inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-[3px] font-mono font-bold uppercase',\n {\n variants: {\n tone: {\n neutral: 'bg-doom-panel text-doom-faint',\n running: 'bg-doom-tint-yellow text-doom-yellow',\n ok: 'bg-doom-tint-green text-doom-green',\n error: 'bg-doom-tint-red text-doom-red',\n info: 'bg-doom-tint-blue text-doom-blue',\n accent: 'bg-doom-tint-magenta text-doom-magenta',\n } satisfies Record<Tone, string>,\n size: {\n xs: 'px-1.5 py-0.5 text-[8px]',\n sm: 'px-[7px] py-[3px] text-[9px]',\n md: 'h-[21px] px-2 text-[10px] normal-case',\n lg: 'h-6 px-2.5 text-[11px] normal-case',\n },\n },\n defaultVariants: { tone: 'neutral', size: 'sm' },\n },\n);\n\nexport type StatusTone = Tone;\n\n/**\n * The border a card wears for a status, the same tint family as the badge.\n * MessageItem builds its frame variants from this table, so a tone's edge is\n * named once and a card and its badge can never disagree about it.\n */\nexport const STATUS_EDGE: Readonly<Record<StatusTone, string>> = {\n neutral: 'border-doom-border',\n running: 'border-doom-edge-yellow',\n ok: 'border-doom-edge-green',\n error: 'border-doom-edge-red',\n info: 'border-doom-edge-blue',\n accent: 'border-doom-edge-magenta',\n};\n\nexport interface StatusBadgeProps extends ComponentProps<'span'>, VariantProps<typeof statusBadgeVariants> {\n /** Render the child element instead of a <span>, so a link can look like a pill. */\n asChild?: boolean;\n}\n\n/** The tinted outcome pill: RUNNING, OK, ERROR and their kin, as every run card draws it. */\nexport function StatusBadge({ className, tone, size, asChild = false, ...props }: StatusBadgeProps) {\n const Component = asChild ? Slot.Root : 'span';\n return (\n <Component data-slot=\"status-badge\" className={cn(statusBadgeVariants({ tone, size }), className)} {...props} />\n );\n}\n"],"mappings":"0FAMA,MAAa,GAAA,oCAAsBA,CAAAA,CAAAA,IAAAA,CACjC,0GACA,CACE,SAAU,CACR,KAAM,CACJ,QAAS,gCACT,QAAS,uCACT,GAAI,qCACJ,MAAO,iCACP,KAAM,mCACN,OAAQ,wCACV,EACA,KAAM,CACJ,GAAI,2BACJ,GAAI,+BACJ,GAAI,wCACJ,GAAI,oCACN,CACF,EACA,gBAAiB,CAAE,KAAM,UAAW,KAAM,IAAK,CACjD,CACF,EASa,EAAoD,CAC/D,QAAS,qBACT,QAAS,0BACT,GAAI,yBACJ,MAAO,uBACP,KAAM,wBACN,OAAQ,0BACV,EAQA,SAAgB,EAAY,CAAE,YAAW,OAAM,OAAM,UAAU,GAAO,GAAG,GAA2B,CAClG,IAAM,EAAY,EAAUC,EAAAA,KAAK,KAAO,OACxC,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAW,YAAU,eAAe,UAAWC,EAAAA,GAAG,EAAoB,CAAE,OAAM,MAAK,CAAC,EAAG,CAAS,EAAG,GAAI,CAAQ,CAAA,CAEnH"}
1
+ {"version":3,"file":"StatusBadge.cjs","names":["cva","Slot","cn"],"sources":["../../../src/components/StatusBadge.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { Slot } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '../lib/cn';\nimport type { StatusTone as Tone } from '../types/tone';\n\nexport const statusBadgeVariants = cva(\n 'inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-sm font-mono font-bold uppercase',\n {\n variants: {\n tone: {\n neutral: 'bg-doom-panel text-doom-faint',\n running: 'bg-doom-tint-yellow text-doom-yellow',\n ok: 'bg-doom-tint-green text-doom-green',\n error: 'bg-doom-tint-red text-doom-red',\n info: 'bg-doom-tint-blue text-doom-blue',\n accent: 'bg-doom-tint-magenta text-doom-magenta',\n } satisfies Record<Tone, string>,\n size: {\n xs: 'px-1.5 py-0.5 text-2xs',\n sm: 'px-[7px] py-[3px] text-xs',\n md: 'h-[21px] px-2 text-sm normal-case',\n lg: 'h-6 px-2.5 text-base normal-case',\n },\n },\n defaultVariants: { tone: 'neutral', size: 'sm' },\n },\n);\n\nexport type StatusTone = Tone;\n\n/**\n * The border a card wears for a status, the same tint family as the badge.\n * MessageItem builds its frame variants from this table, so a tone's edge is\n * named once and a card and its badge can never disagree about it.\n */\nexport const STATUS_EDGE: Readonly<Record<StatusTone, string>> = {\n neutral: 'border-doom-border',\n running: 'border-doom-edge-yellow',\n ok: 'border-doom-edge-green',\n error: 'border-doom-edge-red',\n info: 'border-doom-edge-blue',\n accent: 'border-doom-edge-magenta',\n};\n\nexport interface StatusBadgeProps extends ComponentProps<'span'>, VariantProps<typeof statusBadgeVariants> {\n /** Render the child element instead of a <span>, so a link can look like a pill. */\n asChild?: boolean;\n}\n\n/** The tinted outcome pill: RUNNING, OK, ERROR and their kin, as every run card draws it. */\nexport function StatusBadge({ className, tone, size, asChild = false, ...props }: StatusBadgeProps) {\n const Component = asChild ? Slot.Root : 'span';\n return (\n <Component data-slot=\"status-badge\" className={cn(statusBadgeVariants({ tone, size }), className)} {...props} />\n );\n}\n"],"mappings":"0FAOA,MAAa,GAAA,oCAAsBA,CAAAA,CAAAA,IAAAA,CACjC,uGACA,CACE,SAAU,CACR,KAAM,CACJ,QAAS,gCACT,QAAS,uCACT,GAAI,qCACJ,MAAO,iCACP,KAAM,mCACN,OAAQ,wCACV,EACA,KAAM,CACJ,GAAI,yBACJ,GAAI,4BACJ,GAAI,oCACJ,GAAI,kCACN,CACF,EACA,gBAAiB,CAAE,KAAM,UAAW,KAAM,IAAK,CACjD,CACF,EASa,EAAoD,CAC/D,QAAS,qBACT,QAAS,0BACT,GAAI,yBACJ,MAAO,uBACP,KAAM,wBACN,OAAQ,0BACV,EAQA,SAAgB,EAAY,CAAE,YAAW,OAAM,OAAM,UAAU,GAAO,GAAG,GAA2B,CAClG,IAAM,EAAY,EAAUC,EAAAA,KAAK,KAAO,OACxC,MACE,iBAAA,EAAA,EAAA,IAAA,CAAC,EAAD,CAAW,YAAU,eAAe,UAAWC,EAAAA,GAAG,EAAoB,CAAE,OAAM,MAAK,CAAC,EAAG,CAAS,EAAG,GAAI,CAAQ,CAAA,CAEnH"}
@@ -1,24 +1,23 @@
1
1
  import { StatusTone as StatusTone$1 } from "../types/tone.mjs";
2
- import { VariantProps } from "class-variance-authority";
3
2
  import { ComponentProps } from "react";
3
+ import { VariantProps } from "class-variance-authority";
4
4
  //#region src/components/StatusBadge.d.ts
5
- declare const statusBadgeVariants: (props?: ({
5
+ export declare const statusBadgeVariants: (props?: ({
6
6
  tone?: "accent" | "error" | "info" | "neutral" | "ok" | "running" | null | undefined;
7
7
  size?: "lg" | "md" | "sm" | "xs" | null | undefined;
8
8
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
- type StatusTone = StatusTone$1;
9
+ export type StatusTone = StatusTone$1;
10
10
  /**
11
11
  * The border a card wears for a status, the same tint family as the badge.
12
12
  * MessageItem builds its frame variants from this table, so a tone's edge is
13
13
  * named once and a card and its badge can never disagree about it.
14
14
  */
15
- declare const STATUS_EDGE: Readonly<Record<StatusTone, string>>;
16
- interface StatusBadgeProps extends ComponentProps<'span'>, VariantProps<typeof statusBadgeVariants> {
15
+ export declare const STATUS_EDGE: Readonly<Record<StatusTone, string>>;
16
+ export interface StatusBadgeProps extends ComponentProps<'span'>, VariantProps<typeof statusBadgeVariants> {
17
17
  /** Render the child element instead of a <span>, so a link can look like a pill. */
18
18
  asChild?: boolean;
19
19
  }
20
20
  /** The tinted outcome pill: RUNNING, OK, ERROR and their kin, as every run card draws it. */
21
- declare function StatusBadge({ className, tone, size, asChild, ...props }: StatusBadgeProps): import("react/jsx-runtime").JSX.Element;
21
+ export declare function StatusBadge({ className, tone, size, asChild, ...props }: StatusBadgeProps): import("react").JSX.Element;
22
22
  //#endregion
23
- export { STATUS_EDGE, StatusBadge, StatusBadgeProps, StatusTone, statusBadgeVariants };
24
23
  //# sourceMappingURL=StatusBadge.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBadge.d.mts","names":[],"sources":["../../../src/components/StatusBadge.tsx"],"mappings":";;;;cAMa,sBAAmB;;;6CAqB/B;KAEW,aAAa;;;;;;cAOZ,aAAa,SAAS,OAAO;UASzB,yBAAyB,wBAAwB,oBAAoB;;EAEpF;;;iBAIc,cAAc,WAAW,MAAM,MAAM,YAAoB,SAAS,+CAAgB,IAAA"}
1
+ {"version":3,"file":"StatusBadge.d.mts","names":[],"sources":["../../../src/components/StatusBadge.tsx"],"mappings":";;;;qBAOa,sBAAmB;;;6CAqB/B;YAEW,aAAa;;;;;;qBAOZ,aAAa,SAAS,OAAO;iBASzB,yBAAyB,wBAAwB,oBAAoB;;EAEpF;;;wBAIc,cAAc,WAAW,MAAM,MAAM,YAAoB,SAAS,mCAAgB,IAAA"}
@@ -1,2 +1,2 @@
1
- import{cn as e}from"../lib/cn.mjs";import{Slot as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";import{cva as r}from"class-variance-authority";const i=r(`inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-[3px] font-mono font-bold uppercase`,{variants:{tone:{neutral:`bg-doom-panel text-doom-faint`,running:`bg-doom-tint-yellow text-doom-yellow`,ok:`bg-doom-tint-green text-doom-green`,error:`bg-doom-tint-red text-doom-red`,info:`bg-doom-tint-blue text-doom-blue`,accent:`bg-doom-tint-magenta text-doom-magenta`},size:{xs:`px-1.5 py-0.5 text-[8px]`,sm:`px-[7px] py-[3px] text-[9px]`,md:`h-[21px] px-2 text-[10px] normal-case`,lg:`h-6 px-2.5 text-[11px] normal-case`}},defaultVariants:{tone:`neutral`,size:`sm`}}),a={neutral:`border-doom-border`,running:`border-doom-edge-yellow`,ok:`border-doom-edge-green`,error:`border-doom-edge-red`,info:`border-doom-edge-blue`,accent:`border-doom-edge-magenta`};function o({className:r,tone:a,size:o,asChild:s=!1,...c}){let l=s?t.Root:`span`;return n(l,{"data-slot":`status-badge`,className:e(i({tone:a,size:o}),r),...c})}export{a as STATUS_EDGE,o as StatusBadge,i as statusBadgeVariants};
1
+ import{cn as e}from"../lib/cn.mjs";import{Slot as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";import{cva as r}from"class-variance-authority";const i=r(`inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-sm font-mono font-bold uppercase`,{variants:{tone:{neutral:`bg-doom-panel text-doom-faint`,running:`bg-doom-tint-yellow text-doom-yellow`,ok:`bg-doom-tint-green text-doom-green`,error:`bg-doom-tint-red text-doom-red`,info:`bg-doom-tint-blue text-doom-blue`,accent:`bg-doom-tint-magenta text-doom-magenta`},size:{xs:`px-1.5 py-0.5 text-2xs`,sm:`px-[7px] py-[3px] text-xs`,md:`h-[21px] px-2 text-sm normal-case`,lg:`h-6 px-2.5 text-base normal-case`}},defaultVariants:{tone:`neutral`,size:`sm`}}),a={neutral:`border-doom-border`,running:`border-doom-edge-yellow`,ok:`border-doom-edge-green`,error:`border-doom-edge-red`,info:`border-doom-edge-blue`,accent:`border-doom-edge-magenta`};function o({className:r,tone:a,size:o,asChild:s=!1,...c}){let l=s?t.Root:`span`;return/* @__PURE__ */ n(l,{"data-slot":`status-badge`,className:e(i({tone:a,size:o}),r),...c})}export{a as STATUS_EDGE,o as StatusBadge,i as statusBadgeVariants};
2
2
  //# sourceMappingURL=StatusBadge.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBadge.mjs","names":[],"sources":["../../../src/components/StatusBadge.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { Slot } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\nimport type { StatusTone as Tone } from '../types/tone.ts';\n\nexport const statusBadgeVariants = cva(\n 'inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-[3px] font-mono font-bold uppercase',\n {\n variants: {\n tone: {\n neutral: 'bg-doom-panel text-doom-faint',\n running: 'bg-doom-tint-yellow text-doom-yellow',\n ok: 'bg-doom-tint-green text-doom-green',\n error: 'bg-doom-tint-red text-doom-red',\n info: 'bg-doom-tint-blue text-doom-blue',\n accent: 'bg-doom-tint-magenta text-doom-magenta',\n } satisfies Record<Tone, string>,\n size: {\n xs: 'px-1.5 py-0.5 text-[8px]',\n sm: 'px-[7px] py-[3px] text-[9px]',\n md: 'h-[21px] px-2 text-[10px] normal-case',\n lg: 'h-6 px-2.5 text-[11px] normal-case',\n },\n },\n defaultVariants: { tone: 'neutral', size: 'sm' },\n },\n);\n\nexport type StatusTone = Tone;\n\n/**\n * The border a card wears for a status, the same tint family as the badge.\n * MessageItem builds its frame variants from this table, so a tone's edge is\n * named once and a card and its badge can never disagree about it.\n */\nexport const STATUS_EDGE: Readonly<Record<StatusTone, string>> = {\n neutral: 'border-doom-border',\n running: 'border-doom-edge-yellow',\n ok: 'border-doom-edge-green',\n error: 'border-doom-edge-red',\n info: 'border-doom-edge-blue',\n accent: 'border-doom-edge-magenta',\n};\n\nexport interface StatusBadgeProps extends ComponentProps<'span'>, VariantProps<typeof statusBadgeVariants> {\n /** Render the child element instead of a <span>, so a link can look like a pill. */\n asChild?: boolean;\n}\n\n/** The tinted outcome pill: RUNNING, OK, ERROR and their kin, as every run card draws it. */\nexport function StatusBadge({ className, tone, size, asChild = false, ...props }: StatusBadgeProps) {\n const Component = asChild ? Slot.Root : 'span';\n return (\n <Component data-slot=\"status-badge\" className={cn(statusBadgeVariants({ tone, size }), className)} {...props} />\n );\n}\n"],"mappings":"0JAMA,MAAa,EAAsB,EACjC,0GACA,CACE,SAAU,CACR,KAAM,CACJ,QAAS,gCACT,QAAS,uCACT,GAAI,qCACJ,MAAO,iCACP,KAAM,mCACN,OAAQ,wCACV,EACA,KAAM,CACJ,GAAI,2BACJ,GAAI,+BACJ,GAAI,wCACJ,GAAI,oCACN,CACF,EACA,gBAAiB,CAAE,KAAM,UAAW,KAAM,IAAK,CACjD,CACF,EASa,EAAoD,CAC/D,QAAS,qBACT,QAAS,0BACT,GAAI,yBACJ,MAAO,uBACP,KAAM,wBACN,OAAQ,0BACV,EAQA,SAAgB,EAAY,CAAE,YAAW,OAAM,OAAM,UAAU,GAAO,GAAG,GAA2B,CAClG,IAAM,EAAY,EAAU,EAAK,KAAO,OACxC,OACE,EAAC,EAAD,CAAW,YAAU,eAAe,UAAW,EAAG,EAAoB,CAAE,OAAM,MAAK,CAAC,EAAG,CAAS,EAAG,GAAI,CAAQ,CAAA,CAEnH"}
1
+ {"version":3,"file":"StatusBadge.mjs","names":[],"sources":["../../../src/components/StatusBadge.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport { Slot } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '../lib/cn';\nimport type { StatusTone as Tone } from '../types/tone';\n\nexport const statusBadgeVariants = cva(\n 'inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-sm font-mono font-bold uppercase',\n {\n variants: {\n tone: {\n neutral: 'bg-doom-panel text-doom-faint',\n running: 'bg-doom-tint-yellow text-doom-yellow',\n ok: 'bg-doom-tint-green text-doom-green',\n error: 'bg-doom-tint-red text-doom-red',\n info: 'bg-doom-tint-blue text-doom-blue',\n accent: 'bg-doom-tint-magenta text-doom-magenta',\n } satisfies Record<Tone, string>,\n size: {\n xs: 'px-1.5 py-0.5 text-2xs',\n sm: 'px-[7px] py-[3px] text-xs',\n md: 'h-[21px] px-2 text-sm normal-case',\n lg: 'h-6 px-2.5 text-base normal-case',\n },\n },\n defaultVariants: { tone: 'neutral', size: 'sm' },\n },\n);\n\nexport type StatusTone = Tone;\n\n/**\n * The border a card wears for a status, the same tint family as the badge.\n * MessageItem builds its frame variants from this table, so a tone's edge is\n * named once and a card and its badge can never disagree about it.\n */\nexport const STATUS_EDGE: Readonly<Record<StatusTone, string>> = {\n neutral: 'border-doom-border',\n running: 'border-doom-edge-yellow',\n ok: 'border-doom-edge-green',\n error: 'border-doom-edge-red',\n info: 'border-doom-edge-blue',\n accent: 'border-doom-edge-magenta',\n};\n\nexport interface StatusBadgeProps extends ComponentProps<'span'>, VariantProps<typeof statusBadgeVariants> {\n /** Render the child element instead of a <span>, so a link can look like a pill. */\n asChild?: boolean;\n}\n\n/** The tinted outcome pill: RUNNING, OK, ERROR and their kin, as every run card draws it. */\nexport function StatusBadge({ className, tone, size, asChild = false, ...props }: StatusBadgeProps) {\n const Component = asChild ? Slot.Root : 'span';\n return (\n <Component data-slot=\"status-badge\" className={cn(statusBadgeVariants({ tone, size }), className)} {...props} />\n );\n}\n"],"mappings":"0JAOA,MAAa,EAAsB,EACjC,uGACA,CACE,SAAU,CACR,KAAM,CACJ,QAAS,gCACT,QAAS,uCACT,GAAI,qCACJ,MAAO,iCACP,KAAM,mCACN,OAAQ,wCACV,EACA,KAAM,CACJ,GAAI,yBACJ,GAAI,4BACJ,GAAI,oCACJ,GAAI,kCACN,CACF,EACA,gBAAiB,CAAE,KAAM,UAAW,KAAM,IAAK,CACjD,CACF,EASa,EAAoD,CAC/D,QAAS,qBACT,QAAS,0BACT,GAAI,yBACJ,MAAO,uBACP,KAAM,wBACN,OAAQ,0BACV,EAQA,SAAgB,EAAY,CAAE,YAAW,OAAM,OAAM,UAAU,GAAO,GAAG,GAA2B,CAClG,IAAM,EAAY,EAAU,EAAK,KAAO,OACxC,MACE,kBAAC,EAAD,CAAW,YAAU,eAAe,UAAW,EAAG,EAAoB,CAAE,OAAM,MAAK,CAAC,EAAG,CAAS,EAAG,GAAI,CAAQ,CAAA,CAEnH"}
@@ -1,2 +1,2 @@
1
- const e=require("../lib/cn.cjs");let t=require("react/jsx-runtime");function n({className:n,...r}){return(0,t.jsx)(`span`,{"data-slot":`stream-cursor`,"aria-hidden":!0,className:e.cn(`ml-0.5 inline-block h-3.5 w-2 translate-y-0.5 animate-doom-blink bg-doom-blue`,n),...r})}exports.StreamCursor=n;
1
+ const e=require("../lib/cn.cjs");let t=require("react/jsx-runtime");function n({className:n,...r}){return/* @__PURE__ */ (0,t.jsx)(`span`,{"data-slot":`stream-cursor`,"aria-hidden":!0,className:e.cn(`ml-0.5 inline-block h-3.5 w-2 translate-y-0.5 animate-doom-blink bg-doom-blue`,n),...r})}exports.StreamCursor=n;
2
2
  //# sourceMappingURL=StreamCursor.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"StreamCursor.cjs","names":["cn"],"sources":["../../../src/components/StreamCursor.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/** The blinking block that marks text still arriving. */\nexport function StreamCursor({ className, ...props }: ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"stream-cursor\"\n aria-hidden\n className={cn('ml-0.5 inline-block h-3.5 w-2 translate-y-0.5 animate-doom-blink bg-doom-blue', className)}\n {...props}\n />\n );\n}\n"],"mappings":"oEAIA,SAAgB,EAAa,CAAE,YAAW,GAAG,GAAiC,CAC5E,OACE,EAAA,EAAA,IAAA,CAAC,OAAD,CACE,YAAU,gBACV,cAAA,GACA,UAAWA,EAAAA,GAAG,gFAAiF,CAAS,EACxG,GAAI,CACL,CAAA,CAEL"}
1
+ {"version":3,"file":"StreamCursor.cjs","names":["cn"],"sources":["../../../src/components/StreamCursor.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '../lib/cn';\n\n/** The blinking block that marks text still arriving. */\nexport function StreamCursor({ className, ...props }: ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"stream-cursor\"\n aria-hidden\n className={cn('ml-0.5 inline-block h-3.5 w-2 translate-y-0.5 animate-doom-blink bg-doom-blue', className)}\n {...props}\n />\n );\n}\n"],"mappings":"oEAKA,SAAgB,EAAa,CAAE,YAAW,GAAG,GAAiC,CAC5E,MACE,iBAAA,EAAA,EAAA,IAAA,CAAC,OAAD,CACE,YAAU,gBACV,cAAA,GACA,UAAWA,EAAAA,GAAG,gFAAiF,CAAS,EACxG,GAAI,CACL,CAAA,CAEL"}
@@ -1,7 +1,6 @@
1
1
  import { ComponentProps } from "react";
2
2
  //#region src/components/StreamCursor.d.ts
3
3
  /** The blinking block that marks text still arriving. */
4
- declare function StreamCursor({ className, ...props }: ComponentProps<'span'>): import("react/jsx-runtime").JSX.Element;
4
+ export declare function StreamCursor({ className, ...props }: ComponentProps<'span'>): import("react").JSX.Element;
5
5
  //#endregion
6
- export { StreamCursor };
7
6
  //# sourceMappingURL=StreamCursor.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StreamCursor.d.mts","names":[],"sources":["../../../src/components/StreamCursor.tsx"],"mappings":";;;iBAIgB,eAAe,cAAc,SAAS,qDAAsB,IAAA"}
1
+ {"version":3,"file":"StreamCursor.d.mts","names":[],"sources":["../../../src/components/StreamCursor.tsx"],"mappings":";;;wBAKgB,eAAe,cAAc,SAAS,yCAAsB,IAAA"}
@@ -1,2 +1,2 @@
1
- import{cn as e}from"../lib/cn.mjs";import{jsx as t}from"react/jsx-runtime";function n({className:n,...r}){return t(`span`,{"data-slot":`stream-cursor`,"aria-hidden":!0,className:e(`ml-0.5 inline-block h-3.5 w-2 translate-y-0.5 animate-doom-blink bg-doom-blue`,n),...r})}export{n as StreamCursor};
1
+ import{cn as e}from"../lib/cn.mjs";import{jsx as t}from"react/jsx-runtime";function n({className:n,...r}){return/* @__PURE__ */ t(`span`,{"data-slot":`stream-cursor`,"aria-hidden":!0,className:e(`ml-0.5 inline-block h-3.5 w-2 translate-y-0.5 animate-doom-blink bg-doom-blue`,n),...r})}export{n as StreamCursor};
2
2
  //# sourceMappingURL=StreamCursor.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"StreamCursor.mjs","names":[],"sources":["../../../src/components/StreamCursor.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/** The blinking block that marks text still arriving. */\nexport function StreamCursor({ className, ...props }: ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"stream-cursor\"\n aria-hidden\n className={cn('ml-0.5 inline-block h-3.5 w-2 translate-y-0.5 animate-doom-blink bg-doom-blue', className)}\n {...props}\n />\n );\n}\n"],"mappings":"2EAIA,SAAgB,EAAa,CAAE,YAAW,GAAG,GAAiC,CAC5E,OACE,EAAC,OAAD,CACE,YAAU,gBACV,cAAA,GACA,UAAW,EAAG,gFAAiF,CAAS,EACxG,GAAI,CACL,CAAA,CAEL"}
1
+ {"version":3,"file":"StreamCursor.mjs","names":[],"sources":["../../../src/components/StreamCursor.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '../lib/cn';\n\n/** The blinking block that marks text still arriving. */\nexport function StreamCursor({ className, ...props }: ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"stream-cursor\"\n aria-hidden\n className={cn('ml-0.5 inline-block h-3.5 w-2 translate-y-0.5 animate-doom-blink bg-doom-blue', className)}\n {...props}\n />\n );\n}\n"],"mappings":"2EAKA,SAAgB,EAAa,CAAE,YAAW,GAAG,GAAiC,CAC5E,MACE,kBAAC,OAAD,CACE,YAAU,gBACV,cAAA,GACA,UAAW,EAAG,gFAAiF,CAAS,EACxG,GAAI,CACL,CAAA,CAEL"}
@@ -1,2 +1,2 @@
1
- const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime");function r({className:r,...i}){return(0,n.jsx)(t.Switch.Root,{"data-slot":`switch`,className:e.cn(`inline-flex h-4 w-7 shrink-0 cursor-pointer items-center rounded-full border border-doom-border bg-doom-deep p-px outline-none transition-colors focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[state=checked]:border-doom-blue data-[state=checked]:bg-doom-tint-blue`,r),...i,children:(0,n.jsx)(t.Switch.Thumb,{"data-slot":`switch-thumb`,className:`block h-3 w-3 rounded-full bg-doom-faint transition-transform data-[state=checked]:translate-x-3 data-[state=checked]:bg-doom-blue`})})}exports.Switch=r;
1
+ const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime");function r({className:r,...i}){return/* @__PURE__ */ (0,n.jsx)(t.Switch.Root,{"data-slot":`switch`,className:e.cn(`inline-flex h-4 w-7 shrink-0 cursor-pointer items-center rounded-full border border-doom-border bg-doom-deep p-px outline-none transition-colors focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[state=checked]:border-doom-blue data-[state=checked]:bg-doom-tint-blue`,r),...i,children:/* @__PURE__ */ (0,n.jsx)(t.Switch.Thumb,{"data-slot":`switch-thumb`,className:`block h-3 w-3 rounded-full bg-doom-faint transition-transform data-[state=checked]:translate-x-3 data-[state=checked]:bg-doom-blue`})})}exports.Switch=r;
2
2
  //# sourceMappingURL=Switch.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.cjs","names":["SwitchPrimitive","cn"],"sources":["../../../src/components/Switch.tsx"],"sourcesContent":["import { Switch as SwitchPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/** An on/off track; use it where the change takes effect immediately, a checkbox where it needs a save. */\nexport function Switch({ className, ...props }: ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n 'inline-flex h-4 w-7 shrink-0 cursor-pointer items-center rounded-full border border-doom-border bg-doom-deep p-px outline-none transition-colors focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[state=checked]:border-doom-blue data-[state=checked]:bg-doom-tint-blue',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"block h-3 w-3 rounded-full bg-doom-faint transition-transform data-[state=checked]:translate-x-3 data-[state=checked]:bg-doom-blue\"\n />\n </SwitchPrimitive.Root>\n );\n}\n"],"mappings":"0FAKA,SAAgB,EAAO,CAAE,YAAW,GAAG,GAAsD,CAC3F,OACE,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAgB,KAAjB,CACE,YAAU,SACV,UAAWC,EAAAA,GACT,sUACA,CACF,EACA,GAAI,EAEJ,UAAA,EAAA,EAAA,IAAA,CAACD,EAAAA,OAAgB,MAAjB,CACE,YAAU,eACV,UAAU,oIACX,CAAA,CACmB,CAAA,CAE1B"}
1
+ {"version":3,"file":"Switch.cjs","names":["SwitchPrimitive","cn"],"sources":["../../../src/components/Switch.tsx"],"sourcesContent":["import { Switch as SwitchPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '../lib/cn';\n\n/** An on/off track; use it where the change takes effect immediately, a checkbox where it needs a save. */\nexport function Switch({ className, ...props }: ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n 'inline-flex h-4 w-7 shrink-0 cursor-pointer items-center rounded-full border border-doom-border bg-doom-deep p-px outline-none transition-colors focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[state=checked]:border-doom-blue data-[state=checked]:bg-doom-tint-blue',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"block h-3 w-3 rounded-full bg-doom-faint transition-transform data-[state=checked]:translate-x-3 data-[state=checked]:bg-doom-blue\"\n />\n </SwitchPrimitive.Root>\n );\n}\n"],"mappings":"0FAMA,SAAgB,EAAO,CAAE,YAAW,GAAG,GAAsD,CAC3F,MACE,iBAAA,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAgB,KAAjB,CACE,YAAU,SACV,UAAWC,EAAAA,GACT,sUACA,CACF,EACA,GAAI,EAEJ,SAAA,iBAAA,EAAA,EAAA,IAAA,CAACD,EAAAA,OAAgB,MAAjB,CACE,YAAU,eACV,UAAU,oIACX,CAAA,CACmB,CAAA,CAE1B"}
@@ -2,7 +2,7 @@ import { Switch } from "radix-ui";
2
2
  import { ComponentProps } from "react";
3
3
  //#region src/components/Switch.d.ts
4
4
  /** An on/off track; use it where the change takes effect immediately, a checkbox where it needs a save. */
5
- declare function Switch$1({ className, ...props }: ComponentProps<typeof Switch.Root>): import("react/jsx-runtime").JSX.Element;
5
+ declare function Switch$1({ className, ...props }: ComponentProps<typeof Switch.Root>): import("react").JSX.Element;
6
6
  //#endregion
7
7
  export { Switch$1 as Switch };
8
8
  //# sourceMappingURL=Switch.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.d.mts","names":[],"sources":["../../../src/components/Switch.tsx"],"mappings":";;;;iBAKgB,WAAS,cAAc,SAAS,sBAAsB,OAAgB,oCAAK,IAAA"}
1
+ {"version":3,"file":"Switch.d.mts","names":[],"sources":["../../../src/components/Switch.tsx"],"mappings":";;;;iBAMgB,WAAS,cAAc,SAAS,sBAAsB,OAAgB,wBAAK,IAAA"}
@@ -1,2 +1,2 @@
1
- import{cn as e}from"../lib/cn.mjs";import{Switch as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";function r({className:r,...i}){return n(t.Root,{"data-slot":`switch`,className:e(`inline-flex h-4 w-7 shrink-0 cursor-pointer items-center rounded-full border border-doom-border bg-doom-deep p-px outline-none transition-colors focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[state=checked]:border-doom-blue data-[state=checked]:bg-doom-tint-blue`,r),...i,children:n(t.Thumb,{"data-slot":`switch-thumb`,className:`block h-3 w-3 rounded-full bg-doom-faint transition-transform data-[state=checked]:translate-x-3 data-[state=checked]:bg-doom-blue`})})}export{r as Switch};
1
+ import{cn as e}from"../lib/cn.mjs";import{Switch as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";function r({className:r,...i}){return/* @__PURE__ */ n(t.Root,{"data-slot":`switch`,className:e(`inline-flex h-4 w-7 shrink-0 cursor-pointer items-center rounded-full border border-doom-border bg-doom-deep p-px outline-none transition-colors focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[state=checked]:border-doom-blue data-[state=checked]:bg-doom-tint-blue`,r),...i,children:/* @__PURE__ */ n(t.Thumb,{"data-slot":`switch-thumb`,className:`block h-3 w-3 rounded-full bg-doom-faint transition-transform data-[state=checked]:translate-x-3 data-[state=checked]:bg-doom-blue`})})}export{r as Switch};
2
2
  //# sourceMappingURL=Switch.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.mjs","names":["Switch","SwitchPrimitive"],"sources":["../../../src/components/Switch.tsx"],"sourcesContent":["import { Switch as SwitchPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\nimport { cn } from '../lib/cn.ts';\n\n/** An on/off track; use it where the change takes effect immediately, a checkbox where it needs a save. */\nexport function Switch({ className, ...props }: ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n 'inline-flex h-4 w-7 shrink-0 cursor-pointer items-center rounded-full border border-doom-border bg-doom-deep p-px outline-none transition-colors focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[state=checked]:border-doom-blue data-[state=checked]:bg-doom-tint-blue',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"block h-3 w-3 rounded-full bg-doom-faint transition-transform data-[state=checked]:translate-x-3 data-[state=checked]:bg-doom-blue\"\n />\n </SwitchPrimitive.Root>\n );\n}\n"],"mappings":"6GAKA,SAAgBA,EAAO,CAAE,YAAW,GAAG,GAAsD,CAC3F,OACE,EAACC,EAAgB,KAAjB,CACE,YAAU,SACV,UAAW,EACT,sUACA,CACF,EACA,GAAI,EAEJ,SAAA,EAACA,EAAgB,MAAjB,CACE,YAAU,eACV,UAAU,oIACX,CAAA,CACmB,CAAA,CAE1B"}
1
+ {"version":3,"file":"Switch.mjs","names":["Switch","SwitchPrimitive"],"sources":["../../../src/components/Switch.tsx"],"sourcesContent":["import { Switch as SwitchPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '../lib/cn';\n\n/** An on/off track; use it where the change takes effect immediately, a checkbox where it needs a save. */\nexport function Switch({ className, ...props }: ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n 'inline-flex h-4 w-7 shrink-0 cursor-pointer items-center rounded-full border border-doom-border bg-doom-deep p-px outline-none transition-colors focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 data-[state=checked]:border-doom-blue data-[state=checked]:bg-doom-tint-blue',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"block h-3 w-3 rounded-full bg-doom-faint transition-transform data-[state=checked]:translate-x-3 data-[state=checked]:bg-doom-blue\"\n />\n </SwitchPrimitive.Root>\n );\n}\n"],"mappings":"6GAMA,SAAgBA,EAAO,CAAE,YAAW,GAAG,GAAsD,CAC3F,MACE,kBAACC,EAAgB,KAAjB,CACE,YAAU,SACV,UAAW,EACT,sUACA,CACF,EACA,GAAI,EAEJ,SAAA,kBAACA,EAAgB,MAAjB,CACE,YAAU,eACV,UAAU,oIACX,CAAA,CACmB,CAAA,CAE1B"}
@@ -0,0 +1,4 @@
1
+ const e=require("../lib/cn.cjs"),t=require("../lib/syntaxHighlight.cjs");let n=require("react/jsx-runtime"),r=require("react");function i(e,n={}){let{path:i,grammar:a}=n,o=a??t.detectGrammar({path:i,text:e}),s=`${o??``}\u0000${e}`,[c,l]=(0,r.useState)(void 0);return(0,r.useEffect)(()=>{if(o===void 0)return;let n=!0;return t.highlightToLines(e,o).then(e=>{n&&e!==void 0&&l({signature:s,lines:e})},()=>void 0),()=>{n=!1}},[e,o,s]),c?.signature===s?c.lines:void 0}function a({spans:e,text:r,...i}){return e===void 0?/* @__PURE__ */ (0,n.jsx)(`span`,{...i,children:r}):/* @__PURE__ */ (0,n.jsx)(`span`,{...i,children:e.map((e,r)=>/* @__PURE__ */ (0,n.jsx)(`span`,{style:t.syntaxStyleOf(e.token),children:e.text},r))})}function o({className:t,text:o,path:s,grammar:c,...l}){let u=i(o,{path:s,grammar:c}),d=o.split(`
2
+ `);return/* @__PURE__ */ (0,n.jsx)(`pre`,{"data-slot":`syntax-text`,"data-highlighted":u!==void 0,className:e.cn(`whitespace-pre-wrap break-words [overflow-wrap:anywhere] font-mono`,t),...l,children:(u??d).map((e,t)=>/* @__PURE__ */ (0,n.jsxs)(r.Fragment,{children:[t>0?`
3
+ `:null,/* @__PURE__ */ (0,n.jsx)(a,{spans:typeof e==`string`?void 0:e,text:typeof e==`string`?e:``})]},t))})}exports.SyntaxLine=a,exports.SyntaxText=o,exports.useSyntaxLines=i;
4
+ //# sourceMappingURL=SyntaxText.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyntaxText.cjs","names":["detectGrammar","useState","highlightToLines","syntaxStyleOf","cn","Fragment"],"sources":["../../../src/components/SyntaxText.tsx"],"sourcesContent":["import { type ComponentProps, Fragment, useEffect, useState } from 'react';\n\nimport { cn } from '../lib/cn';\nimport type { GrammarKey } from '../lib/editorLanguage';\nimport {\n detectGrammar,\n highlightToLines,\n type SyntaxLines,\n type SyntaxSpan,\n syntaxStyleOf,\n} from '../lib/syntaxHighlight';\n\n/**\n * Read-only code with the editor's colours.\n *\n * Two shapes over one hook, because the cards need both: `SyntaxText` for a\n * block of code that owns its own element, and `SyntaxLine` for a card that\n * already renders a line at a time next to a gutter. Highlighting is\n * asynchronous, so both show the plain text first and swap in spans once the\n * grammar has loaded; a result that never highlights simply stays plain.\n *\n * DESIGN PATTERNS:\n * - Plain text is the fallback, never a spinner: colour is decoration.\n * - The hook keys on the text, so a streaming result re-highlights as it grows.\n *\n * AVOID:\n * - Highlighting one line at a time. A line is not a parse unit; pass the whole\n * block to `useSyntaxLines` and render the line you want out of the result.\n */\n\nexport interface SyntaxQuery {\n /** The file the code came from, when the tool knows one. */\n path?: string | undefined;\n /** Skips detection when the caller already knows the grammar. */\n grammar?: GrammarKey | undefined;\n}\n\n/**\n * Colours `text`, or hands back undefined while that is still loading and for\n * anything with no grammar. Rendering the result is the caller's business.\n *\n * The finished spans are stored with the text they belong to, so text that has\n * changed since reads as plain during render rather than showing the previous\n * result's colours over the new lines.\n */\nexport function useSyntaxLines(text: string, query: SyntaxQuery = {}): SyntaxLines | undefined {\n const { path, grammar } = query;\n const key = grammar ?? detectGrammar({ path, text });\n const signature = `${key ?? ''}\\u0000${text}`;\n const [done, setDone] = useState<{ signature: string; lines: SyntaxLines } | undefined>(undefined);\n\n useEffect(() => {\n if (key === undefined) return;\n let live = true;\n void highlightToLines(text, key).then(\n (result) => {\n if (live && result !== undefined) setDone({ signature, lines: result });\n },\n // A grammar chunk that fails to load leaves the plain text in place: the\n // card stays readable and the network failure is the browser's to report.\n () => undefined,\n );\n return () => {\n live = false;\n };\n }, [text, key, signature]);\n\n return done?.signature === signature ? done.lines : undefined;\n}\n\nexport interface SyntaxLineProps extends Omit<ComponentProps<'span'>, 'children'> {\n /** The line's spans from `useSyntaxLines`, or undefined to show `text` plain. */\n spans?: readonly SyntaxSpan[] | undefined;\n text: string;\n}\n\n/** One line: coloured when its spans are in, the plain text until then. */\nexport function SyntaxLine({ spans, text, ...props }: SyntaxLineProps) {\n if (spans === undefined) return <span {...props}>{text}</span>;\n return (\n <span {...props}>\n {spans.map((span, index) => (\n <span key={index} style={syntaxStyleOf(span.token)}>\n {span.text}\n </span>\n ))}\n </span>\n );\n}\n\nexport interface SyntaxTextProps extends Omit<ComponentProps<'pre'>, 'children'>, SyntaxQuery {\n text: string;\n}\n\n/** A block of code, wrapped rather than clipped, coloured when a grammar is known. */\nexport function SyntaxText({ className, text, path, grammar, ...props }: SyntaxTextProps) {\n const lines = useSyntaxLines(text, { path, grammar });\n const plain = text.split('\\n');\n return (\n <pre\n data-slot=\"syntax-text\"\n data-highlighted={lines !== undefined}\n className={cn('whitespace-pre-wrap break-words [overflow-wrap:anywhere] font-mono', className)}\n {...props}\n >\n {(lines ?? plain).map((entry, index) => (\n <Fragment key={index}>\n {index > 0 ? '\\n' : null}\n <SyntaxLine\n spans={typeof entry === 'string' ? undefined : entry}\n text={typeof entry === 'string' ? entry : ''}\n />\n </Fragment>\n ))}\n </pre>\n );\n}\n"],"mappings":"+HA6CA,SAAgB,EAAe,EAAc,EAAqB,CAAC,EAA4B,CAC7F,GAAM,CAAE,OAAM,WAAY,EACpB,EAAM,GAAWA,EAAAA,cAAc,CAAE,OAAM,MAAK,CAAC,EAC7C,EAAY,GAAG,GAAO,GAAG,QAAQ,IACjC,CAAC,EAAM,IAAA,EAAWC,EAAAA,SAAAA,CAAgE,IAAA,EAAS,EAkBjG,OAhBA,EAAA,EAAA,UAAA,KAAgB,CACd,GAAI,IAAQ,IAAA,GAAW,OACvB,IAAI,EAAO,GASX,OARA,EAAKC,iBAAiB,EAAM,CAAG,CAAC,CAAC,KAC9B,GAAW,CACN,GAAQ,IAAW,IAAA,IAAW,EAAQ,CAAE,YAAW,MAAO,CAAO,CAAC,CACxE,MAGM,IAAA,EACR,MACa,CACX,EAAO,EACT,CACF,EAAG,CAAC,EAAM,EAAK,CAAS,CAAC,EAElB,GAAM,YAAc,EAAY,EAAK,MAAQ,IAAA,EACtD,CASA,SAAgB,EAAW,CAAE,QAAO,OAAM,GAAG,GAA0B,CAErE,OADI,IAAU,IAAA,GAAkB,iBAAA,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,GAAI,EAAQ,SAAA,CAAW,CAAA,EAE3D,iBAAA,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,GAAI,EACP,SAAA,EAAM,KAAK,EAAM,IAChB,iBAAA,EAAA,EAAA,IAAA,CAAC,OAAD,CAAkB,MAAOC,EAAAA,cAAc,EAAK,KAAK,EAC9C,SAAA,EAAK,IACF,EAFK,CAEL,CACP,CACG,CAAA,CAEV,CAOA,SAAgB,EAAW,CAAE,YAAW,OAAM,OAAM,UAAS,GAAG,GAA0B,CACxF,IAAM,EAAQ,EAAe,EAAM,CAAE,OAAM,SAAQ,CAAC,EAC9C,EAAQ,EAAK,MAAM;CAAI,EAC7B,MACE,iBAAA,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,YAAU,cACV,mBAAkB,IAAU,IAAA,GAC5B,UAAWC,EAAAA,GAAG,qEAAsE,CAAS,EAC7F,GAAI,EAEF,UAAA,GAAS,EAAA,CAAO,KAAK,EAAO,IAC5B,iBAAA,EAAA,EAAA,KAAA,CAACC,EAAAA,SAAD,CAAA,SAAA,CACG,EAAQ,EAAI;EAAO,KACpB,iBAAA,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,MAAO,OAAO,GAAU,SAAW,IAAA,GAAY,EAC/C,KAAM,OAAO,GAAU,SAAW,EAAQ,EAC3C,CAAA,CACO,CAAA,EANK,CAML,CACX,CACE,CAAA,CAET"}