@vielzeug/refine 26.10.0 → 26.10.5

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 (468) hide show
  1. package/README.md +1 -1
  2. package/dist/accordion-item.cjs.map +1 -1
  3. package/dist/accordion-item.js.map +1 -1
  4. package/dist/accordion.cjs.map +1 -1
  5. package/dist/accordion.js.map +1 -1
  6. package/dist/async.cjs.map +1 -1
  7. package/dist/async.js.map +1 -1
  8. package/dist/badge.cjs.map +1 -1
  9. package/dist/badge.js.map +1 -1
  10. package/dist/box.cjs.map +1 -1
  11. package/dist/box.js.map +1 -1
  12. package/dist/button.cjs +3 -3
  13. package/dist/button.cjs.map +1 -1
  14. package/dist/button.js +3 -3
  15. package/dist/button.js.map +1 -1
  16. package/dist/calendar.cjs.map +1 -1
  17. package/dist/calendar.js.map +1 -1
  18. package/dist/carousel.cjs.map +1 -1
  19. package/dist/carousel.js.map +1 -1
  20. package/dist/chat-message.cjs.map +1 -1
  21. package/dist/chat-message.js.map +1 -1
  22. package/dist/chat-panel.cjs.map +1 -1
  23. package/dist/chat-panel.js.map +1 -1
  24. package/dist/checkbox-group.cjs.map +1 -1
  25. package/dist/checkbox-group.js.map +1 -1
  26. package/dist/chip.cjs.map +1 -1
  27. package/dist/chip.js.map +1 -1
  28. package/dist/code-window.cjs.map +1 -1
  29. package/dist/code-window.js.map +1 -1
  30. package/dist/combobox.cjs.map +1 -1
  31. package/dist/combobox.js.map +1 -1
  32. package/dist/command-palette.cjs +9 -1
  33. package/dist/command-palette.cjs.map +1 -1
  34. package/dist/command-palette.js +9 -1
  35. package/dist/command-palette.js.map +1 -1
  36. package/dist/content/card/card.css.cjs.map +1 -1
  37. package/dist/content/card/card.css.js.map +1 -1
  38. package/dist/content/carousel/carousel-slide.css.cjs.map +1 -1
  39. package/dist/content/carousel/carousel-slide.css.js.map +1 -1
  40. package/dist/content/carousel/carousel.css.cjs.map +1 -1
  41. package/dist/content/carousel/carousel.css.js.map +1 -1
  42. package/dist/content/carousel/carousel.d.ts +5 -5
  43. package/dist/content/chat-message/chat-message.css.cjs +1 -1
  44. package/dist/content/chat-message/chat-message.css.cjs.map +1 -1
  45. package/dist/content/chat-message/chat-message.css.js +1 -1
  46. package/dist/content/chat-message/chat-message.css.js.map +1 -1
  47. package/dist/content/chat-message/chat-message.d.ts +4 -4
  48. package/dist/content/chat-message/chat-message.d.ts.map +1 -1
  49. package/dist/content/chat-panel/chat-panel.d.ts +1 -1
  50. package/dist/content/code-window/code-window.css.cjs.map +1 -1
  51. package/dist/content/code-window/code-window.css.js.map +1 -1
  52. package/dist/content/code-window/code-window.d.ts +4 -4
  53. package/dist/content/index.d.ts +4 -0
  54. package/dist/content/index.d.ts.map +1 -1
  55. package/dist/content/list/_list-item-reveal.cjs.map +1 -1
  56. package/dist/content/list/_list-item-reveal.d.ts +4 -4
  57. package/dist/content/list/_list-item-reveal.d.ts.map +1 -1
  58. package/dist/content/list/_list-item-reveal.js.map +1 -1
  59. package/dist/content/list/list-item.css.cjs.map +1 -1
  60. package/dist/content/list/list-item.css.js.map +1 -1
  61. package/dist/content/list/list-item.d.ts +8 -8
  62. package/dist/content/list/list-item.d.ts.map +1 -1
  63. package/dist/content/list/list.d.ts +8 -8
  64. package/dist/content/list/list.d.ts.map +1 -1
  65. package/dist/content/qr-code/qr-code.d.ts +1 -1
  66. package/dist/content/rank-list/rank-item.css.cjs +2 -0
  67. package/dist/content/rank-list/rank-item.css.cjs.map +1 -0
  68. package/dist/content/rank-list/rank-item.css.js +2 -0
  69. package/dist/content/rank-list/rank-item.css.js.map +1 -0
  70. package/dist/content/rank-list/rank-item.d.ts +68 -0
  71. package/dist/content/rank-list/rank-item.d.ts.map +1 -0
  72. package/dist/content/rank-list/rank-list.css.cjs +2 -0
  73. package/dist/content/rank-list/rank-list.css.cjs.map +1 -0
  74. package/dist/content/rank-list/rank-list.css.js +2 -0
  75. package/dist/content/rank-list/rank-list.css.js.map +1 -0
  76. package/dist/content/rank-list/rank-list.d.ts +44 -0
  77. package/dist/content/rank-list/rank-list.d.ts.map +1 -0
  78. package/dist/content/separator/separator.d.ts +1 -1
  79. package/dist/content/separator/separator.d.ts.map +1 -1
  80. package/dist/content/speech-player/speech-player.css.cjs.map +1 -1
  81. package/dist/content/speech-player/speech-player.css.js.map +1 -1
  82. package/dist/content/speech-player/speech-player.d.ts +12 -12
  83. package/dist/content/speech-player/speech-player.d.ts.map +1 -1
  84. package/dist/content/stepper/step.css.cjs.map +1 -1
  85. package/dist/content/stepper/step.css.js.map +1 -1
  86. package/dist/content/stepper/step.d.ts +3 -3
  87. package/dist/content/stepper/step.d.ts.map +1 -1
  88. package/dist/content/stepper/stepper.css.cjs.map +1 -1
  89. package/dist/content/stepper/stepper.css.js.map +1 -1
  90. package/dist/content/stepper/stepper.d.ts +3 -3
  91. package/dist/content/stepper/stepper.d.ts.map +1 -1
  92. package/dist/content/table/table.css.cjs.map +1 -1
  93. package/dist/content/table/table.css.js.map +1 -1
  94. package/dist/content/table/table.d.ts +3 -3
  95. package/dist/content/table/table.d.ts.map +1 -1
  96. package/dist/content/text/text.css.cjs.map +1 -1
  97. package/dist/content/text/text.css.js.map +1 -1
  98. package/dist/content/text/text.d.ts +2 -2
  99. package/dist/content/text/text.d.ts.map +1 -1
  100. package/dist/cookie-banner.cjs.map +1 -1
  101. package/dist/cookie-banner.js.map +1 -1
  102. package/dist/copy-command.cjs +1 -1
  103. package/dist/copy-command.cjs.map +1 -1
  104. package/dist/copy-command.js +1 -1
  105. package/dist/copy-command.js.map +1 -1
  106. package/dist/core/announcer.cjs.map +1 -1
  107. package/dist/core/announcer.d.ts +2 -2
  108. package/dist/core/announcer.js.map +1 -1
  109. package/dist/core/aria-reflection.cjs.map +1 -1
  110. package/dist/core/aria-reflection.d.ts +3 -3
  111. package/dist/core/aria-reflection.js.map +1 -1
  112. package/dist/core/auto-resize.cjs.map +1 -1
  113. package/dist/core/auto-resize.d.ts +1 -1
  114. package/dist/core/auto-resize.js.map +1 -1
  115. package/dist/core/checkable.cjs.map +1 -1
  116. package/dist/core/checkable.d.ts +2 -2
  117. package/dist/core/checkable.d.ts.map +1 -1
  118. package/dist/core/checkable.js.map +1 -1
  119. package/dist/core/choice-field.cjs.map +1 -1
  120. package/dist/core/choice-field.d.ts +3 -3
  121. package/dist/core/choice-field.d.ts.map +1 -1
  122. package/dist/core/choice-field.js.map +1 -1
  123. package/dist/core/composer.cjs.map +1 -1
  124. package/dist/core/composer.d.ts +4 -4
  125. package/dist/core/composer.d.ts.map +1 -1
  126. package/dist/core/composer.js.map +1 -1
  127. package/dist/core/date-picker.cjs.map +1 -1
  128. package/dist/core/date-picker.d.ts +5 -5
  129. package/dist/core/date-picker.d.ts.map +1 -1
  130. package/dist/core/date-picker.js.map +1 -1
  131. package/dist/core/direction.cjs.map +1 -1
  132. package/dist/core/direction.d.ts +1 -1
  133. package/dist/core/direction.js.map +1 -1
  134. package/dist/core/field-base.cjs.map +1 -1
  135. package/dist/core/field-base.d.ts +9 -9
  136. package/dist/core/field-base.d.ts.map +1 -1
  137. package/dist/core/field-base.js.map +1 -1
  138. package/dist/core/focus.cjs.map +1 -1
  139. package/dist/core/focus.d.ts +1 -1
  140. package/dist/core/focus.js.map +1 -1
  141. package/dist/core/icon-registry.cjs.map +1 -1
  142. package/dist/core/icon-registry.d.ts +1 -1
  143. package/dist/core/icon-registry.js.map +1 -1
  144. package/dist/core/icons.cjs.map +1 -1
  145. package/dist/core/icons.js.map +1 -1
  146. package/dist/core/keyboard.cjs.map +1 -1
  147. package/dist/core/keyboard.d.ts +1 -1
  148. package/dist/core/keyboard.js.map +1 -1
  149. package/dist/core/numbers.cjs.map +1 -1
  150. package/dist/core/numbers.d.ts +1 -1
  151. package/dist/core/numbers.js.map +1 -1
  152. package/dist/core/overlay.cjs.map +1 -1
  153. package/dist/core/overlay.d.ts +6 -6
  154. package/dist/core/overlay.js.map +1 -1
  155. package/dist/core/parse.cjs.map +1 -1
  156. package/dist/core/parse.d.ts +1 -1
  157. package/dist/core/parse.js.map +1 -1
  158. package/dist/core/positioner.cjs.map +1 -1
  159. package/dist/core/positioner.d.ts +3 -3
  160. package/dist/core/positioner.js.map +1 -1
  161. package/dist/core/ref-callback.cjs.map +1 -1
  162. package/dist/core/ref-callback.d.ts +2 -2
  163. package/dist/core/ref-callback.d.ts.map +1 -1
  164. package/dist/core/ref-callback.js.map +1 -1
  165. package/dist/core/text-field.cjs.map +1 -1
  166. package/dist/core/text-field.d.ts +6 -6
  167. package/dist/core/text-field.d.ts.map +1 -1
  168. package/dist/core/text-field.js.map +1 -1
  169. package/dist/counter.cjs +1 -0
  170. package/dist/counter.cjs.map +1 -1
  171. package/dist/counter.js +1 -0
  172. package/dist/counter.js.map +1 -1
  173. package/dist/custom-elements.json +334 -87
  174. package/dist/datagrid.cjs.map +1 -1
  175. package/dist/datagrid.js.map +1 -1
  176. package/dist/date-picker.cjs +1 -1
  177. package/dist/date-picker.cjs.map +1 -1
  178. package/dist/date-picker.js +1 -1
  179. package/dist/date-picker.js.map +1 -1
  180. package/dist/dialog.cjs.map +1 -1
  181. package/dist/dialog.js.map +1 -1
  182. package/dist/disclosure/accordion-item/accordion-item.css.cjs +1 -1
  183. package/dist/disclosure/accordion-item/accordion-item.css.cjs.map +1 -1
  184. package/dist/disclosure/accordion-item/accordion-item.css.js +1 -1
  185. package/dist/disclosure/accordion-item/accordion-item.css.js.map +1 -1
  186. package/dist/disclosure/tab-item/tab-item.d.ts +1 -1
  187. package/dist/disclosure/tab-item/tab-item.d.ts.map +1 -1
  188. package/dist/drawer.cjs.map +1 -1
  189. package/dist/drawer.js.map +1 -1
  190. package/dist/feedback/alert/alert.css.cjs.map +1 -1
  191. package/dist/feedback/alert/alert.css.js.map +1 -1
  192. package/dist/feedback/badge/badge.css.cjs.map +1 -1
  193. package/dist/feedback/badge/badge.css.js.map +1 -1
  194. package/dist/feedback/badge/badge.d.ts +1 -1
  195. package/dist/feedback/badge/badge.d.ts.map +1 -1
  196. package/dist/feedback/chip/chip.css.cjs.map +1 -1
  197. package/dist/feedback/chip/chip.css.js.map +1 -1
  198. package/dist/feedback/chip/chip.d.ts +3 -3
  199. package/dist/feedback/chip/chip.d.ts.map +1 -1
  200. package/dist/feedback/cookie-banner/cookie-banner.css.cjs.map +1 -1
  201. package/dist/feedback/cookie-banner/cookie-banner.css.js.map +1 -1
  202. package/dist/feedback/cookie-banner/cookie-banner.d.ts +8 -8
  203. package/dist/feedback/cookie-banner/cookie-banner.d.ts.map +1 -1
  204. package/dist/feedback/progress/progress.css.cjs.map +1 -1
  205. package/dist/feedback/progress/progress.css.js.map +1 -1
  206. package/dist/feedback/progress/progress.d.ts +1 -1
  207. package/dist/feedback/progress/progress.d.ts.map +1 -1
  208. package/dist/feedback/skeleton/skeleton.css.cjs.map +1 -1
  209. package/dist/feedback/skeleton/skeleton.css.js.map +1 -1
  210. package/dist/feedback/skeleton/skeleton.d.ts +1 -1
  211. package/dist/feedback/skeleton/skeleton.d.ts.map +1 -1
  212. package/dist/feedback/toast/toast.css.cjs +1 -1
  213. package/dist/feedback/toast/toast.css.cjs.map +1 -1
  214. package/dist/feedback/toast/toast.css.js +1 -1
  215. package/dist/feedback/toast/toast.css.js.map +1 -1
  216. package/dist/feedback/toast/toast.d.ts +1 -1
  217. package/dist/feedback/toast/toast.d.ts.map +1 -1
  218. package/dist/feedback/typing-indicator/typing-indicator.d.ts +2 -2
  219. package/dist/file-input.cjs +1 -1
  220. package/dist/file-input.cjs.map +1 -1
  221. package/dist/file-input.js +1 -1
  222. package/dist/file-input.js.map +1 -1
  223. package/dist/frameworks/elements.d.ts +1 -1
  224. package/dist/grid-item.cjs.map +1 -1
  225. package/dist/grid-item.js.map +1 -1
  226. package/dist/grid.cjs.map +1 -1
  227. package/dist/grid.js.map +1 -1
  228. package/dist/icon.cjs.map +1 -1
  229. package/dist/icon.js.map +1 -1
  230. package/dist/input.cjs.map +1 -1
  231. package/dist/input.js.map +1 -1
  232. package/dist/inputs/button/button.css.cjs.map +1 -1
  233. package/dist/inputs/button/button.css.js.map +1 -1
  234. package/dist/inputs/button/button.d.ts +3 -3
  235. package/dist/inputs/button/button.d.ts.map +1 -1
  236. package/dist/inputs/calendar/calendar.css.cjs.map +1 -1
  237. package/dist/inputs/calendar/calendar.css.js.map +1 -1
  238. package/dist/inputs/calendar/calendar.d.ts +2 -2
  239. package/dist/inputs/checkbox-group/checkbox-group.d.ts +2 -2
  240. package/dist/inputs/checkbox-group/checkbox-group.d.ts.map +1 -1
  241. package/dist/inputs/combobox/combobox.css.cjs.map +1 -1
  242. package/dist/inputs/combobox/combobox.css.js.map +1 -1
  243. package/dist/inputs/counter/counter.css.cjs +1 -1
  244. package/dist/inputs/counter/counter.css.cjs.map +1 -1
  245. package/dist/inputs/counter/counter.css.js +1 -1
  246. package/dist/inputs/counter/counter.css.js.map +1 -1
  247. package/dist/inputs/counter/counter.d.ts +2 -1
  248. package/dist/inputs/counter/counter.d.ts.map +1 -1
  249. package/dist/inputs/datagrid/datagrid.css.cjs.map +1 -1
  250. package/dist/inputs/datagrid/datagrid.css.js.map +1 -1
  251. package/dist/inputs/datagrid/datagrid.d.ts +5 -5
  252. package/dist/inputs/date-picker/date-picker.css.cjs.map +1 -1
  253. package/dist/inputs/date-picker/date-picker.css.js.map +1 -1
  254. package/dist/inputs/date-picker/date-picker.d.ts +1 -1
  255. package/dist/inputs/file-input/file-input-upload.cjs.map +1 -1
  256. package/dist/inputs/file-input/file-input-upload.d.ts +6 -6
  257. package/dist/inputs/file-input/file-input-upload.js.map +1 -1
  258. package/dist/inputs/file-input/file-input.css.cjs.map +1 -1
  259. package/dist/inputs/file-input/file-input.css.js.map +1 -1
  260. package/dist/inputs/file-input/file-input.d.ts +6 -6
  261. package/dist/inputs/input/input.css.cjs +1 -1
  262. package/dist/inputs/input/input.css.cjs.map +1 -1
  263. package/dist/inputs/input/input.css.js +1 -1
  264. package/dist/inputs/input/input.css.js.map +1 -1
  265. package/dist/inputs/input/input.d.ts +6 -6
  266. package/dist/inputs/input/input.d.ts.map +1 -1
  267. package/dist/inputs/message-composer/message-composer.css.cjs.map +1 -1
  268. package/dist/inputs/message-composer/message-composer.css.js.map +1 -1
  269. package/dist/inputs/message-composer/message-composer.d.ts +7 -7
  270. package/dist/inputs/message-composer/message-composer.d.ts.map +1 -1
  271. package/dist/inputs/number-input/number-input.css.cjs.map +1 -1
  272. package/dist/inputs/number-input/number-input.css.js.map +1 -1
  273. package/dist/inputs/number-input/number-input.d.ts +2 -2
  274. package/dist/inputs/otp-input/otp-input.css.cjs.map +1 -1
  275. package/dist/inputs/otp-input/otp-input.css.js.map +1 -1
  276. package/dist/inputs/qr-scanner/qr-scanner.d.ts +1 -1
  277. package/dist/inputs/qr-scanner/qr-scanner.d.ts.map +1 -1
  278. package/dist/inputs/rating/rating.d.ts +1 -1
  279. package/dist/inputs/rating/rating.d.ts.map +1 -1
  280. package/dist/inputs/select/select.css.cjs +1 -1
  281. package/dist/inputs/select/select.css.cjs.map +1 -1
  282. package/dist/inputs/select/select.css.js +1 -1
  283. package/dist/inputs/select/select.css.js.map +1 -1
  284. package/dist/inputs/select/select.d.ts +1 -1
  285. package/dist/inputs/select/select.d.ts.map +1 -1
  286. package/dist/inputs/shared/field-binding.cjs.map +1 -1
  287. package/dist/inputs/shared/field-binding.d.ts +2 -2
  288. package/dist/inputs/shared/field-binding.d.ts.map +1 -1
  289. package/dist/inputs/shared/field-binding.js.map +1 -1
  290. package/dist/inputs/shared/native-field-event.cjs.map +1 -1
  291. package/dist/inputs/shared/native-field-event.d.ts +1 -1
  292. package/dist/inputs/shared/native-field-event.js.map +1 -1
  293. package/dist/inputs/shared/templates.cjs.map +1 -1
  294. package/dist/inputs/shared/templates.d.ts +3 -3
  295. package/dist/inputs/shared/templates.js.map +1 -1
  296. package/dist/inputs/slider/slider.css.cjs.map +1 -1
  297. package/dist/inputs/slider/slider.css.js.map +1 -1
  298. package/dist/inputs/slider/slider.d.ts +1 -1
  299. package/dist/inputs/slider/slider.d.ts.map +1 -1
  300. package/dist/inputs/textarea/textarea.css.cjs.map +1 -1
  301. package/dist/inputs/textarea/textarea.css.js.map +1 -1
  302. package/dist/inputs/textarea/textarea.d.ts +1 -1
  303. package/dist/inputs/time-picker/time-picker.css.cjs.map +1 -1
  304. package/dist/inputs/time-picker/time-picker.css.js.map +1 -1
  305. package/dist/inputs/time-picker/time-picker.d.ts +1 -1
  306. package/dist/layout/box/box.css.cjs.map +1 -1
  307. package/dist/layout/box/box.css.js.map +1 -1
  308. package/dist/layout/box/box.d.ts +1 -1
  309. package/dist/layout/grid/grid.d.ts +1 -1
  310. package/dist/layout/grid-item/grid-item.d.ts +3 -3
  311. package/dist/layout/grid-item/grid-item.d.ts.map +1 -1
  312. package/dist/layout/navbar/navbar.css.cjs +1 -1
  313. package/dist/layout/navbar/navbar.css.cjs.map +1 -1
  314. package/dist/layout/navbar/navbar.css.js +1 -1
  315. package/dist/layout/navbar/navbar.css.js.map +1 -1
  316. package/dist/layout/navbar/navbar.d.ts +3 -3
  317. package/dist/layout/sidebar/sidebar-item.css.cjs.map +1 -1
  318. package/dist/layout/sidebar/sidebar-item.css.js.map +1 -1
  319. package/dist/layout/sidebar/sidebar.d.ts +5 -5
  320. package/dist/layout/sidebar/sidebar.d.ts.map +1 -1
  321. package/dist/list-item.cjs.map +1 -1
  322. package/dist/list-item.js.map +1 -1
  323. package/dist/list.cjs.map +1 -1
  324. package/dist/list.js.map +1 -1
  325. package/dist/menu.cjs +6 -5
  326. package/dist/menu.cjs.map +1 -1
  327. package/dist/menu.js +6 -5
  328. package/dist/menu.js.map +1 -1
  329. package/dist/message-composer.cjs.map +1 -1
  330. package/dist/message-composer.js.map +1 -1
  331. package/dist/navbar.cjs.map +1 -1
  332. package/dist/navbar.js.map +1 -1
  333. package/dist/number-input.cjs.map +1 -1
  334. package/dist/number-input.js.map +1 -1
  335. package/dist/otp-input.cjs.map +1 -1
  336. package/dist/otp-input.js.map +1 -1
  337. package/dist/overlay/command-palette/command-palette-items.cjs.map +1 -1
  338. package/dist/overlay/command-palette/command-palette-items.d.ts +1 -1
  339. package/dist/overlay/command-palette/command-palette-items.js.map +1 -1
  340. package/dist/overlay/command-palette/command-palette.css.cjs +1 -1
  341. package/dist/overlay/command-palette/command-palette.css.cjs.map +1 -1
  342. package/dist/overlay/command-palette/command-palette.css.js +1 -1
  343. package/dist/overlay/command-palette/command-palette.css.js.map +1 -1
  344. package/dist/overlay/command-palette/command-palette.d.ts +7 -3
  345. package/dist/overlay/command-palette/command-palette.d.ts.map +1 -1
  346. package/dist/overlay/command-palette/command-palette.types.d.ts +16 -6
  347. package/dist/overlay/command-palette/command-palette.types.d.ts.map +1 -1
  348. package/dist/overlay/dialog/dialog.css.cjs +1 -1
  349. package/dist/overlay/dialog/dialog.css.cjs.map +1 -1
  350. package/dist/overlay/dialog/dialog.css.js +1 -1
  351. package/dist/overlay/dialog/dialog.css.js.map +1 -1
  352. package/dist/overlay/dialog/dialog.d.ts +2 -2
  353. package/dist/overlay/dialog/dialog.d.ts.map +1 -1
  354. package/dist/overlay/drawer/drawer.css.cjs.map +1 -1
  355. package/dist/overlay/drawer/drawer.css.js.map +1 -1
  356. package/dist/overlay/drawer/drawer.d.ts +1 -1
  357. package/dist/overlay/drawer/drawer.d.ts.map +1 -1
  358. package/dist/overlay/menu/menu-item.css.cjs.map +1 -1
  359. package/dist/overlay/menu/menu-item.css.js.map +1 -1
  360. package/dist/overlay/menu/menu.d.ts.map +1 -1
  361. package/dist/overlay/shared/use-dialog.cjs.map +1 -1
  362. package/dist/overlay/shared/use-dialog.d.ts +6 -6
  363. package/dist/overlay/shared/use-dialog.d.ts.map +1 -1
  364. package/dist/overlay/shared/use-dialog.js.map +1 -1
  365. package/dist/overlay/shared/use-floating-trigger.cjs.map +1 -1
  366. package/dist/overlay/shared/use-floating-trigger.d.ts +1 -1
  367. package/dist/overlay/shared/use-floating-trigger.d.ts.map +1 -1
  368. package/dist/overlay/shared/use-floating-trigger.js.map +1 -1
  369. package/dist/overlay/tooltip/tooltip.css.cjs.map +1 -1
  370. package/dist/overlay/tooltip/tooltip.css.js.map +1 -1
  371. package/dist/progress.cjs.map +1 -1
  372. package/dist/progress.js.map +1 -1
  373. package/dist/qr-code.cjs.map +1 -1
  374. package/dist/qr-code.js.map +1 -1
  375. package/dist/qr-scanner.cjs.map +1 -1
  376. package/dist/qr-scanner.js.map +1 -1
  377. package/dist/radio-group.cjs.map +1 -1
  378. package/dist/radio-group.js.map +1 -1
  379. package/dist/radio.cjs.map +1 -1
  380. package/dist/radio.js.map +1 -1
  381. package/dist/rank-item.cjs +21 -0
  382. package/dist/rank-item.cjs.map +1 -0
  383. package/dist/rank-item.js +21 -0
  384. package/dist/rank-item.js.map +1 -0
  385. package/dist/rank-list.cjs +4 -0
  386. package/dist/rank-list.cjs.map +1 -0
  387. package/dist/rank-list.js +4 -0
  388. package/dist/rank-list.js.map +1 -0
  389. package/dist/rating.cjs.map +1 -1
  390. package/dist/rating.js.map +1 -1
  391. package/dist/refine.cjs +111 -80
  392. package/dist/refine.cjs.map +1 -1
  393. package/dist/refine.iife.js +111 -80
  394. package/dist/refine.iife.js.map +1 -1
  395. package/dist/refine.js +112 -81
  396. package/dist/refine.js.map +1 -1
  397. package/dist/select.cjs.map +1 -1
  398. package/dist/select.js.map +1 -1
  399. package/dist/separator.cjs.map +1 -1
  400. package/dist/separator.js.map +1 -1
  401. package/dist/shared/index.d.ts +3 -3
  402. package/dist/shared/size-presets.cjs.map +1 -1
  403. package/dist/shared/size-presets.d.ts +4 -4
  404. package/dist/shared/size-presets.js.map +1 -1
  405. package/dist/shared/types.d.ts +1 -1
  406. package/dist/sidebar.cjs.map +1 -1
  407. package/dist/sidebar.js.map +1 -1
  408. package/dist/skeleton.cjs.map +1 -1
  409. package/dist/skeleton.js.map +1 -1
  410. package/dist/slider.cjs.map +1 -1
  411. package/dist/slider.js.map +1 -1
  412. package/dist/speech-player.cjs.map +1 -1
  413. package/dist/speech-player.js.map +1 -1
  414. package/dist/step.cjs.map +1 -1
  415. package/dist/step.js.map +1 -1
  416. package/dist/stepper.cjs.map +1 -1
  417. package/dist/stepper.js.map +1 -1
  418. package/dist/styles/fouc.css +2 -2
  419. package/dist/styles/mixins/accessibility.css.cjs.map +1 -1
  420. package/dist/styles/mixins/accessibility.css.d.ts +4 -4
  421. package/dist/styles/mixins/accessibility.css.js.map +1 -1
  422. package/dist/styles/mixins/animation.css.cjs +2 -2
  423. package/dist/styles/mixins/animation.css.cjs.map +1 -1
  424. package/dist/styles/mixins/animation.css.d.ts +4 -4
  425. package/dist/styles/mixins/animation.css.js +2 -2
  426. package/dist/styles/mixins/animation.css.js.map +1 -1
  427. package/dist/styles/mixins/field-variants.css.cjs +2 -2
  428. package/dist/styles/mixins/field-variants.css.cjs.map +1 -1
  429. package/dist/styles/mixins/field-variants.css.d.ts +6 -6
  430. package/dist/styles/mixins/field-variants.css.d.ts.map +1 -1
  431. package/dist/styles/mixins/field-variants.css.js +2 -2
  432. package/dist/styles/mixins/field-variants.css.js.map +1 -1
  433. package/dist/styles/mixins/shape.css.cjs.map +1 -1
  434. package/dist/styles/mixins/shape.css.d.ts +9 -9
  435. package/dist/styles/mixins/shape.css.d.ts.map +1 -1
  436. package/dist/styles/mixins/shape.css.js.map +1 -1
  437. package/dist/styles/mixins/variants.css.cjs.map +1 -1
  438. package/dist/styles/mixins/variants.css.d.ts +1 -1
  439. package/dist/styles/mixins/variants.css.js.map +1 -1
  440. package/dist/styles/theme.css +36 -28
  441. package/dist/tab-item.cjs.map +1 -1
  442. package/dist/tab-item.js.map +1 -1
  443. package/dist/tab-panel.cjs.map +1 -1
  444. package/dist/tab-panel.js.map +1 -1
  445. package/dist/table.cjs.map +1 -1
  446. package/dist/table.js.map +1 -1
  447. package/dist/text.cjs.map +1 -1
  448. package/dist/text.js.map +1 -1
  449. package/dist/textarea.cjs.map +1 -1
  450. package/dist/textarea.js.map +1 -1
  451. package/dist/theme.cjs.map +1 -1
  452. package/dist/theme.d.ts +2 -2
  453. package/dist/theme.js.map +1 -1
  454. package/dist/time-picker.cjs +1 -1
  455. package/dist/time-picker.cjs.map +1 -1
  456. package/dist/time-picker.js +1 -1
  457. package/dist/time-picker.js.map +1 -1
  458. package/dist/toast.cjs.map +1 -1
  459. package/dist/toast.js.map +1 -1
  460. package/dist/types/elements.d.ts +6 -2
  461. package/dist/typing-indicator.cjs.map +1 -1
  462. package/dist/typing-indicator.js.map +1 -1
  463. package/dist/utils/css.cjs.map +1 -1
  464. package/dist/utils/css.js.map +1 -1
  465. package/dist/utils/link.cjs.map +1 -1
  466. package/dist/utils/link.d.ts +2 -2
  467. package/dist/utils/link.js.map +1 -1
  468. package/package.json +31 -14
@@ -239,7 +239,7 @@
239
239
  }
240
240
  }
241
241
  ],
242
- "description": "Grows a `<textarea>`'s height to fit its content, shared by every component that offers\nauto-resize (`ore-textarea`, `ore-message-composer`) instead of each reimplementing it.\n\nOwns only height — manual-resize cursor/direction is a per-component styling concern, not\nshared behavior, so it stays local to whichever component renders a resize handle."
242
+ "description": "Grows a `<textarea>`'s height to fit its content, shared by every component that offers\nauto-resize (`ore-textarea`, `ore-message-composer`) instead of each reimplementing it.\n\nOwns only height: manual-resize cursor/direction is a per-component styling concern, not\nshared behavior, so it stays local to whichever component renders a resize handle."
243
243
  }
244
244
  ],
245
245
  "exports": [
@@ -339,7 +339,7 @@
339
339
  }
340
340
  }
341
341
  ],
342
- "description": "Send-gesture logic for a message/comment composer — decides *when* a send is allowed\nand *whether* a given keydown counts as one. Owns no DOM, value state, or event dispatch;\nthe component wires `handleKeydown`/`send` and decides what a send actually does."
342
+ "description": "Send-gesture logic for a message/comment composer: decides *when* a send is allowed\nand *whether* a given keydown counts as one. Owns no DOM, value state, or event dispatch;\nthe component wires `handleKeydown`/`send` and decides what a send actually does."
343
343
  }
344
344
  ],
345
345
  "exports": [
@@ -373,7 +373,7 @@
373
373
  }
374
374
  }
375
375
  ],
376
- "description": "Parses an ISO 8601 date string (`yyyy-MM-dd`) into a `Temporal.PlainDate`.\nReturns `null` for any invalid / empty input — never throws."
376
+ "description": "Parses an ISO 8601 date string (`yyyy-MM-dd`) into a `Temporal.PlainDate`.\nReturns `null` for any invalid / empty input: never throws."
377
377
  },
378
378
  {
379
379
  "kind": "function",
@@ -433,7 +433,7 @@
433
433
  }
434
434
  }
435
435
  ],
436
- "description": "Pure, framework-agnostic date-picker state machine backed by `Temporal.PlainDate`.\n\nAll state is held in plain mutable variables — suitable for wrapping in any\nreactive layer (ore `signal`, Vue ref, etc.). The factory returns a stable\nhandle object; callers are responsible for reactivity.\n\nOptions with getter-based live bindings (e.g. `get min() { ... }`) are read\non every call so the control always reflects the latest reactive state."
436
+ "description": "Pure, framework-agnostic date-picker state machine backed by `Temporal.PlainDate`.\n\nAll state is held in plain mutable variables: suitable for wrapping in any\nreactive layer (ore `signal`, Vue ref, etc.). The factory returns a stable\nhandle object; callers are responsible for reactivity.\n\nOptions with getter-based live bindings (e.g. `get min() { ... }`) are read\non every call so the control always reflects the latest reactive state."
437
437
  },
438
438
  {
439
439
  "kind": "function",
@@ -469,7 +469,7 @@
469
469
  }
470
470
  }
471
471
  ],
472
- "description": "Roving-arrow keyboard navigation for a calendar grid, implementing the ARIA `grid` cell pattern:\nArrow keys move by one cell / one row (`columns` wide), Home/End jump to the row's first/last\ncell, and Enter/Space activate the focused cell. Every calendar grid — days (7 columns) and\nmonths/years (4 columns) — carries the base `.cal-grid` class, so `closest('.cal-grid')` scopes\nthe movement to the grid the event fired in regardless of view.\n\n`onSelect` receives the activated cell element so the day view can read its `data-iso` while the\nmonth/year views ignore the argument and use their own closure value."
472
+ "description": "Roving-arrow keyboard navigation for a calendar grid, implementing the ARIA `grid` cell pattern:\nArrow keys move by one cell / one row (`columns` wide), Home/End jump to the row's first/last\ncell, and Enter/Space activate the focused cell. Every calendar grid: days (7 columns) and\nmonths/years (4 columns): carries the base `.cal-grid` class, so `closest('.cal-grid')` scopes\nthe movement to the grid the event fired in regardless of view.\n\n`onSelect` receives the activated cell element so the day view can read its `data-iso` while the\nmonth/year views ignore the argument and use their own closure value."
473
473
  }
474
474
  ],
475
475
  "exports": [
@@ -535,7 +535,7 @@
535
535
  }
536
536
  }
537
537
  ],
538
- "description": "Resolves the effective text direction for an element.\n\nThe closest ancestor with an explicit `dir=\"ltr\"` or `dir=\"rtl\"` attribute wins — this\nsupports locally-scoped RTL sections (e.g. a single `dir=\"rtl\"` panel inside an otherwise\nLTR page). When no explicit `dir` attribute is found up the tree, falls back to the\ncomputed `direction` CSS property (e.g. set via a `direction: rtl` style rule with no\n`dir` attribute). Defaults to `'ltr'` when `el` is `null`."
538
+ "description": "Resolves the effective text direction for an element.\n\nThe closest ancestor with an explicit `dir=\"ltr\"` or `dir=\"rtl\"` attribute wins: this\nsupports locally-scoped RTL sections (e.g. a single `dir=\"rtl\"` panel inside an otherwise\nLTR page). When no explicit `dir` attribute is found up the tree, falls back to the\ncomputed `direction` CSS property (e.g. set via a `direction: rtl` style rule with no\n`dir` attribute). Defaults to `'ltr'` when `el` is `null`."
539
539
  }
540
540
  ],
541
541
  "exports": [
@@ -586,7 +586,7 @@
586
586
  }
587
587
  }
588
588
  ],
589
- "description": "Creates a reactive counter state signal for text fields with `maxLength`.\nOnly call this when `maxLength` may be set — the state is genuinely opt-in."
589
+ "description": "Creates a reactive counter state signal for text fields with `maxLength`.\nOnly call this when `maxLength` may be set: the state is genuinely opt-in."
590
590
  },
591
591
  {
592
592
  "kind": "function",
@@ -608,7 +608,7 @@
608
608
  "default": "'counter'"
609
609
  }
610
610
  ],
611
- "description": "The single implementation of \"which modifier class does this counter state map to\" —\nevery field with a character counter (`ore-input`, `ore-textarea`, `ore-message-composer`)\nrenders the identical near-limit/at-limit styling, so this is the one place that decides it."
611
+ "description": "The single implementation of \"which modifier class does this counter state map to\" :\nevery field with a character counter (`ore-input`, `ore-textarea`, `ore-message-composer`)\nrenders the identical near-limit/at-limit styling, so this is the one place that decides it."
612
612
  },
613
613
  {
614
614
  "kind": "function",
@@ -784,7 +784,7 @@
784
784
  }
785
785
  }
786
786
  ],
787
- "description": "Register icons (or override existing ones) by name. Keys may be kebab-case or\nPascalCase — both resolve."
787
+ "description": "Register icons (or override existing ones) by name. Keys may be kebab-case or\nPascalCase: both resolve."
788
788
  },
789
789
  {
790
790
  "kind": "function",
@@ -1051,7 +1051,7 @@
1051
1051
  }
1052
1052
  }
1053
1053
  ],
1054
- "description": "Coerces `value` via `Number()` and returns it when finite, `undefined` otherwise.\n\nCaveat: `null` and `''` both coerce to `0` in JavaScript (`Number(null) === 0`,\n`Number('') === 0`) and are therefore returned as the finite number `0`, not\n`undefined` — this function does not treat \"absent\" values specially. Only\ngenuinely non-numeric input (`undefined`, `NaN`, non-numeric strings) yields\n`undefined`. Callers that mean \"no bound set\" should pass `undefined`\nexplicitly rather than `null` or `''`."
1054
+ "description": "Coerces `value` via `Number()` and returns it when finite, `undefined` otherwise.\n\nCaveat: `null` and `''` both coerce to `0` in JavaScript (`Number(null) === 0`,\n`Number('') === 0`) and are therefore returned as the finite number `0`, not\n`undefined`: this function does not treat \"absent\" values specially. Only\ngenuinely non-numeric input (`undefined`, `NaN`, non-numeric strings) yields\n`undefined`. Callers that mean \"no bound set\" should pass `undefined`\nexplicitly rather than `null` or `''`."
1055
1055
  },
1056
1056
  {
1057
1057
  "kind": "function",
@@ -1279,7 +1279,7 @@
1279
1279
  }
1280
1280
  }
1281
1281
  ],
1282
- "description": "Parses a boolean HTML attribute value into `true | false | undefined`, where\n`undefined` means \"attribute absent\" — the signal controlled components (`open`)\nuse to distinguish uncontrolled from controlled mode.\n\nThe grammar is the standard attribute one: presence with no value (`open`) or\nthe literal `\"true\"` is true; anything else, including `\"false\"`, is false.\nEvery controlled overlay (dialog, drawer, menu, popover, tooltip,\ncommand-palette) parses its `open` prop with this exact contract."
1282
+ "description": "Parses a boolean HTML attribute value into `true | false | undefined`, where\n`undefined` means \"attribute absent\": the signal controlled components (`open`)\nuse to distinguish uncontrolled from controlled mode.\n\nThe grammar is the standard attribute one: presence with no value (`open`) or\nthe literal `\"true\"` is true; anything else, including `\"false\"`, is false.\nEvery controlled overlay (dialog, drawer, menu, popover, tooltip,\ncommand-palette) parses its `open` prop with this exact contract."
1283
1283
  }
1284
1284
  ],
1285
1285
  "exports": [
@@ -1361,7 +1361,7 @@
1361
1361
  }
1362
1362
  }
1363
1363
  ],
1364
- "description": "Forwards a mounted element to a JS-only `ref` callback prop, and keeps forwarding to a\n*new* callback if the prop is set again after mount (e.g. a parent sets it via a ref\ncallback after render, rather than at initial mount). Every text-entry-style component\nwith a `ref` escape-hatch prop (`ore-input`, `ore-textarea`, `ore-message-composer`,\n`ore-file-input`) wires this identically — call it once from inside `onElement()`, alongside\nwhatever else that element needs wired."
1364
+ "description": "Forwards a mounted element to a JS-only `ref` callback prop, and keeps forwarding to a\n*new* callback if the prop is set again after mount (e.g. a parent sets it via a ref\ncallback after render, rather than at initial mount). Every text-entry-style component\nwith a `ref` escape-hatch prop (`ore-input`, `ore-textarea`, `ore-message-composer`,\n`ore-file-input`) wires this identically: call it once from inside `onElement()`, alongside\nwhatever else that element needs wired."
1365
1365
  }
1366
1366
  ],
1367
1367
  "exports": [
@@ -1771,19 +1771,19 @@
1771
1771
  "kind": "variable",
1772
1772
  "name": "MESSAGE_COMPOSER_SIZE_PRESET",
1773
1773
  "default": "{ lg: { '--_padding': 'var(--size-4)', fontSize: 'var(--text-base)', gap: 'var(--size-2-5)', }, md: { '--_padding': 'var(--size-3)', fontSize: 'var(--text-sm)', gap: 'var(--size-2)', }, sm: { '--_padding': 'var(--size-2)', fontSize: 'var(--text-xs)', gap: 'var(--size-1-5)', }, } satisfies FullSizePreset",
1774
- "description": "Size preset for the message composer card. Padding is symmetric (unlike\n`TEXTAREA_SIZE_PRESET`'s field-shaped padding) since this scales a card that wraps a field\n*and* a toolbar row, not a bare field — `md`'s padding matches the value the card used before\n`size` scaled anything, so the default look is unchanged."
1774
+ "description": "Size preset for the message composer card. Padding is symmetric (unlike\n`TEXTAREA_SIZE_PRESET`'s field-shaped padding) since this scales a card that wraps a field\n*and* a toolbar row, not a bare field: `md`'s padding matches the value the card used before\n`size` scaled anything, so the default look is unchanged."
1775
1775
  },
1776
1776
  {
1777
1777
  "kind": "variable",
1778
1778
  "name": "MENU_SIZE_PRESET",
1779
1779
  "default": "{ lg: { '--_item-padding': 'var(--size-2) var(--size-3-5)', '--_panel-padding': 'var(--size-1-5)', '--_separator-margin': 'var(--size-1-5)', fontSize: 'var(--text-base)', gap: 'var(--size-2-5)', }, md: { '--_item-padding': 'var(--size-1-5) var(--size-3)', '--_panel-padding': 'var(--size-1)', '--_separator-margin': 'var(--size-1)', fontSize: 'var(--text-sm)', gap: 'var(--size-2)', }, sm: { '--_item-padding': 'var(--size-1) var(--size-2-5)', '--_panel-padding': 'var(--size-0-5)', '--_separator-margin': 'var(--size-0-5)', fontSize: 'var(--text-xs)', gap: 'var(--size-1-5)', }, } satisfies FullSizePreset",
1780
- "description": "Size preset for `ore-menu`'s floating panel, `ore-menu-item`'s row, and `ore-menu-separator`'s\nmargin. `--_panel-padding`, `--_item-padding`, and `--_separator-margin` are custom pass-through\nkeys (not one of `SizeConfig`'s named slots) since the panel, its items, and its separators each\nneed independently-scaling spacing; `md`'s values match what `menu.css`/`menu-item.css`/\n`menu-separator.css` hardcoded before `size` was wired up, so the default look is unchanged.\n`--_font-size`/`--_gap` are inherited by `ore-menu-item` from `ore-menu`'s own host — custom\nproperties cascade down through light-DOM children the same way they cascade into a shadow root."
1780
+ "description": "Size preset for `ore-menu`'s floating panel, `ore-menu-item`'s row, and `ore-menu-separator`'s\nmargin. `--_panel-padding`, `--_item-padding`, and `--_separator-margin` are custom pass-through\nkeys (not one of `SizeConfig`'s named slots) since the panel, its items, and its separators each\nneed independently-scaling spacing; `md`'s values match what `menu.css`/`menu-item.css`/\n`menu-separator.css` hardcoded before `size` was wired up, so the default look is unchanged.\n`--_font-size`/`--_gap` are inherited by `ore-menu-item` from `ore-menu`'s own host: custom\nproperties cascade down through light-DOM children the same way they cascade into a shadow root."
1781
1781
  },
1782
1782
  {
1783
1783
  "kind": "variable",
1784
1784
  "name": "LIST_SIZE_PRESET",
1785
1785
  "default": "{ lg: { '--_min-height': 'var(--size-14)', '--_min-height-two-line': 'calc(var(--size-16) + var(--size-2))', '--_padding-inline-end': 'var(--size-6)', fontSize: 'var(--text-base)', gap: 'var(--size-4)', padding: 'var(--size-3) var(--size-4)', }, md: { '--_min-height': 'var(--size-14)', '--_min-height-two-line': 'calc(var(--size-16) + var(--size-2))', '--_padding-inline-end': 'var(--size-6)', fontSize: 'var(--text-sm)', gap: 'var(--size-4)', padding: 'var(--size-2-5) var(--size-4)', }, sm: { '--_min-height': 'var(--size-12)', '--_min-height-two-line': 'var(--size-16)', '--_padding-inline-end': 'var(--size-4)', fontSize: 'var(--text-xs)', gap: 'var(--size-2)', padding: 'var(--size-1-5) var(--size-2)', }, } satisfies FullSizePreset",
1786
- "description": "Size preset for `ore-list`'s own host. `ore-list-item` has no `sizeVariantMixin` call of its\nown — it reads `--_gap`/`--_padding`/`--_padding-inline-end`/`--_font-size`/`--_min-height`/\n`--_min-height-two-line` inherited straight from its parent `ore-list`'s shadow host (custom\nproperties cascade through light-DOM children the same way `MENU_SIZE_PRESET` cascades from\n`ore-menu` into `ore-menu-item`), with fallback defaults for standalone use outside an\n`ore-list`.\n\nFollows Material 3's list-item spacing at `md`/`lg`: 16dp between leading/content/trailing\n(`gap`), 16dp inline-start (`padding`), 24dp inline-end (`--_padding-inline-end` — the trailing\nedge sits 8dp further out than the other three sides in the M3 spec), 56dp one-line / 72dp\ntwo-line row height (`--_min-height`/`--_min-height-two-line`, applied in `list-item.css`).\n`sm` keeps the same asymmetry and the M3/WCAG 48dp touch-target floor proportionally, for a\ndenser list that still reads as \"M3-like\" rather than hitting the exact dp values M3 doesn't\nitself define an alternate density for."
1786
+ "description": "Size preset for `ore-list`'s own host. `ore-list-item` has no `sizeVariantMixin` call of its\nown: it reads `--_gap`/`--_padding`/`--_padding-inline-end`/`--_font-size`/`--_min-height`/\n`--_min-height-two-line` inherited straight from its parent `ore-list`'s shadow host (custom\nproperties cascade through light-DOM children the same way `MENU_SIZE_PRESET` cascades from\n`ore-menu` into `ore-menu-item`), with fallback defaults for standalone use outside an\n`ore-list`.\n\nFollows Material 3's list-item spacing at `md`/`lg`: 16dp between leading/content/trailing\n(`gap`), 16dp inline-start (`padding`), 24dp inline-end (`--_padding-inline-end`: the trailing\nedge sits 8dp further out than the other three sides in the M3 spec), 56dp one-line / 72dp\ntwo-line row height (`--_min-height`/`--_min-height-two-line`, applied in `list-item.css`).\n`sm` keeps the same asymmetry and the M3/WCAG 48dp touch-target floor proportionally, for a\ndenser list that still reads as \"M3-like\" rather than hitting the exact dp values M3 doesn't\nitself define an alternate density for."
1787
1787
  },
1788
1788
  {
1789
1789
  "kind": "variable",
@@ -2773,14 +2773,14 @@
2773
2773
  "text": "'ore-chat-message'"
2774
2774
  },
2775
2775
  "default": "'ore-chat-message'",
2776
- "description": "A single message bubble for chat/conversation UIs — sender-aware alignment, an optional\navatar slot, delivery status (sending/sent/error with retry), and a streaming cursor for\nassistant messages still generating. Content is provided via the default slot, so any\nmarkdown-to-HTML rendering stays the consumer's choice.\n\nThe default slot's leading/trailing whitespace-only text nodes are trimmed in place once\nper slot assignment (mount, and again on `slotchange`) — pretty-printed HTML's\nindentation would otherwise render as blank lines, since the bubble preserves line breaks\n(`white-space: pre-wrap`) for genuine multi-paragraph replies. This mutates those specific\ntext nodes' `textContent` directly; it never touches nodes appended afterward (e.g. by\n`el.textContent += token` while streaming), only the ones present at assignment time."
2776
+ "description": "A single message bubble for chat/conversation UIs: sender-aware alignment, an optional\navatar slot, delivery status (sending/sent/error with retry), and a streaming cursor for\nassistant messages still generating. Content is provided via the default slot, so any\nmarkdown-to-HTML rendering stays the consumer's choice.\n\nThe default slot's leading/trailing whitespace-only text nodes are trimmed in place once\nper slot assignment (mount, and again on `slotchange`): pretty-printed HTML's\nindentation would otherwise render as blank lines, since the bubble preserves line breaks\n(`white-space: pre-wrap`) for genuine multi-paragraph replies. This mutates those specific\ntext nodes' `textContent` directly; it never touches nodes appended afterward (e.g. by\n`el.textContent += token` while streaming), only the ones present at assignment time."
2777
2777
  },
2778
2778
  {
2779
2779
  "kind": "class",
2780
2780
  "name": "OreChatMessageElement",
2781
2781
  "tagName": "ore-chat-message",
2782
2782
  "customElement": true,
2783
- "description": "A single message bubble for chat/conversation UIs — sender-aware alignment, an optional\navatar slot, delivery status (sending/sent/error with retry), and a streaming cursor for\nassistant messages still generating. Content is provided via the default slot, so any\nmarkdown-to-HTML rendering stays the consumer's choice.\nThe default slot's leading/trailing whitespace-only text nodes are trimmed in place once\nper slot assignment (mount, and again on `slotchange`) — pretty-printed HTML's\nindentation would otherwise render as blank lines, since the bubble preserves line breaks\n(`white-space: pre-wrap`) for genuine multi-paragraph replies. This mutates those specific\ntext nodes' `textContent` directly; it never touches nodes appended afterward (e.g. by\n`el.textContent += token` while streaming), only the ones present at assignment time.",
2783
+ "description": "A single message bubble for chat/conversation UIs: sender-aware alignment, an optional\navatar slot, delivery status (sending/sent/error with retry), and a streaming cursor for\nassistant messages still generating. Content is provided via the default slot, so any\nmarkdown-to-HTML rendering stays the consumer's choice.\nThe default slot's leading/trailing whitespace-only text nodes are trimmed in place once\nper slot assignment (mount, and again on `slotchange`): pretty-printed HTML's\nindentation would otherwise render as blank lines, since the bubble preserves line breaks\n(`white-space: pre-wrap`) for genuine multi-paragraph replies. This mutates those specific\ntext nodes' `textContent` directly; it never touches nodes appended afterward (e.g. by\n`el.textContent += token` while streaming), only the ones present at assignment time.",
2784
2784
  "summary": "",
2785
2785
  "attributes": [
2786
2786
  {
@@ -2975,14 +2975,14 @@
2975
2975
  "text": "'ore-chat-panel'"
2976
2976
  },
2977
2977
  "default": "'ore-chat-panel'",
2978
- "description": "A self-contained assistant chat surface — the fixed corner window a demo or support\nflow needs: header with title, status, Start over and close; a live-region message\ntranscript built from `ore-chat-message`; suggested questions while the transcript\nholds only the greeting; and an `ore-message-composer` footer.\n\nThe panel owns presentation and interaction only. Reply generation, persistence, and\naction semantics stay with the consumer: listen for `send`, append the assistant reply\nto `messages`, and reassign the array; handle `action` for whatever a message's action\npayload means in your app."
2978
+ "description": "A self-contained assistant chat surface: the fixed corner window a demo or support\nflow needs: header with title, status, Start over and close; a live-region message\ntranscript built from `ore-chat-message`; suggested questions while the transcript\nholds only the greeting; and an `ore-message-composer` footer.\n\nThe panel owns presentation and interaction only. Reply generation, persistence, and\naction semantics stay with the consumer: listen for `send`, append the assistant reply\nto `messages`, and reassign the array; handle `action` for whatever a message's action\npayload means in your app."
2979
2979
  },
2980
2980
  {
2981
2981
  "kind": "class",
2982
2982
  "name": "OreChatPanelElement",
2983
2983
  "tagName": "ore-chat-panel",
2984
2984
  "customElement": true,
2985
- "description": "A self-contained assistant chat surface — the fixed corner window a demo or support\nflow needs: header with title, status, Start over and close; a live-region message\ntranscript built from `ore-chat-message`; suggested questions while the transcript\nholds only the greeting; and an `ore-message-composer` footer.\nThe panel owns presentation and interaction only. Reply generation, persistence, and\naction semantics stay with the consumer: listen for `send`, append the assistant reply\nto `messages`, and reassign the array; handle `action` for whatever a message's action\npayload means in your app.",
2985
+ "description": "A self-contained assistant chat surface: the fixed corner window a demo or support\nflow needs: header with title, status, Start over and close; a live-region message\ntranscript built from `ore-chat-message`; suggested questions while the transcript\nholds only the greeting; and an `ore-message-composer` footer.\nThe panel owns presentation and interaction only. Reply generation, persistence, and\naction semantics stay with the consumer: listen for `send`, append the assistant reply\nto `messages`, and reassign the array; handle `action` for whatever a message's action\npayload means in your app.",
2986
2986
  "summary": "",
2987
2987
  "attributes": [
2988
2988
  {
@@ -3180,14 +3180,14 @@
3180
3180
  "text": "'ore-code-window'"
3181
3181
  },
3182
3182
  "default": "'ore-code-window'",
3183
- "description": "A styled window chrome for code blocks and AI/MCP conversation flows.\n\nTwo variants:\n- `variant=\"code\"` (default) — language badge + optional filename header.\n- `variant=\"chat\"` — traffic-light dots + title header."
3183
+ "description": "A styled window chrome for code blocks and AI/MCP conversation flows.\n\nTwo variants:\n- `variant=\"code\"` (default): language badge + optional filename header.\n- `variant=\"chat\"`: traffic-light dots + title header."
3184
3184
  },
3185
3185
  {
3186
3186
  "kind": "class",
3187
3187
  "name": "OreCodeWindowElement",
3188
3188
  "tagName": "ore-code-window",
3189
3189
  "customElement": true,
3190
- "description": "A styled window chrome for code blocks and AI/MCP conversation flows.\nTwo variants:\n- `variant=\"code\"` (default) — language badge + optional filename header.\n- `variant=\"chat\"` — traffic-light dots + title header.",
3190
+ "description": "A styled window chrome for code blocks and AI/MCP conversation flows.\nTwo variants:\n- `variant=\"code\"` (default): language badge + optional filename header.\n- `variant=\"chat\"`: traffic-light dots + title header.",
3191
3191
  "summary": "",
3192
3192
  "attributes": [
3193
3193
  {
@@ -3683,7 +3683,7 @@
3683
3683
  }
3684
3684
  }
3685
3685
  ],
3686
- "description": "The swipe-reveal-confirm gesture behind `ore-list-item`'s `actions-left`/`actions-right` slots\n— isolated here since it's the one genuinely tricky part of the component (three distance\nthresholds, inline style/attribute choreography during an active drag). Deliberately *not* a\nshared primitive: `createPanGesture` itself already is one (shared with `ore-toast`),\nbut this two-stage reveal/confirm layer on top of it has exactly one consumer today —\ngeneralizing it further would be speculative, not reusable.\n\nOnly sets/clears the `revealed`/`data-dragging`/`data-confirming` attributes and `--_swipe-x`\nstyle — it does not itself emit `reveal`/`conceal`. `ore-list-item` already watches `revealed`\nfor transitions (to cover *both* this gesture and a directly-set attribute uniformly), so this\nmodule setting the attribute is enough to drive both that watcher and `list.css`'s\n`[revealed]` styling."
3686
+ "description": "The swipe-reveal-confirm gesture behind `ore-list-item`'s `actions-left`/`actions-right` slots\n: isolated here since it's the one genuinely tricky part of the component (three distance\nthresholds, inline style/attribute choreography during an active drag). Deliberately *not* a\nshared primitive: `createPanGesture` itself already is one (shared with `ore-toast`),\nbut this two-stage reveal/confirm layer on top of it has exactly one consumer today :\ngeneralizing it further would be speculative, not reusable.\n\nOnly sets/clears the `revealed`/`data-dragging`/`data-confirming` attributes and `--_swipe-x`\nstyle: it does not itself emit `reveal`/`conceal`. `ore-list-item` already watches `revealed`\nfor transitions (to cover *both* this gesture and a directly-set attribute uniformly), so this\nmodule setting the attribute is enough to drive both that watcher and `list.css`'s\n`[revealed]` styling."
3687
3687
  }
3688
3688
  ],
3689
3689
  "exports": [
@@ -3708,14 +3708,14 @@
3708
3708
  "text": "'ore-list-item'"
3709
3709
  },
3710
3710
  "default": "'ore-list-item'",
3711
- "description": "A single row inside `ore-list`. Renders `leading`/default (title)/`description`/`trailing`\ncontent plus two off-canvas action panels (`actions-left`, `actions-right`) that a horizontal\npointer/touch swipe reveals — useful for mobile-style row actions (archive, delete, …). An\naction panel only opens if it actually has slotted content; swiping the other direction is a\nno-op. Revealed actions stay reachable from the keyboard (Tab focus on a slotted action button\nreveals its panel via `:focus-within`, independent of any gesture).\n\nSwiping past the reveal distance snaps the panel fully open on release; swiping further still —\npast the full-swipe-through distance — auto-confirms that side's action immediately (fires\n`confirm` and clicks the slot's first element), the same \"swipe all the way\" shortcut as iOS\nMail's delete gesture.\n\nClosing a revealed panel is deliberately one-directional: tap/click the row itself, tap outside\nthe item, or open a different item's panel. Reverse-swiping an already-open item is not\nsupported — see `ore-list`'s docs for the reasoning.\n\nOn hover-capable fine pointers, a hovered row peeks a few pixels of its first action panel\n(`--list-item-peek`, a fraction of the panel width) so the swipe affordance is discoverable\nwithout a gesture; touch discovers the swipe natively."
3711
+ "description": "A single row inside `ore-list`. Renders `leading`/default (title)/`description`/`trailing`\ncontent plus two off-canvas action panels (`actions-left`, `actions-right`) that a horizontal\npointer/touch swipe reveals: useful for mobile-style row actions (archive, delete, …). An\naction panel only opens if it actually has slotted content; swiping the other direction is a\nno-op. Revealed actions stay reachable from the keyboard (Tab focus on a slotted action button\nreveals its panel via `:focus-within`, independent of any gesture).\n\nSwiping past the reveal distance snaps the panel fully open on release; swiping further still :\npast the full-swipe-through distance: auto-confirms that side's action immediately (fires\n`confirm` and clicks the slot's first element), the same \"swipe all the way\" shortcut as iOS\nMail's delete gesture.\n\nClosing a revealed panel is deliberately one-directional: tap/click the row itself, tap outside\nthe item, or open a different item's panel. Reverse-swiping an already-open item is not\nsupported: see `ore-list`'s docs for the reasoning.\n\nOn hover-capable fine pointers, a hovered row peeks a few pixels of its first action panel\n(`--list-item-peek`, a fraction of the panel width) so the swipe affordance is discoverable\nwithout a gesture; touch discovers the swipe natively."
3712
3712
  },
3713
3713
  {
3714
3714
  "kind": "class",
3715
3715
  "name": "OreListItemElement",
3716
3716
  "tagName": "ore-list-item",
3717
3717
  "customElement": true,
3718
- "description": "A single row inside `ore-list`. Renders `leading`/default (title)/`description`/`trailing`\ncontent plus two off-canvas action panels (`actions-left`, `actions-right`) that a horizontal\npointer/touch swipe reveals — useful for mobile-style row actions (archive, delete, …). An\naction panel only opens if it actually has slotted content; swiping the other direction is a\nno-op. Revealed actions stay reachable from the keyboard (Tab focus on a slotted action button\nreveals its panel via `:focus-within`, independent of any gesture).\nSwiping past the reveal distance snaps the panel fully open on release; swiping further still —\npast the full-swipe-through distance — auto-confirms that side's action immediately (fires\n`confirm` and clicks the slot's first element), the same \"swipe all the way\" shortcut as iOS\nMail's delete gesture.\nClosing a revealed panel is deliberately one-directional: tap/click the row itself, tap outside\nthe item, or open a different item's panel. Reverse-swiping an already-open item is not\nsupported — see `ore-list`'s docs for the reasoning.\nOn hover-capable fine pointers, a hovered row peeks a few pixels of its first action panel\n(`--list-item-peek`, a fraction of the panel width) so the swipe affordance is discoverable\nwithout a gesture; touch discovers the swipe natively.",
3718
+ "description": "A single row inside `ore-list`. Renders `leading`/default (title)/`description`/`trailing`\ncontent plus two off-canvas action panels (`actions-left`, `actions-right`) that a horizontal\npointer/touch swipe reveals: useful for mobile-style row actions (archive, delete, …). An\naction panel only opens if it actually has slotted content; swiping the other direction is a\nno-op. Revealed actions stay reachable from the keyboard (Tab focus on a slotted action button\nreveals its panel via `:focus-within`, independent of any gesture).\nSwiping past the reveal distance snaps the panel fully open on release; swiping further still :\npast the full-swipe-through distance: auto-confirms that side's action immediately (fires\n`confirm` and clicks the slot's first element), the same \"swipe all the way\" shortcut as iOS\nMail's delete gesture.\nClosing a revealed panel is deliberately one-directional: tap/click the row itself, tap outside\nthe item, or open a different item's panel. Reverse-swiping an already-open item is not\nsupported: see `ore-list`'s docs for the reasoning.\nOn hover-capable fine pointers, a hovered row peeks a few pixels of its first action panel\n(`--list-item-peek`, a fraction of the panel width) so the swipe affordance is discoverable\nwithout a gesture; touch discovers the swipe natively.",
3719
3719
  "summary": "",
3720
3720
  "attributes": [
3721
3721
  {
@@ -3792,7 +3792,7 @@
3792
3792
  },
3793
3793
  {
3794
3794
  "name": "confirm",
3795
- "description": "Swiped all the way through — fires before the slotted action's own click. detail: { item: HTMLElement, side: 'left' | 'right' }",
3795
+ "description": "Swiped all the way through: fires before the slotted action's own click. detail: { item: HTMLElement, side: 'left' | 'right' }",
3796
3796
  "type": {
3797
3797
  "text": "CustomEvent"
3798
3798
  }
@@ -3923,14 +3923,14 @@
3923
3923
  "text": "'ore-list'"
3924
3924
  },
3925
3925
  "default": "'ore-list'",
3926
- "description": "A vertical list container for `ore-list-item` children — plain display list by default, or a\nkeyboard-navigable single-select listbox via `selectable`. Each item can independently reveal\na left/right action panel via touch/pointer swipe (see `ore-list-item`'s `actions-left`/\n`actions-right` slots) — useful for mobile-style row actions (archive, delete, …)."
3926
+ "description": "A vertical list container for `ore-list-item` children: plain display list by default, or a\nkeyboard-navigable single-select listbox via `selectable`. Each item can independently reveal\na left/right action panel via touch/pointer swipe (see `ore-list-item`'s `actions-left`/\n`actions-right` slots): useful for mobile-style row actions (archive, delete, …)."
3927
3927
  },
3928
3928
  {
3929
3929
  "kind": "class",
3930
3930
  "name": "OreListElement",
3931
3931
  "tagName": "ore-list",
3932
3932
  "customElement": true,
3933
- "description": "A vertical list container for `ore-list-item` children — plain display list by default, or a\nkeyboard-navigable single-select listbox via `selectable`. Each item can independently reveal\na left/right action panel via touch/pointer swipe (see `ore-list-item`'s `actions-left`/\n`actions-right` slots) — useful for mobile-style row actions (archive, delete, …).",
3933
+ "description": "A vertical list container for `ore-list-item` children: plain display list by default, or a\nkeyboard-navigable single-select listbox via `selectable`. Each item can independently reveal\na left/right action panel via touch/pointer swipe (see `ore-list-item`'s `actions-left`/\n`actions-right` slots): useful for mobile-style row actions (archive, delete, …).",
3934
3934
  "summary": "",
3935
3935
  "attributes": [
3936
3936
  {
@@ -3959,7 +3959,7 @@
3959
3959
  "type": {
3960
3960
  "text": "string"
3961
3961
  },
3962
- "description": "Selected item's value (only meaningful when `selectable`) — the single source of truth for selection"
3962
+ "description": "Selected item's value (only meaningful when `selectable`): the single source of truth for selection"
3963
3963
  },
3964
3964
  {
3965
3965
  "name": "variant",
@@ -4338,14 +4338,14 @@
4338
4338
  "text": "'ore-qr-code'"
4339
4339
  },
4340
4340
  "default": "'ore-qr-code'",
4341
- "description": "Renders a QR code for `value` as inline SVG — themeable via `currentColor`,\ncrisp at any scale, no canvas. On capacity errors the component shows an\nerror state and emits `error` rather than throwing."
4341
+ "description": "Renders a QR code for `value` as inline SVG: themeable via `currentColor`,\ncrisp at any scale, no canvas. On capacity errors the component shows an\nerror state and emits `error` rather than throwing."
4342
4342
  },
4343
4343
  {
4344
4344
  "kind": "class",
4345
4345
  "name": "OreQrCodeElement",
4346
4346
  "tagName": "ore-qr-code",
4347
4347
  "customElement": true,
4348
- "description": "Renders a QR code for `value` as inline SVG — themeable via `currentColor`,\ncrisp at any scale, no canvas. On capacity errors the component shows an\nerror state and emits `error` rather than throwing.",
4348
+ "description": "Renders a QR code for `value` as inline SVG: themeable via `currentColor`,\ncrisp at any scale, no canvas. On capacity errors the component shows an\nerror state and emits `error` rather than throwing.",
4349
4349
  "summary": "",
4350
4350
  "attributes": [
4351
4351
  {
@@ -4500,6 +4500,226 @@
4500
4500
  }
4501
4501
  ]
4502
4502
  },
4503
+ {
4504
+ "kind": "javascript-module",
4505
+ "path": "src/content/rank-list/rank-item.ts",
4506
+ "declarations": [
4507
+ {
4508
+ "kind": "variable",
4509
+ "name": "RANK_ITEM_TAG",
4510
+ "type": {
4511
+ "text": "'ore-rank-item'"
4512
+ },
4513
+ "default": "'ore-rank-item'",
4514
+ "description": "A single ranked row inside `ore-rank-list`: a rank numeral, an optional `leading` slot\n(avatar, icon), the label, a secondary `description` line, and a right-aligned `trailing`\nvalue, with a proportional bar under the row sized against the largest sibling `value`.\nThe row is the whole visualization: the label and value stay text, so the ranking is\nreadable and accessible with the bar treated as reinforcement, never as the only carrier."
4515
+ },
4516
+ {
4517
+ "kind": "class",
4518
+ "name": "OreRankItemElement",
4519
+ "tagName": "ore-rank-item",
4520
+ "customElement": true,
4521
+ "description": "A single ranked row inside `ore-rank-list`: a rank numeral, an optional `leading` slot\n(avatar, icon), the label, a secondary `description` line, and a right-aligned `trailing`\nvalue, with a proportional bar under the row sized against the largest sibling `value`.\nThe row is the whole visualization: the label and value stay text, so the ranking is\nreadable and accessible with the bar treated as reinforcement, never as the only carrier.",
4522
+ "summary": "",
4523
+ "attributes": [
4524
+ {
4525
+ "name": "bar",
4526
+ "type": {
4527
+ "text": "boolean"
4528
+ },
4529
+ "description": "Show the proportional bar (default). Disable with `bar=\"false\"` for non-count rows."
4530
+ },
4531
+ {
4532
+ "name": "rank",
4533
+ "type": {
4534
+ "text": "number"
4535
+ },
4536
+ "description": "Rank position: assigned automatically by the parent list in DOM order; manual values are overwritten."
4537
+ },
4538
+ {
4539
+ "name": "value",
4540
+ "type": {
4541
+ "text": "number"
4542
+ },
4543
+ "description": "The row's numeric value: sizes the bar against the largest sibling, and is the formatted display when no `trailing` slot is present."
4544
+ }
4545
+ ],
4546
+ "slots": [
4547
+ {
4548
+ "name": "leading",
4549
+ "description": "Content before the label (e.g. avatar, icon)"
4550
+ },
4551
+ {
4552
+ "name": "",
4553
+ "description": "Item label"
4554
+ },
4555
+ {
4556
+ "name": "description",
4557
+ "description": "Secondary line below the label (e.g. sample count)"
4558
+ },
4559
+ {
4560
+ "name": "trailing",
4561
+ "description": "Right-aligned value display; replaces the formatted `value`"
4562
+ }
4563
+ ],
4564
+ "cssParts": [
4565
+ {
4566
+ "name": "row",
4567
+ "description": "The text row (rank, leading, label, trailing)"
4568
+ },
4569
+ {
4570
+ "name": "rank",
4571
+ "description": "The rank numeral (aria-hidden: the list order carries it)"
4572
+ },
4573
+ {
4574
+ "name": "leading",
4575
+ "description": "The leading slot container"
4576
+ },
4577
+ {
4578
+ "name": "content",
4579
+ "description": "The label + description container"
4580
+ },
4581
+ {
4582
+ "name": "label",
4583
+ "description": "The label slot container"
4584
+ },
4585
+ {
4586
+ "name": "description",
4587
+ "description": "The description slot container"
4588
+ },
4589
+ {
4590
+ "name": "trailing",
4591
+ "description": "The trailing value container"
4592
+ },
4593
+ {
4594
+ "name": "bar",
4595
+ "description": "The bar track"
4596
+ },
4597
+ {
4598
+ "name": "bar-fill",
4599
+ "description": "The bar fill"
4600
+ }
4601
+ ],
4602
+ "cssProperties": [
4603
+ {
4604
+ "name": "--rank-number-color",
4605
+ "description": "Rank numeral color (default --color-contrast-500)"
4606
+ },
4607
+ {
4608
+ "name": "--rank-number-width",
4609
+ "description": "Rank numeral column width (default --size-6)"
4610
+ },
4611
+ {
4612
+ "name": "--rank-bar-color",
4613
+ "description": "Bar fill color (default --color-primary)"
4614
+ },
4615
+ {
4616
+ "name": "--rank-track-color",
4617
+ "description": "Bar track color (default --color-contrast-100)"
4618
+ },
4619
+ {
4620
+ "name": "--rank-bar-height",
4621
+ "description": "Bar height (default --size-1)"
4622
+ }
4623
+ ],
4624
+ "demos": [
4625
+ {
4626
+ "url": "",
4627
+ "description": "```html\n<ore-rank-item value=\"8\">\n <ore-avatar slot=\"leading\" src=\"alex.png\" alt=\"\" rounded=\"full\" size=\"sm\"></ore-avatar>\n Alex\n</ore-rank-item>\n<ore-rank-item value=\"6\" bar=\"false\">\n Overview\n <span slot=\"description\">4 timed sessions</span>\n <span slot=\"trailing\">24m 11s</span>\n</ore-rank-item>\n```"
4628
+ }
4629
+ ]
4630
+ }
4631
+ ],
4632
+ "exports": [
4633
+ {
4634
+ "kind": "js",
4635
+ "name": "RANK_ITEM_TAG",
4636
+ "declaration": {
4637
+ "name": "RANK_ITEM_TAG",
4638
+ "module": "src/content/rank-list/rank-item.ts"
4639
+ }
4640
+ },
4641
+ {
4642
+ "kind": "custom-element-definition",
4643
+ "name": "OreRankItemElement",
4644
+ "declaration": {
4645
+ "name": "OreRankItemElement",
4646
+ "module": "src/content/rank-list/rank-item.ts"
4647
+ }
4648
+ }
4649
+ ]
4650
+ },
4651
+ {
4652
+ "kind": "javascript-module",
4653
+ "path": "src/content/rank-list/rank-list.ts",
4654
+ "declarations": [
4655
+ {
4656
+ "kind": "variable",
4657
+ "name": "RANK_CTX",
4658
+ "description": "Injection key for the rank context."
4659
+ },
4660
+ {
4661
+ "kind": "variable",
4662
+ "name": "RANK_LIST_TAG",
4663
+ "type": {
4664
+ "text": "'ore-rank-list'"
4665
+ },
4666
+ "default": "'ore-rank-list'",
4667
+ "description": "A ranked display list: an ordered set of `ore-rank-item` rows where each row's proportional\nbar makes the ranking scannable without a separate chart. The list itself owns the two\nfacts an item cannot know on its own: the position of each row (assigned back to the item\nas its `rank` prop, in DOM order) and the scale every bar is measured against (the largest\nchild `value`, shared through context).\n\nThis is a read-only data display, not a selection control: rows never receive interactive\nstate. Order the items yourself before rendering: the list numbers them, it does not sort\nthem."
4668
+ },
4669
+ {
4670
+ "kind": "class",
4671
+ "name": "OreRankListElement",
4672
+ "tagName": "ore-rank-list",
4673
+ "customElement": true,
4674
+ "description": "A ranked display list: an ordered set of `ore-rank-item` rows where each row's proportional\nbar makes the ranking scannable without a separate chart. The list itself owns the two\nfacts an item cannot know on its own: the position of each row (assigned back to the item\nas its `rank` prop, in DOM order) and the scale every bar is measured against (the largest\nchild `value`, shared through context).\nThis is a read-only data display, not a selection control: rows never receive interactive\nstate. Order the items yourself before rendering: the list numbers them, it does not sort\nthem.",
4675
+ "summary": "",
4676
+ "slots": [
4677
+ {
4678
+ "name": "",
4679
+ "description": "`ore-rank-item` elements as direct children"
4680
+ }
4681
+ ],
4682
+ "cssProperties": [
4683
+ {
4684
+ "name": "--rank-list-gap",
4685
+ "description": "Vertical gap between rows (default --size-1)"
4686
+ }
4687
+ ],
4688
+ "demos": [
4689
+ {
4690
+ "url": "",
4691
+ "description": "```html\n<ore-rank-list aria-label=\"Most visited pages\">\n <ore-rank-item value=\"8\">Documentation</ore-rank-item>\n <ore-rank-item value=\"6\">Pricing</ore-rank-item>\n <ore-rank-item value=\"2\" bar=\"false\">Blog<span slot=\"trailing\">18m 24s</span></ore-rank-item>\n</ore-rank-list>\n```"
4692
+ }
4693
+ ]
4694
+ }
4695
+ ],
4696
+ "exports": [
4697
+ {
4698
+ "kind": "js",
4699
+ "name": "RANK_CTX",
4700
+ "declaration": {
4701
+ "name": "RANK_CTX",
4702
+ "module": "src/content/rank-list/rank-list.ts"
4703
+ }
4704
+ },
4705
+ {
4706
+ "kind": "js",
4707
+ "name": "RANK_LIST_TAG",
4708
+ "declaration": {
4709
+ "name": "RANK_LIST_TAG",
4710
+ "module": "src/content/rank-list/rank-list.ts"
4711
+ }
4712
+ },
4713
+ {
4714
+ "kind": "custom-element-definition",
4715
+ "name": "OreRankListElement",
4716
+ "declaration": {
4717
+ "name": "OreRankListElement",
4718
+ "module": "src/content/rank-list/rank-list.ts"
4719
+ }
4720
+ }
4721
+ ]
4722
+ },
4503
4723
  {
4504
4724
  "kind": "javascript-module",
4505
4725
  "path": "src/content/separator/separator.ts",
@@ -4616,7 +4836,7 @@
4616
4836
  "text": "[1, 0.85, 1.15]"
4617
4837
  },
4618
4838
  "default": "[1, 0.85, 1.15]",
4619
- "description": "The rate steps the speed control cycles through — normal, slow, fast."
4839
+ "description": "The rate steps the speed control cycles through: normal, slow, fast."
4620
4840
  },
4621
4841
  {
4622
4842
  "kind": "function",
@@ -4634,7 +4854,7 @@
4634
4854
  }
4635
4855
  }
4636
4856
  ],
4637
- "description": "The entry's sentences — prose ends . ! or ?, closing quotes belong to the sentence\nthey end, and an unterminated tail is still a sentence. Consumers that highlight what\nis being read build their display from this same list, so `progress` sentence indexes\nmap onto their own."
4857
+ "description": "The entry's sentences: prose ends . ! or ?, closing quotes belong to the sentence\nthey end, and an unterminated tail is still a sentence. Consumers that highlight what\nis being read build their display from this same list, so `progress` sentence indexes\nmap onto their own."
4638
4858
  },
4639
4859
  {
4640
4860
  "kind": "variable",
@@ -4643,14 +4863,14 @@
4643
4863
  "text": "'ore-speech-player'"
4644
4864
  },
4645
4865
  "default": "'ore-speech-player'",
4646
- "description": "A text-to-speech player control — reads its `text` aloud through the Web Speech API.\n\nRenders a labeled play/pause toggle (the label folds away once engaged), a stop\ncontrol beside it that appears while reading, and a speed control cycling\nnormal/slow/fast. The text is spoken sentence by sentence (long sentences split into pieces under the\nengine's truncation window), the `state` attribute reflects playback, a\n`role=\"status\"` live region announces transitions, and `progress` events name the\nsentence being read so a consumer can highlight it. Only one player speaks at a\ntime: starting one stops any other. `resume-at` names the sentence to begin from,\nso a persisted position makes resume mean it."
4866
+ "description": "A text-to-speech player control: reads its `text` aloud through the Web Speech API.\n\nRenders a labeled play/pause toggle (the label folds away once engaged), a stop\ncontrol beside it that appears while reading, and a speed control cycling\nnormal/slow/fast. The text is spoken sentence by sentence (long sentences split into pieces under the\nengine's truncation window), the `state` attribute reflects playback, a\n`role=\"status\"` live region announces transitions, and `progress` events name the\nsentence being read so a consumer can highlight it. Only one player speaks at a\ntime: starting one stops any other. `resume-at` names the sentence to begin from,\nso a persisted position makes resume mean it."
4647
4867
  },
4648
4868
  {
4649
4869
  "kind": "class",
4650
4870
  "name": "OreSpeechPlayerElement",
4651
4871
  "tagName": "ore-speech-player",
4652
4872
  "customElement": true,
4653
- "description": "A text-to-speech player control — reads its `text` aloud through the Web Speech API.\nRenders a labeled play/pause toggle (the label folds away once engaged), a stop\ncontrol beside it that appears while reading, and a speed control cycling\nnormal/slow/fast. The text is spoken sentence by sentence (long sentences split into pieces under the\nengine's truncation window), the `state` attribute reflects playback, a\n`role=\"status\"` live region announces transitions, and `progress` events name the\nsentence being read so a consumer can highlight it. Only one player speaks at a\ntime: starting one stops any other. `resume-at` names the sentence to begin from,\nso a persisted position makes resume mean it.",
4873
+ "description": "A text-to-speech player control: reads its `text` aloud through the Web Speech API.\nRenders a labeled play/pause toggle (the label folds away once engaged), a stop\ncontrol beside it that appears while reading, and a speed control cycling\nnormal/slow/fast. The text is spoken sentence by sentence (long sentences split into pieces under the\nengine's truncation window), the `state` attribute reflects playback, a\n`role=\"status\"` live region announces transitions, and `progress` events name the\nsentence being read so a consumer can highlight it. Only one player speaks at a\ntime: starting one stops any other. `resume-at` names the sentence to begin from,\nso a persisted position makes resume mean it.",
4654
4874
  "summary": "",
4655
4875
  "attributes": [
4656
4876
  {
@@ -5109,14 +5329,14 @@
5109
5329
  "text": "'ore-step'"
5110
5330
  },
5111
5331
  "default": "'ore-step'",
5112
- "description": "A single step trigger. Must be placed as a direct child of `ore-stepper`, which provides\nthis step's current/completed/navigable/index/total state via context — those are derived,\nread-only attributes on this element, not settable props."
5332
+ "description": "A single step trigger. Must be placed as a direct child of `ore-stepper`, which provides\nthis step's current/completed/navigable/index/total state via context: those are derived,\nread-only attributes on this element, not settable props."
5113
5333
  },
5114
5334
  {
5115
5335
  "kind": "class",
5116
5336
  "name": "OreStepElement",
5117
5337
  "tagName": "ore-step",
5118
5338
  "customElement": true,
5119
- "description": "A single step trigger. Must be placed as a direct child of `ore-stepper`, which provides\nthis step's current/completed/navigable/index/total state via context — those are derived,\nread-only attributes on this element, not settable props.",
5339
+ "description": "A single step trigger. Must be placed as a direct child of `ore-stepper`, which provides\nthis step's current/completed/navigable/index/total state via context: those are derived,\nread-only attributes on this element, not settable props.",
5120
5340
  "summary": "",
5121
5341
  "attributes": [
5122
5342
  {
@@ -5565,14 +5785,14 @@
5565
5785
  "text": "'ore-table'"
5566
5786
  },
5567
5787
  "default": "'ore-table'",
5568
- "description": "Data table component.\n\nReads light-DOM `<ore-tr>`/`<ore-th>`/`<ore-td>` markers and projects them\ninto a fully-native shadow `<table>`. Cell attributes (`colspan`, `rowspan`,\n`scope`, etc.) are mirrored. Changes are observed and synced incrementally.\n\nNative table features — sticky headers, colspan/rowspan, the table layout\nalgorithm — all work because the shadow tree contains real table elements."
5788
+ "description": "Data table component.\n\nReads light-DOM `<ore-tr>`/`<ore-th>`/`<ore-td>` markers and projects them\ninto a fully-native shadow `<table>`. Cell attributes (`colspan`, `rowspan`,\n`scope`, etc.) are mirrored. Changes are observed and synced incrementally.\n\nNative table features: sticky headers, colspan/rowspan, the table layout\nalgorithm: all work because the shadow tree contains real table elements."
5569
5789
  },
5570
5790
  {
5571
5791
  "kind": "class",
5572
5792
  "name": "OreTableElement",
5573
5793
  "tagName": "ore-table",
5574
5794
  "customElement": true,
5575
- "description": "Data table component.\nReads light-DOM `<ore-tr>`/`<ore-th>`/`<ore-td>` markers and projects them\ninto a fully-native shadow `<table>`. Cell attributes (`colspan`, `rowspan`,\n`scope`, etc.) are mirrored. Changes are observed and synced incrementally.\nNative table features — sticky headers, colspan/rowspan, the table layout\nalgorithm — all work because the shadow tree contains real table elements.",
5795
+ "description": "Data table component.\nReads light-DOM `<ore-tr>`/`<ore-th>`/`<ore-td>` markers and projects them\ninto a fully-native shadow `<table>`. Cell attributes (`colspan`, `rowspan`,\n`scope`, etc.) are mirrored. Changes are observed and synced incrementally.\nNative table features: sticky headers, colspan/rowspan, the table layout\nalgorithm: all work because the shadow tree contains real table elements.",
5576
5796
  "summary": "",
5577
5797
  "attributes": [
5578
5798
  {
@@ -7230,7 +7450,7 @@
7230
7450
  "type": {
7231
7451
  "text": "string"
7232
7452
  },
7233
- "description": "Content layout: 'inline' (default) | 'stacked' — stacked places the icon above a wrapping label, for tile-like selectable chips"
7453
+ "description": "Content layout: 'inline' (default) | 'stacked': stacked places the icon above a wrapping label, for tile-like selectable chips"
7234
7454
  },
7235
7455
  {
7236
7456
  "name": "disabled",
@@ -7428,14 +7648,14 @@
7428
7648
  "text": "'ore-cookie-banner'"
7429
7649
  },
7430
7650
  "default": "'ore-cookie-banner'",
7431
- "description": "A fixed-position consent banner for cookie/tracker opt-in: a short policy text\n(default slot, links included), optional per-category opt-in checkboxes with\ndescriptions, and accept-all / reject / save actions.\n\nThe layout is a single column — heading, policy text, a scrollable category\npanel, and actions — that scales linearly from one to many categories. Each\ncategory renders as a checkbox row; its optional `description` passes through\nthe checkbox's `helper` mechanism, so it is both visible below the label and\nlinked to the control via `aria-describedby`. The category panel scrolls\ninternally when it exceeds `--cookie-banner-categories-max-height`, so the\nbanner itself never grows past the viewport.\n\nThe banner owns presentation only. It never stores anything: listen for `decide`,\npersist the emitted record yourself (localStorage, a CMP, your own backend), and\ngate third-party embeds on it. The banner hides itself after `decide` unless\n`hide-on-decide` is set to false. Call `show()` again to let the user revise\ntheir choice.\n\nThe banner is a non-modal `role=\"dialog\"`: screen readers announce it when it\nappears, focus moves to the dialog card itself on `show()` — a neutral target,\nso no action is preselected for keyboard users — and returns to the previously\nfocused element on `hide()`. A banner that is simply present at page load (never\nshown via `show()`) does not steal focus and is not announced; consumers that\nwant a load-time announcement should call `show()` from a user gesture.\n\nThe `decide` record contains exactly the currently configured category ids\n(plus `essential`, always true). Replace — do not merge — the stored record\nwith it, so categories removed between sessions drop their stale keys."
7651
+ "description": "A fixed-position consent banner for cookie/tracker opt-in: a short policy text\n(default slot, links included), optional per-category opt-in checkboxes with\ndescriptions, and accept-all / reject / save actions.\n\nThe layout is a single column: heading, policy text, a scrollable category\npanel, and actions, that scales linearly from one to many categories. Each\ncategory renders as a checkbox row; its optional `description` passes through\nthe checkbox's `helper` mechanism, so it is both visible below the label and\nlinked to the control via `aria-describedby`. The category panel scrolls\ninternally when it exceeds `--cookie-banner-categories-max-height`, so the\nbanner itself never grows past the viewport.\n\nThe banner owns presentation only. It never stores anything: listen for `decide`,\npersist the emitted record yourself (localStorage, a CMP, your own backend), and\ngate third-party embeds on it. The banner hides itself after `decide` unless\n`hide-on-decide` is set to false. Call `show()` again to let the user revise\ntheir choice.\n\nThe banner is a non-modal `role=\"dialog\"`: screen readers announce it when it\nappears, focus moves to the dialog card itself on `show()`: a neutral target,\nso no action is preselected for keyboard users, and returns to the previously\nfocused element on `hide()`. A banner that is simply present at page load (never\nshown via `show()`) does not steal focus and is not announced; consumers that\nwant a load-time announcement should call `show()` from a user gesture.\n\nThe `decide` record contains exactly the currently configured category ids\n(plus `essential`, always true). Replace: do not merge: the stored record\nwith it, so categories removed between sessions drop their stale keys."
7432
7652
  },
7433
7653
  {
7434
7654
  "kind": "class",
7435
7655
  "name": "OreCookieBannerElement",
7436
7656
  "tagName": "ore-cookie-banner",
7437
7657
  "customElement": true,
7438
- "description": "A fixed-position consent banner for cookie/tracker opt-in: a short policy text\n(default slot, links included), optional per-category opt-in checkboxes with\ndescriptions, and accept-all / reject / save actions.\nThe layout is a single column — heading, policy text, a scrollable category\npanel, and actions — that scales linearly from one to many categories. Each\ncategory renders as a checkbox row; its optional `description` passes through\nthe checkbox's `helper` mechanism, so it is both visible below the label and\nlinked to the control via `aria-describedby`. The category panel scrolls\ninternally when it exceeds `--cookie-banner-categories-max-height`, so the\nbanner itself never grows past the viewport.\nThe banner owns presentation only. It never stores anything: listen for `decide`,\npersist the emitted record yourself (localStorage, a CMP, your own backend), and\ngate third-party embeds on it. The banner hides itself after `decide` unless\n`hide-on-decide` is set to false. Call `show()` again to let the user revise\ntheir choice.\nThe banner is a non-modal `role=\"dialog\"`: screen readers announce it when it\nappears, focus moves to the dialog card itself on `show()` — a neutral target,\nso no action is preselected for keyboard users — and returns to the previously\nfocused element on `hide()`. A banner that is simply present at page load (never\nshown via `show()`) does not steal focus and is not announced; consumers that\nwant a load-time announcement should call `show()` from a user gesture.\nThe `decide` record contains exactly the currently configured category ids\n(plus `essential`, always true). Replace — do not merge — the stored record\nwith it, so categories removed between sessions drop their stale keys.",
7658
+ "description": "A fixed-position consent banner for cookie/tracker opt-in: a short policy text\n(default slot, links included), optional per-category opt-in checkboxes with\ndescriptions, and accept-all / reject / save actions.\nThe layout is a single column: heading, policy text, a scrollable category\npanel, and actions, that scales linearly from one to many categories. Each\ncategory renders as a checkbox row; its optional `description` passes through\nthe checkbox's `helper` mechanism, so it is both visible below the label and\nlinked to the control via `aria-describedby`. The category panel scrolls\ninternally when it exceeds `--cookie-banner-categories-max-height`, so the\nbanner itself never grows past the viewport.\nThe banner owns presentation only. It never stores anything: listen for `decide`,\npersist the emitted record yourself (localStorage, a CMP, your own backend), and\ngate third-party embeds on it. The banner hides itself after `decide` unless\n`hide-on-decide` is set to false. Call `show()` again to let the user revise\ntheir choice.\nThe banner is a non-modal `role=\"dialog\"`: screen readers announce it when it\nappears, focus moves to the dialog card itself on `show()`: a neutral target,\nso no action is preselected for keyboard users, and returns to the previously\nfocused element on `hide()`. A banner that is simply present at page load (never\nshown via `show()`) does not steal focus and is not announced; consumers that\nwant a load-time announcement should call `show()` from a user gesture.\nThe `decide` record contains exactly the currently configured category ids\n(plus `essential`, always true). Replace: do not merge: the stored record\nwith it, so categories removed between sessions drop their stale keys.",
7439
7659
  "summary": "",
7440
7660
  "attributes": [
7441
7661
  {
@@ -7456,7 +7676,7 @@
7456
7676
  "events": [
7457
7677
  {
7458
7678
  "name": "decide",
7459
- "description": "A decision was made. detail: { consent } — every category id plus `essential`, always true.",
7679
+ "description": "A decision was made. detail: { consent }: every category id plus `essential`, always true.",
7460
7680
  "type": {
7461
7681
  "text": "CustomEvent"
7462
7682
  }
@@ -8026,7 +8246,7 @@
8026
8246
  "name": "OreToastElement",
8027
8247
  "tagName": "ore-toast",
8028
8248
  "customElement": true,
8029
- "description": "Declarative toast host. It subscribes to the service for its scope and\nrenders notifications, but has no imperative mutation API of its own.\nNotifications render as a vertical list (newest nearest the anchored edge)\ninside polite and assertive live regions. Entries are keyed by id, so store\nupdates (timer pauses, message updates, phase changes) patch the existing\nDOM instead of re-creating it — focus, in-flight gestures, and CSS\ntransitions all survive.",
8249
+ "description": "Declarative toast host. It subscribes to the service for its scope and\nrenders notifications, but has no imperative mutation API of its own.\nNotifications render as a vertical list (newest nearest the anchored edge)\ninside polite and assertive live regions. Entries are keyed by id, so store\nupdates (timer pauses, message updates, phase changes) patch the existing\nDOM instead of re-creating it: focus, in-flight gestures, and CSS\ntransitions all survive.",
8030
8250
  "summary": "",
8031
8251
  "attributes": [
8032
8252
  {
@@ -8087,6 +8307,10 @@
8087
8307
  "name": "--toast-progress-height",
8088
8308
  "description": "Height of the auto-dismiss progress bar."
8089
8309
  },
8310
+ {
8311
+ "name": "--toast-snackbar-height",
8312
+ "description": "Snackbar message row height, action or not (default --size-8)."
8313
+ },
8090
8314
  {
8091
8315
  "name": "--toast-inset-top / --toast-inset-bottom / --toast-inset-left / --toast-inset-right",
8092
8316
  "description": "Viewport insets."
@@ -8176,14 +8400,14 @@
8176
8400
  "text": "'ore-typing-indicator'"
8177
8401
  },
8178
8402
  "default": "'ore-typing-indicator'",
8179
- "description": "Three bouncing dots signaling that the other side of a conversation is composing a reply —\nthe moment before any content exists. For a message whose content is already streaming in,\nuse `ore-chat-message`'s `streaming` attribute (a blinking cursor) instead.\n\nThe dots are decorative (`aria-hidden`) — `label` is the entire accessibility contract,\nannounced through the shared singleton live region (`core/announcer.ts`) rather than a\nstatic `aria-live` element in the template. A live region populated in the same paint as\nits own insertion is unreliable across browsers/screen readers; routing through the shared\nannouncer (pre-existing region, clear-then-set, document-scoped) is the same pattern\nalready used for other transient status messages across this package."
8403
+ "description": "Three bouncing dots signaling that the other side of a conversation is composing a reply :\nthe moment before any content exists. For a message whose content is already streaming in,\nuse `ore-chat-message`'s `streaming` attribute (a blinking cursor) instead.\n\nThe dots are decorative (`aria-hidden`): `label` is the entire accessibility contract,\nannounced through the shared singleton live region (`core/announcer.ts`) rather than a\nstatic `aria-live` element in the template. A live region populated in the same paint as\nits own insertion is unreliable across browsers/screen readers; routing through the shared\nannouncer (pre-existing region, clear-then-set, document-scoped) is the same pattern\nalready used for other transient status messages across this package."
8180
8404
  },
8181
8405
  {
8182
8406
  "kind": "class",
8183
8407
  "name": "OreTypingIndicatorElement",
8184
8408
  "tagName": "ore-typing-indicator",
8185
8409
  "customElement": true,
8186
- "description": "Three bouncing dots signaling that the other side of a conversation is composing a reply —\nthe moment before any content exists. For a message whose content is already streaming in,\nuse `ore-chat-message`'s `streaming` attribute (a blinking cursor) instead.\nThe dots are decorative (`aria-hidden`) — `label` is the entire accessibility contract,\nannounced through the shared singleton live region (`core/announcer.ts`) rather than a\nstatic `aria-live` element in the template. A live region populated in the same paint as\nits own insertion is unreliable across browsers/screen readers; routing through the shared\nannouncer (pre-existing region, clear-then-set, document-scoped) is the same pattern\nalready used for other transient status messages across this package.",
8410
+ "description": "Three bouncing dots signaling that the other side of a conversation is composing a reply :\nthe moment before any content exists. For a message whose content is already streaming in,\nuse `ore-chat-message`'s `streaming` attribute (a blinking cursor) instead.\nThe dots are decorative (`aria-hidden`): `label` is the entire accessibility contract,\nannounced through the shared singleton live region (`core/announcer.ts`) rather than a\nstatic `aria-live` element in the template. A live region populated in the same paint as\nits own insertion is unreliable across browsers/screen readers; routing through the shared\nannouncer (pre-existing region, clear-then-set, document-scoped) is the same pattern\nalready used for other transient status messages across this package.",
8187
8411
  "summary": "",
8188
8412
  "attributes": [
8189
8413
  {
@@ -9517,14 +9741,14 @@
9517
9741
  "text": "'ore-counter'"
9518
9742
  },
9519
9743
  "default": "'ore-counter'",
9520
- "description": "A large-target tally control for counting things at a glance: `−` / value / `+` with an\noptional icon, label and hint. Designed for touch and arm's-length use (tabletop trackers,\ninventories, scoreboards) rather than typed form entry — use `ore-number-input` for that.\n\nHolding any button auto-repeats. The value is announced through a live region and is\nkeyboard-operable as a spinbutton (Arrow keys, Home/End, Page Up/Down). Set `quick-steps` to add an\nouter pair of buttons that move by `large-step`, for values that change in chunks (damage, scores)."
9744
+ "description": "A large-target tally control for counting things at a glance: `−` / value / `+` with an\noptional icon, label and hint. Designed for touch and arm's-length use (tabletop trackers,\ninventories, scoreboards) rather than typed form entry: use `ore-number-input` for that.\n\nHolding any button auto-repeats. The value is announced through a live region and is\nkeyboard-operable as a spinbutton (Arrow keys, Home/End, Page Up/Down). Set `quick-steps` to add an\nouter pair of buttons that move by `large-step`, for values that change in chunks (damage, scores)."
9521
9745
  },
9522
9746
  {
9523
9747
  "kind": "class",
9524
9748
  "name": "OreCounterElement",
9525
9749
  "tagName": "ore-counter",
9526
9750
  "customElement": true,
9527
- "description": "A large-target tally control for counting things at a glance: `−` / value / `+` with an\noptional icon, label and hint. Designed for touch and arm's-length use (tabletop trackers,\ninventories, scoreboards) rather than typed form entry — use `ore-number-input` for that.\nHolding any button auto-repeats. The value is announced through a live region and is\nkeyboard-operable as a spinbutton (Arrow keys, Home/End, Page Up/Down). Set `quick-steps` to add an\nouter pair of buttons that move by `large-step`, for values that change in chunks (damage, scores).",
9751
+ "description": "A large-target tally control for counting things at a glance: `−` / value / `+` with an\noptional icon, label and hint. Designed for touch and arm's-length use (tabletop trackers,\ninventories, scoreboards) rather than typed form entry: use `ore-number-input` for that.\nHolding any button auto-repeats. The value is announced through a live region and is\nkeyboard-operable as a spinbutton (Arrow keys, Home/End, Page Up/Down). Set `quick-steps` to add an\nouter pair of buttons that move by `large-step`, for values that change in chunks (damage, scores).",
9528
9752
  "summary": "",
9529
9753
  "attributes": [
9530
9754
  {
@@ -9637,6 +9861,10 @@
9637
9861
  "name": "icon",
9638
9862
  "description": "Leading icon or token artwork shown before the label"
9639
9863
  },
9864
+ {
9865
+ "name": "header-end",
9866
+ "description": "Trailing header action beside the label"
9867
+ },
9640
9868
  {
9641
9869
  "name": "hint",
9642
9870
  "description": "Custom hint content (replaces the `hint` attribute)"
@@ -10076,7 +10304,7 @@
10076
10304
  }
10077
10305
  }
10078
10306
  ],
10079
- "description": "Returns the Lucide icon name for a column's sort state.\nPure function — no closure dependency on the grid model."
10307
+ "description": "Returns the Lucide icon name for a column's sort state.\nPure function: no closure dependency on the grid model."
10080
10308
  },
10081
10309
  {
10082
10310
  "kind": "function",
@@ -10100,7 +10328,7 @@
10100
10328
  }
10101
10329
  }
10102
10330
  ],
10103
- "description": "Returns the WAI-ARIA `aria-sort` value for a column.\nPure function — independently unit-testable."
10331
+ "description": "Returns the WAI-ARIA `aria-sort` value for a column.\nPure function: independently unit-testable."
10104
10332
  },
10105
10333
  {
10106
10334
  "kind": "variable",
@@ -10561,7 +10789,7 @@
10561
10789
  }
10562
10790
  }
10563
10791
  ],
10564
- "description": "Owns file selection *and* the opt-in upload lifecycle together — they were never really\nseparable (adding a file starts its upload; removing one must abort it; replacing one is both\nat once). Independent of `html`/rendering, following the same shape as `datagrid`'s\n`createDataGridControls` and `combobox`'s `combobox-options.ts`: a factory `file-input.ts`\nwires into drag/drop/native-input events and the template, directly unit-testable without\nmounting a component.\n\nEvery file-level rule (accept, max-size, max-files, disabled) and every upload-lifecycle rule\n(progress, retry-from-offset, per-file isolation) lives here in one place."
10792
+ "description": "Owns file selection *and* the opt-in upload lifecycle together: they were never really\nseparable (adding a file starts its upload; removing one must abort it; replacing one is both\nat once). Independent of `html`/rendering, following the same shape as `datagrid`'s\n`createDataGridControls` and `combobox`'s `combobox-options.ts`: a factory `file-input.ts`\nwires into drag/drop/native-input events and the template, directly unit-testable without\nmounting a component.\n\nEvery file-level rule (accept, max-size, max-files, disabled) and every upload-lifecycle rule\n(progress, retry-from-offset, per-file isolation) lives here in one place."
10565
10793
  }
10566
10794
  ],
10567
10795
  "exports": [
@@ -10594,14 +10822,14 @@
10594
10822
  "text": "'ore-file-input'"
10595
10823
  },
10596
10824
  "default": "'ore-file-input'",
10597
- "description": "A file upload field with drag-and-drop support, built-in validation messaging, and — once a\n`upload` transport is wired up — a full per-file upload lifecycle: live progress/speed/ETA,\nretry-on-failure, a success confirmation card, and fully independent handling of concurrent\nfiles (one failing never blocks or cancels the others). Picking files with no `upload` set\nkeeps the original, upload-free selection-only behavior."
10825
+ "description": "A file upload field with drag-and-drop support, built-in validation messaging, and: once a\n`upload` transport is wired up: a full per-file upload lifecycle: live progress/speed/ETA,\nretry-on-failure, a success confirmation card, and fully independent handling of concurrent\nfiles (one failing never blocks or cancels the others). Picking files with no `upload` set\nkeeps the original, upload-free selection-only behavior."
10598
10826
  },
10599
10827
  {
10600
10828
  "kind": "class",
10601
10829
  "name": "OreFileInputElement",
10602
10830
  "tagName": "ore-file-input",
10603
10831
  "customElement": true,
10604
- "description": "A file upload field with drag-and-drop support, built-in validation messaging, and — once a\n`upload` transport is wired up — a full per-file upload lifecycle: live progress/speed/ETA,\nretry-on-failure, a success confirmation card, and fully independent handling of concurrent\nfiles (one failing never blocks or cancels the others). Picking files with no `upload` set\nkeeps the original, upload-free selection-only behavior.",
10832
+ "description": "A file upload field with drag-and-drop support, built-in validation messaging, and: once a\n`upload` transport is wired up: a full per-file upload lifecycle: live progress/speed/ETA,\nretry-on-failure, a success confirmation card, and fully independent handling of concurrent\nfiles (one failing never blocks or cancels the others). Picking files with no `upload` set\nkeeps the original, upload-free selection-only behavior.",
10605
10833
  "summary": "",
10606
10834
  "attributes": [
10607
10835
  {
@@ -10713,7 +10941,7 @@
10713
10941
  },
10714
10942
  {
10715
10943
  "name": "reject",
10716
- "description": "detail: { files: File[], reasons: ('size' | 'type')[] } — nothing was added",
10944
+ "description": "detail: { files: File[], reasons: ('size' | 'type')[] }: nothing was added",
10717
10945
  "type": {
10718
10946
  "text": "CustomEvent"
10719
10947
  }
@@ -10815,7 +11043,7 @@
10815
11043
  "demos": [
10816
11044
  {
10817
11045
  "url": "",
10818
- "description": "```html\n<ore-file-input label=\"Upload files\" accept=\"image/*\" multiple />\n<ore-file-input label=\"Photos\" accept=\"image/*\" multiple gallery />\n<ore-file-input label=\"Resume\" accept=\".pdf,.doc,.docx\" max-size=\"5242880\" />\n<ore-file-input variant=\"bordered\" color=\"primary\" />\n```\n```ts\n// Wire up a real upload transport — progress/retry/success are then handled automatically.\n// `XMLHttpRequest` is used here (not `fetch`) because it's the only browser API that reports\n// upload progress; swap in whatever transport the app already uses.\nconst input = document.querySelector('ore-file-input');\ninput.upload = (file, { onProgress, signal, resumeFrom }) =>\n new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n xhr.upload.addEventListener('progress', (e) => onProgress(resumeFrom + e.loaded, file.size));\n xhr.addEventListener('load', () => (xhr.status < 400 ? resolve() : reject(new Error(xhr.statusText))));\n xhr.addEventListener('error', () => reject(new Error('Network error')));\n signal.addEventListener('abort', () => xhr.abort());\n xhr.open('PUT', '/uploads');\n if (resumeFrom > 0) xhr.setRequestHeader('Content-Range', `bytes ${resumeFrom}-/${file.size}`);\n xhr.send(file);\n });\n```"
11046
+ "description": "```html\n<ore-file-input label=\"Upload files\" accept=\"image/*\" multiple />\n<ore-file-input label=\"Photos\" accept=\"image/*\" multiple gallery />\n<ore-file-input label=\"Resume\" accept=\".pdf,.doc,.docx\" max-size=\"5242880\" />\n<ore-file-input variant=\"bordered\" color=\"primary\" />\n```\n```ts\n// Wire up a real upload transport: progress/retry/success are then handled automatically.\n// `XMLHttpRequest` is used here (not `fetch`) because it's the only browser API that reports\n// upload progress; swap in whatever transport the app already uses.\nconst input = document.querySelector('ore-file-input');\ninput.upload = (file, { onProgress, signal, resumeFrom }) =>\n new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n xhr.upload.addEventListener('progress', (e) => onProgress(resumeFrom + e.loaded, file.size));\n xhr.addEventListener('load', () => (xhr.status < 400 ? resolve() : reject(new Error(xhr.statusText))));\n xhr.addEventListener('error', () => reject(new Error('Network error')));\n signal.addEventListener('abort', () => xhr.abort());\n xhr.open('PUT', '/uploads');\n if (resumeFrom > 0) xhr.setRequestHeader('Content-Range', `bytes ${resumeFrom}-/${file.size}`);\n xhr.send(file);\n });\n```"
10819
11047
  }
10820
11048
  ]
10821
11049
  }
@@ -10969,7 +11197,7 @@
10969
11197
  "type": {
10970
11198
  "text": "string"
10971
11199
  },
10972
- "description": "Error message — marks the field as invalid (fallback when the `error` slot is empty)"
11200
+ "description": "Error message: marks the field as invalid (fallback when the `error` slot is empty)"
10973
11201
  },
10974
11202
  {
10975
11203
  "name": "disabled",
@@ -11062,15 +11290,15 @@
11062
11290
  },
11063
11291
  {
11064
11292
  "name": "label",
11065
- "description": "Replaces the label text — slotted content takes precedence over the `label` prop"
11293
+ "description": "Replaces the label text: slotted content takes precedence over the `label` prop"
11066
11294
  },
11067
11295
  {
11068
11296
  "name": "helper",
11069
- "description": "Replaces the helper text — slotted content takes precedence over the `helper` prop"
11297
+ "description": "Replaces the helper text: slotted content takes precedence over the `helper` prop"
11070
11298
  },
11071
11299
  {
11072
11300
  "name": "error",
11073
- "description": "Replaces the error text — slotted content takes precedence over the `error` prop"
11301
+ "description": "Replaces the error text: slotted content takes precedence over the `error` prop"
11074
11302
  }
11075
11303
  ],
11076
11304
  "cssParts": [
@@ -11215,14 +11443,14 @@
11215
11443
  "text": "'ore-message-composer'"
11216
11444
  },
11217
11445
  "default": "'ore-message-composer'",
11218
- "description": "A message/comment composer — a card with an auto-resizing field on top and a toolbar row\nbelow it, built directly on the same core primitives as `ore-textarea` (`createTextField`,\n`createAutoResize`) rather than composing `ore-textarea` itself. Nesting a fully-styled sibling\ncomponent and suppressing most of its chrome (as an earlier version of this component did) is\na leaky composition — this owns its single `<textarea>` outright, so there's exactly one\nimplementation of the field's appearance to reason about, not two fighting each other.\n\nHandles the send gesture (Enter to send, Shift+Enter for a newline, or a Ctrl/Cmd+Enter\nalternative), IME-safe composition, and clear-and-refocus after sending."
11446
+ "description": "A message/comment composer: a card with an auto-resizing field on top and a toolbar row\nbelow it, built directly on the same core primitives as `ore-textarea` (`createTextField`,\n`createAutoResize`) rather than composing `ore-textarea` itself. Nesting a fully-styled sibling\ncomponent and suppressing most of its chrome (as an earlier version of this component did) is\na leaky composition: this owns its single `<textarea>` outright, so there's exactly one\nimplementation of the field's appearance to reason about, not two fighting each other.\n\nHandles the send gesture (Enter to send, Shift+Enter for a newline, or a Ctrl/Cmd+Enter\nalternative), IME-safe composition, and clear-and-refocus after sending."
11219
11447
  },
11220
11448
  {
11221
11449
  "kind": "class",
11222
11450
  "name": "OreMessageComposerElement",
11223
11451
  "tagName": "ore-message-composer",
11224
11452
  "customElement": true,
11225
- "description": "A message/comment composer — a card with an auto-resizing field on top and a toolbar row\nbelow it, built directly on the same core primitives as `ore-textarea` (`createTextField`,\n`createAutoResize`) rather than composing `ore-textarea` itself. Nesting a fully-styled sibling\ncomponent and suppressing most of its chrome (as an earlier version of this component did) is\na leaky composition — this owns its single `<textarea>` outright, so there's exactly one\nimplementation of the field's appearance to reason about, not two fighting each other.\nHandles the send gesture (Enter to send, Shift+Enter for a newline, or a Ctrl/Cmd+Enter\nalternative), IME-safe composition, and clear-and-refocus after sending.",
11453
+ "description": "A message/comment composer: a card with an auto-resizing field on top and a toolbar row\nbelow it, built directly on the same core primitives as `ore-textarea` (`createTextField`,\n`createAutoResize`) rather than composing `ore-textarea` itself. Nesting a fully-styled sibling\ncomponent and suppressing most of its chrome (as an earlier version of this component did) is\na leaky composition: this owns its single `<textarea>` outright, so there's exactly one\nimplementation of the field's appearance to reason about, not two fighting each other.\nHandles the send gesture (Enter to send, Shift+Enter for a newline, or a Ctrl/Cmd+Enter\nalternative), IME-safe composition, and clear-and-refocus after sending.",
11226
11454
  "summary": "",
11227
11455
  "attributes": [
11228
11456
  {
@@ -11400,7 +11628,7 @@
11400
11628
  },
11401
11629
  {
11402
11630
  "name": "send",
11403
- "description": "Replaces the default send button entirely — the only supported way to customize it"
11631
+ "description": "Replaces the default send button entirely: the only supported way to customize it"
11404
11632
  }
11405
11633
  ],
11406
11634
  "cssParts": [
@@ -12961,7 +13189,7 @@
12961
13189
  }
12962
13190
  }
12963
13191
  ],
12964
- "description": "`prop.string()` already reflects `error`'s raw value as an attribute, but that leaves the\nattribute present-but-empty (`error=\"\"`) once set instead of removing it — this normalizes\nan empty error back to \"no attribute at all\". Shared by every text-field component\n(`ore-input`, `ore-textarea`, `ore-message-composer`) since `bind()`'s own `error` writer\nneeds a derived getter, not the raw prop, to get that behavior."
13192
+ "description": "`prop.string()` already reflects `error`'s raw value as an attribute, but that leaves the\nattribute present-but-empty (`error=\"\"`) once set instead of removing it: this normalizes\nan empty error back to \"no attribute at all\". Shared by every text-field component\n(`ore-input`, `ore-textarea`, `ore-message-composer`) since `bind()`'s own `error` writer\nneeds a derived getter, not the raw prop, to get that behavior."
12965
13193
  },
12966
13194
  {
12967
13195
  "kind": "function",
@@ -13160,7 +13388,7 @@
13160
13388
  }
13161
13389
  }
13162
13390
  ],
13163
- "description": "Reads the `value` off the element an event fired from (`event.currentTarget`), guarding the\ncast: `undefined` when the target is missing or carries no string `value`. The read-side\ncompanion to setFieldValue — consumers wiring a native `change`/`input` handler to a\nfield no longer re-derive the `(currentTarget as HTMLElement & { value: string }).value` cast."
13391
+ "description": "Reads the `value` off the element an event fired from (`event.currentTarget`), guarding the\ncast: `undefined` when the target is missing or carries no string `value`. The read-side\ncompanion to setFieldValue: consumers wiring a native `change`/`input` handler to a\nfield no longer re-derive the `(currentTarget as HTMLElement & { value: string }).value` cast."
13164
13392
  },
13165
13393
  {
13166
13394
  "kind": "function",
@@ -13291,7 +13519,7 @@
13291
13519
  }
13292
13520
  }
13293
13521
  ],
13294
- "description": "Inline error/success status icon shown inside a field — identical markup across\n`ore-input`, `ore-textarea`, and `ore-message-composer` (previously hand-duplicated in all\nthree, down to the same derived-signal names)."
13522
+ "description": "Inline error/success status icon shown inside a field: identical markup across\n`ore-input`, `ore-textarea`, and `ore-message-composer` (previously hand-duplicated in all\nthree, down to the same derived-signal names)."
13295
13523
  },
13296
13524
  {
13297
13525
  "kind": "function",
@@ -13304,7 +13532,7 @@
13304
13532
  }
13305
13533
  }
13306
13534
  ],
13307
- "description": "Character counter + separate helper/error text regions below a field — identical across\n`ore-textarea` and `ore-message-composer` (kept out of `ore-input`, which slots its\nhelper/error content and drives its counter off a different data-attribute scheme via its\nown `char-counter` part — a genuinely different shape, not worth forcing into this one)."
13535
+ "description": "Character counter + separate helper/error text regions below a field: identical across\n`ore-textarea` and `ore-message-composer` (kept out of `ore-input`, which slots its\nhelper/error content and drives its counter off a different data-attribute scheme via its\nown `char-counter` part: a genuinely different shape, not worth forcing into this one)."
13308
13536
  }
13309
13537
  ],
13310
13538
  "exports": [
@@ -14396,14 +14624,14 @@
14396
14624
  "text": "'ore-box'"
14397
14625
  },
14398
14626
  "default": "'ore-box'",
14399
- "description": "ore-box — A foundational layout primitive with theming support."
14627
+ "description": "ore-box: A foundational layout primitive with theming support."
14400
14628
  },
14401
14629
  {
14402
14630
  "kind": "class",
14403
14631
  "name": "OreBoxElement",
14404
14632
  "tagName": "ore-box",
14405
14633
  "customElement": true,
14406
- "description": "ore-box — A foundational layout primitive with theming support.",
14634
+ "description": "ore-box: A foundational layout primitive with theming support.",
14407
14635
  "summary": "",
14408
14636
  "attributes": [
14409
14637
  {
@@ -14536,14 +14764,14 @@
14536
14764
  "text": "'ore-grid'"
14537
14765
  },
14538
14766
  "default": "'ore-grid'",
14539
- "description": "ore-grid — Flexible grid layout with responsive column control.\n\nColumns are computed in JS and applied as `--_cols` inline, so they respond\nto the element's own width via ResizeObserver. CSS custom properties\n`--grid-cols`, `--grid-rows`, `--grid-gap`, `--grid-row-gap`, `--grid-col-gap`\nare honoured as fallbacks when no attribute is set."
14767
+ "description": "ore-grid: Flexible grid layout with responsive column control.\n\nColumns are computed in JS and applied as `--_cols` inline, so they respond\nto the element's own width via ResizeObserver. CSS custom properties\n`--grid-cols`, `--grid-rows`, `--grid-gap`, `--grid-row-gap`, `--grid-col-gap`\nare honoured as fallbacks when no attribute is set."
14540
14768
  },
14541
14769
  {
14542
14770
  "kind": "class",
14543
14771
  "name": "OreGridElement",
14544
14772
  "tagName": "ore-grid",
14545
14773
  "customElement": true,
14546
- "description": "ore-grid — Flexible grid layout with responsive column control.\nColumns are computed in JS and applied as `--_cols` inline, so they respond\nto the element's own width via ResizeObserver. CSS custom properties\n`--grid-cols`, `--grid-rows`, `--grid-gap`, `--grid-row-gap`, `--grid-col-gap`\nare honoured as fallbacks when no attribute is set.",
14774
+ "description": "ore-grid: Flexible grid layout with responsive column control.\nColumns are computed in JS and applied as `--_cols` inline, so they respond\nto the element's own width via ResizeObserver. CSS custom properties\n`--grid-cols`, `--grid-rows`, `--grid-gap`, `--grid-row-gap`, `--grid-col-gap`\nare honoured as fallbacks when no attribute is set.",
14547
14775
  "summary": "",
14548
14776
  "attributes": [
14549
14777
  {
@@ -14762,14 +14990,14 @@
14762
14990
  "text": "'ore-grid-item'"
14763
14991
  },
14764
14992
  "default": "'ore-grid-item'",
14765
- "description": "ore-grid-item — A grid cell with declarative placement and span control.\n\nUse `col-span` / `row-span` for the common case of spanning columns/rows.\nUse `col` / `row` for full CSS grid-column / grid-row shorthand power\n(e.g. explicit placement, mixed span + start, negative lines)."
14993
+ "description": "ore-grid-item: A grid cell with declarative placement and span control.\n\nUse `col-span` / `row-span` for the common case of spanning columns/rows.\nUse `col` / `row` for full CSS grid-column / grid-row shorthand power\n(e.g. explicit placement, mixed span + start, negative lines)."
14766
14994
  },
14767
14995
  {
14768
14996
  "kind": "class",
14769
14997
  "name": "OreGridItemElement",
14770
14998
  "tagName": "ore-grid-item",
14771
14999
  "customElement": true,
14772
- "description": "ore-grid-item — A grid cell with declarative placement and span control.\nUse `col-span` / `row-span` for the common case of spanning columns/rows.\nUse `col` / `row` for full CSS grid-column / grid-row shorthand power\n(e.g. explicit placement, mixed span + start, negative lines).",
15000
+ "description": "ore-grid-item: A grid cell with declarative placement and span control.\nUse `col-span` / `row-span` for the common case of spanning columns/rows.\nUse `col` / `row` for full CSS grid-column / grid-row shorthand power\n(e.g. explicit placement, mixed span + start, negative lines).",
14773
15001
  "summary": "",
14774
15002
  "attributes": [
14775
15003
  {
@@ -14883,14 +15111,14 @@
14883
15111
  "text": "'ore-navbar'"
14884
15112
  },
14885
15113
  "default": "'ore-navbar'",
14886
- "description": "`ore-navbar` — Responsive navigation with sticky/floating modes and a mobile overflow panel."
15114
+ "description": "`ore-navbar`: Responsive navigation with sticky/floating modes and a mobile overflow panel."
14887
15115
  },
14888
15116
  {
14889
15117
  "kind": "class",
14890
15118
  "name": "OreNavbarElement",
14891
15119
  "tagName": "ore-navbar",
14892
15120
  "customElement": true,
14893
- "description": "`ore-navbar` — Responsive navigation with sticky/floating modes and a mobile overflow panel.",
15121
+ "description": "`ore-navbar`: Responsive navigation with sticky/floating modes and a mobile overflow panel.",
14894
15122
  "summary": "",
14895
15123
  "attributes": [
14896
15124
  {
@@ -15139,14 +15367,14 @@
15139
15367
  "text": "'ore-navbar-item'"
15140
15368
  },
15141
15369
  "default": "'ore-navbar-item'",
15142
- "description": "`ore-navbar-item` — Navigation item for navbar slots.\n\nRenders as an anchor when `href` is provided and item is not disabled."
15370
+ "description": "`ore-navbar-item`: Navigation item for navbar slots.\n\nRenders as an anchor when `href` is provided and item is not disabled."
15143
15371
  },
15144
15372
  {
15145
15373
  "kind": "class",
15146
15374
  "name": "OreNavbarItemElement",
15147
15375
  "tagName": "ore-navbar-item",
15148
15376
  "customElement": true,
15149
- "description": "`ore-navbar-item` — Navigation item for navbar slots.\nRenders as an anchor when `href` is provided and item is not disabled.",
15377
+ "description": "`ore-navbar-item`: Navigation item for navbar slots.\nRenders as an anchor when `href` is provided and item is not disabled.",
15150
15378
  "summary": "",
15151
15379
  "attributes": [
15152
15380
  {
@@ -15302,14 +15530,14 @@
15302
15530
  "text": "'ore-sidebar'"
15303
15531
  },
15304
15532
  "default": "'ore-sidebar'",
15305
- "description": "`ore-sidebar` — A collapsible navigation sidebar with group and item support."
15533
+ "description": "`ore-sidebar`: A collapsible navigation sidebar with group and item support."
15306
15534
  },
15307
15535
  {
15308
15536
  "kind": "class",
15309
15537
  "name": "OreSidebarElement",
15310
15538
  "tagName": "ore-sidebar",
15311
15539
  "customElement": true,
15312
- "description": "`ore-sidebar` — A collapsible navigation sidebar with group and item support.",
15540
+ "description": "`ore-sidebar`: A collapsible navigation sidebar with group and item support.",
15313
15541
  "summary": "",
15314
15542
  "attributes": [
15315
15543
  {
@@ -15487,14 +15715,14 @@
15487
15715
  "text": "'ore-sidebar-group'"
15488
15716
  },
15489
15717
  "default": "'ore-sidebar-group'",
15490
- "description": "`ore-sidebar-group` — A labelled section within `ore-sidebar`."
15718
+ "description": "`ore-sidebar-group`: A labelled section within `ore-sidebar`."
15491
15719
  },
15492
15720
  {
15493
15721
  "kind": "class",
15494
15722
  "name": "OreSidebarGroupElement",
15495
15723
  "tagName": "ore-sidebar-group",
15496
15724
  "customElement": true,
15497
- "description": "`ore-sidebar-group` — A labelled section within `ore-sidebar`.",
15725
+ "description": "`ore-sidebar-group`: A labelled section within `ore-sidebar`.",
15498
15726
  "summary": "",
15499
15727
  "attributes": [
15500
15728
  {
@@ -15559,14 +15787,14 @@
15559
15787
  "text": "'ore-sidebar-item'"
15560
15788
  },
15561
15789
  "default": "'ore-sidebar-item'",
15562
- "description": "`ore-sidebar-item` — An individual navigation item in a `ore-sidebar`.\n\nRenders as an `<a>` when `href` is provided, otherwise as a `<button>`.\nMarks the active page via `aria-current=\"page\"` when the `active` attribute is set."
15790
+ "description": "`ore-sidebar-item`: An individual navigation item in a `ore-sidebar`.\n\nRenders as an `<a>` when `href` is provided, otherwise as a `<button>`.\nMarks the active page via `aria-current=\"page\"` when the `active` attribute is set."
15563
15791
  },
15564
15792
  {
15565
15793
  "kind": "class",
15566
15794
  "name": "OreSidebarItemElement",
15567
15795
  "tagName": "ore-sidebar-item",
15568
15796
  "customElement": true,
15569
- "description": "`ore-sidebar-item` — An individual navigation item in a `ore-sidebar`.\nRenders as an `<a>` when `href` is provided, otherwise as a `<button>`.\nMarks the active page via `aria-current=\"page\"` when the `active` attribute is set.",
15797
+ "description": "`ore-sidebar-item`: An individual navigation item in a `ore-sidebar`.\nRenders as an `<a>` when `href` is provided, otherwise as a `<button>`.\nMarks the active page via `aria-current=\"page\"` when the `active` attribute is set.",
15570
15798
  "summary": "",
15571
15799
  "attributes": [
15572
15800
  {
@@ -15775,7 +16003,7 @@
15775
16003
  }
15776
16004
  }
15777
16005
  ],
15778
- "description": "Splits a display-only shortcut hint into individual keys so each can be rendered in its\nown `<kbd>`. Keys are separated with `+` (e.g. `\"⌘+N\"` → `[\"⌘\", \"N\"]`); a shortcut with no\n`+` renders as a single key, unchanged. A literal `+` key can't be represented this way —\nspell it out instead (e.g. `\"Ctrl+Plus\"`)."
16006
+ "description": "Splits a display-only shortcut hint into individual keys so each can be rendered in its\nown `<kbd>`. Keys are separated with `+` (e.g. `\"⌘+N\"` → `[\"⌘\", \"N\"]`); a shortcut with no\n`+` renders as a single key, unchanged. A literal `+` key can't be represented this way :\nspell it out instead (e.g. `\"Ctrl+Plus\"`)."
15779
16007
  },
15780
16008
  {
15781
16009
  "kind": "function",
@@ -15896,14 +16124,14 @@
15896
16124
  "text": "'ore-command-palette-item'"
15897
16125
  },
15898
16126
  "default": "'ore-command-palette-item'",
15899
- "description": "A pure data node describing one command. Never rendered directly — `ore-command-palette`\nreads its attributes/text content and renders the visible row itself."
16127
+ "description": "A pure data node describing one command. Never rendered directly: `ore-command-palette`\nreads its attributes/text content and renders the visible row itself."
15900
16128
  },
15901
16129
  {
15902
16130
  "kind": "class",
15903
16131
  "name": "OreCommandPaletteItemElement",
15904
16132
  "tagName": "ore-command-palette-item",
15905
16133
  "customElement": true,
15906
- "description": "A pure data node describing one command. Never rendered directly — `ore-command-palette`\nreads its attributes/text content and renders the visible row itself.",
16134
+ "description": "A pure data node describing one command. Never rendered directly: `ore-command-palette`\nreads its attributes/text content and renders the visible row itself.",
15907
16135
  "summary": "",
15908
16136
  "attributes": [
15909
16137
  {
@@ -15932,7 +16160,7 @@
15932
16160
  "type": {
15933
16161
  "text": "string"
15934
16162
  },
15935
- "description": "Display-only keyboard hint rendered at the end of the row, one `<kbd>` per `+`-separated key (e.g. `\"⌘+S\"` renders two keycaps; a literal `+` key isn't representable — spell it out, e.g. `\"Ctrl+Plus\"`)"
16163
+ "description": "Display-only keyboard hint rendered at the end of the row, one `<kbd>` per `+`-separated key (e.g. `\"⌘+S\"` renders two keycaps; a literal `+` key isn't representable: spell it out, e.g. `\"Ctrl+Plus\"`)"
15936
16164
  },
15937
16165
  {
15938
16166
  "name": "disabled",
@@ -15962,14 +16190,14 @@
15962
16190
  "text": "'ore-command-palette'"
15963
16191
  },
15964
16192
  "default": "'ore-command-palette'",
15965
- "description": "A searchable, keyboard-driven list of commands presented in a centered modal —\nthe \"⌘K\" pattern popularized by editors and productivity apps. Built on the\nnative `<dialog>` element (focus trap, top-layer stacking, `Escape`-to-close)\nand `@vielzeug/keymap` for the global shortcut that opens it."
16193
+ "description": "A searchable, keyboard-driven list of commands presented in a centered modal :\nthe \"⌘K\" pattern popularized by editors and productivity apps. Built on the\nnative `<dialog>` element (focus trap, top-layer stacking, `Escape`-to-close)\nand `@vielzeug/keymap` for the global shortcut that opens it."
15966
16194
  },
15967
16195
  {
15968
16196
  "kind": "class",
15969
16197
  "name": "OreCommandPaletteElement",
15970
16198
  "tagName": "ore-command-palette",
15971
16199
  "customElement": true,
15972
- "description": "A searchable, keyboard-driven list of commands presented in a centered modal —\nthe \"⌘K\" pattern popularized by editors and productivity apps. Built on the\nnative `<dialog>` element (focus trap, top-layer stacking, `Escape`-to-close)\nand `@vielzeug/keymap` for the global shortcut that opens it.",
16200
+ "description": "A searchable, keyboard-driven list of commands presented in a centered modal :\nthe \"⌘K\" pattern popularized by editors and productivity apps. Built on the\nnative `<dialog>` element (focus trap, top-layer stacking, `Escape`-to-close)\nand `@vielzeug/keymap` for the global shortcut that opens it.",
15973
16201
  "summary": "",
15974
16202
  "attributes": [
15975
16203
  {
@@ -16037,6 +16265,13 @@
16037
16265
  }
16038
16266
  ],
16039
16267
  "events": [
16268
+ {
16269
+ "name": "active-change",
16270
+ "description": "Fired when the focused row changes (keyboard, hover, typing, open, close). detail: `{ value, label, item }`; `item` is `undefined` and `value` empty when no row is active",
16271
+ "type": {
16272
+ "text": "CustomEvent"
16273
+ }
16274
+ },
16040
16275
  {
16041
16276
  "name": "open-change",
16042
16277
  "description": "Fired when the palette state changes. detail: `{ open, reason }`",
@@ -16063,6 +16298,10 @@
16063
16298
  {
16064
16299
  "name": "",
16065
16300
  "description": "`<ore-command-palette-item>` elements (alternative/supplement to the `items` prop)"
16301
+ },
16302
+ {
16303
+ "name": "preview",
16304
+ "description": "Optional detail panel rendered beside the list, shown while it has content. Pair it with `active-change` to preview the focused row"
16066
16305
  }
16067
16306
  ],
16068
16307
  "cssParts": [
@@ -16081,6 +16320,10 @@
16081
16320
  {
16082
16321
  "name": "listbox",
16083
16322
  "description": "Listbox of matching commands"
16323
+ },
16324
+ {
16325
+ "name": "preview",
16326
+ "description": "Preview panel shown beside the list"
16084
16327
  }
16085
16328
  ],
16086
16329
  "cssProperties": [
@@ -16115,6 +16358,10 @@
16115
16358
  {
16116
16359
  "name": "--command-palette-option-focus-bg",
16117
16360
  "description": "Item background when keyboard-focused"
16361
+ },
16362
+ {
16363
+ "name": "--command-palette-preview-width",
16364
+ "description": "Preview panel width when the `preview` slot has content"
16118
16365
  }
16119
16366
  ],
16120
16367
  "demos": [