@adia-ai/web-components 0.0.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 (468) hide show
  1. package/README.md +195 -0
  2. package/a2ui/dockables/action.js +152 -0
  3. package/a2ui/dockables/base.js +30 -0
  4. package/a2ui/dockables/controller.js +97 -0
  5. package/a2ui/dockables/data-source.js +103 -0
  6. package/a2ui/dockables/index.js +6 -0
  7. package/a2ui/dockables/lifecycle.js +84 -0
  8. package/a2ui/dockables/provider.js +59 -0
  9. package/a2ui/index.js +19 -0
  10. package/a2ui/manifest-runtime.js +226 -0
  11. package/a2ui/registry.js +200 -0
  12. package/a2ui/renderer.js +361 -0
  13. package/a2ui/root.js +152 -0
  14. package/a2ui/stream.js +243 -0
  15. package/a2ui/surface-manifest.js +294 -0
  16. package/a2ui/surface.js +222 -0
  17. package/a2ui/wire-factory.js +134 -0
  18. package/a2ui/wiring-engine.js +209 -0
  19. package/a2ui/wiring-registry.js +342 -0
  20. package/components/accordion/accordion.a2ui.json +129 -0
  21. package/components/accordion/accordion.css +133 -0
  22. package/components/accordion/accordion.js +125 -0
  23. package/components/accordion/accordion.yaml +527 -0
  24. package/components/action-list/action-list.a2ui.json +64 -0
  25. package/components/action-list/action-list.css +115 -0
  26. package/components/action-list/action-list.js +149 -0
  27. package/components/action-list/action-list.yaml +56 -0
  28. package/components/agent-artifact/agent-artifact.a2ui.json +99 -0
  29. package/components/agent-artifact/agent-artifact.css +94 -0
  30. package/components/agent-artifact/agent-artifact.js +169 -0
  31. package/components/agent-artifact/agent-artifact.yaml +71 -0
  32. package/components/agent-feedback-bar/agent-feedback-bar.a2ui.json +91 -0
  33. package/components/agent-feedback-bar/agent-feedback-bar.css +33 -0
  34. package/components/agent-feedback-bar/agent-feedback-bar.js +152 -0
  35. package/components/agent-feedback-bar/agent-feedback-bar.yaml +65 -0
  36. package/components/agent-questions/agent-questions.a2ui.json +89 -0
  37. package/components/agent-questions/agent-questions.css +146 -0
  38. package/components/agent-questions/agent-questions.js +189 -0
  39. package/components/agent-questions/agent-questions.yaml +63 -0
  40. package/components/agent-reasoning/agent-reasoning.a2ui.json +100 -0
  41. package/components/agent-reasoning/agent-reasoning.css +273 -0
  42. package/components/agent-reasoning/agent-reasoning.js +469 -0
  43. package/components/agent-reasoning/agent-reasoning.yaml +70 -0
  44. package/components/agent-suggestions/agent-suggestions.a2ui.json +87 -0
  45. package/components/agent-suggestions/agent-suggestions.css +18 -0
  46. package/components/agent-suggestions/agent-suggestions.js +87 -0
  47. package/components/agent-suggestions/agent-suggestions.yaml +59 -0
  48. package/components/agent-trace/agent-trace.a2ui.json +78 -0
  49. package/components/agent-trace/agent-trace.css +275 -0
  50. package/components/agent-trace/agent-trace.js +216 -0
  51. package/components/agent-trace/agent-trace.yaml +53 -0
  52. package/components/alert/alert.a2ui.json +211 -0
  53. package/components/alert/alert.css +88 -0
  54. package/components/alert/alert.js +96 -0
  55. package/components/alert/alert.yaml +205 -0
  56. package/components/avatar/avatar.a2ui.json +215 -0
  57. package/components/avatar/avatar.css +159 -0
  58. package/components/avatar/avatar.js +157 -0
  59. package/components/avatar/avatar.yaml +559 -0
  60. package/components/badge/badge.a2ui.json +169 -0
  61. package/components/badge/badge.css +78 -0
  62. package/components/badge/badge.js +53 -0
  63. package/components/badge/badge.yaml +612 -0
  64. package/components/block/block.a2ui.json +135 -0
  65. package/components/block/block.css +29 -0
  66. package/components/block/block.js +23 -0
  67. package/components/block/block.yaml +115 -0
  68. package/components/breadcrumb/breadcrumb.a2ui.json +86 -0
  69. package/components/breadcrumb/breadcrumb.css +78 -0
  70. package/components/breadcrumb/breadcrumb.js +44 -0
  71. package/components/breadcrumb/breadcrumb.yaml +84 -0
  72. package/components/button/button.a2ui.json +172 -0
  73. package/components/button/button.css +168 -0
  74. package/components/button/button.js +60 -0
  75. package/components/button/button.yaml +120 -0
  76. package/components/calendar-picker/calendar-picker.a2ui.json +139 -0
  77. package/components/calendar-picker/calendar-picker.css +321 -0
  78. package/components/calendar-picker/calendar-picker.js +324 -0
  79. package/components/calendar-picker/calendar-picker.yaml +243 -0
  80. package/components/canvas/canvas.a2ui.json +75 -0
  81. package/components/canvas/canvas.css +52 -0
  82. package/components/canvas/canvas.js +179 -0
  83. package/components/canvas/canvas.yaml +62 -0
  84. package/components/card/card.a2ui.json +276 -0
  85. package/components/card/card.css +362 -0
  86. package/components/card/card.js +58 -0
  87. package/components/card/card.yaml +527 -0
  88. package/components/chart/chart.a2ui.json +298 -0
  89. package/components/chart/chart.css +512 -0
  90. package/components/chart/chart.js +1075 -0
  91. package/components/chart/chart.yaml +540 -0
  92. package/components/chat/chat-input.css +141 -0
  93. package/components/chat/chat-input.js +242 -0
  94. package/components/chat/chat.a2ui.json +181 -0
  95. package/components/chat/chat.css +193 -0
  96. package/components/chat/chat.js +155 -0
  97. package/components/chat/chat.yaml +230 -0
  98. package/components/check/check.a2ui.json +134 -0
  99. package/components/check/check.css +126 -0
  100. package/components/check/check.js +58 -0
  101. package/components/check/check.yaml +109 -0
  102. package/components/code/code.a2ui.json +153 -0
  103. package/components/code/code.css +133 -0
  104. package/components/code/code.js +114 -0
  105. package/components/code/code.yaml +163 -0
  106. package/components/col/col.a2ui.json +104 -0
  107. package/components/col/col.css +36 -0
  108. package/components/col/col.js +19 -0
  109. package/components/col/col.yaml +364 -0
  110. package/components/color-picker/color-picker.a2ui.json +100 -0
  111. package/components/color-picker/color-picker.css +182 -0
  112. package/components/color-picker/color-picker.js +537 -0
  113. package/components/color-picker/color-picker.yaml +105 -0
  114. package/components/command/command.a2ui.json +221 -0
  115. package/components/command/command.css +251 -0
  116. package/components/command/command.js +284 -0
  117. package/components/command/command.yaml +186 -0
  118. package/components/description-list/description-list.a2ui.json +89 -0
  119. package/components/description-list/description-list.css +70 -0
  120. package/components/description-list/description-list.js +75 -0
  121. package/components/description-list/description-list.yaml +59 -0
  122. package/components/divider/divider.a2ui.json +126 -0
  123. package/components/divider/divider.css +102 -0
  124. package/components/divider/divider.js +47 -0
  125. package/components/divider/divider.yaml +366 -0
  126. package/components/drawer/drawer.a2ui.json +199 -0
  127. package/components/drawer/drawer.css +342 -0
  128. package/components/drawer/drawer.js +263 -0
  129. package/components/drawer/drawer.yaml +366 -0
  130. package/components/embed/embed.a2ui.json +150 -0
  131. package/components/embed/embed.css +28 -0
  132. package/components/embed/embed.js +63 -0
  133. package/components/embed/embed.yaml +224 -0
  134. package/components/empty-state/empty-state.a2ui.json +133 -0
  135. package/components/empty-state/empty-state.css +58 -0
  136. package/components/empty-state/empty-state.js +87 -0
  137. package/components/empty-state/empty-state.yaml +314 -0
  138. package/components/footer/footer.a2ui.json +79 -0
  139. package/components/footer/footer.yaml +239 -0
  140. package/components/grid/grid.a2ui.json +171 -0
  141. package/components/grid/grid.css +37 -0
  142. package/components/grid/grid.js +21 -0
  143. package/components/grid/grid.yaml +577 -0
  144. package/components/header/header.a2ui.json +76 -0
  145. package/components/header/header.yaml +336 -0
  146. package/components/heatmap/heatmap.a2ui.json +150 -0
  147. package/components/heatmap/heatmap.css +146 -0
  148. package/components/heatmap/heatmap.js +246 -0
  149. package/components/heatmap/heatmap.yaml +131 -0
  150. package/components/icon/icon.a2ui.json +79 -0
  151. package/components/icon/icon.css +20 -0
  152. package/components/icon/icon.js +26 -0
  153. package/components/icon/icon.yaml +233 -0
  154. package/components/image/image.a2ui.json +261 -0
  155. package/components/image/image.css +76 -0
  156. package/components/image/image.js +102 -0
  157. package/components/image/image.yaml +477 -0
  158. package/components/index.js +85 -0
  159. package/components/input/input.a2ui.json +284 -0
  160. package/components/input/input.css +162 -0
  161. package/components/input/input.js +148 -0
  162. package/components/input/input.yaml +496 -0
  163. package/components/inspector/inspector.a2ui.json +67 -0
  164. package/components/inspector/inspector.css +31 -0
  165. package/components/inspector/inspector.js +133 -0
  166. package/components/inspector/inspector.yaml +58 -0
  167. package/components/kbd/kbd.a2ui.json +96 -0
  168. package/components/kbd/kbd.css +62 -0
  169. package/components/kbd/kbd.js +24 -0
  170. package/components/kbd/kbd.yaml +213 -0
  171. package/components/list/list.a2ui.json +145 -0
  172. package/components/list/list.css +103 -0
  173. package/components/list/list.js +236 -0
  174. package/components/list/list.yaml +122 -0
  175. package/components/menu/menu.a2ui.json +146 -0
  176. package/components/menu/menu.css +146 -0
  177. package/components/menu/menu.js +296 -0
  178. package/components/menu/menu.yaml +123 -0
  179. package/components/modal/modal.a2ui.json +136 -0
  180. package/components/modal/modal.css +153 -0
  181. package/components/modal/modal.js +181 -0
  182. package/components/modal/modal.yaml +114 -0
  183. package/components/noodles/noodles.a2ui.json +145 -0
  184. package/components/noodles/noodles.css +118 -0
  185. package/components/noodles/noodles.js +470 -0
  186. package/components/noodles/noodles.yaml +123 -0
  187. package/components/otp-input/otp-input.a2ui.json +104 -0
  188. package/components/otp-input/otp-input.css +78 -0
  189. package/components/otp-input/otp-input.js +170 -0
  190. package/components/otp-input/otp-input.yaml +218 -0
  191. package/components/pagination/pagination.a2ui.json +122 -0
  192. package/components/pagination/pagination.css +162 -0
  193. package/components/pagination/pagination.js +185 -0
  194. package/components/pagination/pagination.yaml +165 -0
  195. package/components/pane/pane.a2ui.json +94 -0
  196. package/components/pane/pane.css +166 -0
  197. package/components/pane/pane.js +140 -0
  198. package/components/pane/pane.yaml +197 -0
  199. package/components/pipeline-status/pipeline-status.a2ui.json +90 -0
  200. package/components/pipeline-status/pipeline-status.css +162 -0
  201. package/components/pipeline-status/pipeline-status.js +176 -0
  202. package/components/pipeline-status/pipeline-status.yaml +99 -0
  203. package/components/popover/popover.a2ui.json +181 -0
  204. package/components/popover/popover.css +57 -0
  205. package/components/popover/popover.js +170 -0
  206. package/components/popover/popover.yaml +257 -0
  207. package/components/progress/progress.a2ui.json +199 -0
  208. package/components/progress/progress.css +88 -0
  209. package/components/progress/progress.js +64 -0
  210. package/components/progress/progress.yaml +342 -0
  211. package/components/progress-row/progress-row.a2ui.json +100 -0
  212. package/components/progress-row/progress-row.css +57 -0
  213. package/components/progress-row/progress-row.js +92 -0
  214. package/components/progress-row/progress-row.yaml +87 -0
  215. package/components/radio/radio.a2ui.json +232 -0
  216. package/components/radio/radio.css +102 -0
  217. package/components/radio/radio.js +73 -0
  218. package/components/radio/radio.yaml +248 -0
  219. package/components/range/range.a2ui.json +151 -0
  220. package/components/range/range.css +148 -0
  221. package/components/range/range.js +177 -0
  222. package/components/range/range.yaml +188 -0
  223. package/components/rating/rating.a2ui.json +105 -0
  224. package/components/rating/rating.css +92 -0
  225. package/components/rating/rating.js +138 -0
  226. package/components/rating/rating.yaml +74 -0
  227. package/components/richtext/richtext.a2ui.json +82 -0
  228. package/components/richtext/richtext.css +225 -0
  229. package/components/richtext/richtext.js +74 -0
  230. package/components/richtext/richtext.yaml +89 -0
  231. package/components/row/row.a2ui.json +102 -0
  232. package/components/row/row.css +51 -0
  233. package/components/row/row.js +39 -0
  234. package/components/row/row.yaml +358 -0
  235. package/components/search/search.a2ui.json +186 -0
  236. package/components/search/search.css +28 -0
  237. package/components/search/search.js +124 -0
  238. package/components/search/search.yaml +154 -0
  239. package/components/section/section.a2ui.json +78 -0
  240. package/components/section/section.yaml +338 -0
  241. package/components/segment/segment.a2ui.json +100 -0
  242. package/components/segment/segment.css +81 -0
  243. package/components/segment/segment.js +32 -0
  244. package/components/segment/segment.yaml +216 -0
  245. package/components/segmented/segmented.a2ui.json +106 -0
  246. package/components/segmented/segmented.css +67 -0
  247. package/components/segmented/segmented.js +149 -0
  248. package/components/segmented/segmented.yaml +91 -0
  249. package/components/select/select.a2ui.json +203 -0
  250. package/components/select/select.css +277 -0
  251. package/components/select/select.js +388 -0
  252. package/components/select/select.yaml +375 -0
  253. package/components/skeleton/skeleton.a2ui.json +120 -0
  254. package/components/skeleton/skeleton.css +47 -0
  255. package/components/skeleton/skeleton.js +43 -0
  256. package/components/skeleton/skeleton.yaml +153 -0
  257. package/components/slider/slider.a2ui.json +162 -0
  258. package/components/slider/slider.css +137 -0
  259. package/components/slider/slider.js +162 -0
  260. package/components/slider/slider.yaml +299 -0
  261. package/components/stack/stack.a2ui.json +62 -0
  262. package/components/stack/stack.css +28 -0
  263. package/components/stack/stack.js +18 -0
  264. package/components/stack/stack.yaml +54 -0
  265. package/components/stat/stat.a2ui.json +246 -0
  266. package/components/stat/stat.css +101 -0
  267. package/components/stat/stat.js +91 -0
  268. package/components/stat/stat.yaml +206 -0
  269. package/components/stepper/stepper.a2ui.json +77 -0
  270. package/components/stepper/stepper.css +243 -0
  271. package/components/stepper/stepper.js +118 -0
  272. package/components/stepper/stepper.yaml +73 -0
  273. package/components/stream/stream.a2ui.json +98 -0
  274. package/components/stream/stream.css +37 -0
  275. package/components/stream/stream.js +99 -0
  276. package/components/stream/stream.yaml +87 -0
  277. package/components/swiper/swiper.a2ui.json +140 -0
  278. package/components/swiper/swiper.css +267 -0
  279. package/components/swiper/swiper.js +285 -0
  280. package/components/swiper/swiper.yaml +268 -0
  281. package/components/switch/switch.a2ui.json +134 -0
  282. package/components/switch/switch.css +104 -0
  283. package/components/switch/switch.js +53 -0
  284. package/components/switch/switch.yaml +322 -0
  285. package/components/table/cell-types.js +296 -0
  286. package/components/table/table.a2ui.json +458 -0
  287. package/components/table/table.css +531 -0
  288. package/components/table/table.js +1392 -0
  289. package/components/table/table.yaml +528 -0
  290. package/components/tabs/tab.js +34 -0
  291. package/components/tabs/tabs.a2ui.json +174 -0
  292. package/components/tabs/tabs.css +162 -0
  293. package/components/tabs/tabs.js +226 -0
  294. package/components/tabs/tabs.yaml +255 -0
  295. package/components/tag/tag.a2ui.json +148 -0
  296. package/components/tag/tag.css +118 -0
  297. package/components/tag/tag.js +88 -0
  298. package/components/tag/tag.yaml +125 -0
  299. package/components/text/text.a2ui.json +99 -0
  300. package/components/text/text.css +65 -0
  301. package/components/text/text.js +35 -0
  302. package/components/text/text.yaml +360 -0
  303. package/components/textarea/textarea.a2ui.json +91 -0
  304. package/components/textarea/textarea.css +93 -0
  305. package/components/textarea/textarea.js +114 -0
  306. package/components/textarea/textarea.yaml +79 -0
  307. package/components/timeline/timeline.a2ui.json +82 -0
  308. package/components/timeline/timeline.css +389 -0
  309. package/components/timeline/timeline.js +171 -0
  310. package/components/timeline/timeline.yaml +185 -0
  311. package/components/toast/toast.a2ui.json +199 -0
  312. package/components/toast/toast.css +211 -0
  313. package/components/toast/toast.js +146 -0
  314. package/components/toast/toast.yaml +184 -0
  315. package/components/toggle-group/toggle-group.a2ui.json +126 -0
  316. package/components/toggle-group/toggle-group.css +102 -0
  317. package/components/toggle-group/toggle-group.js +147 -0
  318. package/components/toggle-group/toggle-group.yaml +98 -0
  319. package/components/toolbar/toolbar.a2ui.json +131 -0
  320. package/components/toolbar/toolbar.css +132 -0
  321. package/components/toolbar/toolbar.js +366 -0
  322. package/components/toolbar/toolbar.yaml +238 -0
  323. package/components/tooltip/tooltip.a2ui.json +148 -0
  324. package/components/tooltip/tooltip.css +39 -0
  325. package/components/tooltip/tooltip.js +96 -0
  326. package/components/tooltip/tooltip.yaml +201 -0
  327. package/components/tree/tree.a2ui.json +119 -0
  328. package/components/tree/tree.css +133 -0
  329. package/components/tree/tree.js +253 -0
  330. package/components/tree/tree.yaml +92 -0
  331. package/components/upload/upload.a2ui.json +185 -0
  332. package/components/upload/upload.css +115 -0
  333. package/components/upload/upload.js +189 -0
  334. package/components/upload/upload.yaml +302 -0
  335. package/core/anchor.js +187 -0
  336. package/core/controller.js +182 -0
  337. package/core/element.js +257 -0
  338. package/core/form.js +217 -0
  339. package/core/icons.js +180 -0
  340. package/core/markdown.js +95 -0
  341. package/core/polyfills.js +23 -0
  342. package/core/provider.js +262 -0
  343. package/core/signals.js +113 -0
  344. package/core/template.js +226 -0
  345. package/core/transport.js +77 -0
  346. package/package.json +38 -0
  347. package/patterns/adia-chat/adia-chat.a2ui.json +149 -0
  348. package/patterns/adia-chat/adia-chat.css +10 -0
  349. package/patterns/adia-chat/adia-chat.js +297 -0
  350. package/patterns/adia-chat/adia-chat.yaml +118 -0
  351. package/patterns/adia-chat/css/adia-chat.empty.css +12 -0
  352. package/patterns/adia-chat/css/adia-chat.layout.css +60 -0
  353. package/patterns/adia-chat/css/adia-chat.markdown.css +74 -0
  354. package/patterns/adia-chat/css/adia-chat.messages.css +87 -0
  355. package/patterns/adia-chat/css/adia-chat.streaming.css +30 -0
  356. package/patterns/adia-chat/css/adia-chat.tokens.css +95 -0
  357. package/patterns/adia-chat/index.html +93 -0
  358. package/patterns/adia-editor/adia-editor.a2ui.json +58 -0
  359. package/patterns/adia-editor/adia-editor.css +6 -0
  360. package/patterns/adia-editor/adia-editor.js +56 -0
  361. package/patterns/adia-editor/adia-editor.yaml +36 -0
  362. package/patterns/adia-editor/css/adia-editor.layout.css +86 -0
  363. package/patterns/adia-editor/css/adia-editor.tokens.css +28 -0
  364. package/patterns/adia-editor/index.html +179 -0
  365. package/patterns/app-nav/app-nav.a2ui.json +89 -0
  366. package/patterns/app-nav/app-nav.css +92 -0
  367. package/patterns/app-nav/app-nav.js +99 -0
  368. package/patterns/app-nav/app-nav.yaml +54 -0
  369. package/patterns/app-nav-group/app-nav-group.a2ui.json +82 -0
  370. package/patterns/app-nav-group/app-nav-group.css +261 -0
  371. package/patterns/app-nav-group/app-nav-group.js +116 -0
  372. package/patterns/app-nav-group/app-nav-group.yaml +59 -0
  373. package/patterns/app-nav-item/app-nav-item.a2ui.json +83 -0
  374. package/patterns/app-nav-item/app-nav-item.css +156 -0
  375. package/patterns/app-nav-item/app-nav-item.js +42 -0
  376. package/patterns/app-nav-item/app-nav-item.yaml +62 -0
  377. package/patterns/app-shell/app-shell.a2ui.json +114 -0
  378. package/patterns/app-shell/app-shell.css +14 -0
  379. package/patterns/app-shell/app-shell.js +251 -0
  380. package/patterns/app-shell/app-shell.yaml +66 -0
  381. package/patterns/app-shell/css/app-shell.collapsed.css +86 -0
  382. package/patterns/app-shell/css/app-shell.helpers.css +42 -0
  383. package/patterns/app-shell/css/app-shell.main.css +58 -0
  384. package/patterns/app-shell/css/app-shell.shell.css +44 -0
  385. package/patterns/app-shell/css/app-shell.sidebar.css +116 -0
  386. package/patterns/app-shell/css/app-shell.templates.css +214 -0
  387. package/patterns/app-shell/css/app-shell.tokens.css +116 -0
  388. package/patterns/app-shell/index.html +112 -0
  389. package/patterns/gen-ui/gen-ui.a2ui.json +72 -0
  390. package/patterns/gen-ui/gen-ui.css +83 -0
  391. package/patterns/gen-ui/gen-ui.js +136 -0
  392. package/patterns/gen-ui/gen-ui.yaml +43 -0
  393. package/patterns/index.js +10 -0
  394. package/patterns/section-nav/section-nav.a2ui.json +91 -0
  395. package/patterns/section-nav/section-nav.css +59 -0
  396. package/patterns/section-nav/section-nav.js +42 -0
  397. package/patterns/section-nav/section-nav.yaml +58 -0
  398. package/patterns/section-nav-group/section-nav-group.a2ui.json +95 -0
  399. package/patterns/section-nav-group/section-nav-group.css +74 -0
  400. package/patterns/section-nav-group/section-nav-group.js +84 -0
  401. package/patterns/section-nav-group/section-nav-group.yaml +66 -0
  402. package/patterns/section-nav-item/section-nav-item.a2ui.json +97 -0
  403. package/patterns/section-nav-item/section-nav-item.css +96 -0
  404. package/patterns/section-nav-item/section-nav-item.js +66 -0
  405. package/patterns/section-nav-item/section-nav-item.yaml +70 -0
  406. package/styles/colors/index.css +6 -0
  407. package/styles/colors/parameters.css +52 -0
  408. package/styles/colors/primitives-accent.css +89 -0
  409. package/styles/colors/primitives-brand.css +89 -0
  410. package/styles/colors/primitives-danger.css +89 -0
  411. package/styles/colors/primitives-info.css +89 -0
  412. package/styles/colors/primitives-neutral.css +91 -0
  413. package/styles/colors/primitives-shared.css +57 -0
  414. package/styles/colors/primitives-success.css +89 -0
  415. package/styles/colors/primitives-warning.css +89 -0
  416. package/styles/colors/primitives.css +17 -0
  417. package/styles/colors/scrims.css +182 -0
  418. package/styles/colors/semantics.css +595 -0
  419. package/styles/colors/surfaces.css +43 -0
  420. package/styles/fonts.css +99 -0
  421. package/styles/layouts/admin.css +7 -0
  422. package/styles/prose.css +186 -0
  423. package/styles/styles.css +193 -0
  424. package/styles/themes.css +155 -0
  425. package/styles/tokens.css +304 -0
  426. package/styles/typography.css +853 -0
  427. package/traits/active-state.js +24 -0
  428. package/traits/anchor-positioning.js +66 -0
  429. package/traits/attention-pulse.js +30 -0
  430. package/traits/confetti-burst.js +65 -0
  431. package/traits/confetti.js +57 -0
  432. package/traits/count-up.js +42 -0
  433. package/traits/define.js +76 -0
  434. package/traits/dirty-state.js +38 -0
  435. package/traits/drag-ghost.js +38 -0
  436. package/traits/draggable.js +73 -0
  437. package/traits/fade-presence.js +52 -0
  438. package/traits/focus-trap.js +63 -0
  439. package/traits/focusable.js +38 -0
  440. package/traits/glow-focus.js +33 -0
  441. package/traits/gradient-shift.js +32 -0
  442. package/traits/haptic-feedback.js +28 -0
  443. package/traits/hotkey.js +62 -0
  444. package/traits/hoverable.js +26 -0
  445. package/traits/index.js +55 -0
  446. package/traits/inertia-drag.js +133 -0
  447. package/traits/intersection-observer.js +33 -0
  448. package/traits/keyboard-nav.js +36 -0
  449. package/traits/magnetic-hover.js +37 -0
  450. package/traits/noise-texture.js +30 -0
  451. package/traits/parallax.js +42 -0
  452. package/traits/portal.js +27 -0
  453. package/traits/pressable.js +75 -0
  454. package/traits/resizable.js +100 -0
  455. package/traits/resize-observer.js +31 -0
  456. package/traits/ripple.js +53 -0
  457. package/traits/roving-tabindex.js +67 -0
  458. package/traits/scale-press.js +43 -0
  459. package/traits/scroll-lock.js +27 -0
  460. package/traits/shimmer-loading.js +44 -0
  461. package/traits/snap-to-grid.js +28 -0
  462. package/traits/sound-feedback.js +30 -0
  463. package/traits/spring-animate.js +56 -0
  464. package/traits/tilt-hover.js +37 -0
  465. package/traits/tossable.js +178 -0
  466. package/traits/typeahead.js +63 -0
  467. package/traits/typewriter.js +35 -0
  468. package/traits/validation.js +118 -0
@@ -0,0 +1,366 @@
1
+ # Generated by scripts/migrate-yamls-to-v1.mjs — migrated to v1 contract.
2
+ # Edit this file; run `npm run build:components` to regenerate a2ui.json.
3
+ $schema: ../../../../scripts/schemas/component.yaml.schema.json
4
+ name: AdiaDrawer
5
+ tag: drawer-ui
6
+ component: Drawer
7
+ category: container
8
+ version: 1
9
+ description: >-
10
+ Slide-out panel anchored to a viewport edge. Uses native <dialog> for focus trap,
11
+ Escape dismiss, and ::backdrop. Panel is a flex column that scrolls as a whole — the
12
+ header and footer stick to the top/bottom of the panel when the body overflows.
13
+ Authors can compose content with either card-n-style bare tags (<header>, <section>,
14
+ <footer>) or explicit [slot="header|body|footer"] attributes; multiple <section>
15
+ siblings are allowed and stack in author order between the sticky header and footer.
16
+ The header activates a card-n-aligned 3-column grid (icon | heading+description |
17
+ action+close) when any direct [slot="icon|heading|description|action"] child is
18
+ present.
19
+ props:
20
+ open:
21
+ description: Controls visibility. When false, backdrop and panel are removed from DOM.
22
+ type: boolean
23
+ default: false
24
+ reflect: true
25
+ permanent:
26
+ description: When true, hide close button and suppress backdrop/Escape dismiss
27
+ type: boolean
28
+ default: false
29
+ side:
30
+ description: Anchor side
31
+ type: string
32
+ default: right
33
+ enum:
34
+ - left
35
+ - right
36
+ - top
37
+ - bottom
38
+ size:
39
+ description: Panel width/height
40
+ type: string
41
+ default: md
42
+ enum:
43
+ - sm
44
+ - md
45
+ - lg
46
+ text:
47
+ description: Title text displayed in the drawer header
48
+ type: string
49
+ default: ""
50
+ events:
51
+ close:
52
+ description: Fired when the drawer is dismissed via close button or backdrop click
53
+ slots:
54
+ backdrop:
55
+ description: Scrim overlay behind the drawer (stamped by the component).
56
+ panel:
57
+ description: Sliding panel container (stamped by the component).
58
+ header:
59
+ description: >-
60
+ Title bar — pinned to the top of the panel via position:sticky. Accepts either
61
+ a bare <header> tag or [slot="header"]. When any direct child has
62
+ [slot="icon|heading|description|action"], the header activates a card-n-aligned
63
+ 3-column grid; otherwise renders as a block with the close button appended.
64
+ body:
65
+ description: >-
66
+ Scrollable content region. Accepts one or more bare <section> tags or
67
+ [slot="body"] elements; multi-section stacks are mounted in author order and
68
+ share the panel's scroll context. [bleed] removes section padding; [padding]
69
+ adds a canvas-scrim background for hero regions.
70
+ footer:
71
+ description: >-
72
+ Optional sticky action row pinned to the bottom of the panel. Only mounted if
73
+ the author supplies a bare <footer> tag or [slot="footer"]. Inner
74
+ [slot="description"] + [slot="action"] triggers space-between layout, matching
75
+ card-ui footer semantics.
76
+ close:
77
+ description: >-
78
+ Close button inside the header — stamped automatically unless [permanent].
79
+ Participates in the header's action-column grid via the :is([slot="action"],
80
+ [slot="close"]) union selector.
81
+ icon:
82
+ description: >-
83
+ Direct child of <header> — placed in column 1 of the card-ui grid. Spans two
84
+ rows when a [slot="description"] sibling is present so the icon aligns with the
85
+ heading.
86
+ heading:
87
+ description: >-
88
+ Direct child of <header> — grid row 1. Also accepts bare <h1>-<h6> tags.
89
+ Renders as a flex container, so inline badges/metadata sit alongside the title.
90
+ If the drawer has a [text] attribute and no author-supplied heading, a
91
+ <span slot="heading" data-stamped> is stamped with the text value.
92
+ description:
93
+ description: >-
94
+ Direct child of <header> — grid row 2, spans the heading + action columns.
95
+ Also accepts bare <p> / <small> tags.
96
+ action:
97
+ description: >-
98
+ Direct child of <header> — placed in the grid's last column alongside the
99
+ stamped close button. Flex container for badge + button combinations.
100
+ states:
101
+ - name: idle
102
+ description: Default, ready for interaction.
103
+ traits: []
104
+ tokens: {}
105
+ a2ui:
106
+ rules: []
107
+ anti_patterns: []
108
+ examples:
109
+ - name: drawer-panel
110
+ description: Card with a trigger button that opens a Drawer side panel containing a form with inputs
111
+ and actions.
112
+ a2ui: >-
113
+ [
114
+ {
115
+ "id": "root",
116
+ "component": "Card",
117
+ "children": [
118
+ "card-hdr",
119
+ "card-body",
120
+ "drawer"
121
+ ]
122
+ },
123
+ {
124
+ "id": "card-hdr",
125
+ "component": "Header",
126
+ "slots": {
127
+ "heading": "Projects",
128
+ "description": "Manage your active projects.",
129
+ "action": "trigger-btn"
130
+ }
131
+ },
132
+ {
133
+ "id": "trigger-btn",
134
+ "component": "Button",
135
+ "attrs": {
136
+ "variant": "primary",
137
+ "icon": "plus",
138
+ "triggers": "drawer"
139
+ },
140
+ "content": "New Project"
141
+ },
142
+ {
143
+ "id": "card-body",
144
+ "component": "Section",
145
+ "children": [
146
+ "empty"
147
+ ]
148
+ },
149
+ {
150
+ "id": "empty",
151
+ "component": "EmptyState",
152
+ "attrs": {
153
+ "icon": "folder",
154
+ "heading": "No projects yet",
155
+ "description": "Create your first project to get started."
156
+ }
157
+ },
158
+ {
159
+ "id": "drawer",
160
+ "component": "Drawer",
161
+ "attrs": {
162
+ "side": "right",
163
+ "title": "Create Project"
164
+ },
165
+ "children": [
166
+ "drawer-hdr",
167
+ "drawer-body",
168
+ "drawer-ftr"
169
+ ]
170
+ },
171
+ {
172
+ "id": "drawer-hdr",
173
+ "component": "Header",
174
+ "slots": {
175
+ "heading": "New Project",
176
+ "description": "Fill in the details to create a new project."
177
+ }
178
+ },
179
+ {
180
+ "id": "drawer-body",
181
+ "component": "Section",
182
+ "children": [
183
+ "drawer-form"
184
+ ]
185
+ },
186
+ {
187
+ "id": "drawer-form",
188
+ "component": "Column",
189
+ "attrs": {
190
+ "gap": "md"
191
+ },
192
+ "children": [
193
+ "field-name",
194
+ "field-desc",
195
+ "field-category",
196
+ "field-visibility"
197
+ ]
198
+ },
199
+ {
200
+ "id": "field-name",
201
+ "component": "Input",
202
+ "attrs": {
203
+ "label": "Project Name",
204
+ "placeholder": "My Awesome Project",
205
+ "required": true
206
+ }
207
+ },
208
+ {
209
+ "id": "field-desc",
210
+ "component": "TextArea",
211
+ "attrs": {
212
+ "label": "Description",
213
+ "placeholder": "Describe your project...",
214
+ "rows": 4
215
+ }
216
+ },
217
+ {
218
+ "id": "field-category",
219
+ "component": "Select",
220
+ "attrs": {
221
+ "label": "Category",
222
+ "placeholder": "Select a category",
223
+ "options": [
224
+ {
225
+ "label": "Web Application",
226
+ "value": "web"
227
+ },
228
+ {
229
+ "label": "Mobile App",
230
+ "value": "mobile"
231
+ },
232
+ {
233
+ "label": "API Service",
234
+ "value": "api"
235
+ },
236
+ {
237
+ "label": "Library",
238
+ "value": "library"
239
+ }
240
+ ]
241
+ }
242
+ },
243
+ {
244
+ "id": "field-visibility",
245
+ "component": "Select",
246
+ "attrs": {
247
+ "label": "Visibility",
248
+ "placeholder": "Select visibility",
249
+ "options": [
250
+ {
251
+ "label": "Public",
252
+ "value": "public"
253
+ },
254
+ {
255
+ "label": "Private",
256
+ "value": "private"
257
+ },
258
+ {
259
+ "label": "Team Only",
260
+ "value": "team"
261
+ }
262
+ ]
263
+ }
264
+ },
265
+ {
266
+ "id": "drawer-ftr",
267
+ "component": "Footer",
268
+ "children": [
269
+ "drawer-actions"
270
+ ]
271
+ },
272
+ {
273
+ "id": "drawer-actions",
274
+ "component": "Row",
275
+ "attrs": {
276
+ "gap": "sm"
277
+ },
278
+ "children": [
279
+ "cancel-btn",
280
+ "create-btn"
281
+ ]
282
+ },
283
+ {
284
+ "id": "cancel-btn",
285
+ "component": "Button",
286
+ "attrs": {
287
+ "variant": "outline"
288
+ },
289
+ "content": "Cancel"
290
+ },
291
+ {
292
+ "id": "create-btn",
293
+ "component": "Button",
294
+ "attrs": {
295
+ "variant": "primary"
296
+ },
297
+ "content": "Create Project"
298
+ }
299
+ ]
300
+ keywords:
301
+ - drawer
302
+ - popup
303
+ - modal
304
+ - dialog
305
+ - panel
306
+ - hamburger
307
+ - sidebar
308
+ - layout
309
+ - collapse
310
+ - expand
311
+ synonyms:
312
+ collapse:
313
+ - accordion
314
+ - faq
315
+ - drawer
316
+ dialog:
317
+ - drawer
318
+ - alert
319
+ - popover
320
+ - panel
321
+ drawer:
322
+ - drawer
323
+ - sidebar
324
+ - panel
325
+ expand:
326
+ - accordion
327
+ - faq
328
+ - drawer
329
+ hamburger:
330
+ - nav
331
+ - menu
332
+ - sidebar
333
+ - drawer
334
+ layout:
335
+ - split
336
+ - sidebar
337
+ - drawer
338
+ - tabs
339
+ - divider
340
+ - bleed
341
+ modal:
342
+ - drawer
343
+ - alert
344
+ - popover
345
+ - panel
346
+ panel:
347
+ - tabs
348
+ - drawer
349
+ - panel
350
+ - split
351
+ popup:
352
+ - toast
353
+ - notification
354
+ - alert
355
+ - popover
356
+ - drawer
357
+ sidebar:
358
+ - sidebar
359
+ - nav
360
+ - drawer
361
+ related:
362
+ - button
363
+ - empty-state
364
+ - input
365
+ - text-area
366
+ - select
@@ -0,0 +1,150 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://adiaui.dev/a2ui/v0_9/components/Embed.json",
4
+ "title": "Embed",
5
+ "description": "Responsive sandboxed iframe wrapper.",
6
+ "type": "object",
7
+ "allOf": [
8
+ {
9
+ "$ref": "common_types.json#/$defs/ComponentCommon"
10
+ },
11
+ {
12
+ "$ref": "common_types.json#/$defs/CatalogComponentCommon"
13
+ }
14
+ ],
15
+ "properties": {
16
+ "aspect": {
17
+ "description": "CSS aspect-ratio (e.g. 16/9)",
18
+ "type": "string",
19
+ "default": ""
20
+ },
21
+ "component": {
22
+ "const": "Embed"
23
+ },
24
+ "height": {
25
+ "description": "Iframe height. Plain numbers treated as pixels.",
26
+ "type": "string",
27
+ "default": "400"
28
+ },
29
+ "src": {
30
+ "description": "URL to load in the iframe",
31
+ "type": "string",
32
+ "default": ""
33
+ },
34
+ "width": {
35
+ "description": "Iframe width. Any CSS width value.",
36
+ "type": "string",
37
+ "default": "100%"
38
+ }
39
+ },
40
+ "required": [
41
+ "component"
42
+ ],
43
+ "unevaluatedProperties": false,
44
+ "x-adiaui": {
45
+ "anti_patterns": [],
46
+ "category": "agent",
47
+ "events": {},
48
+ "examples": [
49
+ {
50
+ "description": "Card wrapping an embedded iframe for video or map content with a descriptive header.",
51
+ "a2ui": "[\n {\n \"id\": \"root\",\n \"component\": \"Card\",\n \"children\": [\n \"hdr\",\n \"body\",\n \"caption-sec\"\n ]\n },\n {\n \"id\": \"hdr\",\n \"component\": \"Header\",\n \"slots\": {\n \"heading\": \"Product Demo\",\n \"description\": \"Watch a 3-minute walkthrough of our core features.\"\n }\n },\n {\n \"id\": \"body\",\n \"component\": \"Section\",\n \"children\": [\n \"video\"\n ]\n },\n {\n \"id\": \"video\",\n \"component\": \"Embed\",\n \"attrs\": {\n \"src\": \"https://www.youtube.com/embed/dQw4w9WgXcQ\",\n \"type\": \"video\",\n \"aspectRatio\": \"16:9\",\n \"title\": \"Product demo video\",\n \"allowFullscreen\": true\n }\n },\n {\n \"id\": \"caption-sec\",\n \"component\": \"Section\",\n \"children\": [\n \"caption\"\n ]\n },\n {\n \"id\": \"caption\",\n \"component\": \"Text\",\n \"attrs\": {\n \"variant\": \"caption\",\n \"muted\": true\n },\n \"content\": \"Duration: 3:24 · Last updated January 2025\"\n }\n]",
52
+ "name": "embed-content"
53
+ },
54
+ {
55
+ "description": "Video player with embed area, seek slider, and playback controls.",
56
+ "a2ui": "[\n {\n \"id\": \"root\",\n \"component\": \"Card\",\n \"children\": [\n \"vid\",\n \"controls\"\n ]\n },\n {\n \"id\": \"vid\",\n \"component\": \"Section\",\n \"children\": [\n \"embed\"\n ]\n },\n {\n \"id\": \"embed\",\n \"component\": \"Embed\",\n \"src\": \"https://example.com/video\",\n \"aspect\": \"16/9\"\n },\n {\n \"id\": \"controls\",\n \"component\": \"Section\",\n \"children\": [\n \"seek\",\n \"btns\"\n ]\n },\n {\n \"id\": \"seek\",\n \"component\": \"Slider\",\n \"value\": 25,\n \"max\": 100\n },\n {\n \"id\": \"btns\",\n \"component\": \"Row\",\n \"children\": [\n \"play\",\n \"vol\",\n \"time\"\n ],\n \"justify\": \"between\",\n \"align\": \"center\"\n },\n {\n \"id\": \"play\",\n \"component\": \"Button\",\n \"icon\": \"play\",\n \"variant\": \"ghost\"\n },\n {\n \"id\": \"vol\",\n \"component\": \"Button\",\n \"icon\": \"speaker-high\",\n \"variant\": \"ghost\"\n },\n {\n \"id\": \"time\",\n \"component\": \"Text\",\n \"variant\": \"caption\",\n \"textContent\": \"2:30 / 10:00\"\n }\n]",
57
+ "name": "video-player"
58
+ }
59
+ ],
60
+ "keywords": [
61
+ "embed",
62
+ "media",
63
+ "video",
64
+ "youtube",
65
+ "vimeo",
66
+ "stream",
67
+ "integration",
68
+ "iframe",
69
+ "widget",
70
+ "third-party"
71
+ ],
72
+ "name": "AdiaEmbed",
73
+ "related": [
74
+ "slider",
75
+ "button"
76
+ ],
77
+ "slots": {
78
+ "iframe": {
79
+ "description": "Sandboxed <iframe> element (allow-scripts allow-same-origin)"
80
+ }
81
+ },
82
+ "states": [
83
+ {
84
+ "description": "Default, ready for interaction.",
85
+ "name": "idle"
86
+ }
87
+ ],
88
+ "synonyms": {
89
+ "embed": [
90
+ "embed",
91
+ "content",
92
+ "video",
93
+ "iframe"
94
+ ],
95
+ "iframe": [
96
+ "embed",
97
+ "content"
98
+ ],
99
+ "integration": [
100
+ "api",
101
+ "key",
102
+ "embed",
103
+ "data",
104
+ "import"
105
+ ],
106
+ "media": [
107
+ "image",
108
+ "video",
109
+ "music",
110
+ "player",
111
+ "gallery",
112
+ "embed"
113
+ ],
114
+ "stream": [
115
+ "video",
116
+ "player",
117
+ "streaming",
118
+ "embed"
119
+ ],
120
+ "third-party": [
121
+ "embed",
122
+ "content"
123
+ ],
124
+ "video": [
125
+ "video",
126
+ "player",
127
+ "embed"
128
+ ],
129
+ "vimeo": [
130
+ "video",
131
+ "player",
132
+ "embed"
133
+ ],
134
+ "widget": [
135
+ "embed",
136
+ "weather",
137
+ "widget"
138
+ ],
139
+ "youtube": [
140
+ "video",
141
+ "player",
142
+ "embed"
143
+ ]
144
+ },
145
+ "tag": "embed-ui",
146
+ "tokens": {},
147
+ "traits": [],
148
+ "version": 1
149
+ }
150
+ }
@@ -0,0 +1,28 @@
1
+ @scope (embed-ui) {
2
+ :where(:scope) {
3
+ /* ── Tokens ── */
4
+ --embed-bg: var(--a-bg-muted);
5
+ --embed-radius: var(--a-radius-md);
6
+ --embed-border: var(--a-border-subtle);
7
+ }
8
+
9
+ :scope {
10
+ box-sizing: border-box;
11
+ display: block;
12
+ overflow: hidden;
13
+ border-radius: var(--embed-radius);
14
+ border: 1px solid var(--embed-border);
15
+ background: var(--embed-bg);
16
+ position: relative;
17
+ }
18
+
19
+ iframe {
20
+ display: block;
21
+ width: 100%;
22
+ border: none;
23
+ }
24
+
25
+ :scope[aspect] iframe {
26
+ height: 100%;
27
+ }
28
+ }
@@ -0,0 +1,63 @@
1
+ /**
2
+ * <embed-ui src="https://example.com" height="400" aspect="16/9"></embed-ui>
3
+ *
4
+ * Responsive sandboxed iframe wrapper.
5
+ *
6
+ * Properties:
7
+ * src — iframe URL
8
+ * height — iframe height (default '400')
9
+ * width — iframe width (default '100%')
10
+ * aspect — optional CSS aspect-ratio (e.g. '16/9')
11
+ */
12
+
13
+ import { AdiaElement } from '@core/element.js';
14
+
15
+ class AdiaEmbed extends AdiaElement {
16
+ static properties = {
17
+ src: { type: String, default: '', reflect: true },
18
+ height: { type: String, default: '400', reflect: true },
19
+ width: { type: String, default: '100%', reflect: true },
20
+ aspect: { type: String, default: '', reflect: true },
21
+ };
22
+
23
+ static template = () => null;
24
+
25
+ #iframe = null;
26
+
27
+ connected() {
28
+ if (!this.#iframe) {
29
+ this.#iframe = document.createElement('iframe');
30
+ this.#iframe.setAttribute('sandbox', 'allow-scripts allow-same-origin');
31
+ this.#iframe.setAttribute('loading', 'lazy');
32
+ this.#iframe.setAttribute('allowfullscreen', '');
33
+ this.appendChild(this.#iframe);
34
+ }
35
+ }
36
+
37
+ render() {
38
+ if (!this.#iframe) return;
39
+
40
+ if (this.src) this.#iframe.src = this.src;
41
+
42
+ if (this.aspect) {
43
+ this.style.aspectRatio = this.aspect;
44
+ this.#iframe.style.width = '100%';
45
+ this.#iframe.style.height = '100%';
46
+ this.style.width = this.width;
47
+ this.style.height = '';
48
+ } else {
49
+ this.style.aspectRatio = '';
50
+ this.#iframe.style.width = '100%';
51
+ this.#iframe.style.height = this.height.match(/^\d+$/) ? `${this.height}px` : this.height;
52
+ this.style.width = this.width;
53
+ this.style.height = '';
54
+ }
55
+ }
56
+
57
+ disconnected() {
58
+ this.#iframe = null;
59
+ }
60
+ }
61
+ customElements.define('embed-ui', AdiaEmbed);
62
+
63
+ export { AdiaEmbed };