@fusion.dev/helix-headless 0.0.0-dev

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 (424) hide show
  1. package/LICENSE +21 -0
  2. package/custom-elements.json +75202 -0
  3. package/dist/accordion/index.d.ts +2 -0
  4. package/dist/accordion/index.js +2 -0
  5. package/dist/accordion/item/accordion-item.d.ts +141 -0
  6. package/dist/accordion/item/accordion-item.js +214 -0
  7. package/dist/accordion/root/accordion-root.d.ts +57 -0
  8. package/dist/accordion/root/accordion-root.js +96 -0
  9. package/dist/announcement/index.d.ts +1 -0
  10. package/dist/announcement/index.js +1 -0
  11. package/dist/announcement/root/announcement-root.d.ts +106 -0
  12. package/dist/announcement/root/announcement-root.js +144 -0
  13. package/dist/app-header/index.d.ts +1 -0
  14. package/dist/app-header/index.js +1 -0
  15. package/dist/app-header/root/app-header-root.d.ts +113 -0
  16. package/dist/app-header/root/app-header-root.js +147 -0
  17. package/dist/avatar/group/avatar-group.d.ts +116 -0
  18. package/dist/avatar/group/avatar-group.js +136 -0
  19. package/dist/avatar/index.d.ts +2 -0
  20. package/dist/avatar/index.js +2 -0
  21. package/dist/avatar/root/avatar-root.d.ts +71 -0
  22. package/dist/avatar/root/avatar-root.js +147 -0
  23. package/dist/badge/index.d.ts +1 -0
  24. package/dist/badge/index.js +1 -0
  25. package/dist/badge/root/badge-root.d.ts +61 -0
  26. package/dist/badge/root/badge-root.js +121 -0
  27. package/dist/bar-chart/index.d.ts +1 -0
  28. package/dist/bar-chart/index.js +1 -0
  29. package/dist/bar-chart/root/bar-chart-root.d.ts +266 -0
  30. package/dist/bar-chart/root/bar-chart-root.js +515 -0
  31. package/dist/blockquote/index.d.ts +1 -0
  32. package/dist/blockquote/index.js +1 -0
  33. package/dist/blockquote/root/blockquote-root.d.ts +51 -0
  34. package/dist/blockquote/root/blockquote-root.js +84 -0
  35. package/dist/breadcrumbs/breadcrumb/breadcrumb.d.ts +104 -0
  36. package/dist/breadcrumbs/breadcrumb/breadcrumb.js +137 -0
  37. package/dist/breadcrumbs/index.d.ts +2 -0
  38. package/dist/breadcrumbs/index.js +2 -0
  39. package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +77 -0
  40. package/dist/breadcrumbs/root/breadcrumbs-root.js +94 -0
  41. package/dist/button/index.d.ts +1 -0
  42. package/dist/button/index.js +1 -0
  43. package/dist/button/root/button-root.d.ts +251 -0
  44. package/dist/button/root/button-root.js +401 -0
  45. package/dist/button-group/index.d.ts +1 -0
  46. package/dist/button-group/index.js +1 -0
  47. package/dist/button-group/root/button-group-root.d.ts +62 -0
  48. package/dist/button-group/root/button-group-root.js +62 -0
  49. package/dist/callout/index.d.ts +1 -0
  50. package/dist/callout/index.js +1 -0
  51. package/dist/callout/root/callout-root.d.ts +72 -0
  52. package/dist/callout/root/callout-root.js +90 -0
  53. package/dist/card/index.d.ts +1 -0
  54. package/dist/card/index.js +1 -0
  55. package/dist/card/root/card-root.d.ts +54 -0
  56. package/dist/card/root/card-root.js +71 -0
  57. package/dist/carousel/index.d.ts +1 -0
  58. package/dist/carousel/index.js +1 -0
  59. package/dist/carousel/root/carousel-root.d.ts +399 -0
  60. package/dist/carousel/root/carousel-root.js +723 -0
  61. package/dist/chat/composer/chat-composer.d.ts +160 -0
  62. package/dist/chat/composer/chat-composer.js +273 -0
  63. package/dist/chat/index.d.ts +3 -0
  64. package/dist/chat/index.js +3 -0
  65. package/dist/chat/message/chat-message.d.ts +170 -0
  66. package/dist/chat/message/chat-message.js +271 -0
  67. package/dist/chat/root/chat-root.d.ts +216 -0
  68. package/dist/chat/root/chat-root.js +389 -0
  69. package/dist/checkbox/index.d.ts +1 -0
  70. package/dist/checkbox/index.js +1 -0
  71. package/dist/checkbox/root/checkbox-root.d.ts +108 -0
  72. package/dist/checkbox/root/checkbox-root.js +207 -0
  73. package/dist/checkbox-group/index.d.ts +1 -0
  74. package/dist/checkbox-group/index.js +1 -0
  75. package/dist/checkbox-group/root/checkbox-group-root.d.ts +155 -0
  76. package/dist/checkbox-group/root/checkbox-group-root.js +293 -0
  77. package/dist/code/index.d.ts +1 -0
  78. package/dist/code/index.js +1 -0
  79. package/dist/code/root/code-root.d.ts +36 -0
  80. package/dist/code/root/code-root.js +43 -0
  81. package/dist/code-block/index.d.ts +1 -0
  82. package/dist/code-block/index.js +1 -0
  83. package/dist/code-block/root/code-block-root.d.ts +112 -0
  84. package/dist/code-block/root/code-block-root.js +155 -0
  85. package/dist/color-input/index.d.ts +1 -0
  86. package/dist/color-input/index.js +1 -0
  87. package/dist/color-input/root/color-input-root.d.ts +227 -0
  88. package/dist/color-input/root/color-input-root.js +456 -0
  89. package/dist/color-picker/color.d.ts +74 -0
  90. package/dist/color-picker/color.js +238 -0
  91. package/dist/color-picker/index.d.ts +2 -0
  92. package/dist/color-picker/index.js +2 -0
  93. package/dist/color-picker/root/color-picker-root.d.ts +303 -0
  94. package/dist/color-picker/root/color-picker-root.js +576 -0
  95. package/dist/combobox/index.d.ts +1 -0
  96. package/dist/combobox/index.js +1 -0
  97. package/dist/combobox/root/combobox-root.d.ts +396 -0
  98. package/dist/combobox/root/combobox-root.js +808 -0
  99. package/dist/command/index.d.ts +1 -0
  100. package/dist/command/index.js +1 -0
  101. package/dist/command/root/command-root.d.ts +166 -0
  102. package/dist/command/root/command-root.js +353 -0
  103. package/dist/copy-button/index.d.ts +1 -0
  104. package/dist/copy-button/index.js +1 -0
  105. package/dist/copy-button/root/copy-button-root.d.ts +154 -0
  106. package/dist/copy-button/root/copy-button-root.js +225 -0
  107. package/dist/data-table/index.d.ts +2 -0
  108. package/dist/data-table/index.js +2 -0
  109. package/dist/data-table/root/data-table-root.d.ts +392 -0
  110. package/dist/data-table/root/data-table-root.js +729 -0
  111. package/dist/data-table/root/order.d.ts +116 -0
  112. package/dist/data-table/root/order.js +175 -0
  113. package/dist/date-input/index.d.ts +1 -0
  114. package/dist/date-input/index.js +1 -0
  115. package/dist/date-input/root/date-input-root.d.ts +361 -0
  116. package/dist/date-input/root/date-input-root.js +791 -0
  117. package/dist/date-picker/index.d.ts +1 -0
  118. package/dist/date-picker/index.js +1 -0
  119. package/dist/date-picker/root/date-picker-root.d.ts +361 -0
  120. package/dist/date-picker/root/date-picker-root.js +837 -0
  121. package/dist/dialog/index.d.ts +1 -0
  122. package/dist/dialog/index.js +1 -0
  123. package/dist/dialog/root/dialog-root.d.ts +185 -0
  124. package/dist/dialog/root/dialog-root.js +319 -0
  125. package/dist/divider/index.d.ts +1 -0
  126. package/dist/divider/index.js +1 -0
  127. package/dist/divider/root/divider-root.d.ts +68 -0
  128. package/dist/divider/root/divider-root.js +116 -0
  129. package/dist/donut-chart/index.d.ts +1 -0
  130. package/dist/donut-chart/index.js +1 -0
  131. package/dist/donut-chart/root/donut-chart-root.d.ts +209 -0
  132. package/dist/donut-chart/root/donut-chart-root.js +395 -0
  133. package/dist/drawer/index.d.ts +1 -0
  134. package/dist/drawer/index.js +1 -0
  135. package/dist/drawer/root/drawer-root.d.ts +144 -0
  136. package/dist/drawer/root/drawer-root.js +222 -0
  137. package/dist/drilldown/index.d.ts +2 -0
  138. package/dist/drilldown/index.js +2 -0
  139. package/dist/drilldown/item/drilldown-item.d.ts +87 -0
  140. package/dist/drilldown/item/drilldown-item.js +152 -0
  141. package/dist/drilldown/root/drilldown-root.d.ts +115 -0
  142. package/dist/drilldown/root/drilldown-root.js +263 -0
  143. package/dist/element-events.generated.d.ts +1 -0
  144. package/dist/element-events.generated.js +125 -0
  145. package/dist/empty/index.d.ts +1 -0
  146. package/dist/empty/index.js +1 -0
  147. package/dist/empty/root/empty-root.d.ts +47 -0
  148. package/dist/empty/root/empty-root.js +68 -0
  149. package/dist/file-input/index.d.ts +1 -0
  150. package/dist/file-input/index.js +1 -0
  151. package/dist/file-input/root/file-input-root.d.ts +196 -0
  152. package/dist/file-input/root/file-input-root.js +488 -0
  153. package/dist/format-date/index.d.ts +1 -0
  154. package/dist/format-date/index.js +1 -0
  155. package/dist/format-date/root/format-date-root.d.ts +151 -0
  156. package/dist/format-date/root/format-date-root.js +266 -0
  157. package/dist/heatmap/index.d.ts +2 -0
  158. package/dist/heatmap/index.js +2 -0
  159. package/dist/heatmap/root/buckets.d.ts +62 -0
  160. package/dist/heatmap/root/buckets.js +85 -0
  161. package/dist/heatmap/root/heatmap-root.d.ts +330 -0
  162. package/dist/heatmap/root/heatmap-root.js +526 -0
  163. package/dist/icon/index.d.ts +1 -0
  164. package/dist/icon/index.js +1 -0
  165. package/dist/icon/root/icon-root.d.ts +53 -0
  166. package/dist/icon/root/icon-root.js +93 -0
  167. package/dist/icon-button/index.d.ts +1 -0
  168. package/dist/icon-button/index.js +1 -0
  169. package/dist/icon-button/root/icon-button-root.d.ts +40 -0
  170. package/dist/icon-button/root/icon-button-root.js +46 -0
  171. package/dist/image/index.d.ts +1 -0
  172. package/dist/image/index.js +1 -0
  173. package/dist/image/root/image-root.d.ts +213 -0
  174. package/dist/image/root/image-root.js +335 -0
  175. package/dist/index.d.ts +99 -0
  176. package/dist/index.js +99 -0
  177. package/dist/input/index.d.ts +1 -0
  178. package/dist/input/index.js +1 -0
  179. package/dist/input/root/input-root.d.ts +281 -0
  180. package/dist/input/root/input-root.js +472 -0
  181. package/dist/kbd/index.d.ts +1 -0
  182. package/dist/kbd/index.js +1 -0
  183. package/dist/kbd/root/kbd-root.d.ts +98 -0
  184. package/dist/kbd/root/kbd-root.js +230 -0
  185. package/dist/legend/index.d.ts +1 -0
  186. package/dist/legend/index.js +1 -0
  187. package/dist/legend/root/legend-root.d.ts +83 -0
  188. package/dist/legend/root/legend-root.js +125 -0
  189. package/dist/line-chart/index.d.ts +1 -0
  190. package/dist/line-chart/index.js +1 -0
  191. package/dist/line-chart/root/line-chart-root.d.ts +238 -0
  192. package/dist/line-chart/root/line-chart-root.js +365 -0
  193. package/dist/list/index.d.ts +2 -0
  194. package/dist/list/index.js +2 -0
  195. package/dist/list/item/list-item.d.ts +95 -0
  196. package/dist/list/item/list-item.js +148 -0
  197. package/dist/list/root/list-root.d.ts +72 -0
  198. package/dist/list/root/list-root.js +61 -0
  199. package/dist/listbox/index.d.ts +1 -0
  200. package/dist/listbox/index.js +1 -0
  201. package/dist/listbox/root/listbox-root.d.ts +357 -0
  202. package/dist/listbox/root/listbox-root.js +890 -0
  203. package/dist/loader/index.d.ts +1 -0
  204. package/dist/loader/index.js +1 -0
  205. package/dist/loader/root/loader-root.d.ts +52 -0
  206. package/dist/loader/root/loader-root.js +74 -0
  207. package/dist/megamenu/index.d.ts +1 -0
  208. package/dist/megamenu/index.js +1 -0
  209. package/dist/megamenu/root/megamenu-root.d.ts +254 -0
  210. package/dist/megamenu/root/megamenu-root.js +526 -0
  211. package/dist/menu/index.d.ts +2 -0
  212. package/dist/menu/index.js +2 -0
  213. package/dist/menu/item/menu-item.d.ts +231 -0
  214. package/dist/menu/item/menu-item.js +405 -0
  215. package/dist/menu/root/menu-root.d.ts +158 -0
  216. package/dist/menu/root/menu-root.js +422 -0
  217. package/dist/meter/index.d.ts +1 -0
  218. package/dist/meter/index.js +1 -0
  219. package/dist/meter/root/meter-root.d.ts +234 -0
  220. package/dist/meter/root/meter-root.js +316 -0
  221. package/dist/navigation/index.d.ts +1 -0
  222. package/dist/navigation/index.js +1 -0
  223. package/dist/navigation/root/navigation-root.d.ts +55 -0
  224. package/dist/navigation/root/navigation-root.js +130 -0
  225. package/dist/notifications/index.d.ts +2 -0
  226. package/dist/notifications/index.js +2 -0
  227. package/dist/notifications/notification/notification.d.ts +181 -0
  228. package/dist/notifications/notification/notification.js +305 -0
  229. package/dist/notifications/root/notifications-root.d.ts +168 -0
  230. package/dist/notifications/root/notifications-root.js +291 -0
  231. package/dist/number-input/index.d.ts +1 -0
  232. package/dist/number-input/index.js +1 -0
  233. package/dist/number-input/root/number-input-root.d.ts +282 -0
  234. package/dist/number-input/root/number-input-root.js +592 -0
  235. package/dist/option/group/option-group.d.ts +38 -0
  236. package/dist/option/group/option-group.js +58 -0
  237. package/dist/option/index.d.ts +2 -0
  238. package/dist/option/index.js +2 -0
  239. package/dist/option/root/option-root.d.ts +194 -0
  240. package/dist/option/root/option-root.js +247 -0
  241. package/dist/outline/index.d.ts +1 -0
  242. package/dist/outline/index.js +1 -0
  243. package/dist/outline/root/outline-root.d.ts +237 -0
  244. package/dist/outline/root/outline-root.js +519 -0
  245. package/dist/pagination/index.d.ts +3 -0
  246. package/dist/pagination/index.js +3 -0
  247. package/dist/pagination/root/pagination-root.d.ts +390 -0
  248. package/dist/pagination/root/pagination-root.js +695 -0
  249. package/dist/pagination/size/pagination-size.d.ts +127 -0
  250. package/dist/pagination/size/pagination-size.js +232 -0
  251. package/dist/pagination/summary/pagination-summary.d.ts +90 -0
  252. package/dist/pagination/summary/pagination-summary.js +145 -0
  253. package/dist/pin-input/index.d.ts +1 -0
  254. package/dist/pin-input/index.js +1 -0
  255. package/dist/pin-input/root/pin-input-root.d.ts +292 -0
  256. package/dist/pin-input/root/pin-input-root.js +553 -0
  257. package/dist/popover/index.d.ts +1 -0
  258. package/dist/popover/index.js +1 -0
  259. package/dist/popover/root/popover-root.d.ts +108 -0
  260. package/dist/popover/root/popover-root.js +231 -0
  261. package/dist/progress/index.d.ts +1 -0
  262. package/dist/progress/index.js +1 -0
  263. package/dist/progress/root/progress-root.d.ts +125 -0
  264. package/dist/progress/root/progress-root.js +212 -0
  265. package/dist/qr-code/index.d.ts +1 -0
  266. package/dist/qr-code/index.js +1 -0
  267. package/dist/qr-code/root/qr-code-root.d.ts +93 -0
  268. package/dist/qr-code/root/qr-code-root.js +233 -0
  269. package/dist/quote/index.d.ts +1 -0
  270. package/dist/quote/index.js +1 -0
  271. package/dist/quote/root/quote-root.d.ts +36 -0
  272. package/dist/quote/root/quote-root.js +50 -0
  273. package/dist/radio/group/radio-group.d.ts +84 -0
  274. package/dist/radio/group/radio-group.js +170 -0
  275. package/dist/radio/index.d.ts +2 -0
  276. package/dist/radio/index.js +2 -0
  277. package/dist/radio/root/radio-root.d.ts +102 -0
  278. package/dist/radio/root/radio-root.js +151 -0
  279. package/dist/rating/index.d.ts +1 -0
  280. package/dist/rating/index.js +1 -0
  281. package/dist/rating/root/rating-root.d.ts +242 -0
  282. package/dist/rating/root/rating-root.js +484 -0
  283. package/dist/scroll-area/index.d.ts +1 -0
  284. package/dist/scroll-area/index.js +1 -0
  285. package/dist/scroll-area/root/scroll-area-root.d.ts +96 -0
  286. package/dist/scroll-area/root/scroll-area-root.js +215 -0
  287. package/dist/select/index.d.ts +1 -0
  288. package/dist/select/index.js +1 -0
  289. package/dist/select/root/select-root.d.ts +170 -0
  290. package/dist/select/root/select-root.js +419 -0
  291. package/dist/skeleton/index.d.ts +1 -0
  292. package/dist/skeleton/index.js +1 -0
  293. package/dist/skeleton/root/skeleton-root.d.ts +31 -0
  294. package/dist/skeleton/root/skeleton-root.js +42 -0
  295. package/dist/slider/index.d.ts +1 -0
  296. package/dist/slider/index.js +1 -0
  297. package/dist/slider/root/slider-root.d.ts +235 -0
  298. package/dist/slider/root/slider-root.js +488 -0
  299. package/dist/sparkline/index.d.ts +1 -0
  300. package/dist/sparkline/index.js +1 -0
  301. package/dist/sparkline/root/sparkline-root.d.ts +147 -0
  302. package/dist/sparkline/root/sparkline-root.js +278 -0
  303. package/dist/speed-dial/index.d.ts +2 -0
  304. package/dist/speed-dial/index.js +2 -0
  305. package/dist/speed-dial/item/speed-dial-item.d.ts +71 -0
  306. package/dist/speed-dial/item/speed-dial-item.js +113 -0
  307. package/dist/speed-dial/root/speed-dial-root.d.ts +122 -0
  308. package/dist/speed-dial/root/speed-dial-root.js +251 -0
  309. package/dist/splitter/index.d.ts +1 -0
  310. package/dist/splitter/index.js +1 -0
  311. package/dist/splitter/root/splitter-root.d.ts +491 -0
  312. package/dist/splitter/root/splitter-root.js +1030 -0
  313. package/dist/stat/group/stat-group.d.ts +30 -0
  314. package/dist/stat/group/stat-group.js +47 -0
  315. package/dist/stat/index.d.ts +2 -0
  316. package/dist/stat/index.js +2 -0
  317. package/dist/stat/root/stat-root.d.ts +62 -0
  318. package/dist/stat/root/stat-root.js +51 -0
  319. package/dist/steps/index.d.ts +2 -0
  320. package/dist/steps/index.js +2 -0
  321. package/dist/steps/root/steps-root.d.ts +110 -0
  322. package/dist/steps/root/steps-root.js +130 -0
  323. package/dist/steps/step/step.d.ts +139 -0
  324. package/dist/steps/step/step.js +215 -0
  325. package/dist/switch/index.d.ts +1 -0
  326. package/dist/switch/index.js +1 -0
  327. package/dist/switch/root/switch-root.d.ts +74 -0
  328. package/dist/switch/root/switch-root.js +153 -0
  329. package/dist/table/cell/table-cell.d.ts +34 -0
  330. package/dist/table/cell/table-cell.js +52 -0
  331. package/dist/table/column/table-column.d.ts +165 -0
  332. package/dist/table/column/table-column.js +222 -0
  333. package/dist/table/index.d.ts +4 -0
  334. package/dist/table/index.js +4 -0
  335. package/dist/table/root/table-root.d.ts +98 -0
  336. package/dist/table/root/table-root.js +161 -0
  337. package/dist/table/row/table-row.d.ts +27 -0
  338. package/dist/table/row/table-row.js +42 -0
  339. package/dist/tabs/index.d.ts +3 -0
  340. package/dist/tabs/index.js +3 -0
  341. package/dist/tabs/panel/tab-panel.d.ts +67 -0
  342. package/dist/tabs/panel/tab-panel.js +98 -0
  343. package/dist/tabs/root/tabs-root.d.ts +123 -0
  344. package/dist/tabs/root/tabs-root.js +217 -0
  345. package/dist/tabs/tab/tab.d.ts +64 -0
  346. package/dist/tabs/tab/tab.js +116 -0
  347. package/dist/tag/index.d.ts +1 -0
  348. package/dist/tag/index.js +1 -0
  349. package/dist/tag/root/tag-root.d.ts +41 -0
  350. package/dist/tag/root/tag-root.js +67 -0
  351. package/dist/textarea/index.d.ts +1 -0
  352. package/dist/textarea/index.js +1 -0
  353. package/dist/textarea/root/textarea-root.d.ts +215 -0
  354. package/dist/textarea/root/textarea-root.js +380 -0
  355. package/dist/time-input/index.d.ts +1 -0
  356. package/dist/time-input/index.js +1 -0
  357. package/dist/time-input/root/time-input-root.d.ts +322 -0
  358. package/dist/time-input/root/time-input-root.js +661 -0
  359. package/dist/time-picker/index.d.ts +1 -0
  360. package/dist/time-picker/index.js +1 -0
  361. package/dist/time-picker/root/time-picker-root.d.ts +380 -0
  362. package/dist/time-picker/root/time-picker-root.js +669 -0
  363. package/dist/timeline/index.d.ts +2 -0
  364. package/dist/timeline/index.js +2 -0
  365. package/dist/timeline/item/timeline-item.d.ts +81 -0
  366. package/dist/timeline/item/timeline-item.js +128 -0
  367. package/dist/timeline/root/timeline-root.d.ts +52 -0
  368. package/dist/timeline/root/timeline-root.js +72 -0
  369. package/dist/toast/index.d.ts +2 -0
  370. package/dist/toast/index.js +2 -0
  371. package/dist/toast/item/toast-item.d.ts +183 -0
  372. package/dist/toast/item/toast-item.js +345 -0
  373. package/dist/toast/root/toast-root.d.ts +72 -0
  374. package/dist/toast/root/toast-root.js +87 -0
  375. package/dist/toggle/group/toggle-group.d.ts +140 -0
  376. package/dist/toggle/group/toggle-group.js +278 -0
  377. package/dist/toggle/index.d.ts +2 -0
  378. package/dist/toggle/index.js +2 -0
  379. package/dist/toggle/root/toggle-root.d.ts +99 -0
  380. package/dist/toggle/root/toggle-root.js +146 -0
  381. package/dist/toolbar/index.d.ts +1 -0
  382. package/dist/toolbar/index.js +1 -0
  383. package/dist/toolbar/root/toolbar-root.d.ts +105 -0
  384. package/dist/toolbar/root/toolbar-root.js +260 -0
  385. package/dist/tooltip/index.d.ts +1 -0
  386. package/dist/tooltip/index.js +1 -0
  387. package/dist/tooltip/root/tooltip-root.d.ts +388 -0
  388. package/dist/tooltip/root/tooltip-root.js +707 -0
  389. package/dist/tour/index.d.ts +2 -0
  390. package/dist/tour/index.js +2 -0
  391. package/dist/tour/root/tour-root.d.ts +161 -0
  392. package/dist/tour/root/tour-root.js +351 -0
  393. package/dist/tour/stop/tour-stop.d.ts +131 -0
  394. package/dist/tour/stop/tour-stop.js +249 -0
  395. package/dist/tree/index.d.ts +2 -0
  396. package/dist/tree/index.js +2 -0
  397. package/dist/tree/item/tree-item.d.ts +208 -0
  398. package/dist/tree/item/tree-item.js +381 -0
  399. package/dist/tree/root/tree-root.d.ts +88 -0
  400. package/dist/tree/root/tree-root.js +287 -0
  401. package/dist/trend/index.d.ts +1 -0
  402. package/dist/trend/index.js +1 -0
  403. package/dist/trend/root/trend-root.d.ts +67 -0
  404. package/dist/trend/root/trend-root.js +106 -0
  405. package/dist/video/index.d.ts +1 -0
  406. package/dist/video/index.js +1 -0
  407. package/dist/video/root/video-root.d.ts +711 -0
  408. package/dist/video/root/video-root.js +1821 -0
  409. package/dist/video-playlist/index.d.ts +3 -0
  410. package/dist/video-playlist/index.js +3 -0
  411. package/dist/video-playlist/item/video-playlist-item.d.ts +101 -0
  412. package/dist/video-playlist/item/video-playlist-item.js +162 -0
  413. package/dist/video-playlist/menu/video-playlist-menu.d.ts +121 -0
  414. package/dist/video-playlist/menu/video-playlist-menu.js +237 -0
  415. package/dist/video-playlist/root/video-playlist-root.d.ts +108 -0
  416. package/dist/video-playlist/root/video-playlist-root.js +218 -0
  417. package/dist/virtual-list/index.d.ts +1 -0
  418. package/dist/virtual-list/index.js +1 -0
  419. package/dist/virtual-list/root/virtual-list-root.d.ts +121 -0
  420. package/dist/virtual-list/root/virtual-list-root.js +221 -0
  421. package/jsx.d.ts +49767 -0
  422. package/package.json +77 -0
  423. package/svelte.d.ts +129 -0
  424. package/vue.d.ts +9242 -0
@@ -0,0 +1,222 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { CommandController, customElement, HelixElement, MixinControllerOpen, onUnlessFalse, } from '@fusion.dev/helix-core';
8
+ import { html, nothing } from 'lit';
9
+ import { property } from 'lit/decorators.js';
10
+ /**
11
+ * @summary A panel that slides in from an edge.
12
+ *
13
+ * @description
14
+ * Takes `MixinControllerOpen`, so `open`, `defaultOpen`, and `OpenChange` behave exactly
15
+ * as they do on an accordion item, and a consumer already knows the API.
16
+ *
17
+ * Modal by default, which is three things together and not one: focus is
18
+ * trapped inside, Escape and an outside press close it, and the page behind is
19
+ * covered. A panel with the look of a modal and none of its behavior is worse
20
+ * than an inline one, because it invites the reader to treat it as blocking.
21
+ *
22
+ * Content stays mounted when closed, so it is in the server's markup and can
23
+ * animate. A closed `<dialog>` is already out of the tab order and out of the
24
+ * accessibility tree, so nothing here writes `inert`.
25
+ *
26
+ * **This described a hand-written `inert` until 21 Aug 2026, and had done since
27
+ * the panel became a `<dialog>`.** The rewrite took the `role`, the
28
+ * `aria-modal`, the scrim and the `inert` with it, because the element brings
29
+ * all four, and the comments at the two call sites say so. The class doc did
30
+ * not, and `drawer-root.ssr.spec.ts` has asserted the panel carries no `inert`
31
+ * the whole time: a spec three files away existing to contradict the prose is
32
+ * the same shape as `Stat`'s `detail` slot, which is what `check:references`
33
+ * was written after and is the half it cannot see.
34
+ *
35
+ * Opened declaratively with the platform's invoker attributes:
36
+ *
37
+ * ```html
38
+ * <helix-button commandfor="nav" command="--toggle">Menu</helix-button>
39
+ * <helix-drawer id="nav">…</helix-drawer>
40
+ * ```
41
+ *
42
+ * @since 0.1.0
43
+ * @status experimental
44
+ * @category overlays
45
+ * @aliases Sheet, Sidebar, Panel, Off-canvas
46
+ * @documentation https://helix.fusion.dev/components/drawer
47
+ *
48
+ * @slot - The drawer's content.
49
+ * @slot header - Content pinned above the scrolling area.
50
+ *
51
+ * @event {Event} close - Relayed, because the platform's own does not escape.
52
+ * @event {HelixBeforeCloseEvent} helix-before-close - Fired before the panel closes, and cancelable.
53
+ * @event {HelixBeforeOpenEvent} helix-before-open - Fired before the drawer opens or closes. Cancelable: refusing it takes the decision and nothing moves.
54
+ * @event {Event} toggle - Says the state moved, carrying `newState` and `oldState`.
55
+ *
56
+ * @csspart content - The scrolling content region.
57
+ * @csspart header - The header region.
58
+ * @csspart panel - The sliding panel.
59
+ */
60
+ let HelixHeadlessDrawer = class HelixHeadlessDrawer extends MixinControllerOpen(HelixElement) {
61
+ constructor() {
62
+ super(...arguments);
63
+ /* Opened and closed from anywhere on the page, without a line of script:
64
+ `<helix-button commandfor="…" command="--show">`. The same three commands
65
+ the dialog answers, because they are the same act: a drawer and a dialog
66
+ differ in where they sit, not in what opening one means. */
67
+ this.commands = new CommandController(this, {
68
+ commands: {
69
+ '--close': () => this.requestOpen(false),
70
+ '--show': () => this.requestOpen(true),
71
+ '--toggle': () => this.toggleOpen(),
72
+ },
73
+ });
74
+ /**
75
+ * Accessible name for the panel.
76
+ */
77
+ this.label = '';
78
+ /**
79
+ * Whether the drawer blocks the page behind it.
80
+ *
81
+ * Turning this off removes the focus trap and the scrim together, because
82
+ * they are one decision: a panel that traps focus without covering the page
83
+ * strands the reader, and one that covers without trapping lets them tab
84
+ * behind the cover.
85
+ *
86
+ * Not reflected. It stays `true` by default, since a drawer that silently
87
+ * lost its focus trap because a consumer forgot a word would be worse than an
88
+ * attribute on the host, and nothing selects on it: the scrim is rendered or
89
+ * not, rather than shown or hidden by CSS.
90
+ */
91
+ this.modal = true;
92
+ /** What a value set before the element existed is kept in. */
93
+ this.returned = '';
94
+ /**
95
+ * Escape, routed through the request so a listener can refuse it.
96
+ *
97
+ * A native dialog closes itself on Escape, which would shut the drawer while
98
+ * the consumer's state still said open: the bug that makes a modal impossible
99
+ * to reopen. `Dialog` intercepts it for the same reason.
100
+ */
101
+ this.handleCancel = (event) => {
102
+ event.preventDefault();
103
+ this.requestOpen(false);
104
+ };
105
+ /** A close that happened anyway is reflected back rather than argued with. */
106
+ this.handleClose = (event) => {
107
+ if (this.open) {
108
+ this.requestOpen(false);
109
+ }
110
+ /* And under the platform's own name, from the host. `close` on a `<dialog>`
111
+ neither bubbles nor is composed, so the one the browser just fired reaches
112
+ nobody outside this shadow root, which is the same reason `Avatar` relays
113
+ `load`. Announced after the state has moved, so a consumer binding
114
+ `onClose` reads a dialog that is already shut.
115
+
116
+ `cancel` is deliberately not relayed. `handleCancel` prevents it so that
117
+ Escape is a request rather than an act, so the native one never completes:
118
+ relaying it would announce a dismissal that was refused. See 296. */
119
+ this.relayNativeEvent(event);
120
+ };
121
+ /**
122
+ * A press on the backdrop, which lands on the dialog element itself.
123
+ *
124
+ * The panel fills only part of the dialog's box, so a press beside it hits
125
+ * the dialog and not a child. A native `<dialog>` does not close on that, and
126
+ * it is the gesture that most obviously means close.
127
+ */
128
+ this.handleBackdrop = (event) => {
129
+ if (event.target === this.panel && this.modal) {
130
+ this.requestOpen(false);
131
+ }
132
+ };
133
+ }
134
+ /**
135
+ * What the dialog closed with, the way `<dialog>` reports it.
136
+ *
137
+ * **The whole point of a `<dialog>` returning a value is lost behind a shadow
138
+ * boundary**, which is where this one is: `querySelector` does not reach the
139
+ * element, so a consumer could neither set the value nor read it back. A
140
+ * drawer asking which of its actions dismissed it is the ordinary case and had
141
+ * no answer.
142
+ *
143
+ * Written before `open` is set to false rather than passed to a `close(value)`
144
+ * call, because this component has no such method: it is driven by `open`
145
+ * alone, and `Dialog`'s `close()` is the one that takes the value directly.
146
+ *
147
+ * Held here as well as on the element, so a value set before the first render
148
+ * survives to it and a consumer reading one back gets what they wrote.
149
+ */
150
+ get returnValue() {
151
+ return this.panel?.returnValue ?? this.returned;
152
+ }
153
+ set returnValue(value) {
154
+ this.returned = value;
155
+ const panel = this.panel;
156
+ if (panel) {
157
+ panel.returnValue = value;
158
+ }
159
+ }
160
+ /** The panel, which is a real `<dialog>`. */
161
+ get panel() {
162
+ return this.renderRoot?.querySelector('[part="panel"]') ?? null;
163
+ }
164
+ updated(changed) {
165
+ super.updated(changed);
166
+ /* After render, and only on a difference: `showModal()` on an open dialog
167
+ throws and `close()` on a shut one fires a second `close` event.
168
+ *
169
+ * `showModal` when modal and `show` when not, which is the whole of what
170
+ * `modal` means now: both put the panel in the top layer, and only the
171
+ * first brings a backdrop, a focus trap and `inert` behind it. This was a
172
+ * hand-built `position: fixed` panel with a scrim div, a focus trap and a
173
+ * dismisser, none of which the platform needed telling. */
174
+ const panel = this.panel;
175
+ if (!panel) {
176
+ return;
177
+ }
178
+ if (this.open && !panel.open) {
179
+ if (this.modal) {
180
+ panel.showModal();
181
+ }
182
+ else {
183
+ panel.show();
184
+ }
185
+ }
186
+ else if (!this.open && panel.open) {
187
+ panel.close();
188
+ }
189
+ }
190
+ render() {
191
+ /* No `role`, no `aria-modal`, no `inert`, no `tabindex`: a `<dialog>` opened
192
+ with `showModal()` carries all four, and each hand-written version was a
193
+ thing that could drift from what the element actually did. */
194
+ return html `<dialog
195
+ part="panel"
196
+ closedby=${this.closedBy ?? nothing}
197
+ aria-label=${this.label || 'Drawer'}
198
+ @cancel=${this.handleCancel}
199
+ @click=${this.handleBackdrop}
200
+ @close=${this.handleClose}
201
+ >
202
+ <div part="header"><slot name="header"></slot></div>
203
+ <div part="content"><slot></slot></div>
204
+ </dialog>`;
205
+ }
206
+ };
207
+ __decorate([
208
+ property({ reflect: true })
209
+ ], HelixHeadlessDrawer.prototype, "placement", void 0);
210
+ __decorate([
211
+ property()
212
+ ], HelixHeadlessDrawer.prototype, "label", void 0);
213
+ __decorate([
214
+ property({ converter: onUnlessFalse })
215
+ ], HelixHeadlessDrawer.prototype, "modal", void 0);
216
+ __decorate([
217
+ property({ attribute: 'closedby', reflect: true })
218
+ ], HelixHeadlessDrawer.prototype, "closedBy", void 0);
219
+ HelixHeadlessDrawer = __decorate([
220
+ customElement('helix-headless-drawer')
221
+ ], HelixHeadlessDrawer);
222
+ export { HelixHeadlessDrawer };
@@ -0,0 +1,2 @@
1
+ export * from './item/drilldown-item.js';
2
+ export * from './root/drilldown-root.js';
@@ -0,0 +1,2 @@
1
+ export * from './item/drilldown-item.js';
2
+ export * from './root/drilldown-root.js';
@@ -0,0 +1,87 @@
1
+ import { HelixElement } from '@fusion.dev/helix-core';
2
+ import { nothing, type TemplateResult } from 'lit';
3
+ /**
4
+ * @summary One row of a drill-down, which may hold a page of its own.
5
+ *
6
+ * @description
7
+ * A row that opens a page *contains* that page: its rows are this row's own
8
+ * children, assigned to the `page` slot. The tree is the structure, so there
9
+ * are no ids to wire and a consumer who moves a row has moved its page with it.
10
+ *
11
+ * **It renders one of three things**, and which one is the stack's business
12
+ * rather than its own. On the page showing, it is a row. Showing its own page,
13
+ * it contributes that page's rows and nothing else, because its row belongs to
14
+ * the page above. On neither, it renders nothing at all: the rows are in the
15
+ * light DOM and come back untouched, so there is no state to keep and nothing
16
+ * to hide with an attribute this element would have to write onto itself.
17
+ *
18
+ * Choosing is announced, never applied. The row dispatches and the stack
19
+ * decides whether that means drilling in or choosing a command.
20
+ *
21
+ * @since 0.1.0
22
+ * @status experimental
23
+ * @aliases Panel item, Drill row
24
+ * @documentation https://helix.fusion.dev/components/drilldown
25
+ *
26
+ * @slot - The words naming this row.
27
+ * @slot end - After the words, usually a mark or a count.
28
+ * @slot page - The rows of the page this one opens.
29
+ * @slot start - Before the words, usually an icon.
30
+ *
31
+ * @event {HelixSelectEvent} helix-select - Fired when the row is chosen. Cancelable: refusing it takes the decision and nothing moves.
32
+ *
33
+ * @csspart item - The row itself.
34
+ * @csspart label - The words.
35
+ */
36
+ export declare class HelixHeadlessDrilldownItem extends HelixElement {
37
+ /**
38
+ * Whether the row can be reached at all.
39
+ */
40
+ disabled: boolean;
41
+ /**
42
+ * Identifies the row to whatever is listening.
43
+ */
44
+ value: string;
45
+ /**
46
+ * @internal Read by a parent to identify its children across the light DOM,
47
+ * which is cheaper than `instanceof` and is why this is public rather than
48
+ * protected. Not a consumer's to read or set.
49
+ */
50
+ readonly isDrilldownItem = true;
51
+ /**
52
+ * Whether the page showing is the one this row is on.
53
+ *
54
+ * Written by the stack.
55
+ */
56
+ onPage: boolean;
57
+ /**
58
+ * Whether this row's own page is the one showing.
59
+ *
60
+ * Written by the stack.
61
+ */
62
+ showingPage: boolean;
63
+ /**
64
+ * Whether this row holds the region's tab stop. Written by the stack.
65
+ *
66
+ * A drill-down keeps one stop and moves within it on the arrows, so every
67
+ * other row is at `-1`. Every row was, including the first, which left
68
+ * nothing in the region tab-reachable at all: the keyboard could not get in
69
+ * without first clicking something with a pointer.
70
+ *
71
+ * No attribute, the same as `Button`'s: this is coordination between
72
+ * elements, and writing `tabindex` onto a host the consumer rendered is a
73
+ * change a React consumer's hydration reports and does not patch up. The stop
74
+ * lands inside this shadow root instead.
75
+ */
76
+ focusable: boolean;
77
+ /** Moves focus onto the row itself. */
78
+ focusItem(): void;
79
+ /** Announces that this row was chosen. */
80
+ select(): void;
81
+ protected render(): TemplateResult | typeof nothing;
82
+ }
83
+ declare global {
84
+ interface HTMLElementTagNameMap {
85
+ 'helix-headless-drilldown-item': HelixHeadlessDrilldownItem;
86
+ }
87
+ }
@@ -0,0 +1,152 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { customElement, HelixElement, HelixSelectEvent } from '@fusion.dev/helix-core';
8
+ import { html, nothing } from 'lit';
9
+ import { property } from 'lit/decorators.js';
10
+ /**
11
+ * @summary One row of a drill-down, which may hold a page of its own.
12
+ *
13
+ * @description
14
+ * A row that opens a page *contains* that page: its rows are this row's own
15
+ * children, assigned to the `page` slot. The tree is the structure, so there
16
+ * are no ids to wire and a consumer who moves a row has moved its page with it.
17
+ *
18
+ * **It renders one of three things**, and which one is the stack's business
19
+ * rather than its own. On the page showing, it is a row. Showing its own page,
20
+ * it contributes that page's rows and nothing else, because its row belongs to
21
+ * the page above. On neither, it renders nothing at all: the rows are in the
22
+ * light DOM and come back untouched, so there is no state to keep and nothing
23
+ * to hide with an attribute this element would have to write onto itself.
24
+ *
25
+ * Choosing is announced, never applied. The row dispatches and the stack
26
+ * decides whether that means drilling in or choosing a command.
27
+ *
28
+ * @since 0.1.0
29
+ * @status experimental
30
+ * @aliases Panel item, Drill row
31
+ * @documentation https://helix.fusion.dev/components/drilldown
32
+ *
33
+ * @slot - The words naming this row.
34
+ * @slot end - After the words, usually a mark or a count.
35
+ * @slot page - The rows of the page this one opens.
36
+ * @slot start - Before the words, usually an icon.
37
+ *
38
+ * @event {HelixSelectEvent} helix-select - Fired when the row is chosen. Cancelable: refusing it takes the decision and nothing moves.
39
+ *
40
+ * @csspart item - The row itself.
41
+ * @csspart label - The words.
42
+ */
43
+ let HelixHeadlessDrilldownItem = class HelixHeadlessDrilldownItem extends HelixElement {
44
+ constructor() {
45
+ super(...arguments);
46
+ /**
47
+ * Whether the row can be reached at all.
48
+ */
49
+ this.disabled = false;
50
+ /**
51
+ * Identifies the row to whatever is listening.
52
+ */
53
+ this.value = '';
54
+ /**
55
+ * @internal Read by a parent to identify its children across the light DOM,
56
+ * which is cheaper than `instanceof` and is why this is public rather than
57
+ * protected. Not a consumer's to read or set.
58
+ */
59
+ this.isDrilldownItem = true;
60
+ /**
61
+ * Whether the page showing is the one this row is on.
62
+ *
63
+ * Written by the stack.
64
+ */
65
+ this.onPage = true;
66
+ /**
67
+ * Whether this row's own page is the one showing.
68
+ *
69
+ * Written by the stack.
70
+ */
71
+ this.showingPage = false;
72
+ /**
73
+ * Whether this row holds the region's tab stop. Written by the stack.
74
+ *
75
+ * A drill-down keeps one stop and moves within it on the arrows, so every
76
+ * other row is at `-1`. Every row was, including the first, which left
77
+ * nothing in the region tab-reachable at all: the keyboard could not get in
78
+ * without first clicking something with a pointer.
79
+ *
80
+ * No attribute, the same as `Button`'s: this is coordination between
81
+ * elements, and writing `tabindex` onto a host the consumer rendered is a
82
+ * change a React consumer's hydration reports and does not patch up. The stop
83
+ * lands inside this shadow root instead.
84
+ */
85
+ this.focusable = false;
86
+ }
87
+ /** Moves focus onto the row itself. */
88
+ focusItem() {
89
+ this.renderRoot.querySelector('[part="item"]')?.focus();
90
+ }
91
+ /** Announces that this row was chosen. */
92
+ select() {
93
+ if (this.disabled) {
94
+ return;
95
+ }
96
+ this.dispatchEvent(new HelixSelectEvent({ value: this.value }));
97
+ }
98
+ render() {
99
+ if (this.showingPage) {
100
+ return html `<slot name="page"></slot>`;
101
+ }
102
+ if (!this.onPage) {
103
+ return nothing;
104
+ }
105
+ /* A real `<button>`, and `role="menuitem"` on it.
106
+ *
107
+ * It was a `<div role="button">` with a click handler and nothing else, so
108
+ * the row could not be activated from the keyboard at all: Enter and Space
109
+ * are behavior the platform gives a real button and gives nothing else,
110
+ * and neither was handled here. Same argument `Button` makes for rendering
111
+ * one rather than reproducing it.
112
+ *
113
+ * `menuitem` because the stack says `role="menu"`, and a menu whose
114
+ * children are buttons is not a menu: the roles contradicted each other and
115
+ * a reader was told the count of items by one and the kind of them by the
116
+ * other.
117
+ *
118
+ * `aria-disabled` rather than `disabled`, so a row that cannot be chosen is
119
+ * still reachable and still announces why. `select()` is what refuses. */
120
+ return html `<button
121
+ part="item"
122
+ type="button"
123
+ role="menuitem"
124
+ aria-disabled=${this.disabled ? 'true' : nothing}
125
+ tabindex=${this.focusable ? '0' : '-1'}
126
+ @click=${() => this.select()}
127
+ >
128
+ <slot name="start"></slot>
129
+ <span part="label"><slot></slot></span>
130
+ <slot name="end"></slot>
131
+ </button>`;
132
+ }
133
+ };
134
+ __decorate([
135
+ property({ reflect: true, type: Boolean })
136
+ ], HelixHeadlessDrilldownItem.prototype, "disabled", void 0);
137
+ __decorate([
138
+ property()
139
+ ], HelixHeadlessDrilldownItem.prototype, "value", void 0);
140
+ __decorate([
141
+ property({ attribute: false })
142
+ ], HelixHeadlessDrilldownItem.prototype, "onPage", void 0);
143
+ __decorate([
144
+ property({ attribute: false })
145
+ ], HelixHeadlessDrilldownItem.prototype, "showingPage", void 0);
146
+ __decorate([
147
+ property({ attribute: false })
148
+ ], HelixHeadlessDrilldownItem.prototype, "focusable", void 0);
149
+ HelixHeadlessDrilldownItem = __decorate([
150
+ customElement('helix-headless-drilldown-item')
151
+ ], HelixHeadlessDrilldownItem);
152
+ export { HelixHeadlessDrilldownItem };
@@ -0,0 +1,115 @@
1
+ import { HelixElement } from '@fusion.dev/helix-core';
2
+ import { type PropertyValues, type TemplateResult } from 'lit';
3
+ declare const HelixHeadlessDrilldown_base: (new (...args: any[]) => import("@fusion.dev/helix-core").CollectionElement) & typeof HelixElement;
4
+ /**
5
+ * @summary A stack of pages, one showing at a time, with a way back.
6
+ *
7
+ * @description
8
+ * One panel that changes rather than panels opening beside each other. That is
9
+ * the right shape wherever there is no room for a second column: a phone has
10
+ * none, and a touch screen has no hover to open one with.
11
+ *
12
+ * **Not a `Menu`, and the difference is what it is for rather than how it
13
+ * looks.** A menu is a thing that opens from a trigger and closes when it is
14
+ * done; this is a region that sits where it is put, inside a drawer or a
15
+ * sidebar or a settings panel. `Menu` drills too, through the same controller,
16
+ * because a menu deep enough to need pages wants exactly this behavior without
17
+ * being this component.
18
+ *
19
+ * **Navigation, never a value.** Rows are places to go and commands to run, so
20
+ * nothing here is form-associated and nothing is submitted. A drill-down that
21
+ * reported a value would be a `Listbox` whose options happen to nest, and that
22
+ * is the component to reach for instead.
23
+ *
24
+ * **The tree is the state.** A row that opens a page contains that page, so the
25
+ * stack holds one reference and reads the rest from the DOM. See
26
+ * `DrilldownController`, which is where this behavior lives and which `Menu`
27
+ * shares.
28
+ *
29
+ * @since 0.1.0
30
+ * @status experimental
31
+ * @category navigation
32
+ * @aliases Panel, Nested list, Drill-in
33
+ * @documentation https://helix.fusion.dev/components/drilldown
34
+ *
35
+ * @slot - The rows of the top page.
36
+ *
37
+ * @event {HelixSelectEvent} helix-select - Fired when a row with no page is chosen. Cancelable: refusing it takes the decision and nothing moves.
38
+ *
39
+ * @csspart back - The control that returns one page.
40
+ * @csspart back-mark - The glyph on the back control.
41
+ * @csspart empty - Shown when there are no entries to show.
42
+ * @csspart header - The bar above a page, holding the way back and its name.
43
+ * @csspart loading - Shown while the entries are still on their way.
44
+ * @csspart page - The region the rows are in.
45
+ * @csspart title - The name of the page showing.
46
+ */
47
+ export declare class HelixHeadlessDrilldown extends HelixHeadlessDrilldown_base {
48
+ /**
49
+ * Accessible name for the region.
50
+ */
51
+ label: string;
52
+ /**
53
+ * What the control returning from a page reads.
54
+ */
55
+ backLabel: string;
56
+ /**
57
+ * Which way the last move went, for whatever animates the change.
58
+ *
59
+ * Reflected as `data-direction`, because the styled tier cannot know it: both
60
+ * moves replace one page with another, and only the stack knows whether the
61
+ * reader went deeper or came back. Without it a slide has to pick one
62
+ * direction and be wrong half the time.
63
+ *
64
+ * **Undefined until a move has happened**, which is what "the last move" means
65
+ * before there has been one. It defaulted to `forward` and was written on the
66
+ * first update, which cost two things: an attribute on the host that a
67
+ * consumer's server never sent, reported as a hydration mismatch, and a first
68
+ * page that animated itself in on load, since an animation is not a transition
69
+ * and the settle guard does not suppress it.
70
+ */
71
+ private direction?;
72
+ private readonly drilldown;
73
+ /** The rows on the page showing, which is what the keys move over. */
74
+ private get items();
75
+ /**
76
+ * Puts the region's one tab stop on the first row of the page showing.
77
+ *
78
+ * Every row rendered at `-1`, so nothing in the region was tab-reachable and
79
+ * the keyboard could not get in at all without a pointer first. One row holds
80
+ * the stop and the arrows move within, which is the roving pattern the
81
+ * toolbar uses and the one a `menu` wants.
82
+ *
83
+ * Called after every update, because the set changes with the page: drilling
84
+ * in replaces the rows outright, and the stop has to land on rows that are
85
+ * actually showing.
86
+ */
87
+ private placeTabStop;
88
+ /** Shows a row's page, and puts focus on the first row of it. */
89
+ private enter;
90
+ /**
91
+ * Returns one page, and reports whether there was one to return to.
92
+ *
93
+ * Focus lands on the row that opened the page being left, which is why the
94
+ * row is read before going back rather than after: a reader who drills in and
95
+ * comes straight out should be on the row they pressed, not at the top of a
96
+ * list they have already read.
97
+ */
98
+ back(): boolean;
99
+ private readonly handleFocusIn;
100
+ private readonly handleSelect;
101
+ private readonly handleKeydown;
102
+ connectedCallback(): void;
103
+ disconnectedCallback(): void;
104
+ protected willUpdate(changed: PropertyValues): void;
105
+ protected updated(changed: PropertyValues): void;
106
+ /** Walks the tree marking which rows are on the page showing. */
107
+ private mark;
108
+ protected render(): TemplateResult;
109
+ }
110
+ declare global {
111
+ interface HTMLElementTagNameMap {
112
+ 'helix-headless-drilldown': HelixHeadlessDrilldown;
113
+ }
114
+ }
115
+ export {};