@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,287 @@
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 { closestInstance, customElement, HelixElement, MixinCollection, MixinControllerActive, scrollItemIntoView, } from '@fusion.dev/helix-core';
8
+ import { html, nothing } from 'lit';
9
+ import { property } from 'lit/decorators.js';
10
+ import { HelixHeadlessTreeItem } from '../item/tree-item.js';
11
+ /** Keys the tree handles, per the APG tree pattern. */
12
+ const KEYS = new Set([
13
+ 'ArrowDown',
14
+ 'ArrowUp',
15
+ 'ArrowRight',
16
+ 'ArrowLeft',
17
+ 'Home',
18
+ 'End',
19
+ 'Enter',
20
+ ' ',
21
+ ]);
22
+ /**
23
+ * @summary A tree of items, navigable entirely from the keyboard.
24
+ *
25
+ * @description
26
+ * Focus is a single tab stop, moved with the arrow keys, which is what the tree
27
+ * pattern requires: a sidebar of forty items should not be forty presses of Tab
28
+ * to get past. The tree owns which item is the tab stop and moves it as focus
29
+ * moves, so the browser's own focus order is never fought with.
30
+ *
31
+ * Items are found with `instanceof`, never by tag name, so the headless tier
32
+ * does not learn about the styled one.
33
+ *
34
+ * @since 0.1.0
35
+ * @status experimental
36
+ * @category navigation
37
+ * @aliases FileTree, Navigation tree
38
+ * @documentation https://helix.fusion.dev/components/tree
39
+ *
40
+ * @slot - The tree's items.
41
+ *
42
+ * @event {HelixActivateEvent} helix-activate - Fired once the current one has moved, so the element already holds it.
43
+ * @event {HelixBeforeActivateEvent} helix-before-activate - Fired before the current node moves, and cancelable. The only way to refuse one.
44
+ * @event {HelixSelectEvent} helix-select - Fired when an item is chosen. Dispatched by the item and listened for here, because the tree is what a consumer holds a reference to. Cancelable: refusing it takes the decision and nothing moves.
45
+ *
46
+ * @csspart empty - Shown when there are no rows to show.
47
+ * @csspart loading - Shown while the rows are still on their way.
48
+ * @csspart tree - The tree container.
49
+ */
50
+ let HelixHeadlessTree = class HelixHeadlessTree extends MixinCollection(MixinControllerActive(HelixElement)) {
51
+ constructor() {
52
+ super(...arguments);
53
+ /**
54
+ * Accessible name for the tree.
55
+ */
56
+ this.label = 'Tree';
57
+ /* Through the mixin, so a consumer can refuse the change. It was written
58
+ straight from the event, the same way Tabs did, which made `helix-before-activate`
59
+ an announcement nobody could answer. */
60
+ this.handleSelection = (event) => {
61
+ this.requestActive(event.detail.value);
62
+ this.syncItems();
63
+ };
64
+ this.handleKeydown = (event) => {
65
+ /* The innermost item the press came from, which `find` could not give.
66
+ *
67
+ * `items` is every tree item in document order and a nested one is inside
68
+ * all of its ancestors, so `entry.contains(target)` matched the outermost
69
+ * ancestor first: every key pressed on a nested node moved the root of its
70
+ * branch instead. The deeper the node, the further the answer was wrong,
71
+ * and the shallow cases it was written against all looked right.
72
+ *
73
+ * `closestInstance` walks up by identity and crosses shadow roots on the
74
+ * way, which is the util that exists for exactly this. `closest('*')` was
75
+ * also a no-op: it returns the element it was called on. */
76
+ const current = closestInstance(event.target, HelixHeadlessTreeItem);
77
+ if (!current || !this.items.includes(current) || !KEYS.has(event.key)) {
78
+ return;
79
+ }
80
+ if (event.key === 'ArrowDown') {
81
+ this.move(current, 1);
82
+ }
83
+ else if (event.key === 'ArrowUp') {
84
+ this.move(current, -1);
85
+ }
86
+ else if (event.key === 'Home') {
87
+ this.focusOn(this.visibleItems[0]);
88
+ }
89
+ else if (event.key === 'End') {
90
+ this.focusOn(this.visibleItems.at(-1));
91
+ }
92
+ else if (event.key === 'ArrowRight') {
93
+ // Open a closed branch, then step into it. Two presses rather than one
94
+ // that does both, which is what the pattern specifies.
95
+ if (current.isBranch && !current.open) {
96
+ current.requestOpen(true);
97
+ this.syncItems();
98
+ }
99
+ else if (current.isBranch) {
100
+ this.move(current, 1);
101
+ }
102
+ }
103
+ else if (event.key === 'ArrowLeft') {
104
+ if (current.isBranch && current.open) {
105
+ current.requestOpen(false);
106
+ this.syncItems();
107
+ }
108
+ else {
109
+ const parent = closestInstance(current.parentElement, HelixHeadlessTreeItem);
110
+ this.focusOn(parent instanceof HelixHeadlessTreeItem ? parent : undefined);
111
+ }
112
+ }
113
+ else {
114
+ if (current.isBranch) {
115
+ current.toggleOpen();
116
+ this.syncItems();
117
+ }
118
+ else {
119
+ /* `activate`, not `select`. Enter announced the choice and stopped
120
+ there, so a tree used as navigation could be walked with the arrows
121
+ and never entered: the pointer had a link under it to press and the
122
+ keyboard had nothing. */
123
+ current.activate();
124
+ }
125
+ }
126
+ event.preventDefault();
127
+ };
128
+ /**
129
+ * A branch opened or closed, whoever did it.
130
+ *
131
+ * The keyboard paths called `syncItems` by hand and the pointer path did not,
132
+ * so collapsing a branch by clicking its chevron left the tab stop on a row
133
+ * inside the subtree that had just been hidden: the tree kept its one stop
134
+ * and the stop was on something nobody could see or reach. Listening for the
135
+ * item's own open events covers every way a branch can move, including a
136
+ * consumer setting `open` directly.
137
+ */
138
+ this.handleBranch = () => {
139
+ this.syncItems();
140
+ };
141
+ }
142
+ /**
143
+ * Every item, in the order a reader moving down would meet them.
144
+ *
145
+ * Selected by tag rather than by walking everything and filtering. `'*'` built
146
+ * an array of every descendant element in the tree, labels and icons and
147
+ * whatever a consumer slotted into a row included, and threw most of it away;
148
+ * on a tree of any size that is the array a single arrow press rebuilds.
149
+ *
150
+ * The two tag names rather than `instanceof` on everything: a styled
151
+ * `helix-tree-item` extends the base, so both names are needed, and the
152
+ * `instanceof` stays as the type guard because a consumer can write either
153
+ * tag and neither selector proves what the element is.
154
+ */
155
+ get items() {
156
+ return [...this.querySelectorAll('helix-tree-item, helix-headless-tree-item')].filter((node) => node instanceof HelixHeadlessTreeItem);
157
+ }
158
+ /** Items a reader can actually reach: not inside a collapsed branch. */
159
+ get visibleItems() {
160
+ return this.items.filter((item) => {
161
+ let parent = item.parentElement;
162
+ while (parent && parent !== this) {
163
+ if (parent instanceof HelixHeadlessTreeItem && !parent.open) {
164
+ return false;
165
+ }
166
+ parent = parent.parentElement;
167
+ }
168
+ return true;
169
+ });
170
+ }
171
+ /**
172
+ * Pushes tree-owned state down: which item is selected, which holds the tab
173
+ * stop, and how deep each one sits.
174
+ *
175
+ * Depth is computed here rather than by each item counting its own ancestors,
176
+ * so an item moved in the tree gets the right indent without knowing it moved.
177
+ */
178
+ syncItems() {
179
+ const visible = this.visibleItems;
180
+ /* Through the mixin, which resolves an exact match and otherwise falls back
181
+ to the first item. The comment here used to add "which skips a disabled
182
+ one", and a tree item has no `disabled` property at all, so the claim was
183
+ about a check that could not be running. `Tree.Item` is the only
184
+ selectable row in the library without one, which is worth knowing and is
185
+ not this line's business to fix. */
186
+ const chosen = this.resolveActive(visible);
187
+ /* The keyboard keeps its place. The stop was bound to the selection on
188
+ every sync, so a branch opening or a child arriving threw the reader back
189
+ to the selected row from wherever they had arrowed to. It only moves when
190
+ the row holding it is no longer reachable. */
191
+ const held = visible.find((item) => item.focusable);
192
+ const stop = held ?? chosen;
193
+ for (const item of this.items) {
194
+ item.selected = item.value !== '' && item.value === this.active;
195
+ item.focusable = item === stop;
196
+ let level = 1;
197
+ let parent = item.parentElement;
198
+ while (parent && parent !== this) {
199
+ if (parent instanceof HelixHeadlessTreeItem) {
200
+ level += 1;
201
+ }
202
+ parent = parent.parentElement;
203
+ }
204
+ item.level = level;
205
+ }
206
+ }
207
+ move(from, delta) {
208
+ const visible = this.visibleItems;
209
+ const index = visible.indexOf(from);
210
+ const next = visible[Math.min(visible.length - 1, Math.max(0, index + delta))];
211
+ this.focusOn(next);
212
+ }
213
+ focusOn(item) {
214
+ if (!item) {
215
+ return;
216
+ }
217
+ for (const entry of this.items) {
218
+ entry.focusable = entry === item;
219
+ }
220
+ item.focusItem();
221
+ /* And bring it into view, which arrow keys through a long tree did not do
222
+ at all: focus moved to an item below the fold and the tree stayed where
223
+ it was, so a reader navigating a sidebar of forty items was moving
224
+ something they could not see.
225
+
226
+ Not `scrollIntoView`, which scrolls every scrollable ancestor including
227
+ the page. A reader who pressed Down in a sidebar did not ask the document
228
+ to move. */
229
+ scrollItemIntoView(item, { padding: 4 });
230
+ }
231
+ connectedCallback() {
232
+ super.connectedCallback();
233
+ this.addEventListener('helix-select', this.handleSelection);
234
+ this.addEventListener('helix-before-open', this.handleBranch);
235
+ this.addEventListener('helix-before-close', this.handleBranch);
236
+ this.addEventListener('keydown', this.handleKeydown);
237
+ /* Nested items arrive on a *branch's* slot, not on this element's, so the
238
+ root's `slotchange` never fires for them: a subtree rendered after first
239
+ paint got no `level`, no `selected` and no `focusable`, and sat at the
240
+ wrong indent with no way into it. A framework filling a branch on demand,
241
+ which is what a lazy tree is, hit this every time. */
242
+ this.watcher = new MutationObserver(() => this.syncItems());
243
+ this.watcher.observe(this, { childList: true, subtree: true });
244
+ }
245
+ disconnectedCallback() {
246
+ super.disconnectedCallback();
247
+ this.removeEventListener('helix-select', this.handleSelection);
248
+ this.removeEventListener('helix-before-open', this.handleBranch);
249
+ this.removeEventListener('helix-before-close', this.handleBranch);
250
+ this.removeEventListener('keydown', this.handleKeydown);
251
+ this.watcher?.disconnect();
252
+ this.watcher = undefined;
253
+ }
254
+ firstUpdated(changed) {
255
+ super.firstUpdated(changed);
256
+ this.syncItems();
257
+ }
258
+ updated(changed) {
259
+ super.updated(changed);
260
+ if (changed.has('active')) {
261
+ this.syncItems();
262
+ }
263
+ }
264
+ render() {
265
+ return html `<div
266
+ part="tree"
267
+ role="tree"
268
+ aria-busy=${this.loading ? 'true' : nothing}
269
+ aria-label=${this.label}
270
+ >
271
+ <slot
272
+ @slotchange=${(event) => {
273
+ this.countRows(event);
274
+ this.syncItems();
275
+ }}
276
+ ></slot>
277
+ ${this.renderStatus(this.hasRows)}
278
+ </div>`;
279
+ }
280
+ };
281
+ __decorate([
282
+ property()
283
+ ], HelixHeadlessTree.prototype, "label", void 0);
284
+ HelixHeadlessTree = __decorate([
285
+ customElement('helix-headless-tree')
286
+ ], HelixHeadlessTree);
287
+ export { HelixHeadlessTree };
@@ -0,0 +1 @@
1
+ export * from './root/trend-root.js';
@@ -0,0 +1 @@
1
+ export * from './root/trend-root.js';
@@ -0,0 +1,67 @@
1
+ import { HelixElement } from '@fusion.dev/helix-core';
2
+ import { type TemplateResult } from 'lit';
3
+ /**
4
+ * @summary Which way a measurement moved, and whether that is good news.
5
+ *
6
+ * @description
7
+ * Three parts: a direction that is up, down or neutral, the metric that moved,
8
+ * and a label saying over what. The arrow carries the direction and its color
9
+ * carries the judgment, and the two are separate properties because they are
10
+ * separate facts.
11
+ *
12
+ * **`good` is absent by default, so an unjudged trend is gray.** Every
13
+ * dashboard convention says up is green, and for churn, latency, error rate,
14
+ * cost and bounce rate that convention is a lie told in the most legible color
15
+ * on the page. A component that guesses is wrong roughly a third of the time
16
+ * and silent about it; one that waits to be told is uninformative until it is,
17
+ * which is the cheaper failure. State the metric's polarity once and the
18
+ * component does the part that varies.
19
+ *
20
+ * The direction is also written as a word, because a coloured arrow says
21
+ * nothing to a reader who is not looking at it. `part="direction"` is what the
22
+ * styled tier clips out of sight and leaves in the accessibility tree.
23
+ *
24
+ * Both the metric and the label are bare slots. An element whose only job is to
25
+ * assign itself a slot on connect gives its own host an attribute after
26
+ * upgrade, which a React consumer's server markup never had.
27
+ *
28
+ * @since 0.1.0
29
+ * @status stable
30
+ * @category charts
31
+ * @aliases Delta, Change, Movement
32
+ * @documentation https://helix.fusion.dev/components/trend
33
+ *
34
+ * @slot - The metric that moved.
35
+ * @slot label - What it moved over.
36
+ *
37
+ * @csspart direction - The direction as a word, for readers who are not looking.
38
+ * @csspart icon - The arrow.
39
+ */
40
+ export declare class HelixHeadlessTrend extends HelixElement {
41
+ /**
42
+ * Which way the measurement moved.
43
+ *
44
+ * Absent is neutral, so a trend with nothing to report draws a bar rather
45
+ * than picking a direction. Optional rather than defaulted for the reason
46
+ * `Stat.direction` is: a reflecting property with a default writes its
47
+ * attribute onto the host the moment the element upgrades, and the host is
48
+ * markup the consumer rendered, which React compares against what it rendered
49
+ * and reports as a hydration mismatch.
50
+ */
51
+ direction?: 'down' | 'neutral' | 'up';
52
+ /**
53
+ * Which direction is the improvement, for this metric.
54
+ *
55
+ * Absent states the movement without judging it, which is the honest default:
56
+ * revenue up is good news and latency up is bad news, and only the consumer
57
+ * knows which one this is. Set it once per metric and it holds while the
58
+ * direction changes underneath.
59
+ */
60
+ good?: 'down' | 'up';
61
+ protected render(): TemplateResult;
62
+ }
63
+ declare global {
64
+ interface HTMLElementTagNameMap {
65
+ 'helix-headless-trend': HelixHeadlessTrend;
66
+ }
67
+ }
@@ -0,0 +1,106 @@
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 } from '@fusion.dev/helix-core';
8
+ import { arrowDown, arrowUp, minus } from '@fusion.dev/helix-icons';
9
+ import { html } from 'lit';
10
+ import { property } from 'lit/decorators.js';
11
+ import { unsafeSVG } from 'lit/directives/unsafe-svg.js';
12
+ /** The three directions a measurement can have moved, and how each is drawn. */
13
+ const DIRECTIONS = {
14
+ down: { icon: arrowDown, word: 'Down' },
15
+ neutral: { icon: minus, word: 'Unchanged' },
16
+ up: { icon: arrowUp, word: 'Up' },
17
+ };
18
+ /**
19
+ * Reads the direction, treating an absent or unrecognised one as neutral.
20
+ *
21
+ * The cast is a lie the fallback catches: an attribute is a string and a
22
+ * consumer can write anything into it, so an unrecognised word has to draw
23
+ * something rather than fail to index and throw inside `render`.
24
+ */
25
+ const readDirection = (value) => DIRECTIONS[value] ?? DIRECTIONS.neutral;
26
+ /**
27
+ * @summary Which way a measurement moved, and whether that is good news.
28
+ *
29
+ * @description
30
+ * Three parts: a direction that is up, down or neutral, the metric that moved,
31
+ * and a label saying over what. The arrow carries the direction and its color
32
+ * carries the judgment, and the two are separate properties because they are
33
+ * separate facts.
34
+ *
35
+ * **`good` is absent by default, so an unjudged trend is gray.** Every
36
+ * dashboard convention says up is green, and for churn, latency, error rate,
37
+ * cost and bounce rate that convention is a lie told in the most legible color
38
+ * on the page. A component that guesses is wrong roughly a third of the time
39
+ * and silent about it; one that waits to be told is uninformative until it is,
40
+ * which is the cheaper failure. State the metric's polarity once and the
41
+ * component does the part that varies.
42
+ *
43
+ * The direction is also written as a word, because a coloured arrow says
44
+ * nothing to a reader who is not looking at it. `part="direction"` is what the
45
+ * styled tier clips out of sight and leaves in the accessibility tree.
46
+ *
47
+ * Both the metric and the label are bare slots. An element whose only job is to
48
+ * assign itself a slot on connect gives its own host an attribute after
49
+ * upgrade, which a React consumer's server markup never had.
50
+ *
51
+ * @since 0.1.0
52
+ * @status stable
53
+ * @category charts
54
+ * @aliases Delta, Change, Movement
55
+ * @documentation https://helix.fusion.dev/components/trend
56
+ *
57
+ * @slot - The metric that moved.
58
+ * @slot label - What it moved over.
59
+ *
60
+ * @csspart direction - The direction as a word, for readers who are not looking.
61
+ * @csspart icon - The arrow.
62
+ */
63
+ let HelixHeadlessTrend = class HelixHeadlessTrend extends HelixElement {
64
+ render() {
65
+ const direction = readDirection(this.direction);
66
+ /* Silent on a neutral move, whatever `good` says. Neither better nor worse
67
+ is a reading of "unchanged" that the word already carries. */
68
+ const judgment = this.good && this.direction && this.direction !== 'neutral'
69
+ ? this.good === this.direction
70
+ ? ', better'
71
+ : ', worse'
72
+ : '';
73
+ /* One interpolation rather than two, so the phrase is one text node.
74
+ Lit SSR writes a `<!--lit-part-->` marker around every binding, and two
75
+ bindings put a pair of comments between "Up" and ", worse" in the served
76
+ markup. No screen reader is confused by adjacent text nodes, but the
77
+ server output should read as the thing the DOM will hold, and a test
78
+ against it should be able to say so in one string. */
79
+ /* Written out rather than through `drawIcon`, because this one needs a
80
+ `part` and a part behind an interpolation is one the manifest cannot see:
81
+ the helper's `part=${…}` binding took `[part="icon"]` out of the
82
+ stylesheet's reach and `check:selectors` said so. */
83
+ return html `<svg
84
+ aria-hidden="true"
85
+ data-glyph
86
+ fill="currentColor"
87
+ part="icon"
88
+ viewBox=${direction.icon.viewBox}
89
+ >
90
+ ${unsafeSVG(direction.icon.content)}
91
+ </svg>
92
+ <span part="direction">${`${direction.word}${judgment}`}</span>
93
+ <slot></slot>
94
+ <slot name="label"></slot>`;
95
+ }
96
+ };
97
+ __decorate([
98
+ property({ reflect: true })
99
+ ], HelixHeadlessTrend.prototype, "direction", void 0);
100
+ __decorate([
101
+ property({ reflect: true })
102
+ ], HelixHeadlessTrend.prototype, "good", void 0);
103
+ HelixHeadlessTrend = __decorate([
104
+ customElement('helix-headless-trend')
105
+ ], HelixHeadlessTrend);
106
+ export { HelixHeadlessTrend };
@@ -0,0 +1 @@
1
+ export { HelixHeadlessVideo } from './root/video-root.js';
@@ -0,0 +1 @@
1
+ export { HelixHeadlessVideo } from './root/video-root.js';