@aceshooting/lyra-ui 3.5.0 → 3.7.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 (295) hide show
  1. package/README.md +111 -2
  2. package/custom-elements.json +50239 -41857
  3. package/dist/components/animated-image/animated-image.class.d.ts +131 -0
  4. package/dist/components/animated-image/animated-image.class.d.ts.map +1 -0
  5. package/dist/components/animated-image/animated-image.class.js +296 -0
  6. package/dist/components/animated-image/animated-image.class.js.map +1 -0
  7. package/dist/components/animated-image/animated-image.d.ts +2 -0
  8. package/dist/components/animated-image/animated-image.d.ts.map +1 -0
  9. package/dist/components/animated-image/animated-image.js +5 -0
  10. package/dist/components/animated-image/animated-image.js.map +1 -0
  11. package/dist/components/animated-image/animated-image.styles.d.ts +2 -0
  12. package/dist/components/animated-image/animated-image.styles.d.ts.map +1 -0
  13. package/dist/components/animated-image/animated-image.styles.js +117 -0
  14. package/dist/components/animated-image/animated-image.styles.js.map +1 -0
  15. package/dist/components/animation/animation.class.d.ts +119 -0
  16. package/dist/components/animation/animation.class.d.ts.map +1 -0
  17. package/dist/components/animation/animation.class.js +420 -0
  18. package/dist/components/animation/animation.class.js.map +1 -0
  19. package/dist/components/animation/animation.d.ts +2 -0
  20. package/dist/components/animation/animation.d.ts.map +1 -0
  21. package/dist/components/animation/animation.js +5 -0
  22. package/dist/components/animation/animation.js.map +1 -0
  23. package/dist/components/animation/animation.styles.d.ts +2 -0
  24. package/dist/components/animation/animation.styles.d.ts.map +1 -0
  25. package/dist/components/animation/animation.styles.js +18 -0
  26. package/dist/components/animation/animation.styles.js.map +1 -0
  27. package/dist/components/avatar-group/avatar-group.class.d.ts +110 -0
  28. package/dist/components/avatar-group/avatar-group.class.d.ts.map +1 -0
  29. package/dist/components/avatar-group/avatar-group.class.js +182 -0
  30. package/dist/components/avatar-group/avatar-group.class.js.map +1 -0
  31. package/dist/components/avatar-group/avatar-group.d.ts +2 -0
  32. package/dist/components/avatar-group/avatar-group.d.ts.map +1 -0
  33. package/dist/components/avatar-group/avatar-group.js +5 -0
  34. package/dist/components/avatar-group/avatar-group.js.map +1 -0
  35. package/dist/components/avatar-group/avatar-group.styles.d.ts +2 -0
  36. package/dist/components/avatar-group/avatar-group.styles.d.ts.map +1 -0
  37. package/dist/components/avatar-group/avatar-group.styles.js +112 -0
  38. package/dist/components/avatar-group/avatar-group.styles.js.map +1 -0
  39. package/dist/components/button/button.class.d.ts +5 -2
  40. package/dist/components/button/button.class.d.ts.map +1 -1
  41. package/dist/components/button/button.class.js +4 -1
  42. package/dist/components/button/button.class.js.map +1 -1
  43. package/dist/components/button/button.styles.d.ts.map +1 -1
  44. package/dist/components/button/button.styles.js +16 -0
  45. package/dist/components/button/button.styles.js.map +1 -1
  46. package/dist/components/calendar/calendar.class.d.ts.map +1 -1
  47. package/dist/components/calendar/calendar.class.js +1 -12
  48. package/dist/components/calendar/calendar.class.js.map +1 -1
  49. package/dist/components/calendar-viewer/calendar-viewer.class.d.ts +1 -1
  50. package/dist/components/calendar-viewer/calendar-viewer.class.d.ts.map +1 -1
  51. package/dist/components/calendar-viewer/calendar-viewer.class.js +2 -2
  52. package/dist/components/calendar-viewer/calendar-viewer.class.js.map +1 -1
  53. package/dist/components/chart/box-plot.class.d.ts.map +1 -1
  54. package/dist/components/chart/box-plot.class.js +1 -3
  55. package/dist/components/chart/box-plot.class.js.map +1 -1
  56. package/dist/components/chart/chart.class.d.ts.map +1 -1
  57. package/dist/components/chart/chart.class.js +1 -3
  58. package/dist/components/chart/chart.class.js.map +1 -1
  59. package/dist/components/code-editor/code-editor.styles.d.ts.map +1 -1
  60. package/dist/components/code-editor/code-editor.styles.js +5 -2
  61. package/dist/components/code-editor/code-editor.styles.js.map +1 -1
  62. package/dist/components/contact-viewer/contact-viewer.class.d.ts +4 -1
  63. package/dist/components/contact-viewer/contact-viewer.class.d.ts.map +1 -1
  64. package/dist/components/contact-viewer/contact-viewer.class.js +5 -2
  65. package/dist/components/contact-viewer/contact-viewer.class.js.map +1 -1
  66. package/dist/components/email-viewer/email-viewer.class.d.ts +4 -1
  67. package/dist/components/email-viewer/email-viewer.class.d.ts.map +1 -1
  68. package/dist/components/email-viewer/email-viewer.class.js +5 -2
  69. package/dist/components/email-viewer/email-viewer.class.js.map +1 -1
  70. package/dist/components/file-icon/file-icon.class.d.ts +5 -1
  71. package/dist/components/file-icon/file-icon.class.d.ts.map +1 -1
  72. package/dist/components/file-icon/file-icon.class.js +20 -2
  73. package/dist/components/file-icon/file-icon.class.js.map +1 -1
  74. package/dist/components/file-icon/file-icon.styles.d.ts.map +1 -1
  75. package/dist/components/file-icon/file-icon.styles.js +4 -0
  76. package/dist/components/file-icon/file-icon.styles.js.map +1 -1
  77. package/dist/components/graph/graph.class.d.ts.map +1 -1
  78. package/dist/components/graph/graph.class.js +1 -3
  79. package/dist/components/graph/graph.class.js.map +1 -1
  80. package/dist/components/heatmap/heatmap.class.d.ts.map +1 -1
  81. package/dist/components/heatmap/heatmap.class.js +1 -8
  82. package/dist/components/heatmap/heatmap.class.js.map +1 -1
  83. package/dist/components/icon/icon.styles.d.ts.map +1 -1
  84. package/dist/components/icon/icon.styles.js +1 -1
  85. package/dist/components/icon/icon.styles.js.map +1 -1
  86. package/dist/components/include/include.class.d.ts +104 -0
  87. package/dist/components/include/include.class.d.ts.map +1 -0
  88. package/dist/components/include/include.class.js +149 -0
  89. package/dist/components/include/include.class.js.map +1 -0
  90. package/dist/components/include/include.d.ts +2 -0
  91. package/dist/components/include/include.d.ts.map +1 -0
  92. package/dist/components/include/include.js +5 -0
  93. package/dist/components/include/include.js.map +1 -0
  94. package/dist/components/include/include.styles.d.ts +2 -0
  95. package/dist/components/include/include.styles.d.ts.map +1 -0
  96. package/dist/components/include/include.styles.js +14 -0
  97. package/dist/components/include/include.styles.js.map +1 -0
  98. package/dist/components/kbd/kbd.class.d.ts.map +1 -1
  99. package/dist/components/kbd/kbd.class.js +1 -11
  100. package/dist/components/kbd/kbd.class.js.map +1 -1
  101. package/dist/components/known-date/known-date.class.d.ts +208 -0
  102. package/dist/components/known-date/known-date.class.d.ts.map +1 -0
  103. package/dist/components/known-date/known-date.class.js +588 -0
  104. package/dist/components/known-date/known-date.class.js.map +1 -0
  105. package/dist/components/known-date/known-date.d.ts +2 -0
  106. package/dist/components/known-date/known-date.d.ts.map +1 -0
  107. package/dist/components/known-date/known-date.js +5 -0
  108. package/dist/components/known-date/known-date.js.map +1 -0
  109. package/dist/components/known-date/known-date.styles.d.ts +2 -0
  110. package/dist/components/known-date/known-date.styles.d.ts.map +1 -0
  111. package/dist/components/known-date/known-date.styles.js +134 -0
  112. package/dist/components/known-date/known-date.styles.js.map +1 -0
  113. package/dist/components/lightbox/lightbox.class.d.ts +187 -0
  114. package/dist/components/lightbox/lightbox.class.d.ts.map +1 -0
  115. package/dist/components/lightbox/lightbox.class.js +415 -0
  116. package/dist/components/lightbox/lightbox.class.js.map +1 -0
  117. package/dist/components/lightbox/lightbox.d.ts +3 -0
  118. package/dist/components/lightbox/lightbox.d.ts.map +1 -0
  119. package/dist/components/lightbox/lightbox.js +6 -0
  120. package/dist/components/lightbox/lightbox.js.map +1 -0
  121. package/dist/components/lightbox/lightbox.styles.d.ts +2 -0
  122. package/dist/components/lightbox/lightbox.styles.d.ts.map +1 -0
  123. package/dist/components/lightbox/lightbox.styles.js +179 -0
  124. package/dist/components/lightbox/lightbox.styles.js.map +1 -0
  125. package/dist/components/map/map.class.d.ts.map +1 -1
  126. package/dist/components/map/map.class.js +11 -23
  127. package/dist/components/map/map.class.js.map +1 -1
  128. package/dist/components/menu/menu.class.d.ts +1 -1
  129. package/dist/components/model-settings-panel/model-settings-panel.class.d.ts.map +1 -1
  130. package/dist/components/model-settings-panel/model-settings-panel.class.js +1 -10
  131. package/dist/components/model-settings-panel/model-settings-panel.class.js.map +1 -1
  132. package/dist/components/qr-code/qr-code-loader.d.ts +15 -0
  133. package/dist/components/qr-code/qr-code-loader.d.ts.map +1 -0
  134. package/dist/components/qr-code/qr-code-loader.js +28 -0
  135. package/dist/components/qr-code/qr-code-loader.js.map +1 -0
  136. package/dist/components/qr-code/qr-code.class.d.ts +121 -0
  137. package/dist/components/qr-code/qr-code.class.d.ts.map +1 -0
  138. package/dist/components/qr-code/qr-code.class.js +392 -0
  139. package/dist/components/qr-code/qr-code.class.js.map +1 -0
  140. package/dist/components/qr-code/qr-code.d.ts +2 -0
  141. package/dist/components/qr-code/qr-code.d.ts.map +1 -0
  142. package/dist/components/qr-code/qr-code.js +5 -0
  143. package/dist/components/qr-code/qr-code.js.map +1 -0
  144. package/dist/components/qr-code/qr-code.styles.d.ts +2 -0
  145. package/dist/components/qr-code/qr-code.styles.d.ts.map +1 -0
  146. package/dist/components/qr-code/qr-code.styles.js +48 -0
  147. package/dist/components/qr-code/qr-code.styles.js.map +1 -0
  148. package/dist/components/random-content/random-content.class.d.ts +99 -0
  149. package/dist/components/random-content/random-content.class.d.ts.map +1 -0
  150. package/dist/components/random-content/random-content.class.js +268 -0
  151. package/dist/components/random-content/random-content.class.js.map +1 -0
  152. package/dist/components/random-content/random-content.d.ts +2 -0
  153. package/dist/components/random-content/random-content.d.ts.map +1 -0
  154. package/dist/components/random-content/random-content.js +5 -0
  155. package/dist/components/random-content/random-content.js.map +1 -0
  156. package/dist/components/random-content/random-content.styles.d.ts +2 -0
  157. package/dist/components/random-content/random-content.styles.d.ts.map +1 -0
  158. package/dist/components/random-content/random-content.styles.js +94 -0
  159. package/dist/components/random-content/random-content.styles.js.map +1 -0
  160. package/dist/components/result-card/result-card.class.d.ts +9 -8
  161. package/dist/components/result-card/result-card.class.d.ts.map +1 -1
  162. package/dist/components/result-card/result-card.class.js +7 -26
  163. package/dist/components/result-card/result-card.class.js.map +1 -1
  164. package/dist/components/result-card/result-field.class.d.ts.map +1 -1
  165. package/dist/components/result-card/result-field.class.js +1 -11
  166. package/dist/components/result-card/result-field.class.js.map +1 -1
  167. package/dist/components/slider/slider.class.d.ts.map +1 -1
  168. package/dist/components/slider/slider.class.js +1 -19
  169. package/dist/components/slider/slider.class.js.map +1 -1
  170. package/dist/components/source-card/source-card.class.d.ts +8 -7
  171. package/dist/components/source-card/source-card.class.d.ts.map +1 -1
  172. package/dist/components/source-card/source-card.class.js +6 -25
  173. package/dist/components/source-card/source-card.class.js.map +1 -1
  174. package/dist/components/stat/stat.class.js +1 -1
  175. package/dist/components/stat/stat.class.js.map +1 -1
  176. package/dist/components/swatch-picker/swatch-picker.class.d.ts +55 -0
  177. package/dist/components/swatch-picker/swatch-picker.class.d.ts.map +1 -0
  178. package/dist/components/swatch-picker/swatch-picker.class.js +120 -0
  179. package/dist/components/swatch-picker/swatch-picker.class.js.map +1 -0
  180. package/dist/components/swatch-picker/swatch-picker.d.ts +2 -0
  181. package/dist/components/swatch-picker/swatch-picker.d.ts.map +1 -0
  182. package/dist/components/swatch-picker/swatch-picker.js +5 -0
  183. package/dist/components/swatch-picker/swatch-picker.js.map +1 -0
  184. package/dist/components/swatch-picker/swatch-picker.styles.d.ts +2 -0
  185. package/dist/components/swatch-picker/swatch-picker.styles.d.ts.map +1 -0
  186. package/dist/components/swatch-picker/swatch-picker.styles.js +55 -0
  187. package/dist/components/swatch-picker/swatch-picker.styles.js.map +1 -0
  188. package/dist/components/time-range/time-range.class.d.ts.map +1 -1
  189. package/dist/components/time-range/time-range.class.js +1 -21
  190. package/dist/components/time-range/time-range.class.js.map +1 -1
  191. package/dist/components/timeline/timeline-item.class.d.ts +120 -0
  192. package/dist/components/timeline/timeline-item.class.d.ts.map +1 -0
  193. package/dist/components/timeline/timeline-item.class.js +203 -0
  194. package/dist/components/timeline/timeline-item.class.js.map +1 -0
  195. package/dist/components/timeline/timeline-item.d.ts +3 -0
  196. package/dist/components/timeline/timeline-item.d.ts.map +1 -0
  197. package/dist/components/timeline/timeline-item.js +10 -0
  198. package/dist/components/timeline/timeline-item.js.map +1 -0
  199. package/dist/components/timeline/timeline-item.styles.d.ts +2 -0
  200. package/dist/components/timeline/timeline-item.styles.d.ts.map +1 -0
  201. package/dist/components/timeline/timeline-item.styles.js +149 -0
  202. package/dist/components/timeline/timeline-item.styles.js.map +1 -0
  203. package/dist/components/timeline/timeline.class.d.ts +59 -0
  204. package/dist/components/timeline/timeline.class.d.ts.map +1 -0
  205. package/dist/components/timeline/timeline.class.js +100 -0
  206. package/dist/components/timeline/timeline.class.js.map +1 -0
  207. package/dist/components/timeline/timeline.d.ts +2 -0
  208. package/dist/components/timeline/timeline.d.ts.map +1 -0
  209. package/dist/components/timeline/timeline.js +5 -0
  210. package/dist/components/timeline/timeline.js.map +1 -0
  211. package/dist/components/timeline/timeline.styles.d.ts +2 -0
  212. package/dist/components/timeline/timeline.styles.d.ts.map +1 -0
  213. package/dist/components/timeline/timeline.styles.js +52 -0
  214. package/dist/components/timeline/timeline.styles.js.map +1 -0
  215. package/dist/components/toast/toast-item.class.d.ts.map +1 -1
  216. package/dist/components/toast/toast-item.class.js +1 -3
  217. package/dist/components/toast/toast-item.class.js.map +1 -1
  218. package/dist/components/tool-param-form/tool-param-form.class.d.ts.map +1 -1
  219. package/dist/components/tool-param-form/tool-param-form.class.js +0 -1
  220. package/dist/components/tool-param-form/tool-param-form.class.js.map +1 -1
  221. package/dist/components/tour/tour.class.d.ts +250 -0
  222. package/dist/components/tour/tour.class.d.ts.map +1 -0
  223. package/dist/components/tour/tour.class.js +530 -0
  224. package/dist/components/tour/tour.class.js.map +1 -0
  225. package/dist/components/tour/tour.d.ts +2 -0
  226. package/dist/components/tour/tour.d.ts.map +1 -0
  227. package/dist/components/tour/tour.js +5 -0
  228. package/dist/components/tour/tour.js.map +1 -0
  229. package/dist/components/tour/tour.styles.d.ts +2 -0
  230. package/dist/components/tour/tour.styles.d.ts.map +1 -0
  231. package/dist/components/tour/tour.styles.js +165 -0
  232. package/dist/components/tour/tour.styles.js.map +1 -0
  233. package/dist/components/virtual-list/virtual-list.class.d.ts.map +1 -1
  234. package/dist/components/virtual-list/virtual-list.class.js +1 -3
  235. package/dist/components/virtual-list/virtual-list.class.js.map +1 -1
  236. package/dist/components/word-cloud/word-cloud.class.d.ts.map +1 -1
  237. package/dist/components/word-cloud/word-cloud.class.js +1 -8
  238. package/dist/components/word-cloud/word-cloud.class.js.map +1 -1
  239. package/dist/components/zoomable-frame/zoomable-frame.class.d.ts +15 -0
  240. package/dist/components/zoomable-frame/zoomable-frame.class.d.ts.map +1 -1
  241. package/dist/components/zoomable-frame/zoomable-frame.class.js +18 -0
  242. package/dist/components/zoomable-frame/zoomable-frame.class.js.map +1 -1
  243. package/dist/internal/a11y.d.ts +4 -0
  244. package/dist/internal/a11y.d.ts.map +1 -1
  245. package/dist/internal/a11y.js +17 -0
  246. package/dist/internal/a11y.js.map +1 -1
  247. package/dist/internal/canvas.d.ts +8 -0
  248. package/dist/internal/canvas.d.ts.map +1 -0
  249. package/dist/internal/canvas.js +14 -0
  250. package/dist/internal/canvas.js.map +1 -0
  251. package/dist/internal/localization.d.ts +1 -1
  252. package/dist/internal/localization.d.ts.map +1 -1
  253. package/dist/internal/localization.js +21 -2
  254. package/dist/internal/localization.js.map +1 -1
  255. package/dist/internal/motion.d.ts +5 -0
  256. package/dist/internal/motion.d.ts.map +1 -0
  257. package/dist/internal/motion.js +7 -0
  258. package/dist/internal/motion.js.map +1 -0
  259. package/dist/internal/numbers.d.ts +11 -0
  260. package/dist/internal/numbers.d.ts.map +1 -1
  261. package/dist/internal/numbers.js +21 -0
  262. package/dist/internal/numbers.js.map +1 -1
  263. package/dist/internal/positioner.d.ts +14 -0
  264. package/dist/internal/positioner.d.ts.map +1 -1
  265. package/dist/internal/positioner.js +27 -0
  266. package/dist/internal/positioner.js.map +1 -1
  267. package/dist/internal/root-registration-allowlist.d.ts +1 -1
  268. package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
  269. package/dist/internal/root-registration-allowlist.js +12 -0
  270. package/dist/internal/root-registration-allowlist.js.map +1 -1
  271. package/dist/internal/rtl.d.ts +0 -11
  272. package/dist/internal/rtl.d.ts.map +1 -1
  273. package/dist/internal/rtl.js +0 -13
  274. package/dist/internal/rtl.js.map +1 -1
  275. package/dist/internal/safe-css.d.ts +15 -0
  276. package/dist/internal/safe-css.d.ts.map +1 -0
  277. package/dist/internal/safe-css.js +25 -0
  278. package/dist/internal/safe-css.js.map +1 -0
  279. package/dist/internal/strip-host-title.d.ts +24 -0
  280. package/dist/internal/strip-host-title.d.ts.map +1 -0
  281. package/dist/internal/strip-host-title.js +46 -0
  282. package/dist/internal/strip-host-title.js.map +1 -0
  283. package/dist/internal/tokens.styles.d.ts.map +1 -1
  284. package/dist/internal/tokens.styles.js +4 -0
  285. package/dist/internal/tokens.styles.js.map +1 -1
  286. package/dist/lyra.d.ts +37 -0
  287. package/dist/lyra.d.ts.map +1 -1
  288. package/dist/lyra.js +24 -0
  289. package/dist/lyra.js.map +1 -1
  290. package/llms-full.txt +161 -5
  291. package/llms.txt +5 -2
  292. package/package.json +43 -6
  293. package/vscode-css-data.json +733 -0
  294. package/vscode-html-data.json +10616 -0
  295. package/web-types.json +12206 -0
@@ -0,0 +1,110 @@
1
+ import { type TemplateResult } from 'lit';
2
+ import { LyraElement } from '../../internal/lyra-element.js';
3
+ import type { AvatarSize, AvatarShape, AvatarTone, LyraAvatar } from '../avatar/avatar.class.js';
4
+ export interface AvatarGroupOverflowClickDetail {
5
+ hiddenCount: number;
6
+ hiddenAvatars: LyraAvatar[];
7
+ }
8
+ export interface LyraAvatarGroupEventMap {
9
+ 'lyra-overflow-click': CustomEvent<AvatarGroupOverflowClickDetail>;
10
+ }
11
+ /**
12
+ * `<lyra-avatar-group>` — stacks a set of slotted `<lyra-avatar>` children into a single
13
+ * overlapping row (negative-margin overlap, ring border so each circle reads as distinct) and,
14
+ * past a configurable `max` count, collapses the excess into a "+N" overflow badge. First-party
15
+ * invention (no Web Awesome equivalent), composed over `<lyra-avatar>` rather than reimplementing
16
+ * it — plain light-DOM slotted content is the group's items, the same shape `<lyra-split>`'s
17
+ * panels / `<lyra-source-list>`'s cards / `<lyra-chip-group>`'s chips already use, not a
18
+ * `.items` array prop.
19
+ *
20
+ * **`size`/`shape`/`tone` do not cascade onto slotted avatars.** They drive only this
21
+ * component's own ring, overlap amount, and the overflow badge's rendering — they cannot resize
22
+ * or reshape the `<lyra-avatar>` children themselves, since each avatar's own `--lyra-avatar-size`
23
+ * lives inside *its own* shadow-scoped `:host` block and unconditionally overrides anything of
24
+ * the same custom-property name inherited from an ancestor. This mirrors every other group
25
+ * component in this library (`button-group`, `checkbox-group`, `radio`): none of them cascade a
26
+ * size/variant prop onto their children either. The consumer is responsible for setting a
27
+ * matching `size`/`shape` on both the group and each `<lyra-avatar>` child for a visually coherent
28
+ * stack.
29
+ *
30
+ * **Deliberate divergence from `<lyra-chip-group>`'s overflow pattern.** Chip-group's overflow
31
+ * indicator is a disclosure toggle that reveals the excess children in place (`aria-expanded`,
32
+ * a "Show less" relabel). This component's overflow badge does not do that — unstacking N more
33
+ * circles back into the row would defeat the entire point of a compact identity stack. Instead,
34
+ * `lyra-overflow-click` is a pure notification hook: the component keeps rendering the same
35
+ * collapsed stack + badge regardless of whether anyone listens, and a consumer typically wires
36
+ * the event to open their own popover/dialog/tooltip listing the hidden members (out of scope for
37
+ * this component — no popover dependency is introduced here). There is no `expanded` state, no
38
+ * `aria-expanded`, and the badge never changes its own text/label on click.
39
+ *
40
+ * **No roving-tabindex / arrow-key composite-widget behavior applies here, and this is
41
+ * intentional, not an oversight.** Avatars are non-interactive per `<lyra-avatar>`'s own
42
+ * established contract (purely presentational, no built-in interactivity), so this is not a
43
+ * listbox/toolbar/grid needing `ArrowLeft`/`ArrowRight` roving focus — the overflow badge is the
44
+ * only interactive element, and as a native `<button>` it's automatically part of the normal Tab
45
+ * sequence with no custom keyboard handling required.
46
+ *
47
+ * @customElement lyra-avatar-group
48
+ * @slot - `<lyra-avatar>` elements (or any content, though the avatar pairing is the intended
49
+ * usage).
50
+ * @event lyra-overflow-click - The overflow badge was activated (click, or Enter/Space while
51
+ * focused — native `<button>` behavior). `detail: { hiddenCount, hiddenAvatars }` where
52
+ * `hiddenAvatars` is the current set of children the component has hidden past `max`.
53
+ * Non-cancelable — informational hook, no default action to veto.
54
+ * @csspart base - The outer inline-flex container (holds the slot and the overflow badge).
55
+ * @csspart overflow-badge - The "+N" button. Only rendered while `max` is actively causing an
56
+ * overflow.
57
+ * @cssprop [--lyra-avatar-group-avatar-size=var(--lyra-size-2rem)] - Sizes the overflow badge to
58
+ * match the slotted avatars. Does not resize the avatars themselves (see class doc) — set a
59
+ * matching `size` on each `<lyra-avatar>` child directly for that.
60
+ * @cssprop [--lyra-avatar-group-overlap=var(--lyra-size-neg-6px)] - Horizontal overlap between
61
+ * consecutive avatars (a logical `margin-inline-start`, so it auto-mirrors under `dir="rtl"`).
62
+ * Setting this to `0` or a positive length is a supported escape hatch that turns the stack into
63
+ * normal, non-overlapping spacing.
64
+ * @cssprop [--lyra-avatar-group-ring-color=var(--lyra-color-surface)] - The cutout-style ring
65
+ * drawn around every avatar and the overflow badge.
66
+ * @cssprop [--lyra-avatar-group-ring-width=var(--lyra-border-width-medium)] - Ring thickness.
67
+ * @cssprop [--lyra-avatar-group-badge-bg=var(--lyra-color-border)] - Overflow badge background.
68
+ * Tone-driven; see `tone`.
69
+ * @cssprop [--lyra-avatar-group-badge-color=var(--lyra-color-text)] - Overflow badge text color.
70
+ * Tone-driven; see `tone`.
71
+ */
72
+ export declare class LyraAvatarGroup extends LyraElement<LyraAvatarGroupEventMap> {
73
+ static styles: import("lit").CSSResultGroup[];
74
+ /** Maximum number of assigned children shown before the rest collapse behind a "+N" badge.
75
+ * Flattened slot-forwarded children count the same as direct light-DOM children. Unset (the
76
+ * default) means no limit — every child is always shown. */
77
+ max?: number;
78
+ /** Visual size, reused verbatim from `<lyra-avatar>`'s own `AvatarSize` union. Drives the
79
+ * overflow badge's size and the overlap amount — does not resize slotted avatars (see class
80
+ * doc). */
81
+ size: AvatarSize;
82
+ /** `'circle'` (the default) or `'square'`, reused verbatim from `<lyra-avatar>`'s own
83
+ * `AvatarShape` union. Drives the overflow badge's shape — does not reshape slotted avatars
84
+ * (see class doc); each avatar's own ring already adapts to that avatar's own `shape`
85
+ * attribute independently. */
86
+ shape: AvatarShape;
87
+ /** Recolors the overflow badge, reused verbatim from `<lyra-avatar>`'s own `AvatarTone` union.
88
+ * `'neutral'` (the default) reads as a plain, unaccented badge. */
89
+ tone: AvatarTone;
90
+ /** The group's own accessible name (`role="group"`'s `aria-label`). A host-level `aria-label`
91
+ * wins if both are set. Unset (the default) renders no `aria-label` at all — a screen reader
92
+ * announces "group" with no name, then reads each avatar's own accessible name in turn. */
93
+ label: string;
94
+ private childCount;
95
+ protected willUpdate(): void;
96
+ firstUpdated(): void;
97
+ protected updated(): void;
98
+ private get hasOverflow();
99
+ private get hiddenCount();
100
+ private syncChildVisibility;
101
+ private onSlotChange;
102
+ private onOverflowClick;
103
+ render(): TemplateResult;
104
+ }
105
+ declare global {
106
+ interface HTMLElementTagNameMap {
107
+ 'lyra-avatar-group': LyraAvatarGroup;
108
+ }
109
+ }
110
+ //# sourceMappingURL=avatar-group.class.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar-group.class.d.ts","sourceRoot":"","sources":["../../../src/components/avatar-group/avatar-group.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAK7D,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEjG,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,UAAU,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,qBAAqB,EAAE,WAAW,CAAC,8BAA8B,CAAC,CAAC;CACpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,qBAAa,eAAgB,SAAQ,WAAW,CAAC,uBAAuB,CAAC;IACvE,MAAM,CAAC,MAAM,iCAAgC;IAE7C;;iEAE6D;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEzC;;gBAEY;IACiB,IAAI,EAAE,UAAU,CAAQ;IAErD;;;mCAG+B;IACF,KAAK,EAAE,WAAW,CAAY;IAE3D;wEACoE;IACvC,IAAI,EAAE,UAAU,CAAa;IAE1D;;gGAE4F;IAChF,KAAK,SAAM;IAId,OAAO,CAAC,UAAU,CAAK;IAEhC,SAAS,CAAC,UAAU,IAAI,IAAI,CAI3B;IAED,YAAY,IAAI,IAAI,CAOnB;IAED,SAAS,CAAC,OAAO,IAAI,IAAI,CAExB;IAED,OAAO,KAAK,WAAW,GAGtB;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,eAAe,CAOrB;IAEF,MAAM,IAAI,cAAc,CAuBvB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,eAAe,CAAC;KACtC;CACF"}
@@ -0,0 +1,182 @@
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 { styleMap } from 'lit/directives/style-map.js';
10
+ import { LyraElement } from '../../internal/lyra-element.js';
11
+ import { styles } from './avatar-group.styles.js';
12
+ /**
13
+ * `<lyra-avatar-group>` — stacks a set of slotted `<lyra-avatar>` children into a single
14
+ * overlapping row (negative-margin overlap, ring border so each circle reads as distinct) and,
15
+ * past a configurable `max` count, collapses the excess into a "+N" overflow badge. First-party
16
+ * invention (no Web Awesome equivalent), composed over `<lyra-avatar>` rather than reimplementing
17
+ * it — plain light-DOM slotted content is the group's items, the same shape `<lyra-split>`'s
18
+ * panels / `<lyra-source-list>`'s cards / `<lyra-chip-group>`'s chips already use, not a
19
+ * `.items` array prop.
20
+ *
21
+ * **`size`/`shape`/`tone` do not cascade onto slotted avatars.** They drive only this
22
+ * component's own ring, overlap amount, and the overflow badge's rendering — they cannot resize
23
+ * or reshape the `<lyra-avatar>` children themselves, since each avatar's own `--lyra-avatar-size`
24
+ * lives inside *its own* shadow-scoped `:host` block and unconditionally overrides anything of
25
+ * the same custom-property name inherited from an ancestor. This mirrors every other group
26
+ * component in this library (`button-group`, `checkbox-group`, `radio`): none of them cascade a
27
+ * size/variant prop onto their children either. The consumer is responsible for setting a
28
+ * matching `size`/`shape` on both the group and each `<lyra-avatar>` child for a visually coherent
29
+ * stack.
30
+ *
31
+ * **Deliberate divergence from `<lyra-chip-group>`'s overflow pattern.** Chip-group's overflow
32
+ * indicator is a disclosure toggle that reveals the excess children in place (`aria-expanded`,
33
+ * a "Show less" relabel). This component's overflow badge does not do that — unstacking N more
34
+ * circles back into the row would defeat the entire point of a compact identity stack. Instead,
35
+ * `lyra-overflow-click` is a pure notification hook: the component keeps rendering the same
36
+ * collapsed stack + badge regardless of whether anyone listens, and a consumer typically wires
37
+ * the event to open their own popover/dialog/tooltip listing the hidden members (out of scope for
38
+ * this component — no popover dependency is introduced here). There is no `expanded` state, no
39
+ * `aria-expanded`, and the badge never changes its own text/label on click.
40
+ *
41
+ * **No roving-tabindex / arrow-key composite-widget behavior applies here, and this is
42
+ * intentional, not an oversight.** Avatars are non-interactive per `<lyra-avatar>`'s own
43
+ * established contract (purely presentational, no built-in interactivity), so this is not a
44
+ * listbox/toolbar/grid needing `ArrowLeft`/`ArrowRight` roving focus — the overflow badge is the
45
+ * only interactive element, and as a native `<button>` it's automatically part of the normal Tab
46
+ * sequence with no custom keyboard handling required.
47
+ *
48
+ * @customElement lyra-avatar-group
49
+ * @slot - `<lyra-avatar>` elements (or any content, though the avatar pairing is the intended
50
+ * usage).
51
+ * @event lyra-overflow-click - The overflow badge was activated (click, or Enter/Space while
52
+ * focused — native `<button>` behavior). `detail: { hiddenCount, hiddenAvatars }` where
53
+ * `hiddenAvatars` is the current set of children the component has hidden past `max`.
54
+ * Non-cancelable — informational hook, no default action to veto.
55
+ * @csspart base - The outer inline-flex container (holds the slot and the overflow badge).
56
+ * @csspart overflow-badge - The "+N" button. Only rendered while `max` is actively causing an
57
+ * overflow.
58
+ * @cssprop [--lyra-avatar-group-avatar-size=var(--lyra-size-2rem)] - Sizes the overflow badge to
59
+ * match the slotted avatars. Does not resize the avatars themselves (see class doc) — set a
60
+ * matching `size` on each `<lyra-avatar>` child directly for that.
61
+ * @cssprop [--lyra-avatar-group-overlap=var(--lyra-size-neg-6px)] - Horizontal overlap between
62
+ * consecutive avatars (a logical `margin-inline-start`, so it auto-mirrors under `dir="rtl"`).
63
+ * Setting this to `0` or a positive length is a supported escape hatch that turns the stack into
64
+ * normal, non-overlapping spacing.
65
+ * @cssprop [--lyra-avatar-group-ring-color=var(--lyra-color-surface)] - The cutout-style ring
66
+ * drawn around every avatar and the overflow badge.
67
+ * @cssprop [--lyra-avatar-group-ring-width=var(--lyra-border-width-medium)] - Ring thickness.
68
+ * @cssprop [--lyra-avatar-group-badge-bg=var(--lyra-color-border)] - Overflow badge background.
69
+ * Tone-driven; see `tone`.
70
+ * @cssprop [--lyra-avatar-group-badge-color=var(--lyra-color-text)] - Overflow badge text color.
71
+ * Tone-driven; see `tone`.
72
+ */
73
+ export class LyraAvatarGroup extends LyraElement {
74
+ constructor() {
75
+ super(...arguments);
76
+ /** Visual size, reused verbatim from `<lyra-avatar>`'s own `AvatarSize` union. Drives the
77
+ * overflow badge's size and the overlap amount — does not resize slotted avatars (see class
78
+ * doc). */
79
+ this.size = 'md';
80
+ /** `'circle'` (the default) or `'square'`, reused verbatim from `<lyra-avatar>`'s own
81
+ * `AvatarShape` union. Drives the overflow badge's shape — does not reshape slotted avatars
82
+ * (see class doc); each avatar's own ring already adapts to that avatar's own `shape`
83
+ * attribute independently. */
84
+ this.shape = 'circle';
85
+ /** Recolors the overflow badge, reused verbatim from `<lyra-avatar>`'s own `AvatarTone` union.
86
+ * `'neutral'` (the default) reads as a plain, unaccented badge. */
87
+ this.tone = 'neutral';
88
+ /** The group's own accessible name (`role="group"`'s `aria-label`). A host-level `aria-label`
89
+ * wins if both are set. Unset (the default) renders no `aria-label` at all — a screen reader
90
+ * announces "group" with no name, then reads each avatar's own accessible name in turn. */
91
+ this.label = '';
92
+ // Tracks the default slot's assigned-element count, the same connectedCallback/willUpdate +
93
+ // slotchange convention `<lyra-chip-group>`'s `childCount` already establishes.
94
+ this.childCount = 0;
95
+ this.onSlotChange = (e) => {
96
+ this.childCount = e.target.assignedElements({ flatten: true }).length;
97
+ };
98
+ this.onOverflowClick = () => {
99
+ const slot = this.shadowRoot.querySelector('slot');
100
+ const hiddenAvatars = slot.assignedElements({ flatten: true }).slice(this.max);
101
+ this.emit('lyra-overflow-click', {
102
+ hiddenCount: hiddenAvatars.length,
103
+ hiddenAvatars,
104
+ });
105
+ };
106
+ }
107
+ static { this.styles = [LyraElement.styles, styles]; }
108
+ willUpdate() {
109
+ if (!this.hasUpdated) {
110
+ this.childCount = this.children.length;
111
+ }
112
+ }
113
+ firstUpdated() {
114
+ // Fallback reconciliation for slot-forwarding / engines that don't fire `slotchange` for
115
+ // content present at parse time — same idiom as `<lyra-chip-group>`'s identical
116
+ // `firstUpdated`. `updated()` (below) always runs right after this and recomputes visibility
117
+ // from this same corrected count.
118
+ const slot = this.shadowRoot.querySelector('slot');
119
+ this.childCount = slot.assignedElements({ flatten: true }).length;
120
+ }
121
+ updated() {
122
+ this.syncChildVisibility();
123
+ }
124
+ get hasOverflow() {
125
+ const max = this.max;
126
+ return max != null && Number.isFinite(max) && max >= 0 && this.childCount > max;
127
+ }
128
+ get hiddenCount() {
129
+ return this.hasOverflow ? this.childCount - this.max : 0;
130
+ }
131
+ syncChildVisibility() {
132
+ const overflowing = this.hasOverflow;
133
+ const max = this.max;
134
+ const slot = this.shadowRoot?.querySelector('slot');
135
+ const assignedChildren = slot?.assignedElements({ flatten: true }) ?? Array.from(this.children);
136
+ assignedChildren.forEach((child, i) => {
137
+ child.hidden = overflowing && i >= max;
138
+ });
139
+ }
140
+ render() {
141
+ const overflowing = this.hasOverflow;
142
+ const hiddenCount = this.hiddenCount;
143
+ // The badge is the first *visible* element in the row only when every avatar is hidden
144
+ // (max <= 0) — there's no selector that can express "first visible thing regardless of DOM
145
+ // position", so the margin override is computed here instead of in CSS.
146
+ const badgeIsFirstVisible = overflowing && hiddenCount === this.childCount;
147
+ const accessibleLabel = this.label || this.getAttribute('aria-label') || nothing;
148
+ return html `
149
+ <div part="base" role="group" aria-label=${accessibleLabel}>
150
+ <slot @slotchange=${this.onSlotChange}></slot>
151
+ ${overflowing
152
+ ? html `<button
153
+ part="overflow-badge"
154
+ type="button"
155
+ style=${styleMap({ marginInlineStart: badgeIsFirstVisible ? '0' : undefined })}
156
+ aria-label=${this.localize('showMoreCount', undefined, { count: hiddenCount })}
157
+ @click=${this.onOverflowClick}
158
+ >${this.localize('showMoreCollapsed', undefined, { count: hiddenCount })}</button>`
159
+ : nothing}
160
+ </div>
161
+ `;
162
+ }
163
+ }
164
+ __decorate([
165
+ property({ type: Number })
166
+ ], LyraAvatarGroup.prototype, "max", void 0);
167
+ __decorate([
168
+ property({ reflect: true })
169
+ ], LyraAvatarGroup.prototype, "size", void 0);
170
+ __decorate([
171
+ property({ reflect: true })
172
+ ], LyraAvatarGroup.prototype, "shape", void 0);
173
+ __decorate([
174
+ property({ reflect: true })
175
+ ], LyraAvatarGroup.prototype, "tone", void 0);
176
+ __decorate([
177
+ property()
178
+ ], LyraAvatarGroup.prototype, "label", void 0);
179
+ __decorate([
180
+ state()
181
+ ], LyraAvatarGroup.prototype, "childCount", void 0);
182
+ //# sourceMappingURL=avatar-group.class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar-group.class.js","sourceRoot":"","sources":["../../../src/components/avatar-group/avatar-group.class.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './avatar-group.class.js';
2
+ //# sourceMappingURL=avatar-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar-group.d.ts","sourceRoot":"","sources":["../../../src/components/avatar-group/avatar-group.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './avatar-group.class.js';
2
+ import { LyraAvatarGroup } from './avatar-group.class.js';
3
+ import { defineElement } from '../../internal/prefix.js';
4
+ defineElement('avatar-group', LyraAvatarGroup);
5
+ //# sourceMappingURL=avatar-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar-group.js","sourceRoot":"","sources":["../../../src/components/avatar-group/avatar-group.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,aAAa,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const styles: import("lit").CSSResult;
2
+ //# sourceMappingURL=avatar-group.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar-group.styles.d.ts","sourceRoot":"","sources":["../../../src/components/avatar-group/avatar-group.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBA6GlB,CAAC"}
@@ -0,0 +1,112 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `
3
+ :host {
4
+ display: inline-flex;
5
+ vertical-align: middle;
6
+ --lyra-avatar-group-avatar-size: var(--lyra-size-2rem);
7
+ --lyra-avatar-group-overlap: var(--lyra-size-neg-6px);
8
+ --lyra-avatar-group-ring-color: var(--lyra-color-surface);
9
+ --lyra-avatar-group-ring-width: var(--lyra-border-width-medium);
10
+ --lyra-avatar-group-badge-bg: var(--lyra-color-border);
11
+ --lyra-avatar-group-badge-color: var(--lyra-color-text);
12
+ }
13
+ :host([size='sm']) {
14
+ --lyra-avatar-group-avatar-size: var(--lyra-size-1-5rem);
15
+ --lyra-avatar-group-overlap: var(--lyra-size-neg-4px);
16
+ }
17
+ :host([size='lg']) {
18
+ --lyra-avatar-group-avatar-size: var(--lyra-size-2-5rem);
19
+ --lyra-avatar-group-overlap: var(--lyra-size-neg-8px);
20
+ }
21
+ :host([tone='brand']) {
22
+ --lyra-avatar-group-badge-bg: var(--lyra-color-brand-quiet);
23
+ --lyra-avatar-group-badge-color: var(--lyra-color-brand);
24
+ }
25
+ :host([tone='success']) {
26
+ --lyra-avatar-group-badge-bg: var(--lyra-color-success-quiet);
27
+ --lyra-avatar-group-badge-color: var(--lyra-color-success);
28
+ }
29
+ :host([tone='warning']) {
30
+ --lyra-avatar-group-badge-bg: var(--lyra-color-warning-quiet);
31
+ --lyra-avatar-group-badge-color: var(--lyra-color-warning);
32
+ }
33
+ :host([tone='danger']) {
34
+ --lyra-avatar-group-badge-bg: var(--lyra-color-danger-quiet);
35
+ --lyra-avatar-group-badge-color: var(--lyra-color-danger);
36
+ }
37
+
38
+ /* Unlike lyra-chip-group's [part='base'], this never wraps -- wrapping an overlapping stack to
39
+ a second line breaks the entire visual, so flex-wrap stays at its nowrap default. */
40
+ [part='base'] {
41
+ display: inline-flex;
42
+ align-items: center;
43
+ min-inline-size: 0;
44
+ }
45
+
46
+ /* Overlap via a logical margin so it auto-mirrors under dir="rtl" with zero JS: the first
47
+ avatar visually anchors at the inline-start edge in either direction, later ones pull toward
48
+ it. Later avatars paint on top of earlier ones for free (non-positioned, non-z-indexed
49
+ elements already paint in flattened-slot order), and the shadow template places <slot> before
50
+ the overflow badge, so the badge continues the same stacking when it renders. This targets
51
+ <lyra-avatar>'s own outer host box (sized by avatar.styles.ts's host display: inline-flex
52
+ rule to exactly match its single [part=base] circle) -- avatar.styles.ts never sets
53
+ box-shadow/border-radius on its own host, so there's no conflict. */
54
+ ::slotted(lyra-avatar) {
55
+ margin-inline-start: var(--lyra-avatar-group-overlap);
56
+ border-radius: var(--lyra-radius-pill);
57
+ box-shadow: 0 0 0 var(--lyra-avatar-group-ring-width) var(--lyra-avatar-group-ring-color);
58
+ }
59
+ ::slotted(lyra-avatar:first-child) {
60
+ margin-inline-start: 0;
61
+ }
62
+ /* Each avatar's own ring adapts to that avatar's own reflected shape attribute -- no
63
+ group-level coordination needed even in a mixed-shape group. */
64
+ ::slotted(lyra-avatar[shape='square']) {
65
+ border-radius: var(--lyra-radius);
66
+ }
67
+
68
+ /* Deliberately its own local badge styling rather than instantiating a real <lyra-avatar> in
69
+ the shadow DOM for this -- keeps the group's rendering self-contained, the same way
70
+ lyra-chip-group's overflow-indicator duplicates rather than nests a real <lyra-chip>. */
71
+ [part='overflow-badge'] {
72
+ display: inline-flex;
73
+ flex: 0 0 auto;
74
+ align-items: center;
75
+ justify-content: center;
76
+ box-sizing: border-box;
77
+ inline-size: var(--lyra-avatar-group-avatar-size);
78
+ block-size: var(--lyra-avatar-group-avatar-size);
79
+ margin-inline-start: var(--lyra-avatar-group-overlap);
80
+ border: none;
81
+ border-radius: var(--lyra-radius-pill);
82
+ box-shadow: 0 0 0 var(--lyra-avatar-group-ring-width) var(--lyra-avatar-group-ring-color);
83
+ background: var(--lyra-avatar-group-badge-bg);
84
+ color: var(--lyra-avatar-group-badge-color);
85
+ font: inherit;
86
+ font-size: var(--lyra-font-size-sm);
87
+ font-weight: var(--lyra-font-weight-semibold);
88
+ line-height: var(--lyra-line-height-snug);
89
+ cursor: pointer;
90
+ -webkit-tap-highlight-color: transparent;
91
+ transition:
92
+ background-color var(--lyra-transition-fast),
93
+ box-shadow var(--lyra-transition-fast);
94
+ }
95
+ :host([shape='square']) [part='overflow-badge'] {
96
+ border-radius: var(--lyra-radius);
97
+ }
98
+ [part='overflow-badge']:hover {
99
+ box-shadow: 0 0 0 var(--lyra-avatar-group-ring-width) var(--lyra-color-brand);
100
+ }
101
+ [part='overflow-badge']:focus-visible {
102
+ outline: var(--lyra-focus-ring-width) solid var(--lyra-focus-ring-color);
103
+ outline-offset: var(--lyra-focus-ring-offset);
104
+ }
105
+
106
+ @media (prefers-reduced-motion: reduce) {
107
+ [part='overflow-badge'] {
108
+ transition: none !important;
109
+ }
110
+ }
111
+ `;
112
+ //# sourceMappingURL=avatar-group.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar-group.styles.js","sourceRoot":"","sources":["../../../src/components/avatar-group/avatar-group.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6GxB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { type TemplateResult } from 'lit';
2
2
  import { LyraElement } from '../../internal/lyra-element.js';
3
3
  export type ButtonVariant = 'neutral' | 'brand' | 'success' | 'warning' | 'danger';
4
- export type ButtonAppearance = 'accent' | 'filled' | 'outlined' | 'plain';
4
+ export type ButtonAppearance = 'accent' | 'filled' | 'outlined' | 'plain' | 'link';
5
5
  export type ButtonSize = 'xs' | 's' | 'm' | 'l' | 'xl';
6
6
  export type ButtonType = 'button' | 'submit' | 'reset';
7
7
  /**
@@ -43,7 +43,10 @@ export declare class LyraButton extends LyraElement {
43
43
  /** `'filled'` (the default) reads `--lyra-button-fill`, which for `variant="neutral"` is the
44
44
  * ambient `--lyra-color-surface` -- matching this component's own container, by design, for a
45
45
  * low-emphasis default. `'accent'` is the loud tier: a solid, high-contrast fill for every
46
- * variant, including `neutral`. */
46
+ * variant, including `neutral`. `'link'` is zero-chrome inline text — no padding, border, or
47
+ * min-height, underlined, colored from `--lyra-button-accent` (the same token `'plain'` uses)
48
+ * and inheriting the surrounding font — for a text link that flows inline in a sentence rather
49
+ * than a button-shaped control. */
47
50
  appearance: ButtonAppearance;
48
51
  size: ButtonSize;
49
52
  /** Forwarded to this component's own submit/reset handling — see the class doc comment above
@@ -1 +1 @@
1
- {"version":3,"file":"button.class.d.ts","sourceRoot":"","sources":["../../../src/components/button/button.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAI7D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AACnF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAC1E,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AACvD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,UAAW,SAAQ,WAAW;IACzC,MAAM,CAAC,MAAM,iCAAgC;IAI7C,MAAM,CAAC,cAAc,UAAQ;IAE7B,cAGC;IAED;mGAC+F;IAClE,OAAO,EAAE,aAAa,CAAa;IAChE;;;wCAGoC;IACP,UAAU,EAAE,gBAAgB,CAAY;IACxC,IAAI,EAAE,UAAU,CAAO;IACpD;0FACsF;IAC1E,IAAI,EAAE,UAAU,CAAY;IACxC;;wFAEoF;IACxC,OAAO,UAAS;IAChB,QAAQ,UAAS;IAE5C,OAAO,CAAC,QAAQ,CAAC,CAAoB;IAEtD,6EAA6E;IACpE,KAAK,IAAI,IAAI,CAErB;IAEQ,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAE3C;IAEQ,IAAI,IAAI,IAAI,CAEpB;IAED,OAAO,CAAC,OAAO,CAMb;IAEF,MAAM,IAAI,cAAc,CAiBvB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
1
+ {"version":3,"file":"button.class.d.ts","sourceRoot":"","sources":["../../../src/components/button/button.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAI7D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AACnF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;AACnF,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AACvD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,UAAW,SAAQ,WAAW;IACzC,MAAM,CAAC,MAAM,iCAAgC;IAI7C,MAAM,CAAC,cAAc,UAAQ;IAE7B,cAGC;IAED;mGAC+F;IAClE,OAAO,EAAE,aAAa,CAAa;IAChE;;;;;;wCAMoC;IACP,UAAU,EAAE,gBAAgB,CAAY;IACxC,IAAI,EAAE,UAAU,CAAO;IACpD;0FACsF;IAC1E,IAAI,EAAE,UAAU,CAAY;IACxC;;wFAEoF;IACxC,OAAO,UAAS;IAChB,QAAQ,UAAS;IAE5C,OAAO,CAAC,QAAQ,CAAC,CAAoB;IAEtD,6EAA6E;IACpE,KAAK,IAAI,IAAI,CAErB;IAEQ,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAE3C;IAEQ,IAAI,IAAI,IAAI,CAEpB;IAED,OAAO,CAAC,OAAO,CAMb;IAEF,MAAM,IAAI,cAAc,CAiBvB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
@@ -52,7 +52,10 @@ export class LyraButton extends LyraElement {
52
52
  /** `'filled'` (the default) reads `--lyra-button-fill`, which for `variant="neutral"` is the
53
53
  * ambient `--lyra-color-surface` -- matching this component's own container, by design, for a
54
54
  * low-emphasis default. `'accent'` is the loud tier: a solid, high-contrast fill for every
55
- * variant, including `neutral`. */
55
+ * variant, including `neutral`. `'link'` is zero-chrome inline text — no padding, border, or
56
+ * min-height, underlined, colored from `--lyra-button-accent` (the same token `'plain'` uses)
57
+ * and inheriting the surrounding font — for a text link that flows inline in a sentence rather
58
+ * than a button-shaped control. */
56
59
  this.appearance = 'filled';
57
60
  this.size = 'm';
58
61
  /** Forwarded to this component's own submit/reset handling — see the class doc comment above
@@ -1 +1 @@
1
- {"version":3,"file":"button.class.js","sourceRoot":"","sources":["../../../src/components/button/button.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,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAO5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,UAAW,SAAQ,WAAW;aAClC,WAAM,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,AAA/B,CAAgC;IAC7C,uFAAuF;IACvF,wFAAwF;IACxF,+BAA+B;aACxB,mBAAc,GAAG,IAAI,AAAP,CAAQ;IAE7B;QACE,KAAK,EAAE,CAAC;QAIV;uGAC+F;QAClE,YAAO,GAAkB,SAAS,CAAC;QAChE;;;4CAGoC;QACP,eAAU,GAAqB,QAAQ,CAAC;QACxC,SAAI,GAAe,GAAG,CAAC;QACpD;8FACsF;QAC1E,SAAI,GAAe,QAAQ,CAAC;QACxC;;4FAEoF;QACxC,YAAO,GAAG,KAAK,CAAC;QAChB,aAAQ,GAAG,KAAK,CAAC;QAiBrD,YAAO,GAAG,GAAS,EAAE;YAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;YACxC,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;YAChC,CAAC;QACH,CAAC,CAAC;QA1CA,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAsBD,6EAA6E;IACpE,KAAK;QACZ,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IAEQ,KAAK,CAAC,OAAsB;QACnC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAEQ,IAAI;QACX,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAUD,MAAM;QACJ,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAClD,OAAO,IAAI,CAAA;;;;qBAIM,SAAS,IAAI,OAAO;oBACrB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;oBAC/B,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO;iBAChC,IAAI,CAAC,OAAO;;;;;UAKnB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA,2CAA2C,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE;;KAE9F,CAAC;IACJ,CAAC;CACF;AAzD8B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;2CAAoC;AAKnC;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAAyC;AACxC;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAAwB;AAGxC;IAAX,QAAQ,EAAE;wCAA6B;AAII;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;2CAAiB;AAChB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;4CAAkB;AAEpC;IAAxB,KAAK,CAAC,QAAQ,CAAC;4CAAsC"}
1
+ {"version":3,"file":"button.class.js","sourceRoot":"","sources":["../../../src/components/button/button.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,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAO5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,UAAW,SAAQ,WAAW;aAClC,WAAM,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,AAA/B,CAAgC;IAC7C,uFAAuF;IACvF,wFAAwF;IACxF,+BAA+B;aACxB,mBAAc,GAAG,IAAI,AAAP,CAAQ;IAE7B;QACE,KAAK,EAAE,CAAC;QAIV;uGAC+F;QAClE,YAAO,GAAkB,SAAS,CAAC;QAChE;;;;;;4CAMoC;QACP,eAAU,GAAqB,QAAQ,CAAC;QACxC,SAAI,GAAe,GAAG,CAAC;QACpD;8FACsF;QAC1E,SAAI,GAAe,QAAQ,CAAC;QACxC;;4FAEoF;QACxC,YAAO,GAAG,KAAK,CAAC;QAChB,aAAQ,GAAG,KAAK,CAAC;QAiBrD,YAAO,GAAG,GAAS,EAAE;YAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;YACxC,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;YAChC,CAAC;QACH,CAAC,CAAC;QA7CA,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAyBD,6EAA6E;IACpE,KAAK;QACZ,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IAEQ,KAAK,CAAC,OAAsB;QACnC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAEQ,IAAI;QACX,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAUD,MAAM;QACJ,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAClD,OAAO,IAAI,CAAA;;;;qBAIM,SAAS,IAAI,OAAO;oBACrB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;oBAC/B,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO;iBAChC,IAAI,CAAC,OAAO;;;;;UAKnB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA,2CAA2C,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE;;KAE9F,CAAC;IACJ,CAAC;CACF;AA5D8B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;2CAAoC;AAQnC;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAAyC;AACxC;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAAwB;AAGxC;IAAX,QAAQ,EAAE;wCAA6B;AAII;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;2CAAiB;AAChB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;4CAAkB;AAEpC;IAAxB,KAAK,CAAC,QAAQ,CAAC;4CAAsC"}
@@ -1 +1 @@
1
- {"version":3,"file":"button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/button/button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBA4KlB,CAAC"}
1
+ {"version":3,"file":"button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/button/button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBA4LlB,CAAC"}
@@ -147,6 +147,22 @@ export const styles = css `
147
147
  font-size: var(--lyra-font-size-lg);
148
148
  min-block-size: var(--lyra-button-size-xl);
149
149
  }
150
+ /* A true inline-link appearance: zero chrome (no padding, border, radius, or min-height floor),
151
+ underlined, colored from the same accent token "plain" uses, and inheriting the ambient font
152
+ so it flows within surrounding text. Declared after the size rules so it overrides the
153
+ per-size font-size/padding/min-block-size regardless of the active "size". */
154
+ :host([appearance='link']) [part='base'] {
155
+ inline-size: auto;
156
+ padding: 0;
157
+ border: 0;
158
+ min-block-size: 0;
159
+ border-radius: 0;
160
+ background: transparent;
161
+ color: var(--lyra-button-accent);
162
+ font: inherit;
163
+ text-decoration: underline;
164
+ text-underline-offset: var(--lyra-size-0-15rem);
165
+ }
150
166
  [part='spinner'] {
151
167
  display: inline-flex;
152
168
  position: absolute;
@@ -1 +1 @@
1
- {"version":3,"file":"button.styles.js","sourceRoot":"","sources":["../../../src/components/button/button.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4KxB,CAAC"}
1
+ {"version":3,"file":"button.styles.js","sourceRoot":"","sources":["../../../src/components/button/button.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4LxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.class.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/calendar.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAI7D,MAAM,WAAW,aAAa;IAAG,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CAAE;AAC1I,MAAM,WAAW,oBAAoB;IAAG,kBAAkB,EAAE,WAAW,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,mBAAmB,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;IAAC,kBAAkB,EAAE,WAAW,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAAE;AAkB/M;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,YAAa,SAAQ,WAAW,CAAC,oBAAoB,CAAC;IACjE,MAAM,CAAC,MAAM,iCAAgC;IACb,MAAM,EAAE,aAAa,EAAE,CAAM;IACjD,KAAK,SAAM;IACe,QAAQ,SAA6C;IAC9D,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAW;IACJ,cAAc,SAAK;IACxC,eAAe,SAAM;IACnD,OAAO,CAAC,WAAW,CAAM;IAClC,OAAO,KAAK,SAAS,GAAuJ;IAC5K,wOAAwO;IACxO,OAAO,KAAK,wBAAwB,GAAwI;IAC5K,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,QAAQ;IAChB,MAAM,IAAI,cAAc,CAMvB;CACF;AACD,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,eAAe,EAAE,YAAY,CAAC;KAAE;CAAE"}
1
+ {"version":3,"file":"calendar.class.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/calendar.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAK7D,MAAM,WAAW,aAAa;IAAG,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CAAE;AAC1I,MAAM,WAAW,oBAAoB;IAAG,kBAAkB,EAAE,WAAW,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,mBAAmB,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;IAAC,kBAAkB,EAAE,WAAW,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAAE;AAG/M;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,YAAa,SAAQ,WAAW,CAAC,oBAAoB,CAAC;IACjE,MAAM,CAAC,MAAM,iCAAgC;IACb,MAAM,EAAE,aAAa,EAAE,CAAM;IACjD,KAAK,SAAM;IACe,QAAQ,SAA6C;IAC9D,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAW;IACJ,cAAc,SAAK;IACxC,eAAe,SAAM;IACnD,OAAO,CAAC,WAAW,CAAM;IAClC,OAAO,KAAK,SAAS,GAAuJ;IAC5K,wOAAwO;IACxO,OAAO,KAAK,wBAAwB,GAAwI;IAC5K,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,QAAQ;IAChB,MAAM,IAAI,cAAc,CAMvB;CACF;AACD,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,eAAe,EAAE,YAAY,CAAC;KAAE;CAAE"}
@@ -9,20 +9,9 @@ import { property, state } from 'lit/decorators.js';
9
9
  import { styleMap } from 'lit/directives/style-map.js';
10
10
  import { LyraElement } from '../../internal/lyra-element.js';
11
11
  import { formatISO, monthMatrix, weekdayLabels } from '../date-picker/calendar-core.js';
12
+ import { sanitizeSwatchColor } from '../../internal/safe-css.js';
12
13
  import { styles } from './calendar.styles.js';
13
14
  const monthStart = (date) => new Date(date.getFullYear(), date.getMonth(), 1);
14
- /**
15
- * Matches only actual CSS color syntax: hex (`#fff`/`#ffffff`/`#ffffffff`),
16
- * bare keywords (named colors, `transparent`, `currentColor`), the standard
17
- * color functions, and `var(--custom-property)` references. Anything else --
18
- * notably `url(...)`, which is otherwise valid `background` syntax -- is
19
- * rejected. Guards `CalendarEvent.color`, which is caller-supplied data that
20
- * would otherwise interpolate straight into a `style` declaration.
21
- */
22
- const SAFE_SWATCH_COLOR = /^(?:#[0-9a-fA-F]{3,8}|[a-zA-Z]+|(?:rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch)\([-+0-9.%,/\s]+\)|var\(--[\w-]+\))$/;
23
- function sanitizeSwatchColor(color) {
24
- return SAFE_SWATCH_COLOR.test(color.trim()) ? color : undefined;
25
- }
26
15
  /** `<lyra-calendar>` — responsive month calendar with event markers and agenda mode.
27
16
  *
28
17
  * Month-view event markers are a mouse-only quick-select affordance layered on
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.class.js","sourceRoot":"","sources":["../../../src/components/calendar/calendar.class.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAuB,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,MAAM,UAAU,GAAG,CAAC,IAAU,EAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAE1F;;;;;;;GAOG;AACH,MAAM,iBAAiB,GACrB,mHAAmH,CAAC;AAEtH,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,YAAa,SAAQ,WAAiC;IAAnE;;QAEkC,WAAM,GAAoB,EAAE,CAAC;QACjD,UAAK,GAAG,EAAE,CAAC;QACe,aAAQ,GAAG,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;QAC9D,SAAI,GAAuB,OAAO,CAAC;QACJ,mBAAc,GAAG,CAAC,CAAC;QACxC,oBAAe,GAAG,EAAE,CAAC;QAC3C,gBAAW,GAAG,EAAE,CAAC;IAiBpC,CAAC;aAxBQ,WAAM,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,AAA/B,CAAgC;IAQ7C,IAAY,SAAS,KAAW,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,WAAW,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5K,wOAAwO;IACxO,IAAY,wBAAwB,KAAa,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpK,WAAW,CAAC,KAAa,IAAU,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5N,UAAU,CAAC,IAAY,IAAU,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvH,SAAS,CAAC,IAAY,IAAqB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACvG,KAAK,KAAe,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAC7I,YAAY,CAAC,KAAoB,EAAE,IAAU,IAAU,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW;QAAE,KAAK,GAAG,IAAI,CAAC,kBAAkB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAAM,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY;QAAE,KAAK,GAAG,IAAI,CAAC,kBAAkB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAAM,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;QAAE,KAAK,GAAG,CAAC,CAAC,CAAC;SAAM,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW;QAAE,KAAK,GAAG,CAAC,CAAC;SAAM,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;QAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;;QAAM,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAc,eAAe,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACvsB,QAAQ,KAAe,OAAO,aAAa,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACpH,MAAM;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAAC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAAC,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAAC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAAC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACxR,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QACzF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5I,OAAO,IAAI,CAAA,uBAAuB,KAAK,sEAAsE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,kFAAkF,UAAU,4DAA4D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACxX,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA,sBAAsB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAA,oDAAoD,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA,wBAAwB,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAA,wBAAwB,GAAG,SAAS,CAAC,iDAAiD,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA,+BAA+B,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA,8DAA8D,OAAO,iBAAiB,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,eAAe,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,kBAAkB,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,kBAAkB,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,eAAe,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,KAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,sBAAsB,IAAI,CAAC,OAAO,EAAE,UAAU,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,IAAI,CAAA,4BAA4B,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,KAAY,EAAE,EAAE,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,YAAY,CAAC;IACtiD,CAAC;CACF;AAvBiC;IAA/B,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;4CAA8B;AACjD;IAAX,QAAQ,EAAE;2CAAY;AACe;IAArC,QAAQ,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;8CAAsD;AAC9D;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;0CAAoC;AACJ;IAA3D,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;oDAAoB;AACxC;IAAtC,QAAQ,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;qDAAsB;AAC3C;IAAhB,KAAK,EAAE;iDAA0B"}
1
+ {"version":3,"file":"calendar.class.js","sourceRoot":"","sources":["../../../src/components/calendar/calendar.class.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@ export declare class LyraCalendarViewer extends LyraElement<LyraCalendarViewerEv
34
34
  static styles: import("lit").CSSResultGroup[];
35
35
  /** URL to fetch and parse as an iCalendar document. */
36
36
  src: string;
37
- /** Display name associated with the calendar. Used as the accessible name of `[part='base']` (falling back to a host `aria-label`) alongside `csvViewerLabel`-style sibling document viewers. */
37
+ /** Display name associated with the calendar. Used as the accessible name of `[part='base']`, falling back to a host `aria-label` and then the localized `calendarViewerLabel` default, matching the `csvViewerLabel`-style sibling document viewers. */
38
38
  name: string;
39
39
  /** CSS length that caps the scrollable event body. */
40
40
  maxHeight: string;
@@ -1 +1 @@
1
- {"version":3,"file":"calendar-viewer.class.d.ts","sourceRoot":"","sources":["../../../src/components/calendar-viewer/calendar-viewer.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG9E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAM7D,MAAM,WAAW,mBAAmB;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;CAAE;AAEnJ,MAAM,WAAW,0BAA0B;IAAG,mBAAmB,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAAE;AAQrG;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,kBAAmB,SAAQ,WAAW,CAAC,0BAA0B,CAAC;IAC7E,MAAM,CAAC,MAAM,iCAAwC;IACrD,uDAAuD;IAC3C,GAAG,SAAM;IACrB,iMAAiM;IACrL,IAAI,SAAM;IACtB,sDAAsD;IACf,SAAS,SAAM;IAC7C,OAAO,CAAC,UAAU,CAAwC;IACnE,OAAO,CAAC,UAAU,CAAK;IAEvB,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAE/C;YAEa,IAAI;YAmBJ,KAAK;IAiBnB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IASlB,MAAM,IAAI,cAAc,CAAqP;CAC9Q;AAED,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,sBAAsB,EAAE,kBAAkB,CAAC;KAAE;CAAE"}
1
+ {"version":3,"file":"calendar-viewer.class.d.ts","sourceRoot":"","sources":["../../../src/components/calendar-viewer/calendar-viewer.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG9E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAM7D,MAAM,WAAW,mBAAmB;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;CAAE;AAEnJ,MAAM,WAAW,0BAA0B;IAAG,mBAAmB,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAAE;AAQrG;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,kBAAmB,SAAQ,WAAW,CAAC,0BAA0B,CAAC;IAC7E,MAAM,CAAC,MAAM,iCAAwC;IACrD,uDAAuD;IAC3C,GAAG,SAAM;IACrB,yPAAyP;IAC7O,IAAI,SAAM;IACtB,sDAAsD;IACf,SAAS,SAAM;IAC7C,OAAO,CAAC,UAAU,CAAwC;IACnE,OAAO,CAAC,UAAU,CAAK;IAEvB,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAE/C;YAEa,IAAI;YAmBJ,KAAK;IAiBnB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IASlB,MAAM,IAAI,cAAc,CAAkR;CAC3S;AAED,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,sBAAsB,EAAE,kBAAkB,CAAC;KAAE;CAAE"}