@adia-ai/web-components 0.4.6 → 0.4.8

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 (399) hide show
  1. package/README.md +39 -0
  2. package/USAGE.md +29 -9
  3. package/components/accordion/accordion.a2ui.json +3 -0
  4. package/components/accordion/accordion.d.ts +27 -0
  5. package/components/accordion/accordion.js +10 -117
  6. package/components/accordion/accordion.yaml +4 -0
  7. package/components/accordion/class.js +132 -0
  8. package/components/action-list/action-list.a2ui.json +3 -0
  9. package/components/action-list/action-list.d.ts +25 -0
  10. package/components/action-list/action-list.js +9 -140
  11. package/components/action-list/action-list.yaml +4 -0
  12. package/components/action-list/class.js +156 -0
  13. package/components/agent-artifact/agent-artifact.a2ui.json +4 -0
  14. package/components/agent-artifact/agent-artifact.d.ts +35 -0
  15. package/components/agent-artifact/agent-artifact.js +8 -181
  16. package/components/agent-artifact/agent-artifact.yaml +5 -0
  17. package/components/agent-artifact/class.js +200 -0
  18. package/components/agent-feedback-bar/agent-feedback-bar.a2ui.json +3 -0
  19. package/components/agent-feedback-bar/agent-feedback-bar.d.ts +33 -0
  20. package/components/agent-feedback-bar/agent-feedback-bar.js +8 -143
  21. package/components/agent-feedback-bar/agent-feedback-bar.yaml +4 -0
  22. package/components/agent-feedback-bar/class.js +162 -0
  23. package/components/agent-questions/agent-questions.a2ui.json +3 -0
  24. package/components/agent-questions/agent-questions.d.ts +33 -0
  25. package/components/agent-questions/agent-questions.js +8 -180
  26. package/components/agent-questions/agent-questions.yaml +4 -0
  27. package/components/agent-questions/class.js +199 -0
  28. package/components/agent-reasoning/agent-reasoning.a2ui.json +4 -0
  29. package/components/agent-reasoning/agent-reasoning.d.ts +37 -0
  30. package/components/agent-reasoning/agent-reasoning.js +8 -494
  31. package/components/agent-reasoning/agent-reasoning.yaml +5 -0
  32. package/components/agent-reasoning/class.js +513 -0
  33. package/components/agent-suggestions/agent-suggestions.a2ui.json +3 -0
  34. package/components/agent-suggestions/agent-suggestions.d.ts +31 -0
  35. package/components/agent-suggestions/agent-suggestions.js +8 -78
  36. package/components/agent-suggestions/agent-suggestions.yaml +4 -0
  37. package/components/agent-suggestions/class.js +97 -0
  38. package/components/agent-trace/agent-trace.a2ui.json +1 -0
  39. package/components/agent-trace/agent-trace.d.ts +29 -0
  40. package/components/alert/alert.a2ui.json +1 -0
  41. package/components/alert/alert.d.ts +39 -0
  42. package/components/alert/alert.js +8 -175
  43. package/components/alert/class.js +194 -0
  44. package/components/aside/aside.a2ui.json +1 -0
  45. package/components/avatar/avatar.a2ui.json +3 -0
  46. package/components/avatar/avatar.d.ts +28 -0
  47. package/components/avatar/avatar.js +9 -159
  48. package/components/avatar/avatar.yaml +4 -0
  49. package/components/avatar/class.js +173 -0
  50. package/components/badge/badge.a2ui.json +3 -0
  51. package/components/badge/badge.d.ts +28 -0
  52. package/components/badge/badge.js +9 -75
  53. package/components/badge/badge.yaml +4 -0
  54. package/components/badge/class.js +93 -0
  55. package/components/block/block.a2ui.json +1 -0
  56. package/components/block/block.d.ts +20 -0
  57. package/components/block/block.js +9 -15
  58. package/components/block/class.js +33 -0
  59. package/components/breadcrumb/breadcrumb.a2ui.json +5 -0
  60. package/components/breadcrumb/breadcrumb.d.ts +24 -0
  61. package/components/breadcrumb/breadcrumb.js +8 -113
  62. package/components/breadcrumb/breadcrumb.yaml +6 -0
  63. package/components/breadcrumb/class.js +132 -0
  64. package/components/button/button.a2ui.json +3 -0
  65. package/components/button/button.d.ts +44 -0
  66. package/components/button/button.js +15 -66
  67. package/components/button/button.yaml +5 -0
  68. package/components/button/class.js +80 -0
  69. package/components/calendar-picker/calendar-picker.a2ui.json +7 -1
  70. package/components/calendar-picker/calendar-picker.js +8 -332
  71. package/components/calendar-picker/calendar-picker.yaml +51 -177
  72. package/components/calendar-picker/class.js +351 -0
  73. package/components/canvas/canvas.a2ui.json +7 -1
  74. package/components/canvas/canvas.d.ts +33 -0
  75. package/components/canvas/canvas.yaml +29 -36
  76. package/components/card/card.a2ui.json +4 -0
  77. package/components/card/card.d.ts +37 -0
  78. package/components/card/card.js +9 -50
  79. package/components/card/card.yaml +171 -433
  80. package/components/card/class.js +68 -0
  81. package/components/chart/chart.a2ui.json +1 -0
  82. package/components/chart/chart.d.ts +55 -0
  83. package/components/chart/chart.js +8 -2131
  84. package/components/chart/class.js +2150 -0
  85. package/components/chart-legend/chart-legend.a2ui.json +4 -0
  86. package/components/chart-legend/chart-legend.d.ts +37 -0
  87. package/components/chart-legend/chart-legend.js +8 -197
  88. package/components/chart-legend/chart-legend.yaml +5 -0
  89. package/components/chart-legend/class.js +215 -0
  90. package/components/chat-thread/chat-thread.a2ui.json +1 -0
  91. package/components/chat-thread/chat-thread.d.ts +27 -0
  92. package/components/chat-thread/chat-thread.js +8 -157
  93. package/components/chat-thread/class.js +176 -0
  94. package/components/check/check.a2ui.json +1 -0
  95. package/components/check/check.js +11 -52
  96. package/components/check/class.js +68 -0
  97. package/components/code/class.js +501 -0
  98. package/components/code/code.a2ui.json +1 -0
  99. package/components/code/code.js +8 -482
  100. package/components/col/class.js +30 -0
  101. package/components/col/col.a2ui.json +1 -0
  102. package/components/col/col.d.ts +24 -0
  103. package/components/col/col.js +10 -13
  104. package/components/color-picker/class.js +550 -0
  105. package/components/color-picker/color-picker.a2ui.json +3 -0
  106. package/components/color-picker/color-picker.js +8 -531
  107. package/components/color-picker/color-picker.yaml +4 -0
  108. package/components/command/class.js +364 -0
  109. package/components/command/command.a2ui.json +4 -0
  110. package/components/command/command.d.ts +31 -0
  111. package/components/command/command.js +8 -345
  112. package/components/command/command.yaml +105 -124
  113. package/components/demo-toggle/class.js +153 -0
  114. package/components/demo-toggle/demo-toggle.a2ui.json +1 -0
  115. package/components/demo-toggle/demo-toggle.d.ts +33 -0
  116. package/components/demo-toggle/demo-toggle.js +8 -135
  117. package/components/description-list/class.js +86 -0
  118. package/components/description-list/description-list.a2ui.json +1 -0
  119. package/components/description-list/description-list.d.ts +22 -0
  120. package/components/description-list/description-list.js +8 -67
  121. package/components/divider/class.js +57 -0
  122. package/components/divider/divider.a2ui.json +1 -0
  123. package/components/divider/divider.d.ts +20 -0
  124. package/components/divider/divider.js +10 -40
  125. package/components/drawer/class.js +306 -0
  126. package/components/drawer/drawer.a2ui.json +1 -0
  127. package/components/drawer/drawer.d.ts +35 -0
  128. package/components/drawer/drawer.js +8 -287
  129. package/components/embed/class.js +73 -0
  130. package/components/embed/embed.a2ui.json +1 -0
  131. package/components/embed/embed.d.ts +24 -0
  132. package/components/embed/embed.js +9 -55
  133. package/components/empty-state/class.js +108 -0
  134. package/components/empty-state/empty-state.a2ui.json +3 -0
  135. package/components/empty-state/empty-state.d.ts +22 -0
  136. package/components/empty-state/empty-state.js +9 -90
  137. package/components/empty-state/empty-state.yaml +4 -0
  138. package/components/feed/class.js +381 -0
  139. package/components/feed/feed.a2ui.json +9 -1
  140. package/components/feed/feed.d.ts +29 -0
  141. package/components/feed/feed.js +9 -367
  142. package/components/feed/feed.yaml +8 -1
  143. package/components/field/class.js +266 -0
  144. package/components/field/field.a2ui.json +1 -0
  145. package/components/field/field.d.ts +24 -0
  146. package/components/field/field.js +8 -247
  147. package/components/fields/class.js +106 -0
  148. package/components/fields/fields.a2ui.json +1 -0
  149. package/components/fields/fields.d.ts +20 -0
  150. package/components/fields/fields.js +8 -87
  151. package/components/footer/footer.a2ui.json +1 -0
  152. package/components/grid/class.js +31 -0
  153. package/components/grid/grid.a2ui.json +1 -0
  154. package/components/grid/grid.d.ts +24 -0
  155. package/components/grid/grid.js +10 -14
  156. package/components/header/header.a2ui.json +1 -0
  157. package/components/heatmap/class.js +305 -0
  158. package/components/heatmap/heatmap.a2ui.json +1 -0
  159. package/components/heatmap/heatmap.d.ts +43 -0
  160. package/components/heatmap/heatmap.js +8 -286
  161. package/components/icon/class.js +54 -0
  162. package/components/icon/icon.a2ui.json +1 -0
  163. package/components/icon/icon.d.ts +24 -0
  164. package/components/icon/icon.js +13 -40
  165. package/components/image/class.js +112 -0
  166. package/components/image/image.a2ui.json +3 -0
  167. package/components/image/image.d.ts +34 -0
  168. package/components/image/image.js +9 -94
  169. package/components/image/image.yaml +4 -0
  170. package/components/index.js +8 -0
  171. package/components/input/class.js +773 -0
  172. package/components/input/input.a2ui.json +7 -0
  173. package/components/input/input.js +8 -755
  174. package/components/input/input.yaml +177 -442
  175. package/components/inspector/class.js +142 -0
  176. package/components/inspector/inspector.a2ui.json +13 -1
  177. package/components/inspector/inspector.d.ts +18 -0
  178. package/components/inspector/inspector.js +8 -124
  179. package/components/inspector/inspector.yaml +21 -30
  180. package/components/kbd/class.js +34 -0
  181. package/components/kbd/kbd.a2ui.json +4 -0
  182. package/components/kbd/kbd.d.ts +18 -0
  183. package/components/kbd/kbd.js +10 -17
  184. package/components/kbd/kbd.yaml +54 -185
  185. package/components/link/class.js +187 -0
  186. package/components/link/link.a2ui.json +1 -0
  187. package/components/link/link.d.ts +65 -0
  188. package/components/link/link.js +8 -168
  189. package/components/list/class.js +249 -0
  190. package/components/list/list.a2ui.json +3 -0
  191. package/components/list/list.d.ts +33 -0
  192. package/components/list/list.js +9 -231
  193. package/components/list/list.yaml +4 -0
  194. package/components/menu/class.js +332 -0
  195. package/components/menu/menu.a2ui.json +3 -0
  196. package/components/menu/menu.d.ts +31 -0
  197. package/components/menu/menu.js +11 -316
  198. package/components/menu/menu.yaml +4 -0
  199. package/components/modal/class.js +231 -0
  200. package/components/modal/modal.a2ui.json +6 -1
  201. package/components/modal/modal.d.ts +33 -0
  202. package/components/modal/modal.js +8 -212
  203. package/components/modal/modal.yaml +19 -39
  204. package/components/nav/class.js +150 -0
  205. package/components/nav/nav.a2ui.json +1 -0
  206. package/components/nav/nav.d.ts +41 -0
  207. package/components/nav/nav.js +8 -131
  208. package/components/nav-group/class.js +152 -0
  209. package/components/nav-group/nav-group.a2ui.json +1 -0
  210. package/components/nav-group/nav-group.d.ts +45 -0
  211. package/components/nav-group/nav-group.js +9 -134
  212. package/components/nav-item/class.js +86 -0
  213. package/components/nav-item/nav-item.a2ui.json +1 -0
  214. package/components/nav-item/nav-item.d.ts +47 -0
  215. package/components/nav-item/nav-item.js +10 -69
  216. package/components/noodles/class.js +510 -0
  217. package/components/noodles/noodles.a2ui.json +1 -0
  218. package/components/noodles/noodles.d.ts +47 -0
  219. package/components/noodles/noodles.js +9 -493
  220. package/components/option-card/class.js +167 -0
  221. package/components/option-card/option-card.a2ui.json +3 -0
  222. package/components/option-card/option-card.js +8 -149
  223. package/components/option-card/option-card.yaml +4 -0
  224. package/components/otp-input/class.js +180 -0
  225. package/components/otp-input/otp-input.a2ui.json +6 -1
  226. package/components/otp-input/otp-input.js +9 -162
  227. package/components/otp-input/otp-input.yaml +45 -174
  228. package/components/page/class.js +97 -0
  229. package/components/page/page.a2ui.json +1 -0
  230. package/components/page/page.d.ts +47 -0
  231. package/components/page/page.js +8 -79
  232. package/components/pagination/class.js +195 -0
  233. package/components/pagination/pagination.a2ui.json +1 -0
  234. package/components/pagination/pagination.d.ts +33 -0
  235. package/components/pagination/pagination.js +9 -177
  236. package/components/pane/class.js +186 -0
  237. package/components/pane/pane.a2ui.json +20 -2
  238. package/components/pane/pane.d.ts +41 -0
  239. package/components/pane/pane.js +8 -167
  240. package/components/pane/pane.yaml +64 -158
  241. package/components/pipeline-status/class.js +189 -0
  242. package/components/pipeline-status/pipeline-status.a2ui.json +8 -1
  243. package/components/pipeline-status/pipeline-status.d.ts +22 -0
  244. package/components/pipeline-status/pipeline-status.js +9 -172
  245. package/components/pipeline-status/pipeline-status.yaml +34 -72
  246. package/components/popover/class.js +194 -0
  247. package/components/popover/popover.a2ui.json +1 -0
  248. package/components/popover/popover.d.ts +24 -0
  249. package/components/popover/popover.js +9 -176
  250. package/components/progress/class.js +74 -0
  251. package/components/progress/progress.a2ui.json +4 -0
  252. package/components/progress/progress.d.ts +20 -0
  253. package/components/progress/progress.js +10 -57
  254. package/components/progress/progress.yaml +124 -287
  255. package/components/progress-row/class.js +110 -0
  256. package/components/progress-row/progress-row.a2ui.json +3 -0
  257. package/components/progress-row/progress-row.d.ts +24 -0
  258. package/components/progress-row/progress-row.js +8 -92
  259. package/components/progress-row/progress-row.yaml +4 -0
  260. package/components/radio/class.js +83 -0
  261. package/components/radio/radio.a2ui.json +1 -0
  262. package/components/radio/radio.js +11 -67
  263. package/components/range/class.js +194 -0
  264. package/components/range/range.a2ui.json +1 -0
  265. package/components/range/range.js +9 -176
  266. package/components/rating/class.js +148 -0
  267. package/components/rating/rating.a2ui.json +1 -0
  268. package/components/rating/rating.js +9 -130
  269. package/components/richtext/class.js +87 -0
  270. package/components/richtext/richtext.a2ui.json +8 -1
  271. package/components/richtext/richtext.d.ts +20 -0
  272. package/components/richtext/richtext.js +8 -68
  273. package/components/richtext/richtext.yaml +30 -65
  274. package/components/row/class.js +50 -0
  275. package/components/row/row.a2ui.json +1 -0
  276. package/components/row/row.d.ts +37 -0
  277. package/components/row/row.js +10 -33
  278. package/components/search/class.js +134 -0
  279. package/components/search/search.a2ui.json +1 -0
  280. package/components/search/search.js +10 -117
  281. package/components/section/section.a2ui.json +1 -0
  282. package/components/segment/class.js +62 -0
  283. package/components/segment/segment.a2ui.json +3 -0
  284. package/components/segment/segment.d.ts +26 -0
  285. package/components/segment/segment.js +10 -45
  286. package/components/segment/segment.yaml +4 -0
  287. package/components/segmented/class.js +165 -0
  288. package/components/segmented/segmented.a2ui.json +5 -0
  289. package/components/segmented/segmented.js +10 -148
  290. package/components/segmented/segmented.yaml +41 -59
  291. package/components/select/class.js +408 -0
  292. package/components/select/select.a2ui.json +3 -0
  293. package/components/select/select.js +15 -396
  294. package/components/select/select.yaml +4 -0
  295. package/components/skeleton/class.js +52 -0
  296. package/components/skeleton/skeleton.a2ui.json +1 -0
  297. package/components/skeleton/skeleton.d.ts +24 -0
  298. package/components/skeleton/skeleton.js +8 -34
  299. package/components/slider/class.js +184 -0
  300. package/components/slider/slider.a2ui.json +1 -0
  301. package/components/slider/slider.js +9 -166
  302. package/components/stack/class.js +28 -0
  303. package/components/stack/stack.a2ui.json +1 -0
  304. package/components/stack/stack.d.ts +18 -0
  305. package/components/stack/stack.js +10 -11
  306. package/components/stat/stat.a2ui.json +1 -0
  307. package/components/step-progress/class.js +98 -0
  308. package/components/step-progress/step-progress.a2ui.json +1 -0
  309. package/components/step-progress/step-progress.d.ts +28 -0
  310. package/components/step-progress/step-progress.js +8 -79
  311. package/components/stepper/class.js +126 -0
  312. package/components/stepper/stepper.a2ui.json +3 -0
  313. package/components/stepper/stepper.d.ts +20 -0
  314. package/components/stepper/stepper.js +9 -112
  315. package/components/stepper/stepper.yaml +4 -0
  316. package/components/stream/class.js +109 -0
  317. package/components/stream/stream.a2ui.json +1 -0
  318. package/components/stream/stream.d.ts +33 -0
  319. package/components/stream/stream.js +8 -90
  320. package/components/swatch/class.js +131 -0
  321. package/components/swatch/swatch.a2ui.json +1 -0
  322. package/components/swatch/swatch.d.ts +29 -0
  323. package/components/swatch/swatch.js +8 -112
  324. package/components/swiper/class.js +373 -0
  325. package/components/swiper/swiper.a2ui.json +7 -0
  326. package/components/swiper/swiper.d.ts +45 -0
  327. package/components/swiper/swiper.js +8 -354
  328. package/components/swiper/swiper.yaml +72 -212
  329. package/components/switch/class.js +63 -0
  330. package/components/switch/switch.a2ui.json +7 -1
  331. package/components/switch/switch.js +11 -47
  332. package/components/switch/switch.yaml +70 -265
  333. package/components/table/class.js +1453 -0
  334. package/components/table/table.a2ui.json +7 -0
  335. package/components/table/table.d.ts +55 -0
  336. package/components/table/table.js +8 -1435
  337. package/components/table/table.yaml +8 -0
  338. package/components/table-toolbar/class.js +680 -0
  339. package/components/table-toolbar/table-toolbar.a2ui.json +12 -0
  340. package/components/table-toolbar/table-toolbar.d.ts +49 -0
  341. package/components/table-toolbar/table-toolbar.js +8 -689
  342. package/components/table-toolbar/table-toolbar.yaml +13 -0
  343. package/components/tabs/class.js +242 -0
  344. package/components/tabs/tabs.a2ui.json +3 -0
  345. package/components/tabs/tabs.d.ts +31 -0
  346. package/components/tabs/tabs.js +8 -223
  347. package/components/tabs/tabs.yaml +4 -0
  348. package/components/tag/class.js +99 -0
  349. package/components/tag/tag.a2ui.json +1 -0
  350. package/components/tag/tag.d.ts +37 -0
  351. package/components/tag/tag.js +8 -80
  352. package/components/text/class.js +46 -0
  353. package/components/text/text.a2ui.json +1 -0
  354. package/components/text/text.d.ts +26 -0
  355. package/components/text/text.js +9 -28
  356. package/components/textarea/class.js +134 -0
  357. package/components/textarea/textarea.a2ui.json +1 -0
  358. package/components/textarea/textarea.js +11 -118
  359. package/components/timeline/class.js +176 -0
  360. package/components/timeline/timeline.a2ui.json +18 -1
  361. package/components/timeline/timeline.d.ts +36 -0
  362. package/components/timeline/timeline.js +9 -162
  363. package/components/timeline/timeline.yaml +14 -1
  364. package/components/toast/class.js +92 -0
  365. package/components/toast/toast.a2ui.json +1 -0
  366. package/components/toast/toast.d.ts +33 -0
  367. package/components/toast/toast.js +9 -76
  368. package/components/toggle-group/class.js +154 -0
  369. package/components/toggle-group/toggle-group.a2ui.json +1 -0
  370. package/components/toggle-group/toggle-group.d.ts +29 -0
  371. package/components/toggle-group/toggle-group.js +11 -140
  372. package/components/toggle-scheme/class.js +286 -0
  373. package/components/toggle-scheme/toggle-scheme.a2ui.json +3 -0
  374. package/components/toggle-scheme/toggle-scheme.d.ts +51 -0
  375. package/components/toggle-scheme/toggle-scheme.js +8 -268
  376. package/components/toggle-scheme/toggle-scheme.yaml +4 -0
  377. package/components/toolbar/class.js +388 -0
  378. package/components/toolbar/toolbar.a2ui.json +3 -0
  379. package/components/toolbar/toolbar.d.ts +24 -0
  380. package/components/toolbar/toolbar.js +10 -376
  381. package/components/toolbar/toolbar.yaml +4 -0
  382. package/components/tooltip/class.js +299 -0
  383. package/components/tooltip/tooltip.a2ui.json +1 -0
  384. package/components/tooltip/tooltip.d.ts +28 -0
  385. package/components/tooltip/tooltip.js +8 -280
  386. package/components/tree/class.js +245 -0
  387. package/components/tree/tree.a2ui.json +3 -0
  388. package/components/tree/tree.d.ts +25 -0
  389. package/components/tree/tree.js +9 -244
  390. package/components/tree/tree.yaml +4 -0
  391. package/components/upload/class.js +199 -0
  392. package/components/upload/upload.a2ui.json +1 -0
  393. package/components/upload/upload.js +11 -183
  394. package/core/icons-phosphor.js +93 -0
  395. package/core/icons.js +92 -90
  396. package/core/index.js +5 -0
  397. package/index.d.ts +160 -5
  398. package/index.js +7 -0
  399. package/package.json +7 -2
@@ -1,40 +1,43 @@
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
1
  $schema: ../../../../scripts/schemas/component.yaml.schema.json
4
2
  name: UIInput
5
3
  tag: input-ui
6
4
  component: Input
7
5
  category: input
8
6
  version: 1
9
- description: Text input field with contenteditable surface. Supports prefix/suffix icons,
10
- label, form participation, and a `type="number"` mode that renders [+]/[-] stepper buttons,
11
- numeric input filtering, and ARIA spinbutton semantics no native `<input type="number">`
12
- under the hood. Password type uses a native `<input>` (only path that still wraps native,
13
- for `-webkit-text-security` disc masking).
7
+ description: Text input field with contenteditable surface. Supports prefix/suffix icons, label, form participation, and a
8
+ `type="number"` mode that renders [+]/[-] stepper buttons, numeric input filtering, and ARIA spinbutton semantics — no native
9
+ `<input type="number">` under the hood. Password type uses a native `<input>` (only path that still wraps native, for `-webkit-text-security`
10
+ disc masking).
11
+ # Per ADR-0027 primitives that programmatically create other primitives
12
+ # do NOT auto-import them. Consumer (or demo shell) must explicitly import.
13
+ composes:
14
+ - button-ui # [+]/[-] stepper buttons (created when type="number")
15
+ - icon-ui # caret-up/caret-down icons inside the stepper buttons
16
+
14
17
  props:
15
18
  name:
16
19
  description: Form control name for form data submission
17
20
  type: string
18
- default: ""
21
+ default: ''
19
22
  type:
20
- description: Input type. `password` wraps a native `<input>` for disc masking; `number` renders
21
- a contenteditable + stepper buttons (no native input). All other types use plain contenteditable.
23
+ description: Input type. `password` wraps a native `<input>` for disc masking; `number` renders a contenteditable + stepper
24
+ buttons (no native input). All other types use plain contenteditable.
22
25
  type: string
23
26
  default: text
24
27
  enum:
25
- - text
26
- - email
27
- - password
28
- - number
29
- - tel
30
- - url
31
- - search
32
- - date
33
- - datetime-local
34
- - time
35
- - month
36
- - week
37
- - color
28
+ - text
29
+ - email
30
+ - password
31
+ - number
32
+ - tel
33
+ - url
34
+ - search
35
+ - date
36
+ - datetime-local
37
+ - time
38
+ - month
39
+ - week
40
+ - color
38
41
  required:
39
42
  description: Marks the field as required for form validation. Sets aria-required.
40
43
  type: boolean
@@ -46,16 +49,14 @@ props:
46
49
  default: false
47
50
  reflect: true
48
51
  error:
49
- description: Validation error message. Set automatically by constraint validation or manually via
50
- setInvalid().
52
+ description: Validation error message. Set automatically by constraint validation or manually via setInvalid().
51
53
  type: string
52
- default: ""
54
+ default: ''
53
55
  label:
54
- description: Inline label rendered as a leading caption inside the input chrome,
55
- between any prefix and the value. Wires aria-labelledby on the editable
56
- surface. For stacked label / hint / error compositions, wrap with field-ui.
56
+ description: Inline label rendered as a leading caption inside the input chrome, between any prefix and the value. Wires
57
+ aria-labelledby on the editable surface. For stacked label / hint / error compositions, wrap with field-ui.
57
58
  type: string
58
- default: ""
59
+ default: ''
59
60
  maxlength:
60
61
  description: Maximum character length for validation
61
62
  type: number
@@ -65,61 +66,65 @@ props:
65
66
  type: number
66
67
  default: null
67
68
  inputmode:
68
- description: >-
69
- Mobile keyboard hint per HTML inputmode spec. Routed via setAttribute
70
- to the host element. Values: text, decimal, numeric, tel, search, email, url.
69
+ description: 'Mobile keyboard hint per HTML inputmode spec. Routed via setAttribute to the host element. Values: text,
70
+ decimal, numeric, tel, search, email, url.'
71
71
  type: string
72
72
  default: null
73
- enum: [text, decimal, numeric, tel, search, email, url, none]
73
+ enum:
74
+ - text
75
+ - decimal
76
+ - numeric
77
+ - tel
78
+ - search
79
+ - email
80
+ - url
81
+ - none
74
82
  autocomplete:
75
- description: >-
76
- Browser autofill behavior per HTML autocomplete spec. Routed via
77
- setAttribute to the host element. Common values: off, on, cc-number,
78
- cc-exp, cc-csc, cc-name, email, username, current-password, new-password,
79
- one-time-code, given-name, family-name, street-address, postal-code.
83
+ description: 'Browser autofill behavior per HTML autocomplete spec. Routed via setAttribute to the host element. Common
84
+ values: off, on, cc-number, cc-exp, cc-csc, cc-name, email, username, current-password, new-password, one-time-code,
85
+ given-name, family-name, street-address, postal-code.'
80
86
  type: string
81
- default: ""
87
+ default: ''
82
88
  min:
83
- description: Minimum numeric value. Applies when `type="number"`. Clamps + drives aria-valuemin
84
- + the [-] button's disabled state.
89
+ description: Minimum numeric value. Applies when `type="number"`. Clamps + drives aria-valuemin + the [-] button's disabled
90
+ state.
85
91
  type: number
86
92
  default: null
87
93
  max:
88
- description: Maximum numeric value. Applies when `type="number"`. Clamps + drives aria-valuemax
89
- + the [+] button's disabled state.
94
+ description: Maximum numeric value. Applies when `type="number"`. Clamps + drives aria-valuemax + the [+] button's disabled
95
+ state.
90
96
  type: number
91
97
  default: null
92
98
  step:
93
- description: Stepper increment for `type="number"`. Drives ↑/↓ ArrowUp/Down + [+]/[-] button
94
- magnitude. Also determines decimal-count for value formatting unless `precision` is set.
99
+ description: Stepper increment for `type="number"`. Drives ↑/↓ ArrowUp/Down + [+]/[-] button magnitude. Also determines
100
+ decimal-count for value formatting unless `precision` is set.
95
101
  type: number
96
102
  default: 1
97
103
  precision:
98
- description: Decimal places to display + clamp to, when `type="number"`. Overrides the implicit
99
- decimal-count from `step` — e.g. `step=1 precision=2` formats "10.00".
104
+ description: Decimal places to display + clamp to, when `type="number"`. Overrides the implicit decimal-count from `step`
105
+ — e.g. `step=1 precision=2` formats "10.00".
100
106
  type: number
101
107
  default: null
102
108
  locale:
103
- description: BCP-47 locale tag for `type="number"`, e.g. `de-DE`, `fr-FR`, `en-IN`. When set,
104
- the input accepts both `.` AND the locale's decimal separator (e.g. `,` in de-DE), uses
105
- `Intl.NumberFormat` for display, and groups thousands on blur (e.g. en-US `1,234,567.89`,
106
- de-DE `1.234.567,89`). On focus, the input reverts to ungrouped form for easy editing.
107
- `.value` always stores the ungrouped, locale-decimal form so `Number(#toCanonical(v))`
108
- round-trips. Default empty = en-US-equivalent path (no behavior change).
109
+ description: BCP-47 locale tag for `type="number"`, e.g. `de-DE`, `fr-FR`, `en-IN`. When set, the input accepts both `.`
110
+ AND the locale's decimal separator (e.g. `,` in de-DE), uses `Intl.NumberFormat` for display, and groups thousands on
111
+ blur (e.g. en-US `1,234,567.89`, de-DE `1.234.567,89`). On focus, the input reverts to ungrouped form for easy editing.
112
+ `.value` always stores the ungrouped, locale-decimal form so `Number(#toCanonical(v))` round-trips. Default empty =
113
+ en-US-equivalent path (no behavior change).
109
114
  type: string
110
- default: ""
115
+ default: ''
111
116
  pattern:
112
117
  description: Regex pattern for validation. Tested as ^(?:pattern)$ against the value.
113
118
  type: string
114
- default: ""
119
+ default: ''
115
120
  placeholder:
116
121
  description: Placeholder text shown when the input is empty, via ::before content
117
122
  type: string
118
- default: ""
123
+ default: ''
119
124
  prefix:
120
125
  description: Prefix text or icon rendered before the text surface (e.g., unit label, search icon)
121
126
  type: string
122
- default: ""
127
+ default: ''
123
128
  raw:
124
129
  description: Strips visual chrome (border, background) from the input
125
130
  type: boolean
@@ -133,19 +138,19 @@ props:
133
138
  suffix:
134
139
  description: Suffix text rendered after the text surface (e.g., unit like 'kg')
135
140
  type: string
136
- default: ""
141
+ default: ''
137
142
  value:
138
- description: Current input value, synced with contenteditable text surface. For `type="number"`,
139
- this is the formatted numeric string; read `el.valueAsNumber` for the parsed Number.
143
+ description: Current input value, synced with contenteditable text surface. For `type="number"`, this is the formatted
144
+ numeric string; read `el.valueAsNumber` for the parsed Number.
140
145
  type: string
141
- default: ""
146
+ default: ''
142
147
  events:
143
148
  change:
144
149
  description: Fired on blur, Enter, or a stepper-button click (bubbles)
145
150
  input:
146
151
  description: Fired on each keystroke or stepper-button increment (bubbles)
147
152
  submit:
148
- description: "Fired when Enter commits the value."
153
+ description: Fired when Enter commits the value.
149
154
  slots:
150
155
  leading:
151
156
  description: Leading icon slot, sized to --content-height. Collapses text inline padding when present.
@@ -154,16 +159,16 @@ slots:
154
159
  trailing:
155
160
  description: Trailing icon slot, sized to --content-height. Collapses text inline padding when present.
156
161
  states:
157
- - name: idle
158
- description: Default, ready for interaction.
159
- - name: disabled
160
- description: Non-interactive; dimmed.
161
- attribute: disabled
162
- - name: focused
163
- description: Keyboard focus ring.
164
- selector: :focus-visible
162
+ - name: idle
163
+ description: Default, ready for interaction.
164
+ - name: disabled
165
+ description: Non-interactive; dimmed.
166
+ attribute: disabled
167
+ - name: focused
168
+ description: Keyboard focus ring.
169
+ selector: :focus-visible
165
170
  traits:
166
- - focusable
171
+ - focusable
167
172
  tokens:
168
173
  --density:
169
174
  description: Inherited multiplier for padding
@@ -207,380 +212,110 @@ a2ui:
207
212
  rules: []
208
213
  anti_patterns: []
209
214
  examples:
210
- - name: quantity-stepper
211
- description: Number input with [+]/[-] stepper buttons, min/max bounds, and a quantity label.
212
- Use for product quantity, item count, or any bounded integer input.
213
- a2ui: >-
214
- [
215
- {"id": "root", "component": "Field", "label": "Quantity",
216
- "children": ["qty"]},
217
- {"id": "qty", "component": "Input", "type": "number",
218
- "name": "quantity", "value": "1", "min": 0, "max": 99, "step": 1}
219
- ]
220
- - name: price-with-currency
221
- description: Currency number input with $ prefix, 2-decimal precision, and step 0.01.
222
- The stepper buttons increment by one cent.
223
- a2ui: >-
224
- [
225
- {"id": "root", "component": "Field", "label": "Price",
226
- "children": ["price"]},
227
- {"id": "price", "component": "Input", "type": "number",
228
- "name": "price", "value": "9.99", "min": 0, "step": 0.01,
229
- "precision": 2, "prefix": "$"}
230
- ]
231
- - name: weight-with-unit
232
- description: Weight number input with a kg suffix and 0.1 step for decigram precision.
233
- a2ui: >-
234
- [
235
- {"id": "root", "component": "Field", "label": "Weight",
236
- "children": ["weight"]},
237
- {"id": "weight", "component": "Input", "type": "number",
238
- "name": "weight", "value": "70", "min": 0, "max": 500,
239
- "step": 0.1, "suffix": "kg"}
240
- ]
241
- - name: percent-bounded
242
- description: Percent number input bounded 0..100 with a % suffix.
243
- a2ui: >-
244
- [
245
- {"id": "root", "component": "Field", "label": "Discount",
246
- "children": ["pct"]},
247
- {"id": "pct", "component": "Input", "type": "number",
248
- "name": "discount", "value": "25", "min": 0, "max": 100,
249
- "step": 5, "suffix": "%"}
250
- ]
251
- - name: temperature-negative
252
- description: Number input allowing negative values, e.g. temperature offset.
253
- a2ui: >-
254
- [
255
- {"id": "root", "component": "Field", "label": "Temperature offset",
256
- "children": ["temp"]},
257
- {"id": "temp", "component": "Input", "type": "number",
258
- "name": "temp", "value": "0", "min": -100, "max": 100,
259
- "step": 1, "suffix": "°C"}
260
- ]
261
- - name: chat-interface
262
- description: Chat interface with message bubbles containing avatar and text pairs, plus an input footer.
263
- a2ui: >-
264
- [
265
- {
266
- "id": "root",
267
- "component": "Card",
268
- "children": [
269
- "hdr",
270
- "sec",
271
- "ftr"
272
- ]
273
- },
274
- {
275
- "id": "hdr",
276
- "component": "Header",
277
- "children": [
278
- "title"
279
- ]
280
- },
281
- {
282
- "id": "title",
283
- "component": "Text",
284
- "slot": "heading",
285
- "textContent": "Chat"
286
- },
287
- {
288
- "id": "sec",
289
- "component": "Section",
290
- "children": [
291
- "messages"
292
- ]
293
- },
294
- {
295
- "id": "messages",
296
- "component": "Column",
297
- "gap": "3",
298
- "children": [
299
- "msg1",
300
- "msg2",
301
- "msg3",
302
- "msg4"
303
- ]
304
- },
305
- {
306
- "id": "msg1",
307
- "component": "Row",
308
- "gap": "2",
309
- "children": [
310
- "a1",
311
- "t1"
312
- ]
313
- },
314
- {
315
- "id": "a1",
316
- "component": "Avatar",
317
- "name": "User",
318
- "size": "sm"
319
- },
320
- {
321
- "id": "t1",
322
- "component": "Text",
323
- "variant": "body",
324
- "textContent": "Hello! Can you help me with something?"
325
- },
326
- {
327
- "id": "msg2",
328
- "component": "Row",
329
- "gap": "2",
330
- "children": [
331
- "a2",
332
- "t2"
333
- ]
334
- },
335
- {
336
- "id": "a2",
337
- "component": "Avatar",
338
- "name": "Assistant",
339
- "size": "sm"
340
- },
341
- {
342
- "id": "t2",
343
- "component": "Text",
344
- "variant": "body",
345
- "textContent": "Of course! I'd be happy to help. What do you need?"
346
- },
347
- {
348
- "id": "msg3",
349
- "component": "Row",
350
- "gap": "2",
351
- "children": [
352
- "a3",
353
- "t3"
354
- ]
355
- },
356
- {
357
- "id": "a3",
358
- "component": "Avatar",
359
- "name": "User",
360
- "size": "sm"
361
- },
362
- {
363
- "id": "t3",
364
- "component": "Text",
365
- "variant": "body",
366
- "textContent": "I need to build a dashboard layout."
367
- },
368
- {
369
- "id": "msg4",
370
- "component": "Row",
371
- "gap": "2",
372
- "children": [
373
- "a4",
374
- "t4"
375
- ]
376
- },
377
- {
378
- "id": "a4",
379
- "component": "Avatar",
380
- "name": "Assistant",
381
- "size": "sm"
382
- },
383
- {
384
- "id": "t4",
385
- "component": "Text",
386
- "variant": "body",
387
- "textContent": "Great choice! Let me suggest some patterns for that."
388
- },
389
- {
390
- "id": "ftr",
391
- "component": "Footer",
392
- "children": [
393
- "input-row"
394
- ]
395
- },
396
- {
397
- "id": "input-row",
398
- "component": "Row",
399
- "gap": "2",
400
- "children": [
401
- "chat-input",
402
- "send-btn"
403
- ]
404
- },
405
- {
406
- "id": "chat-input",
407
- "component": "Input",
408
- "placeholder": "Type a message..."
409
- },
410
- {
411
- "id": "send-btn",
412
- "component": "Button",
413
- "text": "Send",
414
- "icon": "send",
415
- "variant": "primary"
416
- }
417
- ]
418
- - name: command-palette
419
- description: Command palette card with search input and a list of command options.
420
- a2ui: >-
421
- [
422
- {
423
- "id": "root",
424
- "component": "Card",
425
- "children": [
426
- "hdr",
427
- "sec"
428
- ]
429
- },
430
- {
431
- "id": "hdr",
432
- "component": "Header",
433
- "children": [
434
- "search"
435
- ]
436
- },
437
- {
438
- "id": "search",
439
- "component": "Input",
440
- "placeholder": "Type a command or search...",
441
- "icon": "search"
442
- },
443
- {
444
- "id": "sec",
445
- "component": "Section",
446
- "children": [
447
- "options"
448
- ]
449
- },
450
- {
451
- "id": "options",
452
- "component": "Column",
453
- "gap": "1",
454
- "children": [
455
- "opt1",
456
- "opt2",
457
- "opt3",
458
- "opt4",
459
- "opt5"
460
- ]
461
- },
462
- {
463
- "id": "opt1",
464
- "component": "Row",
465
- "gap": "2",
466
- "children": [
467
- "i1",
468
- "l1"
469
- ]
470
- },
471
- {
472
- "id": "i1",
473
- "component": "Icon",
474
- "name": "file"
475
- },
476
- {
477
- "id": "l1",
478
- "component": "Text",
479
- "textContent": "Open File"
480
- },
481
- {
482
- "id": "opt2",
483
- "component": "Row",
484
- "gap": "2",
485
- "children": [
486
- "i2",
487
- "l2"
488
- ]
489
- },
490
- {
491
- "id": "i2",
492
- "component": "Icon",
493
- "name": "gear"
494
- },
495
- {
496
- "id": "l2",
497
- "component": "Text",
498
- "textContent": "Settings"
499
- },
500
- {
501
- "id": "opt3",
502
- "component": "Row",
503
- "gap": "2",
504
- "children": [
505
- "i3",
506
- "l3"
507
- ]
508
- },
509
- {
510
- "id": "i3",
511
- "component": "Icon",
512
- "name": "palette"
513
- },
514
- {
515
- "id": "l3",
516
- "component": "Text",
517
- "textContent": "Change Theme"
518
- },
519
- {
520
- "id": "opt4",
521
- "component": "Row",
522
- "gap": "2",
523
- "children": [
524
- "i4",
525
- "l4"
526
- ]
527
- },
528
- {
529
- "id": "i4",
530
- "component": "Icon",
531
- "name": "users"
532
- },
533
- {
534
- "id": "l4",
535
- "component": "Text",
536
- "textContent": "Manage Users"
537
- },
538
- {
539
- "id": "opt5",
540
- "component": "Row",
541
- "gap": "2",
542
- "children": [
543
- "i5",
544
- "l5"
545
- ]
546
- },
547
- {
548
- "id": "i5",
549
- "component": "Icon",
550
- "name": "sign-out"
551
- },
552
- {
553
- "id": "l5",
554
- "component": "Text",
555
- "textContent": "Sign Out"
556
- }
557
- ]
215
+ - name: quantity-stepper
216
+ description: Number input with [+]/[-] stepper buttons, min/max bounds, and a quantity label. Use for product quantity,
217
+ item count, or any bounded integer input.
218
+ a2ui: "[\n {\"id\": \"root\", \"component\": \"Field\", \"label\": \"Quantity\",\n \"children\": [\"qty\"]},\n {\"id\"\
219
+ : \"qty\", \"component\": \"Input\", \"type\": \"number\",\n \"name\": \"quantity\", \"value\": \"1\", \"min\": 0, \"\
220
+ max\": 99, \"step\": 1}\n]"
221
+ - name: price-with-currency
222
+ description: Currency number input with $ prefix, 2-decimal precision, and step 0.01. The stepper buttons increment by one
223
+ cent.
224
+ a2ui: "[\n {\"id\": \"root\", \"component\": \"Field\", \"label\": \"Price\",\n \"children\": [\"price\"]},\n {\"id\"\
225
+ : \"price\", \"component\": \"Input\", \"type\": \"number\",\n \"name\": \"price\", \"value\": \"9.99\", \"min\": 0,\
226
+ \ \"step\": 0.01,\n \"precision\": 2, \"prefix\": \"$\"}\n]"
227
+ - name: weight-with-unit
228
+ description: Weight number input with a kg suffix and 0.1 step for decigram precision.
229
+ a2ui: "[\n {\"id\": \"root\", \"component\": \"Field\", \"label\": \"Weight\",\n \"children\": [\"weight\"]},\n {\"\
230
+ id\": \"weight\", \"component\": \"Input\", \"type\": \"number\",\n \"name\": \"weight\", \"value\": \"70\", \"min\"\
231
+ : 0, \"max\": 500,\n \"step\": 0.1, \"suffix\": \"kg\"}\n]"
232
+ - name: percent-bounded
233
+ description: Percent number input bounded 0..100 with a % suffix.
234
+ a2ui: "[\n {\"id\": \"root\", \"component\": \"Field\", \"label\": \"Discount\",\n \"children\": [\"pct\"]},\n {\"id\"\
235
+ : \"pct\", \"component\": \"Input\", \"type\": \"number\",\n \"name\": \"discount\", \"value\": \"25\", \"min\": 0,\
236
+ \ \"max\": 100,\n \"step\": 5, \"suffix\": \"%\"}\n]"
237
+ - name: temperature-negative
238
+ description: Number input allowing negative values, e.g. temperature offset.
239
+ a2ui: "[\n {\"id\": \"root\", \"component\": \"Field\", \"label\": \"Temperature offset\",\n \"children\": [\"temp\"\
240
+ ]},\n {\"id\": \"temp\", \"component\": \"Input\", \"type\": \"number\",\n \"name\": \"temp\", \"value\": \"0\", \"\
241
+ min\": -100, \"max\": 100,\n \"step\": 1, \"suffix\": \"°C\"}\n]"
242
+ - name: chat-interface
243
+ description: Chat interface with message bubbles containing avatar and text pairs, plus an input footer.
244
+ a2ui: "[\n {\n \"id\": \"root\",\n \"component\": \"Card\",\n \"children\": [\n \"hdr\",\n \"sec\",\n\
245
+ \ \"ftr\"\n ]\n },\n {\n \"id\": \"hdr\",\n \"component\": \"Header\",\n \"children\": [\n \"\
246
+ title\"\n ]\n },\n {\n \"id\": \"title\",\n \"component\": \"Text\",\n \"slot\": \"heading\",\n \"textContent\"\
247
+ : \"Chat\"\n },\n {\n \"id\": \"sec\",\n \"component\": \"Section\",\n \"children\": [\n \"messages\"\n\
248
+ \ ]\n },\n {\n \"id\": \"messages\",\n \"component\": \"Column\",\n \"gap\": \"3\",\n \"children\": [\n\
249
+ \ \"msg1\",\n \"msg2\",\n \"msg3\",\n \"msg4\"\n ]\n },\n {\n \"id\": \"msg1\",\n \"component\"\
250
+ : \"Row\",\n \"gap\": \"2\",\n \"children\": [\n \"a1\",\n \"t1\"\n ]\n },\n {\n \"id\": \"a1\"\
251
+ ,\n \"component\": \"Avatar\",\n \"name\": \"User\",\n \"size\": \"sm\"\n },\n {\n \"id\": \"t1\",\n \
252
+ \ \"component\": \"Text\",\n \"variant\": \"body\",\n \"textContent\": \"Hello! Can you help me with something?\"\
253
+ \n },\n {\n \"id\": \"msg2\",\n \"component\": \"Row\",\n \"gap\": \"2\",\n \"children\": [\n \"a2\"\
254
+ ,\n \"t2\"\n ]\n },\n {\n \"id\": \"a2\",\n \"component\": \"Avatar\",\n \"name\": \"Assistant\",\n\
255
+ \ \"size\": \"sm\"\n },\n {\n \"id\": \"t2\",\n \"component\": \"Text\",\n \"variant\": \"body\",\n \"\
256
+ textContent\": \"Of course! I'd be happy to help. What do you need?\"\n },\n {\n \"id\": \"msg3\",\n \"component\"\
257
+ : \"Row\",\n \"gap\": \"2\",\n \"children\": [\n \"a3\",\n \"t3\"\n ]\n },\n {\n \"id\": \"a3\"\
258
+ ,\n \"component\": \"Avatar\",\n \"name\": \"User\",\n \"size\": \"sm\"\n },\n {\n \"id\": \"t3\",\n \
259
+ \ \"component\": \"Text\",\n \"variant\": \"body\",\n \"textContent\": \"I need to build a dashboard layout.\"\n\
260
+ \ },\n {\n \"id\": \"msg4\",\n \"component\": \"Row\",\n \"gap\": \"2\",\n \"children\": [\n \"a4\"\
261
+ ,\n \"t4\"\n ]\n },\n {\n \"id\": \"a4\",\n \"component\": \"Avatar\",\n \"name\": \"Assistant\",\n\
262
+ \ \"size\": \"sm\"\n },\n {\n \"id\": \"t4\",\n \"component\": \"Text\",\n \"variant\": \"body\",\n \"\
263
+ textContent\": \"Great choice! Let me suggest some patterns for that.\"\n },\n {\n \"id\": \"ftr\",\n \"component\"\
264
+ : \"Footer\",\n \"children\": [\n \"input-row\"\n ]\n },\n {\n \"id\": \"input-row\",\n \"component\"\
265
+ : \"Row\",\n \"gap\": \"2\",\n \"children\": [\n \"chat-input\",\n \"send-btn\"\n ]\n },\n {\n \
266
+ \ \"id\": \"chat-input\",\n \"component\": \"Input\",\n \"placeholder\": \"Type a message...\"\n },\n {\n \
267
+ \ \"id\": \"send-btn\",\n \"component\": \"Button\",\n \"text\": \"Send\",\n \"icon\": \"send\",\n \"variant\"\
268
+ : \"primary\"\n }\n]"
269
+ - name: command-palette
270
+ description: Command palette card with search input and a list of command options.
271
+ a2ui: "[\n {\n \"id\": \"root\",\n \"component\": \"Card\",\n \"children\": [\n \"hdr\",\n \"sec\"\n\
272
+ \ ]\n },\n {\n \"id\": \"hdr\",\n \"component\": \"Header\",\n \"children\": [\n \"search\"\n ]\n\
273
+ \ },\n {\n \"id\": \"search\",\n \"component\": \"Input\",\n \"placeholder\": \"Type a command or search...\"\
274
+ ,\n \"icon\": \"search\"\n },\n {\n \"id\": \"sec\",\n \"component\": \"Section\",\n \"children\": [\n \
275
+ \ \"options\"\n ]\n },\n {\n \"id\": \"options\",\n \"component\": \"Column\",\n \"gap\": \"1\",\n \
276
+ \ \"children\": [\n \"opt1\",\n \"opt2\",\n \"opt3\",\n \"opt4\",\n \"opt5\"\n ]\n },\n\
277
+ \ {\n \"id\": \"opt1\",\n \"component\": \"Row\",\n \"gap\": \"2\",\n \"children\": [\n \"i1\",\n \
278
+ \ \"l1\"\n ]\n },\n {\n \"id\": \"i1\",\n \"component\": \"Icon\",\n \"name\": \"file\"\n },\n {\n\
279
+ \ \"id\": \"l1\",\n \"component\": \"Text\",\n \"textContent\": \"Open File\"\n },\n {\n \"id\": \"opt2\"\
280
+ ,\n \"component\": \"Row\",\n \"gap\": \"2\",\n \"children\": [\n \"i2\",\n \"l2\"\n ]\n },\n \
281
+ \ {\n \"id\": \"i2\",\n \"component\": \"Icon\",\n \"name\": \"gear\"\n },\n {\n \"id\": \"l2\",\n \"\
282
+ component\": \"Text\",\n \"textContent\": \"Settings\"\n },\n {\n \"id\": \"opt3\",\n \"component\": \"Row\"\
283
+ ,\n \"gap\": \"2\",\n \"children\": [\n \"i3\",\n \"l3\"\n ]\n },\n {\n \"id\": \"i3\",\n \"\
284
+ component\": \"Icon\",\n \"name\": \"palette\"\n },\n {\n \"id\": \"l3\",\n \"component\": \"Text\",\n \"\
285
+ textContent\": \"Change Theme\"\n },\n {\n \"id\": \"opt4\",\n \"component\": \"Row\",\n \"gap\": \"2\",\n\
286
+ \ \"children\": [\n \"i4\",\n \"l4\"\n ]\n },\n {\n \"id\": \"i4\",\n \"component\": \"Icon\"\
287
+ ,\n \"name\": \"users\"\n },\n {\n \"id\": \"l4\",\n \"component\": \"Text\",\n \"textContent\": \"Manage\
288
+ \ Users\"\n },\n {\n \"id\": \"opt5\",\n \"component\": \"Row\",\n \"gap\": \"2\",\n \"children\": [\n \
289
+ \ \"i5\",\n \"l5\"\n ]\n },\n {\n \"id\": \"i5\",\n \"component\": \"Icon\",\n \"name\": \"sign-out\"\
290
+ \n },\n {\n \"id\": \"l5\",\n \"component\": \"Text\",\n \"textContent\": \"Sign Out\"\n }\n]"
558
291
  keywords:
559
- - input
560
- - field
561
- - chip
562
- - tag
292
+ - input
293
+ - field
294
+ - chip
295
+ - tag
563
296
  synonyms:
564
297
  tag:
565
- - tag
566
- - input
567
- - badge
298
+ - tag
299
+ - input
300
+ - badge
568
301
  chip:
569
- - badge
570
- - tag
571
- - input
302
+ - badge
303
+ - tag
304
+ - input
572
305
  field:
573
- - form
574
- - create
575
- - input
306
+ - form
307
+ - create
308
+ - input
576
309
  input:
577
- - form
578
- - create
579
- - tag
580
- - input
310
+ - form
311
+ - create
312
+ - tag
313
+ - input
314
+ tags:
315
+ - TextField
581
316
  related:
582
- - avatar
583
- - button
584
- - table
585
- - pagination
586
- - check-box
317
+ - avatar
318
+ - button
319
+ - table
320
+ - pagination
321
+ - check-box