@aceshooting/lyra-ui 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/README.md +8 -1
  2. package/custom-elements.json +18702 -12825
  3. package/dist/components/app-rail/app-rail-item.class.d.ts +16 -1
  4. package/dist/components/app-rail/app-rail-item.class.d.ts.map +1 -1
  5. package/dist/components/app-rail/app-rail-item.class.js +52 -1
  6. package/dist/components/app-rail/app-rail-item.class.js.map +1 -1
  7. package/dist/components/app-rail/app-rail-item.styles.d.ts.map +1 -1
  8. package/dist/components/app-rail/app-rail-item.styles.js +11 -0
  9. package/dist/components/app-rail/app-rail-item.styles.js.map +1 -1
  10. package/dist/components/app-rail/app-rail.class.d.ts +13 -1
  11. package/dist/components/app-rail/app-rail.class.d.ts.map +1 -1
  12. package/dist/components/app-rail/app-rail.class.js +23 -1
  13. package/dist/components/app-rail/app-rail.class.js.map +1 -1
  14. package/dist/components/app-rail/app-rail.styles.d.ts.map +1 -1
  15. package/dist/components/app-rail/app-rail.styles.js +6 -0
  16. package/dist/components/app-rail/app-rail.styles.js.map +1 -1
  17. package/dist/components/attachment-chip/attachment-chip.class.d.ts +6 -0
  18. package/dist/components/attachment-chip/attachment-chip.class.d.ts.map +1 -1
  19. package/dist/components/attachment-chip/attachment-chip.class.js +9 -0
  20. package/dist/components/attachment-chip/attachment-chip.class.js.map +1 -1
  21. package/dist/components/attachment-chip/attachment-chip.styles.d.ts.map +1 -1
  22. package/dist/components/attachment-chip/attachment-chip.styles.js +7 -0
  23. package/dist/components/attachment-chip/attachment-chip.styles.js.map +1 -1
  24. package/dist/components/attachment-trigger/attachment-trigger.class.d.ts +6 -3
  25. package/dist/components/attachment-trigger/attachment-trigger.class.d.ts.map +1 -1
  26. package/dist/components/attachment-trigger/attachment-trigger.class.js +51 -0
  27. package/dist/components/attachment-trigger/attachment-trigger.class.js.map +1 -1
  28. package/dist/components/attachment-trigger/attachment-trigger.styles.d.ts.map +1 -1
  29. package/dist/components/attachment-trigger/attachment-trigger.styles.js +10 -0
  30. package/dist/components/attachment-trigger/attachment-trigger.styles.js.map +1 -1
  31. package/dist/components/avatar/avatar.class.d.ts +43 -0
  32. package/dist/components/avatar/avatar.class.d.ts.map +1 -0
  33. package/dist/components/avatar/avatar.class.js +75 -0
  34. package/dist/components/avatar/avatar.class.js.map +1 -0
  35. package/dist/components/avatar/avatar.d.ts +2 -0
  36. package/dist/components/avatar/avatar.d.ts.map +1 -0
  37. package/dist/components/avatar/avatar.js +5 -0
  38. package/dist/components/avatar/avatar.js.map +1 -0
  39. package/dist/components/avatar/avatar.styles.d.ts +2 -0
  40. package/dist/components/avatar/avatar.styles.d.ts.map +1 -0
  41. package/dist/components/avatar/avatar.styles.js +55 -0
  42. package/dist/components/avatar/avatar.styles.js.map +1 -0
  43. package/dist/components/card/card.class.d.ts +52 -0
  44. package/dist/components/card/card.class.d.ts.map +1 -0
  45. package/dist/components/card/card.class.js +111 -0
  46. package/dist/components/card/card.class.js.map +1 -0
  47. package/dist/components/card/card.d.ts +2 -0
  48. package/dist/components/card/card.d.ts.map +1 -0
  49. package/dist/components/card/card.js +5 -0
  50. package/dist/components/card/card.js.map +1 -0
  51. package/dist/components/card/card.styles.d.ts +2 -0
  52. package/dist/components/card/card.styles.d.ts.map +1 -0
  53. package/dist/components/card/card.styles.js +77 -0
  54. package/dist/components/card/card.styles.js.map +1 -0
  55. package/dist/components/chart/chart.class.d.ts +11 -11
  56. package/dist/components/chart/chart.class.d.ts.map +1 -1
  57. package/dist/components/chart/chart.class.js +41 -0
  58. package/dist/components/chart/chart.class.js.map +1 -1
  59. package/dist/components/chart/lite-chart.class.d.ts +16 -9
  60. package/dist/components/chart/lite-chart.class.d.ts.map +1 -1
  61. package/dist/components/chart/lite-chart.class.js +99 -11
  62. package/dist/components/chart/lite-chart.class.js.map +1 -1
  63. package/dist/components/chart/lite-chart.styles.d.ts.map +1 -1
  64. package/dist/components/chart/lite-chart.styles.js +4 -0
  65. package/dist/components/chart/lite-chart.styles.js.map +1 -1
  66. package/dist/components/chat-composer/chat-composer.class.d.ts +12 -12
  67. package/dist/components/chat-composer/chat-composer.class.d.ts.map +1 -1
  68. package/dist/components/chat-composer/chat-composer.class.js +53 -0
  69. package/dist/components/chat-composer/chat-composer.class.js.map +1 -1
  70. package/dist/components/chat-message/chat-message.class.d.ts +3 -3
  71. package/dist/components/chat-message/chat-message.class.d.ts.map +1 -1
  72. package/dist/components/chat-message/chat-message.class.js +60 -0
  73. package/dist/components/chat-message/chat-message.class.js.map +1 -1
  74. package/dist/components/checkbox/checkbox.class.d.ts +5 -5
  75. package/dist/components/checkbox/checkbox.class.d.ts.map +1 -1
  76. package/dist/components/checkbox/checkbox.class.js +24 -0
  77. package/dist/components/checkbox/checkbox.class.js.map +1 -1
  78. package/dist/components/chip/chip-group.class.js +2 -2
  79. package/dist/components/chip/chip-group.class.js.map +1 -1
  80. package/dist/components/chip/chip.class.d.ts +18 -0
  81. package/dist/components/chip/chip.class.d.ts.map +1 -1
  82. package/dist/components/chip/chip.class.js +38 -1
  83. package/dist/components/chip/chip.class.js.map +1 -1
  84. package/dist/components/chip/chip.styles.d.ts.map +1 -1
  85. package/dist/components/chip/chip.styles.js +19 -1
  86. package/dist/components/chip/chip.styles.js.map +1 -1
  87. package/dist/components/code-block/code-block-core.class.d.ts +111 -0
  88. package/dist/components/code-block/code-block-core.class.d.ts.map +1 -0
  89. package/dist/components/code-block/code-block-core.class.js +363 -0
  90. package/dist/components/code-block/code-block-core.class.js.map +1 -0
  91. package/dist/components/code-block/code-block-core.d.ts +3 -0
  92. package/dist/components/code-block/code-block-core.d.ts.map +1 -0
  93. package/dist/components/code-block/code-block-core.js +6 -0
  94. package/dist/components/code-block/code-block-core.js.map +1 -0
  95. package/dist/components/code-block/code-block.class.d.ts +5 -5
  96. package/dist/components/code-block/code-block.class.d.ts.map +1 -1
  97. package/dist/components/code-block/code-block.class.js +65 -0
  98. package/dist/components/code-block/code-block.class.js.map +1 -1
  99. package/dist/components/combobox/combobox.class.d.ts +5 -5
  100. package/dist/components/combobox/combobox.class.d.ts.map +1 -1
  101. package/dist/components/combobox/combobox.class.js +38 -0
  102. package/dist/components/combobox/combobox.class.js.map +1 -1
  103. package/dist/components/conversation-item/conversation-item.class.d.ts +3 -3
  104. package/dist/components/conversation-item/conversation-item.class.d.ts.map +1 -1
  105. package/dist/components/conversation-item/conversation-item.class.js +69 -0
  106. package/dist/components/conversation-item/conversation-item.class.js.map +1 -1
  107. package/dist/components/copy-button/copy-button.class.d.ts +5 -5
  108. package/dist/components/copy-button/copy-button.class.d.ts.map +1 -1
  109. package/dist/components/copy-button/copy-button.class.js +13 -0
  110. package/dist/components/copy-button/copy-button.class.js.map +1 -1
  111. package/dist/components/date-picker/date-input.class.d.ts +10 -10
  112. package/dist/components/date-picker/date-input.class.d.ts.map +1 -1
  113. package/dist/components/date-picker/date-input.class.js +28 -0
  114. package/dist/components/date-picker/date-input.class.js.map +1 -1
  115. package/dist/components/date-picker/date-picker.class.d.ts +4 -4
  116. package/dist/components/date-picker/date-picker.class.d.ts.map +1 -1
  117. package/dist/components/date-picker/date-picker.class.js +28 -0
  118. package/dist/components/date-picker/date-picker.class.js.map +1 -1
  119. package/dist/components/dialog/dialog.class.d.ts +3 -3
  120. package/dist/components/dialog/dialog.class.js +3 -3
  121. package/dist/components/dialog/dialog.styles.d.ts.map +1 -1
  122. package/dist/components/dialog/dialog.styles.js +9 -2
  123. package/dist/components/dialog/dialog.styles.js.map +1 -1
  124. package/dist/components/diff-view/diff-line-diff.d.ts +13 -0
  125. package/dist/components/diff-view/diff-line-diff.d.ts.map +1 -0
  126. package/dist/components/diff-view/diff-line-diff.js +45 -0
  127. package/dist/components/diff-view/diff-line-diff.js.map +1 -0
  128. package/dist/components/diff-view/diff-view.class.d.ts +40 -0
  129. package/dist/components/diff-view/diff-view.class.d.ts.map +1 -0
  130. package/dist/components/diff-view/diff-view.class.js +73 -0
  131. package/dist/components/diff-view/diff-view.class.js.map +1 -0
  132. package/dist/components/diff-view/diff-view.d.ts +2 -0
  133. package/dist/components/diff-view/diff-view.d.ts.map +1 -0
  134. package/dist/components/diff-view/diff-view.js +5 -0
  135. package/dist/components/diff-view/diff-view.js.map +1 -0
  136. package/dist/components/diff-view/diff-view.styles.d.ts +2 -0
  137. package/dist/components/diff-view/diff-view.styles.d.ts.map +1 -0
  138. package/dist/components/diff-view/diff-view.styles.js +49 -0
  139. package/dist/components/diff-view/diff-view.styles.js.map +1 -0
  140. package/dist/components/document-preview/document-preview.class.d.ts +9 -9
  141. package/dist/components/document-preview/document-preview.class.d.ts.map +1 -1
  142. package/dist/components/document-preview/document-preview.class.js +83 -0
  143. package/dist/components/document-preview/document-preview.class.js.map +1 -1
  144. package/dist/components/empty/empty.class.d.ts +6 -0
  145. package/dist/components/empty/empty.class.d.ts.map +1 -1
  146. package/dist/components/empty/empty.class.js +28 -2
  147. package/dist/components/empty/empty.class.js.map +1 -1
  148. package/dist/components/empty/empty.styles.js +2 -2
  149. package/dist/components/export-button/export-button.class.d.ts +8 -8
  150. package/dist/components/export-button/export-button.class.d.ts.map +1 -1
  151. package/dist/components/export-button/export-button.class.js +13 -0
  152. package/dist/components/export-button/export-button.class.js.map +1 -1
  153. package/dist/components/file-input/file-input.class.d.ts +6 -6
  154. package/dist/components/file-input/file-input.class.d.ts.map +1 -1
  155. package/dist/components/file-input/file-input.class.js +14 -0
  156. package/dist/components/file-input/file-input.class.js.map +1 -1
  157. package/dist/components/generation-status/generation-status.class.d.ts +3 -3
  158. package/dist/components/generation-status/generation-status.class.d.ts.map +1 -1
  159. package/dist/components/generation-status/generation-status.class.js +66 -0
  160. package/dist/components/generation-status/generation-status.class.js.map +1 -1
  161. package/dist/components/graph/graph.class.d.ts +14 -9
  162. package/dist/components/graph/graph.class.d.ts.map +1 -1
  163. package/dist/components/graph/graph.class.js +68 -3
  164. package/dist/components/graph/graph.class.js.map +1 -1
  165. package/dist/components/graph/graph.styles.d.ts.map +1 -1
  166. package/dist/components/graph/graph.styles.js +4 -0
  167. package/dist/components/graph/graph.styles.js.map +1 -1
  168. package/dist/components/heatmap/heatmap.class.d.ts +22 -11
  169. package/dist/components/heatmap/heatmap.class.d.ts.map +1 -1
  170. package/dist/components/heatmap/heatmap.class.js +86 -2
  171. package/dist/components/heatmap/heatmap.class.js.map +1 -1
  172. package/dist/components/json-viewer/json-viewer.class.d.ts +5 -5
  173. package/dist/components/json-viewer/json-viewer.class.d.ts.map +1 -1
  174. package/dist/components/json-viewer/json-viewer.class.js +22 -0
  175. package/dist/components/json-viewer/json-viewer.class.js.map +1 -1
  176. package/dist/components/map/map.class.d.ts +7 -7
  177. package/dist/components/map/map.class.d.ts.map +1 -1
  178. package/dist/components/map/map.class.js +27 -0
  179. package/dist/components/map/map.class.js.map +1 -1
  180. package/dist/components/markdown/markdown.class.d.ts +17 -9
  181. package/dist/components/markdown/markdown.class.d.ts.map +1 -1
  182. package/dist/components/markdown/markdown.class.js +74 -1
  183. package/dist/components/markdown/markdown.class.js.map +1 -1
  184. package/dist/components/mention-popover/mention-popover.class.d.ts +3 -3
  185. package/dist/components/mention-popover/mention-popover.class.d.ts.map +1 -1
  186. package/dist/components/mention-popover/mention-popover.class.js +113 -0
  187. package/dist/components/mention-popover/mention-popover.class.js.map +1 -1
  188. package/dist/components/menu/menu-item.class.d.ts +7 -7
  189. package/dist/components/menu/menu-item.class.d.ts.map +1 -1
  190. package/dist/components/menu/menu-item.class.js +55 -0
  191. package/dist/components/menu/menu-item.class.js.map +1 -1
  192. package/dist/components/menu/menu.class.d.ts +5 -5
  193. package/dist/components/menu/menu.class.d.ts.map +1 -1
  194. package/dist/components/menu/menu.class.js +84 -0
  195. package/dist/components/menu/menu.class.js.map +1 -1
  196. package/dist/components/model-select/model-select.class.d.ts +6 -6
  197. package/dist/components/model-select/model-select.class.d.ts.map +1 -1
  198. package/dist/components/model-select/model-select.class.js +32 -0
  199. package/dist/components/model-select/model-select.class.js.map +1 -1
  200. package/dist/components/playback/playback.class.d.ts +7 -7
  201. package/dist/components/playback/playback.class.d.ts.map +1 -1
  202. package/dist/components/playback/playback.class.js +13 -0
  203. package/dist/components/playback/playback.class.js.map +1 -1
  204. package/dist/components/poll-status/poll-status.class.d.ts +54 -0
  205. package/dist/components/poll-status/poll-status.class.d.ts.map +1 -0
  206. package/dist/components/poll-status/poll-status.class.js +150 -0
  207. package/dist/components/poll-status/poll-status.class.js.map +1 -0
  208. package/dist/components/poll-status/poll-status.d.ts +3 -0
  209. package/dist/components/poll-status/poll-status.d.ts.map +1 -0
  210. package/dist/components/poll-status/poll-status.js +6 -0
  211. package/dist/components/poll-status/poll-status.js.map +1 -0
  212. package/dist/components/poll-status/poll-status.styles.d.ts +2 -0
  213. package/dist/components/poll-status/poll-status.styles.d.ts.map +1 -0
  214. package/dist/components/poll-status/poll-status.styles.js +53 -0
  215. package/dist/components/poll-status/poll-status.styles.js.map +1 -0
  216. package/dist/components/segmented/segmented.class.d.ts +44 -0
  217. package/dist/components/segmented/segmented.class.d.ts.map +1 -0
  218. package/dist/components/segmented/segmented.class.js +100 -0
  219. package/dist/components/segmented/segmented.class.js.map +1 -0
  220. package/dist/components/segmented/segmented.d.ts +2 -0
  221. package/dist/components/segmented/segmented.d.ts.map +1 -0
  222. package/dist/components/segmented/segmented.js +5 -0
  223. package/dist/components/segmented/segmented.js.map +1 -0
  224. package/dist/components/segmented/segmented.styles.d.ts +2 -0
  225. package/dist/components/segmented/segmented.styles.d.ts.map +1 -0
  226. package/dist/components/segmented/segmented.styles.js +38 -0
  227. package/dist/components/segmented/segmented.styles.js.map +1 -0
  228. package/dist/components/select/select.class.d.ts +6 -6
  229. package/dist/components/select/select.class.d.ts.map +1 -1
  230. package/dist/components/select/select.class.js +57 -0
  231. package/dist/components/select/select.class.js.map +1 -1
  232. package/dist/components/select/select.styles.d.ts.map +1 -1
  233. package/dist/components/select/select.styles.js +6 -1
  234. package/dist/components/select/select.styles.js.map +1 -1
  235. package/dist/components/slider/slider.class.d.ts +11 -11
  236. package/dist/components/slider/slider.class.d.ts.map +1 -1
  237. package/dist/components/slider/slider.class.js +35 -0
  238. package/dist/components/slider/slider.class.js.map +1 -1
  239. package/dist/components/split/split.class.d.ts +3 -3
  240. package/dist/components/split/split.class.d.ts.map +1 -1
  241. package/dist/components/split/split.class.js +66 -3
  242. package/dist/components/split/split.class.js.map +1 -1
  243. package/dist/components/stat/stat.styles.d.ts.map +1 -1
  244. package/dist/components/stat/stat.styles.js +2 -0
  245. package/dist/components/stat/stat.styles.js.map +1 -1
  246. package/dist/components/stepper/stepper.class.d.ts +52 -0
  247. package/dist/components/stepper/stepper.class.d.ts.map +1 -0
  248. package/dist/components/stepper/stepper.class.js +138 -0
  249. package/dist/components/stepper/stepper.class.js.map +1 -0
  250. package/dist/components/stepper/stepper.d.ts +2 -0
  251. package/dist/components/stepper/stepper.d.ts.map +1 -0
  252. package/dist/components/stepper/stepper.js +5 -0
  253. package/dist/components/stepper/stepper.js.map +1 -0
  254. package/dist/components/stepper/stepper.styles.d.ts +2 -0
  255. package/dist/components/stepper/stepper.styles.d.ts.map +1 -0
  256. package/dist/components/stepper/stepper.styles.js +67 -0
  257. package/dist/components/stepper/stepper.styles.js.map +1 -0
  258. package/dist/components/stream-status/stream-status.class.d.ts +4 -4
  259. package/dist/components/stream-status/stream-status.class.d.ts.map +1 -1
  260. package/dist/components/stream-status/stream-status.class.js +79 -0
  261. package/dist/components/stream-status/stream-status.class.js.map +1 -1
  262. package/dist/components/switch/switch.class.d.ts +5 -5
  263. package/dist/components/switch/switch.class.d.ts.map +1 -1
  264. package/dist/components/switch/switch.class.js +24 -0
  265. package/dist/components/switch/switch.class.js.map +1 -1
  266. package/dist/components/table/table.class.d.ts +23 -12
  267. package/dist/components/table/table.class.d.ts.map +1 -1
  268. package/dist/components/table/table.class.js +68 -0
  269. package/dist/components/table/table.class.js.map +1 -1
  270. package/dist/components/table/table.styles.d.ts.map +1 -1
  271. package/dist/components/table/table.styles.js +14 -0
  272. package/dist/components/table/table.styles.js.map +1 -1
  273. package/dist/components/tabs/tabs.class.d.ts +5 -5
  274. package/dist/components/tabs/tabs.class.d.ts.map +1 -1
  275. package/dist/components/tabs/tabs.class.js +38 -0
  276. package/dist/components/tabs/tabs.class.js.map +1 -1
  277. package/dist/components/tabs/tabs.styles.d.ts.map +1 -1
  278. package/dist/components/tabs/tabs.styles.js +1 -0
  279. package/dist/components/tabs/tabs.styles.js.map +1 -1
  280. package/dist/components/time-range/time-range.class.d.ts +10 -10
  281. package/dist/components/time-range/time-range.class.d.ts.map +1 -1
  282. package/dist/components/time-range/time-range.class.js +28 -0
  283. package/dist/components/time-range/time-range.class.js.map +1 -1
  284. package/dist/components/toast/toast-item.class.d.ts +6 -6
  285. package/dist/components/toast/toast-item.class.d.ts.map +1 -1
  286. package/dist/components/toast/toast-item.class.js +17 -0
  287. package/dist/components/toast/toast-item.class.js.map +1 -1
  288. package/dist/components/tool-approval-dialog/tool-approval-dialog.class.d.ts +3 -3
  289. package/dist/components/tool-approval-dialog/tool-approval-dialog.class.d.ts.map +1 -1
  290. package/dist/components/tool-approval-dialog/tool-approval-dialog.class.js +71 -0
  291. package/dist/components/tool-approval-dialog/tool-approval-dialog.class.js.map +1 -1
  292. package/dist/components/tool-param-form/tool-param-form.class.d.ts +9 -9
  293. package/dist/components/tool-param-form/tool-param-form.class.d.ts.map +1 -1
  294. package/dist/components/tool-param-form/tool-param-form.class.js +61 -0
  295. package/dist/components/tool-param-form/tool-param-form.class.js.map +1 -1
  296. package/dist/components/tool-result-view/tool-result-view.class.d.ts +6 -6
  297. package/dist/components/tool-result-view/tool-result-view.class.d.ts.map +1 -1
  298. package/dist/components/tool-result-view/tool-result-view.class.js +27 -0
  299. package/dist/components/tool-result-view/tool-result-view.class.js.map +1 -1
  300. package/dist/components/tree/tree-node.class.d.ts +9 -9
  301. package/dist/components/tree/tree-node.class.d.ts.map +1 -1
  302. package/dist/components/tree/tree-node.class.js +19 -0
  303. package/dist/components/tree/tree-node.class.js.map +1 -1
  304. package/dist/components/virtual-list/virtual-list.class.d.ts +4 -4
  305. package/dist/components/virtual-list/virtual-list.class.d.ts.map +1 -1
  306. package/dist/components/virtual-list/virtual-list.class.js +89 -0
  307. package/dist/components/virtual-list/virtual-list.class.js.map +1 -1
  308. package/dist/components/widget/widget.class.d.ts +34 -4
  309. package/dist/components/widget/widget.class.d.ts.map +1 -1
  310. package/dist/components/widget/widget.class.js +106 -3
  311. package/dist/components/widget/widget.class.js.map +1 -1
  312. package/dist/components/widget/widget.styles.d.ts.map +1 -1
  313. package/dist/components/widget/widget.styles.js +41 -1
  314. package/dist/components/widget/widget.styles.js.map +1 -1
  315. package/dist/components/word-cloud/word-cloud.class.d.ts +7 -7
  316. package/dist/components/word-cloud/word-cloud.class.d.ts.map +1 -1
  317. package/dist/components/word-cloud/word-cloud.class.js +28 -0
  318. package/dist/components/word-cloud/word-cloud.class.js.map +1 -1
  319. package/dist/internal/localization.d.ts +1 -1
  320. package/dist/internal/localization.d.ts.map +1 -1
  321. package/dist/internal/localization.js +1 -0
  322. package/dist/internal/localization.js.map +1 -1
  323. package/dist/internal/root-registration-allowlist.d.ts +1 -1
  324. package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
  325. package/dist/internal/root-registration-allowlist.js +7 -0
  326. package/dist/internal/root-registration-allowlist.js.map +1 -1
  327. package/dist/lyra.d.ts +24 -0
  328. package/dist/lyra.d.ts.map +1 -1
  329. package/dist/lyra.js +15 -0
  330. package/dist/lyra.js.map +1 -1
  331. package/dist/testing/happy-dom-shims.d.ts +40 -0
  332. package/dist/testing/happy-dom-shims.d.ts.map +1 -0
  333. package/dist/testing/happy-dom-shims.js +52 -0
  334. package/dist/testing/happy-dom-shims.js.map +1 -0
  335. package/llms-full.txt +617 -35
  336. package/llms.txt +3 -1
  337. package/package.json +17 -2
@@ -64,6 +64,56 @@ const CAPABILITY_META = {
64
64
  image: { icon: imageIcon, triggerLabel: 'Attach an image', menuLabel: 'Upload a photo' },
65
65
  camera: { icon: cameraIcon, triggerLabel: 'Use camera', menuLabel: 'Take a photo' },
66
66
  };
67
+ /**
68
+ * `<lyra-attachment-trigger>` — a compact attach affordance designed for a
69
+ * chat composer's leading slot (see `<lyra-chat-composer>`'s own `leading`
70
+ * slot, which this drops straight into, though this component has no code
71
+ * dependency on it). Its shape adapts to how many attachment `capabilities`
72
+ * are configured:
73
+ * - Exactly one capability: a single plain icon button ([part='trigger']).
74
+ * Activating it performs that capability's action directly.
75
+ * - More than one: a small anchored menu ([part='menu'], composed from
76
+ * `<lyra-menu>`/`<lyra-menu-item>`) listing each capability as a row.
77
+ *
78
+ * Two of the three capabilities (`files`, `image`) are file-picker-backed:
79
+ * activating them opens a hidden native `<input type="file">` via a
80
+ * synthetic `.click()`, and the resulting selection is re-emitted as
81
+ * `lyra-pick`. `accept` is shared across both — `image` defaults it to
82
+ * `'image/*'` unless the `accept` prop overrides it, `files` always uses
83
+ * `accept` as-is (empty means "any file type", matching a bare native
84
+ * `<input type="file">` with no `accept` attribute).
85
+ *
86
+ * **`camera` is scope-limited by design.** This component does not
87
+ * implement any camera capture UI itself — no `getUserMedia`, no
88
+ * `<input capture>` — because that's entirely a host/browser concern with
89
+ * no single right answer (a desktop web app, a mobile PWA, and a native
90
+ * wrapper all want different things here). Activating the `camera`
91
+ * capability only fires `lyra-camera-request`; the host owns everything
92
+ * from that point on (opening its own capture UI, then presumably handing
93
+ * the resulting `File` back to something like `<lyra-attachment-chip>`).
94
+ *
95
+ * @customElement lyra-attachment-trigger
96
+ * @event lyra-pick - A file-backed capability's hidden file input produced a
97
+ * real selection. `detail: { capability: 'files' | 'image', files }` — a
98
+ * real `FileList` (not a plain array), matching the native input's own
99
+ * `.files` shape, but an independent snapshot rather than that same live
100
+ * object — see `onInputChange`'s own doc for why a live reference would be
101
+ * unsafe to hand out here.
102
+ * @event lyra-camera-request - The `camera` capability was activated. No
103
+ * detail payload — see the class doc's scope note; the host implements the
104
+ * actual capture flow.
105
+ * @csspart trigger - The single-capability icon button. Only rendered when `capabilities.length === 1`.
106
+ * @csspart menu - The `<lyra-menu>` wrapper. Only rendered when `capabilities.length > 1`.
107
+ * @csspart menu-trigger - The multi-capability button slotted into `<lyra-menu>`'s own `trigger` slot. Only rendered when `capabilities.length > 1`.
108
+ * @csspart expand-icon - The disclosure chevron inside the multi-capability trigger button. Only rendered when `capabilities.length > 1`.
109
+ * @csspart hidden-input - The internal native `<input type="file">` that actually opens the OS file
110
+ * picker. Hidden (`display: none`) by default; exposed as a part only so a consumer can override
111
+ * that with `::part(hidden-input)` in the unlikely case their integration needs to.
112
+ *
113
+ * `triggerLabel` lets a host override the single-capability trigger button's
114
+ * `aria-label` (i18n) — see that property's own doc for exactly what it
115
+ * does and doesn't affect.
116
+ */
67
117
  export class LyraAttachmentTrigger extends LyraElement {
68
118
  constructor() {
69
119
  super(...arguments);
@@ -141,6 +191,7 @@ export class LyraAttachmentTrigger extends LyraElement {
141
191
  renderHiddenInput() {
142
192
  return html `
143
193
  <input
194
+ part="hidden-input"
144
195
  type="file"
145
196
  tabindex="-1"
146
197
  aria-hidden="true"
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-trigger.class.js","sourceRoot":"","sources":["../../../src/components/attachment-trigger/attachment-trigger.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attachment-trigger.class.js","sourceRoot":"","sources":["../../../src/components/attachment-trigger/attachment-trigger.class.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-trigger.styles.d.ts","sourceRoot":"","sources":["../../../src/components/attachment-trigger/attachment-trigger.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBA4FlB,CAAC"}
1
+ {"version":3,"file":"attachment-trigger.styles.d.ts","sourceRoot":"","sources":["../../../src/components/attachment-trigger/attachment-trigger.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAsGlB,CAAC"}
@@ -10,6 +10,16 @@ export const styles = css `
10
10
  display: contents;
11
11
  }
12
12
 
13
+ /* The internal native file input never has a visible surface of its own --
14
+ the trigger button/menu above are the only affordance a user interacts
15
+ with; this input exists purely so its synthetic .click() can open the OS
16
+ file picker. Exposed as a part (see the class doc's @csspart) only so a
17
+ consumer's ::part(hidden-input) can override this in the unlikely case
18
+ their integration needs to. */
19
+ [part='hidden-input'] {
20
+ display: none;
21
+ }
22
+
13
23
  /* Shared visual treatment for both the single-capability button
14
24
  ([part='trigger']) and the multi-capability button ([part='menu-trigger'])
15
25
  slotted into lyra-menu's own trigger slot -- the latter can't reuse
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-trigger.styles.js","sourceRoot":"","sources":["../../../src/components/attachment-trigger/attachment-trigger.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4FxB,CAAC"}
1
+ {"version":3,"file":"attachment-trigger.styles.js","sourceRoot":"","sources":["../../../src/components/attachment-trigger/attachment-trigger.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsGxB,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { type TemplateResult } from 'lit';
2
+ import { LyraElement } from '../../internal/lyra-element.js';
3
+ export type AvatarSize = 'sm' | 'md' | 'lg';
4
+ export type AvatarShape = 'circle' | 'square';
5
+ export type AvatarTone = 'neutral' | 'brand' | 'success' | 'warning' | 'danger';
6
+ /**
7
+ * `<lyra-avatar>` — a small, fixed-size identity marker: an image, or an initials fallback when
8
+ * no image is set (or the image fails to load). First-party invention (no Web Awesome
9
+ * equivalent) -- purely presentational, no built-in interactivity; a consumer wraps it in their
10
+ * own `<button>`/`<lyra-menu>` trigger for a user-menu affordance.
11
+ *
12
+ * @customElement lyra-avatar
13
+ * @csspart base - The outer circle/square container.
14
+ * @csspart image - The `<img>`, only rendered while `src` is set and has not failed to load.
15
+ * @csspart initials - The fallback initials text, rendered whenever `image` isn't.
16
+ */
17
+ export declare class LyraAvatar extends LyraElement {
18
+ static styles: import("lit").CSSResultGroup[];
19
+ /** Fallback text (typically 1-2 characters) shown when no image is set, or the image fails to
20
+ * load. */
21
+ initials: string;
22
+ /** Image URL. Takes priority over `initials` when set and loads successfully; falls back to
23
+ * `initials` on a load error. */
24
+ src?: string;
25
+ /** Image alt text -- required alongside `src` for accessibility. */
26
+ alt: string;
27
+ /** Visual size. `'md'` (the default) matches `--lyra-icon-button-size` (2.5rem). */
28
+ size: AvatarSize;
29
+ /** `'circle'` (the default) or `'square'`. */
30
+ shape: AvatarShape;
31
+ /** Recolors the initials-fallback background/text, mirroring `lyra-chip`'s `tone` vocabulary.
32
+ * `'neutral'` (the default) reads as a plain, unaccented circle. */
33
+ tone: AvatarTone;
34
+ private imageFailed;
35
+ private onImageError;
36
+ render(): TemplateResult;
37
+ }
38
+ declare global {
39
+ interface HTMLElementTagNameMap {
40
+ 'lyra-avatar': LyraAvatar;
41
+ }
42
+ }
43
+ //# sourceMappingURL=avatar.class.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.class.d.ts","sourceRoot":"","sources":["../../../src/components/avatar/avatar.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAG7D,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC5C,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC9C,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEhF;;;;;;;;;;GAUG;AACH,qBAAa,UAAW,SAAQ,WAAW;IACzC,MAAM,CAAC,MAAM,iCAAgC;IAE7C;gBACY;IACA,QAAQ,SAAM;IAE1B;sCACkC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEzB,oEAAoE;IACxD,GAAG,SAAM;IAErB,oFAAoF;IACvD,IAAI,EAAE,UAAU,CAAQ;IAErD,8CAA8C;IACjB,KAAK,EAAE,WAAW,CAAY;IAE3D;yEACqE;IACxC,IAAI,EAAE,UAAU,CAAa;IAEjD,OAAO,CAAC,WAAW,CAAS;IAErC,OAAO,CAAC,YAAY,CAElB;IAEF,MAAM,IAAI,cAAc,CASvB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
@@ -0,0 +1,75 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, nothing } from 'lit';
8
+ import { property, state } from 'lit/decorators.js';
9
+ import { LyraElement } from '../../internal/lyra-element.js';
10
+ import { styles } from './avatar.styles.js';
11
+ /**
12
+ * `<lyra-avatar>` — a small, fixed-size identity marker: an image, or an initials fallback when
13
+ * no image is set (or the image fails to load). First-party invention (no Web Awesome
14
+ * equivalent) -- purely presentational, no built-in interactivity; a consumer wraps it in their
15
+ * own `<button>`/`<lyra-menu>` trigger for a user-menu affordance.
16
+ *
17
+ * @customElement lyra-avatar
18
+ * @csspart base - The outer circle/square container.
19
+ * @csspart image - The `<img>`, only rendered while `src` is set and has not failed to load.
20
+ * @csspart initials - The fallback initials text, rendered whenever `image` isn't.
21
+ */
22
+ export class LyraAvatar extends LyraElement {
23
+ constructor() {
24
+ super(...arguments);
25
+ /** Fallback text (typically 1-2 characters) shown when no image is set, or the image fails to
26
+ * load. */
27
+ this.initials = '';
28
+ /** Image alt text -- required alongside `src` for accessibility. */
29
+ this.alt = '';
30
+ /** Visual size. `'md'` (the default) matches `--lyra-icon-button-size` (2.5rem). */
31
+ this.size = 'md';
32
+ /** `'circle'` (the default) or `'square'`. */
33
+ this.shape = 'circle';
34
+ /** Recolors the initials-fallback background/text, mirroring `lyra-chip`'s `tone` vocabulary.
35
+ * `'neutral'` (the default) reads as a plain, unaccented circle. */
36
+ this.tone = 'neutral';
37
+ this.imageFailed = false;
38
+ this.onImageError = () => {
39
+ this.imageFailed = true;
40
+ };
41
+ }
42
+ static { this.styles = [LyraElement.styles, styles]; }
43
+ render() {
44
+ const showImage = !!this.src && !this.imageFailed;
45
+ return html `
46
+ <span part="base">
47
+ ${showImage
48
+ ? html `<img part="image" src=${this.src} alt=${this.alt} @error=${this.onImageError} />`
49
+ : html `<span part="initials" aria-hidden=${this.alt ? 'true' : nothing}>${this.initials}</span>`}
50
+ </span>
51
+ `;
52
+ }
53
+ }
54
+ __decorate([
55
+ property()
56
+ ], LyraAvatar.prototype, "initials", void 0);
57
+ __decorate([
58
+ property()
59
+ ], LyraAvatar.prototype, "src", void 0);
60
+ __decorate([
61
+ property()
62
+ ], LyraAvatar.prototype, "alt", void 0);
63
+ __decorate([
64
+ property({ reflect: true })
65
+ ], LyraAvatar.prototype, "size", void 0);
66
+ __decorate([
67
+ property({ reflect: true })
68
+ ], LyraAvatar.prototype, "shape", void 0);
69
+ __decorate([
70
+ property({ reflect: true })
71
+ ], LyraAvatar.prototype, "tone", void 0);
72
+ __decorate([
73
+ state()
74
+ ], LyraAvatar.prototype, "imageFailed", void 0);
75
+ //# sourceMappingURL=avatar.class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.class.js","sourceRoot":"","sources":["../../../src/components/avatar/avatar.class.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAM5C;;;;;;;;;;GAUG;AACH,MAAM,OAAO,UAAW,SAAQ,WAAW;IAA3C;;QAGE;oBACY;QACA,aAAQ,GAAG,EAAE,CAAC;QAM1B,oEAAoE;QACxD,QAAG,GAAG,EAAE,CAAC;QAErB,oFAAoF;QACvD,SAAI,GAAe,IAAI,CAAC;QAErD,8CAA8C;QACjB,UAAK,GAAgB,QAAQ,CAAC;QAE3D;6EACqE;QACxC,SAAI,GAAe,SAAS,CAAC;QAEzC,gBAAW,GAAG,KAAK,CAAC;QAE7B,iBAAY,GAAG,GAAS,EAAE;YAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC,CAAC;IAYJ,CAAC;aAvCQ,WAAM,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,AAA/B,CAAgC;IA6B7C,MAAM;QACJ,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QAClD,OAAO,IAAI,CAAA;;UAEL,SAAS;YACT,CAAC,CAAC,IAAI,CAAA,yBAAyB,IAAI,CAAC,GAAI,QAAQ,IAAI,CAAC,GAAG,WAAW,IAAI,CAAC,YAAY,KAAK;YACzF,CAAC,CAAC,IAAI,CAAA,qCAAqC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,SAAS;;KAErG,CAAC;IACJ,CAAC;CACF;AAnCa;IAAX,QAAQ,EAAE;4CAAe;AAId;IAAX,QAAQ,EAAE;uCAAc;AAGb;IAAX,QAAQ,EAAE;uCAAU;AAGQ;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAAyB;AAGxB;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yCAA+B;AAI9B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAA8B;AAEzC;IAAhB,KAAK,EAAE;+CAA6B"}
@@ -0,0 +1,2 @@
1
+ export * from './avatar.class.js';
2
+ //# sourceMappingURL=avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../../src/components/avatar/avatar.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './avatar.class.js';
2
+ import { LyraAvatar } from './avatar.class.js';
3
+ import { defineElement } from '../../internal/prefix.js';
4
+ defineElement('avatar', LyraAvatar);
5
+ //# sourceMappingURL=avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../src/components/avatar/avatar.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const styles: import("lit").CSSResult;
2
+ //# sourceMappingURL=avatar.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.styles.d.ts","sourceRoot":"","sources":["../../../src/components/avatar/avatar.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAoDlB,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `
3
+ :host {
4
+ display: inline-flex;
5
+ vertical-align: middle;
6
+ --lyra-avatar-size: var(--lyra-size-2rem);
7
+ --lyra-avatar-bg: var(--lyra-color-surface-alt, var(--lyra-color-border));
8
+ --lyra-avatar-color: var(--lyra-color-text);
9
+ }
10
+ :host([size='sm']) {
11
+ --lyra-avatar-size: var(--lyra-size-1-5rem);
12
+ }
13
+ :host([size='lg']) {
14
+ --lyra-avatar-size: var(--lyra-size-2-5rem);
15
+ }
16
+ :host([tone='brand']) {
17
+ --lyra-avatar-bg: var(--lyra-color-brand-quiet);
18
+ --lyra-avatar-color: var(--lyra-color-brand);
19
+ }
20
+ :host([tone='success']) {
21
+ --lyra-avatar-bg: var(--lyra-color-success-quiet);
22
+ --lyra-avatar-color: var(--lyra-color-success);
23
+ }
24
+ :host([tone='warning']) {
25
+ --lyra-avatar-bg: var(--lyra-color-warning-quiet);
26
+ --lyra-avatar-color: var(--lyra-color-warning);
27
+ }
28
+ :host([tone='danger']) {
29
+ --lyra-avatar-bg: var(--lyra-color-danger-quiet);
30
+ --lyra-avatar-color: var(--lyra-color-danger);
31
+ }
32
+ [part='base'] {
33
+ display: inline-flex;
34
+ align-items: center;
35
+ justify-content: center;
36
+ inline-size: var(--lyra-avatar-size);
37
+ block-size: var(--lyra-avatar-size);
38
+ overflow: hidden;
39
+ border-radius: var(--lyra-radius-pill);
40
+ background: var(--lyra-avatar-bg);
41
+ color: var(--lyra-avatar-color);
42
+ font-size: var(--lyra-font-size-sm);
43
+ font-weight: var(--lyra-font-weight-semibold);
44
+ flex: 0 0 auto;
45
+ }
46
+ :host([shape='square']) [part='base'] {
47
+ border-radius: var(--lyra-radius);
48
+ }
49
+ [part='image'] {
50
+ inline-size: 100%;
51
+ block-size: 100%;
52
+ object-fit: cover;
53
+ }
54
+ `;
55
+ //# sourceMappingURL=avatar.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.styles.js","sourceRoot":"","sources":["../../../src/components/avatar/avatar.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDxB,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { type TemplateResult, type PropertyValues } from 'lit';
2
+ import { LyraElement } from '../../internal/lyra-element.js';
3
+ export type CardAppearance = 'accent' | 'filled' | 'outlined' | 'filled-outlined' | 'plain';
4
+ /**
5
+ * `<lyra-card>` — a generic, styled bordered content container: the "small bordered surface with
6
+ * padding" idiom common to hero highlights, clickable grid tiles, and management-list items. A
7
+ * direct `<lyra-*>` counterpart to `<wa-card>`'s contract, staying slot-compatible with
8
+ * `lyra-result-card` where they overlap.
9
+ *
10
+ * @customElement lyra-card
11
+ * @slot - The card body.
12
+ * @slot header - Header row content, rendered above the body.
13
+ * @slot media - Media content (e.g. an image), rendered above the header.
14
+ * @slot footer - Footer content, rendered below the body.
15
+ * @slot actions - Small header controls, rendered alongside the header content.
16
+ * @csspart base - The outer container (a `<div>`, or an `<a>` when `href` is set).
17
+ * @csspart media - Wrapper around the `media` slot. Hidden entirely when empty.
18
+ * @csspart header - Wrapper around the `header` slot and `actions`. Hidden entirely when both are empty.
19
+ * @csspart actions - Wrapper around the `actions` slot. Hidden entirely when empty.
20
+ * @csspart body - Wrapper around the default slot.
21
+ * @csspart footer - Wrapper around the `footer` slot. Hidden entirely when empty.
22
+ */
23
+ export declare class LyraCard extends LyraElement {
24
+ static styles: import("lit").CSSResultGroup[];
25
+ /** Visual treatment, mirroring `wa-card`'s `appearance` vocabulary. `'outlined'` (the default)
26
+ * is a bordered surface -- the common "small bordered surface with padding" idiom. */
27
+ appearance: CardAppearance;
28
+ /** Opt-in hover/focus-visible treatment (border-color shift, cursor: pointer) for a card used
29
+ * as a clickable tile -- purely visual; this component takes no position on what "activate"
30
+ * means unless `href` is also set. `false` (the default) reproduces today's exact static
31
+ * output. */
32
+ interactive: boolean;
33
+ /** When set, the card's root renders as a real `<a href=...>` instead of a `<div>` -- for a
34
+ * whole-card link (e.g. a wide CTA tile). Unset (the default) renders a plain `<div>`. */
35
+ href?: string;
36
+ private hasHeaderSlot;
37
+ private hasMediaSlot;
38
+ private hasFooterSlot;
39
+ private hasActionsSlot;
40
+ protected willUpdate(changed: PropertyValues): void;
41
+ private onHeaderSlotChange;
42
+ private onMediaSlotChange;
43
+ private onFooterSlotChange;
44
+ private onActionsSlotChange;
45
+ render(): TemplateResult;
46
+ }
47
+ declare global {
48
+ interface HTMLElementTagNameMap {
49
+ 'lyra-card': LyraCard;
50
+ }
51
+ }
52
+ //# sourceMappingURL=card.class.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.class.d.ts","sourceRoot":"","sources":["../../../src/components/card/card.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAG7D,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,iBAAiB,GAAG,OAAO,CAAC;AAE5F;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,QAAS,SAAQ,WAAW;IACvC,MAAM,CAAC,MAAM,iCAAgC;IAE7C;2FACuF;IAC1D,UAAU,EAAE,cAAc,CAAc;IAErE;;;kBAGc;IAC8B,WAAW,UAAS;IAEhE;+FAC2F;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;IAEjB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAS;IAExC,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAQlD;IAED,OAAO,CAAC,kBAAkB,CAExB;IACF,OAAO,CAAC,iBAAiB,CAEvB;IACF,OAAO,CAAC,kBAAkB,CAExB;IACF,OAAO,CAAC,mBAAmB,CAEzB;IAEF,MAAM,IAAI,cAAc,CAoBvB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
@@ -0,0 +1,111 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html } from 'lit';
8
+ import { property, state } from 'lit/decorators.js';
9
+ import { LyraElement } from '../../internal/lyra-element.js';
10
+ import { styles } from './card.styles.js';
11
+ /**
12
+ * `<lyra-card>` — a generic, styled bordered content container: the "small bordered surface with
13
+ * padding" idiom common to hero highlights, clickable grid tiles, and management-list items. A
14
+ * direct `<lyra-*>` counterpart to `<wa-card>`'s contract, staying slot-compatible with
15
+ * `lyra-result-card` where they overlap.
16
+ *
17
+ * @customElement lyra-card
18
+ * @slot - The card body.
19
+ * @slot header - Header row content, rendered above the body.
20
+ * @slot media - Media content (e.g. an image), rendered above the header.
21
+ * @slot footer - Footer content, rendered below the body.
22
+ * @slot actions - Small header controls, rendered alongside the header content.
23
+ * @csspart base - The outer container (a `<div>`, or an `<a>` when `href` is set).
24
+ * @csspart media - Wrapper around the `media` slot. Hidden entirely when empty.
25
+ * @csspart header - Wrapper around the `header` slot and `actions`. Hidden entirely when both are empty.
26
+ * @csspart actions - Wrapper around the `actions` slot. Hidden entirely when empty.
27
+ * @csspart body - Wrapper around the default slot.
28
+ * @csspart footer - Wrapper around the `footer` slot. Hidden entirely when empty.
29
+ */
30
+ export class LyraCard extends LyraElement {
31
+ constructor() {
32
+ super(...arguments);
33
+ /** Visual treatment, mirroring `wa-card`'s `appearance` vocabulary. `'outlined'` (the default)
34
+ * is a bordered surface -- the common "small bordered surface with padding" idiom. */
35
+ this.appearance = 'outlined';
36
+ /** Opt-in hover/focus-visible treatment (border-color shift, cursor: pointer) for a card used
37
+ * as a clickable tile -- purely visual; this component takes no position on what "activate"
38
+ * means unless `href` is also set. `false` (the default) reproduces today's exact static
39
+ * output. */
40
+ this.interactive = false;
41
+ this.hasHeaderSlot = false;
42
+ this.hasMediaSlot = false;
43
+ this.hasFooterSlot = false;
44
+ this.hasActionsSlot = false;
45
+ this.onHeaderSlotChange = (e) => {
46
+ this.hasHeaderSlot = e.target.assignedElements({ flatten: true }).length > 0;
47
+ };
48
+ this.onMediaSlotChange = (e) => {
49
+ this.hasMediaSlot = e.target.assignedElements({ flatten: true }).length > 0;
50
+ };
51
+ this.onFooterSlotChange = (e) => {
52
+ this.hasFooterSlot = e.target.assignedElements({ flatten: true }).length > 0;
53
+ };
54
+ this.onActionsSlotChange = (e) => {
55
+ this.hasActionsSlot = e.target.assignedElements({ flatten: true }).length > 0;
56
+ };
57
+ }
58
+ static { this.styles = [LyraElement.styles, styles]; }
59
+ willUpdate(changed) {
60
+ if (!this.hasUpdated) {
61
+ this.hasHeaderSlot = Array.from(this.children).some((el) => el.getAttribute('slot') === 'header');
62
+ this.hasMediaSlot = Array.from(this.children).some((el) => el.getAttribute('slot') === 'media');
63
+ this.hasFooterSlot = Array.from(this.children).some((el) => el.getAttribute('slot') === 'footer');
64
+ this.hasActionsSlot = Array.from(this.children).some((el) => el.getAttribute('slot') === 'actions');
65
+ }
66
+ void changed;
67
+ }
68
+ render() {
69
+ const hasHeader = this.hasHeaderSlot || this.hasActionsSlot;
70
+ const body = html `
71
+ <div part="media" ?hidden=${!this.hasMediaSlot}>
72
+ <slot name="media" @slotchange=${this.onMediaSlotChange}></slot>
73
+ </div>
74
+ <div part="header" ?hidden=${!hasHeader}>
75
+ <slot name="header" @slotchange=${this.onHeaderSlotChange}></slot>
76
+ <div part="actions" ?hidden=${!this.hasActionsSlot}>
77
+ <slot name="actions" @slotchange=${this.onActionsSlotChange}></slot>
78
+ </div>
79
+ </div>
80
+ <div part="body"><slot></slot></div>
81
+ <div part="footer" ?hidden=${!this.hasFooterSlot}>
82
+ <slot name="footer" @slotchange=${this.onFooterSlotChange}></slot>
83
+ </div>
84
+ `;
85
+ return this.href
86
+ ? html `<a part="base" href=${this.href}>${body}</a>`
87
+ : html `<div part="base">${body}</div>`;
88
+ }
89
+ }
90
+ __decorate([
91
+ property({ reflect: true })
92
+ ], LyraCard.prototype, "appearance", void 0);
93
+ __decorate([
94
+ property({ type: Boolean, reflect: true })
95
+ ], LyraCard.prototype, "interactive", void 0);
96
+ __decorate([
97
+ property()
98
+ ], LyraCard.prototype, "href", void 0);
99
+ __decorate([
100
+ state()
101
+ ], LyraCard.prototype, "hasHeaderSlot", void 0);
102
+ __decorate([
103
+ state()
104
+ ], LyraCard.prototype, "hasMediaSlot", void 0);
105
+ __decorate([
106
+ state()
107
+ ], LyraCard.prototype, "hasFooterSlot", void 0);
108
+ __decorate([
109
+ state()
110
+ ], LyraCard.prototype, "hasActionsSlot", void 0);
111
+ //# sourceMappingURL=card.class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.class.js","sourceRoot":"","sources":["../../../src/components/card/card.class.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './card.class.js';
2
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../src/components/card/card.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './card.class.js';
2
+ import { LyraCard } from './card.class.js';
3
+ import { defineElement } from '../../internal/prefix.js';
4
+ defineElement('card', LyraCard);
5
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["../../../src/components/card/card.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const styles: import("lit").CSSResult;
2
+ //# sourceMappingURL=card.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.styles.d.ts","sourceRoot":"","sources":["../../../src/components/card/card.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBA0ElB,CAAC"}
@@ -0,0 +1,77 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `
3
+ :host {
4
+ display: block;
5
+ }
6
+ [part='base'] {
7
+ display: flex;
8
+ flex-direction: column;
9
+ border: var(--lyra-border-width-thin) solid var(--lyra-color-border);
10
+ border-radius: var(--lyra-radius);
11
+ background: var(--lyra-color-surface);
12
+ color: inherit;
13
+ text-decoration: none;
14
+ overflow: hidden;
15
+ }
16
+ :host([appearance='filled']) [part='base'] {
17
+ border-color: transparent;
18
+ background: var(--lyra-color-brand-quiet);
19
+ }
20
+ :host([appearance='filled-outlined']) [part='base'] {
21
+ background: var(--lyra-color-brand-quiet);
22
+ }
23
+ :host([appearance='accent']) [part='base'] {
24
+ border-color: transparent;
25
+ border-inline-start: var(--lyra-size-3px) solid var(--lyra-color-brand);
26
+ }
27
+ :host([appearance='plain']) [part='base'] {
28
+ border-color: transparent;
29
+ background: transparent;
30
+ }
31
+ :host([interactive]) [part='base'] {
32
+ cursor: pointer;
33
+ transition: border-color var(--lyra-transition-fast);
34
+ }
35
+ :host([interactive]) [part='base']:hover {
36
+ border-color: var(--lyra-color-brand);
37
+ }
38
+ :host([interactive]) [part='base']:focus-visible {
39
+ outline: var(--lyra-focus-ring-width) solid var(--lyra-focus-ring-color);
40
+ outline-offset: var(--lyra-focus-ring-offset);
41
+ }
42
+ [part='media'][hidden],
43
+ [part='header'][hidden],
44
+ [part='footer'][hidden] {
45
+ display: none;
46
+ }
47
+ [part='media'] ::slotted(*) {
48
+ display: block;
49
+ inline-size: 100%;
50
+ }
51
+ [part='header'] {
52
+ display: flex;
53
+ align-items: center;
54
+ gap: var(--lyra-space-s);
55
+ padding: var(--lyra-space-s) var(--lyra-space-m);
56
+ border-block-end: var(--lyra-border-width-thin) solid var(--lyra-color-border);
57
+ }
58
+ [part='actions'] {
59
+ display: flex;
60
+ align-items: center;
61
+ gap: var(--lyra-space-xs);
62
+ flex: 0 0 auto;
63
+ margin-inline-start: auto;
64
+ }
65
+ [part='actions'][hidden] {
66
+ display: none;
67
+ }
68
+ [part='body'] {
69
+ padding: var(--lyra-space-m);
70
+ flex: 1 1 auto;
71
+ }
72
+ [part='footer'] {
73
+ padding: var(--lyra-space-s) var(--lyra-space-m);
74
+ border-block-start: var(--lyra-border-width-thin) solid var(--lyra-color-border);
75
+ }
76
+ `;
77
+ //# sourceMappingURL=card.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.styles.js","sourceRoot":"","sources":["../../../src/components/card/card.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0ExB,CAAC"}