@agimon-ai/doompi-web-components 0.0.1-alpha.37 → 0.0.1-alpha.39

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 (339) hide show
  1. package/dist/index.cjs +1 -1
  2. package/dist/index.d.mts +2 -1
  3. package/dist/index.mjs +1 -1
  4. package/dist/src/components/Accordion.cjs +1 -1
  5. package/dist/src/components/Accordion.cjs.map +1 -1
  6. package/dist/src/components/Accordion.mjs +1 -1
  7. package/dist/src/components/Accordion.mjs.map +1 -1
  8. package/dist/src/components/AnsiText.cjs +3 -3
  9. package/dist/src/components/AnsiText.cjs.map +1 -1
  10. package/dist/src/components/AnsiText.mjs +3 -3
  11. package/dist/src/components/AnsiText.mjs.map +1 -1
  12. package/dist/src/components/Avatar.cjs +1 -1
  13. package/dist/src/components/Avatar.cjs.map +1 -1
  14. package/dist/src/components/Avatar.mjs +1 -1
  15. package/dist/src/components/Avatar.mjs.map +1 -1
  16. package/dist/src/components/Badge.cjs +1 -1
  17. package/dist/src/components/Badge.cjs.map +1 -1
  18. package/dist/src/components/Badge.mjs +1 -1
  19. package/dist/src/components/Badge.mjs.map +1 -1
  20. package/dist/src/components/Breadcrumb.cjs +1 -1
  21. package/dist/src/components/Breadcrumb.cjs.map +1 -1
  22. package/dist/src/components/Breadcrumb.mjs +1 -1
  23. package/dist/src/components/Breadcrumb.mjs.map +1 -1
  24. package/dist/src/components/Button.cjs +1 -1
  25. package/dist/src/components/Button.cjs.map +1 -1
  26. package/dist/src/components/Button.mjs +1 -1
  27. package/dist/src/components/Button.mjs.map +1 -1
  28. package/dist/src/components/Checkbox.cjs +1 -1
  29. package/dist/src/components/Checkbox.cjs.map +1 -1
  30. package/dist/src/components/Checkbox.mjs +1 -1
  31. package/dist/src/components/Checkbox.mjs.map +1 -1
  32. package/dist/src/components/CodeBlock.cjs +1 -1
  33. package/dist/src/components/CodeBlock.cjs.map +1 -1
  34. package/dist/src/components/CodeBlock.mjs +1 -1
  35. package/dist/src/components/CodeBlock.mjs.map +1 -1
  36. package/dist/src/components/CodeEditor.cjs +1 -1
  37. package/dist/src/components/CodeEditor.cjs.map +1 -1
  38. package/dist/src/components/CodeEditor.mjs +1 -1
  39. package/dist/src/components/CodeEditor.mjs.map +1 -1
  40. package/dist/src/components/CodeEditorView.cjs +1 -1
  41. package/dist/src/components/CodeEditorView.cjs.map +1 -1
  42. package/dist/src/components/CodeEditorView.mjs +1 -1
  43. package/dist/src/components/CodeEditorView.mjs.map +1 -1
  44. package/dist/src/components/Collapsible.cjs +1 -1
  45. package/dist/src/components/Collapsible.cjs.map +1 -1
  46. package/dist/src/components/Collapsible.mjs +1 -1
  47. package/dist/src/components/Collapsible.mjs.map +1 -1
  48. package/dist/src/components/Command.cjs +1 -1
  49. package/dist/src/components/Command.cjs.map +1 -1
  50. package/dist/src/components/Command.mjs +1 -1
  51. package/dist/src/components/Command.mjs.map +1 -1
  52. package/dist/src/components/CopyButton.cjs +1 -1
  53. package/dist/src/components/CopyButton.cjs.map +1 -1
  54. package/dist/src/components/CopyButton.mjs +1 -1
  55. package/dist/src/components/CopyButton.mjs.map +1 -1
  56. package/dist/src/components/Dialog.cjs +1 -1
  57. package/dist/src/components/Dialog.cjs.map +1 -1
  58. package/dist/src/components/Dialog.mjs +1 -1
  59. package/dist/src/components/Dialog.mjs.map +1 -1
  60. package/dist/src/components/Dot.cjs +1 -1
  61. package/dist/src/components/Dot.cjs.map +1 -1
  62. package/dist/src/components/Dot.mjs +1 -1
  63. package/dist/src/components/Dot.mjs.map +1 -1
  64. package/dist/src/components/Drawer.cjs +2 -0
  65. package/dist/src/components/Drawer.cjs.map +1 -0
  66. package/dist/src/components/Drawer.d.mts +17 -0
  67. package/dist/src/components/Drawer.d.mts.map +1 -0
  68. package/dist/src/components/Drawer.mjs +2 -0
  69. package/dist/src/components/Drawer.mjs.map +1 -0
  70. package/dist/src/components/DropdownMenu.cjs +1 -1
  71. package/dist/src/components/DropdownMenu.cjs.map +1 -1
  72. package/dist/src/components/DropdownMenu.mjs +1 -1
  73. package/dist/src/components/DropdownMenu.mjs.map +1 -1
  74. package/dist/src/components/EmptyState.cjs +1 -1
  75. package/dist/src/components/EmptyState.cjs.map +1 -1
  76. package/dist/src/components/EmptyState.mjs +1 -1
  77. package/dist/src/components/EmptyState.mjs.map +1 -1
  78. package/dist/src/components/HashlineLines.cjs +1 -1
  79. package/dist/src/components/HashlineLines.cjs.map +1 -1
  80. package/dist/src/components/HashlineLines.mjs +1 -1
  81. package/dist/src/components/HashlineLines.mjs.map +1 -1
  82. package/dist/src/components/Input.cjs +1 -1
  83. package/dist/src/components/Input.cjs.map +1 -1
  84. package/dist/src/components/Input.mjs +1 -1
  85. package/dist/src/components/Input.mjs.map +1 -1
  86. package/dist/src/components/Kbd.cjs +1 -1
  87. package/dist/src/components/Kbd.cjs.map +1 -1
  88. package/dist/src/components/Kbd.mjs +1 -1
  89. package/dist/src/components/Kbd.mjs.map +1 -1
  90. package/dist/src/components/Label.cjs +1 -1
  91. package/dist/src/components/Label.cjs.map +1 -1
  92. package/dist/src/components/Label.mjs +1 -1
  93. package/dist/src/components/Label.mjs.map +1 -1
  94. package/dist/src/components/Markdown.cjs +1 -1
  95. package/dist/src/components/Markdown.cjs.map +1 -1
  96. package/dist/src/components/Markdown.mjs +1 -1
  97. package/dist/src/components/Markdown.mjs.map +1 -1
  98. package/dist/src/components/MediaPreview.cjs +1 -1
  99. package/dist/src/components/MediaPreview.cjs.map +1 -1
  100. package/dist/src/components/MediaPreview.mjs +1 -1
  101. package/dist/src/components/MediaPreview.mjs.map +1 -1
  102. package/dist/src/components/MermaidDiagram.cjs +1 -1
  103. package/dist/src/components/MermaidDiagram.cjs.map +1 -1
  104. package/dist/src/components/MermaidDiagram.mjs +1 -1
  105. package/dist/src/components/MermaidDiagram.mjs.map +1 -1
  106. package/dist/src/components/MessageItem.cjs +1 -1
  107. package/dist/src/components/MessageItem.cjs.map +1 -1
  108. package/dist/src/components/MessageItem.mjs +1 -1
  109. package/dist/src/components/MessageItem.mjs.map +1 -1
  110. package/dist/src/components/MessageLines.cjs +1 -1
  111. package/dist/src/components/MessageLines.cjs.map +1 -1
  112. package/dist/src/components/MessageLines.mjs +1 -1
  113. package/dist/src/components/MessageLines.mjs.map +1 -1
  114. package/dist/src/components/OptionList.cjs +1 -1
  115. package/dist/src/components/OptionList.cjs.map +1 -1
  116. package/dist/src/components/OptionList.mjs +1 -1
  117. package/dist/src/components/OptionList.mjs.map +1 -1
  118. package/dist/src/components/Panel.cjs +1 -1
  119. package/dist/src/components/Panel.cjs.map +1 -1
  120. package/dist/src/components/Panel.mjs +1 -1
  121. package/dist/src/components/Panel.mjs.map +1 -1
  122. package/dist/src/components/PdfPreview.cjs +1 -1
  123. package/dist/src/components/PdfPreview.cjs.map +1 -1
  124. package/dist/src/components/PdfPreview.mjs +1 -1
  125. package/dist/src/components/PdfPreview.mjs.map +1 -1
  126. package/dist/src/components/Popover.cjs +1 -1
  127. package/dist/src/components/Popover.cjs.map +1 -1
  128. package/dist/src/components/Popover.mjs +1 -1
  129. package/dist/src/components/Popover.mjs.map +1 -1
  130. package/dist/src/components/Progress.cjs +1 -1
  131. package/dist/src/components/Progress.cjs.map +1 -1
  132. package/dist/src/components/Progress.mjs +1 -1
  133. package/dist/src/components/Progress.mjs.map +1 -1
  134. package/dist/src/components/RadioGroup.cjs +1 -1
  135. package/dist/src/components/RadioGroup.cjs.map +1 -1
  136. package/dist/src/components/RadioGroup.mjs +1 -1
  137. package/dist/src/components/RadioGroup.mjs.map +1 -1
  138. package/dist/src/components/ScrollArea.cjs +1 -1
  139. package/dist/src/components/ScrollArea.cjs.map +1 -1
  140. package/dist/src/components/ScrollArea.mjs +1 -1
  141. package/dist/src/components/ScrollArea.mjs.map +1 -1
  142. package/dist/src/components/SectionLabel.cjs +1 -1
  143. package/dist/src/components/SectionLabel.cjs.map +1 -1
  144. package/dist/src/components/SectionLabel.mjs +1 -1
  145. package/dist/src/components/SectionLabel.mjs.map +1 -1
  146. package/dist/src/components/Select.cjs +1 -1
  147. package/dist/src/components/Select.cjs.map +1 -1
  148. package/dist/src/components/Select.mjs +1 -1
  149. package/dist/src/components/Select.mjs.map +1 -1
  150. package/dist/src/components/Separator.cjs +1 -1
  151. package/dist/src/components/Separator.cjs.map +1 -1
  152. package/dist/src/components/Separator.mjs +1 -1
  153. package/dist/src/components/Separator.mjs.map +1 -1
  154. package/dist/src/components/Sheet.cjs +1 -1
  155. package/dist/src/components/Sheet.cjs.map +1 -1
  156. package/dist/src/components/Sheet.mjs +1 -1
  157. package/dist/src/components/Sheet.mjs.map +1 -1
  158. package/dist/src/components/Skeleton.cjs +1 -1
  159. package/dist/src/components/Skeleton.cjs.map +1 -1
  160. package/dist/src/components/Skeleton.mjs +1 -1
  161. package/dist/src/components/Skeleton.mjs.map +1 -1
  162. package/dist/src/components/Spinner.cjs +1 -1
  163. package/dist/src/components/Spinner.cjs.map +1 -1
  164. package/dist/src/components/Spinner.mjs +1 -1
  165. package/dist/src/components/Spinner.mjs.map +1 -1
  166. package/dist/src/components/StatusBadge.cjs +1 -1
  167. package/dist/src/components/StatusBadge.cjs.map +1 -1
  168. package/dist/src/components/StatusBadge.mjs +1 -1
  169. package/dist/src/components/StatusBadge.mjs.map +1 -1
  170. package/dist/src/components/StreamCursor.cjs +1 -1
  171. package/dist/src/components/StreamCursor.cjs.map +1 -1
  172. package/dist/src/components/StreamCursor.mjs +1 -1
  173. package/dist/src/components/StreamCursor.mjs.map +1 -1
  174. package/dist/src/components/Switch.cjs +1 -1
  175. package/dist/src/components/Switch.cjs.map +1 -1
  176. package/dist/src/components/Switch.mjs +1 -1
  177. package/dist/src/components/Switch.mjs.map +1 -1
  178. package/dist/src/components/SyntaxText.cjs +3 -3
  179. package/dist/src/components/SyntaxText.cjs.map +1 -1
  180. package/dist/src/components/SyntaxText.mjs +3 -3
  181. package/dist/src/components/SyntaxText.mjs.map +1 -1
  182. package/dist/src/components/Tabs.cjs +1 -1
  183. package/dist/src/components/Tabs.cjs.map +1 -1
  184. package/dist/src/components/Tabs.mjs +1 -1
  185. package/dist/src/components/Tabs.mjs.map +1 -1
  186. package/dist/src/components/TerminalView.cjs +1 -1
  187. package/dist/src/components/TerminalView.cjs.map +1 -1
  188. package/dist/src/components/TerminalView.mjs +1 -1
  189. package/dist/src/components/TerminalView.mjs.map +1 -1
  190. package/dist/src/components/Textarea.cjs +1 -1
  191. package/dist/src/components/Textarea.cjs.map +1 -1
  192. package/dist/src/components/Textarea.mjs +1 -1
  193. package/dist/src/components/Textarea.mjs.map +1 -1
  194. package/dist/src/components/Toast.cjs +1 -1
  195. package/dist/src/components/Toast.cjs.map +1 -1
  196. package/dist/src/components/Toast.mjs +1 -1
  197. package/dist/src/components/Toast.mjs.map +1 -1
  198. package/dist/src/components/ToolPathLink.cjs +1 -1
  199. package/dist/src/components/ToolPathLink.cjs.map +1 -1
  200. package/dist/src/components/ToolPathLink.mjs +1 -1
  201. package/dist/src/components/ToolPathLink.mjs.map +1 -1
  202. package/dist/src/components/Tooltip.cjs +1 -1
  203. package/dist/src/components/Tooltip.cjs.map +1 -1
  204. package/dist/src/components/Tooltip.mjs +1 -1
  205. package/dist/src/components/Tooltip.mjs.map +1 -1
  206. package/package.json +11 -11
  207. package/dist/components/Accordion.d.cts +0 -11
  208. package/dist/components/Accordion.d.cts.map +0 -1
  209. package/dist/components/AnsiText.d.cts +0 -16
  210. package/dist/components/AnsiText.d.cts.map +0 -1
  211. package/dist/components/Avatar.d.cts +0 -10
  212. package/dist/components/Avatar.d.cts.map +0 -1
  213. package/dist/components/Badge.d.cts +0 -17
  214. package/dist/components/Badge.d.cts.map +0 -1
  215. package/dist/components/Breadcrumb.d.cts +0 -36
  216. package/dist/components/Breadcrumb.d.cts.map +0 -1
  217. package/dist/components/Button.d.cts +0 -24
  218. package/dist/components/Button.d.cts.map +0 -1
  219. package/dist/components/Checkbox.d.cts +0 -8
  220. package/dist/components/Checkbox.d.cts.map +0 -1
  221. package/dist/components/CodeEditor.d.cts +0 -5
  222. package/dist/components/CodeEditor.d.cts.map +0 -1
  223. package/dist/components/Collapsible.d.cts +0 -10
  224. package/dist/components/Collapsible.d.cts.map +0 -1
  225. package/dist/components/Command.d.cts +0 -41
  226. package/dist/components/Command.d.cts.map +0 -1
  227. package/dist/components/Dialog.d.cts +0 -39
  228. package/dist/components/Dialog.d.cts.map +0 -1
  229. package/dist/components/Dot.d.cts +0 -15
  230. package/dist/components/Dot.d.cts.map +0 -1
  231. package/dist/components/DropdownMenu.d.cts +0 -34
  232. package/dist/components/DropdownMenu.d.cts.map +0 -1
  233. package/dist/components/EmptyState.d.cts +0 -17
  234. package/dist/components/EmptyState.d.cts.map +0 -1
  235. package/dist/components/HashlineLines.d.cts +0 -23
  236. package/dist/components/HashlineLines.d.cts.map +0 -1
  237. package/dist/components/Input.d.cts +0 -19
  238. package/dist/components/Input.d.cts.map +0 -1
  239. package/dist/components/Kbd.d.cts +0 -6
  240. package/dist/components/Kbd.d.cts.map +0 -1
  241. package/dist/components/Label.d.cts +0 -8
  242. package/dist/components/Label.d.cts.map +0 -1
  243. package/dist/components/Markdown.d.cts +0 -17
  244. package/dist/components/Markdown.d.cts.map +0 -1
  245. package/dist/components/MediaPreview.d.cts +0 -61
  246. package/dist/components/MediaPreview.d.cts.map +0 -1
  247. package/dist/components/MessageItem.d.cts +0 -102
  248. package/dist/components/MessageItem.d.cts.map +0 -1
  249. package/dist/components/MessageLines.d.cts +0 -23
  250. package/dist/components/MessageLines.d.cts.map +0 -1
  251. package/dist/components/OptionList.d.cts +0 -49
  252. package/dist/components/OptionList.d.cts.map +0 -1
  253. package/dist/components/Panel.d.cts +0 -14
  254. package/dist/components/Panel.d.cts.map +0 -1
  255. package/dist/components/PdfPreview.d.cts +0 -52
  256. package/dist/components/PdfPreview.d.cts.map +0 -1
  257. package/dist/components/Popover.d.cts +0 -19
  258. package/dist/components/Popover.d.cts.map +0 -1
  259. package/dist/components/Progress.d.cts +0 -8
  260. package/dist/components/Progress.d.cts.map +0 -1
  261. package/dist/components/RadioGroup.d.cts +0 -15
  262. package/dist/components/RadioGroup.d.cts.map +0 -1
  263. package/dist/components/ScrollArea.d.cts +0 -13
  264. package/dist/components/ScrollArea.d.cts.map +0 -1
  265. package/dist/components/SectionLabel.d.cts +0 -6
  266. package/dist/components/SectionLabel.d.cts.map +0 -1
  267. package/dist/components/Select.d.cts +0 -19
  268. package/dist/components/Select.d.cts.map +0 -1
  269. package/dist/components/Separator.d.cts +0 -13
  270. package/dist/components/Separator.d.cts.map +0 -1
  271. package/dist/components/Sheet.d.cts +0 -35
  272. package/dist/components/Sheet.d.cts.map +0 -1
  273. package/dist/components/Skeleton.d.cts +0 -10
  274. package/dist/components/Skeleton.d.cts.map +0 -1
  275. package/dist/components/Spinner.d.cts +0 -14
  276. package/dist/components/Spinner.d.cts.map +0 -1
  277. package/dist/components/StatusBadge.d.cts +0 -23
  278. package/dist/components/StatusBadge.d.cts.map +0 -1
  279. package/dist/components/StreamCursor.d.cts +0 -6
  280. package/dist/components/StreamCursor.d.cts.map +0 -1
  281. package/dist/components/Switch.d.cts +0 -8
  282. package/dist/components/Switch.d.cts.map +0 -1
  283. package/dist/components/SyntaxText.d.cts +0 -50
  284. package/dist/components/SyntaxText.d.cts.map +0 -1
  285. package/dist/components/Tabs.d.cts +0 -36
  286. package/dist/components/Tabs.d.cts.map +0 -1
  287. package/dist/components/TerminalView.d.cts +0 -31
  288. package/dist/components/TerminalView.d.cts.map +0 -1
  289. package/dist/components/Textarea.d.cts +0 -9
  290. package/dist/components/Textarea.d.cts.map +0 -1
  291. package/dist/components/Toast.d.cts +0 -24
  292. package/dist/components/Toast.d.cts.map +0 -1
  293. package/dist/components/ToolPathLink.d.cts +0 -22
  294. package/dist/components/ToolPathLink.d.cts.map +0 -1
  295. package/dist/components/Tooltip.d.cts +0 -11
  296. package/dist/components/Tooltip.d.cts.map +0 -1
  297. package/dist/icons/icons.d.cts +0 -2
  298. package/dist/index.d.cts +0 -59
  299. package/dist/lib/ansiSpans.d.cts +0 -42
  300. package/dist/lib/ansiSpans.d.cts.map +0 -1
  301. package/dist/lib/cn.d.cts +0 -6
  302. package/dist/lib/cn.d.cts.map +0 -1
  303. package/dist/lib/collapse.d.cts +0 -14
  304. package/dist/lib/collapse.d.cts.map +0 -1
  305. package/dist/lib/editorLanguage.d.cts +0 -21
  306. package/dist/lib/editorLanguage.d.cts.map +0 -1
  307. package/dist/lib/editorTheme.d.cts +0 -76
  308. package/dist/lib/editorTheme.d.cts.map +0 -1
  309. package/dist/lib/hashlineHighlight.d.cts +0 -30
  310. package/dist/lib/hashlineHighlight.d.cts.map +0 -1
  311. package/dist/lib/hashlineView.d.cts +0 -60
  312. package/dist/lib/hashlineView.d.cts.map +0 -1
  313. package/dist/lib/media.d.cts +0 -11
  314. package/dist/lib/media.d.cts.map +0 -1
  315. package/dist/lib/optionList.d.cts +0 -21
  316. package/dist/lib/optionList.d.cts.map +0 -1
  317. package/dist/lib/syntaxHighlight.d.cts +0 -54
  318. package/dist/lib/syntaxHighlight.d.cts.map +0 -1
  319. package/dist/lib/tone.d.cts +0 -25
  320. package/dist/lib/tone.d.cts.map +0 -1
  321. package/dist/theme/apply.d.cts +0 -25
  322. package/dist/theme/apply.d.cts.map +0 -1
  323. package/dist/theme/builtinThemes.d.cts +0 -11
  324. package/dist/theme/builtinThemes.d.cts.map +0 -1
  325. package/dist/theme/derive.d.cts +0 -14
  326. package/dist/theme/derive.d.cts.map +0 -1
  327. package/dist/theme/parse.d.cts +0 -10
  328. package/dist/theme/parse.d.cts.map +0 -1
  329. package/dist/theme/piTheme.d.cts +0 -19
  330. package/dist/theme/piTheme.d.cts.map +0 -1
  331. package/dist/theme/preference.d.cts +0 -15
  332. package/dist/theme/preference.d.cts.map +0 -1
  333. package/dist/theme.d.cts +0 -8
  334. package/dist/types/editor.d.cts +0 -78
  335. package/dist/types/editor.d.cts.map +0 -1
  336. package/dist/types/theme.d.cts +0 -38
  337. package/dist/types/theme.d.cts.map +0 -1
  338. package/dist/types/tone.d.cts +0 -28
  339. package/dist/types/tone.d.cts.map +0 -1
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require("./src/icons/icons.cjs");const e=require("./src/lib/cn.cjs"),t=require("./src/components/Accordion.cjs"),n=require("./src/lib/ansiSpans.cjs"),r=require("./src/components/AnsiText.cjs"),i=require("./src/components/Avatar.cjs"),a=require("./src/components/Badge.cjs"),o=require("./src/components/Tooltip.cjs"),s=require("./src/components/Breadcrumb.cjs"),c=require("./src/components/Spinner.cjs"),l=require("./src/components/Button.cjs"),u=require("./src/components/Dialog.cjs"),d=require("./src/components/Dot.cjs"),f=require("./src/components/DropdownMenu.cjs"),p=require("./src/components/Checkbox.cjs"),m=require("./src/components/Skeleton.cjs"),ee=require("./src/components/CodeEditor.cjs"),h=require("./src/components/Collapsible.cjs"),g=require("./src/components/Input.cjs"),_=require("./src/lib/optionList.cjs"),v=require("./src/components/OptionList.cjs"),y=require("./src/components/Command.cjs"),te=require("./src/components/EmptyState.cjs"),b=require("./src/lib/hashlineHighlight.cjs"),x=require("./src/lib/editorLanguage.cjs"),S=require("./src/lib/syntaxHighlight.cjs"),C=require("./src/components/SyntaxText.cjs"),w=require("./src/components/HashlineLines.cjs"),T=require("./src/components/Kbd.cjs"),E=require("./src/components/Label.cjs"),D=require("./src/components/Markdown.cjs"),O=require("./src/lib/media.cjs"),k=require("./src/components/PdfPreview.cjs"),ne=require("./src/components/MediaPreview.cjs"),A=require("./src/components/StatusBadge.cjs"),j=require("./src/components/MessageItem.cjs"),M=require("./src/components/MessageLines.cjs"),N=require("./src/components/Panel.cjs"),P=require("./src/components/Popover.cjs"),F=require("./src/components/Progress.cjs"),I=require("./src/components/RadioGroup.cjs"),L=require("./src/components/ScrollArea.cjs"),R=require("./src/components/SectionLabel.cjs"),z=require("./src/components/Select.cjs"),B=require("./src/components/Separator.cjs"),V=require("./src/components/Sheet.cjs"),H=require("./src/components/StreamCursor.cjs"),U=require("./src/components/Switch.cjs"),W=require("./src/components/Tabs.cjs"),G=require("./src/components/TerminalView.cjs"),K=require("./src/components/Textarea.cjs"),q=require("./src/components/Toast.cjs"),J=require("./src/components/ToolPathLink.cjs"),Y=require("./src/lib/collapse.cjs"),X=require("./src/lib/hashlineView.cjs"),Z=require("./src/lib/tone.cjs"),re=require("./src/types/editor.cjs"),Q=require("./src/types/tone.cjs");let $=require("lucide-react");exports.ACCENT_TONES=Q.ACCENT_TONES,exports.Accordion=t.Accordion,exports.AccordionContent=t.AccordionContent,exports.AccordionItem=t.AccordionItem,exports.AccordionTrigger=t.AccordionTrigger,Object.defineProperty(exports,"ActivityIcon",{enumerable:!0,get:function(){return $.Activity}}),Object.defineProperty(exports,"AlertIcon",{enumerable:!0,get:function(){return $.CircleAlert}}),exports.AnsiLine=r.AnsiLine,exports.AnsiText=r.AnsiText,Object.defineProperty(exports,"AudioLinesIcon",{enumerable:!0,get:function(){return $.AudioLines}}),exports.Avatar=i.Avatar,exports.AvatarFallback=i.AvatarFallback,exports.AvatarImage=i.AvatarImage,exports.BREADCRUMB_ELLIPSIS=s.BREADCRUMB_ELLIPSIS,exports.Badge=a.Badge,Object.defineProperty(exports,"BookmarkPlusIcon",{enumerable:!0,get:function(){return $.BookmarkPlus}}),Object.defineProperty(exports,"BranchIcon",{enumerable:!0,get:function(){return $.GitBranch}}),exports.Breadcrumb=s.Breadcrumb,exports.Button=l.Button,exports.CHIP_TONES=Q.CHIP_TONES,exports.CHIP_TO_STATUS=Z.CHIP_TO_STATUS,Object.defineProperty(exports,"CheckIcon",{enumerable:!0,get:function(){return $.Check}}),exports.Checkbox=p.Checkbox,Object.defineProperty(exports,"ChevronDownIcon",{enumerable:!0,get:function(){return $.ChevronDown}}),Object.defineProperty(exports,"ChevronRightIcon",{enumerable:!0,get:function(){return $.ChevronRight}}),Object.defineProperty(exports,"ChevronUpIcon",{enumerable:!0,get:function(){return $.ChevronUp}}),Object.defineProperty(exports,"CloseIcon",{enumerable:!0,get:function(){return $.X}}),exports.CodeEditor=ee.CodeEditor,exports.Collapsible=h.Collapsible,exports.CollapsibleContent=h.CollapsibleContent,exports.CollapsibleTrigger=h.CollapsibleTrigger,exports.CommandDialog=y.CommandDialog,exports.CommandEmpty=y.CommandEmpty,exports.CommandFooter=y.CommandFooter,exports.CommandGroup=y.CommandGroup,exports.CommandGroupLabel=y.CommandGroupLabel,exports.CommandHeader=y.CommandHeader,exports.CommandInput=y.CommandInput,exports.CommandItem=y.CommandItem,exports.CommandItemLabel=y.CommandItemLabel,exports.CommandList=y.CommandList,Object.defineProperty(exports,"CopyIcon",{enumerable:!0,get:function(){return $.Copy}}),exports.DOT_TONES=Q.DOT_TONES,exports.Dialog=u.Dialog,exports.DialogBody=u.DialogBody,exports.DialogClose=u.DialogClose,exports.DialogContent=u.DialogContent,exports.DialogDescription=u.DialogDescription,exports.DialogFooter=u.DialogFooter,exports.DialogHeader=u.DialogHeader,exports.DialogTitle=u.DialogTitle,exports.DialogTrigger=u.DialogTrigger,exports.Dot=d.Dot,exports.DropdownMenu=f.DropdownMenu,exports.DropdownMenuCheckboxItem=f.DropdownMenuCheckboxItem,exports.DropdownMenuContent=f.DropdownMenuContent,exports.DropdownMenuGroup=f.DropdownMenuGroup,exports.DropdownMenuItem=f.DropdownMenuItem,exports.DropdownMenuLabel=f.DropdownMenuLabel,exports.DropdownMenuRadioGroup=f.DropdownMenuRadioGroup,exports.DropdownMenuRadioItem=f.DropdownMenuRadioItem,exports.DropdownMenuSeparator=f.DropdownMenuSeparator,exports.DropdownMenuShortcut=f.DropdownMenuShortcut,exports.DropdownMenuSub=f.DropdownMenuSub,exports.DropdownMenuSubContent=f.DropdownMenuSubContent,exports.DropdownMenuSubTrigger=f.DropdownMenuSubTrigger,exports.DropdownMenuTrigger=f.DropdownMenuTrigger,Object.defineProperty(exports,"EditIcon",{enumerable:!0,get:function(){return $.Pencil}}),exports.EmptyState=te.EmptyState,Object.defineProperty(exports,"EnterIcon",{enumerable:!0,get:function(){return $.CornerDownLeft}}),Object.defineProperty(exports,"ExternalLinkIcon",{enumerable:!0,get:function(){return $.ExternalLink}}),Object.defineProperty(exports,"FileIcon",{enumerable:!0,get:function(){return $.FileText}}),Object.defineProperty(exports,"ForkIcon",{enumerable:!0,get:function(){return $.GitFork}}),exports.GREP_COLLAPSED_LINES=X.GREP_COLLAPSED_LINES,Object.defineProperty(exports,"GearIcon",{enumerable:!0,get:function(){return $.Settings}}),exports.HashlineLines=w.HashlineLines,exports.Input=g.Input,exports.Kbd=T.Kbd,Object.defineProperty(exports,"KebabIcon",{enumerable:!0,get:function(){return $.MoreVertical}}),exports.LINE_TONE_TO_STATUS=Z.LINE_TONE_TO_STATUS,exports.Label=E.Label,Object.defineProperty(exports,"LoaderIcon",{enumerable:!0,get:function(){return $.Loader2}}),exports.MAX_DIGIT_SHORTCUT=_.MAX_DIGIT_SHORTCUT,exports.MEDIA_KINDS=re.MEDIA_KINDS,exports.MESSAGE_LINE_TONES=Q.MESSAGE_LINE_TONES,exports.Markdown=D.Markdown,exports.MediaPreview=ne.MediaPreview,Object.defineProperty(exports,"MessageIcon",{enumerable:!0,get:function(){return $.MessageCircle}}),exports.MessageItem=j.MessageItem,exports.MessageItemBody=j.MessageItemBody,exports.MessageItemGroup=j.MessageItemGroup,exports.MessageItemHeader=j.MessageItemHeader,exports.MessageItemStatus=j.MessageItemStatus,exports.MessageLines=M.MessageLines,Object.defineProperty(exports,"MicIcon",{enumerable:!0,get:function(){return $.Mic}}),exports.NavTab=W.NavTab,exports.NavTabBadge=W.NavTabBadge,exports.OptionLabel=v.OptionLabel,exports.OptionList=v.OptionList,exports.OptionRow=v.OptionRow,Object.defineProperty(exports,"PaletteIcon",{enumerable:!0,get:function(){return $.Palette}}),exports.Panel=N.Panel,exports.PanelBody=N.PanelBody,exports.PanelHeader=N.PanelHeader,exports.PdfPreview=k.PdfPreview,Object.defineProperty(exports,"PlusIcon",{enumerable:!0,get:function(){return $.Plus}}),exports.Popover=P.Popover,exports.PopoverAnchor=P.PopoverAnchor,exports.PopoverClose=P.PopoverClose,exports.PopoverContent=P.PopoverContent,exports.PopoverFooter=P.PopoverFooter,exports.PopoverHeader=P.PopoverHeader,exports.PopoverTrigger=P.PopoverTrigger,exports.Progress=F.Progress,Object.defineProperty(exports,"QuoteIcon",{enumerable:!0,get:function(){return $.Quote}}),exports.READ_COLLAPSED_LINES=X.READ_COLLAPSED_LINES,exports.RadioGroup=I.RadioGroup,exports.RadioGroupCard=I.RadioGroupCard,exports.RadioGroupItem=I.RadioGroupItem,Object.defineProperty(exports,"RefreshIcon",{enumerable:!0,get:function(){return $.RefreshCw}}),Object.defineProperty(exports,"RewindIcon",{enumerable:!0,get:function(){return $.Rewind}}),exports.STATUS_EDGE=A.STATUS_EDGE,exports.STATUS_GLYPH=j.STATUS_GLYPH,exports.STATUS_LABEL=j.STATUS_LABEL,exports.STATUS_TONES=Q.STATUS_TONES,exports.STATUS_TO_CHIP=Z.STATUS_TO_CHIP,exports.STATUS_TO_DOT=Z.STATUS_TO_DOT,exports.ScrollArea=L.ScrollArea,exports.ScrollBar=L.ScrollBar,Object.defineProperty(exports,"SearchIcon",{enumerable:!0,get:function(){return $.Search}}),exports.SectionLabel=R.SectionLabel,exports.Select=z.Select,exports.SelectContent=z.SelectContent,exports.SelectGroup=z.SelectGroup,exports.SelectItem=z.SelectItem,exports.SelectLabel=z.SelectLabel,exports.SelectSeparator=z.SelectSeparator,exports.SelectTrigger=z.SelectTrigger,exports.SelectValue=z.SelectValue,Object.defineProperty(exports,"SendIcon",{enumerable:!0,get:function(){return $.Send}}),exports.Separator=B.Separator,exports.Sheet=V.Sheet,exports.SheetBody=V.SheetBody,exports.SheetClose=V.SheetClose,exports.SheetContent=V.SheetContent,exports.SheetDescription=V.SheetDescription,exports.SheetFooter=V.SheetFooter,exports.SheetHeader=V.SheetHeader,exports.SheetOverlay=V.SheetOverlay,exports.SheetTitle=V.SheetTitle,exports.SheetTrigger=V.SheetTrigger,Object.defineProperty(exports,"ShieldIcon",{enumerable:!0,get:function(){return $.ShieldCheck}}),exports.Skeleton=m.Skeleton,exports.Spinner=c.Spinner,exports.StatusBadge=A.StatusBadge,Object.defineProperty(exports,"StopIcon",{enumerable:!0,get:function(){return $.Square}}),exports.StreamCursor=H.StreamCursor,exports.Switch=U.Switch,exports.SyntaxLine=C.SyntaxLine,exports.SyntaxText=C.SyntaxText,exports.Tabs=W.Tabs,exports.TabsContent=W.TabsContent,exports.TabsList=W.TabsList,exports.TabsTrigger=W.TabsTrigger,exports.TerminalView=G.TerminalView,exports.Textarea=K.Textarea,exports.Toast=q.Toast,exports.ToastAction=q.ToastAction,exports.ToastClose=q.ToastClose,exports.ToastDescription=q.ToastDescription,exports.ToastProvider=q.ToastProvider,exports.ToastTitle=q.ToastTitle,exports.ToastViewport=q.ToastViewport,exports.ToolPathLink=J.ToolPathLink,exports.Tooltip=o.Tooltip,exports.TooltipContent=o.TooltipContent,exports.TooltipProvider=o.TooltipProvider,exports.TooltipTrigger=o.TooltipTrigger,Object.defineProperty(exports,"TrashIcon",{enumerable:!0,get:function(){return $.Trash2}}),Object.defineProperty(exports,"UserIcon",{enumerable:!0,get:function(){return $.UserRound}}),Object.defineProperty(exports,"VolumeIcon",{enumerable:!0,get:function(){return $.Volume2}}),exports.ansiSpans=n.ansiSpans,exports.badgeVariants=a.badgeVariants,exports.breadcrumbSegments=s.breadcrumbSegments,exports.buttonVariants=l.buttonVariants,exports.cn=e.cn,exports.collapseLines=Y.collapseLines,exports.compactDetails=X.compactDetails,exports.detectGrammar=S.detectGrammar,exports.dialogFooterVariants=u.dialogFooterVariants,exports.dotVariants=d.dotVariants,exports.dropdownMenuItemVariants=f.dropdownMenuItemVariants,exports.fieldVariants=g.fieldVariants,exports.grammarKeyOf=x.grammarKeyOf,exports.handleOptionListKey=_.handleOptionListKey,exports.hashlineBody=X.hashlineBody,exports.hashlineGroups=b.hashlineGroups,exports.hashlineGroupsKey=b.hashlineGroupsKey,exports.highlightToLines=S.highlightToLines,exports.mediaKindOf=O.mediaKindOf,exports.messageItemRowVariants=j.messageItemRowVariants,exports.messageItemStatusVariants=j.messageItemStatusVariants,exports.messageItemVariants=j.messageItemVariants,exports.messageLineVariants=M.messageLineVariants,exports.optionListHint=_.optionListHint,exports.optionListVariants=v.optionListVariants,exports.optionMarker=_.optionMarker,exports.optionMarkerVariants=v.optionMarkerVariants,exports.optionRowVariants=v.optionRowVariants,exports.parseFileHeader=X.parseFileHeader,exports.parseTaggedLine=X.parseTaggedLine,exports.presentHashlineLines=X.presentHashlineLines,exports.resolvePdfViewportRegion=k.resolvePdfViewportRegion,exports.resultTextLines=X.resultTextLines,exports.statusBadgeVariants=A.statusBadgeVariants,exports.syntaxStyleOf=S.syntaxStyleOf,exports.tabBadgeVariants=W.tabBadgeVariants,exports.tabVariants=W.tabVariants,exports.takeTrailingNotice=X.takeTrailingNotice,exports.toastVariants=q.toastVariants,exports.toolTone=j.toolTone,exports.useMessageItem=j.useMessageItem,exports.useSyntaxLines=C.useSyntaxLines;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require("./src/icons/icons.cjs");const e=require("./src/lib/cn.cjs"),t=require("./src/components/Accordion.cjs"),n=require("./src/lib/ansiSpans.cjs"),r=require("./src/components/AnsiText.cjs"),i=require("./src/components/Avatar.cjs"),a=require("./src/components/Badge.cjs"),o=require("./src/components/Tooltip.cjs"),s=require("./src/components/Breadcrumb.cjs"),ee=require("./src/components/Spinner.cjs"),c=require("./src/components/Button.cjs"),l=require("./src/components/Dialog.cjs"),u=require("./src/components/Dot.cjs"),d=require("./src/components/Drawer.cjs"),f=require("./src/components/DropdownMenu.cjs"),te=require("./src/components/Checkbox.cjs"),p=require("./src/components/Skeleton.cjs"),m=require("./src/components/CodeEditor.cjs"),h=require("./src/components/Collapsible.cjs"),g=require("./src/components/Input.cjs"),_=require("./src/lib/optionList.cjs"),v=require("./src/components/OptionList.cjs"),y=require("./src/components/Command.cjs"),b=require("./src/components/EmptyState.cjs"),x=require("./src/lib/hashlineHighlight.cjs"),S=require("./src/lib/editorLanguage.cjs"),C=require("./src/lib/syntaxHighlight.cjs"),w=require("./src/components/SyntaxText.cjs"),T=require("./src/components/HashlineLines.cjs"),E=require("./src/components/Kbd.cjs"),D=require("./src/components/Label.cjs"),O=require("./src/components/Markdown.cjs"),ne=require("./src/lib/media.cjs"),k=require("./src/components/PdfPreview.cjs"),re=require("./src/components/MediaPreview.cjs"),A=require("./src/components/StatusBadge.cjs"),j=require("./src/components/MessageItem.cjs"),M=require("./src/components/MessageLines.cjs"),N=require("./src/components/Panel.cjs"),P=require("./src/components/Popover.cjs"),F=require("./src/components/Progress.cjs"),I=require("./src/components/RadioGroup.cjs"),L=require("./src/components/ScrollArea.cjs"),R=require("./src/components/SectionLabel.cjs"),z=require("./src/components/Select.cjs"),B=require("./src/components/Separator.cjs"),V=require("./src/components/Sheet.cjs"),H=require("./src/components/StreamCursor.cjs"),U=require("./src/components/Switch.cjs"),W=require("./src/components/Tabs.cjs"),G=require("./src/components/TerminalView.cjs"),K=require("./src/components/Textarea.cjs"),q=require("./src/components/Toast.cjs"),J=require("./src/components/ToolPathLink.cjs"),Y=require("./src/lib/collapse.cjs"),X=require("./src/lib/hashlineView.cjs"),Z=require("./src/lib/tone.cjs"),ie=require("./src/types/editor.cjs"),Q=require("./src/types/tone.cjs");let $=require("lucide-react");exports.ACCENT_TONES=Q.ACCENT_TONES,exports.Accordion=t.Accordion,exports.AccordionContent=t.AccordionContent,exports.AccordionItem=t.AccordionItem,exports.AccordionTrigger=t.AccordionTrigger,Object.defineProperty(exports,"ActivityIcon",{enumerable:!0,get:function(){return $.Activity}}),Object.defineProperty(exports,"AlertIcon",{enumerable:!0,get:function(){return $.CircleAlert}}),exports.AnsiLine=r.AnsiLine,exports.AnsiText=r.AnsiText,Object.defineProperty(exports,"AudioLinesIcon",{enumerable:!0,get:function(){return $.AudioLines}}),exports.Avatar=i.Avatar,exports.AvatarFallback=i.AvatarFallback,exports.AvatarImage=i.AvatarImage,exports.BREADCRUMB_ELLIPSIS=s.BREADCRUMB_ELLIPSIS,exports.Badge=a.Badge,Object.defineProperty(exports,"BookmarkPlusIcon",{enumerable:!0,get:function(){return $.BookmarkPlus}}),Object.defineProperty(exports,"BranchIcon",{enumerable:!0,get:function(){return $.GitBranch}}),exports.Breadcrumb=s.Breadcrumb,exports.Button=c.Button,exports.CHIP_TONES=Q.CHIP_TONES,exports.CHIP_TO_STATUS=Z.CHIP_TO_STATUS,Object.defineProperty(exports,"CheckIcon",{enumerable:!0,get:function(){return $.Check}}),exports.Checkbox=te.Checkbox,Object.defineProperty(exports,"ChevronDownIcon",{enumerable:!0,get:function(){return $.ChevronDown}}),Object.defineProperty(exports,"ChevronRightIcon",{enumerable:!0,get:function(){return $.ChevronRight}}),Object.defineProperty(exports,"ChevronUpIcon",{enumerable:!0,get:function(){return $.ChevronUp}}),Object.defineProperty(exports,"CloseIcon",{enumerable:!0,get:function(){return $.X}}),exports.CodeEditor=m.CodeEditor,exports.Collapsible=h.Collapsible,exports.CollapsibleContent=h.CollapsibleContent,exports.CollapsibleTrigger=h.CollapsibleTrigger,exports.CommandDialog=y.CommandDialog,exports.CommandEmpty=y.CommandEmpty,exports.CommandFooter=y.CommandFooter,exports.CommandGroup=y.CommandGroup,exports.CommandGroupLabel=y.CommandGroupLabel,exports.CommandHeader=y.CommandHeader,exports.CommandInput=y.CommandInput,exports.CommandItem=y.CommandItem,exports.CommandItemLabel=y.CommandItemLabel,exports.CommandList=y.CommandList,Object.defineProperty(exports,"CopyIcon",{enumerable:!0,get:function(){return $.Copy}}),exports.DOT_TONES=Q.DOT_TONES,exports.Dialog=l.Dialog,exports.DialogBody=l.DialogBody,exports.DialogClose=l.DialogClose,exports.DialogContent=l.DialogContent,exports.DialogDescription=l.DialogDescription,exports.DialogFooter=l.DialogFooter,exports.DialogHeader=l.DialogHeader,exports.DialogTitle=l.DialogTitle,exports.DialogTrigger=l.DialogTrigger,exports.Dot=u.Dot,exports.Drawer=d.Drawer,exports.DropdownMenu=f.DropdownMenu,exports.DropdownMenuCheckboxItem=f.DropdownMenuCheckboxItem,exports.DropdownMenuContent=f.DropdownMenuContent,exports.DropdownMenuGroup=f.DropdownMenuGroup,exports.DropdownMenuItem=f.DropdownMenuItem,exports.DropdownMenuLabel=f.DropdownMenuLabel,exports.DropdownMenuRadioGroup=f.DropdownMenuRadioGroup,exports.DropdownMenuRadioItem=f.DropdownMenuRadioItem,exports.DropdownMenuSeparator=f.DropdownMenuSeparator,exports.DropdownMenuShortcut=f.DropdownMenuShortcut,exports.DropdownMenuSub=f.DropdownMenuSub,exports.DropdownMenuSubContent=f.DropdownMenuSubContent,exports.DropdownMenuSubTrigger=f.DropdownMenuSubTrigger,exports.DropdownMenuTrigger=f.DropdownMenuTrigger,Object.defineProperty(exports,"EditIcon",{enumerable:!0,get:function(){return $.Pencil}}),exports.EmptyState=b.EmptyState,Object.defineProperty(exports,"EnterIcon",{enumerable:!0,get:function(){return $.CornerDownLeft}}),Object.defineProperty(exports,"ExternalLinkIcon",{enumerable:!0,get:function(){return $.ExternalLink}}),Object.defineProperty(exports,"FileIcon",{enumerable:!0,get:function(){return $.FileText}}),Object.defineProperty(exports,"ForkIcon",{enumerable:!0,get:function(){return $.GitFork}}),exports.GREP_COLLAPSED_LINES=X.GREP_COLLAPSED_LINES,Object.defineProperty(exports,"GearIcon",{enumerable:!0,get:function(){return $.Settings}}),exports.HashlineLines=T.HashlineLines,exports.Input=g.Input,exports.Kbd=E.Kbd,Object.defineProperty(exports,"KebabIcon",{enumerable:!0,get:function(){return $.MoreVertical}}),exports.LINE_TONE_TO_STATUS=Z.LINE_TONE_TO_STATUS,exports.Label=D.Label,Object.defineProperty(exports,"LoaderIcon",{enumerable:!0,get:function(){return $.Loader2}}),exports.MAX_DIGIT_SHORTCUT=_.MAX_DIGIT_SHORTCUT,exports.MEDIA_KINDS=ie.MEDIA_KINDS,exports.MESSAGE_LINE_TONES=Q.MESSAGE_LINE_TONES,exports.Markdown=O.Markdown,exports.MediaPreview=re.MediaPreview,Object.defineProperty(exports,"MessageIcon",{enumerable:!0,get:function(){return $.MessageCircle}}),exports.MessageItem=j.MessageItem,exports.MessageItemBody=j.MessageItemBody,exports.MessageItemGroup=j.MessageItemGroup,exports.MessageItemHeader=j.MessageItemHeader,exports.MessageItemStatus=j.MessageItemStatus,exports.MessageLines=M.MessageLines,Object.defineProperty(exports,"MicIcon",{enumerable:!0,get:function(){return $.Mic}}),exports.NavTab=W.NavTab,exports.NavTabBadge=W.NavTabBadge,exports.OptionLabel=v.OptionLabel,exports.OptionList=v.OptionList,exports.OptionRow=v.OptionRow,Object.defineProperty(exports,"PaletteIcon",{enumerable:!0,get:function(){return $.Palette}}),exports.Panel=N.Panel,exports.PanelBody=N.PanelBody,exports.PanelHeader=N.PanelHeader,exports.PdfPreview=k.PdfPreview,Object.defineProperty(exports,"PlusIcon",{enumerable:!0,get:function(){return $.Plus}}),exports.Popover=P.Popover,exports.PopoverAnchor=P.PopoverAnchor,exports.PopoverClose=P.PopoverClose,exports.PopoverContent=P.PopoverContent,exports.PopoverFooter=P.PopoverFooter,exports.PopoverHeader=P.PopoverHeader,exports.PopoverTrigger=P.PopoverTrigger,exports.Progress=F.Progress,Object.defineProperty(exports,"QuoteIcon",{enumerable:!0,get:function(){return $.Quote}}),exports.READ_COLLAPSED_LINES=X.READ_COLLAPSED_LINES,exports.RadioGroup=I.RadioGroup,exports.RadioGroupCard=I.RadioGroupCard,exports.RadioGroupItem=I.RadioGroupItem,Object.defineProperty(exports,"RefreshIcon",{enumerable:!0,get:function(){return $.RefreshCw}}),Object.defineProperty(exports,"RewindIcon",{enumerable:!0,get:function(){return $.Rewind}}),exports.STATUS_EDGE=A.STATUS_EDGE,exports.STATUS_GLYPH=j.STATUS_GLYPH,exports.STATUS_LABEL=j.STATUS_LABEL,exports.STATUS_TONES=Q.STATUS_TONES,exports.STATUS_TO_CHIP=Z.STATUS_TO_CHIP,exports.STATUS_TO_DOT=Z.STATUS_TO_DOT,exports.ScrollArea=L.ScrollArea,exports.ScrollBar=L.ScrollBar,Object.defineProperty(exports,"SearchIcon",{enumerable:!0,get:function(){return $.Search}}),exports.SectionLabel=R.SectionLabel,exports.Select=z.Select,exports.SelectContent=z.SelectContent,exports.SelectGroup=z.SelectGroup,exports.SelectItem=z.SelectItem,exports.SelectLabel=z.SelectLabel,exports.SelectSeparator=z.SelectSeparator,exports.SelectTrigger=z.SelectTrigger,exports.SelectValue=z.SelectValue,Object.defineProperty(exports,"SendIcon",{enumerable:!0,get:function(){return $.Send}}),exports.Separator=B.Separator,exports.Sheet=V.Sheet,exports.SheetBody=V.SheetBody,exports.SheetClose=V.SheetClose,exports.SheetContent=V.SheetContent,exports.SheetDescription=V.SheetDescription,exports.SheetFooter=V.SheetFooter,exports.SheetHeader=V.SheetHeader,exports.SheetOverlay=V.SheetOverlay,exports.SheetTitle=V.SheetTitle,exports.SheetTrigger=V.SheetTrigger,Object.defineProperty(exports,"ShieldIcon",{enumerable:!0,get:function(){return $.ShieldCheck}}),exports.Skeleton=p.Skeleton,exports.Spinner=ee.Spinner,exports.StatusBadge=A.StatusBadge,Object.defineProperty(exports,"StopIcon",{enumerable:!0,get:function(){return $.Square}}),exports.StreamCursor=H.StreamCursor,exports.Switch=U.Switch,exports.SyntaxLine=w.SyntaxLine,exports.SyntaxText=w.SyntaxText,exports.Tabs=W.Tabs,exports.TabsContent=W.TabsContent,exports.TabsList=W.TabsList,exports.TabsTrigger=W.TabsTrigger,exports.TerminalView=G.TerminalView,exports.Textarea=K.Textarea,exports.Toast=q.Toast,exports.ToastAction=q.ToastAction,exports.ToastClose=q.ToastClose,exports.ToastDescription=q.ToastDescription,exports.ToastProvider=q.ToastProvider,exports.ToastTitle=q.ToastTitle,exports.ToastViewport=q.ToastViewport,exports.ToolPathLink=J.ToolPathLink,exports.Tooltip=o.Tooltip,exports.TooltipContent=o.TooltipContent,exports.TooltipProvider=o.TooltipProvider,exports.TooltipTrigger=o.TooltipTrigger,Object.defineProperty(exports,"TrashIcon",{enumerable:!0,get:function(){return $.Trash2}}),Object.defineProperty(exports,"UserIcon",{enumerable:!0,get:function(){return $.UserRound}}),Object.defineProperty(exports,"VolumeIcon",{enumerable:!0,get:function(){return $.Volume2}}),exports.ansiSpans=n.ansiSpans,exports.badgeVariants=a.badgeVariants,exports.breadcrumbSegments=s.breadcrumbSegments,exports.buttonVariants=c.buttonVariants,exports.cn=e.cn,exports.collapseLines=Y.collapseLines,exports.compactDetails=X.compactDetails,exports.detectGrammar=C.detectGrammar,exports.dialogFooterVariants=l.dialogFooterVariants,exports.dotVariants=u.dotVariants,exports.dropdownMenuItemVariants=f.dropdownMenuItemVariants,exports.fieldVariants=g.fieldVariants,exports.grammarKeyOf=S.grammarKeyOf,exports.handleOptionListKey=_.handleOptionListKey,exports.hashlineBody=X.hashlineBody,exports.hashlineGroups=x.hashlineGroups,exports.hashlineGroupsKey=x.hashlineGroupsKey,exports.highlightToLines=C.highlightToLines,exports.mediaKindOf=ne.mediaKindOf,exports.messageItemRowVariants=j.messageItemRowVariants,exports.messageItemStatusVariants=j.messageItemStatusVariants,exports.messageItemVariants=j.messageItemVariants,exports.messageLineVariants=M.messageLineVariants,exports.optionListHint=_.optionListHint,exports.optionListVariants=v.optionListVariants,exports.optionMarker=_.optionMarker,exports.optionMarkerVariants=v.optionMarkerVariants,exports.optionRowVariants=v.optionRowVariants,exports.parseFileHeader=X.parseFileHeader,exports.parseTaggedLine=X.parseTaggedLine,exports.presentHashlineLines=X.presentHashlineLines,exports.resolvePdfViewportRegion=k.resolvePdfViewportRegion,exports.resultTextLines=X.resultTextLines,exports.statusBadgeVariants=A.statusBadgeVariants,exports.syntaxStyleOf=C.syntaxStyleOf,exports.tabBadgeVariants=W.tabBadgeVariants,exports.tabVariants=W.tabVariants,exports.takeTrailingNotice=X.takeTrailingNotice,exports.toastVariants=q.toastVariants,exports.toolTone=j.toolTone,exports.useMessageItem=j.useMessageItem,exports.useSyntaxLines=w.useSyntaxLines;
package/dist/index.d.mts CHANGED
@@ -7,6 +7,7 @@ import { BREADCRUMB_ELLIPSIS, Breadcrumb, BreadcrumbProps, breadcrumbSegments }
7
7
  import { Button, ButtonProps, ButtonSize, ButtonVariant, buttonVariants } from "./src/components/Button.mjs";
8
8
  import { Dialog, DialogBody, DialogClose, DialogContent, DialogContentProps, DialogDescription, DialogFooter, DialogFooterProps, DialogHeader, DialogHeaderProps, DialogTitle, DialogTrigger, dialogFooterVariants } from "./src/components/Dialog.mjs";
9
9
  import { Dot, DotProps, DotTone, dotVariants } from "./src/components/Dot.mjs";
10
+ import { Drawer, DrawerProps } from "./src/components/Drawer.mjs";
10
11
  import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuCheckboxItemProps, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuItemProps, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuRadioItemProps, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, dropdownMenuItemVariants } from "./src/components/DropdownMenu.mjs";
11
12
  import { Checkbox } from "./src/components/Checkbox.mjs";
12
13
  import { CodeEditorController, CodeEditorProps, EditorEdit, EditorMarkedRange, EditorSelectionRange, EditorTextRange, EditorViewportRectangle, MEDIA_KINDS, MediaKind } from "./src/types/editor.mjs";
@@ -56,4 +57,4 @@ import { mediaKindOf } from "./src/lib/media.mjs";
56
57
  import { MAX_DIGIT_SHORTCUT, handleOptionListKey, optionListHint, optionMarker } from "./src/lib/optionList.mjs";
57
58
  import { CHIP_TO_STATUS, LINE_TONE_TO_STATUS, STATUS_TO_CHIP, STATUS_TO_DOT } from "./src/lib/tone.mjs";
58
59
  import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./src/components/Tooltip.mjs";
59
- export { ACCENT_TONES, type AccentTone, Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityIcon, AlertIcon, AnsiLine, type AnsiLineProps, type AnsiSpan, AnsiText, type AnsiTextProps, AudioLinesIcon, Avatar, AvatarFallback, AvatarImage, BREADCRUMB_ELLIPSIS, Badge, type BadgeProps, type BadgeTone, BookmarkPlusIcon, BranchIcon, Breadcrumb, type BreadcrumbProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CHIP_TONES, CHIP_TO_STATUS, CheckIcon, Checkbox, ChevronDownIcon, ChevronRightIcon, ChevronUpIcon, type ChipTone, CloseIcon, CodeEditor, type CodeEditorController, type CodeEditorProps, type CollapsedLines, Collapsible, CollapsibleContent, CollapsibleTrigger, CommandDialog, type CommandDialogProps, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandHeader, CommandInput, CommandItem, CommandItemLabel, CommandList, CopyIcon, DOT_TONES, Dialog, DialogBody, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, type DialogFooterProps, DialogHeader, type DialogHeaderProps, DialogTitle, DialogTrigger, Dot, type DotProps, type DotTone, DropdownMenu, DropdownMenuCheckboxItem, type DropdownMenuCheckboxItemProps, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, type DropdownMenuRadioItemProps, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditIcon, type EditorEdit, type EditorMarkedRange, type EditorSelectionRange, type EditorTextRange, type EditorViewportRectangle, EmptyState, type EmptyStateProps, EnterIcon, ExternalLinkIcon, type FieldSize, type FieldVariant, FileIcon, ForkIcon, GREP_COLLAPSED_LINES, GearIcon, type GrammarKey, type GrammarQuery, type HashlineBody, type HashlineGroup, HashlineLines, type HashlineLinesProps, type HashlineResult, type HashlineResultKind, Input, type InputProps, Kbd, KebabIcon, LINE_TONE_TO_STATUS, Label, LoaderIcon, MAX_DIGIT_SHORTCUT, MEDIA_KINDS, MESSAGE_LINE_TONES, Markdown, type MediaFrameCapture, type MediaFrameMetadata, type MediaIntrinsicSize, type MediaKind, type MediaPlaybackState, MediaPreview, type MediaPreviewController, type MediaPreviewProps, MessageIcon, MessageItem, MessageItemBody, MessageItemGroup, type MessageItemGroupProps, MessageItemHeader, type MessageItemHeaderProps, type MessageItemProps, type MessageItemState, MessageItemStatus, type MessageItemStatusProps, type MessageLine, type MessageLineTone, MessageLines, type MessageLinesProps, MicIcon, NavTab, NavTabBadge, type NavTabProps, OptionLabel, OptionList, type OptionListProps, OptionRow, type OptionRowProps, PaletteIcon, Panel, PanelBody, PanelHeader, type PanelProps, type PdfNormalizedRectangle, type PdfPageRegion, type PdfPageState, PdfPreview, type PdfPreviewController, type PdfPreviewProps, PlusIcon, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverFooter, PopoverHeader, PopoverTrigger, type PresentedLine, Progress, QuoteIcon, READ_COLLAPSED_LINES, RadioGroup, RadioGroupCard, RadioGroupItem, RefreshIcon, RewindIcon, STATUS_EDGE, STATUS_GLYPH, STATUS_LABEL, STATUS_TONES, STATUS_TO_CHIP, STATUS_TO_DOT, ScrollArea, ScrollBar, SearchIcon, SectionLabel, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, SendIcon, Separator, Sheet, SheetBody, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, type SheetHeaderProps, SheetOverlay, SheetTitle, SheetTrigger, ShieldIcon, Skeleton, Spinner, type SpinnerProps, StatusBadge, type StatusBadgeProps, type StatusTone, StopIcon, StreamCursor, Switch, SyntaxLine, type SyntaxLineProps, type SyntaxLines, type SyntaxQuery, type SyntaxSpan, SyntaxText, type SyntaxTextProps, type SyntaxToken, Tabs, TabsContent, TabsList, TabsTrigger, type TaggedLine, type TaggedLineMarker, type TerminalHandle, TerminalView, type TerminalViewProps, Textarea, type TextareaProps, Toast, ToastAction, ToastClose, ToastDescription, type ToastProps, ToastProvider, ToastTitle, ToastViewport, ToolPathLink, type ToolPathLinkProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TrashIcon, UserIcon, VolumeIcon, ansiSpans, badgeVariants, breadcrumbSegments, buttonVariants, cn, collapseLines, compactDetails, detectGrammar, dialogFooterVariants, dotVariants, dropdownMenuItemVariants, fieldVariants, grammarKeyOf, handleOptionListKey, hashlineBody, hashlineGroups, hashlineGroupsKey, highlightToLines, mediaKindOf, messageItemRowVariants, messageItemStatusVariants, messageItemVariants, messageLineVariants, optionListHint, optionListVariants, optionMarker, optionMarkerVariants, optionRowVariants, parseFileHeader, parseTaggedLine, presentHashlineLines, resolvePdfViewportRegion, resultTextLines, statusBadgeVariants, syntaxStyleOf, tabBadgeVariants, tabVariants, takeTrailingNotice, toastVariants, toolTone, useMessageItem, useSyntaxLines };
60
+ export { ACCENT_TONES, type AccentTone, Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityIcon, AlertIcon, AnsiLine, type AnsiLineProps, type AnsiSpan, AnsiText, type AnsiTextProps, AudioLinesIcon, Avatar, AvatarFallback, AvatarImage, BREADCRUMB_ELLIPSIS, Badge, type BadgeProps, type BadgeTone, BookmarkPlusIcon, BranchIcon, Breadcrumb, type BreadcrumbProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CHIP_TONES, CHIP_TO_STATUS, CheckIcon, Checkbox, ChevronDownIcon, ChevronRightIcon, ChevronUpIcon, type ChipTone, CloseIcon, CodeEditor, type CodeEditorController, type CodeEditorProps, type CollapsedLines, Collapsible, CollapsibleContent, CollapsibleTrigger, CommandDialog, type CommandDialogProps, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandHeader, CommandInput, CommandItem, CommandItemLabel, CommandList, CopyIcon, DOT_TONES, Dialog, DialogBody, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, type DialogFooterProps, DialogHeader, type DialogHeaderProps, DialogTitle, DialogTrigger, Dot, type DotProps, type DotTone, Drawer, type DrawerProps, DropdownMenu, DropdownMenuCheckboxItem, type DropdownMenuCheckboxItemProps, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, type DropdownMenuRadioItemProps, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditIcon, type EditorEdit, type EditorMarkedRange, type EditorSelectionRange, type EditorTextRange, type EditorViewportRectangle, EmptyState, type EmptyStateProps, EnterIcon, ExternalLinkIcon, type FieldSize, type FieldVariant, FileIcon, ForkIcon, GREP_COLLAPSED_LINES, GearIcon, type GrammarKey, type GrammarQuery, type HashlineBody, type HashlineGroup, HashlineLines, type HashlineLinesProps, type HashlineResult, type HashlineResultKind, Input, type InputProps, Kbd, KebabIcon, LINE_TONE_TO_STATUS, Label, LoaderIcon, MAX_DIGIT_SHORTCUT, MEDIA_KINDS, MESSAGE_LINE_TONES, Markdown, type MediaFrameCapture, type MediaFrameMetadata, type MediaIntrinsicSize, type MediaKind, type MediaPlaybackState, MediaPreview, type MediaPreviewController, type MediaPreviewProps, MessageIcon, MessageItem, MessageItemBody, MessageItemGroup, type MessageItemGroupProps, MessageItemHeader, type MessageItemHeaderProps, type MessageItemProps, type MessageItemState, MessageItemStatus, type MessageItemStatusProps, type MessageLine, type MessageLineTone, MessageLines, type MessageLinesProps, MicIcon, NavTab, NavTabBadge, type NavTabProps, OptionLabel, OptionList, type OptionListProps, OptionRow, type OptionRowProps, PaletteIcon, Panel, PanelBody, PanelHeader, type PanelProps, type PdfNormalizedRectangle, type PdfPageRegion, type PdfPageState, PdfPreview, type PdfPreviewController, type PdfPreviewProps, PlusIcon, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverFooter, PopoverHeader, PopoverTrigger, type PresentedLine, Progress, QuoteIcon, READ_COLLAPSED_LINES, RadioGroup, RadioGroupCard, RadioGroupItem, RefreshIcon, RewindIcon, STATUS_EDGE, STATUS_GLYPH, STATUS_LABEL, STATUS_TONES, STATUS_TO_CHIP, STATUS_TO_DOT, ScrollArea, ScrollBar, SearchIcon, SectionLabel, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, SendIcon, Separator, Sheet, SheetBody, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, type SheetHeaderProps, SheetOverlay, SheetTitle, SheetTrigger, ShieldIcon, Skeleton, Spinner, type SpinnerProps, StatusBadge, type StatusBadgeProps, type StatusTone, StopIcon, StreamCursor, Switch, SyntaxLine, type SyntaxLineProps, type SyntaxLines, type SyntaxQuery, type SyntaxSpan, SyntaxText, type SyntaxTextProps, type SyntaxToken, Tabs, TabsContent, TabsList, TabsTrigger, type TaggedLine, type TaggedLineMarker, type TerminalHandle, TerminalView, type TerminalViewProps, Textarea, type TextareaProps, Toast, ToastAction, ToastClose, ToastDescription, type ToastProps, ToastProvider, ToastTitle, ToastViewport, ToolPathLink, type ToolPathLinkProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TrashIcon, UserIcon, VolumeIcon, ansiSpans, badgeVariants, breadcrumbSegments, buttonVariants, cn, collapseLines, compactDetails, detectGrammar, dialogFooterVariants, dotVariants, dropdownMenuItemVariants, fieldVariants, grammarKeyOf, handleOptionListKey, hashlineBody, hashlineGroups, hashlineGroupsKey, highlightToLines, mediaKindOf, messageItemRowVariants, messageItemStatusVariants, messageItemVariants, messageLineVariants, optionListHint, optionListVariants, optionMarker, optionMarkerVariants, optionRowVariants, parseFileHeader, parseTaggedLine, presentHashlineLines, resolvePdfViewportRegion, resultTextLines, statusBadgeVariants, syntaxStyleOf, tabBadgeVariants, tabVariants, takeTrailingNotice, toastVariants, toolTone, useMessageItem, useSyntaxLines };
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{ActivityIcon as e,AlertIcon as t,AudioLinesIcon as n,BookmarkPlusIcon as r,BranchIcon as i,CheckIcon as a,ChevronDownIcon as o,ChevronRightIcon as s,ChevronUpIcon as c,CloseIcon as l,CopyIcon as u,EditIcon as d,EnterIcon as f,ExternalLinkIcon as p,FileIcon as m,ForkIcon as h,GearIcon as g,KebabIcon as _,LoaderIcon as v,MessageIcon as y,MicIcon as b,PaletteIcon as x,PlusIcon as S,QuoteIcon as C,RefreshIcon as w,RewindIcon as T,SearchIcon as E,SendIcon as D,ShieldIcon as O,StopIcon as k,TrashIcon as A,UserIcon as j,VolumeIcon as M}from"./src/icons/icons.mjs";import{cn as N}from"./src/lib/cn.mjs";import{Accordion as P,AccordionContent as F,AccordionItem as I,AccordionTrigger as L}from"./src/components/Accordion.mjs";import{ansiSpans as R}from"./src/lib/ansiSpans.mjs";import{AnsiLine as z,AnsiText as B}from"./src/components/AnsiText.mjs";import{Avatar as V,AvatarFallback as H,AvatarImage as U}from"./src/components/Avatar.mjs";import{Badge as W,badgeVariants as G}from"./src/components/Badge.mjs";import{Tooltip as K,TooltipContent as q,TooltipProvider as J,TooltipTrigger as Y}from"./src/components/Tooltip.mjs";import{BREADCRUMB_ELLIPSIS as X,Breadcrumb as Z,breadcrumbSegments as Q}from"./src/components/Breadcrumb.mjs";import{Spinner as $}from"./src/components/Spinner.mjs";import{Button as ee,buttonVariants as te}from"./src/components/Button.mjs";import{Dialog as ne,DialogBody as re,DialogClose as ie,DialogContent as ae,DialogDescription as oe,DialogFooter as se,DialogHeader as ce,DialogTitle as le,DialogTrigger as ue,dialogFooterVariants as de}from"./src/components/Dialog.mjs";import{Dot as fe,dotVariants as pe}from"./src/components/Dot.mjs";import{DropdownMenu as me,DropdownMenuCheckboxItem as he,DropdownMenuContent as ge,DropdownMenuGroup as _e,DropdownMenuItem as ve,DropdownMenuLabel as ye,DropdownMenuRadioGroup as be,DropdownMenuRadioItem as xe,DropdownMenuSeparator as Se,DropdownMenuShortcut as Ce,DropdownMenuSub as we,DropdownMenuSubContent as Te,DropdownMenuSubTrigger as Ee,DropdownMenuTrigger as De,dropdownMenuItemVariants as Oe}from"./src/components/DropdownMenu.mjs";import{Checkbox as ke}from"./src/components/Checkbox.mjs";import{Skeleton as Ae}from"./src/components/Skeleton.mjs";import{CodeEditor as je}from"./src/components/CodeEditor.mjs";import{Collapsible as Me,CollapsibleContent as Ne,CollapsibleTrigger as Pe}from"./src/components/Collapsible.mjs";import{Input as Fe,fieldVariants as Ie}from"./src/components/Input.mjs";import{MAX_DIGIT_SHORTCUT as Le,handleOptionListKey as Re,optionListHint as ze,optionMarker as Be}from"./src/lib/optionList.mjs";import{OptionLabel as Ve,OptionList as He,OptionRow as Ue,optionListVariants as We,optionMarkerVariants as Ge,optionRowVariants as Ke}from"./src/components/OptionList.mjs";import{CommandDialog as qe,CommandEmpty as Je,CommandFooter as Ye,CommandGroup as Xe,CommandGroupLabel as Ze,CommandHeader as Qe,CommandInput as $e,CommandItem as et,CommandItemLabel as tt,CommandList as nt}from"./src/components/Command.mjs";import{EmptyState as rt}from"./src/components/EmptyState.mjs";import{hashlineGroups as it,hashlineGroupsKey as at}from"./src/lib/hashlineHighlight.mjs";import{grammarKeyOf as ot}from"./src/lib/editorLanguage.mjs";import{detectGrammar as st,highlightToLines as ct,syntaxStyleOf as lt}from"./src/lib/syntaxHighlight.mjs";import{SyntaxLine as ut,SyntaxText as dt,useSyntaxLines as ft}from"./src/components/SyntaxText.mjs";import{HashlineLines as pt}from"./src/components/HashlineLines.mjs";import{Kbd as mt}from"./src/components/Kbd.mjs";import{Label as ht}from"./src/components/Label.mjs";import{Markdown as gt}from"./src/components/Markdown.mjs";import{mediaKindOf as _t}from"./src/lib/media.mjs";import{PdfPreview as vt,resolvePdfViewportRegion as yt}from"./src/components/PdfPreview.mjs";import{MediaPreview as bt}from"./src/components/MediaPreview.mjs";import{STATUS_EDGE as xt,StatusBadge as St,statusBadgeVariants as Ct}from"./src/components/StatusBadge.mjs";import{MessageItem as wt,MessageItemBody as Tt,MessageItemGroup as Et,MessageItemHeader as Dt,MessageItemStatus as Ot,STATUS_GLYPH as kt,STATUS_LABEL as At,messageItemRowVariants as jt,messageItemStatusVariants as Mt,messageItemVariants as Nt,toolTone as Pt,useMessageItem as Ft}from"./src/components/MessageItem.mjs";import{MessageLines as It,messageLineVariants as Lt}from"./src/components/MessageLines.mjs";import{Panel as Rt,PanelBody as zt,PanelHeader as Bt}from"./src/components/Panel.mjs";import{Popover as Vt,PopoverAnchor as Ht,PopoverClose as Ut,PopoverContent as Wt,PopoverFooter as Gt,PopoverHeader as Kt,PopoverTrigger as qt}from"./src/components/Popover.mjs";import{Progress as Jt}from"./src/components/Progress.mjs";import{RadioGroup as Yt,RadioGroupCard as Xt,RadioGroupItem as Zt}from"./src/components/RadioGroup.mjs";import{ScrollArea as Qt,ScrollBar as $t}from"./src/components/ScrollArea.mjs";import{SectionLabel as en}from"./src/components/SectionLabel.mjs";import{Select as tn,SelectContent as nn,SelectGroup as rn,SelectItem as an,SelectLabel as on,SelectSeparator as sn,SelectTrigger as cn,SelectValue as ln}from"./src/components/Select.mjs";import{Separator as un}from"./src/components/Separator.mjs";import{Sheet as dn,SheetBody as fn,SheetClose as pn,SheetContent as mn,SheetDescription as hn,SheetFooter as gn,SheetHeader as _n,SheetOverlay as vn,SheetTitle as yn,SheetTrigger as bn}from"./src/components/Sheet.mjs";import{StreamCursor as xn}from"./src/components/StreamCursor.mjs";import{Switch as Sn}from"./src/components/Switch.mjs";import{NavTab as Cn,NavTabBadge as wn,Tabs as Tn,TabsContent as En,TabsList as Dn,TabsTrigger as On,tabBadgeVariants as kn,tabVariants as An}from"./src/components/Tabs.mjs";import{TerminalView as jn}from"./src/components/TerminalView.mjs";import{Textarea as Mn}from"./src/components/Textarea.mjs";import{Toast as Nn,ToastAction as Pn,ToastClose as Fn,ToastDescription as In,ToastProvider as Ln,ToastTitle as Rn,ToastViewport as zn,toastVariants as Bn}from"./src/components/Toast.mjs";import{ToolPathLink as Vn}from"./src/components/ToolPathLink.mjs";import{collapseLines as Hn}from"./src/lib/collapse.mjs";import{GREP_COLLAPSED_LINES as Un,READ_COLLAPSED_LINES as Wn,compactDetails as Gn,hashlineBody as Kn,parseFileHeader as qn,parseTaggedLine as Jn,presentHashlineLines as Yn,resultTextLines as Xn,takeTrailingNotice as Zn}from"./src/lib/hashlineView.mjs";import{CHIP_TO_STATUS as Qn,LINE_TONE_TO_STATUS as $n,STATUS_TO_CHIP as er,STATUS_TO_DOT as tr}from"./src/lib/tone.mjs";import{MEDIA_KINDS as nr}from"./src/types/editor.mjs";import{ACCENT_TONES as rr,CHIP_TONES as ir,DOT_TONES as ar,MESSAGE_LINE_TONES as or,STATUS_TONES as sr}from"./src/types/tone.mjs";export{rr as ACCENT_TONES,P as Accordion,F as AccordionContent,I as AccordionItem,L as AccordionTrigger,e as ActivityIcon,t as AlertIcon,z as AnsiLine,B as AnsiText,n as AudioLinesIcon,V as Avatar,H as AvatarFallback,U as AvatarImage,X as BREADCRUMB_ELLIPSIS,W as Badge,r as BookmarkPlusIcon,i as BranchIcon,Z as Breadcrumb,ee as Button,ir as CHIP_TONES,Qn as CHIP_TO_STATUS,a as CheckIcon,ke as Checkbox,o as ChevronDownIcon,s as ChevronRightIcon,c as ChevronUpIcon,l as CloseIcon,je as CodeEditor,Me as Collapsible,Ne as CollapsibleContent,Pe as CollapsibleTrigger,qe as CommandDialog,Je as CommandEmpty,Ye as CommandFooter,Xe as CommandGroup,Ze as CommandGroupLabel,Qe as CommandHeader,$e as CommandInput,et as CommandItem,tt as CommandItemLabel,nt as CommandList,u as CopyIcon,ar as DOT_TONES,ne as Dialog,re as DialogBody,ie as DialogClose,ae as DialogContent,oe as DialogDescription,se as DialogFooter,ce as DialogHeader,le as DialogTitle,ue as DialogTrigger,fe as Dot,me as DropdownMenu,he as DropdownMenuCheckboxItem,ge as DropdownMenuContent,_e as DropdownMenuGroup,ve as DropdownMenuItem,ye as DropdownMenuLabel,be as DropdownMenuRadioGroup,xe as DropdownMenuRadioItem,Se as DropdownMenuSeparator,Ce as DropdownMenuShortcut,we as DropdownMenuSub,Te as DropdownMenuSubContent,Ee as DropdownMenuSubTrigger,De as DropdownMenuTrigger,d as EditIcon,rt as EmptyState,f as EnterIcon,p as ExternalLinkIcon,m as FileIcon,h as ForkIcon,Un as GREP_COLLAPSED_LINES,g as GearIcon,pt as HashlineLines,Fe as Input,mt as Kbd,_ as KebabIcon,$n as LINE_TONE_TO_STATUS,ht as Label,v as LoaderIcon,Le as MAX_DIGIT_SHORTCUT,nr as MEDIA_KINDS,or as MESSAGE_LINE_TONES,gt as Markdown,bt as MediaPreview,y as MessageIcon,wt as MessageItem,Tt as MessageItemBody,Et as MessageItemGroup,Dt as MessageItemHeader,Ot as MessageItemStatus,It as MessageLines,b as MicIcon,Cn as NavTab,wn as NavTabBadge,Ve as OptionLabel,He as OptionList,Ue as OptionRow,x as PaletteIcon,Rt as Panel,zt as PanelBody,Bt as PanelHeader,vt as PdfPreview,S as PlusIcon,Vt as Popover,Ht as PopoverAnchor,Ut as PopoverClose,Wt as PopoverContent,Gt as PopoverFooter,Kt as PopoverHeader,qt as PopoverTrigger,Jt as Progress,C as QuoteIcon,Wn as READ_COLLAPSED_LINES,Yt as RadioGroup,Xt as RadioGroupCard,Zt as RadioGroupItem,w as RefreshIcon,T as RewindIcon,xt as STATUS_EDGE,kt as STATUS_GLYPH,At as STATUS_LABEL,sr as STATUS_TONES,er as STATUS_TO_CHIP,tr as STATUS_TO_DOT,Qt as ScrollArea,$t as ScrollBar,E as SearchIcon,en as SectionLabel,tn as Select,nn as SelectContent,rn as SelectGroup,an as SelectItem,on as SelectLabel,sn as SelectSeparator,cn as SelectTrigger,ln as SelectValue,D as SendIcon,un as Separator,dn as Sheet,fn as SheetBody,pn as SheetClose,mn as SheetContent,hn as SheetDescription,gn as SheetFooter,_n as SheetHeader,vn as SheetOverlay,yn as SheetTitle,bn as SheetTrigger,O as ShieldIcon,Ae as Skeleton,$ as Spinner,St as StatusBadge,k as StopIcon,xn as StreamCursor,Sn as Switch,ut as SyntaxLine,dt as SyntaxText,Tn as Tabs,En as TabsContent,Dn as TabsList,On as TabsTrigger,jn as TerminalView,Mn as Textarea,Nn as Toast,Pn as ToastAction,Fn as ToastClose,In as ToastDescription,Ln as ToastProvider,Rn as ToastTitle,zn as ToastViewport,Vn as ToolPathLink,K as Tooltip,q as TooltipContent,J as TooltipProvider,Y as TooltipTrigger,A as TrashIcon,j as UserIcon,M as VolumeIcon,R as ansiSpans,G as badgeVariants,Q as breadcrumbSegments,te as buttonVariants,N as cn,Hn as collapseLines,Gn as compactDetails,st as detectGrammar,de as dialogFooterVariants,pe as dotVariants,Oe as dropdownMenuItemVariants,Ie as fieldVariants,ot as grammarKeyOf,Re as handleOptionListKey,Kn as hashlineBody,it as hashlineGroups,at as hashlineGroupsKey,ct as highlightToLines,_t as mediaKindOf,jt as messageItemRowVariants,Mt as messageItemStatusVariants,Nt as messageItemVariants,Lt as messageLineVariants,ze as optionListHint,We as optionListVariants,Be as optionMarker,Ge as optionMarkerVariants,Ke as optionRowVariants,qn as parseFileHeader,Jn as parseTaggedLine,Yn as presentHashlineLines,yt as resolvePdfViewportRegion,Xn as resultTextLines,Ct as statusBadgeVariants,lt as syntaxStyleOf,kn as tabBadgeVariants,An as tabVariants,Zn as takeTrailingNotice,Bn as toastVariants,Pt as toolTone,Ft as useMessageItem,ft as useSyntaxLines};
1
+ import{ActivityIcon as e,AlertIcon as t,AudioLinesIcon as n,BookmarkPlusIcon as r,BranchIcon as i,CheckIcon as a,ChevronDownIcon as o,ChevronRightIcon as s,ChevronUpIcon as c,CloseIcon as l,CopyIcon as u,EditIcon as d,EnterIcon as f,ExternalLinkIcon as p,FileIcon as m,ForkIcon as h,GearIcon as g,KebabIcon as _,LoaderIcon as v,MessageIcon as y,MicIcon as b,PaletteIcon as x,PlusIcon as S,QuoteIcon as C,RefreshIcon as w,RewindIcon as T,SearchIcon as E,SendIcon as D,ShieldIcon as O,StopIcon as k,TrashIcon as A,UserIcon as j,VolumeIcon as M}from"./src/icons/icons.mjs";import{cn as N}from"./src/lib/cn.mjs";import{Accordion as P,AccordionContent as F,AccordionItem as I,AccordionTrigger as L}from"./src/components/Accordion.mjs";import{ansiSpans as R}from"./src/lib/ansiSpans.mjs";import{AnsiLine as z,AnsiText as B}from"./src/components/AnsiText.mjs";import{Avatar as V,AvatarFallback as H,AvatarImage as U}from"./src/components/Avatar.mjs";import{Badge as W,badgeVariants as G}from"./src/components/Badge.mjs";import{Tooltip as K,TooltipContent as q,TooltipProvider as J,TooltipTrigger as Y}from"./src/components/Tooltip.mjs";import{BREADCRUMB_ELLIPSIS as X,Breadcrumb as Z,breadcrumbSegments as Q}from"./src/components/Breadcrumb.mjs";import{Spinner as $}from"./src/components/Spinner.mjs";import{Button as ee,buttonVariants as te}from"./src/components/Button.mjs";import{Dialog as ne,DialogBody as re,DialogClose as ie,DialogContent as ae,DialogDescription as oe,DialogFooter as se,DialogHeader as ce,DialogTitle as le,DialogTrigger as ue,dialogFooterVariants as de}from"./src/components/Dialog.mjs";import{Dot as fe,dotVariants as pe}from"./src/components/Dot.mjs";import{Drawer as me}from"./src/components/Drawer.mjs";import{DropdownMenu as he,DropdownMenuCheckboxItem as ge,DropdownMenuContent as _e,DropdownMenuGroup as ve,DropdownMenuItem as ye,DropdownMenuLabel as be,DropdownMenuRadioGroup as xe,DropdownMenuRadioItem as Se,DropdownMenuSeparator as Ce,DropdownMenuShortcut as we,DropdownMenuSub as Te,DropdownMenuSubContent as Ee,DropdownMenuSubTrigger as De,DropdownMenuTrigger as Oe,dropdownMenuItemVariants as ke}from"./src/components/DropdownMenu.mjs";import{Checkbox as Ae}from"./src/components/Checkbox.mjs";import{Skeleton as je}from"./src/components/Skeleton.mjs";import{CodeEditor as Me}from"./src/components/CodeEditor.mjs";import{Collapsible as Ne,CollapsibleContent as Pe,CollapsibleTrigger as Fe}from"./src/components/Collapsible.mjs";import{Input as Ie,fieldVariants as Le}from"./src/components/Input.mjs";import{MAX_DIGIT_SHORTCUT as Re,handleOptionListKey as ze,optionListHint as Be,optionMarker as Ve}from"./src/lib/optionList.mjs";import{OptionLabel as He,OptionList as Ue,OptionRow as We,optionListVariants as Ge,optionMarkerVariants as Ke,optionRowVariants as qe}from"./src/components/OptionList.mjs";import{CommandDialog as Je,CommandEmpty as Ye,CommandFooter as Xe,CommandGroup as Ze,CommandGroupLabel as Qe,CommandHeader as $e,CommandInput as et,CommandItem as tt,CommandItemLabel as nt,CommandList as rt}from"./src/components/Command.mjs";import{EmptyState as it}from"./src/components/EmptyState.mjs";import{hashlineGroups as at,hashlineGroupsKey as ot}from"./src/lib/hashlineHighlight.mjs";import{grammarKeyOf as st}from"./src/lib/editorLanguage.mjs";import{detectGrammar as ct,highlightToLines as lt,syntaxStyleOf as ut}from"./src/lib/syntaxHighlight.mjs";import{SyntaxLine as dt,SyntaxText as ft,useSyntaxLines as pt}from"./src/components/SyntaxText.mjs";import{HashlineLines as mt}from"./src/components/HashlineLines.mjs";import{Kbd as ht}from"./src/components/Kbd.mjs";import{Label as gt}from"./src/components/Label.mjs";import{Markdown as _t}from"./src/components/Markdown.mjs";import{mediaKindOf as vt}from"./src/lib/media.mjs";import{PdfPreview as yt,resolvePdfViewportRegion as bt}from"./src/components/PdfPreview.mjs";import{MediaPreview as xt}from"./src/components/MediaPreview.mjs";import{STATUS_EDGE as St,StatusBadge as Ct,statusBadgeVariants as wt}from"./src/components/StatusBadge.mjs";import{MessageItem as Tt,MessageItemBody as Et,MessageItemGroup as Dt,MessageItemHeader as Ot,MessageItemStatus as kt,STATUS_GLYPH as At,STATUS_LABEL as jt,messageItemRowVariants as Mt,messageItemStatusVariants as Nt,messageItemVariants as Pt,toolTone as Ft,useMessageItem as It}from"./src/components/MessageItem.mjs";import{MessageLines as Lt,messageLineVariants as Rt}from"./src/components/MessageLines.mjs";import{Panel as zt,PanelBody as Bt,PanelHeader as Vt}from"./src/components/Panel.mjs";import{Popover as Ht,PopoverAnchor as Ut,PopoverClose as Wt,PopoverContent as Gt,PopoverFooter as Kt,PopoverHeader as qt,PopoverTrigger as Jt}from"./src/components/Popover.mjs";import{Progress as Yt}from"./src/components/Progress.mjs";import{RadioGroup as Xt,RadioGroupCard as Zt,RadioGroupItem as Qt}from"./src/components/RadioGroup.mjs";import{ScrollArea as $t,ScrollBar as en}from"./src/components/ScrollArea.mjs";import{SectionLabel as tn}from"./src/components/SectionLabel.mjs";import{Select as nn,SelectContent as rn,SelectGroup as an,SelectItem as on,SelectLabel as sn,SelectSeparator as cn,SelectTrigger as ln,SelectValue as un}from"./src/components/Select.mjs";import{Separator as dn}from"./src/components/Separator.mjs";import{Sheet as fn,SheetBody as pn,SheetClose as mn,SheetContent as hn,SheetDescription as gn,SheetFooter as _n,SheetHeader as vn,SheetOverlay as yn,SheetTitle as bn,SheetTrigger as xn}from"./src/components/Sheet.mjs";import{StreamCursor as Sn}from"./src/components/StreamCursor.mjs";import{Switch as Cn}from"./src/components/Switch.mjs";import{NavTab as wn,NavTabBadge as Tn,Tabs as En,TabsContent as Dn,TabsList as On,TabsTrigger as kn,tabBadgeVariants as An,tabVariants as jn}from"./src/components/Tabs.mjs";import{TerminalView as Mn}from"./src/components/TerminalView.mjs";import{Textarea as Nn}from"./src/components/Textarea.mjs";import{Toast as Pn,ToastAction as Fn,ToastClose as In,ToastDescription as Ln,ToastProvider as Rn,ToastTitle as zn,ToastViewport as Bn,toastVariants as Vn}from"./src/components/Toast.mjs";import{ToolPathLink as Hn}from"./src/components/ToolPathLink.mjs";import{collapseLines as Un}from"./src/lib/collapse.mjs";import{GREP_COLLAPSED_LINES as Wn,READ_COLLAPSED_LINES as Gn,compactDetails as Kn,hashlineBody as qn,parseFileHeader as Jn,parseTaggedLine as Yn,presentHashlineLines as Xn,resultTextLines as Zn,takeTrailingNotice as Qn}from"./src/lib/hashlineView.mjs";import{CHIP_TO_STATUS as $n,LINE_TONE_TO_STATUS as er,STATUS_TO_CHIP as tr,STATUS_TO_DOT as nr}from"./src/lib/tone.mjs";import{MEDIA_KINDS as rr}from"./src/types/editor.mjs";import{ACCENT_TONES as ir,CHIP_TONES as ar,DOT_TONES as or,MESSAGE_LINE_TONES as sr,STATUS_TONES as cr}from"./src/types/tone.mjs";export{ir as ACCENT_TONES,P as Accordion,F as AccordionContent,I as AccordionItem,L as AccordionTrigger,e as ActivityIcon,t as AlertIcon,z as AnsiLine,B as AnsiText,n as AudioLinesIcon,V as Avatar,H as AvatarFallback,U as AvatarImage,X as BREADCRUMB_ELLIPSIS,W as Badge,r as BookmarkPlusIcon,i as BranchIcon,Z as Breadcrumb,ee as Button,ar as CHIP_TONES,$n as CHIP_TO_STATUS,a as CheckIcon,Ae as Checkbox,o as ChevronDownIcon,s as ChevronRightIcon,c as ChevronUpIcon,l as CloseIcon,Me as CodeEditor,Ne as Collapsible,Pe as CollapsibleContent,Fe as CollapsibleTrigger,Je as CommandDialog,Ye as CommandEmpty,Xe as CommandFooter,Ze as CommandGroup,Qe as CommandGroupLabel,$e as CommandHeader,et as CommandInput,tt as CommandItem,nt as CommandItemLabel,rt as CommandList,u as CopyIcon,or as DOT_TONES,ne as Dialog,re as DialogBody,ie as DialogClose,ae as DialogContent,oe as DialogDescription,se as DialogFooter,ce as DialogHeader,le as DialogTitle,ue as DialogTrigger,fe as Dot,me as Drawer,he as DropdownMenu,ge as DropdownMenuCheckboxItem,_e as DropdownMenuContent,ve as DropdownMenuGroup,ye as DropdownMenuItem,be as DropdownMenuLabel,xe as DropdownMenuRadioGroup,Se as DropdownMenuRadioItem,Ce as DropdownMenuSeparator,we as DropdownMenuShortcut,Te as DropdownMenuSub,Ee as DropdownMenuSubContent,De as DropdownMenuSubTrigger,Oe as DropdownMenuTrigger,d as EditIcon,it as EmptyState,f as EnterIcon,p as ExternalLinkIcon,m as FileIcon,h as ForkIcon,Wn as GREP_COLLAPSED_LINES,g as GearIcon,mt as HashlineLines,Ie as Input,ht as Kbd,_ as KebabIcon,er as LINE_TONE_TO_STATUS,gt as Label,v as LoaderIcon,Re as MAX_DIGIT_SHORTCUT,rr as MEDIA_KINDS,sr as MESSAGE_LINE_TONES,_t as Markdown,xt as MediaPreview,y as MessageIcon,Tt as MessageItem,Et as MessageItemBody,Dt as MessageItemGroup,Ot as MessageItemHeader,kt as MessageItemStatus,Lt as MessageLines,b as MicIcon,wn as NavTab,Tn as NavTabBadge,He as OptionLabel,Ue as OptionList,We as OptionRow,x as PaletteIcon,zt as Panel,Bt as PanelBody,Vt as PanelHeader,yt as PdfPreview,S as PlusIcon,Ht as Popover,Ut as PopoverAnchor,Wt as PopoverClose,Gt as PopoverContent,Kt as PopoverFooter,qt as PopoverHeader,Jt as PopoverTrigger,Yt as Progress,C as QuoteIcon,Gn as READ_COLLAPSED_LINES,Xt as RadioGroup,Zt as RadioGroupCard,Qt as RadioGroupItem,w as RefreshIcon,T as RewindIcon,St as STATUS_EDGE,At as STATUS_GLYPH,jt as STATUS_LABEL,cr as STATUS_TONES,tr as STATUS_TO_CHIP,nr as STATUS_TO_DOT,$t as ScrollArea,en as ScrollBar,E as SearchIcon,tn as SectionLabel,nn as Select,rn as SelectContent,an as SelectGroup,on as SelectItem,sn as SelectLabel,cn as SelectSeparator,ln as SelectTrigger,un as SelectValue,D as SendIcon,dn as Separator,fn as Sheet,pn as SheetBody,mn as SheetClose,hn as SheetContent,gn as SheetDescription,_n as SheetFooter,vn as SheetHeader,yn as SheetOverlay,bn as SheetTitle,xn as SheetTrigger,O as ShieldIcon,je as Skeleton,$ as Spinner,Ct as StatusBadge,k as StopIcon,Sn as StreamCursor,Cn as Switch,dt as SyntaxLine,ft as SyntaxText,En as Tabs,Dn as TabsContent,On as TabsList,kn as TabsTrigger,Mn as TerminalView,Nn as Textarea,Pn as Toast,Fn as ToastAction,In as ToastClose,Ln as ToastDescription,Rn as ToastProvider,zn as ToastTitle,Bn as ToastViewport,Hn as ToolPathLink,K as Tooltip,q as TooltipContent,J as TooltipProvider,Y as TooltipTrigger,A as TrashIcon,j as UserIcon,M as VolumeIcon,R as ansiSpans,G as badgeVariants,Q as breadcrumbSegments,te as buttonVariants,N as cn,Un as collapseLines,Kn as compactDetails,ct as detectGrammar,de as dialogFooterVariants,pe as dotVariants,ke as dropdownMenuItemVariants,Le as fieldVariants,st as grammarKeyOf,ze as handleOptionListKey,qn as hashlineBody,at as hashlineGroups,ot as hashlineGroupsKey,lt as highlightToLines,vt as mediaKindOf,Mt as messageItemRowVariants,Nt as messageItemStatusVariants,Pt as messageItemVariants,Rt as messageLineVariants,Be as optionListHint,Ge as optionListVariants,Ve as optionMarker,Ke as optionMarkerVariants,qe as optionRowVariants,Jn as parseFileHeader,Yn as parseTaggedLine,Xn as presentHashlineLines,bt as resolvePdfViewportRegion,Zn as resultTextLines,wt as statusBadgeVariants,ut as syntaxStyleOf,An as tabBadgeVariants,jn as tabVariants,Qn as takeTrailingNotice,Vn as toastVariants,Ft as toolTone,It as useMessageItem,pt as useSyntaxLines};
@@ -1,2 +1,2 @@
1
- require("../icons/icons.cjs");const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime"),r=require("lucide-react");function i(e){return(0,n.jsx)(t.Accordion.Root,{"data-slot":`accordion`,...e})}function a({className:r,...i}){return(0,n.jsx)(t.Accordion.Item,{"data-slot":`accordion-item`,className:e.cn(`border-b border-doom-border-soft last:border-b-0`,r),...i})}function o({className:i,children:a,...o}){return(0,n.jsx)(t.Accordion.Header,{className:`flex`,children:(0,n.jsxs)(t.Accordion.Trigger,{"data-slot":`accordion-trigger`,className:e.cn(`flex flex-1 cursor-pointer items-center justify-between gap-2 py-2 text-left text-sm text-doom-hi outline-none transition-colors hover:text-doom-blue focus-visible:text-doom-blue [&[data-state=open]>svg]:rotate-180`,i),...o,children:[a,(0,n.jsx)(r.ChevronDown,{className:`h-3 w-3 shrink-0 text-doom-faint transition-transform`})]})})}function s({className:r,...i}){return(0,n.jsx)(t.Accordion.Content,{"data-slot":`accordion-content`,className:e.cn(`overflow-hidden pb-2 text-sm text-doom-dim`,r),...i})}exports.Accordion=i,exports.AccordionContent=s,exports.AccordionItem=a,exports.AccordionTrigger=o;
1
+ require("../icons/icons.cjs");const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime"),r=require("lucide-react");function i(e){return/* @__PURE__ */ (0,n.jsx)(t.Accordion.Root,{"data-slot":`accordion`,...e})}function a({className:r,...i}){return/* @__PURE__ */ (0,n.jsx)(t.Accordion.Item,{"data-slot":`accordion-item`,className:e.cn(`border-b border-doom-border-soft last:border-b-0`,r),...i})}function o({className:i,children:a,...o}){return/* @__PURE__ */ (0,n.jsx)(t.Accordion.Header,{className:`flex`,children:/* @__PURE__ */ (0,n.jsxs)(t.Accordion.Trigger,{"data-slot":`accordion-trigger`,className:e.cn(`flex flex-1 cursor-pointer items-center justify-between gap-2 py-2 text-left text-sm text-doom-hi outline-none transition-colors hover:text-doom-blue focus-visible:text-doom-blue [&[data-state=open]>svg]:rotate-180`,i),...o,children:[a,/* @__PURE__ */ (0,n.jsx)(r.ChevronDown,{className:`h-3 w-3 shrink-0 text-doom-faint transition-transform`})]})})}function s({className:r,...i}){return/* @__PURE__ */ (0,n.jsx)(t.Accordion.Content,{"data-slot":`accordion-content`,className:e.cn(`overflow-hidden pb-2 text-sm text-doom-dim`,r),...i})}exports.Accordion=i,exports.AccordionContent=s,exports.AccordionItem=a,exports.AccordionTrigger=o;
2
2
  //# sourceMappingURL=Accordion.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.cjs","names":["AccordionPrimitive","cn","ChevronDownIcon"],"sources":["../../../src/components/Accordion.tsx"],"sourcesContent":["import { Accordion as AccordionPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { ChevronDownIcon } from '../icons/icons';\nimport { cn } from '../lib/cn';\n\n/** Several collapsibles that know about each other; pass type=\"single\" for one open at a time. */\nexport function Accordion(props: ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nexport function AccordionItem({ className, ...props }: ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn('border-b border-doom-border-soft last:border-b-0', className)}\n {...props}\n />\n );\n}\n\nexport function AccordionTrigger({ className, children, ...props }: ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n 'flex flex-1 cursor-pointer items-center justify-between gap-2 py-2 text-left text-sm text-doom-hi outline-none transition-colors hover:text-doom-blue focus-visible:text-doom-blue [&[data-state=open]>svg]:rotate-180',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"h-3 w-3 shrink-0 text-doom-faint transition-transform\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nexport function AccordionContent({ className, ...props }: ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className={cn('overflow-hidden pb-2 text-sm text-doom-dim', className)}\n {...props}\n />\n );\n}\n"],"mappings":"kJAOA,SAAgB,EAAU,EAAuD,CAC/E,OAAO,EAAA,EAAA,IAAA,CAACA,EAAAA,UAAmB,KAApB,CAAyB,YAAU,YAAY,GAAI,CAAQ,CAAA,CACpE,CAEA,SAAgB,EAAc,CAAE,YAAW,GAAG,GAAyD,CACrG,OACE,EAAA,EAAA,IAAA,CAACA,EAAAA,UAAmB,KAApB,CACE,YAAU,iBACV,UAAWC,EAAAA,GAAG,mDAAoD,CAAS,EAC3E,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAiB,CAAE,YAAW,WAAU,GAAG,GAA4D,CACrH,OACE,EAAA,EAAA,IAAA,CAACD,EAAAA,UAAmB,OAApB,CAA2B,UAAU,OACnC,UAAA,EAAA,EAAA,KAAA,CAACA,EAAAA,UAAmB,QAApB,CACE,YAAU,oBACV,UAAWC,EAAAA,GACT,yNACA,CACF,EACA,GAAI,EANN,SAAA,CAQG,GACD,EAAA,EAAA,IAAA,CAACC,EAAAA,YAAD,CAAiB,UAAU,uDAAyD,CAAA,CAC1D,GACH,CAAA,CAE/B,CAEA,SAAgB,EAAiB,CAAE,YAAW,GAAG,GAA4D,CAC3G,OACE,EAAA,EAAA,IAAA,CAACF,EAAAA,UAAmB,QAApB,CACE,YAAU,oBACV,UAAWC,EAAAA,GAAG,6CAA8C,CAAS,EACrE,GAAI,CACL,CAAA,CAEL"}
1
+ {"version":3,"file":"Accordion.cjs","names":["AccordionPrimitive","cn","ChevronDownIcon"],"sources":["../../../src/components/Accordion.tsx"],"sourcesContent":["import { Accordion as AccordionPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { ChevronDownIcon } from '../icons/icons';\nimport { cn } from '../lib/cn';\n\n/** Several collapsibles that know about each other; pass type=\"single\" for one open at a time. */\nexport function Accordion(props: ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nexport function AccordionItem({ className, ...props }: ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn('border-b border-doom-border-soft last:border-b-0', className)}\n {...props}\n />\n );\n}\n\nexport function AccordionTrigger({ className, children, ...props }: ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n 'flex flex-1 cursor-pointer items-center justify-between gap-2 py-2 text-left text-sm text-doom-hi outline-none transition-colors hover:text-doom-blue focus-visible:text-doom-blue [&[data-state=open]>svg]:rotate-180',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"h-3 w-3 shrink-0 text-doom-faint transition-transform\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nexport function AccordionContent({ className, ...props }: ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className={cn('overflow-hidden pb-2 text-sm text-doom-dim', className)}\n {...props}\n />\n );\n}\n"],"mappings":"kJAOA,SAAgB,EAAU,EAAuD,CAC/E,MAAO,iBAAA,EAAA,EAAA,IAAA,CAACA,EAAAA,UAAmB,KAApB,CAAyB,YAAU,YAAY,GAAI,CAAQ,CAAA,CACpE,CAEA,SAAgB,EAAc,CAAE,YAAW,GAAG,GAAyD,CACrG,MACE,iBAAA,EAAA,EAAA,IAAA,CAACA,EAAAA,UAAmB,KAApB,CACE,YAAU,iBACV,UAAWC,EAAAA,GAAG,mDAAoD,CAAS,EAC3E,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAiB,CAAE,YAAW,WAAU,GAAG,GAA4D,CACrH,MACE,iBAAA,EAAA,EAAA,IAAA,CAACD,EAAAA,UAAmB,OAApB,CAA2B,UAAU,OACnC,SAAA,iBAAA,EAAA,EAAA,KAAA,CAACA,EAAAA,UAAmB,QAApB,CACE,YAAU,oBACV,UAAWC,EAAAA,GACT,yNACA,CACF,EACA,GAAI,EANN,SAAA,CAQG,EACD,iBAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,YAAD,CAAiB,UAAU,uDAAyD,CAAA,CAC1D,GACH,CAAA,CAE/B,CAEA,SAAgB,EAAiB,CAAE,YAAW,GAAG,GAA4D,CAC3G,MACE,iBAAA,EAAA,EAAA,IAAA,CAACF,EAAAA,UAAmB,QAApB,CACE,YAAU,oBACV,UAAWC,EAAAA,GAAG,6CAA8C,CAAS,EACrE,GAAI,CACL,CAAA,CAEL"}
@@ -1,2 +1,2 @@
1
- import{ChevronDownIcon as e}from"../icons/icons.mjs";import{cn as t}from"../lib/cn.mjs";import{Accordion as n}from"radix-ui";import{jsx as r,jsxs as i}from"react/jsx-runtime";function a(e){return r(n.Root,{"data-slot":`accordion`,...e})}function o({className:e,...i}){return r(n.Item,{"data-slot":`accordion-item`,className:t(`border-b border-doom-border-soft last:border-b-0`,e),...i})}function s({className:a,children:o,...s}){return r(n.Header,{className:`flex`,children:i(n.Trigger,{"data-slot":`accordion-trigger`,className:t(`flex flex-1 cursor-pointer items-center justify-between gap-2 py-2 text-left text-sm text-doom-hi outline-none transition-colors hover:text-doom-blue focus-visible:text-doom-blue [&[data-state=open]>svg]:rotate-180`,a),...s,children:[o,r(e,{className:`h-3 w-3 shrink-0 text-doom-faint transition-transform`})]})})}function c({className:e,...i}){return r(n.Content,{"data-slot":`accordion-content`,className:t(`overflow-hidden pb-2 text-sm text-doom-dim`,e),...i})}export{a as Accordion,c as AccordionContent,o as AccordionItem,s as AccordionTrigger};
1
+ import{ChevronDownIcon as e}from"../icons/icons.mjs";import{cn as t}from"../lib/cn.mjs";import{Accordion as n}from"radix-ui";import{jsx as r,jsxs as i}from"react/jsx-runtime";function a(e){return/* @__PURE__ */ r(n.Root,{"data-slot":`accordion`,...e})}function o({className:e,...i}){return/* @__PURE__ */ r(n.Item,{"data-slot":`accordion-item`,className:t(`border-b border-doom-border-soft last:border-b-0`,e),...i})}function s({className:a,children:o,...s}){return/* @__PURE__ */ r(n.Header,{className:`flex`,children:/* @__PURE__ */ i(n.Trigger,{"data-slot":`accordion-trigger`,className:t(`flex flex-1 cursor-pointer items-center justify-between gap-2 py-2 text-left text-sm text-doom-hi outline-none transition-colors hover:text-doom-blue focus-visible:text-doom-blue [&[data-state=open]>svg]:rotate-180`,a),...s,children:[o,/* @__PURE__ */ r(e,{className:`h-3 w-3 shrink-0 text-doom-faint transition-transform`})]})})}function c({className:e,...i}){return/* @__PURE__ */ r(n.Content,{"data-slot":`accordion-content`,className:t(`overflow-hidden pb-2 text-sm text-doom-dim`,e),...i})}export{a as Accordion,c as AccordionContent,o as AccordionItem,s as AccordionTrigger};
2
2
  //# sourceMappingURL=Accordion.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.mjs","names":["Accordion","AccordionPrimitive"],"sources":["../../../src/components/Accordion.tsx"],"sourcesContent":["import { Accordion as AccordionPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { ChevronDownIcon } from '../icons/icons';\nimport { cn } from '../lib/cn';\n\n/** Several collapsibles that know about each other; pass type=\"single\" for one open at a time. */\nexport function Accordion(props: ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nexport function AccordionItem({ className, ...props }: ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn('border-b border-doom-border-soft last:border-b-0', className)}\n {...props}\n />\n );\n}\n\nexport function AccordionTrigger({ className, children, ...props }: ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n 'flex flex-1 cursor-pointer items-center justify-between gap-2 py-2 text-left text-sm text-doom-hi outline-none transition-colors hover:text-doom-blue focus-visible:text-doom-blue [&[data-state=open]>svg]:rotate-180',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"h-3 w-3 shrink-0 text-doom-faint transition-transform\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nexport function AccordionContent({ className, ...props }: ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className={cn('overflow-hidden pb-2 text-sm text-doom-dim', className)}\n {...props}\n />\n );\n}\n"],"mappings":"+KAOA,SAAgBA,EAAU,EAAuD,CAC/E,OAAO,EAACC,EAAmB,KAApB,CAAyB,YAAU,YAAY,GAAI,CAAQ,CAAA,CACpE,CAEA,SAAgB,EAAc,CAAE,YAAW,GAAG,GAAyD,CACrG,OACE,EAACA,EAAmB,KAApB,CACE,YAAU,iBACV,UAAW,EAAG,mDAAoD,CAAS,EAC3E,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAiB,CAAE,YAAW,WAAU,GAAG,GAA4D,CACrH,OACE,EAACA,EAAmB,OAApB,CAA2B,UAAU,OACnC,SAAA,EAACA,EAAmB,QAApB,CACE,YAAU,oBACV,UAAW,EACT,yNACA,CACF,EACA,GAAI,EANN,SAAA,CAQG,EACD,EAAC,EAAD,CAAiB,UAAU,uDAAyD,CAAA,CAC1D,GACH,CAAA,CAE/B,CAEA,SAAgB,EAAiB,CAAE,YAAW,GAAG,GAA4D,CAC3G,OACE,EAACA,EAAmB,QAApB,CACE,YAAU,oBACV,UAAW,EAAG,6CAA8C,CAAS,EACrE,GAAI,CACL,CAAA,CAEL"}
1
+ {"version":3,"file":"Accordion.mjs","names":["Accordion","AccordionPrimitive"],"sources":["../../../src/components/Accordion.tsx"],"sourcesContent":["import { Accordion as AccordionPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { ChevronDownIcon } from '../icons/icons';\nimport { cn } from '../lib/cn';\n\n/** Several collapsibles that know about each other; pass type=\"single\" for one open at a time. */\nexport function Accordion(props: ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\nexport function AccordionItem({ className, ...props }: ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn('border-b border-doom-border-soft last:border-b-0', className)}\n {...props}\n />\n );\n}\n\nexport function AccordionTrigger({ className, children, ...props }: ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n 'flex flex-1 cursor-pointer items-center justify-between gap-2 py-2 text-left text-sm text-doom-hi outline-none transition-colors hover:text-doom-blue focus-visible:text-doom-blue [&[data-state=open]>svg]:rotate-180',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"h-3 w-3 shrink-0 text-doom-faint transition-transform\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nexport function AccordionContent({ className, ...props }: ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className={cn('overflow-hidden pb-2 text-sm text-doom-dim', className)}\n {...props}\n />\n );\n}\n"],"mappings":"+KAOA,SAAgBA,EAAU,EAAuD,CAC/E,MAAO,kBAACC,EAAmB,KAApB,CAAyB,YAAU,YAAY,GAAI,CAAQ,CAAA,CACpE,CAEA,SAAgB,EAAc,CAAE,YAAW,GAAG,GAAyD,CACrG,MACE,kBAACA,EAAmB,KAApB,CACE,YAAU,iBACV,UAAW,EAAG,mDAAoD,CAAS,EAC3E,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAiB,CAAE,YAAW,WAAU,GAAG,GAA4D,CACrH,MACE,kBAACA,EAAmB,OAApB,CAA2B,UAAU,OACnC,SAAA,kBAACA,EAAmB,QAApB,CACE,YAAU,oBACV,UAAW,EACT,yNACA,CACF,EACA,GAAI,EANN,SAAA,CAQG,EACD,kBAAC,EAAD,CAAiB,UAAU,uDAAyD,CAAA,CAC1D,GACH,CAAA,CAE/B,CAEA,SAAgB,EAAiB,CAAE,YAAW,GAAG,GAA4D,CAC3G,MACE,kBAACA,EAAmB,QAApB,CACE,YAAU,oBACV,UAAW,EAAG,6CAA8C,CAAS,EACrE,GAAI,CACL,CAAA,CAEL"}
@@ -1,4 +1,4 @@
1
- const e=require("../lib/cn.cjs"),t=require("../lib/ansiSpans.cjs");let n=require("react/jsx-runtime"),r=require("react");function i(t){return e.cn(t.className,t.bold===!0&&`font-bold`,t.faint===!0&&`opacity-60`,t.italic===!0&&`italic`,t.underline===!0&&`underline`,t.inverse===!0&&`bg-doom-text text-doom-deep`)}function a({spans:e}){return(0,n.jsx)(n.Fragment,{children:e.map((e,t)=>(0,n.jsx)(`span`,{className:i(e),style:e.color===void 0?void 0:{color:e.color},children:e.text},t))})}function o({line:e,className:i,...o}){let s=(0,r.useMemo)(()=>t.ansiSpans(e),[e]);return(0,n.jsx)(`span`,{"data-slot":`ansi-line`,className:i,...o,children:(0,n.jsx)(a,{spans:s})})}function s({text:e,...i}){let o=(0,r.useMemo)(()=>e.split(`
2
- `).map(e=>t.ansiSpans(e)),[e]);return(0,n.jsx)(`pre`,{"data-slot":`ansi-text`,...i,children:o.map((e,t)=>(0,n.jsxs)(r.Fragment,{children:[t>0?`
3
- `:null,(0,n.jsx)(a,{spans:e})]},t))})}exports.AnsiLine=o,exports.AnsiText=s;
1
+ const e=require("../lib/cn.cjs"),t=require("../lib/ansiSpans.cjs");let n=require("react/jsx-runtime"),r=require("react");function i(t){return e.cn(t.className,t.bold===!0&&`font-bold`,t.faint===!0&&`opacity-60`,t.italic===!0&&`italic`,t.underline===!0&&`underline`,t.inverse===!0&&`bg-doom-text text-doom-deep`)}function a({spans:e}){return/* @__PURE__ */ (0,n.jsx)(n.Fragment,{children:e.map((e,t)=>/* @__PURE__ */ (0,n.jsx)(`span`,{className:i(e),style:e.color===void 0?void 0:{color:e.color},children:e.text},t))})}function o({line:e,className:i,...o}){let s=(0,r.useMemo)(()=>t.ansiSpans(e),[e]);return/* @__PURE__ */ (0,n.jsx)(`span`,{"data-slot":`ansi-line`,className:i,...o,children:/* @__PURE__ */ (0,n.jsx)(a,{spans:s})})}function s({text:e,...i}){let o=(0,r.useMemo)(()=>e.split(`
2
+ `).map(e=>t.ansiSpans(e)),[e]);return/* @__PURE__ */ (0,n.jsx)(`pre`,{"data-slot":`ansi-text`,...i,children:o.map((e,t)=>/* @__PURE__ */ (0,n.jsxs)(r.Fragment,{children:[t>0?`
3
+ `:null,/* @__PURE__ */ (0,n.jsx)(a,{spans:e})]},t))})}exports.AnsiLine=o,exports.AnsiText=s;
4
4
  //# sourceMappingURL=AnsiText.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"AnsiText.cjs","names":["cn","useMemo","ansiSpans","Fragment"],"sources":["../../../src/components/AnsiText.tsx"],"sourcesContent":["import { type ComponentProps, Fragment, useMemo } from 'react';\n\nimport { type AnsiSpan, ansiSpans } from '../lib/ansiSpans';\nimport { cn } from '../lib/cn';\n\n/**\n * Terminal output with the colours it was written in.\n *\n * Both readers of terminal text render it the same way, so the mapping from a\n * span's attributes to classes lives here rather than in each of them: a\n * captured workflow screen is a line at a time, and a runner log is a block.\n * Parsing is synchronous and cheap; text with no escapes in it takes a path\n * that allocates nothing.\n *\n * DESIGN PATTERNS:\n * - Named colours arrive as theme classes from `ansiSpans`; only 256-colour\n * and truecolour, which no token stands for, come through as a style.\n * - One element per line, so wrapping and selection behave as they do in a pre.\n *\n * AVOID:\n * - Carrying attributes across lines. A captured screen and a bounded log tail\n * both start mid-stream.\n */\n\nfunction spanClassName(span: AnsiSpan): string {\n return cn(\n span.className,\n span.bold === true && 'font-bold',\n span.faint === true && 'opacity-60',\n span.italic === true && 'italic',\n span.underline === true && 'underline',\n span.inverse === true && 'bg-doom-text text-doom-deep',\n );\n}\n\nfunction AnsiSpans({ spans }: { spans: readonly AnsiSpan[] }) {\n return (\n <>\n {spans.map((span, index) => (\n <span\n key={index}\n className={spanClassName(span)}\n style={span.color === undefined ? undefined : { color: span.color }}\n >\n {span.text}\n </span>\n ))}\n </>\n );\n}\n\nexport interface AnsiLineProps extends Omit<ComponentProps<'span'>, 'children'> {\n /** One line of terminal output, escapes and all. */\n line: string;\n}\n\n/** One line, for a caller that already lays out a screen row by row. */\nexport function AnsiLine({ line, className, ...props }: AnsiLineProps) {\n const spans = useMemo(() => ansiSpans(line), [line]);\n return (\n <span data-slot=\"ansi-line\" className={className} {...props}>\n <AnsiSpans spans={spans} />\n </span>\n );\n}\n\nexport interface AnsiTextProps extends Omit<ComponentProps<'pre'>, 'children'> {\n /** Terminal output, newline separated, escapes and all. */\n text: string;\n}\n\n/** A block of terminal output: a log tail, or anything else that arrives whole. */\nexport function AnsiText({ text, ...props }: AnsiTextProps) {\n const lines = useMemo(() => text.split('\\n').map((line) => ansiSpans(line)), [text]);\n return (\n <pre data-slot=\"ansi-text\" {...props}>\n {lines.map((spans, index) => (\n <Fragment key={index}>\n {index > 0 ? '\\n' : null}\n <AnsiSpans spans={spans} />\n </Fragment>\n ))}\n </pre>\n );\n}\n"],"mappings":"yHAwBA,SAAS,EAAc,EAAwB,CAC7C,OAAOA,EAAAA,GACL,EAAK,UACL,EAAK,OAAS,IAAQ,YACtB,EAAK,QAAU,IAAQ,aACvB,EAAK,SAAW,IAAQ,SACxB,EAAK,YAAc,IAAQ,YAC3B,EAAK,UAAY,IAAQ,6BAC3B,CACF,CAEA,SAAS,EAAU,CAAE,SAAyC,CAC5D,OACE,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAA,SACG,EAAM,KAAK,EAAM,KAChB,EAAA,EAAA,IAAA,CAAC,OAAD,CAEE,UAAW,EAAc,CAAI,EAC7B,MAAO,EAAK,QAAU,IAAA,GAAY,IAAA,GAAY,CAAE,MAAO,EAAK,KAAM,EAEjE,SAAA,EAAK,IACF,EALC,CAKD,CACP,CACD,CAAA,CAEN,CAQA,SAAgB,EAAS,CAAE,OAAM,YAAW,GAAG,GAAwB,CACrE,IAAM,GAAA,EAAQC,EAAAA,QAAAA,KAAcC,EAAAA,UAAU,CAAI,EAAG,CAAC,CAAI,CAAC,EACnD,OACE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,YAAU,YAAuB,YAAW,GAAI,EACpD,UAAA,EAAA,EAAA,IAAA,CAAC,EAAD,CAAkB,OAAQ,CAAA,CACtB,CAAA,CAEV,CAQA,SAAgB,EAAS,CAAE,OAAM,GAAG,GAAwB,CAC1D,IAAM,GAAA,EAAQD,EAAAA,QAAAA,KAAc,EAAK,MAAM;CAAI,CAAC,CAAC,IAAK,GAASC,EAAAA,UAAU,CAAI,CAAC,EAAG,CAAC,CAAI,CAAC,EACnF,OACE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,YAAU,YAAY,GAAI,EAC5B,SAAA,EAAM,KAAK,EAAO,KACjB,EAAA,EAAA,KAAA,CAACC,EAAAA,SAAD,CAAA,SAAA,CACG,EAAQ,EAAI;EAAO,MACpB,EAAA,EAAA,IAAA,CAAC,EAAD,CAAkB,OAAQ,CAAA,CAClB,CAAA,EAHK,CAGL,CACX,CACE,CAAA,CAET"}
1
+ {"version":3,"file":"AnsiText.cjs","names":["cn","useMemo","ansiSpans","Fragment"],"sources":["../../../src/components/AnsiText.tsx"],"sourcesContent":["import { type ComponentProps, Fragment, useMemo } from 'react';\n\nimport { type AnsiSpan, ansiSpans } from '../lib/ansiSpans';\nimport { cn } from '../lib/cn';\n\n/**\n * Terminal output with the colours it was written in.\n *\n * Both readers of terminal text render it the same way, so the mapping from a\n * span's attributes to classes lives here rather than in each of them: a\n * captured workflow screen is a line at a time, and a runner log is a block.\n * Parsing is synchronous and cheap; text with no escapes in it takes a path\n * that allocates nothing.\n *\n * DESIGN PATTERNS:\n * - Named colours arrive as theme classes from `ansiSpans`; only 256-colour\n * and truecolour, which no token stands for, come through as a style.\n * - One element per line, so wrapping and selection behave as they do in a pre.\n *\n * AVOID:\n * - Carrying attributes across lines. A captured screen and a bounded log tail\n * both start mid-stream.\n */\n\nfunction spanClassName(span: AnsiSpan): string {\n return cn(\n span.className,\n span.bold === true && 'font-bold',\n span.faint === true && 'opacity-60',\n span.italic === true && 'italic',\n span.underline === true && 'underline',\n span.inverse === true && 'bg-doom-text text-doom-deep',\n );\n}\n\nfunction AnsiSpans({ spans }: { spans: readonly AnsiSpan[] }) {\n return (\n <>\n {spans.map((span, index) => (\n <span\n key={index}\n className={spanClassName(span)}\n style={span.color === undefined ? undefined : { color: span.color }}\n >\n {span.text}\n </span>\n ))}\n </>\n );\n}\n\nexport interface AnsiLineProps extends Omit<ComponentProps<'span'>, 'children'> {\n /** One line of terminal output, escapes and all. */\n line: string;\n}\n\n/** One line, for a caller that already lays out a screen row by row. */\nexport function AnsiLine({ line, className, ...props }: AnsiLineProps) {\n const spans = useMemo(() => ansiSpans(line), [line]);\n return (\n <span data-slot=\"ansi-line\" className={className} {...props}>\n <AnsiSpans spans={spans} />\n </span>\n );\n}\n\nexport interface AnsiTextProps extends Omit<ComponentProps<'pre'>, 'children'> {\n /** Terminal output, newline separated, escapes and all. */\n text: string;\n}\n\n/** A block of terminal output: a log tail, or anything else that arrives whole. */\nexport function AnsiText({ text, ...props }: AnsiTextProps) {\n const lines = useMemo(() => text.split('\\n').map((line) => ansiSpans(line)), [text]);\n return (\n <pre data-slot=\"ansi-text\" {...props}>\n {lines.map((spans, index) => (\n <Fragment key={index}>\n {index > 0 ? '\\n' : null}\n <AnsiSpans spans={spans} />\n </Fragment>\n ))}\n </pre>\n );\n}\n"],"mappings":"yHAwBA,SAAS,EAAc,EAAwB,CAC7C,OAAOA,EAAAA,GACL,EAAK,UACL,EAAK,OAAS,IAAQ,YACtB,EAAK,QAAU,IAAQ,aACvB,EAAK,SAAW,IAAQ,SACxB,EAAK,YAAc,IAAQ,YAC3B,EAAK,UAAY,IAAQ,6BAC3B,CACF,CAEA,SAAS,EAAU,CAAE,SAAyC,CAC5D,MACE,iBAAA,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAA,SACG,EAAM,KAAK,EAAM,IAChB,iBAAA,EAAA,EAAA,IAAA,CAAC,OAAD,CAEE,UAAW,EAAc,CAAI,EAC7B,MAAO,EAAK,QAAU,IAAA,GAAY,IAAA,GAAY,CAAE,MAAO,EAAK,KAAM,EAEjE,SAAA,EAAK,IACF,EALC,CAKD,CACP,CACD,CAAA,CAEN,CAQA,SAAgB,EAAS,CAAE,OAAM,YAAW,GAAG,GAAwB,CACrE,IAAM,GAAA,EAAQC,EAAAA,QAAAA,KAAcC,EAAAA,UAAU,CAAI,EAAG,CAAC,CAAI,CAAC,EACnD,MACE,iBAAA,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,YAAU,YAAuB,YAAW,GAAI,EACpD,SAAA,iBAAA,EAAA,EAAA,IAAA,CAAC,EAAD,CAAkB,OAAQ,CAAA,CACtB,CAAA,CAEV,CAQA,SAAgB,EAAS,CAAE,OAAM,GAAG,GAAwB,CAC1D,IAAM,GAAA,EAAQD,EAAAA,QAAAA,KAAc,EAAK,MAAM;CAAI,CAAC,CAAC,IAAK,GAASC,EAAAA,UAAU,CAAI,CAAC,EAAG,CAAC,CAAI,CAAC,EACnF,MACE,iBAAA,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,YAAU,YAAY,GAAI,EAC5B,SAAA,EAAM,KAAK,EAAO,IACjB,iBAAA,EAAA,EAAA,KAAA,CAACC,EAAAA,SAAD,CAAA,SAAA,CACG,EAAQ,EAAI;EAAO,KACpB,iBAAA,EAAA,EAAA,IAAA,CAAC,EAAD,CAAkB,OAAQ,CAAA,CAClB,CAAA,EAHK,CAGL,CACX,CACE,CAAA,CAET"}
@@ -1,4 +1,4 @@
1
- import{cn as e}from"../lib/cn.mjs";import{ansiSpans as t}from"../lib/ansiSpans.mjs";import{Fragment as n,jsx as r,jsxs as i}from"react/jsx-runtime";import{Fragment as a,useMemo as o}from"react";function s(t){return e(t.className,t.bold===!0&&`font-bold`,t.faint===!0&&`opacity-60`,t.italic===!0&&`italic`,t.underline===!0&&`underline`,t.inverse===!0&&`bg-doom-text text-doom-deep`)}function c({spans:e}){return r(n,{children:e.map((e,t)=>r(`span`,{className:s(e),style:e.color===void 0?void 0:{color:e.color},children:e.text},t))})}function l({line:e,className:n,...i}){let a=o(()=>t(e),[e]);return r(`span`,{"data-slot":`ansi-line`,className:n,...i,children:r(c,{spans:a})})}function u({text:e,...n}){let s=o(()=>e.split(`
2
- `).map(e=>t(e)),[e]);return r(`pre`,{"data-slot":`ansi-text`,...n,children:s.map((e,t)=>i(a,{children:[t>0?`
3
- `:null,r(c,{spans:e})]},t))})}export{l as AnsiLine,u as AnsiText};
1
+ import{cn as e}from"../lib/cn.mjs";import{ansiSpans as t}from"../lib/ansiSpans.mjs";import{Fragment as n,jsx as r,jsxs as i}from"react/jsx-runtime";import{Fragment as a,useMemo as o}from"react";function s(t){return e(t.className,t.bold===!0&&`font-bold`,t.faint===!0&&`opacity-60`,t.italic===!0&&`italic`,t.underline===!0&&`underline`,t.inverse===!0&&`bg-doom-text text-doom-deep`)}function c({spans:e}){return/* @__PURE__ */ r(n,{children:e.map((e,t)=>/* @__PURE__ */ r(`span`,{className:s(e),style:e.color===void 0?void 0:{color:e.color},children:e.text},t))})}function l({line:e,className:n,...i}){let a=o(()=>t(e),[e]);return/* @__PURE__ */ r(`span`,{"data-slot":`ansi-line`,className:n,...i,children:/* @__PURE__ */ r(c,{spans:a})})}function u({text:e,...n}){let s=o(()=>e.split(`
2
+ `).map(e=>t(e)),[e]);return/* @__PURE__ */ r(`pre`,{"data-slot":`ansi-text`,...n,children:s.map((e,t)=>/* @__PURE__ */ i(a,{children:[t>0?`
3
+ `:null,/* @__PURE__ */ r(c,{spans:e})]},t))})}export{l as AnsiLine,u as AnsiText};
4
4
  //# sourceMappingURL=AnsiText.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"AnsiText.mjs","names":["Fragment"],"sources":["../../../src/components/AnsiText.tsx"],"sourcesContent":["import { type ComponentProps, Fragment, useMemo } from 'react';\n\nimport { type AnsiSpan, ansiSpans } from '../lib/ansiSpans';\nimport { cn } from '../lib/cn';\n\n/**\n * Terminal output with the colours it was written in.\n *\n * Both readers of terminal text render it the same way, so the mapping from a\n * span's attributes to classes lives here rather than in each of them: a\n * captured workflow screen is a line at a time, and a runner log is a block.\n * Parsing is synchronous and cheap; text with no escapes in it takes a path\n * that allocates nothing.\n *\n * DESIGN PATTERNS:\n * - Named colours arrive as theme classes from `ansiSpans`; only 256-colour\n * and truecolour, which no token stands for, come through as a style.\n * - One element per line, so wrapping and selection behave as they do in a pre.\n *\n * AVOID:\n * - Carrying attributes across lines. A captured screen and a bounded log tail\n * both start mid-stream.\n */\n\nfunction spanClassName(span: AnsiSpan): string {\n return cn(\n span.className,\n span.bold === true && 'font-bold',\n span.faint === true && 'opacity-60',\n span.italic === true && 'italic',\n span.underline === true && 'underline',\n span.inverse === true && 'bg-doom-text text-doom-deep',\n );\n}\n\nfunction AnsiSpans({ spans }: { spans: readonly AnsiSpan[] }) {\n return (\n <>\n {spans.map((span, index) => (\n <span\n key={index}\n className={spanClassName(span)}\n style={span.color === undefined ? undefined : { color: span.color }}\n >\n {span.text}\n </span>\n ))}\n </>\n );\n}\n\nexport interface AnsiLineProps extends Omit<ComponentProps<'span'>, 'children'> {\n /** One line of terminal output, escapes and all. */\n line: string;\n}\n\n/** One line, for a caller that already lays out a screen row by row. */\nexport function AnsiLine({ line, className, ...props }: AnsiLineProps) {\n const spans = useMemo(() => ansiSpans(line), [line]);\n return (\n <span data-slot=\"ansi-line\" className={className} {...props}>\n <AnsiSpans spans={spans} />\n </span>\n );\n}\n\nexport interface AnsiTextProps extends Omit<ComponentProps<'pre'>, 'children'> {\n /** Terminal output, newline separated, escapes and all. */\n text: string;\n}\n\n/** A block of terminal output: a log tail, or anything else that arrives whole. */\nexport function AnsiText({ text, ...props }: AnsiTextProps) {\n const lines = useMemo(() => text.split('\\n').map((line) => ansiSpans(line)), [text]);\n return (\n <pre data-slot=\"ansi-text\" {...props}>\n {lines.map((spans, index) => (\n <Fragment key={index}>\n {index > 0 ? '\\n' : null}\n <AnsiSpans spans={spans} />\n </Fragment>\n ))}\n </pre>\n );\n}\n"],"mappings":"kMAwBA,SAAS,EAAc,EAAwB,CAC7C,OAAO,EACL,EAAK,UACL,EAAK,OAAS,IAAQ,YACtB,EAAK,QAAU,IAAQ,aACvB,EAAK,SAAW,IAAQ,SACxB,EAAK,YAAc,IAAQ,YAC3B,EAAK,UAAY,IAAQ,6BAC3B,CACF,CAEA,SAAS,EAAU,CAAE,SAAyC,CAC5D,OACE,EAAA,EAAA,CAAA,SACG,EAAM,KAAK,EAAM,IAChB,EAAC,OAAD,CAEE,UAAW,EAAc,CAAI,EAC7B,MAAO,EAAK,QAAU,IAAA,GAAY,IAAA,GAAY,CAAE,MAAO,EAAK,KAAM,EAEjE,SAAA,EAAK,IACF,EALC,CAKD,CACP,CACD,CAAA,CAEN,CAQA,SAAgB,EAAS,CAAE,OAAM,YAAW,GAAG,GAAwB,CACrE,IAAM,EAAQ,MAAc,EAAU,CAAI,EAAG,CAAC,CAAI,CAAC,EACnD,OACE,EAAC,OAAD,CAAM,YAAU,YAAuB,YAAW,GAAI,EACpD,SAAA,EAAC,EAAD,CAAkB,OAAQ,CAAA,CACtB,CAAA,CAEV,CAQA,SAAgB,EAAS,CAAE,OAAM,GAAG,GAAwB,CAC1D,IAAM,EAAQ,MAAc,EAAK,MAAM;CAAI,CAAC,CAAC,IAAK,GAAS,EAAU,CAAI,CAAC,EAAG,CAAC,CAAI,CAAC,EACnF,OACE,EAAC,MAAD,CAAK,YAAU,YAAY,GAAI,EAC5B,SAAA,EAAM,KAAK,EAAO,IACjB,EAACA,EAAD,CAAA,SAAA,CACG,EAAQ,EAAI;EAAO,KACpB,EAAC,EAAD,CAAkB,OAAQ,CAAA,CAClB,CAAA,EAHK,CAGL,CACX,CACE,CAAA,CAET"}
1
+ {"version":3,"file":"AnsiText.mjs","names":["Fragment"],"sources":["../../../src/components/AnsiText.tsx"],"sourcesContent":["import { type ComponentProps, Fragment, useMemo } from 'react';\n\nimport { type AnsiSpan, ansiSpans } from '../lib/ansiSpans';\nimport { cn } from '../lib/cn';\n\n/**\n * Terminal output with the colours it was written in.\n *\n * Both readers of terminal text render it the same way, so the mapping from a\n * span's attributes to classes lives here rather than in each of them: a\n * captured workflow screen is a line at a time, and a runner log is a block.\n * Parsing is synchronous and cheap; text with no escapes in it takes a path\n * that allocates nothing.\n *\n * DESIGN PATTERNS:\n * - Named colours arrive as theme classes from `ansiSpans`; only 256-colour\n * and truecolour, which no token stands for, come through as a style.\n * - One element per line, so wrapping and selection behave as they do in a pre.\n *\n * AVOID:\n * - Carrying attributes across lines. A captured screen and a bounded log tail\n * both start mid-stream.\n */\n\nfunction spanClassName(span: AnsiSpan): string {\n return cn(\n span.className,\n span.bold === true && 'font-bold',\n span.faint === true && 'opacity-60',\n span.italic === true && 'italic',\n span.underline === true && 'underline',\n span.inverse === true && 'bg-doom-text text-doom-deep',\n );\n}\n\nfunction AnsiSpans({ spans }: { spans: readonly AnsiSpan[] }) {\n return (\n <>\n {spans.map((span, index) => (\n <span\n key={index}\n className={spanClassName(span)}\n style={span.color === undefined ? undefined : { color: span.color }}\n >\n {span.text}\n </span>\n ))}\n </>\n );\n}\n\nexport interface AnsiLineProps extends Omit<ComponentProps<'span'>, 'children'> {\n /** One line of terminal output, escapes and all. */\n line: string;\n}\n\n/** One line, for a caller that already lays out a screen row by row. */\nexport function AnsiLine({ line, className, ...props }: AnsiLineProps) {\n const spans = useMemo(() => ansiSpans(line), [line]);\n return (\n <span data-slot=\"ansi-line\" className={className} {...props}>\n <AnsiSpans spans={spans} />\n </span>\n );\n}\n\nexport interface AnsiTextProps extends Omit<ComponentProps<'pre'>, 'children'> {\n /** Terminal output, newline separated, escapes and all. */\n text: string;\n}\n\n/** A block of terminal output: a log tail, or anything else that arrives whole. */\nexport function AnsiText({ text, ...props }: AnsiTextProps) {\n const lines = useMemo(() => text.split('\\n').map((line) => ansiSpans(line)), [text]);\n return (\n <pre data-slot=\"ansi-text\" {...props}>\n {lines.map((spans, index) => (\n <Fragment key={index}>\n {index > 0 ? '\\n' : null}\n <AnsiSpans spans={spans} />\n </Fragment>\n ))}\n </pre>\n );\n}\n"],"mappings":"kMAwBA,SAAS,EAAc,EAAwB,CAC7C,OAAO,EACL,EAAK,UACL,EAAK,OAAS,IAAQ,YACtB,EAAK,QAAU,IAAQ,aACvB,EAAK,SAAW,IAAQ,SACxB,EAAK,YAAc,IAAQ,YAC3B,EAAK,UAAY,IAAQ,6BAC3B,CACF,CAEA,SAAS,EAAU,CAAE,SAAyC,CAC5D,MACE,kBAAA,EAAA,CAAA,SACG,EAAM,KAAK,EAAM,IAChB,kBAAC,OAAD,CAEE,UAAW,EAAc,CAAI,EAC7B,MAAO,EAAK,QAAU,IAAA,GAAY,IAAA,GAAY,CAAE,MAAO,EAAK,KAAM,EAEjE,SAAA,EAAK,IACF,EALC,CAKD,CACP,CACD,CAAA,CAEN,CAQA,SAAgB,EAAS,CAAE,OAAM,YAAW,GAAG,GAAwB,CACrE,IAAM,EAAQ,MAAc,EAAU,CAAI,EAAG,CAAC,CAAI,CAAC,EACnD,MACE,kBAAC,OAAD,CAAM,YAAU,YAAuB,YAAW,GAAI,EACpD,SAAA,kBAAC,EAAD,CAAkB,OAAQ,CAAA,CACtB,CAAA,CAEV,CAQA,SAAgB,EAAS,CAAE,OAAM,GAAG,GAAwB,CAC1D,IAAM,EAAQ,MAAc,EAAK,MAAM;CAAI,CAAC,CAAC,IAAK,GAAS,EAAU,CAAI,CAAC,EAAG,CAAC,CAAI,CAAC,EACnF,MACE,kBAAC,MAAD,CAAK,YAAU,YAAY,GAAI,EAC5B,SAAA,EAAM,KAAK,EAAO,IACjB,kBAACA,EAAD,CAAA,SAAA,CACG,EAAQ,EAAI;EAAO,KACpB,kBAAC,EAAD,CAAkB,OAAQ,CAAA,CAClB,CAAA,EAHK,CAGL,CACX,CACE,CAAA,CAET"}
@@ -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.Avatar.Root,{"data-slot":`avatar`,className:e.cn(`relative flex h-6 w-6 shrink-0 overflow-hidden rounded-full bg-doom-deep`,r),...i})}function i({className:r,...i}){return(0,n.jsx)(t.Avatar.Image,{"data-slot":`avatar-image`,className:e.cn(`h-full w-full object-cover`,r),...i})}function a({className:r,...i}){return(0,n.jsx)(t.Avatar.Fallback,{"data-slot":`avatar-fallback`,className:e.cn(`flex h-full w-full items-center justify-center text-xs font-bold text-doom-dim`,r),...i})}exports.Avatar=r,exports.AvatarFallback=a,exports.AvatarImage=i;
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.Avatar.Root,{"data-slot":`avatar`,className:e.cn(`relative flex h-6 w-6 shrink-0 overflow-hidden rounded-full bg-doom-deep`,r),...i})}function i({className:r,...i}){return/* @__PURE__ */ (0,n.jsx)(t.Avatar.Image,{"data-slot":`avatar-image`,className:e.cn(`h-full w-full object-cover`,r),...i})}function a({className:r,...i}){return/* @__PURE__ */ (0,n.jsx)(t.Avatar.Fallback,{"data-slot":`avatar-fallback`,className:e.cn(`flex h-full w-full items-center justify-center text-xs font-bold text-doom-dim`,r),...i})}exports.Avatar=r,exports.AvatarFallback=a,exports.AvatarImage=i;
2
2
  //# sourceMappingURL=Avatar.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.cjs","names":["AvatarPrimitive","cn"],"sources":["../../../src/components/Avatar.tsx"],"sourcesContent":["import { Avatar as AvatarPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '../lib/cn';\n\n/** A face or an initial; Radix only shows the fallback once the image has actually failed. */\nexport function Avatar({ className, ...props }: ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn('relative flex h-6 w-6 shrink-0 overflow-hidden rounded-full bg-doom-deep', className)}\n {...props}\n />\n );\n}\n\nexport function AvatarImage({ className, ...props }: ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn('h-full w-full object-cover', className)}\n {...props}\n />\n );\n}\n\nexport function AvatarFallback({ className, ...props }: ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn('flex h-full w-full items-center justify-center text-xs font-bold text-doom-dim', className)}\n {...props}\n />\n );\n}\n"],"mappings":"0FAMA,SAAgB,EAAO,CAAE,YAAW,GAAG,GAAsD,CAC3F,OACE,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAgB,KAAjB,CACE,YAAU,SACV,UAAWC,EAAAA,GAAG,2EAA4E,CAAS,EACnG,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAY,CAAE,YAAW,GAAG,GAAuD,CACjG,OACE,EAAA,EAAA,IAAA,CAACD,EAAAA,OAAgB,MAAjB,CACE,YAAU,eACV,UAAWC,EAAAA,GAAG,6BAA8B,CAAS,EACrD,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAe,CAAE,YAAW,GAAG,GAA0D,CACvG,OACE,EAAA,EAAA,IAAA,CAACD,EAAAA,OAAgB,SAAjB,CACE,YAAU,kBACV,UAAWC,EAAAA,GAAG,iFAAkF,CAAS,EACzG,GAAI,CACL,CAAA,CAEL"}
1
+ {"version":3,"file":"Avatar.cjs","names":["AvatarPrimitive","cn"],"sources":["../../../src/components/Avatar.tsx"],"sourcesContent":["import { Avatar as AvatarPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '../lib/cn';\n\n/** A face or an initial; Radix only shows the fallback once the image has actually failed. */\nexport function Avatar({ className, ...props }: ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn('relative flex h-6 w-6 shrink-0 overflow-hidden rounded-full bg-doom-deep', className)}\n {...props}\n />\n );\n}\n\nexport function AvatarImage({ className, ...props }: ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn('h-full w-full object-cover', className)}\n {...props}\n />\n );\n}\n\nexport function AvatarFallback({ className, ...props }: ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn('flex h-full w-full items-center justify-center text-xs font-bold text-doom-dim', className)}\n {...props}\n />\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,GAAG,2EAA4E,CAAS,EACnG,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAY,CAAE,YAAW,GAAG,GAAuD,CACjG,MACE,iBAAA,EAAA,EAAA,IAAA,CAACD,EAAAA,OAAgB,MAAjB,CACE,YAAU,eACV,UAAWC,EAAAA,GAAG,6BAA8B,CAAS,EACrD,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAe,CAAE,YAAW,GAAG,GAA0D,CACvG,MACE,iBAAA,EAAA,EAAA,IAAA,CAACD,EAAAA,OAAgB,SAAjB,CACE,YAAU,kBACV,UAAWC,EAAAA,GAAG,iFAAkF,CAAS,EACzG,GAAI,CACL,CAAA,CAEL"}
@@ -1,2 +1,2 @@
1
- import{cn as e}from"../lib/cn.mjs";import{Avatar as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";function r({className:r,...i}){return n(t.Root,{"data-slot":`avatar`,className:e(`relative flex h-6 w-6 shrink-0 overflow-hidden rounded-full bg-doom-deep`,r),...i})}function i({className:r,...i}){return n(t.Image,{"data-slot":`avatar-image`,className:e(`h-full w-full object-cover`,r),...i})}function a({className:r,...i}){return n(t.Fallback,{"data-slot":`avatar-fallback`,className:e(`flex h-full w-full items-center justify-center text-xs font-bold text-doom-dim`,r),...i})}export{r as Avatar,a as AvatarFallback,i as AvatarImage};
1
+ import{cn as e}from"../lib/cn.mjs";import{Avatar 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":`avatar`,className:e(`relative flex h-6 w-6 shrink-0 overflow-hidden rounded-full bg-doom-deep`,r),...i})}function i({className:r,...i}){return/* @__PURE__ */ n(t.Image,{"data-slot":`avatar-image`,className:e(`h-full w-full object-cover`,r),...i})}function a({className:r,...i}){return/* @__PURE__ */ n(t.Fallback,{"data-slot":`avatar-fallback`,className:e(`flex h-full w-full items-center justify-center text-xs font-bold text-doom-dim`,r),...i})}export{r as Avatar,a as AvatarFallback,i as AvatarImage};
2
2
  //# sourceMappingURL=Avatar.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.mjs","names":["Avatar","AvatarPrimitive"],"sources":["../../../src/components/Avatar.tsx"],"sourcesContent":["import { Avatar as AvatarPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '../lib/cn';\n\n/** A face or an initial; Radix only shows the fallback once the image has actually failed. */\nexport function Avatar({ className, ...props }: ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn('relative flex h-6 w-6 shrink-0 overflow-hidden rounded-full bg-doom-deep', className)}\n {...props}\n />\n );\n}\n\nexport function AvatarImage({ className, ...props }: ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn('h-full w-full object-cover', className)}\n {...props}\n />\n );\n}\n\nexport function AvatarFallback({ className, ...props }: ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn('flex h-full w-full items-center justify-center text-xs font-bold text-doom-dim', className)}\n {...props}\n />\n );\n}\n"],"mappings":"6GAMA,SAAgBA,EAAO,CAAE,YAAW,GAAG,GAAsD,CAC3F,OACE,EAACC,EAAgB,KAAjB,CACE,YAAU,SACV,UAAW,EAAG,2EAA4E,CAAS,EACnG,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAY,CAAE,YAAW,GAAG,GAAuD,CACjG,OACE,EAACA,EAAgB,MAAjB,CACE,YAAU,eACV,UAAW,EAAG,6BAA8B,CAAS,EACrD,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAe,CAAE,YAAW,GAAG,GAA0D,CACvG,OACE,EAACA,EAAgB,SAAjB,CACE,YAAU,kBACV,UAAW,EAAG,iFAAkF,CAAS,EACzG,GAAI,CACL,CAAA,CAEL"}
1
+ {"version":3,"file":"Avatar.mjs","names":["Avatar","AvatarPrimitive"],"sources":["../../../src/components/Avatar.tsx"],"sourcesContent":["import { Avatar as AvatarPrimitive } from 'radix-ui';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '../lib/cn';\n\n/** A face or an initial; Radix only shows the fallback once the image has actually failed. */\nexport function Avatar({ className, ...props }: ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn('relative flex h-6 w-6 shrink-0 overflow-hidden rounded-full bg-doom-deep', className)}\n {...props}\n />\n );\n}\n\nexport function AvatarImage({ className, ...props }: ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn('h-full w-full object-cover', className)}\n {...props}\n />\n );\n}\n\nexport function AvatarFallback({ className, ...props }: ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn('flex h-full w-full items-center justify-center text-xs font-bold text-doom-dim', className)}\n {...props}\n />\n );\n}\n"],"mappings":"6GAMA,SAAgBA,EAAO,CAAE,YAAW,GAAG,GAAsD,CAC3F,MACE,kBAACC,EAAgB,KAAjB,CACE,YAAU,SACV,UAAW,EAAG,2EAA4E,CAAS,EACnG,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAY,CAAE,YAAW,GAAG,GAAuD,CACjG,MACE,kBAACA,EAAgB,MAAjB,CACE,YAAU,eACV,UAAW,EAAG,6BAA8B,CAAS,EACrD,GAAI,CACL,CAAA,CAEL,CAEA,SAAgB,EAAe,CAAE,YAAW,GAAG,GAA0D,CACvG,MACE,kBAACA,EAAgB,SAAjB,CACE,YAAU,kBACV,UAAW,EAAG,iFAAkF,CAAS,EACzG,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");const r=(0,require("class-variance-authority").cva)(`inline-flex items-center gap-1.5 whitespace-nowrap rounded border font-mono`,{variants:{tone:{neutral:`border-doom-border text-doom-dim`,blue:`border-doom-blue/40 text-doom-blue`,green:`border-doom-green/40 text-doom-green`,yellow:`border-doom-yellow/40 text-doom-yellow`,red:`border-doom-red/40 text-doom-red`,magenta:`border-doom-magenta/40 text-doom-magenta`,violet:`border-doom-violet/40 text-doom-violet`,cyan:`border-doom-cyan/40 text-doom-cyan`,orange:`border-doom-orange/40 text-doom-orange`,teal:`border-doom-teal/40 text-doom-teal`},size:{xs:`px-1.5 py-0.5 text-2xs font-bold`,sm:`px-2 py-0.5 text-xs`,md:`px-2.5 py-1 text-sm`,lg:`px-3 py-1.5 text-base`}},defaultVariants:{tone:`neutral`,size:`sm`}});function i({className:i,tone:a,size:o,asChild:s=!1,...c}){let l=s?t.Slot.Root:`span`;return(0,n.jsx)(l,{"data-slot":`badge`,className:e.cn(r({tone:a,size:o}),i),...c})}exports.Badge=i,exports.badgeVariants=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 items-center gap-1.5 whitespace-nowrap rounded border font-mono`,{variants:{tone:{neutral:`border-doom-border text-doom-dim`,blue:`border-doom-blue/40 text-doom-blue`,green:`border-doom-green/40 text-doom-green`,yellow:`border-doom-yellow/40 text-doom-yellow`,red:`border-doom-red/40 text-doom-red`,magenta:`border-doom-magenta/40 text-doom-magenta`,violet:`border-doom-violet/40 text-doom-violet`,cyan:`border-doom-cyan/40 text-doom-cyan`,orange:`border-doom-orange/40 text-doom-orange`,teal:`border-doom-teal/40 text-doom-teal`},size:{xs:`px-1.5 py-0.5 text-2xs font-bold`,sm:`px-2 py-0.5 text-xs`,md:`px-2.5 py-1 text-sm`,lg:`px-3 py-1.5 text-base`}},defaultVariants:{tone:`neutral`,size:`sm`}});function i({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":`badge`,className:e.cn(r({tone:a,size:o}),i),...c})}exports.Badge=i,exports.badgeVariants=r;
2
2
  //# sourceMappingURL=Badge.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.cjs","names":["cva","Slot","cn"],"sources":["../../../src/components/Badge.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 { ChipTone } from '../types/tone';\n\nexport const badgeVariants = cva('inline-flex items-center gap-1.5 whitespace-nowrap rounded border font-mono', {\n variants: {\n tone: {\n neutral: 'border-doom-border text-doom-dim',\n blue: 'border-doom-blue/40 text-doom-blue',\n green: 'border-doom-green/40 text-doom-green',\n yellow: 'border-doom-yellow/40 text-doom-yellow',\n red: 'border-doom-red/40 text-doom-red',\n magenta: 'border-doom-magenta/40 text-doom-magenta',\n violet: 'border-doom-violet/40 text-doom-violet',\n cyan: 'border-doom-cyan/40 text-doom-cyan',\n orange: 'border-doom-orange/40 text-doom-orange',\n teal: 'border-doom-teal/40 text-doom-teal',\n } satisfies Record<ChipTone, string>,\n /** The same rungs Button names, so a chip can sit beside a button of any size. */\n size: {\n xs: 'px-1.5 py-0.5 text-2xs font-bold',\n sm: 'px-2 py-0.5 text-xs',\n md: 'px-2.5 py-1 text-sm',\n lg: 'px-3 py-1.5 text-base',\n },\n },\n defaultVariants: { tone: 'neutral', size: 'sm' },\n});\n\nexport type BadgeTone = ChipTone;\n\nexport interface BadgeProps extends ComponentProps<'span'>, VariantProps<typeof badgeVariants> {\n /** Render the child element instead of a <span>, so a link can look like a chip. */\n asChild?: boolean;\n}\n\n/** An outlined chip in one of the accent tones; the Chip the cockpit mockup draws. */\nexport function Badge({ className, tone, size, asChild = false, ...props }: BadgeProps) {\n const Component = asChild ? Slot.Root : 'span';\n return <Component data-slot=\"badge\" className={cn(badgeVariants({ tone, size }), className)} {...props} />;\n}\n"],"mappings":"0FAOA,MAAa,GAAA,oCAAgBA,CAAAA,CAAAA,IAAAA,CAAI,8EAA+E,CAC9G,SAAU,CACR,KAAM,CACJ,QAAS,mCACT,KAAM,qCACN,MAAO,uCACP,OAAQ,yCACR,IAAK,mCACL,QAAS,2CACT,OAAQ,yCACR,KAAM,qCACN,OAAQ,yCACR,KAAM,oCACR,EAEA,KAAM,CACJ,GAAI,mCACJ,GAAI,sBACJ,GAAI,sBACJ,GAAI,uBACN,CACF,EACA,gBAAiB,CAAE,KAAM,UAAW,KAAM,IAAK,CACjD,CAAC,EAUD,SAAgB,EAAM,CAAE,YAAW,OAAM,OAAM,UAAU,GAAO,GAAG,GAAqB,CACtF,IAAM,EAAY,EAAUC,EAAAA,KAAK,KAAO,OACxC,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAAW,YAAU,QAAQ,UAAWC,EAAAA,GAAG,EAAc,CAAE,OAAM,MAAK,CAAC,EAAG,CAAS,EAAG,GAAI,CAAQ,CAAA,CAC3G"}
1
+ {"version":3,"file":"Badge.cjs","names":["cva","Slot","cn"],"sources":["../../../src/components/Badge.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 { ChipTone } from '../types/tone';\n\nexport const badgeVariants = cva('inline-flex items-center gap-1.5 whitespace-nowrap rounded border font-mono', {\n variants: {\n tone: {\n neutral: 'border-doom-border text-doom-dim',\n blue: 'border-doom-blue/40 text-doom-blue',\n green: 'border-doom-green/40 text-doom-green',\n yellow: 'border-doom-yellow/40 text-doom-yellow',\n red: 'border-doom-red/40 text-doom-red',\n magenta: 'border-doom-magenta/40 text-doom-magenta',\n violet: 'border-doom-violet/40 text-doom-violet',\n cyan: 'border-doom-cyan/40 text-doom-cyan',\n orange: 'border-doom-orange/40 text-doom-orange',\n teal: 'border-doom-teal/40 text-doom-teal',\n } satisfies Record<ChipTone, string>,\n /** The same rungs Button names, so a chip can sit beside a button of any size. */\n size: {\n xs: 'px-1.5 py-0.5 text-2xs font-bold',\n sm: 'px-2 py-0.5 text-xs',\n md: 'px-2.5 py-1 text-sm',\n lg: 'px-3 py-1.5 text-base',\n },\n },\n defaultVariants: { tone: 'neutral', size: 'sm' },\n});\n\nexport type BadgeTone = ChipTone;\n\nexport interface BadgeProps extends ComponentProps<'span'>, VariantProps<typeof badgeVariants> {\n /** Render the child element instead of a <span>, so a link can look like a chip. */\n asChild?: boolean;\n}\n\n/** An outlined chip in one of the accent tones; the Chip the cockpit mockup draws. */\nexport function Badge({ className, tone, size, asChild = false, ...props }: BadgeProps) {\n const Component = asChild ? Slot.Root : 'span';\n return <Component data-slot=\"badge\" className={cn(badgeVariants({ tone, size }), className)} {...props} />;\n}\n"],"mappings":"0FAOA,MAAa,GAAA,oCAAgBA,CAAAA,CAAAA,IAAAA,CAAI,8EAA+E,CAC9G,SAAU,CACR,KAAM,CACJ,QAAS,mCACT,KAAM,qCACN,MAAO,uCACP,OAAQ,yCACR,IAAK,mCACL,QAAS,2CACT,OAAQ,yCACR,KAAM,qCACN,OAAQ,yCACR,KAAM,oCACR,EAEA,KAAM,CACJ,GAAI,mCACJ,GAAI,sBACJ,GAAI,sBACJ,GAAI,uBACN,CACF,EACA,gBAAiB,CAAE,KAAM,UAAW,KAAM,IAAK,CACjD,CAAC,EAUD,SAAgB,EAAM,CAAE,YAAW,OAAM,OAAM,UAAU,GAAO,GAAG,GAAqB,CACtF,IAAM,EAAY,EAAUC,EAAAA,KAAK,KAAO,OACxC,MAAO,iBAAA,EAAA,EAAA,IAAA,CAAC,EAAD,CAAW,YAAU,QAAQ,UAAWC,EAAAA,GAAG,EAAc,CAAE,OAAM,MAAK,CAAC,EAAG,CAAS,EAAG,GAAI,CAAQ,CAAA,CAC3G"}
@@ -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 items-center gap-1.5 whitespace-nowrap rounded border font-mono`,{variants:{tone:{neutral:`border-doom-border text-doom-dim`,blue:`border-doom-blue/40 text-doom-blue`,green:`border-doom-green/40 text-doom-green`,yellow:`border-doom-yellow/40 text-doom-yellow`,red:`border-doom-red/40 text-doom-red`,magenta:`border-doom-magenta/40 text-doom-magenta`,violet:`border-doom-violet/40 text-doom-violet`,cyan:`border-doom-cyan/40 text-doom-cyan`,orange:`border-doom-orange/40 text-doom-orange`,teal:`border-doom-teal/40 text-doom-teal`},size:{xs:`px-1.5 py-0.5 text-2xs font-bold`,sm:`px-2 py-0.5 text-xs`,md:`px-2.5 py-1 text-sm`,lg:`px-3 py-1.5 text-base`}},defaultVariants:{tone:`neutral`,size:`sm`}});function a({className:r,tone:a,size:o,asChild:s=!1,...c}){let l=s?t.Root:`span`;return n(l,{"data-slot":`badge`,className:e(i({tone:a,size:o}),r),...c})}export{a as Badge,i as badgeVariants};
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 items-center gap-1.5 whitespace-nowrap rounded border font-mono`,{variants:{tone:{neutral:`border-doom-border text-doom-dim`,blue:`border-doom-blue/40 text-doom-blue`,green:`border-doom-green/40 text-doom-green`,yellow:`border-doom-yellow/40 text-doom-yellow`,red:`border-doom-red/40 text-doom-red`,magenta:`border-doom-magenta/40 text-doom-magenta`,violet:`border-doom-violet/40 text-doom-violet`,cyan:`border-doom-cyan/40 text-doom-cyan`,orange:`border-doom-orange/40 text-doom-orange`,teal:`border-doom-teal/40 text-doom-teal`},size:{xs:`px-1.5 py-0.5 text-2xs font-bold`,sm:`px-2 py-0.5 text-xs`,md:`px-2.5 py-1 text-sm`,lg:`px-3 py-1.5 text-base`}},defaultVariants:{tone:`neutral`,size:`sm`}});function a({className:r,tone:a,size:o,asChild:s=!1,...c}){let l=s?t.Root:`span`;return/* @__PURE__ */ n(l,{"data-slot":`badge`,className:e(i({tone:a,size:o}),r),...c})}export{a as Badge,i as badgeVariants};
2
2
  //# sourceMappingURL=Badge.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.mjs","names":[],"sources":["../../../src/components/Badge.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 { ChipTone } from '../types/tone';\n\nexport const badgeVariants = cva('inline-flex items-center gap-1.5 whitespace-nowrap rounded border font-mono', {\n variants: {\n tone: {\n neutral: 'border-doom-border text-doom-dim',\n blue: 'border-doom-blue/40 text-doom-blue',\n green: 'border-doom-green/40 text-doom-green',\n yellow: 'border-doom-yellow/40 text-doom-yellow',\n red: 'border-doom-red/40 text-doom-red',\n magenta: 'border-doom-magenta/40 text-doom-magenta',\n violet: 'border-doom-violet/40 text-doom-violet',\n cyan: 'border-doom-cyan/40 text-doom-cyan',\n orange: 'border-doom-orange/40 text-doom-orange',\n teal: 'border-doom-teal/40 text-doom-teal',\n } satisfies Record<ChipTone, string>,\n /** The same rungs Button names, so a chip can sit beside a button of any size. */\n size: {\n xs: 'px-1.5 py-0.5 text-2xs font-bold',\n sm: 'px-2 py-0.5 text-xs',\n md: 'px-2.5 py-1 text-sm',\n lg: 'px-3 py-1.5 text-base',\n },\n },\n defaultVariants: { tone: 'neutral', size: 'sm' },\n});\n\nexport type BadgeTone = ChipTone;\n\nexport interface BadgeProps extends ComponentProps<'span'>, VariantProps<typeof badgeVariants> {\n /** Render the child element instead of a <span>, so a link can look like a chip. */\n asChild?: boolean;\n}\n\n/** An outlined chip in one of the accent tones; the Chip the cockpit mockup draws. */\nexport function Badge({ className, tone, size, asChild = false, ...props }: BadgeProps) {\n const Component = asChild ? Slot.Root : 'span';\n return <Component data-slot=\"badge\" className={cn(badgeVariants({ tone, size }), className)} {...props} />;\n}\n"],"mappings":"0JAOA,MAAa,EAAgB,EAAI,8EAA+E,CAC9G,SAAU,CACR,KAAM,CACJ,QAAS,mCACT,KAAM,qCACN,MAAO,uCACP,OAAQ,yCACR,IAAK,mCACL,QAAS,2CACT,OAAQ,yCACR,KAAM,qCACN,OAAQ,yCACR,KAAM,oCACR,EAEA,KAAM,CACJ,GAAI,mCACJ,GAAI,sBACJ,GAAI,sBACJ,GAAI,uBACN,CACF,EACA,gBAAiB,CAAE,KAAM,UAAW,KAAM,IAAK,CACjD,CAAC,EAUD,SAAgB,EAAM,CAAE,YAAW,OAAM,OAAM,UAAU,GAAO,GAAG,GAAqB,CACtF,IAAM,EAAY,EAAU,EAAK,KAAO,OACxC,OAAO,EAAC,EAAD,CAAW,YAAU,QAAQ,UAAW,EAAG,EAAc,CAAE,OAAM,MAAK,CAAC,EAAG,CAAS,EAAG,GAAI,CAAQ,CAAA,CAC3G"}
1
+ {"version":3,"file":"Badge.mjs","names":[],"sources":["../../../src/components/Badge.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 { ChipTone } from '../types/tone';\n\nexport const badgeVariants = cva('inline-flex items-center gap-1.5 whitespace-nowrap rounded border font-mono', {\n variants: {\n tone: {\n neutral: 'border-doom-border text-doom-dim',\n blue: 'border-doom-blue/40 text-doom-blue',\n green: 'border-doom-green/40 text-doom-green',\n yellow: 'border-doom-yellow/40 text-doom-yellow',\n red: 'border-doom-red/40 text-doom-red',\n magenta: 'border-doom-magenta/40 text-doom-magenta',\n violet: 'border-doom-violet/40 text-doom-violet',\n cyan: 'border-doom-cyan/40 text-doom-cyan',\n orange: 'border-doom-orange/40 text-doom-orange',\n teal: 'border-doom-teal/40 text-doom-teal',\n } satisfies Record<ChipTone, string>,\n /** The same rungs Button names, so a chip can sit beside a button of any size. */\n size: {\n xs: 'px-1.5 py-0.5 text-2xs font-bold',\n sm: 'px-2 py-0.5 text-xs',\n md: 'px-2.5 py-1 text-sm',\n lg: 'px-3 py-1.5 text-base',\n },\n },\n defaultVariants: { tone: 'neutral', size: 'sm' },\n});\n\nexport type BadgeTone = ChipTone;\n\nexport interface BadgeProps extends ComponentProps<'span'>, VariantProps<typeof badgeVariants> {\n /** Render the child element instead of a <span>, so a link can look like a chip. */\n asChild?: boolean;\n}\n\n/** An outlined chip in one of the accent tones; the Chip the cockpit mockup draws. */\nexport function Badge({ className, tone, size, asChild = false, ...props }: BadgeProps) {\n const Component = asChild ? Slot.Root : 'span';\n return <Component data-slot=\"badge\" className={cn(badgeVariants({ tone, size }), className)} {...props} />;\n}\n"],"mappings":"0JAOA,MAAa,EAAgB,EAAI,8EAA+E,CAC9G,SAAU,CACR,KAAM,CACJ,QAAS,mCACT,KAAM,qCACN,MAAO,uCACP,OAAQ,yCACR,IAAK,mCACL,QAAS,2CACT,OAAQ,yCACR,KAAM,qCACN,OAAQ,yCACR,KAAM,oCACR,EAEA,KAAM,CACJ,GAAI,mCACJ,GAAI,sBACJ,GAAI,sBACJ,GAAI,uBACN,CACF,EACA,gBAAiB,CAAE,KAAM,UAAW,KAAM,IAAK,CACjD,CAAC,EAUD,SAAgB,EAAM,CAAE,YAAW,OAAM,OAAM,UAAU,GAAO,GAAG,GAAqB,CACtF,IAAM,EAAY,EAAU,EAAK,KAAO,OACxC,MAAO,kBAAC,EAAD,CAAW,YAAU,QAAQ,UAAW,EAAG,EAAc,CAAE,OAAM,MAAK,CAAC,EAAG,CAAS,EAAG,GAAI,CAAQ,CAAA,CAC3G"}
@@ -1,2 +1,2 @@
1
- const e=require("../lib/cn.cjs"),t=require("./Tooltip.cjs");let n=require("react/jsx-runtime");function r(e,t=4){let n=e.split(`/`).filter(e=>e!==``);return n.length===0?[e]:n.length<=t?n:[n[0]??``,`…`,...n.slice(n.length-(t-2))]}function i({path:i,keep:a,className:o,"data-testid":s}){let c=r(i,a),l=c.length-1;return(0,n.jsx)(t.TooltipProvider,{children:(0,n.jsxs)(t.Tooltip,{children:[(0,n.jsx)(t.TooltipTrigger,{asChild:!0,children:(0,n.jsx)(`span`,{"data-slot":`breadcrumb`,"data-testid":s,title:void 0,className:e.cn(`flex min-w-0 items-baseline gap-1 truncate font-mono text-sm`,o),children:c.map((e,t)=>(0,n.jsxs)(`span`,{className:`flex min-w-0 items-baseline gap-1`,children:[t>0?(0,n.jsx)(`span`,{className:`shrink-0 text-doom-faint`,children:`/`}):null,(0,n.jsx)(`span`,{className:t===l?`truncate font-bold text-doom-hi`:`shrink-0 truncate text-doom-faint`,children:e})]},`${e}-${String(t)}`))})}),(0,n.jsx)(t.TooltipContent,{className:`max-w-[32rem] break-all whitespace-normal`,children:i})]})})}exports.BREADCRUMB_ELLIPSIS=`…`,exports.Breadcrumb=i,exports.breadcrumbSegments=r;
1
+ const e=require("../lib/cn.cjs"),t=require("./Tooltip.cjs");let n=require("react/jsx-runtime");function r(e,t=4){let n=e.split(`/`).filter(e=>e!==``);return n.length===0?[e]:n.length<=t?n:[n[0]??``,`…`,...n.slice(n.length-(t-2))]}function i({path:i,keep:a,className:o,"data-testid":s}){let c=r(i,a),l=c.length-1;return/* @__PURE__ */ (0,n.jsx)(t.TooltipProvider,{children:/* @__PURE__ */ (0,n.jsxs)(t.Tooltip,{children:[/* @__PURE__ */ (0,n.jsx)(t.TooltipTrigger,{asChild:!0,children:/* @__PURE__ */ (0,n.jsx)(`span`,{"data-slot":`breadcrumb`,"data-testid":s,title:void 0,className:e.cn(`flex min-w-0 items-baseline gap-1 truncate font-mono text-sm`,o),children:c.map((e,t)=>/* @__PURE__ */ (0,n.jsxs)(`span`,{className:`flex min-w-0 items-baseline gap-1`,children:[t>0?/* @__PURE__ */ (0,n.jsx)(`span`,{className:`shrink-0 text-doom-faint`,children:`/`}):null,/* @__PURE__ */ (0,n.jsx)(`span`,{className:t===l?`truncate font-bold text-doom-hi`:`shrink-0 truncate text-doom-faint`,children:e})]},`${e}-${String(t)}`))})}),/* @__PURE__ */ (0,n.jsx)(t.TooltipContent,{className:`max-w-[32rem] break-all whitespace-normal`,children:i})]})})}exports.BREADCRUMB_ELLIPSIS=`…`,exports.Breadcrumb=i,exports.breadcrumbSegments=r;
2
2
  //# sourceMappingURL=Breadcrumb.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumb.cjs","names":["TooltipProvider","Tooltip","TooltipTrigger","cn","TooltipContent"],"sources":["../../../src/components/Breadcrumb.tsx"],"sourcesContent":["import { cn } from '../lib/cn';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './Tooltip';\n\n/** The marker a collapsed run of segments is shown as. */\nexport const BREADCRUMB_ELLIPSIS = '…';\n\n/**\n * A path as breadcrumb segments, with the middle collapsed when it is deeper\n * than `keep` allows.\n *\n * The first segment and the last few are what place a leaf; the ones between\n * are what a reader skims past, so those are the ones that go. The leaf is\n * always the final segment and is never collapsed.\n */\nexport function breadcrumbSegments(path: string, keep = 4): string[] {\n const segments = path.split('/').filter((segment) => segment !== '');\n if (segments.length === 0) return [path];\n if (segments.length <= keep) return segments;\n // One leading segment for orientation, then the tail that names the leaf.\n return [segments[0] ?? '', BREADCRUMB_ELLIPSIS, ...segments.slice(segments.length - (keep - 2))];\n}\n\nexport interface BreadcrumbProps {\n /** The path to show, separated by forward slashes. */\n path: string;\n /** How many segments survive before the middle collapses. */\n keep?: number;\n /** Marks the trail so a test can find it. */\n 'data-testid'?: string;\n className?: string;\n}\n\n/**\n * A slash-separated path, shortened to fit and readable in full on hover.\n *\n * Two things shorten it, because they solve different problems. Collapsing the\n * middle keeps a deep path legible at any width, and truncation handles what is\n * left when the container is narrower than even that. Either one hides\n * something, so the whole path is always one hover away, wrapped rather than\n * clipped: a tooltip that truncates too would defeat the point of having one.\n *\n * The leaf carries the emphasis. A reader scanning a header is looking for the\n * file, and the directories are context for it.\n */\nexport function Breadcrumb({ path, keep, className, 'data-testid': testId }: BreadcrumbProps) {\n const segments = breadcrumbSegments(path, keep);\n const lastIndex = segments.length - 1;\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n data-slot=\"breadcrumb\"\n data-testid={testId}\n title={undefined}\n className={cn('flex min-w-0 items-baseline gap-1 truncate font-mono text-sm', className)}\n >\n {segments.map((segment, index) => (\n // Segments repeat in a path (src/app/src), so the index is what\n // keeps two of the same name apart.\n <span key={`${segment}-${String(index)}`} className=\"flex min-w-0 items-baseline gap-1\">\n {index > 0 ? <span className=\"shrink-0 text-doom-faint\">/</span> : null}\n <span\n className={\n index === lastIndex ? 'truncate font-bold text-doom-hi' : 'shrink-0 truncate text-doom-faint'\n }\n >\n {segment}\n </span>\n </span>\n ))}\n </span>\n </TooltipTrigger>\n <TooltipContent className=\"max-w-[32rem] break-all whitespace-normal\">{path}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n}\n"],"mappings":"+FAcA,SAAgB,EAAmB,EAAc,EAAO,EAAa,CACnE,IAAM,EAAW,EAAK,MAAM,GAAG,CAAC,CAAC,OAAQ,GAAY,IAAY,EAAE,EAInE,OAHI,EAAS,SAAW,EAAU,CAAC,CAAI,EACnC,EAAS,QAAU,EAAa,EAE7B,CAAC,EAAS,IAAM,OAAyB,GAAG,EAAS,MAAM,EAAS,QAAU,EAAO,EAAE,CAAC,CACjG,CAwBA,SAAgB,EAAW,CAAE,OAAM,OAAM,YAAW,cAAe,GAA2B,CAC5F,IAAM,EAAW,EAAmB,EAAM,CAAI,EACxC,EAAY,EAAS,OAAS,EAEpC,OACE,EAAA,EAAA,IAAA,CAACA,EAAAA,gBAAD,CAAA,UACE,EAAA,EAAA,KAAA,CAACC,EAAAA,QAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAgB,QAAA,GACd,UAAA,EAAA,EAAA,IAAA,CAAC,OAAD,CACE,YAAU,aACV,cAAa,EACb,MAAO,IAAA,GACP,UAAWC,EAAAA,GAAG,+DAAgE,CAAS,EAEtF,SAAA,EAAS,KAAK,EAAS,KAGtB,EAAA,EAAA,KAAA,CAAC,OAAD,CAA0C,UAAU,oCAApD,SAAA,CACG,EAAQ,GAAI,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,2BAA2B,SAAA,GAAO,CAAA,EAAI,MACnE,EAAA,EAAA,IAAA,CAAC,OAAD,CACE,UACE,IAAU,EAAY,kCAAoC,oCAG3D,SAAA,CACG,CAAA,CACF,CATK,EAAA,GAAG,EAAQ,GAAG,OAAO,CAAK,GAS/B,CACP,CACG,CAAA,CACQ,CAAA,GAChB,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAgB,UAAU,4CAA6C,SAAA,CAAqB,CAAA,CACrF,CAAA,CAAA,CACM,CAAA,CAErB"}
1
+ {"version":3,"file":"Breadcrumb.cjs","names":["TooltipProvider","Tooltip","TooltipTrigger","cn","TooltipContent"],"sources":["../../../src/components/Breadcrumb.tsx"],"sourcesContent":["import { cn } from '../lib/cn';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './Tooltip';\n\n/** The marker a collapsed run of segments is shown as. */\nexport const BREADCRUMB_ELLIPSIS = '…';\n\n/**\n * A path as breadcrumb segments, with the middle collapsed when it is deeper\n * than `keep` allows.\n *\n * The first segment and the last few are what place a leaf; the ones between\n * are what a reader skims past, so those are the ones that go. The leaf is\n * always the final segment and is never collapsed.\n */\nexport function breadcrumbSegments(path: string, keep = 4): string[] {\n const segments = path.split('/').filter((segment) => segment !== '');\n if (segments.length === 0) return [path];\n if (segments.length <= keep) return segments;\n // One leading segment for orientation, then the tail that names the leaf.\n return [segments[0] ?? '', BREADCRUMB_ELLIPSIS, ...segments.slice(segments.length - (keep - 2))];\n}\n\nexport interface BreadcrumbProps {\n /** The path to show, separated by forward slashes. */\n path: string;\n /** How many segments survive before the middle collapses. */\n keep?: number;\n /** Marks the trail so a test can find it. */\n 'data-testid'?: string;\n className?: string;\n}\n\n/**\n * A slash-separated path, shortened to fit and readable in full on hover.\n *\n * Two things shorten it, because they solve different problems. Collapsing the\n * middle keeps a deep path legible at any width, and truncation handles what is\n * left when the container is narrower than even that. Either one hides\n * something, so the whole path is always one hover away, wrapped rather than\n * clipped: a tooltip that truncates too would defeat the point of having one.\n *\n * The leaf carries the emphasis. A reader scanning a header is looking for the\n * file, and the directories are context for it.\n */\nexport function Breadcrumb({ path, keep, className, 'data-testid': testId }: BreadcrumbProps) {\n const segments = breadcrumbSegments(path, keep);\n const lastIndex = segments.length - 1;\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n data-slot=\"breadcrumb\"\n data-testid={testId}\n title={undefined}\n className={cn('flex min-w-0 items-baseline gap-1 truncate font-mono text-sm', className)}\n >\n {segments.map((segment, index) => (\n // Segments repeat in a path (src/app/src), so the index is what\n // keeps two of the same name apart.\n <span key={`${segment}-${String(index)}`} className=\"flex min-w-0 items-baseline gap-1\">\n {index > 0 ? <span className=\"shrink-0 text-doom-faint\">/</span> : null}\n <span\n className={\n index === lastIndex ? 'truncate font-bold text-doom-hi' : 'shrink-0 truncate text-doom-faint'\n }\n >\n {segment}\n </span>\n </span>\n ))}\n </span>\n </TooltipTrigger>\n <TooltipContent className=\"max-w-[32rem] break-all whitespace-normal\">{path}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n}\n"],"mappings":"+FAcA,SAAgB,EAAmB,EAAc,EAAO,EAAa,CACnE,IAAM,EAAW,EAAK,MAAM,GAAG,CAAC,CAAC,OAAQ,GAAY,IAAY,EAAE,EAInE,OAHI,EAAS,SAAW,EAAU,CAAC,CAAI,EACnC,EAAS,QAAU,EAAa,EAE7B,CAAC,EAAS,IAAM,OAAyB,GAAG,EAAS,MAAM,EAAS,QAAU,EAAO,EAAE,CAAC,CACjG,CAwBA,SAAgB,EAAW,CAAE,OAAM,OAAM,YAAW,cAAe,GAA2B,CAC5F,IAAM,EAAW,EAAmB,EAAM,CAAI,EACxC,EAAY,EAAS,OAAS,EAEpC,MACE,iBAAA,EAAA,EAAA,IAAA,CAACA,EAAAA,gBAAD,CAAA,SACE,iBAAA,EAAA,EAAA,KAAA,CAACC,EAAAA,QAAD,CAAA,SAAA,CACE,iBAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAgB,QAAA,GACd,SAAA,iBAAA,EAAA,EAAA,IAAA,CAAC,OAAD,CACE,YAAU,aACV,cAAa,EACb,MAAO,IAAA,GACP,UAAWC,EAAAA,GAAG,+DAAgE,CAAS,EAEtF,SAAA,EAAS,KAAK,EAAS,IAGtB,iBAAA,EAAA,EAAA,KAAA,CAAC,OAAD,CAA0C,UAAU,oCAApD,SAAA,CACG,EAAQ,EAAI,iBAAA,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,2BAA2B,SAAA,GAAO,CAAA,EAAI,KACnE,iBAAA,EAAA,EAAA,IAAA,CAAC,OAAD,CACE,UACE,IAAU,EAAY,kCAAoC,oCAG3D,SAAA,CACG,CAAA,CACF,CATK,EAAA,GAAG,EAAQ,GAAG,OAAO,CAAK,GAS/B,CACP,CACG,CAAA,CACQ,CAAA,EAChB,iBAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAgB,UAAU,4CAA6C,SAAA,CAAqB,CAAA,CACrF,CAAA,CAAA,CACM,CAAA,CAErB"}
@@ -1,2 +1,2 @@
1
- import{cn as e}from"../lib/cn.mjs";import{Tooltip as t,TooltipContent as n,TooltipProvider as r,TooltipTrigger as i}from"./Tooltip.mjs";import{jsx as a,jsxs as o}from"react/jsx-runtime";const s=`…`;function c(e,t=4){let n=e.split(`/`).filter(e=>e!==``);return n.length===0?[e]:n.length<=t?n:[n[0]??``,`…`,...n.slice(n.length-(t-2))]}function l({path:s,keep:l,className:u,"data-testid":d}){let f=c(s,l),p=f.length-1;return a(r,{children:o(t,{children:[a(i,{asChild:!0,children:a(`span`,{"data-slot":`breadcrumb`,"data-testid":d,title:void 0,className:e(`flex min-w-0 items-baseline gap-1 truncate font-mono text-sm`,u),children:f.map((e,t)=>o(`span`,{className:`flex min-w-0 items-baseline gap-1`,children:[t>0?a(`span`,{className:`shrink-0 text-doom-faint`,children:`/`}):null,a(`span`,{className:t===p?`truncate font-bold text-doom-hi`:`shrink-0 truncate text-doom-faint`,children:e})]},`${e}-${String(t)}`))})}),a(n,{className:`max-w-[32rem] break-all whitespace-normal`,children:s})]})})}export{s as BREADCRUMB_ELLIPSIS,l as Breadcrumb,c as breadcrumbSegments};
1
+ import{cn as e}from"../lib/cn.mjs";import{Tooltip as t,TooltipContent as n,TooltipProvider as r,TooltipTrigger as i}from"./Tooltip.mjs";import{jsx as a,jsxs as o}from"react/jsx-runtime";const s=`…`;function c(e,t=4){let n=e.split(`/`).filter(e=>e!==``);return n.length===0?[e]:n.length<=t?n:[n[0]??``,`…`,...n.slice(n.length-(t-2))]}function l({path:s,keep:l,className:u,"data-testid":d}){let f=c(s,l),p=f.length-1;return/* @__PURE__ */ a(r,{children:/* @__PURE__ */ o(t,{children:[/* @__PURE__ */ a(i,{asChild:!0,children:/* @__PURE__ */ a(`span`,{"data-slot":`breadcrumb`,"data-testid":d,title:void 0,className:e(`flex min-w-0 items-baseline gap-1 truncate font-mono text-sm`,u),children:f.map((e,t)=>/* @__PURE__ */ o(`span`,{className:`flex min-w-0 items-baseline gap-1`,children:[t>0?/* @__PURE__ */ a(`span`,{className:`shrink-0 text-doom-faint`,children:`/`}):null,/* @__PURE__ */ a(`span`,{className:t===p?`truncate font-bold text-doom-hi`:`shrink-0 truncate text-doom-faint`,children:e})]},`${e}-${String(t)}`))})}),/* @__PURE__ */ a(n,{className:`max-w-[32rem] break-all whitespace-normal`,children:s})]})})}export{s as BREADCRUMB_ELLIPSIS,l as Breadcrumb,c as breadcrumbSegments};
2
2
  //# sourceMappingURL=Breadcrumb.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumb.mjs","names":[],"sources":["../../../src/components/Breadcrumb.tsx"],"sourcesContent":["import { cn } from '../lib/cn';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './Tooltip';\n\n/** The marker a collapsed run of segments is shown as. */\nexport const BREADCRUMB_ELLIPSIS = '…';\n\n/**\n * A path as breadcrumb segments, with the middle collapsed when it is deeper\n * than `keep` allows.\n *\n * The first segment and the last few are what place a leaf; the ones between\n * are what a reader skims past, so those are the ones that go. The leaf is\n * always the final segment and is never collapsed.\n */\nexport function breadcrumbSegments(path: string, keep = 4): string[] {\n const segments = path.split('/').filter((segment) => segment !== '');\n if (segments.length === 0) return [path];\n if (segments.length <= keep) return segments;\n // One leading segment for orientation, then the tail that names the leaf.\n return [segments[0] ?? '', BREADCRUMB_ELLIPSIS, ...segments.slice(segments.length - (keep - 2))];\n}\n\nexport interface BreadcrumbProps {\n /** The path to show, separated by forward slashes. */\n path: string;\n /** How many segments survive before the middle collapses. */\n keep?: number;\n /** Marks the trail so a test can find it. */\n 'data-testid'?: string;\n className?: string;\n}\n\n/**\n * A slash-separated path, shortened to fit and readable in full on hover.\n *\n * Two things shorten it, because they solve different problems. Collapsing the\n * middle keeps a deep path legible at any width, and truncation handles what is\n * left when the container is narrower than even that. Either one hides\n * something, so the whole path is always one hover away, wrapped rather than\n * clipped: a tooltip that truncates too would defeat the point of having one.\n *\n * The leaf carries the emphasis. A reader scanning a header is looking for the\n * file, and the directories are context for it.\n */\nexport function Breadcrumb({ path, keep, className, 'data-testid': testId }: BreadcrumbProps) {\n const segments = breadcrumbSegments(path, keep);\n const lastIndex = segments.length - 1;\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n data-slot=\"breadcrumb\"\n data-testid={testId}\n title={undefined}\n className={cn('flex min-w-0 items-baseline gap-1 truncate font-mono text-sm', className)}\n >\n {segments.map((segment, index) => (\n // Segments repeat in a path (src/app/src), so the index is what\n // keeps two of the same name apart.\n <span key={`${segment}-${String(index)}`} className=\"flex min-w-0 items-baseline gap-1\">\n {index > 0 ? <span className=\"shrink-0 text-doom-faint\">/</span> : null}\n <span\n className={\n index === lastIndex ? 'truncate font-bold text-doom-hi' : 'shrink-0 truncate text-doom-faint'\n }\n >\n {segment}\n </span>\n </span>\n ))}\n </span>\n </TooltipTrigger>\n <TooltipContent className=\"max-w-[32rem] break-all whitespace-normal\">{path}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n}\n"],"mappings":"0LAIA,MAAa,EAAsB,IAUnC,SAAgB,EAAmB,EAAc,EAAO,EAAa,CACnE,IAAM,EAAW,EAAK,MAAM,GAAG,CAAC,CAAC,OAAQ,GAAY,IAAY,EAAE,EAInE,OAHI,EAAS,SAAW,EAAU,CAAC,CAAI,EACnC,EAAS,QAAU,EAAa,EAE7B,CAAC,EAAS,IAAM,OAAyB,GAAG,EAAS,MAAM,EAAS,QAAU,EAAO,EAAE,CAAC,CACjG,CAwBA,SAAgB,EAAW,CAAE,OAAM,OAAM,YAAW,cAAe,GAA2B,CAC5F,IAAM,EAAW,EAAmB,EAAM,CAAI,EACxC,EAAY,EAAS,OAAS,EAEpC,OACE,EAAC,EAAD,CAAA,SACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAgB,QAAA,GACd,SAAA,EAAC,OAAD,CACE,YAAU,aACV,cAAa,EACb,MAAO,IAAA,GACP,UAAW,EAAG,+DAAgE,CAAS,EAEtF,SAAA,EAAS,KAAK,EAAS,IAGtB,EAAC,OAAD,CAA0C,UAAU,oCAApD,SAAA,CACG,EAAQ,EAAI,EAAC,OAAD,CAAM,UAAU,2BAA2B,SAAA,GAAO,CAAA,EAAI,KACnE,EAAC,OAAD,CACE,UACE,IAAU,EAAY,kCAAoC,oCAG3D,SAAA,CACG,CAAA,CACF,CATK,EAAA,GAAG,EAAQ,GAAG,OAAO,CAAK,GAS/B,CACP,CACG,CAAA,CACQ,CAAA,EAChB,EAAC,EAAD,CAAgB,UAAU,4CAA6C,SAAA,CAAqB,CAAA,CACrF,CAAA,CAAA,CACM,CAAA,CAErB"}
1
+ {"version":3,"file":"Breadcrumb.mjs","names":[],"sources":["../../../src/components/Breadcrumb.tsx"],"sourcesContent":["import { cn } from '../lib/cn';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './Tooltip';\n\n/** The marker a collapsed run of segments is shown as. */\nexport const BREADCRUMB_ELLIPSIS = '…';\n\n/**\n * A path as breadcrumb segments, with the middle collapsed when it is deeper\n * than `keep` allows.\n *\n * The first segment and the last few are what place a leaf; the ones between\n * are what a reader skims past, so those are the ones that go. The leaf is\n * always the final segment and is never collapsed.\n */\nexport function breadcrumbSegments(path: string, keep = 4): string[] {\n const segments = path.split('/').filter((segment) => segment !== '');\n if (segments.length === 0) return [path];\n if (segments.length <= keep) return segments;\n // One leading segment for orientation, then the tail that names the leaf.\n return [segments[0] ?? '', BREADCRUMB_ELLIPSIS, ...segments.slice(segments.length - (keep - 2))];\n}\n\nexport interface BreadcrumbProps {\n /** The path to show, separated by forward slashes. */\n path: string;\n /** How many segments survive before the middle collapses. */\n keep?: number;\n /** Marks the trail so a test can find it. */\n 'data-testid'?: string;\n className?: string;\n}\n\n/**\n * A slash-separated path, shortened to fit and readable in full on hover.\n *\n * Two things shorten it, because they solve different problems. Collapsing the\n * middle keeps a deep path legible at any width, and truncation handles what is\n * left when the container is narrower than even that. Either one hides\n * something, so the whole path is always one hover away, wrapped rather than\n * clipped: a tooltip that truncates too would defeat the point of having one.\n *\n * The leaf carries the emphasis. A reader scanning a header is looking for the\n * file, and the directories are context for it.\n */\nexport function Breadcrumb({ path, keep, className, 'data-testid': testId }: BreadcrumbProps) {\n const segments = breadcrumbSegments(path, keep);\n const lastIndex = segments.length - 1;\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n data-slot=\"breadcrumb\"\n data-testid={testId}\n title={undefined}\n className={cn('flex min-w-0 items-baseline gap-1 truncate font-mono text-sm', className)}\n >\n {segments.map((segment, index) => (\n // Segments repeat in a path (src/app/src), so the index is what\n // keeps two of the same name apart.\n <span key={`${segment}-${String(index)}`} className=\"flex min-w-0 items-baseline gap-1\">\n {index > 0 ? <span className=\"shrink-0 text-doom-faint\">/</span> : null}\n <span\n className={\n index === lastIndex ? 'truncate font-bold text-doom-hi' : 'shrink-0 truncate text-doom-faint'\n }\n >\n {segment}\n </span>\n </span>\n ))}\n </span>\n </TooltipTrigger>\n <TooltipContent className=\"max-w-[32rem] break-all whitespace-normal\">{path}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n}\n"],"mappings":"0LAIA,MAAa,EAAsB,IAUnC,SAAgB,EAAmB,EAAc,EAAO,EAAa,CACnE,IAAM,EAAW,EAAK,MAAM,GAAG,CAAC,CAAC,OAAQ,GAAY,IAAY,EAAE,EAInE,OAHI,EAAS,SAAW,EAAU,CAAC,CAAI,EACnC,EAAS,QAAU,EAAa,EAE7B,CAAC,EAAS,IAAM,OAAyB,GAAG,EAAS,MAAM,EAAS,QAAU,EAAO,EAAE,CAAC,CACjG,CAwBA,SAAgB,EAAW,CAAE,OAAM,OAAM,YAAW,cAAe,GAA2B,CAC5F,IAAM,EAAW,EAAmB,EAAM,CAAI,EACxC,EAAY,EAAS,OAAS,EAEpC,MACE,kBAAC,EAAD,CAAA,SACE,kBAAC,EAAD,CAAA,SAAA,CACE,kBAAC,EAAD,CAAgB,QAAA,GACd,SAAA,kBAAC,OAAD,CACE,YAAU,aACV,cAAa,EACb,MAAO,IAAA,GACP,UAAW,EAAG,+DAAgE,CAAS,EAEtF,SAAA,EAAS,KAAK,EAAS,IAGtB,kBAAC,OAAD,CAA0C,UAAU,oCAApD,SAAA,CACG,EAAQ,EAAI,kBAAC,OAAD,CAAM,UAAU,2BAA2B,SAAA,GAAO,CAAA,EAAI,KACnE,kBAAC,OAAD,CACE,UACE,IAAU,EAAY,kCAAoC,oCAG3D,SAAA,CACG,CAAA,CACF,CATK,EAAA,GAAG,EAAQ,GAAG,OAAO,CAAK,GAS/B,CACP,CACG,CAAA,CACQ,CAAA,EAChB,kBAAC,EAAD,CAAgB,UAAU,4CAA6C,SAAA,CAAqB,CAAA,CACrF,CAAA,CAAA,CACM,CAAA,CAErB"}
@@ -1,2 +1,2 @@
1
- const e=require("../lib/cn.cjs"),t=require("./Spinner.cjs");let n=require("radix-ui"),r=require("react/jsx-runtime");const i=(0,require("class-variance-authority").cva)(`inline-flex shrink-0 cursor-pointer items-center justify-center gap-1.5 whitespace-nowrap rounded-md font-mono transition-[color,background-color,border-color,filter] outline-none focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 [&_svg]:pointer-events-none [&_svg]:shrink-0`,{variants:{variant:{primary:`bg-doom-blue font-bold text-doom-rail hover:brightness-110`,outline:`border border-doom-border text-doom-dim hover:border-doom-blue/50 hover:text-doom-hi`,ghost:`text-doom-dim hover:bg-doom-panel hover:text-doom-hi`,subtle:`bg-doom-panel text-doom-dim hover:bg-doom-deep hover:text-doom-hi`,danger:`bg-doom-red font-bold text-doom-rail hover:brightness-110`,"danger-outline":`border border-doom-edge-red bg-doom-tint-red font-bold text-doom-red hover:brightness-110`,success:`bg-doom-green font-bold text-doom-rail hover:brightness-110`,link:`text-doom-blue hover:underline`},size:{xs:`h-5 rounded px-1.5 text-2xs`,sm:`h-6 px-2.5 text-xs`,md:`h-7 px-3 text-sm`,lg:`h-8 px-3.5 text-base`,icon:`h-5 w-5 rounded p-0`,"icon-md":`h-7 w-7 p-0`,card:`h-auto w-full flex-col items-stretch justify-start gap-1 px-[11px] py-2.5 text-left whitespace-normal`}},defaultVariants:{variant:`outline`,size:`md`}});function a({className:a,variant:o,size:s,asChild:c=!1,loading:l=!1,loadingLabel:u,disabled:d,type:f,children:p,...m}){let h=c?n.Slot.Root:`button`,g=!c&&l;return(0,r.jsx)(h,{"data-slot":`button`,type:c?void 0:f??`button`,"aria-busy":g?!0:void 0,disabled:c?void 0:d??g,className:e.cn(i({variant:o,size:s}),a),...m,children:c?p:(0,r.jsxs)(r.Fragment,{children:[g?(0,r.jsx)(t.Spinner,{label:u}):null,p]})})}exports.Button=a,exports.buttonVariants=i;
1
+ const e=require("../lib/cn.cjs"),t=require("./Spinner.cjs");let n=require("radix-ui"),r=require("react/jsx-runtime");const i=(0,require("class-variance-authority").cva)(`inline-flex shrink-0 cursor-pointer items-center justify-center gap-1.5 whitespace-nowrap rounded-md font-mono transition-[color,background-color,border-color,filter] outline-none focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 [&_svg]:pointer-events-none [&_svg]:shrink-0`,{variants:{variant:{primary:`bg-doom-blue font-bold text-doom-rail hover:brightness-110`,outline:`border border-doom-border text-doom-dim hover:border-doom-blue/50 hover:text-doom-hi`,ghost:`text-doom-dim hover:bg-doom-panel hover:text-doom-hi`,subtle:`bg-doom-panel text-doom-dim hover:bg-doom-deep hover:text-doom-hi`,danger:`bg-doom-red font-bold text-doom-rail hover:brightness-110`,"danger-outline":`border border-doom-edge-red bg-doom-tint-red font-bold text-doom-red hover:brightness-110`,success:`bg-doom-green font-bold text-doom-rail hover:brightness-110`,link:`text-doom-blue hover:underline`},size:{xs:`h-5 rounded px-1.5 text-2xs`,sm:`h-6 px-2.5 text-xs`,md:`h-7 px-3 text-sm`,lg:`h-8 px-3.5 text-base`,icon:`h-5 w-5 rounded p-0`,"icon-md":`h-7 w-7 p-0`,card:`h-auto w-full flex-col items-stretch justify-start gap-1 px-[11px] py-2.5 text-left whitespace-normal`}},defaultVariants:{variant:`outline`,size:`md`}});function a({className:a,variant:o,size:s,asChild:c=!1,loading:l=!1,loadingLabel:u,disabled:d,type:f,children:p,...m}){let h=c?n.Slot.Root:`button`,g=!c&&l;return/* @__PURE__ */ (0,r.jsx)(h,{"data-slot":`button`,type:c?void 0:f??`button`,"aria-busy":g?!0:void 0,disabled:c?void 0:d??g,className:e.cn(i({variant:o,size:s}),a),...m,children:c?p:/* @__PURE__ */ (0,r.jsxs)(r.Fragment,{children:[g?/* @__PURE__ */ (0,r.jsx)(t.Spinner,{label:u}):null,p]})})}exports.Button=a,exports.buttonVariants=i;
2
2
  //# sourceMappingURL=Button.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.cjs","names":["cva","Slot","cn","Spinner"],"sources":["../../../src/components/Button.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 { Spinner } from './Spinner';\n\nexport const buttonVariants = cva(\n 'inline-flex shrink-0 cursor-pointer items-center justify-center gap-1.5 whitespace-nowrap rounded-md font-mono transition-[color,background-color,border-color,filter] outline-none focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 [&_svg]:pointer-events-none [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n primary: 'bg-doom-blue font-bold text-doom-rail hover:brightness-110',\n outline: 'border border-doom-border text-doom-dim hover:border-doom-blue/50 hover:text-doom-hi',\n ghost: 'text-doom-dim hover:bg-doom-panel hover:text-doom-hi',\n subtle: 'bg-doom-panel text-doom-dim hover:bg-doom-deep hover:text-doom-hi',\n danger: 'bg-doom-red font-bold text-doom-rail hover:brightness-110',\n 'danger-outline': 'border border-doom-edge-red bg-doom-tint-red font-bold text-doom-red hover:brightness-110',\n success: 'bg-doom-green font-bold text-doom-rail hover:brightness-110',\n link: 'text-doom-blue hover:underline',\n },\n size: {\n xs: 'h-5 rounded px-1.5 text-2xs',\n sm: 'h-6 px-2.5 text-xs',\n md: 'h-7 px-3 text-sm',\n lg: 'h-8 px-3.5 text-base',\n icon: 'h-5 w-5 rounded p-0',\n 'icon-md': 'h-7 w-7 p-0',\n /**\n * A whole card that is one click target: a session in the rail, a run\n * in a panel. It keeps the button's focus ring and cursor and gives up\n * the button's single-line box, which is what a card-shaped <button>\n * would otherwise have to restate.\n */\n card: 'h-auto w-full flex-col items-stretch justify-start gap-1 px-[11px] py-2.5 text-left whitespace-normal',\n },\n },\n defaultVariants: { variant: 'outline', size: 'md' },\n },\n);\n\nexport type ButtonVariant = NonNullable<VariantProps<typeof buttonVariants>['variant']>;\nexport type ButtonSize = NonNullable<VariantProps<typeof buttonVariants>['size']>;\n\nexport interface ButtonProps extends ComponentProps<'button'>, VariantProps<typeof buttonVariants> {\n /** Render the child element instead of a <button>, passing the classes down (shadcn's asChild). */\n asChild?: boolean;\n /**\n * Work is in flight: the button shows a spinner and stops accepting clicks.\n * Ignored under asChild, where the child owns its own content.\n */\n loading?: boolean;\n /** What the spinner announces while loading; omit it and the wait is silent. */\n loadingLabel?: string;\n}\n\n/** The one button: every variant is a theme token, so it recolours with the theme. */\nexport function Button({\n className,\n variant,\n size,\n asChild = false,\n loading = false,\n loadingLabel,\n disabled,\n type,\n children,\n ...props\n}: ButtonProps) {\n const Component = asChild ? Slot.Root : 'button';\n const busy = !asChild && loading;\n return (\n <Component\n data-slot=\"button\"\n type={asChild ? undefined : (type ?? 'button')}\n aria-busy={busy ? true : undefined}\n disabled={asChild ? undefined : (disabled ?? busy)}\n className={cn(buttonVariants({ variant, size }), className)}\n {...props}\n >\n {/* Slot takes exactly one child, so asChild hands its element straight through. */}\n {asChild ? (\n children\n ) : (\n <>\n {busy ? <Spinner label={loadingLabel} /> : null}\n {children}\n </>\n )}\n </Component>\n );\n}\n"],"mappings":"qHAOA,MAAa,GAAA,oCAAiBA,CAAAA,CAAAA,IAAAA,CAC5B,yUACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,6DACT,QAAS,uFACT,MAAO,uDACP,OAAQ,oEACR,OAAQ,4DACR,iBAAkB,4FAClB,QAAS,8DACT,KAAM,gCACR,EACA,KAAM,CACJ,GAAI,8BACJ,GAAI,qBACJ,GAAI,mBACJ,GAAI,uBACJ,KAAM,sBACN,UAAW,cAOX,KAAM,uGACR,CACF,EACA,gBAAiB,CAAE,QAAS,UAAW,KAAM,IAAK,CACpD,CACF,EAkBA,SAAgB,EAAO,CACrB,YACA,UACA,OACA,UAAU,GACV,UAAU,GACV,eACA,WACA,OACA,WACA,GAAG,GACW,CACd,IAAM,EAAY,EAAUC,EAAAA,KAAK,KAAO,SAClC,EAAO,CAAC,GAAW,EACzB,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAU,SACV,KAAM,EAAU,IAAA,GAAa,GAAQ,SACrC,YAAW,EAAO,GAAO,IAAA,GACzB,SAAU,EAAU,IAAA,GAAa,GAAY,EAC7C,UAAWC,EAAAA,GAAG,EAAe,CAAE,UAAS,MAAK,CAAC,EAAG,CAAS,EAC1D,GAAI,EAGH,SAAA,EACC,GAEA,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,CACG,GAAO,EAAA,EAAA,IAAA,CAACC,EAAAA,QAAD,CAAS,MAAO,CAAe,CAAA,EAAI,KAC1C,CACD,CAAA,CAAA,CAEK,CAAA,CAEf"}
1
+ {"version":3,"file":"Button.cjs","names":["cva","Slot","cn","Spinner"],"sources":["../../../src/components/Button.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 { Spinner } from './Spinner';\n\nexport const buttonVariants = cva(\n 'inline-flex shrink-0 cursor-pointer items-center justify-center gap-1.5 whitespace-nowrap rounded-md font-mono transition-[color,background-color,border-color,filter] outline-none focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 [&_svg]:pointer-events-none [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n primary: 'bg-doom-blue font-bold text-doom-rail hover:brightness-110',\n outline: 'border border-doom-border text-doom-dim hover:border-doom-blue/50 hover:text-doom-hi',\n ghost: 'text-doom-dim hover:bg-doom-panel hover:text-doom-hi',\n subtle: 'bg-doom-panel text-doom-dim hover:bg-doom-deep hover:text-doom-hi',\n danger: 'bg-doom-red font-bold text-doom-rail hover:brightness-110',\n 'danger-outline': 'border border-doom-edge-red bg-doom-tint-red font-bold text-doom-red hover:brightness-110',\n success: 'bg-doom-green font-bold text-doom-rail hover:brightness-110',\n link: 'text-doom-blue hover:underline',\n },\n size: {\n xs: 'h-5 rounded px-1.5 text-2xs',\n sm: 'h-6 px-2.5 text-xs',\n md: 'h-7 px-3 text-sm',\n lg: 'h-8 px-3.5 text-base',\n icon: 'h-5 w-5 rounded p-0',\n 'icon-md': 'h-7 w-7 p-0',\n /**\n * A whole card that is one click target: a session in the rail, a run\n * in a panel. It keeps the button's focus ring and cursor and gives up\n * the button's single-line box, which is what a card-shaped <button>\n * would otherwise have to restate.\n */\n card: 'h-auto w-full flex-col items-stretch justify-start gap-1 px-[11px] py-2.5 text-left whitespace-normal',\n },\n },\n defaultVariants: { variant: 'outline', size: 'md' },\n },\n);\n\nexport type ButtonVariant = NonNullable<VariantProps<typeof buttonVariants>['variant']>;\nexport type ButtonSize = NonNullable<VariantProps<typeof buttonVariants>['size']>;\n\nexport interface ButtonProps extends ComponentProps<'button'>, VariantProps<typeof buttonVariants> {\n /** Render the child element instead of a <button>, passing the classes down (shadcn's asChild). */\n asChild?: boolean;\n /**\n * Work is in flight: the button shows a spinner and stops accepting clicks.\n * Ignored under asChild, where the child owns its own content.\n */\n loading?: boolean;\n /** What the spinner announces while loading; omit it and the wait is silent. */\n loadingLabel?: string;\n}\n\n/** The one button: every variant is a theme token, so it recolours with the theme. */\nexport function Button({\n className,\n variant,\n size,\n asChild = false,\n loading = false,\n loadingLabel,\n disabled,\n type,\n children,\n ...props\n}: ButtonProps) {\n const Component = asChild ? Slot.Root : 'button';\n const busy = !asChild && loading;\n return (\n <Component\n data-slot=\"button\"\n type={asChild ? undefined : (type ?? 'button')}\n aria-busy={busy ? true : undefined}\n disabled={asChild ? undefined : (disabled ?? busy)}\n className={cn(buttonVariants({ variant, size }), className)}\n {...props}\n >\n {/* Slot takes exactly one child, so asChild hands its element straight through. */}\n {asChild ? (\n children\n ) : (\n <>\n {busy ? <Spinner label={loadingLabel} /> : null}\n {children}\n </>\n )}\n </Component>\n );\n}\n"],"mappings":"qHAOA,MAAa,GAAA,oCAAiBA,CAAAA,CAAAA,IAAAA,CAC5B,yUACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,6DACT,QAAS,uFACT,MAAO,uDACP,OAAQ,oEACR,OAAQ,4DACR,iBAAkB,4FAClB,QAAS,8DACT,KAAM,gCACR,EACA,KAAM,CACJ,GAAI,8BACJ,GAAI,qBACJ,GAAI,mBACJ,GAAI,uBACJ,KAAM,sBACN,UAAW,cAOX,KAAM,uGACR,CACF,EACA,gBAAiB,CAAE,QAAS,UAAW,KAAM,IAAK,CACpD,CACF,EAkBA,SAAgB,EAAO,CACrB,YACA,UACA,OACA,UAAU,GACV,UAAU,GACV,eACA,WACA,OACA,WACA,GAAG,GACW,CACd,IAAM,EAAY,EAAUC,EAAAA,KAAK,KAAO,SAClC,EAAO,CAAC,GAAW,EACzB,MACE,iBAAA,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAU,SACV,KAAM,EAAU,IAAA,GAAa,GAAQ,SACrC,YAAW,EAAO,GAAO,IAAA,GACzB,SAAU,EAAU,IAAA,GAAa,GAAY,EAC7C,UAAWC,EAAAA,GAAG,EAAe,CAAE,UAAS,MAAK,CAAC,EAAG,CAAS,EAC1D,GAAI,EAGH,SAAA,EACC,EAEA,iBAAA,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,CACG,EAAO,iBAAA,EAAA,EAAA,IAAA,CAACC,EAAAA,QAAD,CAAS,MAAO,CAAe,CAAA,EAAI,KAC1C,CACD,CAAA,CAAA,CAEK,CAAA,CAEf"}
@@ -1,2 +1,2 @@
1
- import{cn as e}from"../lib/cn.mjs";import{Spinner as t}from"./Spinner.mjs";import{Slot as n}from"radix-ui";import{Fragment as r,jsx as i,jsxs as a}from"react/jsx-runtime";import{cva as o}from"class-variance-authority";const s=o(`inline-flex shrink-0 cursor-pointer items-center justify-center gap-1.5 whitespace-nowrap rounded-md font-mono transition-[color,background-color,border-color,filter] outline-none focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 [&_svg]:pointer-events-none [&_svg]:shrink-0`,{variants:{variant:{primary:`bg-doom-blue font-bold text-doom-rail hover:brightness-110`,outline:`border border-doom-border text-doom-dim hover:border-doom-blue/50 hover:text-doom-hi`,ghost:`text-doom-dim hover:bg-doom-panel hover:text-doom-hi`,subtle:`bg-doom-panel text-doom-dim hover:bg-doom-deep hover:text-doom-hi`,danger:`bg-doom-red font-bold text-doom-rail hover:brightness-110`,"danger-outline":`border border-doom-edge-red bg-doom-tint-red font-bold text-doom-red hover:brightness-110`,success:`bg-doom-green font-bold text-doom-rail hover:brightness-110`,link:`text-doom-blue hover:underline`},size:{xs:`h-5 rounded px-1.5 text-2xs`,sm:`h-6 px-2.5 text-xs`,md:`h-7 px-3 text-sm`,lg:`h-8 px-3.5 text-base`,icon:`h-5 w-5 rounded p-0`,"icon-md":`h-7 w-7 p-0`,card:`h-auto w-full flex-col items-stretch justify-start gap-1 px-[11px] py-2.5 text-left whitespace-normal`}},defaultVariants:{variant:`outline`,size:`md`}});function c({className:o,variant:c,size:l,asChild:u=!1,loading:d=!1,loadingLabel:f,disabled:p,type:m,children:h,...g}){let _=u?n.Root:`button`,v=!u&&d;return i(_,{"data-slot":`button`,type:u?void 0:m??`button`,"aria-busy":v?!0:void 0,disabled:u?void 0:p??v,className:e(s({variant:c,size:l}),o),...g,children:u?h:a(r,{children:[v?i(t,{label:f}):null,h]})})}export{c as Button,s as buttonVariants};
1
+ import{cn as e}from"../lib/cn.mjs";import{Spinner as t}from"./Spinner.mjs";import{Slot as n}from"radix-ui";import{Fragment as r,jsx as i,jsxs as a}from"react/jsx-runtime";import{cva as o}from"class-variance-authority";const s=o(`inline-flex shrink-0 cursor-pointer items-center justify-center gap-1.5 whitespace-nowrap rounded-md font-mono transition-[color,background-color,border-color,filter] outline-none focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 [&_svg]:pointer-events-none [&_svg]:shrink-0`,{variants:{variant:{primary:`bg-doom-blue font-bold text-doom-rail hover:brightness-110`,outline:`border border-doom-border text-doom-dim hover:border-doom-blue/50 hover:text-doom-hi`,ghost:`text-doom-dim hover:bg-doom-panel hover:text-doom-hi`,subtle:`bg-doom-panel text-doom-dim hover:bg-doom-deep hover:text-doom-hi`,danger:`bg-doom-red font-bold text-doom-rail hover:brightness-110`,"danger-outline":`border border-doom-edge-red bg-doom-tint-red font-bold text-doom-red hover:brightness-110`,success:`bg-doom-green font-bold text-doom-rail hover:brightness-110`,link:`text-doom-blue hover:underline`},size:{xs:`h-5 rounded px-1.5 text-2xs`,sm:`h-6 px-2.5 text-xs`,md:`h-7 px-3 text-sm`,lg:`h-8 px-3.5 text-base`,icon:`h-5 w-5 rounded p-0`,"icon-md":`h-7 w-7 p-0`,card:`h-auto w-full flex-col items-stretch justify-start gap-1 px-[11px] py-2.5 text-left whitespace-normal`}},defaultVariants:{variant:`outline`,size:`md`}});function c({className:o,variant:c,size:l,asChild:u=!1,loading:d=!1,loadingLabel:f,disabled:p,type:m,children:h,...g}){let _=u?n.Root:`button`,v=!u&&d;return/* @__PURE__ */ i(_,{"data-slot":`button`,type:u?void 0:m??`button`,"aria-busy":v?!0:void 0,disabled:u?void 0:p??v,className:e(s({variant:c,size:l}),o),...g,children:u?h:/* @__PURE__ */ a(r,{children:[v?/* @__PURE__ */ i(t,{label:f}):null,h]})})}export{c as Button,s as buttonVariants};
2
2
  //# sourceMappingURL=Button.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.mjs","names":[],"sources":["../../../src/components/Button.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 { Spinner } from './Spinner';\n\nexport const buttonVariants = cva(\n 'inline-flex shrink-0 cursor-pointer items-center justify-center gap-1.5 whitespace-nowrap rounded-md font-mono transition-[color,background-color,border-color,filter] outline-none focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 [&_svg]:pointer-events-none [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n primary: 'bg-doom-blue font-bold text-doom-rail hover:brightness-110',\n outline: 'border border-doom-border text-doom-dim hover:border-doom-blue/50 hover:text-doom-hi',\n ghost: 'text-doom-dim hover:bg-doom-panel hover:text-doom-hi',\n subtle: 'bg-doom-panel text-doom-dim hover:bg-doom-deep hover:text-doom-hi',\n danger: 'bg-doom-red font-bold text-doom-rail hover:brightness-110',\n 'danger-outline': 'border border-doom-edge-red bg-doom-tint-red font-bold text-doom-red hover:brightness-110',\n success: 'bg-doom-green font-bold text-doom-rail hover:brightness-110',\n link: 'text-doom-blue hover:underline',\n },\n size: {\n xs: 'h-5 rounded px-1.5 text-2xs',\n sm: 'h-6 px-2.5 text-xs',\n md: 'h-7 px-3 text-sm',\n lg: 'h-8 px-3.5 text-base',\n icon: 'h-5 w-5 rounded p-0',\n 'icon-md': 'h-7 w-7 p-0',\n /**\n * A whole card that is one click target: a session in the rail, a run\n * in a panel. It keeps the button's focus ring and cursor and gives up\n * the button's single-line box, which is what a card-shaped <button>\n * would otherwise have to restate.\n */\n card: 'h-auto w-full flex-col items-stretch justify-start gap-1 px-[11px] py-2.5 text-left whitespace-normal',\n },\n },\n defaultVariants: { variant: 'outline', size: 'md' },\n },\n);\n\nexport type ButtonVariant = NonNullable<VariantProps<typeof buttonVariants>['variant']>;\nexport type ButtonSize = NonNullable<VariantProps<typeof buttonVariants>['size']>;\n\nexport interface ButtonProps extends ComponentProps<'button'>, VariantProps<typeof buttonVariants> {\n /** Render the child element instead of a <button>, passing the classes down (shadcn's asChild). */\n asChild?: boolean;\n /**\n * Work is in flight: the button shows a spinner and stops accepting clicks.\n * Ignored under asChild, where the child owns its own content.\n */\n loading?: boolean;\n /** What the spinner announces while loading; omit it and the wait is silent. */\n loadingLabel?: string;\n}\n\n/** The one button: every variant is a theme token, so it recolours with the theme. */\nexport function Button({\n className,\n variant,\n size,\n asChild = false,\n loading = false,\n loadingLabel,\n disabled,\n type,\n children,\n ...props\n}: ButtonProps) {\n const Component = asChild ? Slot.Root : 'button';\n const busy = !asChild && loading;\n return (\n <Component\n data-slot=\"button\"\n type={asChild ? undefined : (type ?? 'button')}\n aria-busy={busy ? true : undefined}\n disabled={asChild ? undefined : (disabled ?? busy)}\n className={cn(buttonVariants({ variant, size }), className)}\n {...props}\n >\n {/* Slot takes exactly one child, so asChild hands its element straight through. */}\n {asChild ? (\n children\n ) : (\n <>\n {busy ? <Spinner label={loadingLabel} /> : null}\n {children}\n </>\n )}\n </Component>\n );\n}\n"],"mappings":"0NAOA,MAAa,EAAiB,EAC5B,yUACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,6DACT,QAAS,uFACT,MAAO,uDACP,OAAQ,oEACR,OAAQ,4DACR,iBAAkB,4FAClB,QAAS,8DACT,KAAM,gCACR,EACA,KAAM,CACJ,GAAI,8BACJ,GAAI,qBACJ,GAAI,mBACJ,GAAI,uBACJ,KAAM,sBACN,UAAW,cAOX,KAAM,uGACR,CACF,EACA,gBAAiB,CAAE,QAAS,UAAW,KAAM,IAAK,CACpD,CACF,EAkBA,SAAgB,EAAO,CACrB,YACA,UACA,OACA,UAAU,GACV,UAAU,GACV,eACA,WACA,OACA,WACA,GAAG,GACW,CACd,IAAM,EAAY,EAAU,EAAK,KAAO,SAClC,EAAO,CAAC,GAAW,EACzB,OACE,EAAC,EAAD,CACE,YAAU,SACV,KAAM,EAAU,IAAA,GAAa,GAAQ,SACrC,YAAW,EAAO,GAAO,IAAA,GACzB,SAAU,EAAU,IAAA,GAAa,GAAY,EAC7C,UAAW,EAAG,EAAe,CAAE,UAAS,MAAK,CAAC,EAAG,CAAS,EAC1D,GAAI,EAGH,SAAA,EACC,EAEA,EAAA,EAAA,CAAA,SAAA,CACG,EAAO,EAAC,EAAD,CAAS,MAAO,CAAe,CAAA,EAAI,KAC1C,CACD,CAAA,CAAA,CAEK,CAAA,CAEf"}
1
+ {"version":3,"file":"Button.mjs","names":[],"sources":["../../../src/components/Button.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 { Spinner } from './Spinner';\n\nexport const buttonVariants = cva(\n 'inline-flex shrink-0 cursor-pointer items-center justify-center gap-1.5 whitespace-nowrap rounded-md font-mono transition-[color,background-color,border-color,filter] outline-none focus-visible:ring-2 focus-visible:ring-doom-blue/50 disabled:pointer-events-none disabled:opacity-40 [&_svg]:pointer-events-none [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n primary: 'bg-doom-blue font-bold text-doom-rail hover:brightness-110',\n outline: 'border border-doom-border text-doom-dim hover:border-doom-blue/50 hover:text-doom-hi',\n ghost: 'text-doom-dim hover:bg-doom-panel hover:text-doom-hi',\n subtle: 'bg-doom-panel text-doom-dim hover:bg-doom-deep hover:text-doom-hi',\n danger: 'bg-doom-red font-bold text-doom-rail hover:brightness-110',\n 'danger-outline': 'border border-doom-edge-red bg-doom-tint-red font-bold text-doom-red hover:brightness-110',\n success: 'bg-doom-green font-bold text-doom-rail hover:brightness-110',\n link: 'text-doom-blue hover:underline',\n },\n size: {\n xs: 'h-5 rounded px-1.5 text-2xs',\n sm: 'h-6 px-2.5 text-xs',\n md: 'h-7 px-3 text-sm',\n lg: 'h-8 px-3.5 text-base',\n icon: 'h-5 w-5 rounded p-0',\n 'icon-md': 'h-7 w-7 p-0',\n /**\n * A whole card that is one click target: a session in the rail, a run\n * in a panel. It keeps the button's focus ring and cursor and gives up\n * the button's single-line box, which is what a card-shaped <button>\n * would otherwise have to restate.\n */\n card: 'h-auto w-full flex-col items-stretch justify-start gap-1 px-[11px] py-2.5 text-left whitespace-normal',\n },\n },\n defaultVariants: { variant: 'outline', size: 'md' },\n },\n);\n\nexport type ButtonVariant = NonNullable<VariantProps<typeof buttonVariants>['variant']>;\nexport type ButtonSize = NonNullable<VariantProps<typeof buttonVariants>['size']>;\n\nexport interface ButtonProps extends ComponentProps<'button'>, VariantProps<typeof buttonVariants> {\n /** Render the child element instead of a <button>, passing the classes down (shadcn's asChild). */\n asChild?: boolean;\n /**\n * Work is in flight: the button shows a spinner and stops accepting clicks.\n * Ignored under asChild, where the child owns its own content.\n */\n loading?: boolean;\n /** What the spinner announces while loading; omit it and the wait is silent. */\n loadingLabel?: string;\n}\n\n/** The one button: every variant is a theme token, so it recolours with the theme. */\nexport function Button({\n className,\n variant,\n size,\n asChild = false,\n loading = false,\n loadingLabel,\n disabled,\n type,\n children,\n ...props\n}: ButtonProps) {\n const Component = asChild ? Slot.Root : 'button';\n const busy = !asChild && loading;\n return (\n <Component\n data-slot=\"button\"\n type={asChild ? undefined : (type ?? 'button')}\n aria-busy={busy ? true : undefined}\n disabled={asChild ? undefined : (disabled ?? busy)}\n className={cn(buttonVariants({ variant, size }), className)}\n {...props}\n >\n {/* Slot takes exactly one child, so asChild hands its element straight through. */}\n {asChild ? (\n children\n ) : (\n <>\n {busy ? <Spinner label={loadingLabel} /> : null}\n {children}\n </>\n )}\n </Component>\n );\n}\n"],"mappings":"0NAOA,MAAa,EAAiB,EAC5B,yUACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,6DACT,QAAS,uFACT,MAAO,uDACP,OAAQ,oEACR,OAAQ,4DACR,iBAAkB,4FAClB,QAAS,8DACT,KAAM,gCACR,EACA,KAAM,CACJ,GAAI,8BACJ,GAAI,qBACJ,GAAI,mBACJ,GAAI,uBACJ,KAAM,sBACN,UAAW,cAOX,KAAM,uGACR,CACF,EACA,gBAAiB,CAAE,QAAS,UAAW,KAAM,IAAK,CACpD,CACF,EAkBA,SAAgB,EAAO,CACrB,YACA,UACA,OACA,UAAU,GACV,UAAU,GACV,eACA,WACA,OACA,WACA,GAAG,GACW,CACd,IAAM,EAAY,EAAU,EAAK,KAAO,SAClC,EAAO,CAAC,GAAW,EACzB,MACE,kBAAC,EAAD,CACE,YAAU,SACV,KAAM,EAAU,IAAA,GAAa,GAAQ,SACrC,YAAW,EAAO,GAAO,IAAA,GACzB,SAAU,EAAU,IAAA,GAAa,GAAY,EAC7C,UAAW,EAAG,EAAe,CAAE,UAAS,MAAK,CAAC,EAAG,CAAS,EAC1D,GAAI,EAGH,SAAA,EACC,EAEA,kBAAA,EAAA,CAAA,SAAA,CACG,EAAO,kBAAC,EAAD,CAAS,MAAO,CAAe,CAAA,EAAI,KAC1C,CACD,CAAA,CAAA,CAEK,CAAA,CAEf"}
@@ -1,2 +1,2 @@
1
- require("../icons/icons.cjs");const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime"),r=require("lucide-react");function i({className:i,...a}){return(0,n.jsx)(t.Checkbox.Root,{"data-slot":`checkbox`,className:e.cn(`flex h-3.5 w-3.5 shrink-0 cursor-pointer items-center justify-center rounded-sm border border-doom-border bg-doom-deep 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=indeterminate]:border-doom-blue`,i),...a,children:(0,n.jsx)(t.Checkbox.Indicator,{"data-slot":`checkbox-indicator`,className:`text-doom-blue`,children:(0,n.jsx)(r.Check,{className:`h-2.5 w-2.5`})})})}exports.Checkbox=i;
1
+ require("../icons/icons.cjs");const e=require("../lib/cn.cjs");let t=require("radix-ui"),n=require("react/jsx-runtime"),r=require("lucide-react");function i({className:i,...a}){return/* @__PURE__ */ (0,n.jsx)(t.Checkbox.Root,{"data-slot":`checkbox`,className:e.cn(`flex h-3.5 w-3.5 shrink-0 cursor-pointer items-center justify-center rounded-sm border border-doom-border bg-doom-deep 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=indeterminate]:border-doom-blue`,i),...a,children:/* @__PURE__ */ (0,n.jsx)(t.Checkbox.Indicator,{"data-slot":`checkbox-indicator`,className:`text-doom-blue`,children:/* @__PURE__ */ (0,n.jsx)(r.Check,{className:`h-2.5 w-2.5`})})})}exports.Checkbox=i;
2
2
  //# sourceMappingURL=Checkbox.cjs.map