@aceshooting/lyra-ui 1.2.0 → 2.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 (384) hide show
  1. package/README.md +98 -14
  2. package/custom-elements.json +30279 -12124
  3. package/dist/components/app-rail/app-rail-item.d.ts +30 -0
  4. package/dist/components/app-rail/app-rail-item.js +68 -0
  5. package/dist/components/app-rail/app-rail-item.styles.d.ts +1 -0
  6. package/dist/components/app-rail/app-rail-item.styles.js +65 -0
  7. package/dist/components/app-rail/app-rail.d.ts +168 -0
  8. package/dist/components/app-rail/app-rail.js +419 -0
  9. package/dist/components/app-rail/app-rail.styles.d.ts +1 -0
  10. package/dist/components/app-rail/app-rail.styles.js +128 -0
  11. package/dist/components/attachment-chip/attachment-chip.d.ts +141 -0
  12. package/dist/components/attachment-chip/attachment-chip.js +356 -0
  13. package/dist/components/attachment-chip/attachment-chip.styles.d.ts +1 -0
  14. package/dist/components/attachment-chip/attachment-chip.styles.js +184 -0
  15. package/dist/components/attachment-trigger/attachment-trigger.d.ts +96 -0
  16. package/dist/components/attachment-trigger/attachment-trigger.js +270 -0
  17. package/dist/components/attachment-trigger/attachment-trigger.styles.d.ts +1 -0
  18. package/dist/components/attachment-trigger/attachment-trigger.styles.js +90 -0
  19. package/dist/components/chart/bar-chart.js +2 -18
  20. package/dist/components/chart/box-plot.d.ts +25 -1
  21. package/dist/components/chart/box-plot.js +147 -7
  22. package/dist/components/chart/box-plot.styles.js +13 -0
  23. package/dist/components/chart/bubble-chart.js +2 -18
  24. package/dist/components/chart/chart-loader.d.ts +44 -13
  25. package/dist/components/chart/chart-loader.js +65 -18
  26. package/dist/components/chart/chart.d.ts +55 -12
  27. package/dist/components/chart/chart.js +247 -49
  28. package/dist/components/chart/doughnut-chart.js +2 -18
  29. package/dist/components/chart/histogram-bin.d.ts +7 -1
  30. package/dist/components/chart/histogram-bin.js +32 -14
  31. package/dist/components/chart/histogram.js +8 -16
  32. package/dist/components/chart/line-chart.js +2 -18
  33. package/dist/components/chart/lite-chart.d.ts +134 -3
  34. package/dist/components/chart/lite-chart.js +382 -67
  35. package/dist/components/chart/lite-chart.styles.js +9 -0
  36. package/dist/components/chart/pie-chart.js +2 -18
  37. package/dist/components/chart/polar-area-chart.js +2 -18
  38. package/dist/components/chart/radar-chart.js +2 -18
  39. package/dist/components/chart/scatter-chart.js +2 -18
  40. package/dist/components/chat-composer/chat-composer.d.ts +133 -0
  41. package/dist/components/chat-composer/chat-composer.js +366 -0
  42. package/dist/components/chat-composer/chat-composer.styles.d.ts +1 -0
  43. package/dist/components/chat-composer/chat-composer.styles.js +145 -0
  44. package/dist/components/chat-message/chat-message.d.ts +141 -0
  45. package/dist/components/chat-message/chat-message.js +331 -0
  46. package/dist/components/chat-message/chat-message.styles.d.ts +1 -0
  47. package/dist/components/chat-message/chat-message.styles.js +203 -0
  48. package/dist/components/checkbox/checkbox.d.ts +117 -0
  49. package/dist/components/checkbox/checkbox.js +353 -0
  50. package/dist/components/checkbox/checkbox.styles.d.ts +1 -0
  51. package/dist/components/checkbox/checkbox.styles.js +77 -0
  52. package/dist/components/chip/chip-group.d.ts +56 -0
  53. package/dist/components/chip/chip-group.js +130 -0
  54. package/dist/components/chip/chip-group.styles.d.ts +1 -0
  55. package/dist/components/chip/chip-group.styles.js +57 -0
  56. package/dist/components/chip/chip.d.ts +64 -0
  57. package/dist/components/chip/chip.js +122 -0
  58. package/dist/components/chip/chip.styles.d.ts +1 -0
  59. package/dist/components/chip/chip.styles.js +115 -0
  60. package/dist/components/citation-badge/citation-badge.d.ts +113 -0
  61. package/dist/components/citation-badge/citation-badge.js +318 -0
  62. package/dist/components/citation-badge/citation-badge.styles.d.ts +1 -0
  63. package/dist/components/citation-badge/citation-badge.styles.js +96 -0
  64. package/dist/components/code-block/code-block.d.ts +127 -0
  65. package/dist/components/code-block/code-block.js +382 -0
  66. package/dist/components/code-block/code-block.styles.d.ts +1 -0
  67. package/dist/components/code-block/code-block.styles.js +187 -0
  68. package/dist/components/code-block/code-loader.d.ts +87 -0
  69. package/dist/components/code-block/code-loader.js +142 -0
  70. package/dist/components/combobox/combobox.d.ts +65 -6
  71. package/dist/components/combobox/combobox.js +258 -48
  72. package/dist/components/combobox/combobox.styles.js +3 -3
  73. package/dist/components/combobox/option.d.ts +5 -1
  74. package/dist/components/combobox/option.js +35 -0
  75. package/dist/components/context-meter/context-meter.d.ts +53 -0
  76. package/dist/components/context-meter/context-meter.js +159 -0
  77. package/dist/components/context-meter/context-meter.styles.d.ts +1 -0
  78. package/dist/components/context-meter/context-meter.styles.js +114 -0
  79. package/dist/components/conversation-item/conversation-item.d.ts +125 -0
  80. package/dist/components/conversation-item/conversation-item.js +331 -0
  81. package/dist/components/conversation-item/conversation-item.styles.d.ts +1 -0
  82. package/dist/components/conversation-item/conversation-item.styles.js +155 -0
  83. package/dist/components/date-picker/calendar-core.d.ts +24 -0
  84. package/dist/components/date-picker/calendar-core.js +51 -4
  85. package/dist/components/date-picker/date-input.d.ts +100 -9
  86. package/dist/components/date-picker/date-input.js +383 -66
  87. package/dist/components/date-picker/date-picker.d.ts +35 -4
  88. package/dist/components/date-picker/date-picker.js +171 -44
  89. package/dist/components/dialog/confirm.d.ts +40 -0
  90. package/dist/components/dialog/confirm.js +76 -0
  91. package/dist/components/dialog/dialog.d.ts +129 -0
  92. package/dist/components/dialog/dialog.js +288 -0
  93. package/dist/components/dialog/dialog.styles.d.ts +1 -0
  94. package/dist/components/dialog/dialog.styles.js +96 -0
  95. package/dist/components/dock-panel/dock-panel.d.ts +142 -0
  96. package/dist/components/dock-panel/dock-panel.js +359 -0
  97. package/dist/components/dock-panel/dock-panel.styles.d.ts +1 -0
  98. package/dist/components/dock-panel/dock-panel.styles.js +159 -0
  99. package/dist/components/document-preview/document-preview.d.ts +143 -0
  100. package/dist/components/document-preview/document-preview.js +388 -0
  101. package/dist/components/document-preview/document-preview.styles.d.ts +1 -0
  102. package/dist/components/document-preview/document-preview.styles.js +191 -0
  103. package/dist/components/empty/empty.d.ts +1 -2
  104. package/dist/components/empty/empty.js +18 -12
  105. package/dist/components/empty/empty.styles.js +0 -3
  106. package/dist/components/export-button/csv.js +1 -1
  107. package/dist/components/export-button/export-button.d.ts +12 -0
  108. package/dist/components/export-button/export-button.js +35 -5
  109. package/dist/components/export-button/export-button.styles.js +5 -1
  110. package/dist/components/file-input/accept.js +2 -0
  111. package/dist/components/file-input/file-input.d.ts +10 -1
  112. package/dist/components/file-input/file-input.js +36 -5
  113. package/dist/components/flag/flag.d.ts +29 -13
  114. package/dist/components/flag/flag.js +54 -14
  115. package/dist/components/flag/flag.styles.js +1 -1
  116. package/dist/components/flag/language-map.d.ts +4 -1
  117. package/dist/components/flag/language-map.js +6 -3
  118. package/dist/components/gauge/gauge.d.ts +10 -1
  119. package/dist/components/gauge/gauge.js +41 -13
  120. package/dist/components/generation-status/generation-status.d.ts +117 -0
  121. package/dist/components/generation-status/generation-status.js +327 -0
  122. package/dist/components/generation-status/generation-status.styles.d.ts +1 -0
  123. package/dist/components/generation-status/generation-status.styles.js +84 -0
  124. package/dist/components/graph/graph.d.ts +37 -3
  125. package/dist/components/graph/graph.js +132 -20
  126. package/dist/components/heatmap/calendar-grid.d.ts +19 -7
  127. package/dist/components/heatmap/calendar-grid.js +42 -18
  128. package/dist/components/heatmap/heatmap-scale.d.ts +11 -1
  129. package/dist/components/heatmap/heatmap-scale.js +14 -2
  130. package/dist/components/heatmap/heatmap.d.ts +227 -12
  131. package/dist/components/heatmap/heatmap.js +488 -93
  132. package/dist/components/json-viewer/json-viewer.d.ts +70 -0
  133. package/dist/components/json-viewer/json-viewer.js +361 -0
  134. package/dist/components/json-viewer/json-viewer.styles.d.ts +1 -0
  135. package/dist/components/json-viewer/json-viewer.styles.js +177 -0
  136. package/dist/components/kbd/kbd.d.ts +77 -0
  137. package/dist/components/kbd/kbd.js +231 -0
  138. package/dist/components/kbd/kbd.styles.d.ts +1 -0
  139. package/dist/components/kbd/kbd.styles.js +52 -0
  140. package/dist/components/live-region/live-region.d.ts +90 -0
  141. package/dist/components/live-region/live-region.js +189 -0
  142. package/dist/components/live-region/live-region.styles.d.ts +1 -0
  143. package/dist/components/live-region/live-region.styles.js +10 -0
  144. package/dist/components/map/map.d.ts +32 -7
  145. package/dist/components/map/map.js +133 -32
  146. package/dist/components/markdown/markdown-loader.d.ts +58 -0
  147. package/dist/components/markdown/markdown-loader.js +77 -0
  148. package/dist/components/markdown/markdown.d.ts +119 -0
  149. package/dist/components/markdown/markdown.js +389 -0
  150. package/dist/components/markdown/markdown.styles.d.ts +1 -0
  151. package/dist/components/markdown/markdown.styles.js +88 -0
  152. package/dist/components/media-card/media-card.d.ts +130 -0
  153. package/dist/components/media-card/media-card.js +273 -0
  154. package/dist/components/media-card/media-card.styles.d.ts +1 -0
  155. package/dist/components/media-card/media-card.styles.js +132 -0
  156. package/dist/components/mention-popover/mention-popover.d.ts +203 -0
  157. package/dist/components/mention-popover/mention-popover.js +493 -0
  158. package/dist/components/mention-popover/mention-popover.styles.d.ts +1 -0
  159. package/dist/components/mention-popover/mention-popover.styles.js +101 -0
  160. package/dist/components/menu/menu-item.d.ts +91 -0
  161. package/dist/components/menu/menu-item.js +206 -0
  162. package/dist/components/menu/menu-item.styles.d.ts +1 -0
  163. package/dist/components/menu/menu-item.styles.js +75 -0
  164. package/dist/components/menu/menu.d.ts +167 -0
  165. package/dist/components/menu/menu.js +461 -0
  166. package/dist/components/menu/menu.styles.d.ts +1 -0
  167. package/dist/components/menu/menu.styles.js +67 -0
  168. package/dist/components/model-select/model-select.d.ts +170 -0
  169. package/dist/components/model-select/model-select.js +588 -0
  170. package/dist/components/model-select/model-select.styles.d.ts +1 -0
  171. package/dist/components/model-select/model-select.styles.js +203 -0
  172. package/dist/components/model-settings-panel/model-settings-panel.d.ts +93 -0
  173. package/dist/components/model-settings-panel/model-settings-panel.js +209 -0
  174. package/dist/components/model-settings-panel/model-settings-panel.styles.d.ts +1 -0
  175. package/dist/components/model-settings-panel/model-settings-panel.styles.js +82 -0
  176. package/dist/components/playback/playback.d.ts +19 -3
  177. package/dist/components/playback/playback.js +109 -33
  178. package/dist/components/playback/playback.styles.js +6 -1
  179. package/dist/components/responsive-panel/responsive-panel.d.ts +163 -0
  180. package/dist/components/responsive-panel/responsive-panel.js +363 -0
  181. package/dist/components/responsive-panel/responsive-panel.styles.d.ts +1 -0
  182. package/dist/components/responsive-panel/responsive-panel.styles.js +103 -0
  183. package/dist/components/result-card/result-card.d.ts +50 -0
  184. package/dist/components/result-card/result-card.js +89 -0
  185. package/dist/components/result-card/result-card.styles.d.ts +1 -0
  186. package/dist/components/result-card/result-card.styles.js +49 -0
  187. package/dist/components/result-card/result-field.d.ts +36 -0
  188. package/dist/components/result-card/result-field.js +87 -0
  189. package/dist/components/result-card/result-field.styles.d.ts +1 -0
  190. package/dist/components/result-card/result-field.styles.js +32 -0
  191. package/dist/components/select/select.d.ts +84 -4
  192. package/dist/components/select/select.js +251 -36
  193. package/dist/components/skeleton/skeleton.d.ts +3 -0
  194. package/dist/components/skeleton/skeleton.js +7 -1
  195. package/dist/components/skeleton/skeleton.styles.js +5 -4
  196. package/dist/components/slider/slider.d.ts +141 -0
  197. package/dist/components/slider/slider.js +467 -0
  198. package/dist/components/slider/slider.styles.d.ts +1 -0
  199. package/dist/components/slider/slider.styles.js +87 -0
  200. package/dist/components/source-card/source-card.d.ts +104 -0
  201. package/dist/components/source-card/source-card.js +195 -0
  202. package/dist/components/source-card/source-card.styles.d.ts +1 -0
  203. package/dist/components/source-card/source-card.styles.js +69 -0
  204. package/dist/components/source-list/source-list.d.ts +63 -0
  205. package/dist/components/source-list/source-list.js +130 -0
  206. package/dist/components/source-list/source-list.styles.d.ts +1 -0
  207. package/dist/components/source-list/source-list.styles.js +59 -0
  208. package/dist/components/sparkline/sparkline.js +58 -20
  209. package/dist/components/split/split.d.ts +224 -5
  210. package/dist/components/split/split.js +617 -43
  211. package/dist/components/split/split.styles.js +47 -0
  212. package/dist/components/stat/stat.d.ts +15 -4
  213. package/dist/components/stat/stat.js +53 -12
  214. package/dist/components/stream-status/stream-status.d.ts +126 -0
  215. package/dist/components/stream-status/stream-status.js +292 -0
  216. package/dist/components/stream-status/stream-status.styles.d.ts +1 -0
  217. package/dist/components/stream-status/stream-status.styles.js +103 -0
  218. package/dist/components/streaming-text/streaming-text.d.ts +104 -0
  219. package/dist/components/streaming-text/streaming-text.js +224 -0
  220. package/dist/components/streaming-text/streaming-text.styles.d.ts +1 -0
  221. package/dist/components/streaming-text/streaming-text.styles.js +63 -0
  222. package/dist/components/switch/switch.d.ts +103 -0
  223. package/dist/components/switch/switch.js +250 -0
  224. package/dist/components/switch/switch.styles.d.ts +1 -0
  225. package/dist/components/switch/switch.styles.js +75 -0
  226. package/dist/components/table/table.d.ts +89 -5
  227. package/dist/components/table/table.js +243 -26
  228. package/dist/components/table/table.styles.js +6 -1
  229. package/dist/components/tabs/tabs.d.ts +74 -0
  230. package/dist/components/tabs/tabs.js +254 -0
  231. package/dist/components/tabs/tabs.styles.d.ts +1 -0
  232. package/dist/components/tabs/tabs.styles.js +74 -0
  233. package/dist/components/thinking-panel/thinking-panel.d.ts +123 -0
  234. package/dist/components/thinking-panel/thinking-panel.js +260 -0
  235. package/dist/components/thinking-panel/thinking-panel.styles.d.ts +1 -0
  236. package/dist/components/thinking-panel/thinking-panel.styles.js +123 -0
  237. package/dist/components/time-range/time-range.d.ts +59 -2
  238. package/dist/components/time-range/time-range.js +163 -67
  239. package/dist/components/toast/toast-item.d.ts +12 -2
  240. package/dist/components/toast/toast-item.js +106 -44
  241. package/dist/components/toast/toast-item.styles.js +59 -28
  242. package/dist/components/toast/toast.js +17 -5
  243. package/dist/components/toast/toaster.js +10 -1
  244. package/dist/components/tool-approval-dialog/tool-approval-dialog.d.ts +131 -0
  245. package/dist/components/tool-approval-dialog/tool-approval-dialog.js +329 -0
  246. package/dist/components/tool-approval-dialog/tool-approval-dialog.styles.d.ts +1 -0
  247. package/dist/components/tool-approval-dialog/tool-approval-dialog.styles.js +160 -0
  248. package/dist/components/tool-call-chip/tool-call-chip.d.ts +105 -0
  249. package/dist/components/tool-call-chip/tool-call-chip.js +349 -0
  250. package/dist/components/tool-call-chip/tool-call-chip.styles.d.ts +1 -0
  251. package/dist/components/tool-call-chip/tool-call-chip.styles.js +203 -0
  252. package/dist/components/tool-param-form/tool-param-form.d.ts +206 -0
  253. package/dist/components/tool-param-form/tool-param-form.js +610 -0
  254. package/dist/components/tool-param-form/tool-param-form.styles.d.ts +1 -0
  255. package/dist/components/tool-param-form/tool-param-form.styles.js +75 -0
  256. package/dist/components/tool-result-dialog/tool-result-dialog.d.ts +122 -0
  257. package/dist/components/tool-result-dialog/tool-result-dialog.js +358 -0
  258. package/dist/components/tool-result-dialog/tool-result-dialog.styles.d.ts +1 -0
  259. package/dist/components/tool-result-dialog/tool-result-dialog.styles.js +176 -0
  260. package/dist/components/tool-result-view/registry.d.ts +73 -0
  261. package/dist/components/tool-result-view/registry.js +89 -0
  262. package/dist/components/tool-result-view/tool-result-view.d.ts +58 -0
  263. package/dist/components/tool-result-view/tool-result-view.js +152 -0
  264. package/dist/components/tool-result-view/tool-result-view.styles.d.ts +1 -0
  265. package/dist/components/tool-result-view/tool-result-view.styles.js +13 -0
  266. package/dist/components/tool-select-dialog/tool-select-dialog.d.ts +151 -0
  267. package/dist/components/tool-select-dialog/tool-select-dialog.js +350 -0
  268. package/dist/components/tool-select-dialog/tool-select-dialog.styles.d.ts +1 -0
  269. package/dist/components/tool-select-dialog/tool-select-dialog.styles.js +191 -0
  270. package/dist/components/tree/tree-node.d.ts +15 -3
  271. package/dist/components/tree/tree-node.js +20 -7
  272. package/dist/components/tree/tree.d.ts +25 -10
  273. package/dist/components/tree/tree.js +39 -31
  274. package/dist/components/typing-indicator/typing-indicator.d.ts +70 -0
  275. package/dist/components/typing-indicator/typing-indicator.js +108 -0
  276. package/dist/components/typing-indicator/typing-indicator.styles.d.ts +1 -0
  277. package/dist/components/typing-indicator/typing-indicator.styles.js +132 -0
  278. package/dist/components/virtual-list/virtual-list.d.ts +210 -0
  279. package/dist/components/virtual-list/virtual-list.js +607 -0
  280. package/dist/components/virtual-list/virtual-list.styles.d.ts +1 -0
  281. package/dist/components/virtual-list/virtual-list.styles.js +56 -0
  282. package/dist/components/widget/widget.d.ts +5 -4
  283. package/dist/components/widget/widget.js +54 -120
  284. package/dist/components/widget/widget.styles.js +8 -2
  285. package/dist/components/word-cloud/word-cloud-layout.d.ts +7 -0
  286. package/dist/components/word-cloud/word-cloud-layout.js +29 -2
  287. package/dist/components/word-cloud/word-cloud.d.ts +28 -2
  288. package/dist/components/word-cloud/word-cloud.js +69 -19
  289. package/dist/components/word-cloud/word-cloud.styles.js +16 -3
  290. package/dist/internal/anchored-validity.d.ts +1 -0
  291. package/dist/internal/anchored-validity.js +86 -0
  292. package/dist/internal/announcer.d.ts +57 -0
  293. package/dist/internal/announcer.js +71 -0
  294. package/dist/internal/form-associated.d.ts +8 -0
  295. package/dist/internal/form-associated.js +98 -15
  296. package/dist/internal/group-by-recency.d.ts +50 -0
  297. package/dist/internal/group-by-recency.js +80 -0
  298. package/dist/internal/numbers.d.ts +12 -0
  299. package/dist/internal/numbers.js +26 -0
  300. package/dist/internal/overlay-manager.d.ts +51 -0
  301. package/dist/internal/overlay-manager.js +523 -0
  302. package/dist/internal/positioner.js +27 -3
  303. package/dist/internal/rtl.d.ts +23 -0
  304. package/dist/internal/rtl.js +28 -0
  305. package/dist/internal/safe-url.d.ts +12 -0
  306. package/dist/internal/safe-url.js +41 -0
  307. package/dist/internal/scroll-lock.d.ts +10 -5
  308. package/dist/internal/scroll-lock.js +30 -14
  309. package/dist/internal/tokens.styles.js +22 -10
  310. package/dist/lyra.d.ts +133 -31
  311. package/dist/lyra.js +96 -26
  312. package/llms-full.txt +4546 -183
  313. package/llms.txt +21 -5
  314. package/package.json +41 -6
  315. package/dist/components/chart/bar-chart.stories.d.ts +0 -5
  316. package/dist/components/chart/bar-chart.stories.js +0 -20
  317. package/dist/components/chart/box-plot.stories.d.ts +0 -5
  318. package/dist/components/chart/box-plot.stories.js +0 -29
  319. package/dist/components/chart/bubble-chart.stories.d.ts +0 -5
  320. package/dist/components/chart/bubble-chart.stories.js +0 -26
  321. package/dist/components/chart/chart.stories.d.ts +0 -32
  322. package/dist/components/chart/chart.stories.js +0 -141
  323. package/dist/components/chart/doughnut-chart.stories.d.ts +0 -5
  324. package/dist/components/chart/doughnut-chart.stories.js +0 -26
  325. package/dist/components/chart/histogram.stories.d.ts +0 -5
  326. package/dist/components/chart/histogram.stories.js +0 -17
  327. package/dist/components/chart/line-chart.stories.d.ts +0 -22
  328. package/dist/components/chart/line-chart.stories.js +0 -99
  329. package/dist/components/chart/lite-chart.stories.d.ts +0 -14
  330. package/dist/components/chart/lite-chart.stories.js +0 -114
  331. package/dist/components/chart/pie-chart.stories.d.ts +0 -5
  332. package/dist/components/chart/pie-chart.stories.js +0 -26
  333. package/dist/components/chart/polar-area-chart.stories.d.ts +0 -5
  334. package/dist/components/chart/polar-area-chart.stories.js +0 -20
  335. package/dist/components/chart/radar-chart.stories.d.ts +0 -5
  336. package/dist/components/chart/radar-chart.stories.js +0 -20
  337. package/dist/components/chart/scatter-chart.stories.d.ts +0 -5
  338. package/dist/components/chart/scatter-chart.stories.js +0 -31
  339. package/dist/components/combobox/combobox.stories.d.ts +0 -24
  340. package/dist/components/combobox/combobox.stories.js +0 -102
  341. package/dist/components/date-picker/date-input.stories.d.ts +0 -10
  342. package/dist/components/date-picker/date-input.stories.js +0 -48
  343. package/dist/components/date-picker/date-picker.stories.d.ts +0 -10
  344. package/dist/components/date-picker/date-picker.stories.js +0 -25
  345. package/dist/components/empty/empty.stories.d.ts +0 -7
  346. package/dist/components/empty/empty.stories.js +0 -34
  347. package/dist/components/export-button/export-button.stories.d.ts +0 -7
  348. package/dist/components/export-button/export-button.stories.js +0 -37
  349. package/dist/components/file-input/file-input.stories.d.ts +0 -7
  350. package/dist/components/file-input/file-input.stories.js +0 -19
  351. package/dist/components/flag/flag.stories.d.ts +0 -6
  352. package/dist/components/flag/flag.stories.js +0 -31
  353. package/dist/components/gauge/gauge.stories.d.ts +0 -8
  354. package/dist/components/gauge/gauge.stories.js +0 -19
  355. package/dist/components/graph/graph.stories.d.ts +0 -8
  356. package/dist/components/graph/graph.stories.js +0 -68
  357. package/dist/components/heatmap/heatmap.stories.d.ts +0 -27
  358. package/dist/components/heatmap/heatmap.stories.js +0 -179
  359. package/dist/components/map/map.stories.d.ts +0 -15
  360. package/dist/components/map/map.stories.js +0 -135
  361. package/dist/components/playback/playback.stories.d.ts +0 -7
  362. package/dist/components/playback/playback.stories.js +0 -16
  363. package/dist/components/select/select.stories.d.ts +0 -21
  364. package/dist/components/select/select.stories.js +0 -91
  365. package/dist/components/skeleton/skeleton.stories.d.ts +0 -5
  366. package/dist/components/skeleton/skeleton.stories.js +0 -16
  367. package/dist/components/sparkline/sparkline.stories.d.ts +0 -11
  368. package/dist/components/sparkline/sparkline.stories.js +0 -39
  369. package/dist/components/split/split.stories.d.ts +0 -7
  370. package/dist/components/split/split.stories.js +0 -36
  371. package/dist/components/stat/stat.stories.d.ts +0 -9
  372. package/dist/components/stat/stat.stories.js +0 -81
  373. package/dist/components/table/table.stories.d.ts +0 -12
  374. package/dist/components/table/table.stories.js +0 -67
  375. package/dist/components/time-range/time-range.stories.d.ts +0 -8
  376. package/dist/components/time-range/time-range.stories.js +0 -26
  377. package/dist/components/toast/toast.stories.d.ts +0 -8
  378. package/dist/components/toast/toast.stories.js +0 -72
  379. package/dist/components/tree/tree.stories.d.ts +0 -9
  380. package/dist/components/tree/tree.stories.js +0 -52
  381. package/dist/components/widget/widget.stories.d.ts +0 -9
  382. package/dist/components/widget/widget.stories.js +0 -74
  383. package/dist/components/word-cloud/word-cloud.stories.d.ts +0 -10
  384. package/dist/components/word-cloud/word-cloud.stories.js +0 -55
@@ -0,0 +1,59 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `
3
+ :host {
4
+ display: block;
5
+ }
6
+ [part='base'] {
7
+ border: 1px solid var(--lyra-color-border);
8
+ border-radius: var(--lyra-radius);
9
+ background: var(--lyra-color-surface);
10
+ overflow: hidden;
11
+ }
12
+ [part='header'] {
13
+ display: flex;
14
+ align-items: center;
15
+ gap: var(--lyra-space-xs);
16
+ inline-size: 100%;
17
+ padding: var(--lyra-space-s) var(--lyra-space-m);
18
+ border: none;
19
+ background: none;
20
+ color: var(--lyra-color-text);
21
+ font: inherit;
22
+ font-weight: 600;
23
+ font-size: 0.875rem;
24
+ text-align: start;
25
+ cursor: pointer;
26
+ }
27
+ [part='header']:hover {
28
+ background: var(--lyra-color-brand-quiet);
29
+ color: var(--lyra-color-brand);
30
+ }
31
+ [part='header']:focus-visible {
32
+ outline: var(--lyra-focus-ring-width) solid var(--lyra-focus-ring-color);
33
+ outline-offset: calc(-1 * var(--lyra-focus-ring-offset));
34
+ }
35
+ [part='toggle'] {
36
+ display: inline-flex;
37
+ flex: 0 0 auto;
38
+ transition: transform var(--lyra-transition-fast);
39
+ }
40
+ :host([expanded]) [part='toggle'] {
41
+ transform: rotate(90deg);
42
+ }
43
+ [part='list'] {
44
+ display: flex;
45
+ flex-direction: column;
46
+ gap: var(--lyra-space-s);
47
+ padding: 0 var(--lyra-space-m) var(--lyra-space-m);
48
+ border-block-start: 1px solid var(--lyra-color-border);
49
+ padding-block-start: var(--lyra-space-m);
50
+ }
51
+ [part='list'][hidden] {
52
+ display: none;
53
+ }
54
+ @media (prefers-reduced-motion: reduce) {
55
+ [part='toggle'] {
56
+ transition: none !important;
57
+ }
58
+ }
59
+ `;
@@ -11,13 +11,16 @@ import { defineElement } from '../../internal/prefix.js';
11
11
  import { styles } from './sparkline.styles.js';
12
12
  const VIEW = 100;
13
13
  // A <rect> per bar doesn't collapse into one path the way line/area do, so an
14
- // unbounded `values` array turns directly into that many shadow-DOM nodes.
15
- // Capping it keeps worst-case DOM size bounded without affecting any
16
- // realistically-sized bar chart.
17
- const MAX_BARS = 500;
14
+ // unbounded `values` array turns directly into that many shadow-DOM nodes --
15
+ // and an uncapped line/area path string grows without bound too. Capping the
16
+ // point count up front (shared by every render type) keeps worst-case
17
+ // DOM/compute bounded without affecting any realistically-sized chart.
18
+ const MAX_POINTS = 500; // shared point-count cap for every render type (line/area/bar)
18
19
  function decimate(arr, max) {
19
- const step = arr.length / max;
20
- return Array.from({ length: max }, (_, i) => arr[Math.floor(i * step)]);
20
+ if (arr.length <= max)
21
+ return [...arr];
22
+ const step = (arr.length - 1) / (max - 1); // anchors both the first AND last sample exactly
23
+ return Array.from({ length: max }, (_, i) => arr[Math.round(i * step)]);
21
24
  }
22
25
  /**
23
26
  * `<lyra-sparkline>` — a zero-dependency inline SVG trend chart.
@@ -38,17 +41,30 @@ export class LyraSparkline extends LyraElement {
38
41
  }
39
42
  static { this.styles = [LyraElement.styles, styles]; }
40
43
  points() {
41
- const v = this.values;
42
- let autoLo = v[0];
43
- let autoHi = v[0];
44
- for (const n of v) {
45
- if (n < autoLo)
46
- autoLo = n;
47
- if (n > autoHi)
48
- autoHi = n;
44
+ // Non-finite samples (NaN/undefined/null from upstream computed data)
45
+ // can't be plotted or compared -- drop them up front so one bad point
46
+ // can't inject a literal "NaN" into the path `d` string and truncate
47
+ // every point that follows it.
48
+ const raw = this.values.filter((n) => Number.isFinite(n));
49
+ // Auto min/max is scanned from the full, pre-decimation `values` -- doing
50
+ // this after decimating would silently narrow the scale to whatever the
51
+ // sampled subset happens to contain, which can clip or misproportion a
52
+ // real extreme value that decimation happened to drop. Skip the scan
53
+ // entirely when both bounds are already given explicitly -- its result
54
+ // would just be discarded.
55
+ let autoLo = raw[0];
56
+ let autoHi = raw[0];
57
+ if (this.min === undefined || this.max === undefined) {
58
+ for (const n of raw) {
59
+ if (n < autoLo)
60
+ autoLo = n;
61
+ if (n > autoHi)
62
+ autoHi = n;
63
+ }
49
64
  }
50
65
  const lo = this.min ?? autoLo;
51
66
  const hi = this.max ?? autoHi;
67
+ const v = raw.length > MAX_POINTS ? decimate(raw, MAX_POINTS) : raw;
52
68
  const span = hi - lo;
53
69
  return v.map((n, i) => {
54
70
  const x = v.length > 1 ? (i / (v.length - 1)) * VIEW : VIEW / 2;
@@ -59,7 +75,14 @@ export class LyraSparkline extends LyraElement {
59
75
  willUpdate() {
60
76
  const v = this.values;
61
77
  this.setAttribute('role', 'img');
62
- this.setAttribute('aria-label', v.length ? `Trend of ${v.length} values, last ${v.at(-1)}` : 'No data');
78
+ const last = v.at(-1);
79
+ // Real-world computed data (ratios, averages, percentages) carries
80
+ // floating-point noise that isn't meaningful to announce -- round it for
81
+ // the label the same way a human-facing value would be formatted.
82
+ const formattedLast = typeof last === 'number' && Number.isFinite(last)
83
+ ? last.toLocaleString(undefined, { maximumFractionDigits: 2 })
84
+ : last;
85
+ this.setAttribute('aria-label', v.length ? `Trend of ${v.length} values, last ${formattedLast}` : 'No data');
63
86
  }
64
87
  render() {
65
88
  const v = this.values;
@@ -68,18 +91,33 @@ export class LyraSparkline extends LyraElement {
68
91
  }
69
92
  const pts = this.points();
70
93
  if (this.type === 'bar') {
71
- const barPts = pts.length > MAX_BARS ? decimate(pts, MAX_BARS) : pts;
72
- const bars = barPts.map(([x, y]) => {
73
- const barY = Math.min(y, VIEW);
74
- return svg `<rect part="bar" x="${x - 2}" y="${barY}" width="4" height="${VIEW - barY}"></rect>`;
94
+ // Narrow the bar width as the (already decimated-to-MAX_POINTS) point
95
+ // count grows, so bars stop overlapping once there are more than a
96
+ // handful -- VIEW / pts.length is each bar's full "slot" width; keep a
97
+ // small gap between slots by drawing at 70% of it, floored at 1px and
98
+ // capped at the original fixed 4px for small point counts.
99
+ const slot = VIEW / pts.length;
100
+ const barWidth = Math.min(4, Math.max(1, slot * 0.7));
101
+ const bars = pts.map(([x, y]) => {
102
+ // Clamp symmetrically: a value below an explicit `min` pushes `y`
103
+ // above VIEW, and a value above an explicit `max` pushes it below 0 --
104
+ // only clamping one side left the other free to draw a negative-y,
105
+ // oversized rect that bled outside the sparkline's box.
106
+ const barY = Math.min(VIEW, Math.max(0, y));
107
+ return svg `<rect part="bar" x="${x - barWidth / 2}" y="${barY}" width="${barWidth}" height="${VIEW - barY}"></rect>`;
75
108
  });
76
109
  return html `<svg viewBox="0 0 ${VIEW} ${VIEW}" preserveAspectRatio="none" aria-hidden="true">
77
110
  ${bars}
78
111
  </svg>`;
79
112
  }
113
+ // pts can end up empty even though `values` itself isn't -- e.g. every
114
+ // entry was non-finite and got filtered out -- so the single-point
115
+ // fallback below can't assume pts[0] exists.
80
116
  const d = pts.length > 1
81
117
  ? pts.map(([x, y], i) => `${i ? 'L' : 'M'}${x},${y}`).join(' ')
82
- : `M${pts[0][0]},${pts[0][1]} L${pts[0][0]},${pts[0][1]}`;
118
+ : pts.length === 1
119
+ ? `M${pts[0][0]},${pts[0][1]} L${pts[0][0]},${pts[0][1]}`
120
+ : '';
83
121
  return html `<svg viewBox="0 0 ${VIEW} ${VIEW}" preserveAspectRatio="none" aria-hidden="true">
84
122
  ${this.type === 'area' ? svg `<path part="area" d="${d} L${VIEW},${VIEW} L0,${VIEW} Z"></path>` : ''}
85
123
  <path part="line" d="${d}"></path>
@@ -7,18 +7,95 @@ export interface PanelConstraint {
7
7
  minPx?: number;
8
8
  maxPx?: number;
9
9
  }
10
+ export type SplitConstraintIssueReason = 'minimum-total' | 'maximum-total' | 'minimum-exceeds-maximum';
11
+ export interface SplitConstraintIssueDetail {
12
+ reason: SplitConstraintIssueReason;
13
+ panelCount: number;
14
+ minimumTotal: number;
15
+ maximumTotal: number | null;
16
+ containerSize: number;
17
+ }
18
+ /** Which pane (if any) participates in responsive collapse (see `collapse`). */
19
+ export type SplitCollapseMode = 'start' | 'end' | 'none';
20
+ /** The collapsing pane's current responsive state — `'wide'` is the normal
21
+ * drag-resizable percent layout (identical to `collapse="none"`); `'rail'`
22
+ * clamps it to `railWidth`; `'floating'` lifts it out of the flex flow as an
23
+ * overlay above the other pane. */
24
+ export type SplitCollapseState = 'wide' | 'rail' | 'floating';
25
+ /** What can be *assigned* to `collapseState` -- `'auto'` is a write-only
26
+ * sentinel; see the `collapseState` accessor doc. */
27
+ export type SplitCollapseStateInput = SplitCollapseState | 'auto';
28
+ export interface SplitCollapseChangeDetail {
29
+ state: SplitCollapseState;
30
+ }
10
31
  /**
11
32
  * `<lyra-split>` — resizable panels for dashboard layouts. Direct light-DOM
12
33
  * children are the panels; a divider is auto-inserted between each pair.
13
34
  *
35
+ * Optionally, one pane can opt in to responsive collapse via `collapse`
36
+ * (`"start"`/`"end"`, default `"none"` — no behavior change when unset): as
37
+ * the split's own container narrows past `railBreakpoint` that pane clamps
38
+ * to a fixed `railWidth`, and past the narrower `floatBreakpoint` it instead
39
+ * becomes an absolutely-positioned overlay "floating card" above the other
40
+ * pane. This component only handles the width-collapse mechanics and
41
+ * signals the current state — via the `collapseState`-derived
42
+ * `data-collapse-state` attribute (set on both the host and the collapsing
43
+ * panel itself) and the `lyra-split-collapse-change` event — it renders no
44
+ * icon-only/collapsed UI of its own; slotted content is expected to adapt to
45
+ * its own clamped width (e.g. via its own container query).
46
+ *
47
+ * `collapseState` is a public accessor with force/auto semantics mirroring
48
+ * `<lyra-app-rail>`'s `mode`: it's normally derived automatically from the
49
+ * measured container width (via a `ResizeObserver` on `[part="base"]`)
50
+ * whenever it crosses `railBreakpoint`/`floatBreakpoint`, but assigning it a
51
+ * concrete `'wide'`/`'rail'`/`'floating'` value pins it there and stops that
52
+ * automatic tracking — useful for a consumer-driven toggle (e.g. a button
53
+ * that forces `'floating'` regardless of width). Assigning the write-only
54
+ * `'auto'` sentinel releases the pin and immediately re-derives the state
55
+ * from the current measured width, resuming automatic tracking. `'auto'` is
56
+ * never a value this getter returns.
57
+ *
58
+ * The `'floating'` state is a hidden-by-default drawer, gated by `open`
59
+ * (mirrors `<lyra-app-rail>`'s mobile overlay): while `collapseState` is
60
+ * `'floating'` and `open` is `false` (the default), the collapsing panel
61
+ * renders nothing — `hidden`, out of the accessibility tree, not just
62
+ * visually hidden — instead of the always-visible overlay card this state
63
+ * rendered before `open` existed. Setting `open = true` reveals it as a
64
+ * focus-trapped floating panel with a `[part="backdrop"]` scrim; Escape or a
65
+ * backdrop click set `open` back to `false`. `open` is preserved (not reset)
66
+ * while `collapseState` isn't `'floating'`, but no drawer chrome renders
67
+ * until it is again — except that leaving `'floating'` while `open` is
68
+ * `true` (a breakpoint crossing back to `'wide'`/`'rail'`, or a forced
69
+ * reassignment) also closes it, the same way `<lyra-app-rail>` closes its
70
+ * mobile overlay when leaving `'mobile'` while open.
71
+ *
14
72
  * @customElement lyra-split
15
73
  * @event lyra-resize - `detail: { sizes }`, fired on every drag step/release
16
74
  * and every keyboard step.
75
+ * @event lyra-split-collapse-change - `detail: { state }` (`SplitCollapseChangeDetail`),
76
+ * fired whenever the responsive `collapseState` actually transitions between
77
+ * `'wide'`/`'rail'`/`'floating'` — whether from a breakpoint crossing or an
78
+ * explicit `collapseState` assignment. Only relevant when `collapse` isn't
79
+ * `"none"`; never fires otherwise. Not fired for a redundant reassignment
80
+ * to the state already in effect.
81
+ * @event lyra-split-constraints-invalid - `detail: SplitConstraintIssueDetail`,
82
+ * fired once when the configured panel minimums/maximums cannot describe a
83
+ * layout that fits the track. The splitter rejects that infeasible set for
84
+ * interaction and falls back to a normalized percent minimum.
17
85
  * @slot - Panels to arrange side by side (or stacked, when `orientation="vertical"`); each direct child becomes one resizable panel.
18
- * @csspart base, divider
86
+ * @csspart base - The flex layout wrapper (`position: relative`, so the `'floating'` collapse state can anchor to it).
87
+ * @csspart divider - Each divider between two panels; carries `aria-disabled="true"` and is drag/keyboard-inert while its adjacent panel is collapsed (`'rail'`/`'floating'`).
88
+ * @csspart backdrop - The `'floating'` drawer's scrim. Only rendered while `collapseState === 'floating'` and `open`.
19
89
  */
20
90
  export declare class LyraSplit extends LyraElement {
21
91
  static styles: import("lit").CSSResultGroup[];
92
+ static properties: {
93
+ collapseState: {
94
+ reflect: boolean;
95
+ attribute: string;
96
+ noAccessor: boolean;
97
+ };
98
+ };
22
99
  sizes: number[];
23
100
  min: number;
24
101
  orientation: 'horizontal' | 'vertical';
@@ -29,10 +106,92 @@ export declare class LyraSplit extends LyraElement {
29
106
  * localStorage persistence stay percent-based regardless — only the
30
107
  * effective clamp bounds change for a constrained panel. */
31
108
  panelConstraints: (PanelConstraint | null)[];
109
+ /** Opts a pane in to responsive collapse: `'start'` is the first light-DOM
110
+ * panel (index 0), `'end'` is the last. Both are LOGICAL positions, same
111
+ * as CSS `inset-inline-start`/`-end` — see the `collapsingIndex` getter
112
+ * for why that already resolves to the same physical index under RTL for
113
+ * this component (panels are never re-`order`ed for RTL, only the drag
114
+ * delta sign mirrors). Default `'none'`: none of the collapse behavior
115
+ * below applies, and rendering/behavior is identical to before this
116
+ * property existed. */
117
+ collapse: SplitCollapseMode;
118
+ /** Fixed CSS length the collapsing pane clamps to in the `'rail'` state. */
119
+ railWidth: string;
120
+ /** Container width (px, measured on `[part="base"]`) below which the
121
+ * collapsing pane switches from its normal percent width to the fixed
122
+ * `railWidth` (`'rail'` state). Must stay above `floatBreakpoint`. */
123
+ railBreakpoint: number;
124
+ /** Container width (px) below which the collapsing pane instead becomes an
125
+ * absolutely-positioned overlay above the other pane (`'floating'` state). */
126
+ floatBreakpoint: number;
127
+ /** Whether the `'floating'` collapse state's drawer is shown. Only
128
+ * meaningful while `collapseState` is `'floating'` — the value is
129
+ * preserved (not reset) while another state is active, but no drawer
130
+ * chrome renders until `collapseState` is `'floating'` again. Defaults to
131
+ * `false`: the collapsing pane renders nothing while floating until a
132
+ * consumer opts in by setting this (or it's forced open programmatically)
133
+ * — see the class doc. */
134
+ open: boolean;
32
135
  private panelCount;
136
+ private _collapseState;
137
+ private _forced;
138
+ private overlayActive;
139
+ private justOpened;
140
+ private releaseScrollLock?;
141
+ private overlayHandle?;
33
142
  private drags;
143
+ private stylizedPanels;
144
+ private constraintIssueKey;
145
+ private baseEl?;
146
+ private collapseResizeObserver?;
34
147
  connectedCallback(): void;
35
148
  disconnectedCallback(): void;
149
+ protected firstUpdated(): void;
150
+ /** Both branches here derive one reactive property from another with no
151
+ * DOM measurement involved, so they belong in `willUpdate()` rather than
152
+ * `updated()`: setting a reactive property from `updated()`/
153
+ * `firstUpdated()` schedules a *second* update on top of the one that
154
+ * just finished, which Lit's dev-mode console flags ("scheduled an
155
+ * update ... after an update completed"). Both of these were real and
156
+ * reproducible in normal usage, not just test artifacts --
157
+ * `ensureSizes()` on any direct `sizes` assignment whose length doesn't
158
+ * match `panelCount` (e.g. a consumer correcting a stale layout), and the
159
+ * `collapseState` reset on every `collapse` -> `'none'` transition. The
160
+ * `collapse !== 'none'` re-arm path in `syncCollapseObserver()` still
161
+ * needs a freshly measured container width and stays in `updated()` --
162
+ * see `armCollapseObserver()`'s own doc comment for why *that* one is the
163
+ * documented exception instead (mirrors virtual-list.ts's
164
+ * `attachContainerListeners()`). */
165
+ protected willUpdate(changed: PropertyValues): void;
166
+ /**
167
+ * The collapsing pane's current responsive state. Always one of the three
168
+ * real states — never `'auto'` — reflecting either the live measured
169
+ * width or, once forced, whatever was last assigned. See the class doc for
170
+ * the full force/auto contract (mirrors `<lyra-app-rail>`'s `mode`).
171
+ */
172
+ get collapseState(): SplitCollapseState;
173
+ set collapseState(next: SplitCollapseStateInput);
174
+ /** The container width (px) `[part="base"]` is measured at right now --
175
+ * used to re-derive `collapseState` immediately when a forced value is
176
+ * released back to `'auto'`, outside of the `ResizeObserver`'s own
177
+ * (async, entry-driven) callback. Mirrors the synchronous initial read
178
+ * `armCollapseObserver()` already does when it (re-)arms. */
179
+ private currentMeasuredWidth;
180
+ /** Resets `collapseState` back to its `'wide'` default and releases any
181
+ * force, bypassing the public accessor's pin/event-emit side effects --
182
+ * used only for the `collapse -> 'none'` housekeeping reset in
183
+ * `willUpdate()`, which is purely internal bookkeeping (the feature is
184
+ * off entirely), not a state transition a consumer forced or observed. */
185
+ private resetCollapseState;
186
+ /** Applies an actual `collapseState` transition (no-op if `next` matches
187
+ * the current value): updates the field, triggers Lit's reflect/re-render
188
+ * via `requestUpdate`, and fires `lyra-split-collapse-change`. Shared by
189
+ * both the `ResizeObserver`-driven measurement path (`updateCollapseState`)
190
+ * and the accessor's forced-value assignment, so the two never duplicate
191
+ * this logic. Leaving `'floating'` while `open` is still `true` also
192
+ * closes the drawer -- mirrors `<lyra-app-rail>` closing its mobile
193
+ * overlay when `mode` leaves `'mobile'` while open. */
194
+ private applyCollapseStateChange;
36
195
  private get storageFullKey();
37
196
  private loadPersisted;
38
197
  private persist;
@@ -42,13 +201,73 @@ export declare class LyraSplit extends LyraElement {
42
201
  * container resize between calls is always picked up — same live read
43
202
  * `onPointerMove` already does via `drag.base.clientWidth/clientHeight`. */
44
203
  private getContainerSize;
45
- /** Resolves panel `index`'s effective percent min/max for this clamp pass:
46
- * a `panelConstraints` entry's px bound converted against the live
47
- * `containerSize`, or the component's plain percent `min` (no upper
48
- * bound) when the panel carries no constraint for that side. */
204
+ /** The physical panel index `collapse: 'start' | 'end'` resolves to, or
205
+ * `-1` when collapse is off (`'none'`) or there are fewer than 2 panels
206
+ * to collapse one of. Panels are laid out via ascending inline `order`
207
+ * (see `updated()`) and that ordering is never re-swapped for RTL only
208
+ * the drag/keyboard *delta sign* mirrors for RTL, exactly like
209
+ * `onPointerMove`/`onDividerKeyDown` — so panel index 0 already renders
210
+ * at the logical inline-start edge under both LTR and RTL (confirmed by
211
+ * the pointer-drag RTL test elsewhere in this file: panel 0 renders on
212
+ * the visual *right*, i.e. the RTL inline-start side). `'start'` therefore
213
+ * always resolves to index 0 and `'end'` to `panelCount - 1`, regardless
214
+ * of `isRtl(this)` — consulting it here would swap collapse onto the
215
+ * panel that visually sits at the *other* logical edge, which would be a
216
+ * bug against this component's own RTL rendering, not a fix for one.
217
+ */
218
+ private get collapsingIndex();
219
+ /** Whether a pane is actually collapsed (rail or floating) right now —
220
+ * `false` whenever `collapse === 'none'`, since `collapseState` then
221
+ * never leaves its `'wide'` default. */
222
+ private get collapseActive();
223
+ /** Dragging/keyboard-resizing is disabled on the one divider immediately
224
+ * adjacent to the currently-collapsed pane (its other side has nothing
225
+ * meaningful to resize against while the pane is rail/floating-width). */
226
+ private isDividerDisabled;
227
+ /** Classifies a measured container width into the collapsing pane's
228
+ * responsive state and, only on an actual transition, applies it (via the
229
+ * same `applyCollapseStateChange()` the accessor's forced-value path
230
+ * uses). Gated behind `_forced` so a pinned `collapseState` is never
231
+ * silently overwritten by a subsequent resize — this is also what the
232
+ * accessor's `'auto'` release calls (with the current measured width) to
233
+ * re-derive the state without duplicating the width-vs-breakpoint logic. */
234
+ private updateCollapseState;
235
+ /** Creates (idempotently) and (re-)observes `[part="base"]` with the
236
+ * collapse-state `ResizeObserver` — a no-op until `baseEl` exists (see
237
+ * `firstUpdated()`/`connectedCallback()`). Mirrors lite-chart.ts's own
238
+ * ResizeObserver setup, including reading the box size synchronously
239
+ * once so the very first render doesn't sit at the stale `'wide'` default
240
+ * until the (async) first callback fires — same rationale as
241
+ * lyra-virtual-list's `containerResizeObserver` synchronous initial read. */
242
+ private armCollapseObserver;
243
+ /** Reacts to a live `collapse` property change (as opposed to the
244
+ * connect/first-render arming above): turns the observer on/off. The
245
+ * `collapseState` reset for the `'none'` case lives in `willUpdate()`
246
+ * instead (see its doc comment) so no stale rail/floating styling
247
+ * survives switching collapse off, without the extra render pass a
248
+ * property set here would cost. */
249
+ private syncCollapseObserver;
250
+ /** The safe fallback for a shared percent minimum. A value above the
251
+ * available share is still useful as a consumer intent, but it cannot be
252
+ * honored for every panel at once, so reduce it proportionally. */
253
+ private normalizedDefaultMin;
254
+ /** Resolves all panel bounds together so aggregate feasibility is checked
255
+ * before an individual divider is asked to clamp a pair. An invalid set is
256
+ * rejected as a whole: interaction uses the safe shared minimum instead of
257
+ * exposing a divider whose minimum is greater than its maximum. */
258
+ private resolveConstraintBounds;
49
259
  private percentBounds;
50
260
  private clampPair;
51
261
  private applyDelta;
262
+ /** The collapsing pane's light-DOM element itself — the `'floating'`
263
+ * drawer's focus-trap/backdrop target. There's no separate shadow-DOM
264
+ * panel to trap focus within (unlike `<lyra-app-rail>`'s `[part="panel"]`):
265
+ * the slotted panel *is* the floating drawer, just repositioned via
266
+ * inline styles in `updated()`. */
267
+ private get floatingPanelEl();
268
+ private activateFloatingOverlay;
269
+ private deactivateFloatingOverlay;
270
+ private onBackdropClick;
52
271
  private onPointerDown;
53
272
  private onPointerMove;
54
273
  private onPointerUp;