@aceshooting/lyra-ui 5.0.0 → 5.1.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 (636) hide show
  1. package/README.md +30 -12
  2. package/custom-elements.json +2150 -220
  3. package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts +2 -0
  4. package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts.map +1 -1
  5. package/dist/components/agent-tools/activity-feed/activity-feed.class.js +2 -0
  6. package/dist/components/agent-tools/activity-feed/activity-feed.class.js.map +1 -1
  7. package/dist/components/agent-tools/agent-run/agent-run.class.d.ts +1 -0
  8. package/dist/components/agent-tools/agent-run/agent-run.class.d.ts.map +1 -1
  9. package/dist/components/agent-tools/agent-run/agent-run.class.js +1 -0
  10. package/dist/components/agent-tools/agent-run/agent-run.class.js.map +1 -1
  11. package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts +2 -0
  12. package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts.map +1 -1
  13. package/dist/components/agent-tools/compare-panel/compare-panel.class.js +2 -0
  14. package/dist/components/agent-tools/compare-panel/compare-panel.class.js.map +1 -1
  15. package/dist/components/agent-tools/stack-trace/stack-trace.class.d.ts +5 -0
  16. package/dist/components/agent-tools/stack-trace/stack-trace.class.d.ts.map +1 -1
  17. package/dist/components/agent-tools/stack-trace/stack-trace.class.js +5 -0
  18. package/dist/components/agent-tools/stack-trace/stack-trace.class.js.map +1 -1
  19. package/dist/components/agent-tools/terminal/terminal.class.d.ts +3 -0
  20. package/dist/components/agent-tools/terminal/terminal.class.d.ts.map +1 -1
  21. package/dist/components/agent-tools/terminal/terminal.class.js +3 -0
  22. package/dist/components/agent-tools/terminal/terminal.class.js.map +1 -1
  23. package/dist/components/agent-tools/thinking-panel/thinking-panel.class.d.ts +2 -0
  24. package/dist/components/agent-tools/thinking-panel/thinking-panel.class.d.ts.map +1 -1
  25. package/dist/components/agent-tools/thinking-panel/thinking-panel.class.js +2 -0
  26. package/dist/components/agent-tools/thinking-panel/thinking-panel.class.js.map +1 -1
  27. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts +2 -0
  28. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts.map +1 -1
  29. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +2 -0
  30. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js.map +1 -1
  31. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +3 -0
  32. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts.map +1 -1
  33. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +3 -0
  34. package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js.map +1 -1
  35. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts +1 -0
  36. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts.map +1 -1
  37. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js +1 -0
  38. package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js.map +1 -1
  39. package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.d.ts +1 -0
  40. package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.d.ts.map +1 -1
  41. package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js +1 -0
  42. package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js.map +1 -1
  43. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.d.ts +2 -0
  44. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.d.ts.map +1 -1
  45. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +2 -0
  46. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js.map +1 -1
  47. package/dist/components/charts/chart/chart.class.d.ts +15 -0
  48. package/dist/components/charts/chart/chart.class.d.ts.map +1 -1
  49. package/dist/components/charts/chart/chart.class.js +15 -0
  50. package/dist/components/charts/chart/chart.class.js.map +1 -1
  51. package/dist/components/conversation/audio-visualizer/audio-visualizer.class.d.ts +2 -0
  52. package/dist/components/conversation/audio-visualizer/audio-visualizer.class.d.ts.map +1 -1
  53. package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js +2 -0
  54. package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js.map +1 -1
  55. package/dist/components/conversation/branch-picker/branch-picker.class.d.ts +2 -0
  56. package/dist/components/conversation/branch-picker/branch-picker.class.d.ts.map +1 -1
  57. package/dist/components/conversation/branch-picker/branch-picker.class.js +2 -0
  58. package/dist/components/conversation/branch-picker/branch-picker.class.js.map +1 -1
  59. package/dist/components/conversation/chat-message/chat-message.class.d.ts +5 -1
  60. package/dist/components/conversation/chat-message/chat-message.class.d.ts.map +1 -1
  61. package/dist/components/conversation/chat-message/chat-message.class.js +5 -1
  62. package/dist/components/conversation/chat-message/chat-message.class.js.map +1 -1
  63. package/dist/components/conversation/chat-message/chat-message.styles.d.ts.map +1 -1
  64. package/dist/components/conversation/chat-message/chat-message.styles.js +15 -2
  65. package/dist/components/conversation/chat-message/chat-message.styles.js.map +1 -1
  66. package/dist/components/conversation/code-block/code-block.class.d.ts +4 -0
  67. package/dist/components/conversation/code-block/code-block.class.d.ts.map +1 -1
  68. package/dist/components/conversation/code-block/code-block.class.js +4 -0
  69. package/dist/components/conversation/code-block/code-block.class.js.map +1 -1
  70. package/dist/components/conversation/conversation-item/conversation-item.class.d.ts +2 -0
  71. package/dist/components/conversation/conversation-item/conversation-item.class.d.ts.map +1 -1
  72. package/dist/components/conversation/conversation-item/conversation-item.class.js +2 -0
  73. package/dist/components/conversation/conversation-item/conversation-item.class.js.map +1 -1
  74. package/dist/components/conversation/markdown/markdown.class.d.ts +2 -0
  75. package/dist/components/conversation/markdown/markdown.class.d.ts.map +1 -1
  76. package/dist/components/conversation/markdown/markdown.class.js +2 -0
  77. package/dist/components/conversation/markdown/markdown.class.js.map +1 -1
  78. package/dist/components/conversation/push-to-talk/push-to-talk.class.d.ts +2 -0
  79. package/dist/components/conversation/push-to-talk/push-to-talk.class.d.ts.map +1 -1
  80. package/dist/components/conversation/push-to-talk/push-to-talk.class.js +2 -0
  81. package/dist/components/conversation/push-to-talk/push-to-talk.class.js.map +1 -1
  82. package/dist/components/conversation/stream-status/stream-status.class.d.ts +5 -0
  83. package/dist/components/conversation/stream-status/stream-status.class.d.ts.map +1 -1
  84. package/dist/components/conversation/stream-status/stream-status.class.js +5 -0
  85. package/dist/components/conversation/stream-status/stream-status.class.js.map +1 -1
  86. package/dist/components/conversation/streaming-text/streaming-text.class.d.ts +2 -0
  87. package/dist/components/conversation/streaming-text/streaming-text.class.d.ts.map +1 -1
  88. package/dist/components/conversation/streaming-text/streaming-text.class.js +2 -0
  89. package/dist/components/conversation/streaming-text/streaming-text.class.js.map +1 -1
  90. package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts +1 -0
  91. package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts.map +1 -1
  92. package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -0
  93. package/dist/components/conversation/transcript-feed/transcript-feed.class.js.map +1 -1
  94. package/dist/components/data/calendar/calendar.class.d.ts +6 -0
  95. package/dist/components/data/calendar/calendar.class.d.ts.map +1 -1
  96. package/dist/components/data/calendar/calendar.class.js +6 -0
  97. package/dist/components/data/calendar/calendar.class.js.map +1 -1
  98. package/dist/components/data/context-meter/context-meter.class.d.ts +1 -0
  99. package/dist/components/data/context-meter/context-meter.class.d.ts.map +1 -1
  100. package/dist/components/data/context-meter/context-meter.class.js +1 -0
  101. package/dist/components/data/context-meter/context-meter.class.js.map +1 -1
  102. package/dist/components/data/data-grid/data-grid.class.d.ts +1 -0
  103. package/dist/components/data/data-grid/data-grid.class.d.ts.map +1 -1
  104. package/dist/components/data/data-grid/data-grid.class.js +1 -0
  105. package/dist/components/data/data-grid/data-grid.class.js.map +1 -1
  106. package/dist/components/data/flow-canvas/flow-canvas.class.d.ts +3 -1
  107. package/dist/components/data/flow-canvas/flow-canvas.class.d.ts.map +1 -1
  108. package/dist/components/data/flow-canvas/flow-canvas.class.js +3 -1
  109. package/dist/components/data/flow-canvas/flow-canvas.class.js.map +1 -1
  110. package/dist/components/data/flow-minimap/flow-minimap.class.d.ts +2 -2
  111. package/dist/components/data/flow-minimap/flow-minimap.class.js +2 -2
  112. package/dist/components/data/flow-node/flow-node.class.d.ts +1 -1
  113. package/dist/components/data/flow-node/flow-node.class.js +1 -1
  114. package/dist/components/data/heatmap/heatmap.class.d.ts +51 -2
  115. package/dist/components/data/heatmap/heatmap.class.d.ts.map +1 -1
  116. package/dist/components/data/heatmap/heatmap.class.js +42 -6
  117. package/dist/components/data/heatmap/heatmap.class.js.map +1 -1
  118. package/dist/components/data/heatmap/heatmap.styles.d.ts.map +1 -1
  119. package/dist/components/data/heatmap/heatmap.styles.js +19 -0
  120. package/dist/components/data/heatmap/heatmap.styles.js.map +1 -1
  121. package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +20 -0
  122. package/dist/components/data/sequence-strip/sequence-strip.class.d.ts.map +1 -1
  123. package/dist/components/data/sequence-strip/sequence-strip.class.js +35 -0
  124. package/dist/components/data/sequence-strip/sequence-strip.class.js.map +1 -1
  125. package/dist/components/data/sequence-strip/sequence-strip.styles.d.ts.map +1 -1
  126. package/dist/components/data/sequence-strip/sequence-strip.styles.js +29 -0
  127. package/dist/components/data/sequence-strip/sequence-strip.styles.js.map +1 -1
  128. package/dist/components/data/table/table.class.d.ts +11 -0
  129. package/dist/components/data/table/table.class.d.ts.map +1 -1
  130. package/dist/components/data/table/table.class.js +11 -0
  131. package/dist/components/data/table/table.class.js.map +1 -1
  132. package/dist/components/data/timeline/timeline-item.class.d.ts +17 -0
  133. package/dist/components/data/timeline/timeline-item.class.d.ts.map +1 -1
  134. package/dist/components/data/timeline/timeline-item.class.js +17 -0
  135. package/dist/components/data/timeline/timeline-item.class.js.map +1 -1
  136. package/dist/components/data/timeline/timeline.styles.d.ts.map +1 -1
  137. package/dist/components/data/timeline/timeline.styles.js +6 -3
  138. package/dist/components/data/timeline/timeline.styles.js.map +1 -1
  139. package/dist/components/data/tree/tree-node.class.d.ts +3 -0
  140. package/dist/components/data/tree/tree-node.class.d.ts.map +1 -1
  141. package/dist/components/data/tree/tree-node.class.js +3 -0
  142. package/dist/components/data/tree/tree-node.class.js.map +1 -1
  143. package/dist/components/forms/button/button.class.d.ts +24 -0
  144. package/dist/components/forms/button/button.class.d.ts.map +1 -1
  145. package/dist/components/forms/button/button.class.js +24 -0
  146. package/dist/components/forms/button/button.class.js.map +1 -1
  147. package/dist/components/forms/code-editor/code-editor.class.d.ts +28 -12
  148. package/dist/components/forms/code-editor/code-editor.class.d.ts.map +1 -1
  149. package/dist/components/forms/code-editor/code-editor.class.js +44 -14
  150. package/dist/components/forms/code-editor/code-editor.class.js.map +1 -1
  151. package/dist/components/forms/code-editor/code-editor.styles.d.ts.map +1 -1
  152. package/dist/components/forms/code-editor/code-editor.styles.js +4 -0
  153. package/dist/components/forms/code-editor/code-editor.styles.js.map +1 -1
  154. package/dist/components/forms/combobox/combobox.class.d.ts +10 -0
  155. package/dist/components/forms/combobox/combobox.class.d.ts.map +1 -1
  156. package/dist/components/forms/combobox/combobox.class.js +16 -0
  157. package/dist/components/forms/combobox/combobox.class.js.map +1 -1
  158. package/dist/components/forms/combobox/option.class.d.ts +3 -3
  159. package/dist/components/forms/combobox/option.class.d.ts.map +1 -1
  160. package/dist/components/forms/combobox/option.class.js +9 -0
  161. package/dist/components/forms/combobox/option.class.js.map +1 -1
  162. package/dist/components/forms/date-picker/date-input.class.d.ts +3 -0
  163. package/dist/components/forms/date-picker/date-input.class.d.ts.map +1 -1
  164. package/dist/components/forms/date-picker/date-input.class.js +3 -0
  165. package/dist/components/forms/date-picker/date-input.class.js.map +1 -1
  166. package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +37 -2
  167. package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts.map +1 -1
  168. package/dist/components/forms/emoji-picker/emoji-picker.class.js +113 -10
  169. package/dist/components/forms/emoji-picker/emoji-picker.class.js.map +1 -1
  170. package/dist/components/forms/emoji-picker/emoji-picker.styles.d.ts.map +1 -1
  171. package/dist/components/forms/emoji-picker/emoji-picker.styles.js +30 -0
  172. package/dist/components/forms/emoji-picker/emoji-picker.styles.js.map +1 -1
  173. package/dist/components/forms/icon-button/icon-button.class.d.ts +4 -0
  174. package/dist/components/forms/icon-button/icon-button.class.d.ts.map +1 -1
  175. package/dist/components/forms/icon-button/icon-button.class.js +4 -0
  176. package/dist/components/forms/icon-button/icon-button.class.js.map +1 -1
  177. package/dist/components/forms/input/input.class.d.ts +11 -3
  178. package/dist/components/forms/input/input.class.d.ts.map +1 -1
  179. package/dist/components/forms/input/input.class.js +3 -0
  180. package/dist/components/forms/input/input.class.js.map +1 -1
  181. package/dist/components/forms/input/time-input.class.d.ts +12 -0
  182. package/dist/components/forms/input/time-input.class.d.ts.map +1 -1
  183. package/dist/components/forms/input/time-input.class.js +27 -0
  184. package/dist/components/forms/input/time-input.class.js.map +1 -1
  185. package/dist/components/forms/rubric-form/rubric-form.class.d.ts +7 -0
  186. package/dist/components/forms/rubric-form/rubric-form.class.d.ts.map +1 -1
  187. package/dist/components/forms/rubric-form/rubric-form.class.js +7 -0
  188. package/dist/components/forms/rubric-form/rubric-form.class.js.map +1 -1
  189. package/dist/components/forms/select/select.class.d.ts +8 -0
  190. package/dist/components/forms/select/select.class.d.ts.map +1 -1
  191. package/dist/components/forms/select/select.class.js +8 -0
  192. package/dist/components/forms/select/select.class.js.map +1 -1
  193. package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +1 -1
  194. package/dist/components/forms/swatch-picker/swatch-picker.class.js +1 -1
  195. package/dist/components/forms/switch/switch.class.d.ts +6 -0
  196. package/dist/components/forms/switch/switch.class.d.ts.map +1 -1
  197. package/dist/components/forms/switch/switch.class.js +6 -0
  198. package/dist/components/forms/switch/switch.class.js.map +1 -1
  199. package/dist/components/forms/token-input/token-input.class.d.ts +2 -0
  200. package/dist/components/forms/token-input/token-input.class.d.ts.map +1 -1
  201. package/dist/components/forms/token-input/token-input.class.js +2 -0
  202. package/dist/components/forms/token-input/token-input.class.js.map +1 -1
  203. package/dist/components/layout/app-rail/app-rail.class.d.ts +8 -0
  204. package/dist/components/layout/app-rail/app-rail.class.d.ts.map +1 -1
  205. package/dist/components/layout/app-rail/app-rail.class.js +8 -0
  206. package/dist/components/layout/app-rail/app-rail.class.js.map +1 -1
  207. package/dist/components/layout/button-group/button-group.class.d.ts +1 -1
  208. package/dist/components/layout/button-group/button-group.class.js +1 -1
  209. package/dist/components/layout/command-palette/command-palette.class.d.ts +12 -0
  210. package/dist/components/layout/command-palette/command-palette.class.d.ts.map +1 -1
  211. package/dist/components/layout/command-palette/command-palette.class.js +12 -0
  212. package/dist/components/layout/command-palette/command-palette.class.js.map +1 -1
  213. package/dist/components/layout/control-group/control-group.class.d.ts +1 -1
  214. package/dist/components/layout/control-group/control-group.class.js +1 -1
  215. package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts +7 -0
  216. package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts.map +1 -1
  217. package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +7 -0
  218. package/dist/components/layout/dashboard-grid/dashboard-grid.class.js.map +1 -1
  219. package/dist/components/layout/dock-panel/dock-panel.class.d.ts +3 -0
  220. package/dist/components/layout/dock-panel/dock-panel.class.d.ts.map +1 -1
  221. package/dist/components/layout/dock-panel/dock-panel.class.js +3 -0
  222. package/dist/components/layout/dock-panel/dock-panel.class.js.map +1 -1
  223. package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts +2 -0
  224. package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts.map +1 -1
  225. package/dist/components/layout/responsive-panel/responsive-panel.class.js +2 -0
  226. package/dist/components/layout/responsive-panel/responsive-panel.class.js.map +1 -1
  227. package/dist/components/layout/scroller/scroller.class.d.ts +2 -2
  228. package/dist/components/layout/scroller/scroller.class.js +2 -2
  229. package/dist/components/layout/segmented/segmented.class.d.ts +6 -0
  230. package/dist/components/layout/segmented/segmented.class.d.ts.map +1 -1
  231. package/dist/components/layout/segmented/segmented.class.js +6 -0
  232. package/dist/components/layout/segmented/segmented.class.js.map +1 -1
  233. package/dist/components/layout/split/split.class.d.ts +68 -15
  234. package/dist/components/layout/split/split.class.d.ts.map +1 -1
  235. package/dist/components/layout/split/split.class.js +80 -21
  236. package/dist/components/layout/split/split.class.js.map +1 -1
  237. package/dist/components/layout/stepper/stepper.class.d.ts +52 -11
  238. package/dist/components/layout/stepper/stepper.class.d.ts.map +1 -1
  239. package/dist/components/layout/stepper/stepper.class.js +69 -17
  240. package/dist/components/layout/stepper/stepper.class.js.map +1 -1
  241. package/dist/components/layout/virtual-list/virtual-list.class.d.ts +3 -0
  242. package/dist/components/layout/virtual-list/virtual-list.class.d.ts.map +1 -1
  243. package/dist/components/layout/virtual-list/virtual-list.class.js +3 -0
  244. package/dist/components/layout/virtual-list/virtual-list.class.js.map +1 -1
  245. package/dist/components/layout/widget/widget.class.d.ts +6 -0
  246. package/dist/components/layout/widget/widget.class.d.ts.map +1 -1
  247. package/dist/components/layout/widget/widget.class.js +6 -0
  248. package/dist/components/layout/widget/widget.class.js.map +1 -1
  249. package/dist/components/media/attachment-chip/attachment-chip.class.d.ts +13 -0
  250. package/dist/components/media/attachment-chip/attachment-chip.class.d.ts.map +1 -1
  251. package/dist/components/media/attachment-chip/attachment-chip.class.js +13 -0
  252. package/dist/components/media/attachment-chip/attachment-chip.class.js.map +1 -1
  253. package/dist/components/media/avatar/avatar.class.d.ts +6 -0
  254. package/dist/components/media/avatar/avatar.class.d.ts.map +1 -1
  255. package/dist/components/media/avatar/avatar.class.js +6 -0
  256. package/dist/components/media/avatar/avatar.class.js.map +1 -1
  257. package/dist/components/media/media-card/media-card.class.d.ts +2 -0
  258. package/dist/components/media/media-card/media-card.class.d.ts.map +1 -1
  259. package/dist/components/media/media-card/media-card.class.js +2 -0
  260. package/dist/components/media/media-card/media-card.class.js.map +1 -1
  261. package/dist/components/media/playback/playback.class.d.ts +2 -0
  262. package/dist/components/media/playback/playback.class.d.ts.map +1 -1
  263. package/dist/components/media/playback/playback.class.js +2 -0
  264. package/dist/components/media/playback/playback.class.js.map +1 -1
  265. package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +3 -0
  266. package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts.map +1 -1
  267. package/dist/components/media/zoomable-frame/zoomable-frame.class.js +3 -0
  268. package/dist/components/media/zoomable-frame/zoomable-frame.class.js.map +1 -1
  269. package/dist/components/overlays/badge/badge.class.d.ts +6 -0
  270. package/dist/components/overlays/badge/badge.class.d.ts.map +1 -1
  271. package/dist/components/overlays/badge/badge.class.js +6 -0
  272. package/dist/components/overlays/badge/badge.class.js.map +1 -1
  273. package/dist/components/overlays/callout/callout.class.d.ts +6 -0
  274. package/dist/components/overlays/callout/callout.class.d.ts.map +1 -1
  275. package/dist/components/overlays/callout/callout.class.js +6 -0
  276. package/dist/components/overlays/callout/callout.class.js.map +1 -1
  277. package/dist/components/overlays/chip/chip.class.d.ts +18 -0
  278. package/dist/components/overlays/chip/chip.class.d.ts.map +1 -1
  279. package/dist/components/overlays/chip/chip.class.js +18 -0
  280. package/dist/components/overlays/chip/chip.class.js.map +1 -1
  281. package/dist/components/overlays/dialog/dialog.class.d.ts +6 -0
  282. package/dist/components/overlays/dialog/dialog.class.d.ts.map +1 -1
  283. package/dist/components/overlays/dialog/dialog.class.js +6 -0
  284. package/dist/components/overlays/dialog/dialog.class.js.map +1 -1
  285. package/dist/components/overlays/drawer/drawer.class.d.ts +6 -0
  286. package/dist/components/overlays/drawer/drawer.class.d.ts.map +1 -1
  287. package/dist/components/overlays/drawer/drawer.class.js +6 -0
  288. package/dist/components/overlays/drawer/drawer.class.js.map +1 -1
  289. package/dist/components/overlays/progress/progress-ring.class.d.ts +1 -0
  290. package/dist/components/overlays/progress/progress-ring.class.d.ts.map +1 -1
  291. package/dist/components/overlays/progress/progress-ring.class.js +1 -0
  292. package/dist/components/overlays/progress/progress-ring.class.js.map +1 -1
  293. package/dist/components/overlays/skeleton/skeleton.class.d.ts +2 -0
  294. package/dist/components/overlays/skeleton/skeleton.class.d.ts.map +1 -1
  295. package/dist/components/overlays/skeleton/skeleton.class.js +2 -0
  296. package/dist/components/overlays/skeleton/skeleton.class.js.map +1 -1
  297. package/dist/components/overlays/spinner/spinner.class.d.ts +4 -0
  298. package/dist/components/overlays/spinner/spinner.class.d.ts.map +1 -1
  299. package/dist/components/overlays/spinner/spinner.class.js +4 -0
  300. package/dist/components/overlays/spinner/spinner.class.js.map +1 -1
  301. package/dist/components/overlays/toast/toast-item.class.d.ts +11 -0
  302. package/dist/components/overlays/toast/toast-item.class.d.ts.map +1 -1
  303. package/dist/components/overlays/toast/toast-item.class.js +11 -0
  304. package/dist/components/overlays/toast/toast-item.class.js.map +1 -1
  305. package/dist/components/overlays/toast/toast.class.d.ts +15 -0
  306. package/dist/components/overlays/toast/toast.class.d.ts.map +1 -1
  307. package/dist/components/overlays/toast/toast.class.js +15 -0
  308. package/dist/components/overlays/toast/toast.class.js.map +1 -1
  309. package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts +8 -0
  310. package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts.map +1 -1
  311. package/dist/components/retrieval/citation-badge/citation-badge.class.js +8 -0
  312. package/dist/components/retrieval/citation-badge/citation-badge.class.js.map +1 -1
  313. package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts +1 -0
  314. package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts.map +1 -1
  315. package/dist/components/retrieval/entity-chip/entity-chip.class.js +1 -0
  316. package/dist/components/retrieval/entity-chip/entity-chip.class.js.map +1 -1
  317. package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts +2 -0
  318. package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts.map +1 -1
  319. package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js +2 -0
  320. package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js.map +1 -1
  321. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts +1 -0
  322. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts.map +1 -1
  323. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js +1 -0
  324. package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js.map +1 -1
  325. package/dist/components/utility/diff-view/diff-view.class.d.ts +1 -0
  326. package/dist/components/utility/diff-view/diff-view.class.d.ts.map +1 -1
  327. package/dist/components/utility/diff-view/diff-view.class.js +1 -0
  328. package/dist/components/utility/diff-view/diff-view.class.js.map +1 -1
  329. package/dist/components/utility/icon/icon.class.d.ts +1 -0
  330. package/dist/components/utility/icon/icon.class.d.ts.map +1 -1
  331. package/dist/components/utility/icon/icon.class.js +1 -0
  332. package/dist/components/utility/icon/icon.class.js.map +1 -1
  333. package/dist/components/utility/json-viewer/json-viewer.class.d.ts +3 -0
  334. package/dist/components/utility/json-viewer/json-viewer.class.d.ts.map +1 -1
  335. package/dist/components/utility/json-viewer/json-viewer.class.js +3 -0
  336. package/dist/components/utility/json-viewer/json-viewer.class.js.map +1 -1
  337. package/dist/components/utility/known-date/known-date.class.d.ts +11 -0
  338. package/dist/components/utility/known-date/known-date.class.d.ts.map +1 -1
  339. package/dist/components/utility/known-date/known-date.class.js +11 -0
  340. package/dist/components/utility/known-date/known-date.class.js.map +1 -1
  341. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +2 -0
  342. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts.map +1 -1
  343. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +2 -0
  344. package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js.map +1 -1
  345. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +5 -0
  346. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts.map +1 -1
  347. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +5 -0
  348. package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js.map +1 -1
  349. package/dist/components/viewers/document-compare/document-compare.class.d.ts +1 -1
  350. package/dist/components/viewers/document-compare/document-compare.class.js +1 -1
  351. package/dist/components/viewers/document-preview/document-preview.class.d.ts +3 -0
  352. package/dist/components/viewers/document-preview/document-preview.class.d.ts.map +1 -1
  353. package/dist/components/viewers/document-preview/document-preview.class.js +3 -0
  354. package/dist/components/viewers/document-preview/document-preview.class.js.map +1 -1
  355. package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +2 -0
  356. package/dist/components/viewers/email-viewer/email-viewer.class.d.ts.map +1 -1
  357. package/dist/components/viewers/email-viewer/email-viewer.class.js +2 -0
  358. package/dist/components/viewers/email-viewer/email-viewer.class.js.map +1 -1
  359. package/dist/components/viewers/html-viewer/html-viewer.class.d.ts +2 -0
  360. package/dist/components/viewers/html-viewer/html-viewer.class.d.ts.map +1 -1
  361. package/dist/components/viewers/html-viewer/html-viewer.class.js +2 -0
  362. package/dist/components/viewers/html-viewer/html-viewer.class.js.map +1 -1
  363. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts.map +1 -1
  364. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +41 -9
  365. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js.map +1 -1
  366. package/dist/internal/css-length.d.ts +40 -0
  367. package/dist/internal/css-length.d.ts.map +1 -0
  368. package/dist/internal/css-length.js +72 -0
  369. package/dist/internal/css-length.js.map +1 -0
  370. package/dist/internal/orientation-breakpoint.d.ts +12 -0
  371. package/dist/internal/orientation-breakpoint.d.ts.map +1 -0
  372. package/dist/internal/orientation-breakpoint.js +127 -0
  373. package/dist/internal/orientation-breakpoint.js.map +1 -0
  374. package/dist/lyra.d.ts +2 -2
  375. package/dist/lyra.d.ts.map +1 -1
  376. package/dist/lyra.js.map +1 -1
  377. package/llms/components/lr-accordion-item.md +23 -0
  378. package/llms/components/lr-accordion.md +23 -0
  379. package/llms/components/lr-activity-feed.md +45 -0
  380. package/llms/components/lr-agent-run.md +66 -0
  381. package/llms/components/lr-agent-trace.md +42 -0
  382. package/llms/components/lr-agent-workspace.md +109 -0
  383. package/llms/components/lr-animated-image.md +66 -0
  384. package/llms/components/lr-animation.md +73 -0
  385. package/llms/components/lr-app-rail-item.md +218 -0
  386. package/llms/components/lr-app-rail.md +218 -0
  387. package/llms/components/lr-archive-viewer.md +36 -0
  388. package/llms/components/lr-artifact-panel.md +60 -0
  389. package/llms/components/lr-attachment-chip.md +131 -0
  390. package/llms/components/lr-attachment-trigger.md +90 -0
  391. package/llms/components/lr-audio-visualizer.md +43 -0
  392. package/llms/components/lr-av-player.md +50 -0
  393. package/llms/components/lr-avatar-group.md +69 -0
  394. package/llms/components/lr-avatar.md +69 -0
  395. package/llms/components/lr-badge.md +25 -0
  396. package/llms/components/lr-bar-chart.md +70 -0
  397. package/llms/components/lr-box-plot.md +67 -0
  398. package/llms/components/lr-branch-picker.md +32 -0
  399. package/llms/components/lr-breadcrumb-item.md +30 -0
  400. package/llms/components/lr-breadcrumb.md +30 -0
  401. package/llms/components/lr-browser-frame.md +51 -0
  402. package/llms/components/lr-bubble-chart.md +70 -0
  403. package/llms/components/lr-button-group.md +30 -0
  404. package/llms/components/lr-button.md +89 -0
  405. package/llms/components/lr-calendar-viewer.md +32 -0
  406. package/llms/components/lr-calendar.md +52 -0
  407. package/llms/components/lr-callout.md +37 -0
  408. package/llms/components/lr-card.md +67 -0
  409. package/llms/components/lr-carousel-item.md +29 -0
  410. package/llms/components/lr-carousel.md +43 -0
  411. package/llms/components/lr-chart.md +148 -0
  412. package/llms/components/lr-chat-composer.md +139 -0
  413. package/llms/components/lr-chat-message.md +145 -0
  414. package/llms/components/lr-chat-viewport.md +70 -0
  415. package/llms/components/lr-checkbox-group.md +21 -0
  416. package/llms/components/lr-checkbox.md +79 -0
  417. package/llms/components/lr-checkpoint.md +48 -0
  418. package/llms/components/lr-chip-group.md +152 -0
  419. package/llms/components/lr-chip.md +152 -0
  420. package/llms/components/lr-chunk-inspector.md +66 -0
  421. package/llms/components/lr-citation-badge.md +102 -0
  422. package/llms/components/lr-code-block-core.md +113 -0
  423. package/llms/components/lr-code-block.md +146 -0
  424. package/llms/components/lr-code-editor.md +72 -0
  425. package/llms/components/lr-color-picker.md +21 -0
  426. package/llms/components/lr-combobox.md +196 -0
  427. package/llms/components/lr-command-palette.md +50 -0
  428. package/llms/components/lr-commit-card.md +33 -0
  429. package/llms/components/lr-community-card.md +54 -0
  430. package/llms/components/lr-compare-panel.md +38 -0
  431. package/llms/components/lr-confirm-bar.md +48 -0
  432. package/llms/components/lr-contact-viewer.md +34 -0
  433. package/llms/components/lr-context-inspector.md +50 -0
  434. package/llms/components/lr-context-meter.md +92 -0
  435. package/llms/components/lr-control-group.md +46 -0
  436. package/llms/components/lr-conversation-item.md +118 -0
  437. package/llms/components/lr-copy-button.md +52 -0
  438. package/llms/components/lr-csv-viewer.md +49 -0
  439. package/llms/components/lr-dashboard-grid.md +34 -0
  440. package/llms/components/lr-data-grid.md +47 -0
  441. package/llms/components/lr-dataset-viewer.md +60 -0
  442. package/llms/components/lr-date-input.md +201 -0
  443. package/llms/components/lr-date-picker.md +201 -0
  444. package/llms/components/lr-details.md +23 -0
  445. package/llms/components/lr-dialog.md +185 -0
  446. package/llms/components/lr-diff-view.md +86 -0
  447. package/llms/components/lr-divider.md +28 -0
  448. package/llms/components/lr-dock-panel.md +110 -0
  449. package/llms/components/lr-document-compare.md +22 -0
  450. package/llms/components/lr-document-library.md +21 -0
  451. package/llms/components/lr-document-preview.md +179 -0
  452. package/llms/components/lr-document-viewer.md +84 -0
  453. package/llms/components/lr-docx-viewer.md +63 -0
  454. package/llms/components/lr-doughnut-chart.md +70 -0
  455. package/llms/components/lr-drawer.md +48 -0
  456. package/llms/components/lr-drilldown-panel.md +25 -0
  457. package/llms/components/lr-dropdown-item.md +171 -0
  458. package/llms/components/lr-dropdown.md +24 -0
  459. package/llms/components/lr-ebook-viewer.md +60 -0
  460. package/llms/components/lr-email-viewer.md +51 -0
  461. package/llms/components/lr-emoji-picker.md +71 -0
  462. package/llms/components/lr-empty.md +56 -0
  463. package/llms/components/lr-entity-card.md +64 -0
  464. package/llms/components/lr-entity-chip.md +50 -0
  465. package/llms/components/lr-entity-dossier.md +71 -0
  466. package/llms/components/lr-env-list.md +27 -0
  467. package/llms/components/lr-eval-dataset.md +45 -0
  468. package/llms/components/lr-eval-result.md +45 -0
  469. package/llms/components/lr-evaluation-run.md +50 -0
  470. package/llms/components/lr-export-button.md +104 -0
  471. package/llms/components/lr-file-icon.md +34 -0
  472. package/llms/components/lr-file-input.md +104 -0
  473. package/llms/components/lr-file-tree.md +29 -0
  474. package/llms/components/lr-filter-bar.md +20 -0
  475. package/llms/components/lr-flag.md +122 -0
  476. package/llms/components/lr-flow-canvas.md +112 -0
  477. package/llms/components/lr-flow-controls.md +47 -0
  478. package/llms/components/lr-flow-minimap.md +52 -0
  479. package/llms/components/lr-flow-node.md +56 -0
  480. package/llms/components/lr-flow-run-overlay.md +56 -0
  481. package/llms/components/lr-format-bytes.md +31 -0
  482. package/llms/components/lr-format-date.md +33 -0
  483. package/llms/components/lr-format-number.md +41 -0
  484. package/llms/components/lr-gauge.md +65 -0
  485. package/llms/components/lr-generation-status.md +105 -0
  486. package/llms/components/lr-geojson-view.md +43 -0
  487. package/llms/components/lr-graph-legend.md +64 -0
  488. package/llms/components/lr-graph-query-builder.md +27 -0
  489. package/llms/components/lr-graph.md +224 -0
  490. package/llms/components/lr-grounding-summary.md +57 -0
  491. package/llms/components/lr-handoff-divider.md +27 -0
  492. package/llms/components/lr-heatmap.md +232 -0
  493. package/llms/components/lr-highlight-layer.md +31 -0
  494. package/llms/components/lr-histogram.md +69 -0
  495. package/llms/components/lr-html-viewer.md +30 -0
  496. package/llms/components/lr-icon-button.md +39 -0
  497. package/llms/components/lr-icon.md +36 -0
  498. package/llms/components/lr-image-comparer.md +38 -0
  499. package/llms/components/lr-image-viewer.md +35 -0
  500. package/llms/components/lr-include.md +53 -0
  501. package/llms/components/lr-ingestion-queue.md +60 -0
  502. package/llms/components/lr-input.md +82 -0
  503. package/llms/components/lr-intersection-observer.md +25 -0
  504. package/llms/components/lr-json-viewer.md +98 -0
  505. package/llms/components/lr-kbd.md +74 -0
  506. package/llms/components/lr-knowledge-base.md +64 -0
  507. package/llms/components/lr-knowledge-graph-explorer.md +92 -0
  508. package/llms/components/lr-known-date.md +84 -0
  509. package/llms/components/lr-lightbox.md +79 -0
  510. package/llms/components/lr-line-chart.md +70 -0
  511. package/llms/components/lr-lite-chart.md +143 -0
  512. package/llms/components/lr-live-region.md +105 -0
  513. package/llms/components/lr-map.md +127 -0
  514. package/llms/components/lr-markdown-core.md +70 -0
  515. package/llms/components/lr-markdown.md +171 -0
  516. package/llms/components/lr-media-card.md +106 -0
  517. package/llms/components/lr-memory-panel.md +67 -0
  518. package/llms/components/lr-mention-popover.md +139 -0
  519. package/llms/components/lr-menu-item.md +171 -0
  520. package/llms/components/lr-menu.md +171 -0
  521. package/llms/components/lr-message-actions.md +48 -0
  522. package/llms/components/lr-message-feedback.md +37 -0
  523. package/llms/components/lr-mind-map.md +64 -0
  524. package/llms/components/lr-model-select.md +144 -0
  525. package/llms/components/lr-model-settings-panel.md +99 -0
  526. package/llms/components/lr-mutation-observer.md +27 -0
  527. package/llms/components/lr-neighbor-list.md +56 -0
  528. package/llms/components/lr-node-palette.md +67 -0
  529. package/llms/components/lr-notebook-viewer.md +65 -0
  530. package/llms/components/lr-number-input.md +44 -0
  531. package/llms/components/lr-option.md +196 -0
  532. package/llms/components/lr-page-rail.md +37 -0
  533. package/llms/components/lr-pagination.md +88 -0
  534. package/llms/components/lr-path-strip.md +55 -0
  535. package/llms/components/lr-pdf-viewer.md +78 -0
  536. package/llms/components/lr-phone-input.md +162 -0
  537. package/llms/components/lr-pie-chart.md +70 -0
  538. package/llms/components/lr-playback.md +74 -0
  539. package/llms/components/lr-polar-area-chart.md +70 -0
  540. package/llms/components/lr-policy-summary.md +33 -0
  541. package/llms/components/lr-poll-status.md +71 -0
  542. package/llms/components/lr-popover.md +31 -0
  543. package/llms/components/lr-pptx-viewer.md +35 -0
  544. package/llms/components/lr-progress-bar.md +22 -0
  545. package/llms/components/lr-progress-ring.md +26 -0
  546. package/llms/components/lr-provenance-panel.md +58 -0
  547. package/llms/components/lr-push-to-talk.md +50 -0
  548. package/llms/components/lr-qr-code.md +20 -0
  549. package/llms/components/lr-query-builder.md +21 -0
  550. package/llms/components/lr-radar-chart.md +70 -0
  551. package/llms/components/lr-radio-group.md +25 -0
  552. package/llms/components/lr-radio.md +31 -0
  553. package/llms/components/lr-random-content.md +62 -0
  554. package/llms/components/lr-rating.md +21 -0
  555. package/llms/components/lr-relative-time.md +31 -0
  556. package/llms/components/lr-resize-observer.md +25 -0
  557. package/llms/components/lr-responsive-panel.md +112 -0
  558. package/llms/components/lr-result-card.md +88 -0
  559. package/llms/components/lr-result-field.md +88 -0
  560. package/llms/components/lr-retrieval-results.md +84 -0
  561. package/llms/components/lr-retrieval-search.md +70 -0
  562. package/llms/components/lr-retrieval-trace.md +59 -0
  563. package/llms/components/lr-rubric-form.md +37 -0
  564. package/llms/components/lr-scatter-chart.md +70 -0
  565. package/llms/components/lr-scroller.md +47 -0
  566. package/llms/components/lr-segmented.md +74 -0
  567. package/llms/components/lr-select.md +113 -0
  568. package/llms/components/lr-sequence-strip.md +95 -0
  569. package/llms/components/lr-skeleton.md +53 -0
  570. package/llms/components/lr-slider.md +92 -0
  571. package/llms/components/lr-source-card.md +131 -0
  572. package/llms/components/lr-source-list.md +131 -0
  573. package/llms/components/lr-source-picker.md +63 -0
  574. package/llms/components/lr-span-waterfall.md +42 -0
  575. package/llms/components/lr-sparkline.md +60 -0
  576. package/llms/components/lr-spinner.md +32 -0
  577. package/llms/components/lr-split.md +191 -0
  578. package/llms/components/lr-spreadsheet-viewer.md +47 -0
  579. package/llms/components/lr-stack-trace.md +77 -0
  580. package/llms/components/lr-stat.md +89 -0
  581. package/llms/components/lr-stepper.md +118 -0
  582. package/llms/components/lr-stream-status.md +128 -0
  583. package/llms/components/lr-streaming-text.md +101 -0
  584. package/llms/components/lr-suggestion-chips.md +40 -0
  585. package/llms/components/lr-svg-viewer.md +47 -0
  586. package/llms/components/lr-swatch-picker.md +91 -0
  587. package/llms/components/lr-switch.md +82 -0
  588. package/llms/components/lr-table.md +201 -0
  589. package/llms/components/lr-tabs.md +80 -0
  590. package/llms/components/lr-tag.md +25 -0
  591. package/llms/components/lr-task-list.md +42 -0
  592. package/llms/components/lr-terminal.md +44 -0
  593. package/llms/components/lr-test-results.md +38 -0
  594. package/llms/components/lr-textarea.md +111 -0
  595. package/llms/components/lr-thinking-panel.md +93 -0
  596. package/llms/components/lr-thread-list.md +97 -0
  597. package/llms/components/lr-time-input.md +53 -0
  598. package/llms/components/lr-time-range.md +91 -0
  599. package/llms/components/lr-timeline-item.md +65 -0
  600. package/llms/components/lr-timeline.md +65 -0
  601. package/llms/components/lr-toast-item.md +123 -0
  602. package/llms/components/lr-toast.md +123 -0
  603. package/llms/components/lr-token-input.md +31 -0
  604. package/llms/components/lr-tool-approval-dialog.md +131 -0
  605. package/llms/components/lr-tool-call-chip.md +101 -0
  606. package/llms/components/lr-tool-param-form.md +148 -0
  607. package/llms/components/lr-tool-result-dialog.md +106 -0
  608. package/llms/components/lr-tool-result-view.md +162 -0
  609. package/llms/components/lr-tool-select-dialog.md +124 -0
  610. package/llms/components/lr-tool-timeline.md +56 -0
  611. package/llms/components/lr-tooltip.md +47 -0
  612. package/llms/components/lr-tour.md +100 -0
  613. package/llms/components/lr-trace-tree.md +35 -0
  614. package/llms/components/lr-transcript-feed.md +45 -0
  615. package/llms/components/lr-tree-node.md +133 -0
  616. package/llms/components/lr-tree.md +133 -0
  617. package/llms/components/lr-typing-indicator.md +80 -0
  618. package/llms/components/lr-usage-badge.md +44 -0
  619. package/llms/components/lr-virtual-list.md +145 -0
  620. package/llms/components/lr-voice-picker.md +78 -0
  621. package/llms/components/lr-widget-renderer.md +78 -0
  622. package/llms/components/lr-widget.md +104 -0
  623. package/llms/components/lr-word-cloud.md +112 -0
  624. package/llms/components/lr-xml-viewer.md +58 -0
  625. package/llms/components/lr-zoomable-frame.md +57 -0
  626. package/llms/index.md +301 -0
  627. package/llms/migration.md +86 -0
  628. package/llms/peers.md +41 -0
  629. package/llms/shared.md +321 -0
  630. package/llms/tokens.md +533 -0
  631. package/llms-full.txt +10731 -8563
  632. package/llms.txt +64 -121
  633. package/package.json +14 -2
  634. package/vscode-css-data.json +1424 -185
  635. package/vscode-html-data.json +128 -107
  636. package/web-types.json +853 -118
@@ -0,0 +1,201 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/forms.md — do not edit this file. -->
2
+
3
+ # `lr-date-input`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/forms/date-picker/date-input.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraDateInput`, also available unregistered from `@aceshooting/lyra-ui/components/forms/date-picker/date-input.class.js`
7
+ - **Family** `components/forms/` — see `llms/index.md` for its siblings
8
+ - **Optional peers** none
9
+ - **Documented with** `lr-date-picker` (same section below)
10
+ - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
11
+
12
+ ---
13
+
14
+ ## `lr-date-picker` / `lr-date-input` (+ `calendar-core.ts`)
15
+
16
+ Mirrors the core `<wa-date-picker>`/`<wa-date-input>` API under `lr-`. **Value is always ISO
17
+ 8601**: `YYYY-MM-DD` (single) or `YYYY-MM-DD/YYYY-MM-DD` (range).
18
+
19
+ ### `lr-date-picker`
20
+
21
+ Inline month-grid calendar, not form-associated (used standalone or embedded inside
22
+ `lr-date-input`'s popover).
23
+
24
+ **Properties:**
25
+ - `value: string = ''`
26
+ - `mode: 'single'|'range' = 'single'` — unknown runtime values fall back to `single`
27
+ - `min: string = ''`
28
+ - `max: string = ''`
29
+ - `disabled: boolean = false` (reflected)
30
+ - `readonly: boolean = false` (reflected)
31
+ - `months: 1|2 = 1` — finite runtime values are truncated and clamped to `1..2`; non-finite
32
+ values fall back to `1`
33
+ - `locale: string = ''` — malformed locale tags fall back to the platform locale
34
+ - `firstDayOfWeek: string = 'auto'` (attribute `first-day-of-week` — see gotchas)
35
+ - `weekdayFormat: 'narrow'|'short'|'long' = 'short'` (attribute `weekday-format`; unknown runtime
36
+ values fall back to `short`)
37
+ - `disablePast: boolean = false` (attribute `disable-past`)
38
+ - `disableFuture: boolean = false` (attribute `disable-future`)
39
+ - `withOutsideDays: boolean = false` (attribute `with-outside-days`)
40
+ - `previousLabel: string = 'Previous month'` (attribute `previous-label` — accessible label for the
41
+ previous-month nav button; override for a non-English `locale`)
42
+ - `nextLabel: string = 'Next month'` (attribute `next-label` — accessible label for the next-month
43
+ nav button)
44
+
45
+ **Getters:** `selection: { from: Date|null; to: Date|null }`, `valueAsDate: Date | null` (single
46
+ mode only)
47
+
48
+ **Methods:** `clear()`, `goToToday()`, `goToDate(date: string | Date)` (valid dates are clamped to
49
+ `min`/`max` before navigating/focusing; invalid `Date` objects and strings are ignored)
50
+
51
+ **Events:** `input` (during interaction — for range mode, fires after the first click of a pair),
52
+ `change` (committed value)
53
+
54
+ **Slots:** none.
55
+
56
+ **CSS parts:** `base`, `month`, `header`, `title`, `previous`, `next`, `weekdays`, `weekday`,
57
+ `grid`, `week`, `day`, `day-outside`, `day-today`, `day-selected`, `day-range-start`,
58
+ `day-range-end`, `day-range-inner`, `day-placeholder`
59
+
60
+ **Themeable custom properties:** `--lr-cell-size` (default `2.25rem`, controls day-cell/grid-column
61
+ size).
62
+
63
+ **Optional peer deps:** none.
64
+
65
+ ### `lr-date-input`
66
+
67
+ Text field + calendar popover, **form-associated** via the shared `FormAssociated` mixin (`name`,
68
+ `value`, `disabled`, `required` all inherited).
69
+
70
+ **Properties (own):**
71
+ - `mode: 'single'|'range' = 'single'`
72
+ - `min: string = ''`
73
+ - `max: string = ''`
74
+ - `readonly: boolean = false` (reflected; preserves the submitted value but bars required and
75
+ date-bound constraint validation until removed)
76
+ - `open: boolean = false` (reflected)
77
+ - `withClear: boolean = false` (attribute `with-clear`)
78
+ - `label: string = ''`
79
+ - `hint: string = ''`
80
+ - `placeholder: string = ''`
81
+ - `locale: string = ''` — malformed locale tags fall back to the platform locale
82
+ - `months: 1|2 = 1` — finite runtime values are truncated and clamped to `1..2`; non-finite
83
+ values fall back to `1`
84
+ - `firstDayOfWeek: string = 'auto'`
85
+ - `weekdayFormat: 'narrow'|'short'|'long' = 'short'` — unknown runtime values fall back to `short`
86
+ - `disablePast: boolean = false` (attribute `disable-past`)
87
+ - `disableFuture: boolean = false` (attribute `disable-future`)
88
+ - `withOutsideDays: boolean = false` (attribute `with-outside-days`)
89
+
90
+ **Properties (own, continued):**
91
+ - `errorText: string = ''` (attribute `error-text` — static error copy; overridden by slotted
92
+ `error` content when provided)
93
+ - `accessibleLabel: string | null = null` (attribute `aria-label`) — overrides the internal
94
+ `<input>`'s computed accessible name; wins over `label`/`placeholder`/the localized `date`
95
+ fallback in that order. Attribute-reflects from a host-level `aria-label` so a plain-markup
96
+ consumer gets ARIA-name forwarding without setting a JS property.
97
+ - `clearLabel: string = 'Clear'` (attribute `clear-label` — accessible label for the clear button)
98
+ - `openLabel: string = 'Open calendar'` (attribute `open-label` — accessible label for the
99
+ calendar-toggle button)
100
+ - `dialogLabel: string = 'Choose date'` (attribute `dialog-label` — accessible name for the
101
+ `role="dialog"` calendar popover)
102
+ - `spellcheck: boolean = true` — forwarded to the internal `<input>`
103
+ - `autocapitalize: string = ''` — forwarded to the internal `<input>`; empty omits the attribute
104
+ - `autoCorrect: string = ''` (attribute `autocorrect`, Safari/WebKit-specific) — forwarded to the
105
+ internal `<input>`; empty omits the attribute. Named `autoCorrect` in JS/TS (not `autocorrect`)
106
+ to dodge a `lib.dom.d.ts` collision with `HTMLElement`'s own boolean `autocorrect` IDL member;
107
+ the wire attribute is still the plain `autocorrect` name
108
+ - `autocomplete: string = ''`, `inputMode: string = ''` (attribute `inputmode`), and
109
+ `enterKeyHint: string = ''` (attribute `enterkeyhint`) — forwarded to the internal date input
110
+ - `autocomplete: string = ''`, `inputMode: string = ''` (`inputmode`), and `enterKeyHint: string = ''`
111
+ (`enterkeyhint`) — forwarded to the internal `<input>`.
112
+ - `size: '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' = 'm'` (reflected) — visual size, matching
113
+ `lr-input`/`lr-select`/`lr-combobox`'s shared scale. Governs the field's padding and font-size;
114
+ the calendar-toggle and clear buttons keep a constant, accessible touch target at every size.
115
+ The default `m` tier is unchanged from this component's pre-`size` rendering.
116
+
117
+ **Methods:** `show()`, `hide()`, `clear()`, `focus(options?)`, `blur()`, `select()`,
118
+ `setSelectionRange()`, `setRangeText()` (all of the focus/selection methods forward to the internal
119
+ native date `<input>`).
120
+
121
+ **Getters:** `input: HTMLInputElement | undefined` — the internal native `<input>`, for direct DOM
122
+ access.
123
+
124
+ **Selection properties:** `selectionStart`, `selectionEnd`, and `selectionDirection` mirror the
125
+ internal native date input.
126
+
127
+ **Events:** `input`, `change`, `lr-show`, `lr-hide`, `lr-clear`, `blur` (re-dispatched from
128
+ the internal `<input>`'s own `blur`, bubbling and composed unlike the native event), `focus`
129
+ (re-dispatched from the internal `<input>`'s own `focus`, for the same reason as `blur`)
130
+
131
+ **Slots:** `label`, `error` (overrides `errorText`), `hint`
132
+
133
+ **CSS parts:** `form-control`, `form-control-label`, `input-wrapper`, `input`, `clear-button`,
134
+ `expand-button`, `expand-icon`, `popup`, `date-picker`, `error`, `hint`
135
+
136
+ **Themeable custom properties:** `--lr-date-input-padding-block` (default `--lr-space-xs`) and
137
+ `--lr-date-input-padding-inline` (default `--lr-space-s`) — the `input-wrapper`'s padding;
138
+ `--lr-date-input-font-size` (default `inherit`) — the `input` part's font size. All three are
139
+ declared on `:host` and auto-swapped per `size` (`2xs`/`xs`/`s`/`l`/`xl`; `m` keeps the `:host`
140
+ defaults), deliberately matching `lr-input`'s own per-`size` padding/font-size values so a
141
+ same-`size` `lr-input` and `lr-date-input` end up height/density-matched. Plus shared tokens.
142
+
143
+ **Optional peer deps:** none.
144
+
145
+ ```html
146
+ <lr-date-input id="di" label="Start date" with-clear name="start"></lr-date-input>
147
+ <script type="module">
148
+ const di = document.getElementById('di');
149
+ di.value = '2026-07-10';
150
+ di.addEventListener('change', () => console.log(di.value)); // ISO string
151
+ </script>
152
+ ```
153
+
154
+ `calendar-core.ts` exports the pure date math both components share (**internal — not re-exported
155
+ from the package root**, but worth knowing when reasoning about behavior): `parseISO`, `formatISO`,
156
+ `isSameDay`, `addMonths`, `addMonthsClampingDay(date, n)` (like `addMonths` but clamps the result to
157
+ the target month's last day instead of overflowing into the month after — e.g. Jan 31 + 1 month
158
+ lands on Feb 28/29, not Mar 3; backs `lr-date-picker`'s PageUp/PageDown), `clampDate`,
159
+ `monthMatrix(year, month, firstDayOfWeek)`, `weekdayLabels(firstDayOfWeek, format, locale)`,
160
+ `monthTitle(year, month, locale)`, `resolveFirstDayOfWeek(value, locale?)`,
161
+ `normalizeCalendarMode(value)`, `normalizeCalendarMonths(value)`, `normalizeWeekdayFormat(value)`,
162
+ and `dateTimeFormat(locale, options)`.
163
+
164
+ **Known gotchas:**
165
+ - `first-day-of-week="auto"` now derives from `locale` when the runtime's `Intl.Locale` exposes
166
+ week-info (`weekInfo`/`getWeekInfo()`, still shifting between engines) — `resolveFirstDayOfWeek()`
167
+ only hardcodes Sunday as the fallback when that isn't available or `locale` is unset. A
168
+ French/German-locale user with a supporting runtime now gets the Monday-first grid their OS would
169
+ show; on an older runtime it still falls back to Sunday-first silently. **If you need a guaranteed
170
+ locale-correct week start regardless of runtime**, pass an explicit
171
+ `first-day-of-week="mon"` (accepted values: `sun`/`mon`/`tue`/`wed`/`thu`/`fri`/`sat`).
172
+ - Runtime attribute/property inputs are normalized before calendar math or `Intl` formatting:
173
+ unsupported modes and weekday formats use their documented defaults, month counts cannot exceed
174
+ the two-grid API, malformed locale tags use the platform locale, and invalid `Date` objects do
175
+ not replace the current view.
176
+ - (date-input only) — opening the calendar does not move focus into it: `Alt+ArrowDown` leaves focus
177
+ on the text input, and the expand button keeps focus when clicked. The focused opener is
178
+ remembered. Escape and a finalized calendar selection close the popup and return focus to that
179
+ same connected element; a direct `.open = false` also restores it when focus would otherwise
180
+ remain inside the now-hidden popup. Outside-pointer dismissal deliberately leaves focus at the
181
+ clicked target.
182
+ - (date-input only) — typing an unparseable string and blurring/committing sets `badInput` via
183
+ `internals.setValidity()` and reverts the displayed text to the last valid commit. The visible
184
+ `<input part="input">` mirrors `required` through native `required`/`aria-required` and exposes
185
+ touched outer validity through `aria-invalid`; this includes required, bad-input, and range
186
+ failures owned by the form-associated host. A host `aria-label` is reactively forwarded to the
187
+ input, including later changes/removal, and takes precedence over the component's
188
+ label/placeholder fallback. Native validation attempts reveal `aria-invalid`; `form.reset()`
189
+ clears that touched presentation. A parseable typed date outside an active bound is committed
190
+ instead and reports the precise `rangeUnderflow`/`rangeOverflow` state.
191
+ - (date-input only) — declarative, IDL, reset, and restored values are sanitized to exact ISO dates:
192
+ calendar-invalid or malformed strings become `''` (and therefore `valueMissing` when required),
193
+ while valid dates outside `min`/`max` or `disable-past`/`disable-future` remain submitted and expose
194
+ `rangeUnderflow`/`rangeOverflow`. Changes to these constraints, `mode`, and `readonly` recompute
195
+ validity synchronously; range mode validates both endpoints.
196
+ - The grid keyboard pattern (Arrow/PageUp/PageDown/Home/End navigation with correct focus
197
+ sequencing) is implemented correctly and safe to rely on, as is the selected/range-day text color
198
+ (`--lr-color-on-brand`, not a hardcoded literal — safe to override `--lr-color-brand` without
199
+ losing contrast on selected-day text).
200
+
201
+ ---
@@ -0,0 +1,201 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/forms.md — do not edit this file. -->
2
+
3
+ # `lr-date-picker`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/forms/date-picker/date-picker.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraDatePicker`, also available unregistered from `@aceshooting/lyra-ui/components/forms/date-picker/date-picker.class.js`
7
+ - **Family** `components/forms/` — see `llms/index.md` for its siblings
8
+ - **Optional peers** none
9
+ - **Documented with** `lr-date-input` (same section below)
10
+ - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
11
+
12
+ ---
13
+
14
+ ## `lr-date-picker` / `lr-date-input` (+ `calendar-core.ts`)
15
+
16
+ Mirrors the core `<wa-date-picker>`/`<wa-date-input>` API under `lr-`. **Value is always ISO
17
+ 8601**: `YYYY-MM-DD` (single) or `YYYY-MM-DD/YYYY-MM-DD` (range).
18
+
19
+ ### `lr-date-picker`
20
+
21
+ Inline month-grid calendar, not form-associated (used standalone or embedded inside
22
+ `lr-date-input`'s popover).
23
+
24
+ **Properties:**
25
+ - `value: string = ''`
26
+ - `mode: 'single'|'range' = 'single'` — unknown runtime values fall back to `single`
27
+ - `min: string = ''`
28
+ - `max: string = ''`
29
+ - `disabled: boolean = false` (reflected)
30
+ - `readonly: boolean = false` (reflected)
31
+ - `months: 1|2 = 1` — finite runtime values are truncated and clamped to `1..2`; non-finite
32
+ values fall back to `1`
33
+ - `locale: string = ''` — malformed locale tags fall back to the platform locale
34
+ - `firstDayOfWeek: string = 'auto'` (attribute `first-day-of-week` — see gotchas)
35
+ - `weekdayFormat: 'narrow'|'short'|'long' = 'short'` (attribute `weekday-format`; unknown runtime
36
+ values fall back to `short`)
37
+ - `disablePast: boolean = false` (attribute `disable-past`)
38
+ - `disableFuture: boolean = false` (attribute `disable-future`)
39
+ - `withOutsideDays: boolean = false` (attribute `with-outside-days`)
40
+ - `previousLabel: string = 'Previous month'` (attribute `previous-label` — accessible label for the
41
+ previous-month nav button; override for a non-English `locale`)
42
+ - `nextLabel: string = 'Next month'` (attribute `next-label` — accessible label for the next-month
43
+ nav button)
44
+
45
+ **Getters:** `selection: { from: Date|null; to: Date|null }`, `valueAsDate: Date | null` (single
46
+ mode only)
47
+
48
+ **Methods:** `clear()`, `goToToday()`, `goToDate(date: string | Date)` (valid dates are clamped to
49
+ `min`/`max` before navigating/focusing; invalid `Date` objects and strings are ignored)
50
+
51
+ **Events:** `input` (during interaction — for range mode, fires after the first click of a pair),
52
+ `change` (committed value)
53
+
54
+ **Slots:** none.
55
+
56
+ **CSS parts:** `base`, `month`, `header`, `title`, `previous`, `next`, `weekdays`, `weekday`,
57
+ `grid`, `week`, `day`, `day-outside`, `day-today`, `day-selected`, `day-range-start`,
58
+ `day-range-end`, `day-range-inner`, `day-placeholder`
59
+
60
+ **Themeable custom properties:** `--lr-cell-size` (default `2.25rem`, controls day-cell/grid-column
61
+ size).
62
+
63
+ **Optional peer deps:** none.
64
+
65
+ ### `lr-date-input`
66
+
67
+ Text field + calendar popover, **form-associated** via the shared `FormAssociated` mixin (`name`,
68
+ `value`, `disabled`, `required` all inherited).
69
+
70
+ **Properties (own):**
71
+ - `mode: 'single'|'range' = 'single'`
72
+ - `min: string = ''`
73
+ - `max: string = ''`
74
+ - `readonly: boolean = false` (reflected; preserves the submitted value but bars required and
75
+ date-bound constraint validation until removed)
76
+ - `open: boolean = false` (reflected)
77
+ - `withClear: boolean = false` (attribute `with-clear`)
78
+ - `label: string = ''`
79
+ - `hint: string = ''`
80
+ - `placeholder: string = ''`
81
+ - `locale: string = ''` — malformed locale tags fall back to the platform locale
82
+ - `months: 1|2 = 1` — finite runtime values are truncated and clamped to `1..2`; non-finite
83
+ values fall back to `1`
84
+ - `firstDayOfWeek: string = 'auto'`
85
+ - `weekdayFormat: 'narrow'|'short'|'long' = 'short'` — unknown runtime values fall back to `short`
86
+ - `disablePast: boolean = false` (attribute `disable-past`)
87
+ - `disableFuture: boolean = false` (attribute `disable-future`)
88
+ - `withOutsideDays: boolean = false` (attribute `with-outside-days`)
89
+
90
+ **Properties (own, continued):**
91
+ - `errorText: string = ''` (attribute `error-text` — static error copy; overridden by slotted
92
+ `error` content when provided)
93
+ - `accessibleLabel: string | null = null` (attribute `aria-label`) — overrides the internal
94
+ `<input>`'s computed accessible name; wins over `label`/`placeholder`/the localized `date`
95
+ fallback in that order. Attribute-reflects from a host-level `aria-label` so a plain-markup
96
+ consumer gets ARIA-name forwarding without setting a JS property.
97
+ - `clearLabel: string = 'Clear'` (attribute `clear-label` — accessible label for the clear button)
98
+ - `openLabel: string = 'Open calendar'` (attribute `open-label` — accessible label for the
99
+ calendar-toggle button)
100
+ - `dialogLabel: string = 'Choose date'` (attribute `dialog-label` — accessible name for the
101
+ `role="dialog"` calendar popover)
102
+ - `spellcheck: boolean = true` — forwarded to the internal `<input>`
103
+ - `autocapitalize: string = ''` — forwarded to the internal `<input>`; empty omits the attribute
104
+ - `autoCorrect: string = ''` (attribute `autocorrect`, Safari/WebKit-specific) — forwarded to the
105
+ internal `<input>`; empty omits the attribute. Named `autoCorrect` in JS/TS (not `autocorrect`)
106
+ to dodge a `lib.dom.d.ts` collision with `HTMLElement`'s own boolean `autocorrect` IDL member;
107
+ the wire attribute is still the plain `autocorrect` name
108
+ - `autocomplete: string = ''`, `inputMode: string = ''` (attribute `inputmode`), and
109
+ `enterKeyHint: string = ''` (attribute `enterkeyhint`) — forwarded to the internal date input
110
+ - `autocomplete: string = ''`, `inputMode: string = ''` (`inputmode`), and `enterKeyHint: string = ''`
111
+ (`enterkeyhint`) — forwarded to the internal `<input>`.
112
+ - `size: '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' = 'm'` (reflected) — visual size, matching
113
+ `lr-input`/`lr-select`/`lr-combobox`'s shared scale. Governs the field's padding and font-size;
114
+ the calendar-toggle and clear buttons keep a constant, accessible touch target at every size.
115
+ The default `m` tier is unchanged from this component's pre-`size` rendering.
116
+
117
+ **Methods:** `show()`, `hide()`, `clear()`, `focus(options?)`, `blur()`, `select()`,
118
+ `setSelectionRange()`, `setRangeText()` (all of the focus/selection methods forward to the internal
119
+ native date `<input>`).
120
+
121
+ **Getters:** `input: HTMLInputElement | undefined` — the internal native `<input>`, for direct DOM
122
+ access.
123
+
124
+ **Selection properties:** `selectionStart`, `selectionEnd`, and `selectionDirection` mirror the
125
+ internal native date input.
126
+
127
+ **Events:** `input`, `change`, `lr-show`, `lr-hide`, `lr-clear`, `blur` (re-dispatched from
128
+ the internal `<input>`'s own `blur`, bubbling and composed unlike the native event), `focus`
129
+ (re-dispatched from the internal `<input>`'s own `focus`, for the same reason as `blur`)
130
+
131
+ **Slots:** `label`, `error` (overrides `errorText`), `hint`
132
+
133
+ **CSS parts:** `form-control`, `form-control-label`, `input-wrapper`, `input`, `clear-button`,
134
+ `expand-button`, `expand-icon`, `popup`, `date-picker`, `error`, `hint`
135
+
136
+ **Themeable custom properties:** `--lr-date-input-padding-block` (default `--lr-space-xs`) and
137
+ `--lr-date-input-padding-inline` (default `--lr-space-s`) — the `input-wrapper`'s padding;
138
+ `--lr-date-input-font-size` (default `inherit`) — the `input` part's font size. All three are
139
+ declared on `:host` and auto-swapped per `size` (`2xs`/`xs`/`s`/`l`/`xl`; `m` keeps the `:host`
140
+ defaults), deliberately matching `lr-input`'s own per-`size` padding/font-size values so a
141
+ same-`size` `lr-input` and `lr-date-input` end up height/density-matched. Plus shared tokens.
142
+
143
+ **Optional peer deps:** none.
144
+
145
+ ```html
146
+ <lr-date-input id="di" label="Start date" with-clear name="start"></lr-date-input>
147
+ <script type="module">
148
+ const di = document.getElementById('di');
149
+ di.value = '2026-07-10';
150
+ di.addEventListener('change', () => console.log(di.value)); // ISO string
151
+ </script>
152
+ ```
153
+
154
+ `calendar-core.ts` exports the pure date math both components share (**internal — not re-exported
155
+ from the package root**, but worth knowing when reasoning about behavior): `parseISO`, `formatISO`,
156
+ `isSameDay`, `addMonths`, `addMonthsClampingDay(date, n)` (like `addMonths` but clamps the result to
157
+ the target month's last day instead of overflowing into the month after — e.g. Jan 31 + 1 month
158
+ lands on Feb 28/29, not Mar 3; backs `lr-date-picker`'s PageUp/PageDown), `clampDate`,
159
+ `monthMatrix(year, month, firstDayOfWeek)`, `weekdayLabels(firstDayOfWeek, format, locale)`,
160
+ `monthTitle(year, month, locale)`, `resolveFirstDayOfWeek(value, locale?)`,
161
+ `normalizeCalendarMode(value)`, `normalizeCalendarMonths(value)`, `normalizeWeekdayFormat(value)`,
162
+ and `dateTimeFormat(locale, options)`.
163
+
164
+ **Known gotchas:**
165
+ - `first-day-of-week="auto"` now derives from `locale` when the runtime's `Intl.Locale` exposes
166
+ week-info (`weekInfo`/`getWeekInfo()`, still shifting between engines) — `resolveFirstDayOfWeek()`
167
+ only hardcodes Sunday as the fallback when that isn't available or `locale` is unset. A
168
+ French/German-locale user with a supporting runtime now gets the Monday-first grid their OS would
169
+ show; on an older runtime it still falls back to Sunday-first silently. **If you need a guaranteed
170
+ locale-correct week start regardless of runtime**, pass an explicit
171
+ `first-day-of-week="mon"` (accepted values: `sun`/`mon`/`tue`/`wed`/`thu`/`fri`/`sat`).
172
+ - Runtime attribute/property inputs are normalized before calendar math or `Intl` formatting:
173
+ unsupported modes and weekday formats use their documented defaults, month counts cannot exceed
174
+ the two-grid API, malformed locale tags use the platform locale, and invalid `Date` objects do
175
+ not replace the current view.
176
+ - (date-input only) — opening the calendar does not move focus into it: `Alt+ArrowDown` leaves focus
177
+ on the text input, and the expand button keeps focus when clicked. The focused opener is
178
+ remembered. Escape and a finalized calendar selection close the popup and return focus to that
179
+ same connected element; a direct `.open = false` also restores it when focus would otherwise
180
+ remain inside the now-hidden popup. Outside-pointer dismissal deliberately leaves focus at the
181
+ clicked target.
182
+ - (date-input only) — typing an unparseable string and blurring/committing sets `badInput` via
183
+ `internals.setValidity()` and reverts the displayed text to the last valid commit. The visible
184
+ `<input part="input">` mirrors `required` through native `required`/`aria-required` and exposes
185
+ touched outer validity through `aria-invalid`; this includes required, bad-input, and range
186
+ failures owned by the form-associated host. A host `aria-label` is reactively forwarded to the
187
+ input, including later changes/removal, and takes precedence over the component's
188
+ label/placeholder fallback. Native validation attempts reveal `aria-invalid`; `form.reset()`
189
+ clears that touched presentation. A parseable typed date outside an active bound is committed
190
+ instead and reports the precise `rangeUnderflow`/`rangeOverflow` state.
191
+ - (date-input only) — declarative, IDL, reset, and restored values are sanitized to exact ISO dates:
192
+ calendar-invalid or malformed strings become `''` (and therefore `valueMissing` when required),
193
+ while valid dates outside `min`/`max` or `disable-past`/`disable-future` remain submitted and expose
194
+ `rangeUnderflow`/`rangeOverflow`. Changes to these constraints, `mode`, and `readonly` recompute
195
+ validity synchronously; range mode validates both endpoints.
196
+ - The grid keyboard pattern (Arrow/PageUp/PageDown/Home/End navigation with correct focus
197
+ sequencing) is implemented correctly and safe to rely on, as is the selected/range-day text color
198
+ (`--lr-color-on-brand`, not a hardcoded literal — safe to override `--lr-color-brand` without
199
+ losing contrast on selected-day text).
200
+
201
+ ---
@@ -0,0 +1,23 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/layout.md — do not edit this file. -->
2
+
3
+ # `lr-details`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/layout/details/details.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraDetails`, also available unregistered from `@aceshooting/lyra-ui/components/layout/details/details.class.js`
7
+ - **Family** `components/layout/` — see `llms/index.md` for its siblings
8
+ - **Optional peers** none
9
+ - **Documented with** `lr-accordion`, `lr-accordion-item` (same section below)
10
+ - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
11
+
12
+ ---
13
+
14
+ ## `lr-details`, `lr-accordion`, and `lr-accordion-item`
15
+
16
+ `lr-details` is a native-semantics disclosure panel. `lr-accordion` coordinates slotted
17
+ details panels and closes siblings unless `multiple` is true. `lr-accordion-item` is an
18
+ accordion-compatible alias.
19
+
20
+ **Properties:** `open`, `disabled`, and `summary` on details/items; `multiple` on accordion.
21
+ **Events:** `lr-toggle` with `{ open }` from details/items. **Slots:** `summary` and default
22
+ content on details/items; default panels on accordion. **CSS parts:** `base`, `summary`, `content`
23
+ on details/items; `base` on accordion.
@@ -0,0 +1,185 @@
1
+ <!-- GENERATED by scripts/build-llms.mjs from llms/overlays.md — do not edit this file. -->
2
+
3
+ # `lr-dialog`
4
+
5
+ - **Import** `import '@aceshooting/lyra-ui/components/overlays/dialog/dialog.js';` (registers the tag; side-effect import)
6
+ - **Class** `LyraDialog`, also available unregistered from `@aceshooting/lyra-ui/components/overlays/dialog/dialog.class.js`
7
+ - **Family** `components/overlays/` — see `llms/index.md` for its siblings
8
+ - **Optional peers** none
9
+ - **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
10
+
11
+ ---
12
+
13
+ ## `lr-dialog` / `confirm()`
14
+
15
+ General-purpose modal/overlay plus a promise-based confirmation helper built on top of it.
16
+
17
+ ### `lr-dialog`
18
+
19
+ A modal/overlay: `role="dialog"`, focus-trapped while open, dismissible via Escape or a backdrop
20
+ click, and scroll-locks the document for as long as it's open. Chrome stays minimal by default — no
21
+ built-in title bar or close button; a consumer supplies a heading and any close affordance itself via
22
+ the default/`footer` slots. `heading`/`closable` are an opt-in convenience for the common case where
23
+ hand-building that chrome isn't worth it.
24
+
25
+ **Properties:**
26
+ - `open: boolean = false` (reflected) — there is no separate `show()`/`hide()` pair; set this (or
27
+ call `close()`)
28
+ - `label: string = ''` — accessible name used only when no heading is slotted and `heading` is unset
29
+ (see below)
30
+ - `heading?: string` — visible header text (rendered in `[part="header"]`/`[part="heading"]`), used
31
+ only when no light-DOM heading is slotted into the default slot; has no effect (renders nothing)
32
+ when a heading element *is* slotted, which keeps working completely unchanged either way
33
+ - `closable: boolean = false` (attribute `closable`) — renders a built-in close (X) button in the
34
+ header row (creating one, with no heading text, if `heading` is unset), wired to the same
35
+ `close()` path Escape/backdrop-dismiss already use, with reason `'close-button'`
36
+ - `noLightDismiss: boolean = false` (attribute `no-light-dismiss`) — prevents a backdrop click from
37
+ closing the dialog; Escape and explicit `close()` calls remain available
38
+
39
+ Also settable as a plain `aria-label` attribute (not a public JS property): overrides the panel's
40
+ computed accessible name outright, winning over every other source below (a slotted heading,
41
+ `heading`, `label`) — matching `<lr-date-input>`'s `accessibleLabel` pattern. Left unset, the
42
+ existing three-tier fallback below is unchanged.
43
+
44
+ **Methods:** `close(reason: DialogCloseReason = 'api'): void` — closes the dialog, emits
45
+ `lr-dialog-close` with `reason`, and returns focus to whatever had it right before the dialog
46
+ opened. `DialogCloseReason = 'escape' | 'backdrop' | 'close-button' | 'api' | 'unmount' | string` —
47
+ `'escape'`/`'backdrop'` are emitted by the dialog's own built-in dismiss triggers; `'close-button'`
48
+ by the built-in header close button (rendered when `closable` is set); `'unmount'` is emitted
49
+ automatically if the dialog is removed from the DOM while still `open` by anything other than its
50
+ own `close()` (a consumer's own cleanup code, a parent re-render that drops it); any other string is
51
+ whatever a caller passes (e.g. a footer Cancel button calling `dlg.close('cancel')`, or `confirm()`'s
52
+ own `'confirm'`/`'cancel'`).
53
+
54
+ **Events:** `lr-dialog-close` (`detail: DialogCloseReason`) — fired on every dismissal path
55
+ (Escape, backdrop click, any `close()` call, or an `'unmount'` removal as above).
56
+
57
+ **Stacking:** participates in the shared per-document overlay stack described above. A dialog can be
58
+ stacked with another dialog or any other modal family; only the visually topmost overlay receives
59
+ Escape, Tab trapping, or backdrop dismissal, while overlays beneath remain open until the top one
60
+ closes.
61
+
62
+ **Slots:** default (the dialog body), `footer` (action buttons, rendered in a bottom row, hidden
63
+ entirely when empty)
64
+
65
+ **CSS parts:** `backdrop` (the full-viewport scrim), `panel` (the dialog panel, `role="dialog"`
66
+ while open; its max-inline-size is controlled by `--lr-dialog-max-width`), `header` (the header
67
+ row, rendered when `heading` is set — and no heading is slotted — and/or `closable` is `true`),
68
+ `heading` (the visible `heading`-text element inside `header`, rendered only when `heading` is set
69
+ and no heading is slotted), `close-button` (the built-in close button inside `header`, rendered only
70
+ when `closable` is `true`), `label` (the invisible label-text element used for `aria-labelledby`
71
+ when no heading is slotted and `heading` is unset), `body` (wrapper around the default slot),
72
+ `footer` (wrapper around the `footer` slot)
73
+
74
+ **Themeable custom properties:** `--lr-dialog-overlay-color` (default `rgb(0 0 0 / 0.5)` — the
75
+ backdrop scrim color; component-specific since no shared `--lr-*` overlay token exists),
76
+ `--lr-dialog-width` (default unset/`auto` — the panel shrink-wraps to content, unchanged; set it
77
+ for an assertive width instead), `--lr-dialog-max-width` (default `32rem` — the panel's
78
+ max-inline-size cap, via `min(var(--lr-dialog-max-width, var(--lr-dialog-width, 32rem)), 100%)`;
79
+ when `--lr-dialog-width` is set but `--lr-dialog-max-width` is left at its default, the cap falls
80
+ back to the requested width itself — not the `32rem` default — so an assertive width isn't silently
81
+ clipped; the viewport is still a hard limit either way), plus shared tokens `--lr-space-l/-m/-s`,
82
+ `--lr-color-surface/-border`, `--lr-radius`, `--lr-shadow`.
83
+
84
+ **Optional peer deps:** none.
85
+
86
+ ```html
87
+ <lr-dialog id="dlg">
88
+ <h2>Delete item?</h2>
89
+ <p>This cannot be undone.</p>
90
+ <div slot="footer">
91
+ <button id="cancel">Cancel</button>
92
+ <button id="confirm">Delete</button>
93
+ </div>
94
+ </lr-dialog>
95
+ <script type="module">
96
+ const dlg = document.getElementById('dlg');
97
+ dlg.open = true;
98
+ dlg.addEventListener('lr-dialog-close', (e) => console.log('closed:', e.detail));
99
+ document.getElementById('cancel').addEventListener('click', () => dlg.close('cancel'));
100
+ </script>
101
+ ```
102
+
103
+ Accessible name / visible header, in priority order: (0) if the host element itself has an
104
+ `aria-label` attribute set, its value becomes `aria-label` on the panel outright, overriding every
105
+ source below (including a slotted heading) and suppressing the visible header/`heading` row and the
106
+ sr-only `label` element from rendering at all — the standard ARIA convention for a consumer that
107
+ wants full control over the announced name regardless of whatever `heading`/`label` props are also
108
+ set; (1) otherwise, if a heading element (`h1`–`h6` or
109
+ `[role="heading"]`) is a *direct child* (not inside `slot="footer"`), its text content becomes
110
+ `aria-label` on the panel — takes priority over `heading` below so an existing consumer that already
111
+ slots its own heading keeps rendering it exactly as before; (2) otherwise, when `heading` is set, a
112
+ visible header row (`[part="header"]`) renders containing that text (`[part="heading"]`), which
113
+ becomes the `aria-labelledby` target; (3) otherwise, when `label` is set, an invisible (`.sr-only`,
114
+ exposed as the `label` part) element carrying that text is rendered inside the panel and
115
+ `aria-labelledby` points at it instead. Only one of cases 2/3 ever renders at a time. `label` itself
116
+ never renders visible chrome on its own — `::part(label)` can be restyled to make the sr-only text
117
+ visible, or `heading` can be set instead, for visible chrome without slotting a real heading element.
118
+ The slotted-heading case (1) deliberately uses `aria-label` (a copied string) rather than
119
+ `aria-labelledby` pointing at the heading's `id`, because the heading is light-DOM content while
120
+ `[part="panel"]` lives in shadow DOM and an ID-reference attribute can't resolve across that
121
+ boundary; cases 2/3 use `aria-labelledby` safely since their target renders inside the same shadow
122
+ root it labels.
123
+
124
+ **Known gotchas:**
125
+ - `role="dialog"`/`aria-modal="true"` are only present on `[part="panel"]` while `open` is `true` —
126
+ inspecting closed markup won't show them.
127
+ - Heading detection only rescans on `slotchange`, not on every render — mutating an already-slotted
128
+ heading's `textContent` in place (rather than replacing the node) won't retroactively update
129
+ `aria-label`; set `label` instead for a title that needs to change live.
130
+ - Only *direct* children are scanned for a heading — one nested several layers deep, or inside a
131
+ slotted custom element's own shadow root, is left to the consumer to label explicitly via `label`.
132
+ - A reconnect that preserves the same element instance (e.g. a drag-and-drop reparent) resumes its
133
+ shared overlay registration and re-acquires the scroll lock if `open` was still `true` across the
134
+ move — `disconnectedCallback`/`connectedCallback` fire back-to-back with no update in between, so
135
+ `willUpdate()` alone wouldn't otherwise notice.
136
+ - Tab-trap focus order follows the default (body) slot, then the `footer` slot — the same order the
137
+ flattened tree already tabs through — and is resolved shadow-piercingly, so a slotted custom
138
+ element's real focusable target inside its own shadow root is found even though the host tag
139
+ itself isn't a native focusable element.
140
+
141
+ ### `confirm()`
142
+
143
+ A drop-in async replacement for `window.confirm()`, built on `<lr-dialog>`.
144
+
145
+ ```ts
146
+ import { confirm } from '@aceshooting/lyra-ui/components/overlays/dialog/confirm.js';
147
+
148
+ const ok = await confirm({
149
+ title: 'Delete conversation?',
150
+ description: 'This cannot be undone.',
151
+ confirmLabel: 'Delete',
152
+ tone: 'danger',
153
+ });
154
+ if (ok) deleteConversation();
155
+ ```
156
+
157
+ `confirm(options: ConfirmOptions): Promise<boolean>` where
158
+ `ConfirmOptions = { title: string; description?: string; confirmLabel?: string /* = 'Confirm' */; cancelLabel?: string /* = 'Cancel' */; tone?: 'neutral' | 'danger' /* = 'neutral' */ }`.
159
+
160
+ Resolves `true` only when the confirm button is pressed — Escape, a backdrop click, and the cancel
161
+ button all resolve `false`. Mounts a transient `<lr-dialog>` on `document.body` for the duration
162
+ of the call and removes it once settled, rather than reusing a persistent page-level region
163
+ (contrast `lr-toast`'s `toaster.ts`): a confirmation modal has no stacking/queueing concerns —
164
+ only one is ever meant to be open at a time — so a mount-and-remove per call keeps its lifetime
165
+ trivially tied to the returned promise. `title` becomes a slotted `<h2>`, which per `<lr-dialog>`'s
166
+ own heading-detection also drives the dialog's accessible name; `description`, if provided, becomes
167
+ a slotted `<p>`. `tone: 'danger'` fills the confirm button with `--lr-color-danger` instead of
168
+ `--lr-color-brand`, for destructive actions. Confirm/cancel buttons are plain inline-styled
169
+ `<button>` elements (no shared button component exists in this library yet), but every color value
170
+ used is still a `--lr-*` token reference, never a raw literal.
171
+
172
+ **Known gotchas:**
173
+ - Every dismissal path (confirm button, cancel button, Escape, backdrop click) funnels through
174
+ `<lr-dialog>`'s own `close()`/`lr-dialog-close` event, so there is exactly one place that
175
+ resolves the promise and tears the dialog down — a consumer never needs to (and shouldn't) call
176
+ `.remove()` itself.
177
+ - The neutral confirm button pairs `--lr-color-on-brand` with `--lr-color-brand`; the danger
178
+ tone pairs `--lr-color-on-danger` with `--lr-color-danger`. Each token chains through Web
179
+ Awesome's matching `*-on-loud` semantic role and has contrast-tested standalone light/dark
180
+ fallbacks.
181
+ - Importing `confirm` alone is enough to register `<lr-dialog>` — `confirm.ts` imports
182
+ `./dialog.js` for its side effect, so a consumer doesn't need a separate import for the dialog
183
+ element.
184
+
185
+ ---