@ui-sdk/web 0.0.0-stage → 0.1.0-beta.1

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 (467) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +10 -2
  3. package/browser/web/accordion.js +1 -0
  4. package/browser/web/alert-dialog.js +1 -0
  5. package/browser/web/autocomplete.js +1 -0
  6. package/browser/web/avatar.js +1 -0
  7. package/browser/web/button.js +1 -0
  8. package/browser/web/calendar.js +1 -0
  9. package/browser/web/carousel.js +1 -0
  10. package/browser/web/checkbox.js +1 -0
  11. package/browser/web/chunks/0eRGibL6.js +1 -0
  12. package/browser/web/chunks/2bIEUO6_.js +1 -0
  13. package/browser/web/chunks/5A9w2ULz.js +1 -0
  14. package/browser/web/chunks/5RSyydjV.js +1 -0
  15. package/browser/web/chunks/9pWTy2wl.js +1 -0
  16. package/browser/web/chunks/B0f2j6zz.js +1 -0
  17. package/browser/web/chunks/B1rux6br.js +1 -0
  18. package/browser/web/chunks/B3-APaNf.js +1 -0
  19. package/browser/web/chunks/B7EgSgjQ.js +1 -0
  20. package/browser/web/chunks/B8QcOzJU.js +1 -0
  21. package/browser/web/chunks/BFueEkwm.js +3 -0
  22. package/browser/web/chunks/BJj3oS29.js +1 -0
  23. package/browser/web/chunks/BNSvTCpr.js +1 -0
  24. package/browser/web/chunks/BPD0kAZB.js +1 -0
  25. package/browser/web/chunks/BQeduZqT.js +1 -0
  26. package/browser/web/chunks/B_CVFyiz.js +1 -0
  27. package/browser/web/chunks/B_ns1YHO.js +1 -0
  28. package/browser/web/chunks/BcwkVTsR.js +1 -0
  29. package/browser/web/chunks/BeaQ6TYM.js +1 -0
  30. package/browser/web/chunks/BgBB013u.js +1 -0
  31. package/browser/web/chunks/BgsKhHDm.js +1 -0
  32. package/browser/web/chunks/BjMcbuhi.js +9 -0
  33. package/browser/web/chunks/Bjiy_F2N.js +1 -0
  34. package/browser/web/chunks/BqScCLwv.js +1 -0
  35. package/browser/web/chunks/BqX3Utqx.js +1 -0
  36. package/browser/web/chunks/BtVkQf3z.js +1 -0
  37. package/browser/web/chunks/By30h-7B.js +1 -0
  38. package/browser/web/chunks/C1zqYpy2.js +1 -0
  39. package/browser/web/chunks/C436juFf.js +1 -0
  40. package/browser/web/chunks/C4_bULs1.js +1 -0
  41. package/browser/web/chunks/C4omqJEz.js +1 -0
  42. package/browser/web/chunks/C7tt0T3n.js +1 -0
  43. package/browser/web/chunks/C8w7s5dg.js +1 -0
  44. package/browser/web/chunks/CElY4erO.js +1 -0
  45. package/browser/web/chunks/CFODo-m2.js +1 -0
  46. package/browser/web/chunks/CL4wjam9.js +1 -0
  47. package/browser/web/chunks/CMg-8UVf.js +1 -0
  48. package/browser/web/chunks/COWKfakj.js +1 -0
  49. package/browser/web/chunks/CQBU0qZ4.js +1 -0
  50. package/browser/web/chunks/CV6uABgc.js +1 -0
  51. package/browser/web/chunks/C_SWFpWQ.js +1 -0
  52. package/browser/web/chunks/C_Uanbrl.js +1 -0
  53. package/browser/web/chunks/Ce_CSanC.js +1 -0
  54. package/browser/web/chunks/Cg-ZmRhS.js +1 -0
  55. package/browser/web/chunks/Cgf2wPI_.js +1 -0
  56. package/browser/web/chunks/Cuep_3Vf.js +1 -0
  57. package/browser/web/chunks/D02PaHn6.js +1 -0
  58. package/browser/web/chunks/D5LiaI5R.js +1 -0
  59. package/browser/web/chunks/D9UgVYvF.js +1 -0
  60. package/browser/web/chunks/DC08tnkE.js +2 -0
  61. package/browser/web/chunks/DG8YGSvu.js +1 -0
  62. package/browser/web/chunks/DIQd0FYD.js +1 -0
  63. package/browser/web/chunks/DMLqacE8.js +1 -0
  64. package/browser/web/chunks/DSUI3yI-.js +1 -0
  65. package/browser/web/chunks/DT3Hb76X.js +1 -0
  66. package/browser/web/chunks/DY75g3-W.js +1 -0
  67. package/browser/web/chunks/DZpNQKZ9.js +1 -0
  68. package/browser/web/chunks/Db-W1wrC.js +1 -0
  69. package/browser/web/chunks/Dc1xK3Ii.js +1 -0
  70. package/browser/web/chunks/DdF6awFs.js +1 -0
  71. package/browser/web/chunks/DdaCLml8.js +1 -0
  72. package/browser/web/chunks/Dh8MLjQO.js +1 -0
  73. package/browser/web/chunks/DiuslJRy.js +1 -0
  74. package/browser/web/chunks/DjRcw3Y0.js +1 -0
  75. package/browser/web/chunks/Djdv-16J.js +1 -0
  76. package/browser/web/chunks/DnFXe_lF.js +1 -0
  77. package/browser/web/chunks/DneGv1oC.js +1 -0
  78. package/browser/web/chunks/DsVxP-p-.js +1 -0
  79. package/browser/web/chunks/DwDilCo2.js +1 -0
  80. package/browser/web/chunks/DwV48AXv.js +1 -0
  81. package/browser/web/chunks/F37aF4-L.js +1 -0
  82. package/browser/web/chunks/LyB6XIbN.js +1 -0
  83. package/browser/web/chunks/NKnbYGjC.js +1 -0
  84. package/browser/web/chunks/Vk-rVi16.js +1 -0
  85. package/browser/web/chunks/XsM0J1Ex.js +1 -0
  86. package/browser/web/chunks/asSN9iEp.js +1 -0
  87. package/browser/web/chunks/c-AjHfdF.js +1 -0
  88. package/browser/web/chunks/dR-12TPY.js +1 -0
  89. package/browser/web/chunks/hR4xM0EC.js +1 -0
  90. package/browser/web/chunks/hqOaBxAg.js +1 -0
  91. package/browser/web/chunks/kMKqqeG4.js +1 -0
  92. package/browser/web/chunks/kXboBcfi.js +1 -0
  93. package/browser/web/chunks/l4aQIg22.js +1 -0
  94. package/browser/web/chunks/tJC0JSU4.js +1 -0
  95. package/browser/web/chunks/wHdS_QYM.js +1 -0
  96. package/browser/web/chunks/yv8dTvNI.js +1 -0
  97. package/browser/web/chunks/yw9M3nfi.js +1 -0
  98. package/browser/web/collapsible.js +1 -0
  99. package/browser/web/color-picker.js +1 -0
  100. package/browser/web/combobox.js +2 -0
  101. package/browser/web/command.js +1 -0
  102. package/browser/web/core.js +5 -0
  103. package/browser/web/date-input.js +1 -0
  104. package/browser/web/date-picker.js +1 -0
  105. package/browser/web/dialog.js +1 -0
  106. package/browser/web/drawer.js +1 -0
  107. package/browser/web/field.js +1 -0
  108. package/browser/web/file-input.js +1 -0
  109. package/browser/web/hover-card.js +1 -0
  110. package/browser/web/image-cropper.js +1 -0
  111. package/browser/web/input.js +1 -0
  112. package/browser/web/label.js +1 -0
  113. package/browser/web/listbox.js +1 -0
  114. package/browser/web/menu.js +1 -0
  115. package/browser/web/menubar.js +1 -0
  116. package/browser/web/meter.js +1 -0
  117. package/browser/web/navigation-menu.js +1 -0
  118. package/browser/web/number-input.js +1 -0
  119. package/browser/web/otp-input.js +2 -0
  120. package/browser/web/overlays.js +1 -0
  121. package/browser/web/pagination.js +1 -0
  122. package/browser/web/password-input.js +1 -0
  123. package/browser/web/popover.js +1 -0
  124. package/browser/web/preferences.js +1 -0
  125. package/browser/web/progress.js +1 -0
  126. package/browser/web/radio.js +1 -0
  127. package/browser/web/rating.js +1 -0
  128. package/browser/web/resizable.js +1 -0
  129. package/browser/web/scroll-area.js +1 -0
  130. package/browser/web/segmented-control.js +1 -0
  131. package/browser/web/select.js +1 -0
  132. package/browser/web/separator.js +1 -0
  133. package/browser/web/slider.js +1 -0
  134. package/browser/web/switch.js +1 -0
  135. package/browser/web/tabs.js +1 -0
  136. package/browser/web/textarea.js +1 -0
  137. package/browser/web/time-input.js +1 -0
  138. package/browser/web/timeline.js +1 -0
  139. package/browser/web/toast.js +1 -0
  140. package/browser/web/toggle.js +1 -0
  141. package/browser/web/token-input.js +8 -0
  142. package/browser/web/toolbar.js +1 -0
  143. package/browser/web/tooltip.js +1 -0
  144. package/browser/web/tree.js +1 -0
  145. package/browser/web/trigger-menu.js +4 -0
  146. package/browser/web/waterfall.js +1 -0
  147. package/browser/web.css +3378 -0
  148. package/browser/web.js +3 -0
  149. package/custom-elements.json +32315 -0
  150. package/dist/accordion.d.ts +2 -0
  151. package/dist/accordion.js +57 -0
  152. package/dist/action.d.ts +16 -0
  153. package/dist/action.js +39 -0
  154. package/dist/agent.d.ts +2 -0
  155. package/dist/agent.js +7 -0
  156. package/dist/autocomplete.d.ts +2 -0
  157. package/dist/autocomplete.js +120 -0
  158. package/dist/autoload.d.ts +18 -0
  159. package/dist/autoload.js +63 -0
  160. package/dist/avatar.d.ts +2 -0
  161. package/dist/avatar.js +27 -0
  162. package/dist/browser-core.d.ts +2 -0
  163. package/dist/browser-core.js +8 -0
  164. package/dist/button.d.ts +2 -0
  165. package/dist/button.js +35 -0
  166. package/dist/calendar.d.ts +23 -0
  167. package/dist/calendar.js +429 -0
  168. package/dist/carousel.d.ts +2 -0
  169. package/dist/carousel.js +54 -0
  170. package/dist/checkbox.d.ts +4 -0
  171. package/dist/checkbox.js +75 -0
  172. package/dist/collapsible.d.ts +2 -0
  173. package/dist/collapsible.js +28 -0
  174. package/dist/color-picker.d.ts +2 -0
  175. package/dist/color-picker.js +64 -0
  176. package/dist/combobox.d.ts +2 -0
  177. package/dist/combobox.js +334 -0
  178. package/dist/command.d.ts +2 -0
  179. package/dist/command.js +122 -0
  180. package/dist/date-input.d.ts +3 -0
  181. package/dist/date-input.js +87 -0
  182. package/dist/date-picker.d.ts +2 -0
  183. package/dist/date-picker.js +174 -0
  184. package/dist/default-text.d.ts +3 -0
  185. package/dist/default-text.js +24 -0
  186. package/dist/define-element.d.ts +404 -0
  187. package/dist/define-element.js +1489 -0
  188. package/dist/dialog.d.ts +3 -0
  189. package/dist/dialog.js +94 -0
  190. package/dist/drawer.d.ts +2 -0
  191. package/dist/drawer.js +96 -0
  192. package/dist/entries/accordion.d.ts +3 -0
  193. package/dist/entries/accordion.js +7 -0
  194. package/dist/entries/alert-dialog.d.ts +3 -0
  195. package/dist/entries/alert-dialog.js +13 -0
  196. package/dist/entries/autocomplete.d.ts +3 -0
  197. package/dist/entries/autocomplete.js +7 -0
  198. package/dist/entries/avatar.d.ts +2 -0
  199. package/dist/entries/avatar.js +3 -0
  200. package/dist/entries/button.d.ts +2 -0
  201. package/dist/entries/button.js +3 -0
  202. package/dist/entries/calendar.d.ts +3 -0
  203. package/dist/entries/calendar.js +7 -0
  204. package/dist/entries/carousel.d.ts +3 -0
  205. package/dist/entries/carousel.js +7 -0
  206. package/dist/entries/checkbox.d.ts +3 -0
  207. package/dist/entries/checkbox.js +15 -0
  208. package/dist/entries/collapsible.d.ts +3 -0
  209. package/dist/entries/collapsible.js +7 -0
  210. package/dist/entries/color-picker.d.ts +3 -0
  211. package/dist/entries/color-picker.js +7 -0
  212. package/dist/entries/combobox.d.ts +3 -0
  213. package/dist/entries/combobox.js +7 -0
  214. package/dist/entries/command.d.ts +3 -0
  215. package/dist/entries/command.js +7 -0
  216. package/dist/entries/date-input.d.ts +3 -0
  217. package/dist/entries/date-input.js +7 -0
  218. package/dist/entries/date-picker.d.ts +3 -0
  219. package/dist/entries/date-picker.js +7 -0
  220. package/dist/entries/dialog.d.ts +3 -0
  221. package/dist/entries/dialog.js +7 -0
  222. package/dist/entries/drawer.d.ts +3 -0
  223. package/dist/entries/drawer.js +8 -0
  224. package/dist/entries/field.d.ts +2 -0
  225. package/dist/entries/field.js +3 -0
  226. package/dist/entries/file-input.d.ts +3 -0
  227. package/dist/entries/file-input.js +13 -0
  228. package/dist/entries/hover-card.d.ts +3 -0
  229. package/dist/entries/hover-card.js +7 -0
  230. package/dist/entries/image-cropper.d.ts +3 -0
  231. package/dist/entries/image-cropper.js +7 -0
  232. package/dist/entries/input.d.ts +3 -0
  233. package/dist/entries/input.js +8 -0
  234. package/dist/entries/label.d.ts +2 -0
  235. package/dist/entries/label.js +3 -0
  236. package/dist/entries/listbox.d.ts +3 -0
  237. package/dist/entries/listbox.js +7 -0
  238. package/dist/entries/menu.d.ts +3 -0
  239. package/dist/entries/menu.js +7 -0
  240. package/dist/entries/menubar.d.ts +3 -0
  241. package/dist/entries/menubar.js +7 -0
  242. package/dist/entries/meter.d.ts +2 -0
  243. package/dist/entries/meter.js +3 -0
  244. package/dist/entries/navigation-menu.d.ts +3 -0
  245. package/dist/entries/navigation-menu.js +7 -0
  246. package/dist/entries/number-input.d.ts +3 -0
  247. package/dist/entries/number-input.js +7 -0
  248. package/dist/entries/otp-input.d.ts +3 -0
  249. package/dist/entries/otp-input.js +7 -0
  250. package/dist/entries/overlays.d.ts +2 -0
  251. package/dist/entries/overlays.js +3 -0
  252. package/dist/entries/pagination.d.ts +3 -0
  253. package/dist/entries/pagination.js +11 -0
  254. package/dist/entries/password-input.d.ts +3 -0
  255. package/dist/entries/password-input.js +7 -0
  256. package/dist/entries/popover.d.ts +3 -0
  257. package/dist/entries/popover.js +7 -0
  258. package/dist/entries/preferences.d.ts +3 -0
  259. package/dist/entries/preferences.js +13 -0
  260. package/dist/entries/progress.d.ts +2 -0
  261. package/dist/entries/progress.js +3 -0
  262. package/dist/entries/radio.d.ts +3 -0
  263. package/dist/entries/radio.js +7 -0
  264. package/dist/entries/rating.d.ts +3 -0
  265. package/dist/entries/rating.js +8 -0
  266. package/dist/entries/resizable.d.ts +3 -0
  267. package/dist/entries/resizable.js +11 -0
  268. package/dist/entries/scroll-area.d.ts +3 -0
  269. package/dist/entries/scroll-area.js +7 -0
  270. package/dist/entries/segmented-control.d.ts +3 -0
  271. package/dist/entries/segmented-control.js +7 -0
  272. package/dist/entries/select.d.ts +3 -0
  273. package/dist/entries/select.js +7 -0
  274. package/dist/entries/separator.d.ts +2 -0
  275. package/dist/entries/separator.js +3 -0
  276. package/dist/entries/slider.d.ts +3 -0
  277. package/dist/entries/slider.js +7 -0
  278. package/dist/entries/switch.d.ts +3 -0
  279. package/dist/entries/switch.js +7 -0
  280. package/dist/entries/tabs.d.ts +3 -0
  281. package/dist/entries/tabs.js +7 -0
  282. package/dist/entries/textarea.d.ts +3 -0
  283. package/dist/entries/textarea.js +7 -0
  284. package/dist/entries/time-input.d.ts +3 -0
  285. package/dist/entries/time-input.js +7 -0
  286. package/dist/entries/timeline.d.ts +3 -0
  287. package/dist/entries/timeline.js +7 -0
  288. package/dist/entries/toast.d.ts +2 -0
  289. package/dist/entries/toast.js +3 -0
  290. package/dist/entries/toggle.d.ts +3 -0
  291. package/dist/entries/toggle.js +12 -0
  292. package/dist/entries/token-input.d.ts +3 -0
  293. package/dist/entries/token-input.js +17 -0
  294. package/dist/entries/toolbar.d.ts +3 -0
  295. package/dist/entries/toolbar.js +7 -0
  296. package/dist/entries/tooltip.d.ts +3 -0
  297. package/dist/entries/tooltip.js +7 -0
  298. package/dist/entries/tree.d.ts +3 -0
  299. package/dist/entries/tree.js +17 -0
  300. package/dist/entries/trigger-menu.d.ts +3 -0
  301. package/dist/entries/trigger-menu.js +11 -0
  302. package/dist/entries/waterfall.d.ts +3 -0
  303. package/dist/entries/waterfall.js +11 -0
  304. package/dist/events.d.ts +1658 -0
  305. package/dist/events.js +0 -0
  306. package/dist/field.d.ts +2 -0
  307. package/dist/field.js +101 -0
  308. package/dist/file-input.d.ts +2 -0
  309. package/dist/file-input.js +140 -0
  310. package/dist/forward-attributes.d.ts +2 -0
  311. package/dist/forward-attributes.js +22 -0
  312. package/dist/history.d.ts +2 -0
  313. package/dist/history.js +11 -0
  314. package/dist/hover-card.d.ts +2 -0
  315. package/dist/hover-card.js +31 -0
  316. package/dist/image-cropper.d.ts +2 -0
  317. package/dist/image-cropper.js +66 -0
  318. package/dist/index.d.ts +66 -0
  319. package/dist/index.js +269 -0
  320. package/dist/input.d.ts +3 -0
  321. package/dist/input.js +69 -0
  322. package/dist/label.d.ts +2 -0
  323. package/dist/label.js +11 -0
  324. package/dist/list.d.ts +40 -0
  325. package/dist/list.js +192 -0
  326. package/dist/listbox.d.ts +2 -0
  327. package/dist/listbox.js +84 -0
  328. package/dist/menu.d.ts +4 -0
  329. package/dist/menu.js +295 -0
  330. package/dist/menubar.d.ts +4 -0
  331. package/dist/menubar.js +30 -0
  332. package/dist/meter.d.ts +2 -0
  333. package/dist/meter.js +22 -0
  334. package/dist/navigation-menu.d.ts +2 -0
  335. package/dist/navigation-menu.js +114 -0
  336. package/dist/number-input.d.ts +2 -0
  337. package/dist/number-input.js +73 -0
  338. package/dist/observe.d.ts +2 -0
  339. package/dist/observe.js +7 -0
  340. package/dist/otp-input.d.ts +2 -0
  341. package/dist/otp-input.js +72 -0
  342. package/dist/overlays.d.ts +13 -0
  343. package/dist/overlays.js +156 -0
  344. package/dist/pagination.d.ts +2 -0
  345. package/dist/pagination.js +127 -0
  346. package/dist/password-input.d.ts +2 -0
  347. package/dist/password-input.js +57 -0
  348. package/dist/popover.d.ts +2 -0
  349. package/dist/popover.js +64 -0
  350. package/dist/popup.d.ts +40 -0
  351. package/dist/popup.js +112 -0
  352. package/dist/preferences.d.ts +2 -0
  353. package/dist/preferences.js +56 -0
  354. package/dist/progress.d.ts +2 -0
  355. package/dist/progress.js +22 -0
  356. package/dist/radio.d.ts +2 -0
  357. package/dist/radio.js +33 -0
  358. package/dist/rating.d.ts +2 -0
  359. package/dist/rating.js +64 -0
  360. package/dist/resizable.d.ts +2 -0
  361. package/dist/resizable.js +42 -0
  362. package/dist/scroll-area.d.ts +2 -0
  363. package/dist/scroll-area.js +45 -0
  364. package/dist/segmented-control.d.ts +2 -0
  365. package/dist/segmented-control.js +28 -0
  366. package/dist/select.d.ts +2 -0
  367. package/dist/select.js +239 -0
  368. package/dist/separator.d.ts +2 -0
  369. package/dist/separator.js +11 -0
  370. package/dist/slider.d.ts +2 -0
  371. package/dist/slider.js +77 -0
  372. package/dist/tabs.d.ts +2 -0
  373. package/dist/tabs.js +37 -0
  374. package/dist/timeline.d.ts +2 -0
  375. package/dist/timeline.js +27 -0
  376. package/dist/toast.d.ts +20 -0
  377. package/dist/toast.js +177 -0
  378. package/dist/toggle.d.ts +3 -0
  379. package/dist/toggle.js +64 -0
  380. package/dist/token-input.d.ts +2 -0
  381. package/dist/token-input.js +103 -0
  382. package/dist/toolbar.d.ts +2 -0
  383. package/dist/toolbar.js +36 -0
  384. package/dist/tooltip.d.ts +2 -0
  385. package/dist/tooltip.js +35 -0
  386. package/dist/tree.d.ts +2 -0
  387. package/dist/tree.js +147 -0
  388. package/dist/trigger-menu.d.ts +2 -0
  389. package/dist/trigger-menu.js +133 -0
  390. package/dist/waterfall.d.ts +2 -0
  391. package/dist/waterfall.js +140 -0
  392. package/docs/README.md +89 -0
  393. package/docs/agents.md +1523 -0
  394. package/docs/components/accordion.md +1401 -0
  395. package/docs/components/alert-dialog.md +788 -0
  396. package/docs/components/autocomplete.md +1692 -0
  397. package/docs/components/avatar.md +261 -0
  398. package/docs/components/button.md +441 -0
  399. package/docs/components/calendar.md +1536 -0
  400. package/docs/components/carousel.md +1055 -0
  401. package/docs/components/checkbox.md +1045 -0
  402. package/docs/components/collapsible.md +535 -0
  403. package/docs/components/color-picker.md +651 -0
  404. package/docs/components/combobox.md +3274 -0
  405. package/docs/components/command.md +1431 -0
  406. package/docs/components/date-input.md +563 -0
  407. package/docs/components/date-picker.md +1136 -0
  408. package/docs/components/dialog.md +1360 -0
  409. package/docs/components/drawer.md +1201 -0
  410. package/docs/components/field.md +519 -0
  411. package/docs/components/file-input.md +617 -0
  412. package/docs/components/hover-card.md +486 -0
  413. package/docs/components/image-cropper.md +489 -0
  414. package/docs/components/input.md +327 -0
  415. package/docs/components/label.md +208 -0
  416. package/docs/components/listbox.md +1015 -0
  417. package/docs/components/menu.md +1212 -0
  418. package/docs/components/menubar.md +460 -0
  419. package/docs/components/meter.md +298 -0
  420. package/docs/components/navigation-menu.md +1573 -0
  421. package/docs/components/number-input.md +1087 -0
  422. package/docs/components/otp-input.md +558 -0
  423. package/docs/components/pagination.md +639 -0
  424. package/docs/components/password-input.md +649 -0
  425. package/docs/components/popover.md +1433 -0
  426. package/docs/components/preferences.md +243 -0
  427. package/docs/components/progress.md +406 -0
  428. package/docs/components/radio.md +855 -0
  429. package/docs/components/rating.md +431 -0
  430. package/docs/components/resizable.md +866 -0
  431. package/docs/components/scroll-area.md +898 -0
  432. package/docs/components/segmented-control.md +421 -0
  433. package/docs/components/select.md +1957 -0
  434. package/docs/components/separator.md +238 -0
  435. package/docs/components/slider.md +1018 -0
  436. package/docs/components/switch.md +583 -0
  437. package/docs/components/tabs.md +948 -0
  438. package/docs/components/textarea.md +331 -0
  439. package/docs/components/time-input.md +235 -0
  440. package/docs/components/timeline.md +622 -0
  441. package/docs/components/toast.md +1223 -0
  442. package/docs/components/toggle.md +522 -0
  443. package/docs/components/token-input.md +854 -0
  444. package/docs/components/toolbar.md +815 -0
  445. package/docs/components/tooltip.md +860 -0
  446. package/docs/components/tree.md +1243 -0
  447. package/docs/components/trigger-menu.md +1110 -0
  448. package/docs/components/waterfall.md +709 -0
  449. package/docs/controllers.md +66 -0
  450. package/docs/core.md +8027 -0
  451. package/docs/custom-parts.md +91 -0
  452. package/docs/first-component.md +88 -0
  453. package/docs/forms.md +125 -0
  454. package/docs/installation.md +141 -0
  455. package/docs/introduction.md +32 -0
  456. package/docs/lists-and-menus.md +166 -0
  457. package/docs/llms.txt +1566 -0
  458. package/docs/parts-and-composition.md +57 -0
  459. package/docs/popups.md +92 -0
  460. package/docs/rendering.md +71 -0
  461. package/docs/server-rendering.md +118 -0
  462. package/docs/state-and-events.md +134 -0
  463. package/docs/styling-and-animation.md +104 -0
  464. package/docs/utilities/async-options.md +332 -0
  465. package/docs/utilities/shortcuts.md +184 -0
  466. package/html-custom-data.json +14792 -0
  467. package/package.json +302 -3
@@ -0,0 +1,460 @@
1
+ # Menubar
2
+
3
+ Move between an application’s menus with one tab stop.
4
+
5
+ Wrap a few [Menus](./menu.md) in a Menubar to connect their triggers. Tab enters the bar once; arrow keys move between menus, and pointing at another trigger switches an open menu.
6
+
7
+ ```ts title="demo.ts"
8
+ import "@ui-sdk/web/menubar"
9
+ import "@ui-sdk/web/menu"
10
+ import { Check, ChevronRight, createElement } from "lucide"
11
+ import { log } from "./log"
12
+
13
+ const recent = ["Q3 roadmap", "Launch checklist", "Offsite notes"]
14
+ const formats = ["PDF", "Markdown", "HTML"]
15
+ const appearances = ["Light", "Dark", "System"]
16
+
17
+ function mount(root: HTMLElement) {
18
+ const chevron = createElement(ChevronRight, {
19
+ "aria-hidden": "true",
20
+ }).outerHTML
21
+ const check = createElement(Check, { "aria-hidden": "true" }).outerHTML
22
+ root.innerHTML = `
23
+ <ui-menubar>
24
+ <ui-menu>
25
+ <ui-menu-trigger>
26
+ <button>File</button>
27
+ </ui-menu-trigger>
28
+ <ui-menu-content>
29
+ <ui-menu-item value="New document" shortcut="mod+n">New Document</ui-menu-item>
30
+ <ui-menu-item value="Open" shortcut="mod+o">Open…</ui-menu-item>
31
+ <ui-menu-sub>
32
+ <ui-menu-sub-trigger>
33
+ Open Recent
34
+ ${chevron}
35
+ </ui-menu-sub-trigger>
36
+ <ui-menu-sub-content>
37
+ ${recent.map((name) => `<ui-menu-item value="${name}">${name}</ui-menu-item>`).join("")}
38
+ </ui-menu-sub-content>
39
+ </ui-menu-sub>
40
+ <ui-menu-separator></ui-menu-separator>
41
+ <ui-menu-sub>
42
+ <ui-menu-sub-trigger>
43
+ Export
44
+ ${chevron}
45
+ </ui-menu-sub-trigger>
46
+ <ui-menu-sub-content>
47
+ ${formats.map((format) => `<ui-menu-item value="Export as ${format}">${format}</ui-menu-item>`).join("")}
48
+ </ui-menu-sub-content>
49
+ </ui-menu-sub>
50
+ <ui-menu-item value="Print" shortcut="mod+p">Print…</ui-menu-item>
51
+ </ui-menu-content>
52
+ </ui-menu>
53
+ <ui-menu>
54
+ <ui-menu-trigger>
55
+ <button>Edit</button>
56
+ </ui-menu-trigger>
57
+ <ui-menu-content>
58
+ <ui-menu-item value="Undo" shortcut="mod+z" disabled>Undo</ui-menu-item>
59
+ <ui-menu-item value="Redo" shortcut="mod+shift+z">Redo</ui-menu-item>
60
+ <ui-menu-separator></ui-menu-separator>
61
+ <ui-menu-item value="Cut" shortcut="mod+x">Cut</ui-menu-item>
62
+ <ui-menu-item value="Copy" shortcut="mod+c">Copy</ui-menu-item>
63
+ <ui-menu-item value="Paste" shortcut="mod+v">Paste</ui-menu-item>
64
+ <ui-menu-separator></ui-menu-separator>
65
+ <ui-menu-item value="Find" shortcut="mod+f">Find…</ui-menu-item>
66
+ </ui-menu-content>
67
+ </ui-menu>
68
+ <ui-menu>
69
+ <ui-menu-trigger>
70
+ <button>View</button>
71
+ </ui-menu-trigger>
72
+ <ui-menu-content>
73
+ <ui-menu-checkbox-item value="Ruler">
74
+ <ui-menu-item-indicator>${check}</ui-menu-item-indicator>
75
+ Show Ruler
76
+ </ui-menu-checkbox-item>
77
+ <ui-menu-checkbox-item value="Word count" default-checked>
78
+ <ui-menu-item-indicator>${check}</ui-menu-item-indicator>
79
+ Show Word Count
80
+ </ui-menu-checkbox-item>
81
+ <ui-menu-separator></ui-menu-separator>
82
+ <ui-menu-radio-group default-value="System">
83
+ <ui-menu-group-label>Appearance</ui-menu-group-label>
84
+ ${appearances
85
+ .map(
86
+ (appearance) => `
87
+ <ui-menu-radio-item value="${appearance}">
88
+ <ui-menu-item-indicator></ui-menu-item-indicator>
89
+ ${appearance}
90
+ </ui-menu-radio-item>`
91
+ )
92
+ .join("")}
93
+ </ui-menu-radio-group>
94
+ </ui-menu-content>
95
+ </ui-menu>
96
+ </ui-menubar>
97
+ `
98
+ const [file, edit] = root.querySelectorAll("ui-menu")
99
+ for (const menu of [file, edit]) {
100
+ menu.addEventListener("action", (event) =>
101
+ log(root, `Chose ${event.detail.value}`)
102
+ )
103
+ }
104
+ for (const item of root.querySelectorAll("ui-menu-checkbox-item")) {
105
+ item.addEventListener("checkedchange", (event) => {
106
+ log(root, `${item.value} ${event.detail.value ? "on" : "off"}`)
107
+ })
108
+ }
109
+ root
110
+ .querySelector("ui-menu-radio-group")!
111
+ .addEventListener("valuechange", (event) =>
112
+ log(root, `${event.detail.value} appearance`)
113
+ )
114
+ }
115
+
116
+ export { mount }
117
+ ```
118
+
119
+ Tab into the bar and use Left and Right to choose a menu, or point at another trigger once one is open. File has submenus, Edit has shortcuts, and View has checkboxes and an appearance choice. The console logs each one.
120
+
121
+ ## Installation
122
+
123
+ ```bash
124
+ npm install @ui-sdk/web @ui-sdk/core
125
+ ```
126
+
127
+ ## Composition
128
+
129
+ Use the following composition to build a `ui-menubar`:
130
+
131
+ ```text
132
+ ui-menubar
133
+ ├── ui-menu
134
+ │ ├── ui-menu-trigger
135
+ │ │ └── button
136
+ │ └── ui-menu-content
137
+ │ ├── ui-menu-item
138
+ │ └── ui-menu-item
139
+ └── ui-menu
140
+ ├── ui-menu-trigger
141
+ │ └── button
142
+ └── ui-menu-content
143
+ ├── ui-menu-item
144
+ └── ui-menu-item
145
+ ```
146
+
147
+ Each Menu joins its surrounding Menubar automatically. There are no separate menubar trigger or item components. Name the bar with `aria-label` when people need to distinguish it from another one.
148
+
149
+ ## Usage
150
+
151
+ Import the parts and put them together:
152
+
153
+ ```html
154
+ <script type="module">
155
+ import "@ui-sdk/web/menubar"
156
+ import "@ui-sdk/web/menu"
157
+ </script>
158
+
159
+ <ui-menubar aria-label="Application">
160
+ <ui-menu>
161
+ <ui-menu-trigger>
162
+ <button>File</button>
163
+ </ui-menu-trigger>
164
+ <ui-menu-content>
165
+ <ui-menu-item>New file</ui-menu-item>
166
+ <ui-menu-item>Open file</ui-menu-item>
167
+ </ui-menu-content>
168
+ </ui-menu>
169
+ <ui-menu>
170
+ <ui-menu-trigger>
171
+ <button>Edit</button>
172
+ </ui-menu-trigger>
173
+ <ui-menu-content>
174
+ <ui-menu-item>Undo</ui-menu-item>
175
+ <ui-menu-item>Redo</ui-menu-item>
176
+ </ui-menu-content>
177
+ </ui-menu>
178
+ </ui-menubar>
179
+ ```
180
+
181
+ ## Submenu
182
+
183
+ A submenu still uses Menu’s Sub, SubTrigger, and SubContent. The arrow toward it enters that level. On an ordinary item, the same arrow can move to the next top-level menu instead.
184
+
185
+ ```ts title="submenu.ts"
186
+ import "@ui-sdk/web/menubar"
187
+ import "@ui-sdk/web/menu"
188
+ import { ChevronRight, createElement } from "lucide"
189
+
190
+ function mount(root: HTMLElement) {
191
+ root.innerHTML = `
192
+ <ui-menubar>
193
+ <ui-menu>
194
+ <ui-menu-trigger>
195
+ <button>File</button>
196
+ </ui-menu-trigger>
197
+ <ui-menu-content>
198
+ <ui-menu-item>New File</ui-menu-item>
199
+ <ui-menu-sub>
200
+ <ui-menu-sub-trigger>
201
+ Share
202
+ ${createElement(ChevronRight, { "aria-hidden": "true" }).outerHTML}
203
+ </ui-menu-sub-trigger>
204
+ <ui-menu-sub-content>
205
+ <ui-menu-item>Email link</ui-menu-item>
206
+ <ui-menu-item>Messages</ui-menu-item>
207
+ </ui-menu-sub-content>
208
+ </ui-menu-sub>
209
+ </ui-menu-content>
210
+ </ui-menu>
211
+ <ui-menu>
212
+ <ui-menu-trigger>
213
+ <button>Edit</button>
214
+ </ui-menu-trigger>
215
+ <ui-menu-content>
216
+ <ui-menu-item>Undo</ui-menu-item>
217
+ <ui-menu-sub>
218
+ <ui-menu-sub-trigger>
219
+ Find
220
+ ${createElement(ChevronRight, { "aria-hidden": "true" }).outerHTML}
221
+ </ui-menu-sub-trigger>
222
+ <ui-menu-sub-content>
223
+ <ui-menu-item>Find…</ui-menu-item>
224
+ <ui-menu-item>Find Next</ui-menu-item>
225
+ </ui-menu-sub-content>
226
+ </ui-menu-sub>
227
+ </ui-menu-content>
228
+ </ui-menu>
229
+ </ui-menubar>
230
+ `
231
+ }
232
+
233
+ export { mount }
234
+ ```
235
+
236
+ Open File and enter Share with the arrow key. Go back to File, then move to Edit without leaving the menubar.
237
+
238
+ ## Vertical
239
+
240
+ Set `orientation="vertical"` to move between triggers with Up and Down. The arrow toward the popup opens it; the arrow back closes it and returns to the trigger.
241
+
242
+ ```ts title="vertical.ts"
243
+ import "@ui-sdk/web/menubar"
244
+ import "@ui-sdk/web/menu"
245
+
246
+ function mount(root: HTMLElement) {
247
+ root.innerHTML = `
248
+ <ui-menubar orientation="vertical">
249
+ ${["Inbox", "Drafts", "Archive"]
250
+ .map(
251
+ (label) => `
252
+ <ui-menu>
253
+ <ui-menu-trigger>
254
+ <button>${label}</button>
255
+ </ui-menu-trigger>
256
+ <ui-menu-content>
257
+ <ui-menu-item>Open ${label}</ui-menu-item>
258
+ <ui-menu-item>Mark all as read</ui-menu-item>
259
+ </ui-menu-content>
260
+ </ui-menu>
261
+ `
262
+ )
263
+ .join("")}
264
+ </ui-menubar>
265
+ `
266
+ }
267
+
268
+ export { mount }
269
+ ```
270
+
271
+ Use Up and Down to choose Inbox, Drafts, or Archive. Right opens its menu in left-to-right text; Left returns to its trigger.
272
+
273
+ ## Menus as Data
274
+
275
+ Each Menu can take `items` and register its shortcuts while closed. The [Menu data example](./menu.md#menus-as-data) explains the item shapes and callbacks.
276
+
277
+ ```html
278
+ <ui-menubar>
279
+ <ui-menu>
280
+ <ui-menu-trigger>
281
+ <button>File</button>
282
+ </ui-menu-trigger>
283
+ </ui-menu>
284
+ </ui-menubar>
285
+
286
+ <script type="module">
287
+ const file = [
288
+ { value: "new", label: "New File", shortcut: "mod+alt+n" },
289
+ { value: "open", label: "Open…" },
290
+ { type: "separator" },
291
+ {
292
+ type: "submenu",
293
+ label: "Share",
294
+ items: [{ value: "email", label: "Email link" }],
295
+ },
296
+ ]
297
+
298
+ const menu = document.querySelector("ui-menu")
299
+ menu.items = file
300
+ menu.addEventListener("action", (event) => run(event.detail.value))
301
+ </script>
302
+ ```
303
+
304
+ ## Disabled
305
+
306
+ A disabled trigger stays focusable with `aria-disabled`, so people can discover it, but cannot open its menu. Set `disabled` on the bar to disable all its triggers while preserving the tab stop.
307
+
308
+ ```html
309
+ <ui-menubar>
310
+ <ui-menu>
311
+ <ui-menu-trigger disabled>
312
+ <button>Share</button>
313
+ </ui-menu-trigger>
314
+ <ui-menu-content></ui-menu-content>
315
+ </ui-menu>
316
+ </ui-menubar>
317
+
318
+ <ui-menubar disabled></ui-menubar>
319
+ ```
320
+
321
+ ## Modal
322
+
323
+ The bar supplies `modal` to menus that do not set their own value. The default, `"pointer"`, consumes an outside press while closing. With `true`, the page also becomes inert and stops scrolling, but the menubar stays usable so you can switch menus.
324
+
325
+ ```html
326
+ <ui-menubar modal="true"></ui-menubar>
327
+ ```
328
+
329
+ ## Loop
330
+
331
+ Arrow keys wrap between triggers and open menus by default. Set `loop="false"` to stop at the ends.
332
+
333
+ ```html
334
+ <ui-menubar loop="false"></ui-menubar>
335
+ ```
336
+
337
+ ## Controller
338
+
339
+ Use the element’s `api`. `focus()` moves focus to the bar; `close()` closes its active menu. Each menu still owns its own open state and controller. Connect a shortcut like Alt+M to `focus()`, like an application command that moves focus into its menus.
340
+
341
+ ```html
342
+ <ui-menubar aria-label="Application">
343
+ <ui-menu>…</ui-menu>
344
+ </ui-menubar>
345
+ <button type="button">Focus Menubar</button>
346
+ ```
347
+
348
+ ```ts
349
+ import { registerShortcut } from "@ui-sdk/web"
350
+
351
+ const menubar = document.querySelector("ui-menubar")!.api
352
+ registerShortcut("alt+m", () => menubar.focus())
353
+ document
354
+ .querySelector("button")!
355
+ .addEventListener("click", () => menubar.focus())
356
+ ```
357
+
358
+ ## Shared Menu Features
359
+
360
+ [Checkboxes](./menu.md#checkboxes), [radio groups](./menu.md#radio-group), [icons](./menu.md#icons), [shortcuts](./menu.md#shortcuts), and [links](./menu.md#links-and-custom-rendering) work as they do in Menu. The first example combines settings and actions in one bar. Menus inside a menubar always use the popover presentation.
361
+
362
+ ## Styling
363
+
364
+ The bar gets `data-open` while any menu is open; a trigger gets it only for its own menu. Use `data-orientation` for row or column layout. Style the popups and their items through the same [Menu attributes and CSS variables](./menu.md#styling).
365
+
366
+ Each part has a `data-slot`, such as `menubar`, and its state attributes are listed under [Data Attributes](#data-attributes).
367
+
368
+ ## Data Attributes
369
+
370
+ ### `<ui-menubar>`
371
+ `[data-slot="menubar"]`
372
+
373
+ - `data-orientation` (`horizontal`, `vertical`): Which arrow keys move between menus.
374
+ - `data-disabled`: Present when the whole menubar is disabled.
375
+ - `data-open`: Present while one of its menus is open.
376
+
377
+ ## API Reference
378
+
379
+ Props are attributes in kebab case. `"false"` is false, as in `loop="false"`. The element's `api` property is its controller.
380
+
381
+ ### Menubar
382
+
383
+ - `orientation?` (`MenubarOrientation`): Which arrow keys move between menus: left and right, or up and down. A vertical menubar opens its menus to the side.
384
+ - `loop?` (`boolean`): Whether arrow keys wrap from the last menu to the first, between triggers and between open menus.
385
+ - `disabled?` (`boolean`): Stops every menu from opening. Triggers stay focusable with `aria-disabled`, so the menubar keeps its tab stop and stays discoverable.
386
+ - `modal?` (`"pointer" | boolean`): The `modal` setting of every menu in the menubar that doesn't set its own. `"pointer"`: an outside press only closes the open menu. `true`: also locks scroll, traps focus and makes the rest of the page inert, except the menubar. `false`: outside presses reach what they hit.
387
+ - `controller?` (`{ focus: () => void; isOpen: () => boolean; close: (options?: ChangeOptions<MenuOpenChangeReason>) => boolean; }`): Opens, closes and focuses the menubar from anywhere. Create one with `createMenubarController()`.
388
+ - `debug?` (`boolean`): Logs every state change with its reason to the console, in development builds.
389
+
390
+ Menus, items and their icons take the props on the Menu page, like [`MenuItemIcon`](./menu.md#menuitemicon).
391
+
392
+ ### State
393
+
394
+ - `orientation` (`MenubarOrientation`): Which arrow keys move between menus, from the `orientation` option. A vertical menubar opens its menus to the side.
395
+ - `disabled` (`boolean`): Whether the whole menubar is disabled.
396
+ - `open` (`boolean`): Whether one of its menus is open.
397
+ - `modal` (`boolean | "pointer"`): The modal setting its menus inherit.
398
+
399
+ ### Reasons
400
+
401
+ A menu that another menu in the menubar takes over closes with `submenu-switch`, one opened by pointing at its trigger opens with `trigger-hover`, and one opened with an arrow key opens with `trigger-press`. See [Menu](./menu.md#reasons) for every reason.
402
+
403
+ ### Controller
404
+
405
+ - `focus()` (`() => void`): Moves focus to the trigger that holds the menubar's tab stop: the one used last, or the first.
406
+ - `isOpen()` (`() => boolean`): Whether one of its menus is open.
407
+ - `close(options?)` (`(options?: ChangeOptions<MenuOpenChangeReason> | undefined) => boolean`): Closes the open menu, if any, and its submenus. Returns false when the close was canceled or it was already closed.
408
+
409
+ ## Accessibility
410
+
411
+ The menubar follows the [WAI-ARIA menubar pattern](https://www.w3.org/WAI/ARIA/apg/patterns/menubar/).
412
+
413
+ ### Keyboard
414
+
415
+ Tab first lands on the first trigger, then remembers the last one used. While a menu is open, moving the pointer onto another enabled trigger opens its menu, unless the pointer is only passing over it on the way into the open menu. Pressing that trigger keeps it open. Moving to a disabled trigger closes the current menu without opening another.
416
+
417
+ | Key | On a Trigger | In an Open Menu |
418
+ | --------------- | ------------------------- | ------------------------------------------------ |
419
+ | Left / Right | Previous or next trigger. | Previous or next menu, or enter/leave a submenu. |
420
+ | Down | Open at the first item. | Next item. |
421
+ | Up | Open at the last item. | Previous item. |
422
+ | Enter / Space | Open at the first item. | Choose the focused item. |
423
+ | Home / End | First or last trigger. | First or last item. |
424
+ | A letter | Find a trigger by name. | Find an item by name. |
425
+ | Escape | — | Close and return to the trigger. |
426
+ | Tab / Shift+Tab | Leave the bar. | Close and leave the bar. |
427
+
428
+ These directions describe a horizontal bar in left-to-right text. Right-to-left text reverses the horizontal keys and submenu side; vertical bars use Up and Down between triggers.
429
+
430
+ ### Tested Behavior
431
+
432
+ Every line below is an automated test.
433
+
434
+ - The menubar is named, and its triggers are menu items that open menus.
435
+ - The menubar is one tab stop, on its first trigger.
436
+ - Left and Right move between triggers, and Home goes to the first.
437
+ - Tab comes back to the trigger used last.
438
+ - ArrowDown opens a menu and focuses its first item.
439
+ - Enter opens a menu and focuses its first item.
440
+ - Space opens a menu and focuses its first item.
441
+ - Escape closes the menu and focuses its trigger.
442
+ - Tab in an open menu closes it and moves past the menubar.
443
+ - A press opens a menu, and a press on its trigger closes it.
444
+ - While a menu is open, pointing at another trigger opens its menu instead.
445
+ - Crossing another trigger on the way to the open menu keeps the menu.
446
+ - Resting on another trigger on the way to the open menu switches to it.
447
+ - While a menu is open, pointing at a disabled trigger closes it and opens nothing.
448
+ - After pointing at a disabled trigger, pointing at another trigger opens its menu.
449
+ - Pointing at a trigger while every menu is closed opens nothing.
450
+ - A press outside closes the open menu.
451
+ - Choosing an item runs it, closes the menu and focuses its trigger.
452
+ - Checkbox and radio items work in a menubar's menus.
453
+ - A disabled item in a menubar's menu is focusable and does nothing.
454
+ - With loop off, arrows stop at the ends.
455
+
456
+ **Vertical**
457
+
458
+ - Up and Down move between triggers, and Right opens a menu to the side.
459
+
460
+ Runs in React, Vue and web components.