@flanksource/clicky-ui 0.1.0 → 0.2.1

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 (378) hide show
  1. package/README.md +29 -2
  2. package/dist/api-explorer.d.ts +5 -0
  3. package/dist/api-explorer.d.ts.map +1 -0
  4. package/dist/api-explorer.js +25 -0
  5. package/dist/api-explorer.js.map +1 -0
  6. package/dist/clicky.d.ts +2 -0
  7. package/dist/clicky.d.ts.map +1 -0
  8. package/dist/clicky.js +5 -0
  9. package/dist/clicky.js.map +1 -0
  10. package/dist/components/DatePicker.d.ts +18 -0
  11. package/dist/components/DatePicker.d.ts.map +1 -0
  12. package/dist/components/DatePicker.js +63 -0
  13. package/dist/components/DatePicker.js.map +1 -0
  14. package/dist/components/DateTimePicker.d.ts +18 -0
  15. package/dist/components/DateTimePicker.d.ts.map +1 -0
  16. package/dist/components/DateTimePicker.js +84 -0
  17. package/dist/components/DateTimePicker.js.map +1 -0
  18. package/dist/components/FilterBar.d.ts +180 -0
  19. package/dist/components/FilterBar.d.ts.map +1 -0
  20. package/dist/components/FilterBar.js +1685 -0
  21. package/dist/components/FilterBar.js.map +1 -0
  22. package/dist/components/MultiSelect.d.ts +19 -0
  23. package/dist/components/MultiSelect.d.ts.map +1 -0
  24. package/dist/components/MultiSelect.js +143 -0
  25. package/dist/components/MultiSelect.js.map +1 -0
  26. package/dist/components/RangeSlider.d.ts +16 -0
  27. package/dist/components/RangeSlider.d.ts.map +1 -0
  28. package/dist/components/RangeSlider.js +92 -0
  29. package/dist/components/RangeSlider.js.map +1 -0
  30. package/dist/components/button.d.ts +21 -0
  31. package/dist/components/button.d.ts.map +1 -0
  32. package/dist/components/button.js +126 -0
  33. package/dist/components/button.js.map +1 -0
  34. package/dist/components/density-switcher.d.ts +7 -0
  35. package/dist/components/density-switcher.d.ts.map +1 -0
  36. package/dist/components/density-switcher.js +32 -0
  37. package/dist/components/density-switcher.js.map +1 -0
  38. package/dist/components/icon-menu-picker.d.ts +22 -0
  39. package/dist/components/icon-menu-picker.d.ts.map +1 -0
  40. package/dist/components/icon-menu-picker.js +181 -0
  41. package/dist/components/icon-menu-picker.js.map +1 -0
  42. package/dist/components/select.d.ts +15 -0
  43. package/dist/components/select.d.ts.map +1 -0
  44. package/dist/components/select.js +39 -0
  45. package/dist/components/select.js.map +1 -0
  46. package/dist/components/theme-switcher.d.ts +7 -0
  47. package/dist/components/theme-switcher.d.ts.map +1 -0
  48. package/dist/components/theme-switcher.js +42 -0
  49. package/dist/components/theme-switcher.js.map +1 -0
  50. package/dist/components.d.ts +14 -0
  51. package/dist/components.d.ts.map +1 -0
  52. package/dist/components.js +31 -0
  53. package/dist/components.js.map +1 -0
  54. package/dist/data/AnsiHtml.d.ts +7 -0
  55. package/dist/data/AnsiHtml.d.ts.map +1 -0
  56. package/dist/data/AnsiHtml.js +71 -0
  57. package/dist/data/AnsiHtml.js.map +1 -0
  58. package/dist/data/Avatar.d.ts +32 -0
  59. package/dist/data/Avatar.d.ts.map +1 -0
  60. package/dist/data/Avatar.js +201 -0
  61. package/dist/data/Avatar.js.map +1 -0
  62. package/dist/data/AvatarBadge.d.ts +26 -0
  63. package/dist/data/AvatarBadge.d.ts.map +1 -0
  64. package/dist/data/AvatarBadge.js +104 -0
  65. package/dist/data/AvatarBadge.js.map +1 -0
  66. package/dist/data/Badge.d.ts +44 -0
  67. package/dist/data/Badge.d.ts.map +1 -0
  68. package/dist/data/Badge.js +667 -0
  69. package/dist/data/Badge.js.map +1 -0
  70. package/dist/data/Clicky.d.ts +147 -0
  71. package/dist/data/Clicky.d.ts.map +1 -0
  72. package/dist/data/Clicky.fixtures.d.ts +3 -0
  73. package/dist/data/Clicky.fixtures.d.ts.map +1 -0
  74. package/dist/data/Clicky.js +1960 -0
  75. package/dist/data/Clicky.js.map +1 -0
  76. package/dist/data/DataTable.d.ts +95 -0
  77. package/dist/data/DataTable.d.ts.map +1 -0
  78. package/dist/data/DataTable.js +1464 -0
  79. package/dist/data/DataTable.js.map +1 -0
  80. package/dist/data/FilterPill.d.ts +29 -0
  81. package/dist/data/FilterPill.d.ts.map +1 -0
  82. package/dist/data/FilterPill.js +153 -0
  83. package/dist/data/FilterPill.js.map +1 -0
  84. package/dist/data/Gauge.d.ts +15 -0
  85. package/dist/data/Gauge.d.ts.map +1 -0
  86. package/dist/data/Gauge.js +63 -0
  87. package/dist/data/Gauge.js.map +1 -0
  88. package/dist/data/Icon.d.ts +53 -0
  89. package/dist/data/Icon.d.ts.map +1 -0
  90. package/dist/data/Icon.js +115 -0
  91. package/dist/data/Icon.js.map +1 -0
  92. package/dist/data/JsonView.d.ts +8 -0
  93. package/dist/data/JsonView.d.ts.map +1 -0
  94. package/dist/data/JsonView.js +74 -0
  95. package/dist/data/JsonView.js.map +1 -0
  96. package/dist/data/KeyValueList.d.ts +17 -0
  97. package/dist/data/KeyValueList.d.ts.map +1 -0
  98. package/dist/data/KeyValueList.js +33 -0
  99. package/dist/data/KeyValueList.js.map +1 -0
  100. package/dist/data/LogViewer.d.ts +10 -0
  101. package/dist/data/LogViewer.d.ts.map +1 -0
  102. package/dist/data/LogViewer.js +46 -0
  103. package/dist/data/LogViewer.js.map +1 -0
  104. package/dist/data/LogsTable.d.ts +27 -0
  105. package/dist/data/LogsTable.d.ts.map +1 -0
  106. package/dist/data/LogsTable.js +580 -0
  107. package/dist/data/LogsTable.js.map +1 -0
  108. package/dist/data/Markdown.d.ts +6 -0
  109. package/dist/data/Markdown.d.ts.map +1 -0
  110. package/dist/data/Markdown.js +59 -0
  111. package/dist/data/Markdown.js.map +1 -0
  112. package/dist/data/MatrixTable.d.ts +22 -0
  113. package/dist/data/MatrixTable.d.ts.map +1 -0
  114. package/dist/data/MatrixTable.js +164 -0
  115. package/dist/data/MatrixTable.js.map +1 -0
  116. package/dist/data/MethodBadge.d.ts +6 -0
  117. package/dist/data/MethodBadge.d.ts.map +1 -0
  118. package/dist/data/MethodBadge.js +18 -0
  119. package/dist/data/MethodBadge.js.map +1 -0
  120. package/dist/data/ProgressBar.d.ts +13 -0
  121. package/dist/data/ProgressBar.d.ts.map +1 -0
  122. package/dist/data/ProgressBar.js +34 -0
  123. package/dist/data/ProgressBar.js.map +1 -0
  124. package/dist/data/SortableHeader.d.ts +12 -0
  125. package/dist/data/SortableHeader.d.ts.map +1 -0
  126. package/dist/data/SortableHeader.js +33 -0
  127. package/dist/data/SortableHeader.js.map +1 -0
  128. package/dist/data/TabButton.d.ts +12 -0
  129. package/dist/data/TabButton.d.ts.map +1 -0
  130. package/dist/data/TabButton.js +45 -0
  131. package/dist/data/TabButton.js.map +1 -0
  132. package/dist/data/Tree.d.ts +35 -0
  133. package/dist/data/Tree.d.ts.map +1 -0
  134. package/dist/data/Tree.js +236 -0
  135. package/dist/data/Tree.js.map +1 -0
  136. package/dist/data/TreeGroupHeader.d.ts +11 -0
  137. package/dist/data/TreeGroupHeader.d.ts.map +1 -0
  138. package/dist/data/TreeGroupHeader.js +41 -0
  139. package/dist/data/TreeGroupHeader.js.map +1 -0
  140. package/dist/data/TreeNode.d.ts +43 -0
  141. package/dist/data/TreeNode.d.ts.map +1 -0
  142. package/dist/data/TreeNode.js +100 -0
  143. package/dist/data/TreeNode.js.map +1 -0
  144. package/dist/data/cells/StatusDot.d.ts +11 -0
  145. package/dist/data/cells/StatusDot.d.ts.map +1 -0
  146. package/dist/data/cells/StatusDot.js +38 -0
  147. package/dist/data/cells/StatusDot.js.map +1 -0
  148. package/dist/data/cells/TagList.d.ts +59 -0
  149. package/dist/data/cells/TagList.d.ts.map +1 -0
  150. package/dist/data/cells/TagList.js +257 -0
  151. package/dist/data/cells/TagList.js.map +1 -0
  152. package/dist/data/cells/Timestamp.d.ts +46 -0
  153. package/dist/data/cells/Timestamp.d.ts.map +1 -0
  154. package/dist/data/cells/Timestamp.js +146 -0
  155. package/dist/data/cells/Timestamp.js.map +1 -0
  156. package/dist/data/cells/status-mapping.d.ts +8 -0
  157. package/dist/data/cells/status-mapping.d.ts.map +1 -0
  158. package/dist/data/cells/status-mapping.js +44 -0
  159. package/dist/data/cells/status-mapping.js.map +1 -0
  160. package/dist/data/code-highlight.d.ts +12 -0
  161. package/dist/data/code-highlight.d.ts.map +1 -0
  162. package/dist/data/code-highlight.js +28 -0
  163. package/dist/data/code-highlight.js.map +1 -0
  164. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts +9 -0
  165. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts.map +1 -0
  166. package/dist/data/diagnostics/DiagnosticsDetailPanel.js +445 -0
  167. package/dist/data/diagnostics/DiagnosticsDetailPanel.js.map +1 -0
  168. package/dist/data/diagnostics/DiagnosticsTree.d.ts +9 -0
  169. package/dist/data/diagnostics/DiagnosticsTree.d.ts.map +1 -0
  170. package/dist/data/diagnostics/DiagnosticsTree.js +78 -0
  171. package/dist/data/diagnostics/DiagnosticsTree.js.map +1 -0
  172. package/dist/data/diagnostics/ErrorDetails.d.ts +20 -0
  173. package/dist/data/diagnostics/ErrorDetails.d.ts.map +1 -0
  174. package/dist/data/diagnostics/ErrorDetails.js +157 -0
  175. package/dist/data/diagnostics/ErrorDetails.js.map +1 -0
  176. package/dist/data/diagnostics/GoroutineCard.d.ts +10 -0
  177. package/dist/data/diagnostics/GoroutineCard.d.ts.map +1 -0
  178. package/dist/data/diagnostics/GoroutineCard.js +75 -0
  179. package/dist/data/diagnostics/GoroutineCard.js.map +1 -0
  180. package/dist/data/diagnostics/JvmStackTrace.d.ts +11 -0
  181. package/dist/data/diagnostics/JvmStackTrace.d.ts.map +1 -0
  182. package/dist/data/diagnostics/JvmStackTrace.js +26 -0
  183. package/dist/data/diagnostics/JvmStackTrace.js.map +1 -0
  184. package/dist/data/diagnostics/RenderedStackTrace.d.ts +18 -0
  185. package/dist/data/diagnostics/RenderedStackTrace.d.ts.map +1 -0
  186. package/dist/data/diagnostics/RenderedStackTrace.js +235 -0
  187. package/dist/data/diagnostics/RenderedStackTrace.js.map +1 -0
  188. package/dist/data/diagnostics/ThreadCard.d.ts +10 -0
  189. package/dist/data/diagnostics/ThreadCard.d.ts.map +1 -0
  190. package/dist/data/diagnostics/ThreadCard.js +78 -0
  191. package/dist/data/diagnostics/ThreadCard.js.map +1 -0
  192. package/dist/data/diagnostics/error-diagnostics.d.ts +26 -0
  193. package/dist/data/diagnostics/error-diagnostics.d.ts.map +1 -0
  194. package/dist/data/diagnostics/error-diagnostics.js +108 -0
  195. package/dist/data/diagnostics/error-diagnostics.js.map +1 -0
  196. package/dist/data/diagnostics/fixtures.d.ts +3 -0
  197. package/dist/data/diagnostics/fixtures.d.ts.map +1 -0
  198. package/dist/data/diagnostics/jvm-stacktrace.d.ts +34 -0
  199. package/dist/data/diagnostics/jvm-stacktrace.d.ts.map +1 -0
  200. package/dist/data/diagnostics/jvm-stacktrace.js +190 -0
  201. package/dist/data/diagnostics/jvm-stacktrace.js.map +1 -0
  202. package/dist/data/diagnostics/stacktrace-parse.d.ts +11 -0
  203. package/dist/data/diagnostics/stacktrace-parse.d.ts.map +1 -0
  204. package/dist/data/diagnostics/stacktrace-parse.js +87 -0
  205. package/dist/data/diagnostics/stacktrace-parse.js.map +1 -0
  206. package/dist/data/diagnostics/stacktrace.d.ts +38 -0
  207. package/dist/data/diagnostics/stacktrace.d.ts.map +1 -0
  208. package/dist/data/diagnostics/stacktrace.js +119 -0
  209. package/dist/data/diagnostics/stacktrace.js.map +1 -0
  210. package/dist/data/diagnostics/types.d.ts +30 -0
  211. package/dist/data/diagnostics/types.d.ts.map +1 -0
  212. package/dist/data/diagnostics/utils.d.ts +8 -0
  213. package/dist/data/diagnostics/utils.d.ts.map +1 -0
  214. package/dist/data/diagnostics/utils.js +59 -0
  215. package/dist/data/diagnostics/utils.js.map +1 -0
  216. package/dist/data/har/HarPanel.d.ts +9 -0
  217. package/dist/data/har/HarPanel.d.ts.map +1 -0
  218. package/dist/data/har/HarPanel.js +175 -0
  219. package/dist/data/har/HarPanel.js.map +1 -0
  220. package/dist/data/har/fixtures.d.ts +3 -0
  221. package/dist/data/har/fixtures.d.ts.map +1 -0
  222. package/dist/data/har/types.d.ts +47 -0
  223. package/dist/data/har/types.d.ts.map +1 -0
  224. package/dist/data.d.ts +39 -0
  225. package/dist/data.d.ts.map +1 -0
  226. package/dist/data.js +109 -0
  227. package/dist/data.js.map +1 -0
  228. package/dist/hooks/use-density.d.ts +22 -0
  229. package/dist/hooks/use-density.d.ts.map +1 -0
  230. package/dist/hooks/use-density.js +54 -0
  231. package/dist/hooks/use-density.js.map +1 -0
  232. package/dist/hooks/use-history-route.d.ts +6 -0
  233. package/dist/hooks/use-history-route.d.ts.map +1 -0
  234. package/dist/hooks/use-history-route.js +31 -0
  235. package/dist/hooks/use-history-route.js.map +1 -0
  236. package/dist/hooks/use-sort.d.ts +17 -0
  237. package/dist/hooks/use-sort.d.ts.map +1 -0
  238. package/dist/hooks/use-sort.js +42 -0
  239. package/dist/hooks/use-sort.js.map +1 -0
  240. package/dist/hooks/use-theme.d.ts +17 -0
  241. package/dist/hooks/use-theme.d.ts.map +1 -0
  242. package/dist/hooks/use-theme.js +68 -0
  243. package/dist/hooks/use-theme.js.map +1 -0
  244. package/dist/hooks.d.ts +5 -0
  245. package/dist/hooks.d.ts.map +1 -0
  246. package/dist/hooks.js +14 -0
  247. package/dist/hooks.js.map +1 -0
  248. package/dist/index.d.ts +7 -0
  249. package/dist/index.d.ts.map +1 -0
  250. package/dist/index.js +193 -0
  251. package/dist/index.js.map +1 -0
  252. package/dist/layout/Section.d.ts +23 -0
  253. package/dist/layout/Section.d.ts.map +1 -0
  254. package/dist/layout/Section.js +73 -0
  255. package/dist/layout/Section.js.map +1 -0
  256. package/dist/layout/SplitPane.d.ts +13 -0
  257. package/dist/layout/SplitPane.d.ts.map +1 -0
  258. package/dist/layout/SplitPane.js +72 -0
  259. package/dist/layout/SplitPane.js.map +1 -0
  260. package/dist/lib/palette.d.ts +4 -0
  261. package/dist/lib/palette.d.ts.map +1 -0
  262. package/dist/lib/palette.js +35 -0
  263. package/dist/lib/palette.js.map +1 -0
  264. package/dist/lib/size.d.ts +6 -0
  265. package/dist/lib/size.d.ts.map +1 -0
  266. package/dist/lib/size.js +14 -0
  267. package/dist/lib/size.js.map +1 -0
  268. package/dist/lib/utils.d.ts +3 -0
  269. package/dist/lib/utils.d.ts.map +1 -0
  270. package/dist/lib/utils.js +9 -0
  271. package/dist/lib/utils.js.map +1 -0
  272. package/dist/overlay/HoverCard.d.ts +13 -0
  273. package/dist/overlay/HoverCard.d.ts.map +1 -0
  274. package/dist/overlay/HoverCard.js +170 -0
  275. package/dist/overlay/HoverCard.js.map +1 -0
  276. package/dist/overlay/Modal.d.ts +17 -0
  277. package/dist/overlay/Modal.d.ts.map +1 -0
  278. package/dist/overlay/Modal.js +91 -0
  279. package/dist/overlay/Modal.js.map +1 -0
  280. package/dist/rpc/AcceptPicker.d.ts +52 -0
  281. package/dist/rpc/AcceptPicker.d.ts.map +1 -0
  282. package/dist/rpc/AcceptPicker.js +126 -0
  283. package/dist/rpc/AcceptPicker.js.map +1 -0
  284. package/dist/rpc/ApiExplorer.d.ts +11 -0
  285. package/dist/rpc/ApiExplorer.d.ts.map +1 -0
  286. package/dist/rpc/ApiExplorer.js +37 -0
  287. package/dist/rpc/ApiExplorer.js.map +1 -0
  288. package/dist/rpc/CommandForm.d.ts +15 -0
  289. package/dist/rpc/CommandForm.d.ts.map +1 -0
  290. package/dist/rpc/CommandForm.js +356 -0
  291. package/dist/rpc/CommandForm.js.map +1 -0
  292. package/dist/rpc/CommandOutput.d.ts +11 -0
  293. package/dist/rpc/CommandOutput.d.ts.map +1 -0
  294. package/dist/rpc/CommandOutput.js +195 -0
  295. package/dist/rpc/CommandOutput.js.map +1 -0
  296. package/dist/rpc/EndpointList.d.ts +18 -0
  297. package/dist/rpc/EndpointList.d.ts.map +1 -0
  298. package/dist/rpc/EndpointList.js +56 -0
  299. package/dist/rpc/EndpointList.js.map +1 -0
  300. package/dist/rpc/EntityExplorerApp.d.ts +15 -0
  301. package/dist/rpc/EntityExplorerApp.d.ts.map +1 -0
  302. package/dist/rpc/EntityExplorerApp.js +282 -0
  303. package/dist/rpc/EntityExplorerApp.js.map +1 -0
  304. package/dist/rpc/ExecutionResult.d.ts +14 -0
  305. package/dist/rpc/ExecutionResult.d.ts.map +1 -0
  306. package/dist/rpc/ExecutionResult.js +51 -0
  307. package/dist/rpc/ExecutionResult.js.map +1 -0
  308. package/dist/rpc/FilterForm.d.ts +22 -0
  309. package/dist/rpc/FilterForm.d.ts.map +1 -0
  310. package/dist/rpc/FilterForm.js +392 -0
  311. package/dist/rpc/FilterForm.js.map +1 -0
  312. package/dist/rpc/InlineError.d.ts +7 -0
  313. package/dist/rpc/InlineError.d.ts.map +1 -0
  314. package/dist/rpc/InlineError.js +54 -0
  315. package/dist/rpc/InlineError.js.map +1 -0
  316. package/dist/rpc/OperationActionDialog.d.ts +12 -0
  317. package/dist/rpc/OperationActionDialog.d.ts.map +1 -0
  318. package/dist/rpc/OperationActionDialog.js +105 -0
  319. package/dist/rpc/OperationActionDialog.js.map +1 -0
  320. package/dist/rpc/OperationCatalog.d.ts +21 -0
  321. package/dist/rpc/OperationCatalog.d.ts.map +1 -0
  322. package/dist/rpc/OperationCatalog.js +339 -0
  323. package/dist/rpc/OperationCatalog.js.map +1 -0
  324. package/dist/rpc/OperationCommandPage.d.ts +22 -0
  325. package/dist/rpc/OperationCommandPage.d.ts.map +1 -0
  326. package/dist/rpc/OperationCommandPage.js +484 -0
  327. package/dist/rpc/OperationCommandPage.js.map +1 -0
  328. package/dist/rpc/OperationEntityPage.d.ts +23 -0
  329. package/dist/rpc/OperationEntityPage.d.ts.map +1 -0
  330. package/dist/rpc/OperationEntityPage.js +218 -0
  331. package/dist/rpc/OperationEntityPage.js.map +1 -0
  332. package/dist/rpc/classify.d.ts +8 -0
  333. package/dist/rpc/classify.d.ts.map +1 -0
  334. package/dist/rpc/classify.js +76 -0
  335. package/dist/rpc/classify.js.map +1 -0
  336. package/dist/rpc/clickyMetadata.d.ts +12 -0
  337. package/dist/rpc/clickyMetadata.d.ts.map +1 -0
  338. package/dist/rpc/clickyMetadata.js +71 -0
  339. package/dist/rpc/clickyMetadata.js.map +1 -0
  340. package/dist/rpc/formMetadata.d.ts +27 -0
  341. package/dist/rpc/formMetadata.d.ts.map +1 -0
  342. package/dist/rpc/formMetadata.js +250 -0
  343. package/dist/rpc/formMetadata.js.map +1 -0
  344. package/dist/rpc/types.d.ts +109 -0
  345. package/dist/rpc/types.d.ts.map +1 -0
  346. package/dist/rpc/types.js +8 -0
  347. package/dist/rpc/types.js.map +1 -0
  348. package/dist/rpc/useOperations.d.ts +346 -0
  349. package/dist/rpc/useOperations.d.ts.map +1 -0
  350. package/dist/rpc/useOperations.js +31 -0
  351. package/dist/rpc/useOperations.js.map +1 -0
  352. package/dist/rpc.d.ts +14 -0
  353. package/dist/rpc.d.ts.map +1 -0
  354. package/dist/rpc.js +37 -0
  355. package/dist/rpc.js.map +1 -0
  356. package/dist/styles.css +2 -0
  357. package/dist/styles.d.ts +1 -0
  358. package/dist/styles.d.ts.map +1 -0
  359. package/dist/styles.js +2 -0
  360. package/dist/styles.js.map +1 -0
  361. package/dist/tailwind-preset.d.ts +4 -0
  362. package/dist/tailwind-preset.d.ts.map +1 -0
  363. package/dist/tailwind-preset.js +69 -0
  364. package/dist/tailwind-preset.js.map +1 -0
  365. package/dist/utils.d.ts +4 -0
  366. package/dist/utils.d.ts.map +1 -0
  367. package/dist/utils.js +12 -0
  368. package/dist/utils.js.map +1 -0
  369. package/package.json +83 -40
  370. package/dist/index.d.mts +0 -834
  371. package/dist/index.d.mts.map +0 -1
  372. package/dist/index.mjs +0 -2918
  373. package/dist/index.mjs.map +0 -1
  374. package/dist/tailwind-preset.d.mts +0 -7
  375. package/dist/tailwind-preset.d.mts.map +0 -1
  376. package/dist/tailwind-preset.mjs +0 -64
  377. package/dist/tailwind-preset.mjs.map +0 -1
  378. package/src/styles/tokens.css +0 -78
@@ -0,0 +1,71 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ const ANSI_COLORS = {
3
+ "30": "color:#1e1e1e",
4
+ "31": "color:#cd3131",
5
+ "32": "color:#0dbc79",
6
+ "33": "color:#e5e510",
7
+ "34": "color:#2472c8",
8
+ "35": "color:#bc3fbc",
9
+ "36": "color:#11a8cd",
10
+ "37": "color:#e5e5e5",
11
+ "90": "color:#666",
12
+ "91": "color:#f14c4c",
13
+ "92": "color:#23d18b",
14
+ "93": "color:#f5f543",
15
+ "94": "color:#3b8eea",
16
+ "95": "color:#d670d6",
17
+ "96": "color:#29b8db",
18
+ "97": "color:#fff",
19
+ "1": "font-weight:bold",
20
+ "2": "opacity:0.7",
21
+ "3": "font-style:italic",
22
+ "4": "text-decoration:underline"
23
+ };
24
+ function parseAnsi(raw) {
25
+ const spans = [];
26
+ const re = /\x1b\[([0-9;]*)m/g;
27
+ let last = 0;
28
+ let styles = [];
29
+ let match;
30
+ while ((match = re.exec(raw)) !== null) {
31
+ if (match.index > last) {
32
+ spans.push({ text: raw.slice(last, match.index), style: styles.join(";") });
33
+ }
34
+ const codes = (match[1] ?? "").split(";").filter(Boolean);
35
+ for (const code of codes) {
36
+ if (code === "0" || code === "") {
37
+ styles = [];
38
+ } else {
39
+ const rule = ANSI_COLORS[code];
40
+ if (rule) styles.push(rule);
41
+ }
42
+ }
43
+ last = match.index + match[0].length;
44
+ }
45
+ if (last < raw.length) {
46
+ spans.push({ text: raw.slice(last), style: styles.join(";") });
47
+ }
48
+ return spans;
49
+ }
50
+ function spanToStyle(style) {
51
+ const out = {};
52
+ for (const rule of style.split(";")) {
53
+ const [k, v] = rule.split(":");
54
+ if (!k || !v) continue;
55
+ const key = k.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
56
+ out[key] = v;
57
+ }
58
+ return out;
59
+ }
60
+ function AnsiHtml({ text, className, as = "pre" }) {
61
+ const spans = parseAnsi(text);
62
+ const children = spans.map(
63
+ (s, i) => s.style ? /* @__PURE__ */ jsx("span", { style: spanToStyle(s.style), children: s.text }, i) : /* @__PURE__ */ jsx("span", { children: s.text }, i)
64
+ );
65
+ if (as === "span") return /* @__PURE__ */ jsx("span", { className, children });
66
+ return /* @__PURE__ */ jsx("pre", { className, children });
67
+ }
68
+ export {
69
+ AnsiHtml
70
+ };
71
+ //# sourceMappingURL=AnsiHtml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnsiHtml.js","sources":["../../src/data/AnsiHtml.tsx"],"sourcesContent":["const ANSI_COLORS: Record<string, string> = {\n \"30\": \"color:#1e1e1e\",\n \"31\": \"color:#cd3131\",\n \"32\": \"color:#0dbc79\",\n \"33\": \"color:#e5e510\",\n \"34\": \"color:#2472c8\",\n \"35\": \"color:#bc3fbc\",\n \"36\": \"color:#11a8cd\",\n \"37\": \"color:#e5e5e5\",\n \"90\": \"color:#666\",\n \"91\": \"color:#f14c4c\",\n \"92\": \"color:#23d18b\",\n \"93\": \"color:#f5f543\",\n \"94\": \"color:#3b8eea\",\n \"95\": \"color:#d670d6\",\n \"96\": \"color:#29b8db\",\n \"97\": \"color:#fff\",\n \"1\": \"font-weight:bold\",\n \"2\": \"opacity:0.7\",\n \"3\": \"font-style:italic\",\n \"4\": \"text-decoration:underline\",\n};\n\ntype Span = { text: string; style: string };\n\nfunction parseAnsi(raw: string): Span[] {\n const spans: Span[] = [];\n // eslint-disable-next-line no-control-regex\n const re = /\\x1b\\[([0-9;]*)m/g;\n let last = 0;\n let styles: string[] = [];\n let match: RegExpExecArray | null;\n\n while ((match = re.exec(raw)) !== null) {\n if (match.index > last) {\n spans.push({ text: raw.slice(last, match.index), style: styles.join(\";\") });\n }\n const codes = (match[1] ?? \"\").split(\";\").filter(Boolean);\n for (const code of codes) {\n if (code === \"0\" || code === \"\") {\n styles = [];\n } else {\n const rule = ANSI_COLORS[code];\n if (rule) styles.push(rule);\n }\n }\n last = match.index + match[0].length;\n }\n\n if (last < raw.length) {\n spans.push({ text: raw.slice(last), style: styles.join(\";\") });\n }\n\n return spans;\n}\n\nfunction spanToStyle(style: string): React.CSSProperties {\n const out: Record<string, string> = {};\n for (const rule of style.split(\";\")) {\n const [k, v] = rule.split(\":\");\n if (!k || !v) continue;\n const key = k.replace(/-([a-z])/g, (_, c: string) => c.toUpperCase());\n out[key] = v;\n }\n return out as React.CSSProperties;\n}\n\nexport type AnsiHtmlProps = {\n text: string;\n className?: string;\n as?: \"pre\" | \"span\";\n};\n\nexport function AnsiHtml({ text, className, as = \"pre\" }: AnsiHtmlProps) {\n const spans = parseAnsi(text);\n const children = spans.map((s, i) =>\n s.style ? (\n <span key={i} style={spanToStyle(s.style)}>\n {s.text}\n </span>\n ) : (\n <span key={i}>{s.text}</span>\n ),\n );\n if (as === \"span\") return <span className={className}>{children}</span>;\n return <pre className={className}>{children}</pre>;\n}\n"],"names":[],"mappings":";AAAA,MAAM,cAAsC;AAAA,EAC1C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AAIA,SAAS,UAAU,KAAqB;AACtC,QAAM,QAAgB,CAAA;AAEtB,QAAM,KAAK;AACX,MAAI,OAAO;AACX,MAAI,SAAmB,CAAA;AACvB,MAAI;AAEJ,UAAQ,QAAQ,GAAG,KAAK,GAAG,OAAO,MAAM;AACtC,QAAI,MAAM,QAAQ,MAAM;AACtB,YAAM,KAAK,EAAE,MAAM,IAAI,MAAM,MAAM,MAAM,KAAK,GAAG,OAAO,OAAO,KAAK,GAAG,GAAG;AAAA,IAC5E;AACA,UAAM,SAAS,MAAM,CAAC,KAAK,IAAI,MAAM,GAAG,EAAE,OAAO,OAAO;AACxD,eAAW,QAAQ,OAAO;AACxB,UAAI,SAAS,OAAO,SAAS,IAAI;AAC/B,iBAAS,CAAA;AAAA,MACX,OAAO;AACL,cAAM,OAAO,YAAY,IAAI;AAC7B,YAAI,KAAM,QAAO,KAAK,IAAI;AAAA,MAC5B;AAAA,IACF;AACA,WAAO,MAAM,QAAQ,MAAM,CAAC,EAAE;AAAA,EAChC;AAEA,MAAI,OAAO,IAAI,QAAQ;AACrB,UAAM,KAAK,EAAE,MAAM,IAAI,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,GAAG,EAAA,CAAG;AAAA,EAC/D;AAEA,SAAO;AACT;AAEA,SAAS,YAAY,OAAoC;AACvD,QAAM,MAA8B,CAAA;AACpC,aAAW,QAAQ,MAAM,MAAM,GAAG,GAAG;AACnC,UAAM,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,GAAG;AAC7B,QAAI,CAAC,KAAK,CAAC,EAAG;AACd,UAAM,MAAM,EAAE,QAAQ,aAAa,CAAC,GAAG,MAAc,EAAE,aAAa;AACpE,QAAI,GAAG,IAAI;AAAA,EACb;AACA,SAAO;AACT;AAQO,SAAS,SAAS,EAAE,MAAM,WAAW,KAAK,SAAwB;AACvE,QAAM,QAAQ,UAAU,IAAI;AAC5B,QAAM,WAAW,MAAM;AAAA,IAAI,CAAC,GAAG,MAC7B,EAAE,QACA,oBAAC,QAAA,EAAa,OAAO,YAAY,EAAE,KAAK,GACrC,UAAA,EAAE,QADM,CAEX,wBAEC,QAAA,EAAc,UAAA,EAAE,QAAN,CAAW;AAAA,EAAA;AAG1B,MAAI,OAAO,OAAQ,QAAO,oBAAC,QAAA,EAAK,WAAuB,UAAS;AAChE,SAAO,oBAAC,OAAA,EAAI,WAAuB,SAAA,CAAS;AAC9C;"}
@@ -0,0 +1,32 @@
1
+ import { SyntheticEvent } from 'react';
2
+ import { SizeToken } from '../lib/size';
3
+ export type AvatarVariant = "duotone" | "solid" | "stamp" | "mono";
4
+ export type AvatarKind = "user" | "group";
5
+ export type AvatarProps = {
6
+ src?: string;
7
+ alt: string;
8
+ initials?: string;
9
+ /**
10
+ * Named size token (xs..xl). The rendered px is resolved through the active
11
+ * density (`compact` shrinks, `spacious` grows). Size also drives typographic
12
+ * adjustments: `xs` shows a single initial; `sm` uses a lighter weight so the
13
+ * monogram stays quiet in dense list rows.
14
+ */
15
+ size?: SizeToken;
16
+ rounded?: "full" | "md";
17
+ kind?: AvatarKind;
18
+ variant?: AvatarVariant;
19
+ title?: string;
20
+ href?: string;
21
+ /**
22
+ * Selects the palette color for the initial-fallback. Defaults to `alt` so
23
+ * repeated rendering of the same identity stays consistent. Pass the full
24
+ * "owner/name" for repo avatars so two repos named "cli" under different
25
+ * orgs render with different colors.
26
+ */
27
+ colorKey?: string;
28
+ onError?: (e: SyntheticEvent<HTMLImageElement>) => void;
29
+ className?: string;
30
+ };
31
+ export declare function Avatar({ src, alt, initials, size, rounded, kind, variant, title, href, colorKey, onError, className, }: AvatarProps): import("react/jsx-runtime").JSX.Element;
32
+ //# sourceMappingURL=Avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../src/data/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,OAAO,CAAC;AAG3D,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAG1D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AACnE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAE1C,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAsHF,wBAAgB,MAAM,CAAC,EACrB,GAAG,EACH,GAAG,EACH,QAAQ,EACR,IAAW,EACX,OAAO,EACP,IAAa,EACb,OAAmB,EACnB,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,SAAS,GACV,EAAE,WAAW,2CAuFb"}
@@ -0,0 +1,201 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { cn } from "../lib/utils.js";
3
+ import { fnv1a32 } from "../lib/palette.js";
4
+ import { resolveSize } from "../lib/size.js";
5
+ import { useDensityValue } from "../hooks/use-density.js";
6
+ function hueForKey(key) {
7
+ return fnv1a32(key) % 360;
8
+ }
9
+ function resolveInitials(alt, initials, maxLetters) {
10
+ if (initials == null ? void 0 : initials.trim()) {
11
+ return initials.trim().slice(0, maxLetters).toUpperCase();
12
+ }
13
+ const cleaned = alt.replace(/^@/, "").trim();
14
+ const lastSegment = cleaned.split(/[\\/]/).filter(Boolean).at(-1) ?? cleaned;
15
+ const parts = lastSegment.replace(/[^a-zA-Z0-9]+/g, " ").trim().split(/\s+/).filter(Boolean);
16
+ const letters = parts.map((part) => {
17
+ var _a;
18
+ return ((_a = part.match(/[a-zA-Z0-9]/)) == null ? void 0 : _a[0]) ?? "";
19
+ }).filter(Boolean).slice(0, maxLetters).join("");
20
+ if (letters) {
21
+ return letters.toUpperCase();
22
+ }
23
+ const compact = cleaned.replace(/[^a-zA-Z0-9]+/g, "");
24
+ return (compact.slice(0, maxLetters) || "?").toUpperCase();
25
+ }
26
+ function fallbackTone(variant, kind, hue) {
27
+ if (kind === "group") {
28
+ switch (variant) {
29
+ case "solid":
30
+ return {
31
+ background: "#d8d4cc",
32
+ borderColor: "#d8d4cc",
33
+ color: "#5a574e"
34
+ };
35
+ case "stamp":
36
+ return {
37
+ background: "#fafaf7",
38
+ borderColor: "#8d8778",
39
+ color: "#5a574e",
40
+ shadow: "2px 2px 0 rgba(90, 87, 78, 0.08)"
41
+ };
42
+ case "mono":
43
+ return {
44
+ background: "#f5f2eb",
45
+ borderColor: "#8d8778",
46
+ color: "#5a574e"
47
+ };
48
+ case "duotone":
49
+ default:
50
+ return {
51
+ background: "#f0ede6",
52
+ borderColor: "#b8b3a7",
53
+ borderStyle: "dashed",
54
+ color: "#5a574e"
55
+ };
56
+ }
57
+ }
58
+ switch (variant) {
59
+ case "solid":
60
+ return {
61
+ background: `oklch(0.55 0.12 ${hue})`,
62
+ borderColor: `oklch(0.55 0.12 ${hue})`,
63
+ color: "#fff"
64
+ };
65
+ case "stamp":
66
+ return {
67
+ background: "#fafaf7",
68
+ borderColor: `oklch(0.42 0.15 ${hue})`,
69
+ color: `oklch(0.42 0.15 ${hue})`,
70
+ shadow: "2px 2px 0 rgba(26, 26, 26, 0.08)"
71
+ };
72
+ case "mono":
73
+ return {
74
+ background: "#fff",
75
+ borderColor: "#1a1a1a",
76
+ color: "#1a1a1a"
77
+ };
78
+ case "duotone":
79
+ default:
80
+ return {
81
+ background: `oklch(0.93 0.04 ${hue})`,
82
+ borderColor: `oklch(0.55 0.14 ${hue} / 0.25)`,
83
+ color: `oklch(0.35 0.14 ${hue})`
84
+ };
85
+ }
86
+ }
87
+ function fontSizeFor(variant, size) {
88
+ const minimum = size <= 16 ? 7 : size <= 20 ? 8 : 9;
89
+ switch (variant) {
90
+ case "stamp":
91
+ return Math.max(minimum, Math.round(size * 0.34));
92
+ case "mono":
93
+ return Math.max(minimum, Math.round(size * 0.36));
94
+ case "solid":
95
+ case "duotone":
96
+ default:
97
+ return Math.max(minimum, Math.round(size * 0.38));
98
+ }
99
+ }
100
+ function Avatar({
101
+ src,
102
+ alt,
103
+ initials,
104
+ size = "sm",
105
+ rounded,
106
+ kind = "user",
107
+ variant = "duotone",
108
+ title,
109
+ href,
110
+ colorKey,
111
+ onError,
112
+ className
113
+ }) {
114
+ const density = useDensityValue();
115
+ const px = resolveSize(size, density);
116
+ const effectiveRounded = rounded ?? (kind === "group" ? "md" : "full");
117
+ const shape = effectiveRounded === "full" ? "rounded-full" : "rounded-md";
118
+ const key = colorKey ?? alt;
119
+ const hue = hueForKey(key);
120
+ const tone = fallbackTone(variant, kind, hue);
121
+ const maxLetters = size === "xs" || size === "sm" ? 1 : 2;
122
+ const text = resolveInitials(alt, initials, maxLetters);
123
+ const base = cn(
124
+ "inline-flex shrink-0 select-none items-center justify-center overflow-hidden border",
125
+ shape
126
+ );
127
+ const frameStyle = {
128
+ width: px,
129
+ height: px,
130
+ borderColor: tone.borderColor,
131
+ borderStyle: tone.borderStyle ?? "solid"
132
+ };
133
+ if (variant === "stamp") {
134
+ frameStyle.transform = "rotate(-4deg)";
135
+ frameStyle.boxShadow = tone.shadow;
136
+ }
137
+ const weightFor = (v) => {
138
+ if (v === "stamp") return 700;
139
+ if (size === "sm") return 500;
140
+ return 600;
141
+ };
142
+ const content = src ? /* @__PURE__ */ jsx(
143
+ "img",
144
+ {
145
+ src,
146
+ alt,
147
+ title: title ?? alt,
148
+ width: px,
149
+ height: px,
150
+ "data-avatar-kind": kind,
151
+ "data-avatar-variant": variant,
152
+ "data-avatar-size": size,
153
+ className: cn(base, "bg-muted object-cover", className),
154
+ style: frameStyle,
155
+ loading: "lazy",
156
+ onError
157
+ }
158
+ ) : /* @__PURE__ */ jsx(
159
+ "span",
160
+ {
161
+ role: "img",
162
+ "aria-label": alt,
163
+ "data-avatar-kind": kind,
164
+ "data-avatar-variant": variant,
165
+ "data-avatar-size": size,
166
+ className: cn(
167
+ base,
168
+ variant === "mono" || variant === "stamp" ? "font-mono" : void 0,
169
+ variant === "mono" ? "tracking-[-0.05em]" : "tracking-[-0.02em]",
170
+ className
171
+ ),
172
+ style: {
173
+ ...frameStyle,
174
+ background: tone.background,
175
+ color: tone.color,
176
+ fontSize: fontSizeFor(variant, px),
177
+ fontWeight: weightFor(variant)
178
+ },
179
+ title: title ?? alt,
180
+ children: text
181
+ }
182
+ );
183
+ if (href) {
184
+ return /* @__PURE__ */ jsx(
185
+ "a",
186
+ {
187
+ href,
188
+ target: "_blank",
189
+ rel: "noopener noreferrer",
190
+ className: "inline-flex shrink-0",
191
+ onClick: (e) => e.stopPropagation(),
192
+ children: content
193
+ }
194
+ );
195
+ }
196
+ return content;
197
+ }
198
+ export {
199
+ Avatar
200
+ };
201
+ //# sourceMappingURL=Avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.js","sources":["../../src/data/Avatar.tsx"],"sourcesContent":["import type { CSSProperties, SyntheticEvent } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { fnv1a32 } from \"../lib/palette\";\nimport { resolveSize, type SizeToken } from \"../lib/size\";\nimport { useDensityValue } from \"../hooks/use-density\";\n\nexport type AvatarVariant = \"duotone\" | \"solid\" | \"stamp\" | \"mono\";\nexport type AvatarKind = \"user\" | \"group\";\n\nexport type AvatarProps = {\n src?: string;\n alt: string;\n initials?: string;\n /**\n * Named size token (xs..xl). The rendered px is resolved through the active\n * density (`compact` shrinks, `spacious` grows). Size also drives typographic\n * adjustments: `xs` shows a single initial; `sm` uses a lighter weight so the\n * monogram stays quiet in dense list rows.\n */\n size?: SizeToken;\n rounded?: \"full\" | \"md\";\n kind?: AvatarKind;\n variant?: AvatarVariant;\n title?: string;\n href?: string;\n /**\n * Selects the palette color for the initial-fallback. Defaults to `alt` so\n * repeated rendering of the same identity stays consistent. Pass the full\n * \"owner/name\" for repo avatars so two repos named \"cli\" under different\n * orgs render with different colors.\n */\n colorKey?: string;\n onError?: (e: SyntheticEvent<HTMLImageElement>) => void;\n className?: string;\n};\n\ntype AvatarTone = {\n background: string;\n borderColor: string;\n borderStyle?: CSSProperties[\"borderStyle\"];\n color: string;\n shadow?: string;\n};\n\nfunction hueForKey(key: string): number {\n return fnv1a32(key) % 360;\n}\n\nfunction resolveInitials(alt: string, initials: string | undefined, maxLetters: number): string {\n if (initials?.trim()) {\n return initials.trim().slice(0, maxLetters).toUpperCase();\n }\n\n const cleaned = alt.replace(/^@/, \"\").trim();\n const lastSegment = cleaned.split(/[\\\\/]/).filter(Boolean).at(-1) ?? cleaned;\n const parts = lastSegment\n .replace(/[^a-zA-Z0-9]+/g, \" \")\n .trim()\n .split(/\\s+/)\n .filter(Boolean);\n const letters = parts\n .map((part) => part.match(/[a-zA-Z0-9]/)?.[0] ?? \"\")\n .filter(Boolean)\n .slice(0, maxLetters)\n .join(\"\");\n\n if (letters) {\n return letters.toUpperCase();\n }\n\n const compact = cleaned.replace(/[^a-zA-Z0-9]+/g, \"\");\n return (compact.slice(0, maxLetters) || \"?\").toUpperCase();\n}\n\nfunction fallbackTone(variant: AvatarVariant, kind: AvatarKind, hue: number): AvatarTone {\n if (kind === \"group\") {\n switch (variant) {\n case \"solid\":\n return {\n background: \"#d8d4cc\",\n borderColor: \"#d8d4cc\",\n color: \"#5a574e\",\n };\n case \"stamp\":\n return {\n background: \"#fafaf7\",\n borderColor: \"#8d8778\",\n color: \"#5a574e\",\n shadow: \"2px 2px 0 rgba(90, 87, 78, 0.08)\",\n };\n case \"mono\":\n return {\n background: \"#f5f2eb\",\n borderColor: \"#8d8778\",\n color: \"#5a574e\",\n };\n case \"duotone\":\n default:\n return {\n background: \"#f0ede6\",\n borderColor: \"#b8b3a7\",\n borderStyle: \"dashed\",\n color: \"#5a574e\",\n };\n }\n }\n\n switch (variant) {\n case \"solid\":\n return {\n background: `oklch(0.55 0.12 ${hue})`,\n borderColor: `oklch(0.55 0.12 ${hue})`,\n color: \"#fff\",\n };\n case \"stamp\":\n return {\n background: \"#fafaf7\",\n borderColor: `oklch(0.42 0.15 ${hue})`,\n color: `oklch(0.42 0.15 ${hue})`,\n shadow: \"2px 2px 0 rgba(26, 26, 26, 0.08)\",\n };\n case \"mono\":\n return {\n background: \"#fff\",\n borderColor: \"#1a1a1a\",\n color: \"#1a1a1a\",\n };\n case \"duotone\":\n default:\n return {\n background: `oklch(0.93 0.04 ${hue})`,\n borderColor: `oklch(0.55 0.14 ${hue} / 0.25)`,\n color: `oklch(0.35 0.14 ${hue})`,\n };\n }\n}\n\nfunction fontSizeFor(variant: AvatarVariant, size: number): number {\n const minimum = size <= 16 ? 7 : size <= 20 ? 8 : 9;\n\n switch (variant) {\n case \"stamp\":\n return Math.max(minimum, Math.round(size * 0.34));\n case \"mono\":\n return Math.max(minimum, Math.round(size * 0.36));\n case \"solid\":\n case \"duotone\":\n default:\n return Math.max(minimum, Math.round(size * 0.38));\n }\n}\n\nexport function Avatar({\n src,\n alt,\n initials,\n size = \"sm\",\n rounded,\n kind = \"user\",\n variant = \"duotone\",\n title,\n href,\n colorKey,\n onError,\n className,\n}: AvatarProps) {\n const density = useDensityValue();\n const px = resolveSize(size, density);\n const effectiveRounded = rounded ?? (kind === \"group\" ? \"md\" : \"full\");\n const shape = effectiveRounded === \"full\" ? \"rounded-full\" : \"rounded-md\";\n const key = colorKey ?? alt;\n const hue = hueForKey(key);\n const tone = fallbackTone(variant, kind, hue);\n const maxLetters = size === \"xs\" || size === \"sm\" ? 1 : 2;\n const text = resolveInitials(alt, initials, maxLetters);\n const base = cn(\n \"inline-flex shrink-0 select-none items-center justify-center overflow-hidden border\",\n shape,\n );\n const frameStyle: CSSProperties = {\n width: px,\n height: px,\n borderColor: tone.borderColor,\n borderStyle: tone.borderStyle ?? \"solid\",\n };\n\n if (variant === \"stamp\") {\n frameStyle.transform = \"rotate(-4deg)\";\n frameStyle.boxShadow = tone.shadow;\n }\n\n const weightFor = (v: AvatarVariant): number => {\n if (v === \"stamp\") return 700;\n if (size === \"sm\") return 500;\n return 600;\n };\n\n const content = src ? (\n <img\n src={src}\n alt={alt}\n title={title ?? alt}\n width={px}\n height={px}\n data-avatar-kind={kind}\n data-avatar-variant={variant}\n data-avatar-size={size}\n className={cn(base, \"bg-muted object-cover\", className)}\n style={frameStyle}\n loading=\"lazy\"\n onError={onError}\n />\n ) : (\n <span\n role=\"img\"\n aria-label={alt}\n data-avatar-kind={kind}\n data-avatar-variant={variant}\n data-avatar-size={size}\n className={cn(\n base,\n variant === \"mono\" || variant === \"stamp\" ? \"font-mono\" : undefined,\n variant === \"mono\" ? \"tracking-[-0.05em]\" : \"tracking-[-0.02em]\",\n className,\n )}\n style={{\n ...frameStyle,\n background: tone.background,\n color: tone.color,\n fontSize: fontSizeFor(variant, px),\n fontWeight: weightFor(variant),\n }}\n title={title ?? alt}\n >\n {text}\n </span>\n );\n\n if (href) {\n return (\n <a\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex shrink-0\"\n onClick={(e) => e.stopPropagation()}\n >\n {content}\n </a>\n );\n }\n return content;\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { CSSProperties, ReactNode } from 'react';
2
+ import { AvatarKind, AvatarVariant } from './Avatar';
3
+ import { IconTone } from './Icon';
4
+ import { SizeToken } from '../lib/size';
5
+ export type AvatarBadgeProps = {
6
+ alt: string;
7
+ label?: ReactNode;
8
+ initials?: string;
9
+ avatarKind?: AvatarKind;
10
+ avatarVariant?: AvatarVariant;
11
+ size?: SizeToken;
12
+ title?: string;
13
+ statusIcon?: string;
14
+ statusTone?: IconTone;
15
+ statusTitle?: string;
16
+ comment?: ReactNode;
17
+ borderColor?: string;
18
+ className?: string;
19
+ badgeClassName?: string;
20
+ labelClassName?: string;
21
+ commentClassName?: string;
22
+ style?: CSSProperties;
23
+ badgeStyle?: CSSProperties;
24
+ };
25
+ export declare function AvatarBadge({ alt, label, initials, avatarKind, avatarVariant, size, title, statusIcon, statusTone, statusTitle, comment, borderColor, className, badgeClassName, labelClassName, commentClassName, style, badgeStyle, }: AvatarBadgeProps): import("react/jsx-runtime").JSX.Element;
26
+ //# sourceMappingURL=AvatarBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AvatarBadge.d.ts","sourceRoot":"","sources":["../../src/data/AvatarBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAU,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAE7C,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAG1D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAC1B,GAAG,EACH,KAAW,EACX,QAAQ,EACR,UAAmB,EACnB,aAAyB,EACzB,IAAW,EACX,KAAK,EACL,UAAU,EACV,UAAsB,EACtB,WAAW,EACX,OAAO,EACP,WAAW,EACX,SAAS,EACT,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,KAAK,EACL,UAAU,GACX,EAAE,gBAAgB,2CA+DlB"}
@@ -0,0 +1,104 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { Avatar } from "./Avatar.js";
3
+ import { Icon } from "./Icon.js";
4
+ import { cn } from "../lib/utils.js";
5
+ import { resolveSize } from "../lib/size.js";
6
+ import { useDensityValue } from "../hooks/use-density.js";
7
+ function AvatarBadge({
8
+ alt,
9
+ label = alt,
10
+ initials,
11
+ avatarKind = "user",
12
+ avatarVariant = "duotone",
13
+ size = "lg",
14
+ title,
15
+ statusIcon,
16
+ statusTone = "neutral",
17
+ statusTitle,
18
+ comment,
19
+ borderColor,
20
+ className,
21
+ badgeClassName,
22
+ labelClassName,
23
+ commentClassName,
24
+ style,
25
+ badgeStyle
26
+ }) {
27
+ const density = useDensityValue();
28
+ const px = resolveSize(size, density);
29
+ return /* @__PURE__ */ jsxs(
30
+ "span",
31
+ {
32
+ className: cn("inline-flex max-w-[50ch] min-w-0 flex-col items-start", className),
33
+ style,
34
+ children: [
35
+ /* @__PURE__ */ jsxs(
36
+ "span",
37
+ {
38
+ className: cn(
39
+ "inline-flex max-w-[40ch] min-w-0 items-center gap-2 overflow-visible rounded-full border bg-background shadow-sm",
40
+ badgeClassName
41
+ ),
42
+ style: {
43
+ height: px,
44
+ borderColor,
45
+ ...badgeStyle
46
+ },
47
+ children: [
48
+ /* @__PURE__ */ jsx(
49
+ Avatar,
50
+ {
51
+ alt,
52
+ kind: avatarKind,
53
+ size,
54
+ title: title ?? alt,
55
+ variant: avatarVariant,
56
+ className: "relative z-10 -ml-px shrink-0",
57
+ ...initials !== void 0 ? { initials } : {}
58
+ }
59
+ ),
60
+ /* @__PURE__ */ jsx(
61
+ "span",
62
+ {
63
+ className: cn(
64
+ "min-w-0 flex-1 truncate font-medium leading-none text-foreground",
65
+ labelClassName
66
+ ),
67
+ style: { fontSize: Math.max(11, Math.round(px * 0.32)) },
68
+ title: typeof label === "string" ? label : title ?? alt,
69
+ children: label
70
+ }
71
+ ),
72
+ statusIcon && /* @__PURE__ */ jsx(
73
+ Icon,
74
+ {
75
+ name: statusIcon,
76
+ style: "badge",
77
+ size,
78
+ tone: statusTone,
79
+ className: "relative z-10 -mr-px shrink-0",
80
+ ...statusTitle !== void 0 ? { title: statusTitle } : {}
81
+ }
82
+ )
83
+ ]
84
+ }
85
+ ),
86
+ comment && /* @__PURE__ */ jsx(
87
+ "span",
88
+ {
89
+ className: cn(
90
+ "mt-1 max-w-[50ch] overflow-hidden text-xs leading-snug text-muted-foreground [display:-webkit-box] [-webkit-box-orient:vertical] [-webkit-line-clamp:3]",
91
+ commentClassName
92
+ ),
93
+ title: typeof comment === "string" ? comment : void 0,
94
+ children: comment
95
+ }
96
+ )
97
+ ]
98
+ }
99
+ );
100
+ }
101
+ export {
102
+ AvatarBadge
103
+ };
104
+ //# sourceMappingURL=AvatarBadge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AvatarBadge.js","sources":["../../src/data/AvatarBadge.tsx"],"sourcesContent":["import type { CSSProperties, ReactNode } from \"react\";\nimport { Avatar, type AvatarKind, type AvatarVariant } from \"./Avatar\";\nimport { Icon, type IconTone } from \"./Icon\";\nimport { cn } from \"../lib/utils\";\nimport { resolveSize, type SizeToken } from \"../lib/size\";\nimport { useDensityValue } from \"../hooks/use-density\";\n\nexport type AvatarBadgeProps = {\n alt: string;\n label?: ReactNode;\n initials?: string;\n avatarKind?: AvatarKind;\n avatarVariant?: AvatarVariant;\n size?: SizeToken;\n title?: string;\n statusIcon?: string;\n statusTone?: IconTone;\n statusTitle?: string;\n comment?: ReactNode;\n borderColor?: string;\n className?: string;\n badgeClassName?: string;\n labelClassName?: string;\n commentClassName?: string;\n style?: CSSProperties;\n badgeStyle?: CSSProperties;\n};\n\nexport function AvatarBadge({\n alt,\n label = alt,\n initials,\n avatarKind = \"user\",\n avatarVariant = \"duotone\",\n size = \"lg\",\n title,\n statusIcon,\n statusTone = \"neutral\",\n statusTitle,\n comment,\n borderColor,\n className,\n badgeClassName,\n labelClassName,\n commentClassName,\n style,\n badgeStyle,\n}: AvatarBadgeProps) {\n const density = useDensityValue();\n const px = resolveSize(size, density);\n\n return (\n <span\n className={cn(\"inline-flex max-w-[50ch] min-w-0 flex-col items-start\", className)}\n style={style}\n >\n <span\n className={cn(\n \"inline-flex max-w-[40ch] min-w-0 items-center gap-2 overflow-visible rounded-full border bg-background shadow-sm\",\n badgeClassName,\n )}\n style={{\n height: px,\n borderColor,\n ...badgeStyle,\n }}\n >\n <Avatar\n alt={alt}\n kind={avatarKind}\n size={size}\n title={title ?? alt}\n variant={avatarVariant}\n className=\"relative z-10 -ml-px shrink-0\"\n {...(initials !== undefined ? { initials } : {})}\n />\n <span\n className={cn(\n \"min-w-0 flex-1 truncate font-medium leading-none text-foreground\",\n labelClassName,\n )}\n style={{ fontSize: Math.max(11, Math.round(px * 0.32)) }}\n title={typeof label === \"string\" ? label : (title ?? alt)}\n >\n {label}\n </span>\n {statusIcon && (\n <Icon\n name={statusIcon}\n style=\"badge\"\n size={size}\n tone={statusTone}\n className=\"relative z-10 -mr-px shrink-0\"\n {...(statusTitle !== undefined ? { title: statusTitle } : {})}\n />\n )}\n </span>\n {comment && (\n <span\n className={cn(\n \"mt-1 max-w-[50ch] overflow-hidden text-xs leading-snug text-muted-foreground [display:-webkit-box] [-webkit-box-orient:vertical] [-webkit-line-clamp:3]\",\n commentClassName,\n )}\n title={typeof comment === \"string\" ? comment : undefined}\n >\n {comment}\n </span>\n )}\n </span>\n );\n}\n"],"names":[],"mappings":";;;;;;AA4BO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAqB;AACnB,QAAM,UAAU,gBAAA;AAChB,QAAM,KAAK,YAAY,MAAM,OAAO;AAEpC,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAG,yDAAyD,SAAS;AAAA,MAChF;AAAA,MAEA,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA;AAAA,YAAA;AAAA,YAEF,OAAO;AAAA,cACL,QAAQ;AAAA,cACR;AAAA,cACA,GAAG;AAAA,YAAA;AAAA,YAGL,UAAA;AAAA,cAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC;AAAA,kBACA,MAAM;AAAA,kBACN;AAAA,kBACA,OAAO,SAAS;AAAA,kBAChB,SAAS;AAAA,kBACT,WAAU;AAAA,kBACT,GAAI,aAAa,SAAY,EAAE,aAAa,CAAA;AAAA,gBAAC;AAAA,cAAA;AAAA,cAEhD;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAW;AAAA,oBACT;AAAA,oBACA;AAAA,kBAAA;AAAA,kBAEF,OAAO,EAAE,UAAU,KAAK,IAAI,IAAI,KAAK,MAAM,KAAK,IAAI,CAAC,EAAA;AAAA,kBACrD,OAAO,OAAO,UAAU,WAAW,QAAS,SAAS;AAAA,kBAEpD,UAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEF,cACC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,MAAM;AAAA,kBACN,OAAM;AAAA,kBACN;AAAA,kBACA,MAAM;AAAA,kBACN,WAAU;AAAA,kBACT,GAAI,gBAAgB,SAAY,EAAE,OAAO,YAAA,IAAgB,CAAA;AAAA,gBAAC;AAAA,cAAA;AAAA,YAC7D;AAAA,UAAA;AAAA,QAAA;AAAA,QAGH,WACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA;AAAA,YAAA;AAAA,YAEF,OAAO,OAAO,YAAY,WAAW,UAAU;AAAA,YAE9C,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -0,0 +1,44 @@
1
+ import { AnchorHTMLAttributes, ReactNode } from 'react';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ export declare const badgeVariants: (props?: ({
4
+ tone?: "neutral" | "danger" | "warning" | "success" | "info" | null | undefined;
5
+ variant?: "outline" | "solid" | "soft" | null | undefined;
6
+ size?: "xs" | "sm" | "md" | "lg" | "xxs" | null | undefined;
7
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
8
+ type LegacyBadgeVariantProps = VariantProps<typeof badgeVariants>;
9
+ export type BadgeTone = NonNullable<LegacyBadgeVariantProps["tone"]>;
10
+ export type LegacyBadgeVariant = NonNullable<LegacyBadgeVariantProps["variant"]>;
11
+ export type BadgeSize = NonNullable<LegacyBadgeVariantProps["size"]>;
12
+ export type BadgeStatus = "success" | "error" | "warning" | "info";
13
+ export type BadgeShape = "pill" | "rounded" | "square";
14
+ export type BadgeTruncate = "prefix" | "suffix" | "arn" | "image" | "path" | "url" | "auto";
15
+ export type RichBadgeVariant = "status" | "metric" | "custom" | "outlined" | "label";
16
+ export type BadgeVariant = LegacyBadgeVariant | RichBadgeVariant;
17
+ export type BadgeProps = {
18
+ tone?: BadgeTone;
19
+ variant?: BadgeVariant;
20
+ size?: BadgeSize;
21
+ icon?: string;
22
+ count?: number;
23
+ children?: ReactNode;
24
+ className?: string;
25
+ status?: BadgeStatus;
26
+ label?: ReactNode;
27
+ value?: ReactNode;
28
+ color?: string;
29
+ textColor?: string;
30
+ borderColor?: string;
31
+ shape?: BadgeShape;
32
+ href?: string;
33
+ target?: AnchorHTMLAttributes<HTMLAnchorElement>["target"];
34
+ rel?: string;
35
+ wrap?: boolean;
36
+ maxWidth?: string | number;
37
+ truncate?: BadgeTruncate;
38
+ clickToCopy?: boolean;
39
+ labelClassName?: string;
40
+ valueClassName?: string;
41
+ };
42
+ export declare function Badge({ tone, variant, size, icon, count, children, className, status, label, value, color, textColor, borderColor, shape, href, target, rel, wrap, maxWidth, truncate, clickToCopy, labelClassName, valueClassName, }: BadgeProps): import("react/jsx-runtime").JSX.Element | null;
43
+ export {};
44
+ //# sourceMappingURL=Badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../src/data/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EAEzB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,eAAO,MAAM,aAAa;;;;8EAmFzB,CAAC;AAEF,KAAK,uBAAuB,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAElE,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;AACrE,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC;AACjF,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;AACrE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AACnE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AACvD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAC5F,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AACrF,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AAiFjE,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC3D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAgbF,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,OAAO,EACP,IAAW,EACX,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,SAAS,EACT,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,SAAS,EACT,WAAW,EACX,KAAK,EACL,IAAI,EACJ,MAAgB,EAChB,GAAG,EACH,IAAY,EACZ,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,cAAc,EACd,cAAc,GACf,EAAE,UAAU,kDAqPZ"}