@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,168 @@
1
+ import { HelixElement } from '@fusion.dev/helix-core';
2
+ import { type PropertyValues, type TemplateResult } from 'lit';
3
+ import type { HelixHeadlessNotification } from '../notification/notification.js';
4
+ declare const HelixHeadlessNotifications_base: (new (...args: any[]) => import("@fusion.dev/helix-core").CollectionElement) & typeof HelixElement;
5
+ /**
6
+ * @summary A feed a reader comes back to, made of notifications they may not have seen.
7
+ *
8
+ * @description
9
+ * **Slotted children rather than a data property**, which is the opposite of the
10
+ * choice `helix-data-table` made and correct for the opposite reason. A table's
11
+ * rows are homogeneous values a consumer wants windowed; a notification is a
12
+ * small piece of somebody's own markup, with an avatar and a link and a button
13
+ * in it, and there are tens of them rather than thousands. Writing them out is
14
+ * the web-component reading of a list and lets an item hold anything.
15
+ *
16
+ * **The cost is stated rather than discovered: this does not virtualize, and it
17
+ * cannot.** Windowing needs the list to own the data, and here the consumer owns
18
+ * it: N notifications is N elements by construction. That is the same trade
19
+ * `25-data-table.md` §2.2 rejected for a table and accepts here, because the
20
+ * sizes are not comparable. A feed that really does hold thousands wants a data
21
+ * table with a custom cell, and this component will not grow into one.
22
+ *
23
+ * **Read state is reported, never invented.** Marking read is usually a round
24
+ * trip: this element asks its items and each item asks the consumer, so a
25
+ * refused `helix-read` leaves everything alone and a consumer who owns `read`
26
+ * sees nothing change until they say so. `unread` is derived from the items and
27
+ * reflected, so a stylesheet and a badge can both read it without either of them
28
+ * counting.
29
+ *
30
+ * @since 0.1.0
31
+ * @status experimental
32
+ * @category feedback
33
+ * @aliases Notification feed, Inbox, Activity
34
+ * @documentation https://helix.fusion.dev/components/notifications
35
+ *
36
+ * @slot - The notifications, as `helix-notification` children.
37
+ * @slot footer - Below the list, for a link to everything.
38
+ * @slot header - Above the list, for a title and the mark-all control.
39
+ *
40
+ * @event {HelixReadEvent} helix-read - Fired by an item, and by this element when everything is marked read. Cancelable.
41
+ *
42
+ * @csspart empty - Shown when there is nothing in the feed.
43
+ * @csspart footer - The region below the list.
44
+ * @csspart header - The region above the list.
45
+ * @csspart list - The list itself.
46
+ * @csspart loading - Shown while the feed is still on its way.
47
+ * @csspart mark-all - The control that marks everything read.
48
+ */
49
+ export declare class HelixHeadlessNotifications extends HelixHeadlessNotifications_base {
50
+ /**
51
+ * Nothing is assigned by name, so the items land in a list and the rest does not.
52
+ *
53
+ * `role="listitem"` under anything but a `list` is a list item belonging to
54
+ * nothing, and the items are ordinary children a consumer writes with no
55
+ * `slot`. Manual assignment is the only way to wrap them without editing the
56
+ * consumer's markup, which is a change a React consumer's hydration reports
57
+ * and does not patch up.
58
+ */
59
+ static shadowRootOptions: ShadowRootInit;
60
+ /**
61
+ * Accessible name for the feed.
62
+ */
63
+ label: string;
64
+ /**
65
+ * Whether to draw a control that marks everything read.
66
+ */
67
+ markAll: boolean;
68
+ /**
69
+ * Label for that control.
70
+ */
71
+ markAllLabel: string;
72
+ /**
73
+ * How many items are unread, counted from the items themselves.
74
+ *
75
+ * Read-only for the reason it is derived: a count the consumer could set is a
76
+ * second source of truth for something the items already know, and the first
77
+ * time the two disagreed the badge would be right and the list would not.
78
+ *
79
+ * **The attribute is written in `updated` rather than reflected, and the
80
+ * difference is a bug that shipped.** `@property({ reflect: true })` on a
81
+ * getter with no setter reflects once: Lit reflects what is in
82
+ * `changedProperties`, and nothing puts a derived getter there after the first
83
+ * update. Measured with two items, one marked read: the property answered 1
84
+ * and the attribute still said 2, so a badge reading the attribute showed a
85
+ * count for an item the reader had just opened.
86
+ */
87
+ get unread(): number;
88
+ /** The notifications declared as children, in the order they are written. */
89
+ get items(): HelixHeadlessNotification[];
90
+ /**
91
+ * Marks every unread item read, and reports how many actually moved.
92
+ *
93
+ * **Through each item's own request rather than by writing its property**,
94
+ * which is what makes one refusal refuse one item: a consumer who owns some
95
+ * items and not others gets the right answer for each, and a server that
96
+ * rejects one does not silently mark the rest.
97
+ */
98
+ markEveryoneRead(): number;
99
+ /** Items arrive from the light DOM, which changes no property here. */
100
+ private readonly handleSlotChange;
101
+ /**
102
+ * An item's own read event, heard on the way past, so the count follows.
103
+ *
104
+ * `unread` is derived from the items and nothing about an item changing tells
105
+ * Lit to look again. Not stopped: the event is the consumer's to hear, and
106
+ * this element is a bystander that happens to need to redraw.
107
+ */
108
+ private readonly handleRead;
109
+ private assign;
110
+ connectedCallback(): void;
111
+ disconnectedCallback(): void;
112
+ protected willUpdate(changed: PropertyValues): void;
113
+ /**
114
+ * Says whether anything in the feed has media, so every item can hold the
115
+ * column open whether or not it has one of its own.
116
+ *
117
+ * **A fact no item can answer for itself**, which is why it is here. An item
118
+ * knows about its own media slot and nothing about its neighbors, so a feed
119
+ * where some rows have an avatar and some do not drew two different left
120
+ * edges for its text and had no way to notice: measured on a four item feed,
121
+ * the rows without media started their text 32 pixels to the left of the rows
122
+ * with it. The styled tier turns this into a width; this tier ships no
123
+ * stylesheet and is unaffected.
124
+ *
125
+ * Read off the light DOM rather than off the items, so it does not depend on
126
+ * which children have upgraded by the time this runs.
127
+ */
128
+ private markMedia;
129
+ /**
130
+ * Says on each region whether anything is in it.
131
+ *
132
+ * **The stylesheet used to ask, and could not.** The rule read
133
+ * `[part="header"]:not(:has(> slot:has(*)))`, which is two faults at once.
134
+ * `:has()` may not be nested inside `:has()`, so the selector fails to parse
135
+ * and the whole rule is discarded; and a slot's assigned nodes are not its DOM
136
+ * children, so `slot:has(*)` reports whether the slot has *fallback* rather
137
+ * than whether a consumer filled it, and would have been false either way.
138
+ * Both verified in a browser: `insertRule` throws a `SyntaxError` on the
139
+ * first, and an assigned element still leaves `slot.matches(':has(*)')` false.
140
+ * A feed with no header drew its rule under nothing, and one with no footer
141
+ * drew another over nothing.
142
+ *
143
+ * `slotFilled` is what the rest of the library already asks with. It is said
144
+ * on the region inside this shadow root rather than on the host, because an
145
+ * attribute written onto the host is a change to markup the consumer rendered,
146
+ * which React reports on hydration and does not patch up.
147
+ */
148
+ private markEmpty;
149
+ /**
150
+ * One region, hidden when its slot holds nothing and nothing of ours fills it.
151
+ *
152
+ * `hidden` beside the `data-empty` mirror: `data-empty` is the hook the styled
153
+ * sheet reads, and this tier ships no sheet, so an empty region left in the box
154
+ * tree would be a gap a headless consumer cannot close without knowing to look
155
+ * for it. The styled rule stays too, because that sheet sets `display` on these
156
+ * parts and therefore outranks the UA's `[hidden]` one.
157
+ */
158
+ private markRegion;
159
+ protected updated(changed: PropertyValues): void;
160
+ protected render(): TemplateResult;
161
+ private readonly handleMarkAll;
162
+ }
163
+ declare global {
164
+ interface HTMLElementTagNameMap {
165
+ 'helix-headless-notifications': HelixHeadlessNotifications;
166
+ }
167
+ }
168
+ export {};
@@ -0,0 +1,291 @@
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, HelixReadEvent, hostAria, MixinCollection, slotFilled, } from '@fusion.dev/helix-core';
8
+ import { html, nothing } from 'lit';
9
+ import { property } from 'lit/decorators.js';
10
+ /**
11
+ * @summary A feed a reader comes back to, made of notifications they may not have seen.
12
+ *
13
+ * @description
14
+ * **Slotted children rather than a data property**, which is the opposite of the
15
+ * choice `helix-data-table` made and correct for the opposite reason. A table's
16
+ * rows are homogeneous values a consumer wants windowed; a notification is a
17
+ * small piece of somebody's own markup, with an avatar and a link and a button
18
+ * in it, and there are tens of them rather than thousands. Writing them out is
19
+ * the web-component reading of a list and lets an item hold anything.
20
+ *
21
+ * **The cost is stated rather than discovered: this does not virtualize, and it
22
+ * cannot.** Windowing needs the list to own the data, and here the consumer owns
23
+ * it: N notifications is N elements by construction. That is the same trade
24
+ * `25-data-table.md` §2.2 rejected for a table and accepts here, because the
25
+ * sizes are not comparable. A feed that really does hold thousands wants a data
26
+ * table with a custom cell, and this component will not grow into one.
27
+ *
28
+ * **Read state is reported, never invented.** Marking read is usually a round
29
+ * trip: this element asks its items and each item asks the consumer, so a
30
+ * refused `helix-read` leaves everything alone and a consumer who owns `read`
31
+ * sees nothing change until they say so. `unread` is derived from the items and
32
+ * reflected, so a stylesheet and a badge can both read it without either of them
33
+ * counting.
34
+ *
35
+ * @since 0.1.0
36
+ * @status experimental
37
+ * @category feedback
38
+ * @aliases Notification feed, Inbox, Activity
39
+ * @documentation https://helix.fusion.dev/components/notifications
40
+ *
41
+ * @slot - The notifications, as `helix-notification` children.
42
+ * @slot footer - Below the list, for a link to everything.
43
+ * @slot header - Above the list, for a title and the mark-all control.
44
+ *
45
+ * @event {HelixReadEvent} helix-read - Fired by an item, and by this element when everything is marked read. Cancelable.
46
+ *
47
+ * @csspart empty - Shown when there is nothing in the feed.
48
+ * @csspart footer - The region below the list.
49
+ * @csspart header - The region above the list.
50
+ * @csspart list - The list itself.
51
+ * @csspart loading - Shown while the feed is still on its way.
52
+ * @csspart mark-all - The control that marks everything read.
53
+ */
54
+ let HelixHeadlessNotifications = class HelixHeadlessNotifications extends MixinCollection(HelixElement) {
55
+ constructor() {
56
+ super(...arguments);
57
+ /**
58
+ * Accessible name for the feed.
59
+ */
60
+ this.label = '';
61
+ /**
62
+ * Whether to draw a control that marks everything read.
63
+ */
64
+ this.markAll = false;
65
+ /**
66
+ * Label for that control.
67
+ */
68
+ this.markAllLabel = 'Mark all as read';
69
+ /** Items arrive from the light DOM, which changes no property here. */
70
+ this.handleSlotChange = () => {
71
+ this.assign();
72
+ this.requestUpdate();
73
+ };
74
+ /**
75
+ * An item's own read event, heard on the way past, so the count follows.
76
+ *
77
+ * `unread` is derived from the items and nothing about an item changing tells
78
+ * Lit to look again. Not stopped: the event is the consumer's to hear, and
79
+ * this element is a bystander that happens to need to redraw.
80
+ */
81
+ this.handleRead = () => {
82
+ /* After the item has applied it, not before: read synchronously the count
83
+ would be the one from before the change and the badge would trail by one
84
+ every time. */
85
+ queueMicrotask(() => this.requestUpdate());
86
+ };
87
+ this.handleMarkAll = () => {
88
+ this.markEveryoneRead();
89
+ };
90
+ }
91
+ /**
92
+ * Nothing is assigned by name, so the items land in a list and the rest does not.
93
+ *
94
+ * `role="listitem"` under anything but a `list` is a list item belonging to
95
+ * nothing, and the items are ordinary children a consumer writes with no
96
+ * `slot`. Manual assignment is the only way to wrap them without editing the
97
+ * consumer's markup, which is a change a React consumer's hydration reports
98
+ * and does not patch up.
99
+ */
100
+ static { this.shadowRootOptions = {
101
+ ...HelixElement.shadowRootOptions,
102
+ slotAssignment: 'manual',
103
+ }; }
104
+ /**
105
+ * How many items are unread, counted from the items themselves.
106
+ *
107
+ * Read-only for the reason it is derived: a count the consumer could set is a
108
+ * second source of truth for something the items already know, and the first
109
+ * time the two disagreed the badge would be right and the list would not.
110
+ *
111
+ * **The attribute is written in `updated` rather than reflected, and the
112
+ * difference is a bug that shipped.** `@property({ reflect: true })` on a
113
+ * getter with no setter reflects once: Lit reflects what is in
114
+ * `changedProperties`, and nothing puts a derived getter there after the first
115
+ * update. Measured with two items, one marked read: the property answered 1
116
+ * and the attribute still said 2, so a badge reading the attribute showed a
117
+ * count for an item the reader had just opened.
118
+ */
119
+ get unread() {
120
+ return this.items.filter((item) => !item.read).length;
121
+ }
122
+ /** The notifications declared as children, in the order they are written. */
123
+ get items() {
124
+ /* `?? []` is the server. Lit's element shim carries attributes and not a
125
+ tree, so `children` is undefined there, and this getter is reached from
126
+ `unread`, which is reflected and therefore read during the first update. */
127
+ return [...(this.children ?? [])].filter((child) => 'isNotification' in child && child.isNotification === true);
128
+ }
129
+ /**
130
+ * Marks every unread item read, and reports how many actually moved.
131
+ *
132
+ * **Through each item's own request rather than by writing its property**,
133
+ * which is what makes one refusal refuse one item: a consumer who owns some
134
+ * items and not others gets the right answer for each, and a server that
135
+ * rejects one does not silently mark the rest.
136
+ */
137
+ markEveryoneRead() {
138
+ if (!this.dispatchEvent(new HelixReadEvent({ read: true }))) {
139
+ return 0;
140
+ }
141
+ let moved = 0;
142
+ for (const item of this.items) {
143
+ if (!item.read && item.markRead(true)) {
144
+ moved += 1;
145
+ }
146
+ }
147
+ this.requestUpdate();
148
+ return moved;
149
+ }
150
+ assign() {
151
+ const root = this.renderRoot;
152
+ const list = root?.querySelector?.('slot[name="items"]');
153
+ if (!list?.assign) {
154
+ return;
155
+ }
156
+ const items = this.items;
157
+ list.assign(...items);
158
+ for (const name of ['header', 'footer']) {
159
+ const slot = root?.querySelector?.(`slot[name="${name}"]`);
160
+ slot?.assign?.(...[...this.children].filter((child) => child.getAttribute('slot') === name));
161
+ }
162
+ }
163
+ connectedCallback() {
164
+ super.connectedCallback();
165
+ this.addEventListener('helix-read', this.handleRead);
166
+ }
167
+ disconnectedCallback() {
168
+ super.disconnectedCallback();
169
+ this.removeEventListener('helix-read', this.handleRead);
170
+ }
171
+ willUpdate(changed) {
172
+ super.willUpdate(changed);
173
+ hostAria(this.internals, { label: this.label || 'Notifications', role: 'region' });
174
+ }
175
+ /**
176
+ * Says whether anything in the feed has media, so every item can hold the
177
+ * column open whether or not it has one of its own.
178
+ *
179
+ * **A fact no item can answer for itself**, which is why it is here. An item
180
+ * knows about its own media slot and nothing about its neighbors, so a feed
181
+ * where some rows have an avatar and some do not drew two different left
182
+ * edges for its text and had no way to notice: measured on a four item feed,
183
+ * the rows without media started their text 32 pixels to the left of the rows
184
+ * with it. The styled tier turns this into a width; this tier ships no
185
+ * stylesheet and is unaffected.
186
+ *
187
+ * Read off the light DOM rather than off the items, so it does not depend on
188
+ * which children have upgraded by the time this runs.
189
+ */
190
+ markMedia() {
191
+ this.toggleState('media', this.items.some((item) => item.querySelector(':scope > [slot="media"]') !== null));
192
+ }
193
+ /**
194
+ * Says on each region whether anything is in it.
195
+ *
196
+ * **The stylesheet used to ask, and could not.** The rule read
197
+ * `[part="header"]:not(:has(> slot:has(*)))`, which is two faults at once.
198
+ * `:has()` may not be nested inside `:has()`, so the selector fails to parse
199
+ * and the whole rule is discarded; and a slot's assigned nodes are not its DOM
200
+ * children, so `slot:has(*)` reports whether the slot has *fallback* rather
201
+ * than whether a consumer filled it, and would have been false either way.
202
+ * Both verified in a browser: `insertRule` throws a `SyntaxError` on the
203
+ * first, and an assigned element still leaves `slot.matches(':has(*)')` false.
204
+ * A feed with no header drew its rule under nothing, and one with no footer
205
+ * drew another over nothing.
206
+ *
207
+ * `slotFilled` is what the rest of the library already asks with. It is said
208
+ * on the region inside this shadow root rather than on the host, because an
209
+ * attribute written onto the host is a change to markup the consumer rendered,
210
+ * which React reports on hydration and does not patch up.
211
+ */
212
+ markEmpty() {
213
+ /* The header is not empty while this element is drawing its own control into
214
+ it, which is the case the old selector spelled with a second `:not`. */
215
+ this.markRegion('header', ['header'], '[part="mark-all"]');
216
+ this.markRegion('footer', ['footer']);
217
+ }
218
+ /**
219
+ * One region, hidden when its slot holds nothing and nothing of ours fills it.
220
+ *
221
+ * `hidden` beside the `data-empty` mirror: `data-empty` is the hook the styled
222
+ * sheet reads, and this tier ships no sheet, so an empty region left in the box
223
+ * tree would be a gap a headless consumer cannot close without knowing to look
224
+ * for it. The styled rule stays too, because that sheet sets `display` on these
225
+ * parts and therefore outranks the UA's `[hidden]` one.
226
+ */
227
+ markRegion(part, slots, occupied) {
228
+ const region = this.renderRoot?.querySelector(`[part="${part}"]`);
229
+ const empty = !slots.some((name) => slotFilled(this.renderRoot?.querySelector(`slot[name="${name}"]`))) && !(occupied && this.renderRoot?.querySelector(occupied));
230
+ region?.toggleAttribute('data-empty', empty);
231
+ region?.toggleAttribute('hidden', empty);
232
+ }
233
+ updated(changed) {
234
+ super.updated(changed);
235
+ /* Before `markEmpty`, which reads what is assigned: on a feed with no items
236
+ nothing else ever schedules a second update, so a header asked about
237
+ before its slot was filled stayed hidden for the life of the element. The
238
+ empty feed is the one state where the header is the only thing on screen,
239
+ and it was the one state that lost it. */
240
+ this.assign();
241
+ this.markEmpty();
242
+ this.markMedia();
243
+ /* Written after the render rather than reflected during it, so it follows
244
+ every change rather than only the first, and so the server's output and a
245
+ hydrating consumer's markup agree that neither has it yet. */
246
+ /* **Zero is the absence of the attribute, not `unread="0"`.** Writing it at
247
+ rest put an attribute on the host that a consumer's server never sent, and
248
+ the comment above claimed the opposite: writing in `updated` is not "after
249
+ hydration", it is the same microtask checkpoint `firstUpdated` runs in,
250
+ which is exactly how `data-settled` was a bug on three routes. Only a
251
+ departure from resting writes. */
252
+ const unread = this.unread > 0 ? String(this.unread) : null;
253
+ if (this.getAttribute('unread') !== unread) {
254
+ if (unread === null) {
255
+ this.removeAttribute('unread');
256
+ }
257
+ else {
258
+ this.setAttribute('unread', unread);
259
+ }
260
+ }
261
+ }
262
+ render() {
263
+ const hasItems = this.items.length > 0;
264
+ return html `<div part="header">
265
+ <slot name="header"></slot>
266
+ ${this.markAll && this.unread > 0
267
+ ? html `<button part="mark-all" type="button" @click=${this.handleMarkAll}>
268
+ ${this.markAllLabel}
269
+ </button>`
270
+ : nothing}
271
+ </div>
272
+ <div part="list" role="list" aria-busy=${this.loading ? 'true' : nothing}>
273
+ <slot name="items" @slotchange=${this.handleSlotChange}></slot>
274
+ ${this.renderStatus(hasItems)}
275
+ </div>
276
+ <div part="footer"><slot name="footer"></slot></div>`;
277
+ }
278
+ };
279
+ __decorate([
280
+ property()
281
+ ], HelixHeadlessNotifications.prototype, "label", void 0);
282
+ __decorate([
283
+ property({ attribute: 'mark-all', type: Boolean })
284
+ ], HelixHeadlessNotifications.prototype, "markAll", void 0);
285
+ __decorate([
286
+ property({ attribute: 'mark-all-label' })
287
+ ], HelixHeadlessNotifications.prototype, "markAllLabel", void 0);
288
+ HelixHeadlessNotifications = __decorate([
289
+ customElement('helix-headless-notifications')
290
+ ], HelixHeadlessNotifications);
291
+ export { HelixHeadlessNotifications };
@@ -0,0 +1 @@
1
+ export * from './root/number-input-root.js';
@@ -0,0 +1 @@
1
+ export * from './root/number-input-root.js';